@dxos/plugin-client 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446

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.
Files changed (134) hide show
  1. package/dist/lib/browser/{app-graph-builder-ROTCC3C4.mjs → app-graph-builder-WAS4YZNA.mjs} +31 -35
  2. package/dist/lib/browser/app-graph-builder-WAS4YZNA.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-AN7FJKIJ.mjs +105 -0
  4. package/dist/lib/browser/chunk-AN7FJKIJ.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-7OW22D2O.mjs → chunk-XZ4TQC56.mjs} +25 -29
  6. package/dist/lib/browser/chunk-XZ4TQC56.mjs.map +7 -0
  7. package/dist/lib/browser/{client-ICXXK55V.mjs → client-LV67Q3R7.mjs} +1 -1
  8. package/dist/lib/browser/client-LV67Q3R7.mjs.map +7 -0
  9. package/dist/lib/browser/index.mjs +9 -9
  10. package/dist/lib/browser/index.mjs.map +3 -3
  11. package/dist/lib/browser/{intent-resolver-L4STUWGK.mjs → intent-resolver-NCISOZW4.mjs} +10 -10
  12. package/dist/lib/browser/intent-resolver-NCISOZW4.mjs.map +7 -0
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/migrations-3DWFOL5Q.mjs +21 -0
  15. package/dist/lib/browser/migrations-3DWFOL5Q.mjs.map +7 -0
  16. package/dist/lib/browser/{react-surface-VXFG7BEM.mjs → react-surface-J7SZR2J6.mjs} +3 -3
  17. package/dist/lib/browser/schema-JQAT6Q7S.mjs +23 -0
  18. package/dist/lib/browser/schema-JQAT6Q7S.mjs.map +7 -0
  19. package/dist/lib/browser/types.mjs +1 -1
  20. package/dist/lib/node/{app-graph-builder-DOHFMHXU.cjs → app-graph-builder-PXOJZJO5.cjs} +40 -44
  21. package/dist/lib/node/app-graph-builder-PXOJZJO5.cjs.map +7 -0
  22. package/dist/lib/node/{chunk-FABH7MJ3.cjs → chunk-3JE5BFCT.cjs} +25 -29
  23. package/dist/lib/node/chunk-3JE5BFCT.cjs.map +7 -0
  24. package/dist/lib/node/{chunk-J5SQ5Q22.cjs → chunk-FROKBEVH.cjs} +47 -47
  25. package/dist/lib/node/chunk-FROKBEVH.cjs.map +7 -0
  26. package/dist/lib/node/{client-OUBG63HJ.cjs → client-BKTGRBYM.cjs} +4 -4
  27. package/dist/lib/node/client-BKTGRBYM.cjs.map +7 -0
  28. package/dist/lib/node/index.cjs +9 -9
  29. package/dist/lib/node/index.cjs.map +3 -3
  30. package/dist/lib/node/{intent-resolver-IDLAVEHS.cjs → intent-resolver-U2576ALY.cjs} +29 -29
  31. package/dist/lib/node/intent-resolver-U2576ALY.cjs.map +7 -0
  32. package/dist/lib/node/meta.json +1 -1
  33. package/dist/lib/node/{migrations-ZI52SX4M.cjs → migrations-TGNI4FVL.cjs} +9 -11
  34. package/dist/lib/node/migrations-TGNI4FVL.cjs.map +7 -0
  35. package/dist/lib/node/{react-surface-UGXE6OAD.cjs → react-surface-BSTIXMER.cjs} +24 -24
  36. package/dist/lib/node/{schema-defs-BYGBDKOU.cjs → schema-INQ72F54.cjs} +11 -13
  37. package/dist/lib/node/schema-INQ72F54.cjs.map +7 -0
  38. package/dist/lib/node/types.cjs +3 -3
  39. package/dist/lib/node/types.cjs.map +1 -1
  40. package/dist/lib/node-esm/{app-graph-builder-XMXJG5YT.mjs → app-graph-builder-KIN6NWFI.mjs} +31 -35
  41. package/dist/lib/node-esm/app-graph-builder-KIN6NWFI.mjs.map +7 -0
  42. package/dist/lib/node-esm/chunk-AD5W5QCQ.mjs +106 -0
  43. package/dist/lib/node-esm/chunk-AD5W5QCQ.mjs.map +7 -0
  44. package/dist/lib/node-esm/{chunk-34X2AMVA.mjs → chunk-LZN2UNN7.mjs} +25 -29
  45. package/dist/lib/node-esm/chunk-LZN2UNN7.mjs.map +7 -0
  46. package/dist/lib/node-esm/{client-YJNEHNUV.mjs → client-QQD6WFOB.mjs} +1 -1
  47. package/dist/lib/node-esm/client-QQD6WFOB.mjs.map +7 -0
  48. package/dist/lib/node-esm/index.mjs +9 -9
  49. package/dist/lib/node-esm/index.mjs.map +3 -3
  50. package/dist/lib/node-esm/{intent-resolver-73FZIXX5.mjs → intent-resolver-G25U4UGI.mjs} +10 -10
  51. package/dist/lib/node-esm/intent-resolver-G25U4UGI.mjs.map +7 -0
  52. package/dist/lib/node-esm/meta.json +1 -1
  53. package/dist/lib/node-esm/{migrations-GHO52HKW.mjs → migrations-IVGATGZR.mjs} +6 -8
  54. package/dist/lib/node-esm/migrations-IVGATGZR.mjs.map +7 -0
  55. package/dist/lib/node-esm/{react-surface-R65DYUV6.mjs → react-surface-ZPI7T4EM.mjs} +3 -3
  56. package/dist/lib/node-esm/schema-OK7HY3JJ.mjs +24 -0
  57. package/dist/lib/node-esm/schema-OK7HY3JJ.mjs.map +7 -0
  58. package/dist/lib/node-esm/types.mjs +1 -1
  59. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  60. package/dist/types/src/capabilities/app-graph-builder.d.ts +179 -2
  61. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/client.d.ts +2 -2
  63. package/dist/types/src/capabilities/client.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/index.d.ts +181 -5
  65. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  67. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/migrations.d.ts +2 -2
  69. package/dist/types/src/capabilities/migrations.d.ts.map +1 -1
  70. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/schema.d.ts +4 -0
  72. package/dist/types/src/capabilities/schema.d.ts.map +1 -0
  73. package/dist/types/src/components/DevicesContainer.d.ts +3 -4
  74. package/dist/types/src/components/DevicesContainer.d.ts.map +1 -1
  75. package/dist/types/src/components/DevicesContainer.stories.d.ts.map +1 -1
  76. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  77. package/dist/types/src/components/ProfileContainer.d.ts.map +1 -1
  78. package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +1 -1
  79. package/dist/types/src/components/RecoveryCredentialsContainer.d.ts.map +1 -1
  80. package/dist/types/src/components/ResetDialog.d.ts.map +1 -1
  81. package/dist/types/src/components/ResetDialog.stories.d.ts.map +1 -1
  82. package/dist/types/src/types.d.ts +53 -53
  83. package/dist/types/src/types.d.ts.map +1 -1
  84. package/dist/types/tsconfig.tsbuildinfo +1 -1
  85. package/package.json +25 -31
  86. package/src/ClientPlugin.ts +2 -2
  87. package/src/capabilities/app-graph-builder.ts +76 -94
  88. package/src/capabilities/client.ts +2 -2
  89. package/src/capabilities/index.ts +1 -1
  90. package/src/capabilities/intent-resolver.ts +9 -9
  91. package/src/capabilities/migrations.ts +11 -14
  92. package/src/capabilities/schema.ts +26 -0
  93. package/src/components/DevicesContainer.stories.tsx +3 -7
  94. package/src/components/DevicesContainer.tsx +61 -85
  95. package/src/components/ProfileContainer.stories.tsx +1 -1
  96. package/src/components/ProfileContainer.tsx +21 -30
  97. package/src/components/RecoveryCodeDialog.stories.tsx +1 -1
  98. package/src/components/RecoveryCredentialsContainer.stories.tsx +2 -2
  99. package/src/components/RecoveryCredentialsContainer.tsx +46 -48
  100. package/src/components/ResetDialog.stories.tsx +1 -7
  101. package/src/translations.ts +2 -2
  102. package/src/types.ts +46 -50
  103. package/dist/lib/browser/app-graph-builder-ROTCC3C4.mjs.map +0 -7
  104. package/dist/lib/browser/chunk-7OW22D2O.mjs.map +0 -7
  105. package/dist/lib/browser/chunk-XPHDZ277.mjs +0 -105
  106. package/dist/lib/browser/chunk-XPHDZ277.mjs.map +0 -7
  107. package/dist/lib/browser/client-ICXXK55V.mjs.map +0 -7
  108. package/dist/lib/browser/intent-resolver-L4STUWGK.mjs.map +0 -7
  109. package/dist/lib/browser/migrations-DYDZ7DVP.mjs +0 -23
  110. package/dist/lib/browser/migrations-DYDZ7DVP.mjs.map +0 -7
  111. package/dist/lib/browser/schema-defs-QVXP2JGN.mjs +0 -25
  112. package/dist/lib/browser/schema-defs-QVXP2JGN.mjs.map +0 -7
  113. package/dist/lib/node/app-graph-builder-DOHFMHXU.cjs.map +0 -7
  114. package/dist/lib/node/chunk-FABH7MJ3.cjs.map +0 -7
  115. package/dist/lib/node/chunk-J5SQ5Q22.cjs.map +0 -7
  116. package/dist/lib/node/client-OUBG63HJ.cjs.map +0 -7
  117. package/dist/lib/node/intent-resolver-IDLAVEHS.cjs.map +0 -7
  118. package/dist/lib/node/migrations-ZI52SX4M.cjs.map +0 -7
  119. package/dist/lib/node/schema-defs-BYGBDKOU.cjs.map +0 -7
  120. package/dist/lib/node-esm/app-graph-builder-XMXJG5YT.mjs.map +0 -7
  121. package/dist/lib/node-esm/chunk-34X2AMVA.mjs.map +0 -7
  122. package/dist/lib/node-esm/chunk-V6SJNSKG.mjs +0 -106
  123. package/dist/lib/node-esm/chunk-V6SJNSKG.mjs.map +0 -7
  124. package/dist/lib/node-esm/client-YJNEHNUV.mjs.map +0 -7
  125. package/dist/lib/node-esm/intent-resolver-73FZIXX5.mjs.map +0 -7
  126. package/dist/lib/node-esm/migrations-GHO52HKW.mjs.map +0 -7
  127. package/dist/lib/node-esm/schema-defs-O4OHIIBN.mjs +0 -26
  128. package/dist/lib/node-esm/schema-defs-O4OHIIBN.mjs.map +0 -7
  129. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  130. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  131. package/src/capabilities/schema-defs.ts +0 -29
  132. /package/dist/lib/browser/{react-surface-VXFG7BEM.mjs.map → react-surface-J7SZR2J6.mjs.map} +0 -0
  133. /package/dist/lib/node/{react-surface-UGXE6OAD.cjs.map → react-surface-BSTIXMER.cjs.map} +0 -0
  134. /package/dist/lib/node-esm/{react-surface-R65DYUV6.mjs.map → react-surface-ZPI7T4EM.mjs.map} +0 -0
