@dxos/plugin-client 0.7.5-main.499c70c → 0.7.5-main.5ae2ba8
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-ON64R7SO.mjs +44 -0
- package/dist/lib/browser/app-graph-builder-ON64R7SO.mjs.map +7 -0
- package/dist/lib/browser/{chunk-52IJQ35F.mjs → chunk-7DPLXOMO.mjs} +17 -7
- package/dist/lib/browser/chunk-7DPLXOMO.mjs.map +7 -0
- package/dist/lib/browser/chunk-EYBZZHSM.mjs +271 -0
- package/dist/lib/browser/chunk-EYBZZHSM.mjs.map +7 -0
- package/dist/lib/browser/chunk-GHEQL2E6.mjs +16 -0
- package/dist/lib/browser/chunk-GHEQL2E6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-X4QUPYC6.mjs → chunk-NHIL4T3L.mjs} +3 -3
- package/dist/lib/browser/chunk-NHIL4T3L.mjs.map +7 -0
- package/dist/lib/browser/chunk-RGMLBYIF.mjs +18 -0
- package/dist/lib/browser/chunk-RGMLBYIF.mjs.map +7 -0
- package/dist/lib/browser/client-A7YSVURS.mjs +36 -0
- package/dist/lib/browser/client-A7YSVURS.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +83 -370
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-SSM6WXAW.mjs +263 -0
- package/dist/lib/browser/intent-resolver-SSM6WXAW.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-context-R3SG55F5.mjs +24 -0
- package/dist/lib/browser/react-context-R3SG55F5.mjs.map +7 -0
- package/dist/lib/browser/react-surface-XGOUHVIH.mjs +57 -0
- package/dist/lib/browser/react-surface-XGOUHVIH.mjs.map +7 -0
- package/dist/lib/browser/schema-J4MJIXRP.mjs +23 -0
- package/dist/lib/browser/schema-J4MJIXRP.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +4 -6
- package/dist/lib/node/app-graph-builder-RW7ESEX3.cjs +58 -0
- package/dist/lib/node/app-graph-builder-RW7ESEX3.cjs.map +7 -0
- package/dist/lib/node/chunk-7LVBFGKQ.cjs +299 -0
- package/dist/lib/node/chunk-7LVBFGKQ.cjs.map +7 -0
- package/dist/lib/node/{chunk-RUA5KXVW.cjs → chunk-OIFPM5ZW.cjs} +7 -7
- package/dist/lib/node/chunk-OIFPM5ZW.cjs.map +7 -0
- package/dist/lib/node/{chunk-NFO3ADQC.cjs → chunk-TREVKZCJ.cjs} +21 -12
- package/dist/lib/node/chunk-TREVKZCJ.cjs.map +7 -0
- package/dist/lib/node/{meta.cjs → chunk-UHIGZJQL.cjs} +13 -8
- package/dist/lib/node/chunk-UHIGZJQL.cjs.map +7 -0
- package/dist/lib/node/chunk-XPC4JOPP.cjs +37 -0
- package/dist/lib/node/chunk-XPC4JOPP.cjs.map +7 -0
- package/dist/lib/node/client-2RQATBB6.cjs +50 -0
- package/dist/lib/node/client-2RQATBB6.cjs.map +7 -0
- package/dist/lib/node/index.cjs +80 -359
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/intent-resolver-RIHCW2KJ.cjs +271 -0
- package/dist/lib/node/intent-resolver-RIHCW2KJ.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-context-TD6VGBVA.cjs +48 -0
- package/dist/lib/node/react-context-TD6VGBVA.cjs.map +7 -0
- package/dist/lib/node/react-surface-IY7GXEGU.cjs +74 -0
- package/dist/lib/node/react-surface-IY7GXEGU.cjs.map +7 -0
- package/dist/lib/node/schema-JXJS75HQ.cjs +39 -0
- package/dist/lib/node/schema-JXJS75HQ.cjs.map +7 -0
- package/dist/lib/node/types.cjs +4 -6
- package/dist/lib/node/types.cjs.map +2 -2
- package/dist/lib/node-esm/app-graph-builder-TDYRWNI7.mjs +45 -0
- package/dist/lib/node-esm/app-graph-builder-TDYRWNI7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CRF22MJJ.mjs +272 -0
- package/dist/lib/node-esm/chunk-CRF22MJJ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GMGRQ5Q7.mjs → chunk-HO7WDE7C.mjs} +3 -3
- package/dist/lib/node-esm/chunk-HO7WDE7C.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-TI4GNGMM.mjs → chunk-QJMF2MWP.mjs} +17 -7
- package/dist/lib/node-esm/chunk-QJMF2MWP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-QR72BXJK.mjs +19 -0
- package/dist/lib/node-esm/chunk-QR72BXJK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-T35SFKK3.mjs +17 -0
- package/dist/lib/node-esm/chunk-T35SFKK3.mjs.map +7 -0
- package/dist/lib/node-esm/client-36DKBSB7.mjs +37 -0
- package/dist/lib/node-esm/client-36DKBSB7.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +83 -370
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/intent-resolver-WWTVE6T6.mjs +264 -0
- package/dist/lib/node-esm/intent-resolver-WWTVE6T6.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-context-ZOGDOWJ2.mjs +25 -0
- package/dist/lib/node-esm/react-context-ZOGDOWJ2.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-F3PDFJMV.mjs +58 -0
- package/dist/lib/node-esm/react-surface-F3PDFJMV.mjs.map +7 -0
- package/dist/lib/node-esm/schema-XM4HBLIX.mjs +24 -0
- package/dist/lib/node-esm/schema-XM4HBLIX.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +4 -6
- package/dist/types/src/ClientPlugin.d.ts +2 -3
- package/dist/types/src/ClientPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +181 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/capabilities.d.ts +7 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/types/src/capabilities/client.d.ts +9 -0
- package/dist/types/src/capabilities/client.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +195 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts +9 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-context.d.ts +8 -0
- package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +7 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- 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 +1 -2
- package/dist/types/src/components/IdentityDialog.d.ts.map +1 -1
- package/dist/types/src/components/JoinDialog.d.ts +1 -2
- package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/components/ManageCredentialsDialog.d.ts +3 -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 +1 -2
- package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +1 -1
- package/dist/types/src/components/RecoverySetupDialog.d.ts +3 -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 +7 -0
- package/dist/types/src/events.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -2
- package/dist/types/src/meta.d.ts.map +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 +22 -18
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +23 -24
- package/src/ClientPlugin.ts +64 -0
- package/src/capabilities/app-graph-builder.ts +39 -0
- package/src/capabilities/capabilities.ts +14 -0
- package/src/capabilities/client.ts +40 -0
- package/src/capabilities/index.ts +14 -0
- package/src/capabilities/intent-resolver.ts +198 -0
- package/src/capabilities/react-context.tsx +20 -0
- package/src/capabilities/react-surface.tsx +59 -0
- package/src/capabilities/schema.ts +26 -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 +14 -0
- package/src/index.ts +4 -4
- package/src/meta.ts +1 -1
- package/src/translations.ts +10 -1
- package/src/types.ts +16 -32
- package/dist/lib/browser/chunk-52IJQ35F.mjs.map +0 -7
- package/dist/lib/browser/chunk-X4QUPYC6.mjs.map +0 -7
- package/dist/lib/browser/meta.mjs +0 -9
- package/dist/lib/browser/meta.mjs.map +0 -7
- package/dist/lib/node/chunk-NFO3ADQC.cjs.map +0 -7
- package/dist/lib/node/chunk-RUA5KXVW.cjs.map +0 -7
- package/dist/lib/node/meta.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-GMGRQ5Q7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TI4GNGMM.mjs.map +0 -7
- package/dist/lib/node-esm/meta.mjs +0 -10
- package/dist/lib/node-esm/meta.mjs.map +0 -7
- package/src/ClientPlugin.tsx +0 -227
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ClientEvents
|
|
3
|
+
} from "./chunk-RGMLBYIF.mjs";
|
|
4
|
+
import {
|
|
5
|
+
IDENTITY_DIALOG,
|
|
6
|
+
JOIN_DIALOG,
|
|
7
|
+
RECOVER_CODE_DIALOG
|
|
8
|
+
} from "./chunk-EYBZZHSM.mjs";
|
|
9
|
+
import {
|
|
10
|
+
ClientAction
|
|
11
|
+
} from "./chunk-7DPLXOMO.mjs";
|
|
12
|
+
import {
|
|
13
|
+
ClientCapabilities
|
|
14
|
+
} from "./chunk-GHEQL2E6.mjs";
|
|
15
|
+
import "./chunk-NHIL4T3L.mjs";
|
|
16
|
+
|
|
17
|
+
// packages/plugins/plugin-client/src/capabilities/intent-resolver.ts
|
|
18
|
+
import { Capabilities, contributes, createIntent, createResolver, LayoutAction } from "@dxos/app-framework";
|
|
19
|
+
import { invariant } from "@dxos/invariant";
|
|
20
|
+
import { ObservabilityAction } from "@dxos/plugin-observability/types";
|
|
21
|
+
import { PublicKey } from "@dxos/react-client";
|
|
22
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-client/src/capabilities/intent-resolver.ts";
|
|
23
|
+
var intent_resolver_default = ({ context, appName = "Composer", onReset }) => contributes(Capabilities.IntentResolver, [
|
|
24
|
+
createResolver({
|
|
25
|
+
intent: ClientAction.CreateIdentity,
|
|
26
|
+
resolve: async () => {
|
|
27
|
+
const manager = context.requestCapability(Capabilities.PluginManager);
|
|
28
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
29
|
+
const data = await client.halo.createIdentity();
|
|
30
|
+
await manager.activate(ClientEvents.IdentityCreated);
|
|
31
|
+
return {
|
|
32
|
+
data,
|
|
33
|
+
intents: [
|
|
34
|
+
createIntent(ObservabilityAction.SendEvent, {
|
|
35
|
+
name: "identity.create"
|
|
36
|
+
})
|
|
37
|
+
]
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}),
|
|
41
|
+
createResolver({
|
|
42
|
+
intent: ClientAction.JoinIdentity,
|
|
43
|
+
resolve: async (data) => {
|
|
44
|
+
return {
|
|
45
|
+
intents: [
|
|
46
|
+
createIntent(LayoutAction.UpdateDialog, {
|
|
47
|
+
part: "dialog",
|
|
48
|
+
subject: JOIN_DIALOG,
|
|
49
|
+
options: {
|
|
50
|
+
blockAlign: "start",
|
|
51
|
+
props: {
|
|
52
|
+
initialInvitationCode: data.invitationCode,
|
|
53
|
+
initialDisposition: "accept-halo-invitation"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
]
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}),
|
|
61
|
+
createResolver({
|
|
62
|
+
intent: ClientAction.ShareIdentity,
|
|
63
|
+
resolve: async () => {
|
|
64
|
+
return {
|
|
65
|
+
intents: [
|
|
66
|
+
createIntent(LayoutAction.UpdateDialog, {
|
|
67
|
+
part: "dialog",
|
|
68
|
+
subject: IDENTITY_DIALOG,
|
|
69
|
+
options: {
|
|
70
|
+
blockAlign: "start"
|
|
71
|
+
}
|
|
72
|
+
}),
|
|
73
|
+
createIntent(ObservabilityAction.SendEvent, {
|
|
74
|
+
name: "identity.share"
|
|
75
|
+
})
|
|
76
|
+
]
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}),
|
|
80
|
+
createResolver({
|
|
81
|
+
intent: ClientAction.RecoverIdentity,
|
|
82
|
+
resolve: async () => {
|
|
83
|
+
return {
|
|
84
|
+
intents: [
|
|
85
|
+
createIntent(LayoutAction.UpdateDialog, {
|
|
86
|
+
part: "dialog",
|
|
87
|
+
subject: JOIN_DIALOG,
|
|
88
|
+
options: {
|
|
89
|
+
blockAlign: "start",
|
|
90
|
+
props: {
|
|
91
|
+
initialDisposition: "recover-identity"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
]
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}),
|
|
99
|
+
createResolver({
|
|
100
|
+
intent: ClientAction.ResetStorage,
|
|
101
|
+
resolve: async (data) => {
|
|
102
|
+
await onReset?.({
|
|
103
|
+
target: data.target
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}),
|
|
107
|
+
createResolver({
|
|
108
|
+
intent: ClientAction.CreateAgent,
|
|
109
|
+
resolve: async () => {
|
|
110
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
111
|
+
invariant(client.services.services.EdgeAgentService, "Missing EdgeAgentService", {
|
|
112
|
+
F: __dxlog_file,
|
|
113
|
+
L: 106,
|
|
114
|
+
S: void 0,
|
|
115
|
+
A: [
|
|
116
|
+
"client.services.services.EdgeAgentService",
|
|
117
|
+
"'Missing EdgeAgentService'"
|
|
118
|
+
]
|
|
119
|
+
});
|
|
120
|
+
await client.services.services.EdgeAgentService.createAgent(null, {
|
|
121
|
+
timeout: 1e4
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}),
|
|
125
|
+
createResolver({
|
|
126
|
+
intent: ClientAction.CreateRecoveryCode,
|
|
127
|
+
resolve: async () => {
|
|
128
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
129
|
+
invariant(client.services.services.IdentityService, "IdentityService not available", {
|
|
130
|
+
F: __dxlog_file,
|
|
131
|
+
L: 114,
|
|
132
|
+
S: void 0,
|
|
133
|
+
A: [
|
|
134
|
+
"client.services.services.IdentityService",
|
|
135
|
+
"'IdentityService not available'"
|
|
136
|
+
]
|
|
137
|
+
});
|
|
138
|
+
const { recoveryCode } = await client.services.services.IdentityService.createRecoveryCredential({});
|
|
139
|
+
return {
|
|
140
|
+
intents: [
|
|
141
|
+
createIntent(LayoutAction.UpdateDialog, {
|
|
142
|
+
part: "dialog",
|
|
143
|
+
subject: RECOVER_CODE_DIALOG,
|
|
144
|
+
options: {
|
|
145
|
+
blockAlign: "start",
|
|
146
|
+
type: "alert",
|
|
147
|
+
props: {
|
|
148
|
+
code: recoveryCode
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
})
|
|
152
|
+
]
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}),
|
|
156
|
+
createResolver({
|
|
157
|
+
intent: ClientAction.CreatePasskey,
|
|
158
|
+
resolve: async () => {
|
|
159
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
160
|
+
const identity = client.halo.identity.get();
|
|
161
|
+
invariant(identity, "Identity not available", {
|
|
162
|
+
F: __dxlog_file,
|
|
163
|
+
L: 137,
|
|
164
|
+
S: void 0,
|
|
165
|
+
A: [
|
|
166
|
+
"identity",
|
|
167
|
+
"'Identity not available'"
|
|
168
|
+
]
|
|
169
|
+
});
|
|
170
|
+
const credential = await navigator.credentials.create({
|
|
171
|
+
publicKey: {
|
|
172
|
+
challenge: new Uint8Array(),
|
|
173
|
+
rp: {
|
|
174
|
+
id: location.hostname,
|
|
175
|
+
name: appName
|
|
176
|
+
},
|
|
177
|
+
user: {
|
|
178
|
+
id: new TextEncoder().encode(identity.did),
|
|
179
|
+
name: identity.did,
|
|
180
|
+
displayName: identity.profile?.displayName ?? ""
|
|
181
|
+
},
|
|
182
|
+
pubKeyCredParams: [
|
|
183
|
+
{
|
|
184
|
+
type: "public-key",
|
|
185
|
+
alg: -8
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
type: "public-key",
|
|
189
|
+
alg: -7
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
// https://web.dev/articles/webauthn-discoverable-credentials#resident-key
|
|
193
|
+
authenticatorSelection: {
|
|
194
|
+
residentKey: "required",
|
|
195
|
+
requireResidentKey: true
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
invariant(credential, "Credential not available", {
|
|
200
|
+
F: __dxlog_file,
|
|
201
|
+
L: 161,
|
|
202
|
+
S: void 0,
|
|
203
|
+
A: [
|
|
204
|
+
"credential",
|
|
205
|
+
"'Credential not available'"
|
|
206
|
+
]
|
|
207
|
+
});
|
|
208
|
+
const recoveryKey = PublicKey.from(new Uint8Array(credential.response.getPublicKey()));
|
|
209
|
+
const algorithm = credential.response.getPublicKeyAlgorithm() === -7 ? "ES256" : "ED25519";
|
|
210
|
+
invariant(client.services.services.IdentityService, "IdentityService not available", {
|
|
211
|
+
F: __dxlog_file,
|
|
212
|
+
L: 166,
|
|
213
|
+
S: void 0,
|
|
214
|
+
A: [
|
|
215
|
+
"client.services.services.IdentityService",
|
|
216
|
+
"'IdentityService not available'"
|
|
217
|
+
]
|
|
218
|
+
});
|
|
219
|
+
await client.services.services.IdentityService.createRecoveryCredential({
|
|
220
|
+
recoveryKey,
|
|
221
|
+
algorithm
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
}),
|
|
225
|
+
createResolver({
|
|
226
|
+
intent: ClientAction.RedeemPasskey,
|
|
227
|
+
resolve: async () => {
|
|
228
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
229
|
+
invariant(client.services.services.IdentityService, "IdentityService not available", {
|
|
230
|
+
F: __dxlog_file,
|
|
231
|
+
L: 175,
|
|
232
|
+
S: void 0,
|
|
233
|
+
A: [
|
|
234
|
+
"client.services.services.IdentityService",
|
|
235
|
+
"'IdentityService not available'"
|
|
236
|
+
]
|
|
237
|
+
});
|
|
238
|
+
const { deviceKey, controlFeedKey, challenge } = await client.services.services.IdentityService.requestRecoveryChallenge();
|
|
239
|
+
const credential = await navigator.credentials.get({
|
|
240
|
+
publicKey: {
|
|
241
|
+
challenge: Buffer.from(challenge, "base64"),
|
|
242
|
+
rpId: location.hostname,
|
|
243
|
+
userVerification: "required"
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
const identityDid = new TextDecoder().decode(credential.response.userHandle);
|
|
247
|
+
await client.services.services.IdentityService.recoverIdentity({
|
|
248
|
+
external: {
|
|
249
|
+
identityDid,
|
|
250
|
+
deviceKey,
|
|
251
|
+
controlFeedKey,
|
|
252
|
+
signature: Buffer.from(credential.response.signature),
|
|
253
|
+
clientDataJson: Buffer.from(credential.response.clientDataJSON),
|
|
254
|
+
authenticatorData: Buffer.from(credential.response.authenticatorData)
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
})
|
|
259
|
+
]);
|
|
260
|
+
export {
|
|
261
|
+
intent_resolver_default as default
|
|
262
|
+
};
|
|
263
|
+
//# sourceMappingURL=intent-resolver-SSM6WXAW.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { PublicKey } from '@dxos/react-client';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport { ClientCapabilities } from './capabilities';\nimport { IDENTITY_DIALOG, JOIN_DIALOG, RECOVER_CODE_DIALOG } from '../components';\nimport { ClientEvents } from '../events';\nimport { ClientAction, type ClientPluginOptions } from '../types';\n\ntype IntentResolverOptions = Pick<ClientPluginOptions, 'onReset'> & {\n context: PluginsContext;\n appName?: string;\n};\n\nexport default ({ context, appName = 'Composer', onReset }: IntentResolverOptions) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ClientAction.CreateIdentity,\n resolve: async () => {\n const manager = context.requestCapability(Capabilities.PluginManager);\n const client = context.requestCapability(ClientCapabilities.Client);\n const data = await client.halo.createIdentity();\n await manager.activate(ClientEvents.IdentityCreated);\n return { data, intents: [createIntent(ObservabilityAction.SendEvent, { name: 'identity.create' })] };\n },\n }),\n createResolver({\n intent: ClientAction.JoinIdentity,\n resolve: async (data) => {\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: JOIN_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n initialInvitationCode: data.invitationCode,\n initialDisposition: 'accept-halo-invitation',\n },\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ClientAction.ShareIdentity,\n resolve: async () => {\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: IDENTITY_DIALOG,\n options: {\n blockAlign: 'start',\n },\n }),\n createIntent(ObservabilityAction.SendEvent, { name: 'identity.share' }),\n ],\n };\n },\n }),\n createResolver({\n intent: ClientAction.RecoverIdentity,\n resolve: async () => {\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: JOIN_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n initialDisposition: 'recover-identity',\n } satisfies Partial<JoinPanelProps>,\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ClientAction.ResetStorage,\n resolve: async (data) => {\n await onReset?.({ target: data.target });\n },\n }),\n createResolver({\n intent: ClientAction.CreateAgent,\n resolve: async () => {\n const client = context.requestCapability(ClientCapabilities.Client);\n invariant(client.services.services.EdgeAgentService, 'Missing EdgeAgentService');\n await client.services.services.EdgeAgentService.createAgent(null as any, { timeout: 10_000 });\n },\n }),\n createResolver({\n intent: ClientAction.CreateRecoveryCode,\n resolve: async () => {\n const client = context.requestCapability(ClientCapabilities.Client);\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n // TODO(wittjosiah): This needs a proper api.\n const { recoveryCode } = await client.services.services.IdentityService.createRecoveryCredential({});\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: RECOVER_CODE_DIALOG,\n options: {\n blockAlign: 'start',\n type: 'alert',\n props: { code: recoveryCode },\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ClientAction.CreatePasskey,\n resolve: async () => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const identity = client.halo.identity.get();\n invariant(identity, 'Identity not available');\n\n // TODO(wittjosiah): Consider factoring out passkey creation to the halo api.\n const credential = await navigator.credentials.create({\n publicKey: {\n challenge: new Uint8Array(),\n rp: { id: location.hostname, name: appName },\n user: {\n id: new TextEncoder().encode(identity.did),\n name: identity.did,\n displayName: identity.profile?.displayName ?? '',\n },\n pubKeyCredParams: [\n { type: 'public-key', alg: -8 }, // Ed25519 (not yet supported across all browsers)\n { type: 'public-key', alg: -7 }, // ES256\n ],\n // https://web.dev/articles/webauthn-discoverable-credentials#resident-key\n authenticatorSelection: {\n residentKey: 'required',\n requireResidentKey: true,\n },\n },\n });\n\n invariant(credential, 'Credential not available');\n const recoveryKey = PublicKey.from(new Uint8Array((credential as any).response.getPublicKey()));\n const algorithm = (credential as any).response.getPublicKeyAlgorithm() === -7 ? 'ES256' : 'ED25519';\n\n // TODO(wittjosiah): This needs a proper api.\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n await client.services.services.IdentityService.createRecoveryCredential({ recoveryKey, algorithm });\n },\n }),\n createResolver({\n intent: ClientAction.RedeemPasskey,\n resolve: async () => {\n const client = context.requestCapability(ClientCapabilities.Client);\n // TODO(wittjosiah): This needs a proper api.\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n const { deviceKey, controlFeedKey, challenge } =\n await client.services.services.IdentityService.requestRecoveryChallenge();\n const credential = await navigator.credentials.get({\n publicKey: {\n challenge: Buffer.from(challenge, 'base64'),\n rpId: location.hostname,\n userVerification: 'required',\n },\n });\n const identityDid = new TextDecoder().decode((credential as any).response.userHandle);\n await client.services.services.IdentityService.recoverIdentity({\n external: {\n identityDid,\n deviceKey,\n controlFeedKey,\n signature: Buffer.from((credential as any).response.signature),\n clientDataJson: Buffer.from((credential as any).response.clientDataJSON),\n authenticatorData: Buffer.from((credential as any).response.authenticatorData),\n },\n });\n },\n }),\n ]);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Capabilities", "contributes", "createIntent", "createResolver", "LayoutAction", "invariant", "ObservabilityAction", "PublicKey", "context", "appName", "onReset", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ClientAction", "CreateIdentity", "resolve", "manager", "requestCapability", "PluginManager", "client", "ClientCapabilities", "Client", "data", "halo", "createIdentity", "activate", "ClientEvents", "IdentityCreated", "intents", "createIntent", "ObservabilityAction", "SendEvent", "name", "JoinIdentity", "LayoutAction", "UpdateDialog", "part", "subject", "JOIN_DIALOG", "options", "blockAlign", "props", "initialInvitationCode", "invitationCode", "initialDisposition", "ShareIdentity", "IDENTITY_DIALOG", "RecoverIdentity", "ResetStorage", "target", "CreateAgent", "invariant", "services", "EdgeAgentService", "createAgent", "timeout", "CreateRecoveryCode", "IdentityService", "recoveryCode", "createRecoveryCredential", "RECOVER_CODE_DIALOG", "type", "code", "CreatePasskey", "identity", "get", "credential", "navigator", "credentials", "create", "publicKey", "challenge", "Uint8Array", "rp", "id", "location", "hostname", "user", "TextEncoder", "encode", "did", "displayName", "profile", "pubKeyCredParams", "alg", "authenticatorSelection", "residentKey", "requireResidentKey", "recoveryKey", "PublicKey", "from", "response", "getPublicKey", "algorithm", "getPublicKeyAlgorithm", "RedeemPasskey", "deviceKey", "controlFeedKey", "requestRecoveryChallenge", "Buffer", "rpId", "userVerification", "identityDid", "TextDecoder", "decode", "userHandle", "recoverIdentity", "external", "signature", "clientDataJson", "clientDataJSON", "authenticatorData"]
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytes":938,"imports":[],"format":"esm"},"packages/plugins/plugin-client/src/types.ts":{"bytes":10056,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-client/src/components/IdentityDialog.tsx":{"bytes":6849,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-client/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-client/src/components/JoinDialog.tsx":{"bytes":6207,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-client/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-client/src/components/RecoveryCodeDialog.tsx":{"bytes":8973,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-client/src/components/index.ts":{"bytes":739,"imports":[{"path":"packages/plugins/plugin-client/src/components/IdentityDialog.tsx","kind":"import-statement","original":"./IdentityDialog"},{"path":"packages/plugins/plugin-client/src/components/JoinDialog.tsx","kind":"import-statement","original":"./JoinDialog"},{"path":"packages/plugins/plugin-client/src/components/RecoveryCodeDialog.tsx","kind":"import-statement","original":"./RecoveryCodeDialog"}],"format":"esm"},"packages/plugins/plugin-client/src/translations.ts":{"bytes":2699,"imports":[{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-client/src/ClientPlugin.tsx":{"bytes":30134,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/config","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-client/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-client/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-client/src/index.ts":{"bytes":782,"imports":[{"path":"packages/plugins/plugin-client/src/ClientPlugin.tsx","kind":"import-statement","original":"./ClientPlugin"},{"path":"packages/plugins/plugin-client/src/ClientPlugin.tsx","kind":"import-statement","original":"./ClientPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-client/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":26415},"packages/plugins/plugin-client/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-52IJQ35F.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-X4QUPYC6.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/config","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["ClientPlugin","default"],"entryPoint":"packages/plugins/plugin-client/src/index.ts","inputs":{"packages/plugins/plugin-client/src/ClientPlugin.tsx":{"bytesInOutput":7912},"packages/plugins/plugin-client/src/components/IdentityDialog.tsx":{"bytesInOutput":1654},"packages/plugins/plugin-client/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-client/src/components/JoinDialog.tsx":{"bytesInOutput":1552},"packages/plugins/plugin-client/src/components/RecoveryCodeDialog.tsx":{"bytesInOutput":2774},"packages/plugins/plugin-client/src/translations.ts":{"bytesInOutput":758},"packages/plugins/plugin-client/src/index.ts":{"bytesInOutput":32}},"bytes":15319},"packages/plugins/plugin-client/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-client/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-X4QUPYC6.mjs","kind":"import-statement"}],"exports":["CLIENT_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-client/src/meta.ts","inputs":{},"bytes":161},"packages/plugins/plugin-client/dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-client/dist/lib/browser/types.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-52IJQ35F.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-X4QUPYC6.mjs","kind":"import-statement"}],"exports":["ClientAction","parseClientPlugin"],"entryPoint":"packages/plugins/plugin-client/src/types.ts","inputs":{},"bytes":190},"packages/plugins/plugin-client/dist/lib/browser/chunk-52IJQ35F.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5431},"packages/plugins/plugin-client/dist/lib/browser/chunk-52IJQ35F.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-X4QUPYC6.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true}],"exports":["ClientAction","parseClientPlugin"],"inputs":{"packages/plugins/plugin-client/src/types.ts":{"bytesInOutput":2064}},"bytes":2261},"packages/plugins/plugin-client/dist/lib/browser/chunk-X4QUPYC6.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":447},"packages/plugins/plugin-client/dist/lib/browser/chunk-X4QUPYC6.mjs":{"imports":[],"exports":["CLIENT_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytesInOutput":108}},"bytes":243}}}
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytes":975,"imports":[],"format":"esm"},"packages/plugins/plugin-client/src/capabilities/capabilities.ts":{"bytes":1763,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-client/src/types.ts":{"bytes":10155,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-client/src/capabilities/app-graph-builder.ts":{"bytes":5039,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-client/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-client/src/events.ts":{"bytes":2078,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-client/src/capabilities/client.ts":{"bytes":4478,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-client/src/events.ts","kind":"import-statement","original":"../events"}],"format":"esm"},"packages/plugins/plugin-client/src/components/ManageCredentialsDialog.tsx":{"bytes":8888,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-client/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-client/src/components/IdentityDialog.tsx":{"bytes":8421,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/components/ManageCredentialsDialog.tsx","kind":"import-statement","original":"./ManageCredentialsDialog"},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-client/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-client/src/components/JoinDialog.tsx":{"bytes":6324,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-client/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-client/src/components/RecoveryCodeDialog.tsx":{"bytes":9086,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-client/src/components/RecoverySetupDialog.tsx":{"bytes":7223,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-client/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-client/src/components/index.ts":{"bytes":858,"imports":[{"path":"packages/plugins/plugin-client/src/components/IdentityDialog.tsx","kind":"import-statement","original":"./IdentityDialog"},{"path":"packages/plugins/plugin-client/src/components/JoinDialog.tsx","kind":"import-statement","original":"./JoinDialog"},{"path":"packages/plugins/plugin-client/src/components/RecoveryCodeDialog.tsx","kind":"import-statement","original":"./RecoveryCodeDialog"},{"path":"packages/plugins/plugin-client/src/components/RecoverySetupDialog.tsx","kind":"import-statement","original":"./RecoverySetupDialog"}],"format":"esm"},"packages/plugins/plugin-client/src/capabilities/intent-resolver.ts":{"bytes":28896,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-client/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-client/src/events.ts","kind":"import-statement","original":"../events"},{"path":"packages/plugins/plugin-client/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-client/src/capabilities/react-context.tsx":{"bytes":2461,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-client/src/capabilities/react-surface.tsx":{"bytes":6816,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-client/src/components/ManageCredentialsDialog.tsx","kind":"import-statement","original":"../components/ManageCredentialsDialog"}],"format":"esm"},"packages/plugins/plugin-client/src/capabilities/schema.ts":{"bytes":3522,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"}],"format":"esm"},"packages/plugins/plugin-client/src/capabilities/index.ts":{"bytes":2186,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-client/src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"packages/plugins/plugin-client/src/capabilities/client.ts","kind":"dynamic-import","original":"./client"},{"path":"packages/plugins/plugin-client/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-client/src/capabilities/react-context.tsx","kind":"dynamic-import","original":"./react-context"},{"path":"packages/plugins/plugin-client/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"packages/plugins/plugin-client/src/capabilities/schema.ts","kind":"dynamic-import","original":"./schema"}],"format":"esm"},"packages/plugins/plugin-client/src/translations.ts":{"bytes":4585,"imports":[{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-client/src/ClientPlugin.ts":{"bytes":8570,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-client/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-client/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-client/src/index.ts":{"bytes":944,"imports":[{"path":"packages/plugins/plugin-client/src/ClientPlugin.ts","kind":"import-statement","original":"./ClientPlugin"},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-client/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-client/src/events.ts","kind":"import-statement","original":"./events"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-client/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7003},"packages/plugins/plugin-client/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-RGMLBYIF.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-GHEQL2E6.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/dist/lib/browser/app-graph-builder-ON64R7SO.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-client/dist/lib/browser/client-A7YSVURS.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-client/dist/lib/browser/intent-resolver-SSM6WXAW.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-client/dist/lib/browser/react-context-R3SG55F5.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-client/dist/lib/browser/react-surface-XGOUHVIH.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-client/dist/lib/browser/schema-J4MJIXRP.mjs","kind":"dynamic-import"}],"exports":["CLIENT_PLUGIN","ClientCapabilities","ClientEvents","ClientPlugin","meta"],"entryPoint":"packages/plugins/plugin-client/src/index.ts","inputs":{"packages/plugins/plugin-client/src/ClientPlugin.ts":{"bytesInOutput":1835},"packages/plugins/plugin-client/src/capabilities/index.ts":{"bytesInOutput":491},"packages/plugins/plugin-client/src/translations.ts":{"bytesInOutput":1468},"packages/plugins/plugin-client/src/index.ts":{"bytesInOutput":0}},"bytes":4325},"packages/plugins/plugin-client/dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-client/dist/lib/browser/types.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-7DPLXOMO.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"}],"exports":["ClientAction"],"entryPoint":"packages/plugins/plugin-client/src/types.ts","inputs":{},"bytes":148},"packages/plugins/plugin-client/dist/lib/browser/app-graph-builder-ON64R7SO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2382},"packages/plugins/plugin-client/dist/lib/browser/app-graph-builder-ON64R7SO.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-7DPLXOMO.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-client/src/capabilities/app-graph-builder.ts","inputs":{"packages/plugins/plugin-client/src/capabilities/app-graph-builder.ts":{"bytesInOutput":1065}},"bytes":1356},"packages/plugins/plugin-client/dist/lib/browser/client-A7YSVURS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2341},"packages/plugins/plugin-client/dist/lib/browser/client-A7YSVURS.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-RGMLBYIF.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-GHEQL2E6.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-client/src/capabilities/client.ts","inputs":{"packages/plugins/plugin-client/src/capabilities/client.ts":{"bytesInOutput":773}},"bytes":1067},"packages/plugins/plugin-client/dist/lib/browser/intent-resolver-SSM6WXAW.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12808},"packages/plugins/plugin-client/dist/lib/browser/intent-resolver-SSM6WXAW.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-RGMLBYIF.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-EYBZZHSM.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-7DPLXOMO.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-GHEQL2E6.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-client/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-client/src/capabilities/intent-resolver.ts":{"bytesInOutput":7499}},"bytes":7971},"packages/plugins/plugin-client/dist/lib/browser/chunk-RGMLBYIF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":978},"packages/plugins/plugin-client/dist/lib/browser/chunk-RGMLBYIF.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["ClientEvents"],"inputs":{"packages/plugins/plugin-client/src/events.ts":{"bytesInOutput":473}},"bytes":650},"packages/plugins/plugin-client/dist/lib/browser/react-context-R3SG55F5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1225},"packages/plugins/plugin-client/dist/lib/browser/react-context-R3SG55F5.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-GHEQL2E6.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-client/src/capabilities/react-context.tsx","inputs":{"packages/plugins/plugin-client/src/capabilities/react-context.tsx":{"bytesInOutput":452}},"bytes":738},"packages/plugins/plugin-client/dist/lib/browser/react-surface-XGOUHVIH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3395},"packages/plugins/plugin-client/dist/lib/browser/react-surface-XGOUHVIH.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-EYBZZHSM.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-7DPLXOMO.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-client/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-client/src/capabilities/react-surface.tsx":{"bytesInOutput":1368}},"bytes":1852},"packages/plugins/plugin-client/dist/lib/browser/chunk-EYBZZHSM.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":20549},"packages/plugins/plugin-client/dist/lib/browser/chunk-EYBZZHSM.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-7DPLXOMO.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true}],"exports":["IDENTITY_DIALOG","IdentityDialog","JOIN_DIALOG","JoinDialog","MANAGE_CREDENTIALS_DIALOG","ManageCredentialsDialog","RECOVER_CODE_DIALOG","RECOVER_SETUP_DIALOG","RecoveryCodeDialog","RecoverySetupDialog"],"inputs":{"packages/plugins/plugin-client/src/components/ManageCredentialsDialog.tsx":{"bytesInOutput":2202},"packages/plugins/plugin-client/src/components/IdentityDialog.tsx":{"bytesInOutput":2086},"packages/plugins/plugin-client/src/components/JoinDialog.tsx":{"bytesInOutput":1587},"packages/plugins/plugin-client/src/components/RecoveryCodeDialog.tsx":{"bytesInOutput":2781},"packages/plugins/plugin-client/src/components/RecoverySetupDialog.tsx":{"bytesInOutput":1952},"packages/plugins/plugin-client/src/components/index.ts":{"bytesInOutput":0}},"bytes":11348},"packages/plugins/plugin-client/dist/lib/browser/chunk-7DPLXOMO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5279},"packages/plugins/plugin-client/dist/lib/browser/chunk-7DPLXOMO.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true}],"exports":["ClientAction"],"inputs":{"packages/plugins/plugin-client/src/types.ts":{"bytesInOutput":2327}},"bytes":2503},"packages/plugins/plugin-client/dist/lib/browser/schema-J4MJIXRP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1855},"packages/plugins/plugin-client/dist/lib/browser/schema-J4MJIXRP.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-GHEQL2E6.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-client/src/capabilities/schema.ts","inputs":{"packages/plugins/plugin-client/src/capabilities/schema.ts":{"bytesInOutput":594}},"bytes":833},"packages/plugins/plugin-client/dist/lib/browser/chunk-GHEQL2E6.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":865},"packages/plugins/plugin-client/dist/lib/browser/chunk-GHEQL2E6.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["ClientCapabilities"],"inputs":{"packages/plugins/plugin-client/src/capabilities/capabilities.ts":{"bytesInOutput":340}},"bytes":542},"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":462},"packages/plugins/plugin-client/dist/lib/browser/chunk-NHIL4T3L.mjs":{"imports":[],"exports":["CLIENT_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytesInOutput":100}},"bytes":227}}}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ClientCapabilities
|
|
3
|
+
} from "./chunk-GHEQL2E6.mjs";
|
|
4
|
+
import {
|
|
5
|
+
CLIENT_PLUGIN
|
|
6
|
+
} from "./chunk-NHIL4T3L.mjs";
|
|
7
|
+
|
|
8
|
+
// packages/plugins/plugin-client/src/capabilities/react-context.tsx
|
|
9
|
+
import React from "react";
|
|
10
|
+
import { Capabilities, contributes, useCapability } from "@dxos/app-framework";
|
|
11
|
+
import { ClientProvider } from "@dxos/react-client";
|
|
12
|
+
var react_context_default = () => contributes(Capabilities.ReactContext, {
|
|
13
|
+
id: CLIENT_PLUGIN,
|
|
14
|
+
context: ({ children }) => {
|
|
15
|
+
const client = useCapability(ClientCapabilities.Client);
|
|
16
|
+
return /* @__PURE__ */ React.createElement(ClientProvider, {
|
|
17
|
+
client
|
|
18
|
+
}, children);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
export {
|
|
22
|
+
react_context_default as default
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=react-context-R3SG55F5.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-context.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, useCapability } from '@dxos/app-framework';\nimport { ClientProvider } from '@dxos/react-client';\n\nimport { ClientCapabilities } from './capabilities';\nimport { CLIENT_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactContext, {\n id: CLIENT_PLUGIN,\n context: ({ children }) => {\n const client = useCapability(ClientCapabilities.Client);\n return <ClientProvider client={client}>{children}</ClientProvider>;\n },\n });\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,sBAAsB;AAK/B,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,IAAIC;EACJC,SAAS,CAAC,EAAEC,SAAQ,MAAE;AACpB,UAAMC,SAASC,cAAcC,mBAAmBC,MAAM;AACtD,WAAO,sBAAA,cAACC,gBAAAA;MAAeJ;OAAiBD,QAAAA;EAC1C;AACF,CAAA;",
|
|
6
|
+
"names": ["React", "Capabilities", "contributes", "useCapability", "ClientProvider", "contributes", "Capabilities", "ReactContext", "id", "CLIENT_PLUGIN", "context", "children", "client", "useCapability", "ClientCapabilities", "Client", "ClientProvider"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {
|
|
2
|
+
IDENTITY_DIALOG,
|
|
3
|
+
IdentityDialog,
|
|
4
|
+
JOIN_DIALOG,
|
|
5
|
+
JoinDialog,
|
|
6
|
+
MANAGE_CREDENTIALS_DIALOG,
|
|
7
|
+
ManageCredentialsDialog,
|
|
8
|
+
RECOVER_CODE_DIALOG,
|
|
9
|
+
RECOVER_SETUP_DIALOG,
|
|
10
|
+
RecoveryCodeDialog,
|
|
11
|
+
RecoverySetupDialog
|
|
12
|
+
} from "./chunk-EYBZZHSM.mjs";
|
|
13
|
+
import "./chunk-7DPLXOMO.mjs";
|
|
14
|
+
import "./chunk-NHIL4T3L.mjs";
|
|
15
|
+
|
|
16
|
+
// packages/plugins/plugin-client/src/capabilities/react-surface.tsx
|
|
17
|
+
import React from "react";
|
|
18
|
+
import { createSurface, Capabilities, contributes } from "@dxos/app-framework";
|
|
19
|
+
var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilities.ReactSurface, [
|
|
20
|
+
createSurface({
|
|
21
|
+
id: IDENTITY_DIALOG,
|
|
22
|
+
role: "dialog",
|
|
23
|
+
filter: (data) => data.component === IDENTITY_DIALOG,
|
|
24
|
+
component: ({ data }) => /* @__PURE__ */ React.createElement(IdentityDialog, {
|
|
25
|
+
...data.props,
|
|
26
|
+
createInvitationUrl
|
|
27
|
+
})
|
|
28
|
+
}),
|
|
29
|
+
createSurface({
|
|
30
|
+
id: JOIN_DIALOG,
|
|
31
|
+
role: "dialog",
|
|
32
|
+
filter: (data) => data.component === JOIN_DIALOG,
|
|
33
|
+
component: ({ data }) => /* @__PURE__ */ React.createElement(JoinDialog, data.props)
|
|
34
|
+
}),
|
|
35
|
+
createSurface({
|
|
36
|
+
id: RECOVER_CODE_DIALOG,
|
|
37
|
+
role: "dialog",
|
|
38
|
+
filter: (data) => data.component === RECOVER_CODE_DIALOG,
|
|
39
|
+
component: ({ data }) => /* @__PURE__ */ React.createElement(RecoveryCodeDialog, data.props)
|
|
40
|
+
}),
|
|
41
|
+
createSurface({
|
|
42
|
+
id: RECOVER_SETUP_DIALOG,
|
|
43
|
+
role: "dialog",
|
|
44
|
+
filter: (data) => data.component === RECOVER_SETUP_DIALOG,
|
|
45
|
+
component: () => /* @__PURE__ */ React.createElement(RecoverySetupDialog, null)
|
|
46
|
+
}),
|
|
47
|
+
createSurface({
|
|
48
|
+
id: MANAGE_CREDENTIALS_DIALOG,
|
|
49
|
+
role: "dialog",
|
|
50
|
+
filter: (data) => data.component === MANAGE_CREDENTIALS_DIALOG,
|
|
51
|
+
component: () => /* @__PURE__ */ React.createElement(ManageCredentialsDialog, null)
|
|
52
|
+
})
|
|
53
|
+
]);
|
|
54
|
+
export {
|
|
55
|
+
react_surface_default as default
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=react-surface-XGOUHVIH.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createSurface, Capabilities, contributes } from '@dxos/app-framework';\nimport { type IdentityPanelProps, type JoinPanelProps } from '@dxos/shell/react';\n\nimport {\n IDENTITY_DIALOG,\n IdentityDialog,\n JOIN_DIALOG,\n JoinDialog,\n RECOVER_CODE_DIALOG,\n RECOVER_SETUP_DIALOG,\n RecoveryCodeDialog,\n RecoverySetupDialog,\n type RecoveryCodeDialogProps,\n} from '../components';\nimport { MANAGE_CREDENTIALS_DIALOG, ManageCredentialsDialog } from '../components/ManageCredentialsDialog';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: IDENTITY_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: IdentityPanelProps } => data.component === IDENTITY_DIALOG,\n component: ({ data }) => <IdentityDialog {...data.props} createInvitationUrl={createInvitationUrl} />,\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n createSurface({\n id: RECOVER_CODE_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: RecoveryCodeDialogProps } => data.component === RECOVER_CODE_DIALOG,\n component: ({ data }) => <RecoveryCodeDialog {...data.props} />,\n }),\n createSurface({\n id: RECOVER_SETUP_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === RECOVER_SETUP_DIALOG,\n component: () => <RecoverySetupDialog />,\n }),\n createSurface({\n id: MANAGE_CREDENTIALS_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === MANAGE_CREDENTIALS_DIALOG,\n component: () => <ManageCredentialsDialog />,\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,eAAeC,cAAcC,mBAAmB;AAoBzD,IAAA,wBAAe,CAAC,EAAEC,oBAAmB,MACnCC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAIC;IACJC,MAAM;IACNC,QAAQ,CAACC,SAAgDA,KAAKC,cAAcJ;IAC5EI,WAAW,CAAC,EAAED,KAAI,MAAO,sBAAA,cAACE,gBAAAA;MAAgB,GAAGF,KAAKG;MAAOZ;;EAC3D,CAAA;EACAI,cAAc;IACZC,IAAIQ;IACJN,MAAM;IACNC,QAAQ,CAACC,SAA4CA,KAAKC,cAAcG;IACxEH,WAAW,CAAC,EAAED,KAAI,MAAO,sBAAA,cAACK,YAAeL,KAAKG,KAAK;EACrD,CAAA;EACAR,cAAc;IACZC,IAAIU;IACJR,MAAM;IACNC,QAAQ,CAACC,SAAqDA,KAAKC,cAAcK;IACjFL,WAAW,CAAC,EAAED,KAAI,MAAO,sBAAA,cAACO,oBAAuBP,KAAKG,KAAK;EAC7D,CAAA;EACAR,cAAc;IACZC,IAAIY;IACJV,MAAM;IACNC,QAAQ,CAACC,SAAsBA,KAAKC,cAAcO;IAClDP,WAAW,MAAM,sBAAA,cAACQ,qBAAAA,IAAAA;EACpB,CAAA;EACAd,cAAc;IACZC,IAAIc;IACJZ,MAAM;IACNC,QAAQ,CAACC,SAAsBA,KAAKC,cAAcS;IAClDT,WAAW,MAAM,sBAAA,cAACU,yBAAAA,IAAAA;EACpB,CAAA;CACD;",
|
|
6
|
+
"names": ["React", "createSurface", "Capabilities", "contributes", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "IDENTITY_DIALOG", "role", "filter", "data", "component", "IdentityDialog", "props", "JOIN_DIALOG", "JoinDialog", "RECOVER_CODE_DIALOG", "RecoveryCodeDialog", "RECOVER_SETUP_DIALOG", "RecoverySetupDialog", "MANAGE_CREDENTIALS_DIALOG", "ManageCredentialsDialog"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ClientCapabilities
|
|
3
|
+
} from "./chunk-GHEQL2E6.mjs";
|
|
4
|
+
import "./chunk-NHIL4T3L.mjs";
|
|
5
|
+
|
|
6
|
+
// packages/plugins/plugin-client/src/capabilities/schema.ts
|
|
7
|
+
import { effect } from "@preact/signals-core";
|
|
8
|
+
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
9
|
+
var schema_default = (context) => {
|
|
10
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
11
|
+
let previous = [];
|
|
12
|
+
const unsubscribe = effect(() => {
|
|
13
|
+
const schemas = Array.from(new Set(context.requestCapabilities(ClientCapabilities.Schema).flat()));
|
|
14
|
+
const newSchemas = schemas.filter((schema) => !previous.includes(schema));
|
|
15
|
+
previous = schemas;
|
|
16
|
+
client.addTypes(newSchemas);
|
|
17
|
+
});
|
|
18
|
+
return contributes(Capabilities.Null, null, () => unsubscribe());
|
|
19
|
+
};
|
|
20
|
+
export {
|
|
21
|
+
schema_default as default
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=schema-J4MJIXRP.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/schema.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type TypedObject } from '@dxos/echo-schema';\n\nimport { ClientCapabilities } from './capabilities';\n\nexport default (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n\n // TODO(wittjosiah): Unregister schemas when they are disabled.\n let previous: TypedObject[] = [];\n const unsubscribe = effect(() => {\n const schemas = Array.from(new Set(context.requestCapabilities(ClientCapabilities.Schema).flat()));\n // TODO(wittjosiah): Filter out schemas which the client has already registered.\n const newSchemas = schemas.filter((schema) => !previous.includes(schema));\n previous = schemas;\n client.addTypes(newSchemas);\n });\n\n return contributes(Capabilities.Null, null, () => unsubscribe());\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,cAAcC,mBAAwC;AAK/D,IAAA,iBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAGlE,MAAIC,WAA0B,CAAA;AAC9B,QAAMC,cAAcC,OAAO,MAAA;AACzB,UAAMC,UAAUC,MAAMC,KAAK,IAAIC,IAAIX,QAAQY,oBAAoBT,mBAAmBU,MAAM,EAAEC,KAAI,CAAA,CAAA;AAE9F,UAAMC,aAAaP,QAAQQ,OAAO,CAACC,WAAW,CAACZ,SAASa,SAASD,MAAAA,CAAAA;AACjEZ,eAAWG;AACXP,WAAOkB,SAASJ,UAAAA;EAClB,CAAA;AAEA,SAAOK,YAAYC,aAAaC,MAAM,MAAM,MAAMhB,YAAAA,CAAAA;AACpD;",
|
|
6
|
+
"names": ["effect", "Capabilities", "contributes", "context", "client", "requestCapability", "ClientCapabilities", "Client", "previous", "unsubscribe", "effect", "schemas", "Array", "from", "Set", "requestCapabilities", "Schema", "flat", "newSchemas", "filter", "schema", "includes", "addTypes", "contributes", "Capabilities", "Null"]
|
|
7
|
+
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
ClientAction
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import "./chunk-X4QUPYC6.mjs";
|
|
2
|
+
ClientAction
|
|
3
|
+
} from "./chunk-7DPLXOMO.mjs";
|
|
4
|
+
import "./chunk-NHIL4T3L.mjs";
|
|
6
5
|
export {
|
|
7
|
-
ClientAction
|
|
8
|
-
parseClientPlugin
|
|
6
|
+
ClientAction
|
|
9
7
|
};
|
|
10
8
|
//# sourceMappingURL=types.mjs.map
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var app_graph_builder_RW7ESEX3_exports = {};
|
|
20
|
+
__export(app_graph_builder_RW7ESEX3_exports, {
|
|
21
|
+
default: () => app_graph_builder_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(app_graph_builder_RW7ESEX3_exports);
|
|
24
|
+
var import_chunk_TREVKZCJ = require("./chunk-TREVKZCJ.cjs");
|
|
25
|
+
var import_chunk_OIFPM5ZW = require("./chunk-OIFPM5ZW.cjs");
|
|
26
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
27
|
+
var import_app_framework2 = require("@dxos/app-framework");
|
|
28
|
+
var import_plugin_graph = require("@dxos/plugin-graph");
|
|
29
|
+
var app_graph_builder_default = (context) => (0, import_app_framework2.contributes)(import_app_framework2.Capabilities.AppGraphBuilder, (0, import_plugin_graph.createExtension)({
|
|
30
|
+
id: import_chunk_OIFPM5ZW.CLIENT_PLUGIN,
|
|
31
|
+
filter: (node) => node.id === "root",
|
|
32
|
+
actions: () => [
|
|
33
|
+
{
|
|
34
|
+
id: `${import_chunk_OIFPM5ZW.CLIENT_PLUGIN}/open-shell`,
|
|
35
|
+
data: async () => {
|
|
36
|
+
const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework2.Capabilities.IntentDispatcher);
|
|
37
|
+
await dispatch((0, import_app_framework.createIntent)(import_chunk_TREVKZCJ.ClientAction.ShareIdentity));
|
|
38
|
+
},
|
|
39
|
+
properties: {
|
|
40
|
+
label: [
|
|
41
|
+
"open shell label",
|
|
42
|
+
{
|
|
43
|
+
ns: import_chunk_OIFPM5ZW.CLIENT_PLUGIN
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
icon: "ph--address-book--regular",
|
|
47
|
+
keyBinding: {
|
|
48
|
+
macos: "meta+shift+.",
|
|
49
|
+
// TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
|
|
50
|
+
windows: "alt+shift+.",
|
|
51
|
+
linux: "alt+shift+>"
|
|
52
|
+
},
|
|
53
|
+
testId: "clientPlugin.openShell"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}));
|
|
58
|
+
//# sourceMappingURL=app-graph-builder-RW7ESEX3.cjs.map
|