@@ -1,106 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- CLIENT_PLUGIN
4
- } from "./chunk-HM7VB4ZV.mjs";
5
-
6
- // packages/plugins/plugin-client/src/types.ts
7
- import { Schema } from "effect";
8
- import { PublicKey } from "@dxos/react-client";
9
- var IdentitySchema = Schema.Struct({
10
- identityKey: Schema.instanceOf(PublicKey),
11
- spaceKey: Schema.optional(Schema.instanceOf(PublicKey)),
12
- profile: Schema.optional(Schema.Struct({
13
- displayName: Schema.optional(Schema.String),
14
- avatarCid: Schema.optional(Schema.String),
15
- data: Schema.optional(Schema.Record({
16
- key: Schema.String,
17
- value: Schema.Any
18
- }))
19
- }))
20
- });
21
- var CLIENT_ACTION = `${CLIENT_PLUGIN}/action`;
22
- var ClientAction;
23
- (function(ClientAction2) {
24
- class CreateIdentity extends Schema.TaggedClass()(`${CLIENT_ACTION}/create-identity`, {
25
- input: Schema.Struct({
26
- displayName: Schema.optional(Schema.String)
27
- }),
28
- output: IdentitySchema
29
- }) {
30
- }
31
- ClientAction2.CreateIdentity = CreateIdentity;
32
- class JoinIdentity extends Schema.TaggedClass()(`${CLIENT_ACTION}/join-identity`, {
33
- input: Schema.Struct({
34
- invitationCode: Schema.optional(Schema.String)
35
- }),
36
- output: Schema.Void
37
- }) {
38
- }
39
- ClientAction2.JoinIdentity = JoinIdentity;
40
- class ShareIdentity extends Schema.TaggedClass()(`${CLIENT_ACTION}/share-identity`, {
41
- input: Schema.Void,
42
- output: Schema.Void
43
- }) {
44
- }
45
- ClientAction2.ShareIdentity = ShareIdentity;
46
- class RecoverIdentity extends Schema.TaggedClass()(`${CLIENT_ACTION}/recover-identity`, {
47
- input: Schema.Void,
48
- output: Schema.Void
49
- }) {
50
- }
51
- ClientAction2.RecoverIdentity = RecoverIdentity;
52
- class ResetStorage extends Schema.TaggedClass()(`${CLIENT_ACTION}/reset-storage`, {
53
- input: Schema.Struct({
54
- mode: Schema.optional(Schema.String)
55
- }),
56
- output: Schema.Void
57
- }) {
58
- }
59
- ClientAction2.ResetStorage = ResetStorage;
60
- class CreateAgent extends Schema.TaggedClass()(`${CLIENT_ACTION}/create-agent`, {
61
- input: Schema.Void,
62
- output: Schema.Void
63
- }) {
64
- }
65
- ClientAction2.CreateAgent = CreateAgent;
66
- class CreateRecoveryCode extends Schema.TaggedClass()(`${CLIENT_ACTION}/create-recovery-code`, {
67
- input: Schema.Void,
68
- output: Schema.Void
69
- }) {
70
- }
71
- ClientAction2.CreateRecoveryCode = CreateRecoveryCode;
72
- class CreatePasskey extends Schema.TaggedClass()(`${CLIENT_ACTION}/create-passkey`, {
73
- input: Schema.Void,
74
- output: Schema.Void
75
- }) {
76
- }
77
- ClientAction2.CreatePasskey = CreatePasskey;
78
- class RedeemPasskey extends Schema.TaggedClass()(`${CLIENT_ACTION}/redeem-passkey`, {
79
- input: Schema.Void,
80
- output: Schema.Void
81
- }) {
82
- }
83
- ClientAction2.RedeemPasskey = RedeemPasskey;
84
- class RedeemToken extends Schema.TaggedClass()(`${CLIENT_ACTION}/redeem-token`, {
85
- input: Schema.Struct({
86
- token: Schema.String
87
- }),
88
- output: Schema.Void
89
- }) {
90
- }
91
- ClientAction2.RedeemToken = RedeemToken;
92
- })(ClientAction || (ClientAction = {}));
93
- var Account;
94
- (function(Account2) {
95
- const _id = "dxos.org.plugin.client.account";
96
- Account2.id = `!${_id}`;
97
- Account2.Profile = `${_id}.profile`;
98
- Account2.Devices = `${_id}.devices`;
99
- Account2.Security = `${_id}.security`;
100
- })(Account || (Account = {}));
101
-
102
- export {
103
- ClientAction,
104
- Account
105
- };
106
- //# sourceMappingURL=chunk-V6SJNSKG.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { type PluginContext } from '@dxos/app-framework';\nimport { type Client, PublicKey, type ClientOptions } from '@dxos/react-client';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { CLIENT_PLUGIN } from './meta';\n\n// TODO(wittjosiah): Factor out. Generate?\nconst IdentitySchema = Schema.Struct({\n identityKey: Schema.instanceOf(PublicKey),\n spaceKey: Schema.optional(Schema.instanceOf(PublicKey)),\n profile: Schema.optional(\n Schema.Struct({\n displayName: Schema.optional(Schema.String),\n avatarCid: Schema.optional(Schema.String),\n data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n ),\n});\n\nconst CLIENT_ACTION = `${CLIENT_PLUGIN}/action`;\nexport namespace ClientAction {\n export class CreateIdentity extends Schema.TaggedClass<CreateIdentity>()(`${CLIENT_ACTION}/create-identity`, {\n input: Schema.Struct({\n displayName: Schema.optional(Schema.String),\n }),\n output: IdentitySchema,\n }) {}\n\n export class JoinIdentity extends Schema.TaggedClass<JoinIdentity>()(`${CLIENT_ACTION}/join-identity`, {\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class ShareIdentity extends Schema.TaggedClass<ShareIdentity>()(`${CLIENT_ACTION}/share-identity`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RecoverIdentity extends Schema.TaggedClass<RecoverIdentity>()(`${CLIENT_ACTION}/recover-identity`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class ResetStorage extends Schema.TaggedClass<ResetStorage>()(`${CLIENT_ACTION}/reset-storage`, {\n input: Schema.Struct({\n mode: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class CreateAgent extends Schema.TaggedClass<CreateAgent>()(`${CLIENT_ACTION}/create-agent`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class CreateRecoveryCode extends Schema.TaggedClass<CreateRecoveryCode>()(\n `${CLIENT_ACTION}/create-recovery-code`,\n {\n input: Schema.Void,\n output: Schema.Void,\n },\n ) {}\n\n export class CreatePasskey extends Schema.TaggedClass<CreatePasskey>()(`${CLIENT_ACTION}/create-passkey`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RedeemPasskey extends Schema.TaggedClass<RedeemPasskey>()(`${CLIENT_ACTION}/redeem-passkey`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RedeemToken extends Schema.TaggedClass<RedeemToken>()(`${CLIENT_ACTION}/redeem-token`, {\n input: Schema.Struct({\n token: Schema.String,\n }),\n output: Schema.Void,\n }) {}\n}\n\nexport type ClientPluginOptions = ClientOptions & {\n /**\n * Base URL for the invitation link.\n */\n invitationUrl?: string;\n\n /**\n * Query parameter for the invitation code.\n */\n invitationParam?: string;\n\n /**\n * Run after the client has been initialized.\n */\n onClientInitialized?: (context: PluginContext, client: Client) => MaybePromise<void>;\n\n /**\n * Called when the client is reset.\n */\n onReset?: (params: { target?: string }) => MaybePromise<void>;\n};\n\nexport namespace Account {\n // TODO(wittjosiah): Cannot use slashes in ids until we have a router which decouples ids from url paths.\n const _id = 'dxos.org.plugin.client.account';\n // TODO(wittjosiah): This is a hack to prevent the previous deck from being set for pinned items.\n // Ideally this should be worked into the data model in a generic way.\n export const id = `!${_id}`;\n\n export const Profile = `${_id}.profile`;\n export const Devices = `${_id}.devices`;\n export const Security = `${_id}.security`;\n}\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "PublicKey", "IdentitySchema", "Schema", "Struct", "identityKey", "instanceOf", "PublicKey", "spaceKey", "optional", "profile", "displayName", "String", "avatarCid", "data", "Record", "key", "value", "Any", "CLIENT_ACTION", "CLIENT_PLUGIN", "ClientAction", "CreateIdentity", "TaggedClass", "input", "output", "JoinIdentity", "invitationCode", "Void", "ShareIdentity", "RecoverIdentity", "ResetStorage", "mode", "CreateAgent", "CreateRecoveryCode", "CreatePasskey", "RedeemPasskey", "RedeemToken", "token", "Account", "_id", "id", "Profile", "Devices", "Security"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginContext } from '@dxos/app-framework';\nimport { Client } from '@dxos/react-client';\n\nimport { ClientCapabilities } from './capabilities';\nimport { ClientEvents } from '../events';\nimport { type ClientPluginOptions } from '../types';\n\ntype ClientCapabilityOptions = Omit<ClientPluginOptions, 'appKey' | 'invitationUrl' | 'invitationParam' | 'onReset'> & {\n context: PluginContext;\n};\n\nexport default async ({ context, onClientInitialized, ...options }: ClientCapabilityOptions) => {\n const client = new Client(options);\n await client.initialize();\n await onClientInitialized?.(context, client);\n\n // TODO(wittjosiah): Remove. This is a hack to get the app to boot with the new identity after a reset.\n client.reloaded.on(() => {\n client.halo.identity.subscribe(async (identity) => {\n if (identity) {\n window.location.href = window.location.origin;\n }\n });\n });\n\n const subscription = client.spaces.isReady.subscribe(async (ready) => {\n if (ready) {\n await context.activatePromise(ClientEvents.SpacesReady);\n }\n });\n\n return contributes(ClientCapabilities.Client, client, async () => {\n subscription.unsubscribe();\n await client.destroy();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;AAIA,SAASA,mBAAuC;AAChD,SAASC,cAAc;AAUvB,IAAA,iBAAe,OAAO,EAAEC,SAASC,qBAAqB,GAAGC,QAAAA,MAAkC;AACzF,QAAMC,SAAS,IAAIC,OAAOF,OAAAA;AAC1B,QAAMC,OAAOE,WAAU;AACvB,QAAMJ,sBAAsBD,SAASG,MAAAA;AAGrCA,SAAOG,SAASC,GAAG,MAAA;AACjBJ,WAAOK,KAAKC,SAASC,UAAU,OAAOD,aAAAA;AACpC,UAAIA,UAAU;AACZE,eAAOC,SAASC,OAAOF,OAAOC,SAASE;MACzC;IACF,CAAA;EACF,CAAA;AAEA,QAAMC,eAAeZ,OAAOa,OAAOC,QAAQP,UAAU,OAAOQ,UAAAA;AAC1D,QAAIA,OAAO;AACT,YAAMlB,QAAQmB,gBAAgBC,aAAaC,WAAW;IACxD;EACF,CAAA;AAEA,SAAOC,YAAYC,mBAAmBnB,QAAQD,QAAQ,YAAA;AACpDY,iBAAaS,YAAW;AACxB,UAAMrB,OAAOsB,QAAO;EACtB,CAAA;AACF;",
6
- "names": ["contributes", "Client", "context", "onClientInitialized", "options", "client", "Client", "initialize", "reloaded", "on", "halo", "identity", "subscribe", "window", "location", "href", "origin", "subscription", "spaces", "isReady", "ready", "activatePromise", "ClientEvents", "SpacesReady", "contributes", "ClientCapabilities", "unsubscribe", "destroy"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe } from 'effect';\n\nimport {\n Capabilities,\n chain,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n type PluginContext,\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 { JOIN_DIALOG, RECOVERY_CODE_DIALOG, RESET_DIALOG } from '../components';\nimport { ClientEvents } from '../events';\nimport { Account, ClientAction } from '../types';\n\ntype IntentResolverOptions = {\n context: PluginContext;\n appName?: string;\n};\n\nconst RECOVER_IDENTITY_RPC_TIMEOUT = 20_000;\n\nexport default ({ context, appName = 'Composer' }: IntentResolverOptions) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ClientAction.CreateIdentity,\n resolve: async () => {\n const manager = context.getCapability(Capabilities.PluginManager);\n const client = context.getCapability(ClientCapabilities.Client);\n const data = await client.halo.createIdentity();\n await manager.activate(ClientEvents.IdentityCreated);\n return {\n data,\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'identity.create',\n }),\n ],\n };\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 pipe(\n createIntent(LayoutAction.SwitchWorkspace, {\n part: 'workspace',\n subject: Account.id,\n }),\n chain(LayoutAction.Open, {\n part: 'main',\n subject: [Account.Profile],\n }),\n ),\n createIntent(ObservabilityAction.SendEvent, {\n name: 'identity.share',\n }),\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 return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: RESET_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n mode: data.mode ?? 'reset storage',\n },\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ClientAction.CreateAgent,\n resolve: async () => {\n const client = context.getCapability(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.getCapability(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: RECOVERY_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.getCapability(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 lookupKey = PublicKey.random();\n const credential = await navigator.credentials.create({\n publicKey: {\n challenge: new Uint8Array(),\n rp: { id: location.hostname, name: appName },\n user: {\n id: lookupKey.asUint8Array(),\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({\n data: {\n recoveryKey,\n algorithm,\n lookupKey,\n },\n });\n },\n }),\n createResolver({\n intent: ClientAction.RedeemPasskey,\n resolve: async () => {\n const client = context.getCapability(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 lookupKey = PublicKey.from(new Uint8Array((credential as any).response.userHandle));\n await client.services.services.IdentityService.recoverIdentity(\n {\n external: {\n lookupKey,\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 { timeout: RECOVER_IDENTITY_RPC_TIMEOUT },\n );\n },\n }),\n createResolver({\n intent: ClientAction.RedeemToken,\n resolve: async (data) => {\n const client = context.getCapability(ClientCapabilities.Client);\n // TODO(wittjosiah): This needs a proper api.\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n await client.services.services.IdentityService.recoverIdentity(\n { token: data.token },\n { timeout: RECOVER_IDENTITY_RPC_TIMEOUT },\n );\n },\n }),\n ]);\n"],
5
- "mappings": "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",
6
- "names": ["pipe", "Capabilities", "chain", "contributes", "createIntent", "createResolver", "LayoutAction", "invariant", "ObservabilityAction", "PublicKey", "RECOVER_IDENTITY_RPC_TIMEOUT", "context", "appName", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ClientAction", "CreateIdentity", "resolve", "manager", "getCapability", "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", "pipe", "SwitchWorkspace", "Account", "id", "chain", "Open", "Profile", "RecoverIdentity", "ResetStorage", "RESET_DIALOG", "mode", "CreateAgent", "invariant", "services", "EdgeAgentService", "createAgent", "timeout", "CreateRecoveryCode", "IdentityService", "recoveryCode", "createRecoveryCredential", "RECOVERY_CODE_DIALOG", "type", "code", "CreatePasskey", "identity", "get", "lookupKey", "PublicKey", "random", "credential", "navigator", "credentials", "create", "publicKey", "challenge", "Uint8Array", "rp", "location", "hostname", "user", "asUint8Array", "did", "displayName", "profile", "pubKeyCredParams", "alg", "authenticatorSelection", "residentKey", "requireResidentKey", "recoveryKey", "from", "response", "getPublicKey", "algorithm", "getPublicKeyAlgorithm", "RedeemPasskey", "deviceKey", "controlFeedKey", "requestRecoveryChallenge", "Buffer", "rpId", "userVerification", "userHandle", "recoverIdentity", "external", "signature", "clientDataJson", "clientDataJSON", "authenticatorData", "RedeemToken", "token"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/migrations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';\n\nimport { ClientCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n const registry = context.getCapability(Capabilities.RxRegistry);\n const client = context.getCapability(ClientCapabilities.Client);\n\n // NOTE: Migrations are currently unidirectional and idempotent.\n const cancel = registry.subscribe(\n context.capabilities(ClientCapabilities.Migration),\n (_migrations) => {\n const migrations = Array.from(new Set(_migrations.flat()));\n const spaces = client.spaces.get();\n void Promise.all(spaces.map((space) => space.db.runMigrations(migrations)));\n },\n { immediate: true },\n );\n\n return contributes(Capabilities.Null, null, () => cancel());\n};\n"],
5
- "mappings": ";;;;;;;AAIA,SAASA,cAAcC,mBAAuC;AAI9D,IAAA,qBAAe,CAACC,YAAAA;AACd,QAAMC,WAAWD,QAAQE,cAAcC,aAAaC,UAAU;AAC9D,QAAMC,SAASL,QAAQE,cAAcI,mBAAmBC,MAAM;AAG9D,QAAMC,SAASP,SAASQ,UACtBT,QAAQU,aAAaJ,mBAAmBK,SAAS,GACjD,CAACC,gBAAAA;AACC,UAAMC,aAAaC,MAAMC,KAAK,IAAIC,IAAIJ,YAAYK,KAAI,CAAA,CAAA;AACtD,UAAMC,SAASb,OAAOa,OAAOC,IAAG;AAChC,SAAKC,QAAQC,IAAIH,OAAOI,IAAI,CAACC,UAAUA,MAAMC,GAAGC,cAAcZ,UAAAA,CAAAA,CAAAA;EAChE,GACA;IAAEa,WAAW;EAAK,CAAA;AAGpB,SAAOC,YAAYxB,aAAayB,MAAM,MAAM,MAAMpB,OAAAA,CAAAA;AACpD;",
6
- "names": ["Capabilities", "contributes", "context", "registry", "getCapability", "Capabilities", "RxRegistry", "client", "ClientCapabilities", "Client", "cancel", "subscribe", "capabilities", "Migration", "_migrations", "migrations", "Array", "from", "Set", "flat", "spaces", "get", "Promise", "all", "map", "space", "db", "runMigrations", "immediate", "contributes", "Null"]
7
- }
@@ -1,26 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- ClientCapabilities
4
- } from "./chunk-K3KGGSJZ.mjs";
5
- import "./chunk-HM7VB4ZV.mjs";
6
-
7
- // packages/plugins/plugin-client/src/capabilities/schema-defs.ts
8
- import { Capabilities, contributes } from "@dxos/app-framework";
9
- var schema_defs_default = (context) => {
10
- const registry = context.getCapability(Capabilities.RxRegistry);
11
- const client = context.getCapability(ClientCapabilities.Client);
12
- let previous = [];
13
- const cancel = registry.subscribe(context.capabilities(ClientCapabilities.Schema), (_schemas) => {
14
- const schemas = Array.from(new Set(_schemas.flat()));
15
- const newSchemas = schemas.filter((schema) => !previous.includes(schema));
16
- previous = schemas;
17
- client.addTypes(newSchemas);
18
- }, {
19
- immediate: true
20
- });
21
- return contributes(Capabilities.Null, null, () => cancel());
22
- };
23
- export {
24
- schema_defs_default as default
25
- };
26
- //# sourceMappingURL=schema-defs-O4OHIIBN.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/schema-defs.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';\nimport { type TypedObject } from '@dxos/echo-schema';\n\nimport { ClientCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n const registry = context.getCapability(Capabilities.RxRegistry);\n const client = context.getCapability(ClientCapabilities.Client);\n\n // TODO(wittjosiah): Unregister schemas when they are disabled.\n let previous: TypedObject[] = [];\n const cancel = registry.subscribe(\n context.capabilities(ClientCapabilities.Schema),\n (_schemas) => {\n const schemas = Array.from(new Set(_schemas.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 { immediate: true },\n );\n\n return contributes(Capabilities.Null, null, () => cancel());\n};\n"],
5
- "mappings": ";;;;;;;AAIA,SAASA,cAAcC,mBAAuC;AAK9D,IAAA,sBAAe,CAACC,YAAAA;AACd,QAAMC,WAAWD,QAAQE,cAAcC,aAAaC,UAAU;AAC9D,QAAMC,SAASL,QAAQE,cAAcI,mBAAmBC,MAAM;AAG9D,MAAIC,WAA0B,CAAA;AAC9B,QAAMC,SAASR,SAASS,UACtBV,QAAQW,aAAaL,mBAAmBM,MAAM,GAC9C,CAACC,aAAAA;AACC,UAAMC,UAAUC,MAAMC,KAAK,IAAIC,IAAIJ,SAASK,KAAI,CAAA,CAAA;AAEhD,UAAMC,aAAaL,QAAQM,OAAO,CAACC,WAAW,CAACb,SAASc,SAASD,MAAAA,CAAAA;AACjEb,eAAWM;AACXT,WAAOkB,SAASJ,UAAAA;EAClB,GACA;IAAEK,WAAW;EAAK,CAAA;AAGpB,SAAOC,YAAYtB,aAAauB,MAAM,MAAM,MAAMjB,OAAAA,CAAAA;AACpD;",
6
- "names": ["Capabilities", "contributes", "context", "registry", "getCapability", "Capabilities", "RxRegistry", "client", "ClientCapabilities", "Client", "previous", "cancel", "subscribe", "capabilities", "Schema", "_schemas", "schemas", "Array", "from", "Set", "flat", "newSchemas", "filter", "schema", "includes", "addTypes", "immediate", "contributes", "Null"]
7
- }
@@ -1,4 +0,0 @@
1
- import { type PluginContext } from '@dxos/app-framework';
2
- declare const _default: (context: PluginContext) => import("@dxos/app-framework").Capability<null>;
3
- export default _default;
4
- //# sourceMappingURL=schema-defs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-defs.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/schema-defs.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;yBAKpE,SAAS,aAAa;AAAtC,wBAmBE"}
@@ -1,29 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';
6
- import { type TypedObject } from '@dxos/echo-schema';
7
-
8
- import { ClientCapabilities } from './capabilities';
9
-
10
- export default (context: PluginContext) => {
11
- const registry = context.getCapability(Capabilities.RxRegistry);
12
- const client = context.getCapability(ClientCapabilities.Client);
13
-
14
- // TODO(wittjosiah): Unregister schemas when they are disabled.
15
- let previous: TypedObject[] = [];
16
- const cancel = registry.subscribe(
17
- context.capabilities(ClientCapabilities.Schema),
18
- (_schemas) => {
19
- const schemas = Array.from(new Set(_schemas.flat()));
20
- // TODO(wittjosiah): Filter out schemas which the client has already registered.
21
- const newSchemas = schemas.filter((schema) => !previous.includes(schema));
22
- previous = schemas;
23
- client.addTypes(newSchemas);
24
- },
25
- { immediate: true },
26
- );
27
-
28
- return contributes(Capabilities.Null, null, () => cancel());
29
- };