@dxos/plugin-observability 0.7.5-main.9d26e3a → 0.7.5-main.b19bfc8
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/{chunk-X6XUBXZQ.mjs → chunk-BMBRX6IW.mjs} +5 -4
- package/dist/lib/browser/chunk-BMBRX6IW.mjs.map +7 -0
- package/dist/lib/browser/{chunk-UBDF6N5K.mjs → chunk-LJICNNK4.mjs} +2 -2
- package/dist/lib/browser/chunk-VOXXTFUV.mjs +37 -0
- package/dist/lib/browser/chunk-VOXXTFUV.mjs.map +7 -0
- package/dist/lib/browser/chunk-WEVYEGVJ.mjs +18 -0
- package/dist/lib/browser/chunk-WEVYEGVJ.mjs.map +7 -0
- package/dist/lib/browser/client-ready-G43SJ5KX.mjs +103 -0
- package/dist/lib/browser/client-ready-G43SJ5KX.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +77 -207
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intents-resolver-T4PF2V23.mjs +64 -0
- package/dist/lib/browser/intents-resolver-T4PF2V23.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-TRXHCMO5.mjs +24 -0
- package/dist/lib/browser/react-surface-TRXHCMO5.mjs.map +7 -0
- package/dist/lib/browser/settings-3DXJFOJA.mjs +25 -0
- package/dist/lib/browser/settings-3DXJFOJA.mjs.map +7 -0
- package/dist/lib/browser/state-LG42JNIS.mjs +26 -0
- package/dist/lib/browser/state-LG42JNIS.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +2 -2
- package/dist/lib/node/{chunk-SIUGGDNL.cjs → chunk-7I7D7NBM.cjs} +9 -8
- package/dist/lib/node/chunk-7I7D7NBM.cjs.map +7 -0
- package/dist/lib/node/chunk-X7HWBFE2.cjs +38 -0
- package/dist/lib/node/chunk-X7HWBFE2.cjs.map +7 -0
- package/dist/lib/node/{chunk-HZSRCP4I.cjs → chunk-XBDGBB5D.cjs} +6 -6
- package/dist/lib/node/chunk-YHIPA37Q.cjs +65 -0
- package/dist/lib/node/chunk-YHIPA37Q.cjs.map +7 -0
- package/dist/lib/node/client-ready-352F6HCO.cjs +114 -0
- package/dist/lib/node/client-ready-352F6HCO.cjs.map +7 -0
- package/dist/lib/node/index.cjs +73 -200
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/intents-resolver-UCNXONFF.cjs +75 -0
- package/dist/lib/node/intents-resolver-UCNXONFF.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-surface-G4DDWTSN.cjs +48 -0
- package/dist/lib/node/react-surface-G4DDWTSN.cjs.map +7 -0
- package/dist/lib/node/settings-ZFZ4YONA.cjs +39 -0
- package/dist/lib/node/settings-ZFZ4YONA.cjs.map +7 -0
- package/dist/lib/node/state-FNK3OBM7.cjs +40 -0
- package/dist/lib/node/state-FNK3OBM7.cjs.map +7 -0
- package/dist/lib/node/types.cjs +4 -4
- package/dist/lib/node/types.cjs.map +1 -1
- package/dist/lib/node-esm/{chunk-52FTHXHB.mjs → chunk-DSC5SQ7W.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-7GGPSKXN.mjs → chunk-HTL7V6A2.mjs} +5 -4
- package/dist/lib/node-esm/chunk-HTL7V6A2.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-KPH3N6JS.mjs +19 -0
- package/dist/lib/node-esm/chunk-KPH3N6JS.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-N5NBR55J.mjs +38 -0
- package/dist/lib/node-esm/chunk-N5NBR55J.mjs.map +7 -0
- package/dist/lib/node-esm/client-ready-NXRLOXLL.mjs +104 -0
- package/dist/lib/node-esm/client-ready-NXRLOXLL.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +77 -207
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/intents-resolver-IXURWG7Z.mjs +65 -0
- package/dist/lib/node-esm/intents-resolver-IXURWG7Z.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-QYURTQNR.mjs +25 -0
- package/dist/lib/node-esm/react-surface-QYURTQNR.mjs.map +7 -0
- package/dist/lib/node-esm/settings-UNFUTWGX.mjs +26 -0
- package/dist/lib/node-esm/settings-UNFUTWGX.mjs.map +7 -0
- package/dist/lib/node-esm/state-UXRA6NQC.mjs +27 -0
- package/dist/lib/node-esm/state-UXRA6NQC.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +2 -2
- package/dist/types/src/ObservabilityPlugin.d.ts +1 -11
- package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +12 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/types/src/capabilities/client-ready.d.ts +10 -0
- package/dist/types/src/capabilities/client-ready.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +16 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/intents-resolver.d.ts +7 -0
- package/dist/types/src/capabilities/intents-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +4 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings.d.ts +4 -0
- package/dist/types/src/capabilities/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state.d.ts +6 -0
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/components/ObservabilitySettings.d.ts +6 -5
- package/dist/types/src/components/ObservabilitySettings.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +5 -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 +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +21 -27
- package/src/ObservabilityPlugin.ts +61 -0
- package/src/capabilities/capabilities.ts +22 -0
- package/src/capabilities/client-ready.ts +98 -0
- package/src/capabilities/index.ts +13 -0
- package/src/capabilities/intents-resolver.ts +62 -0
- package/src/capabilities/react-surface.tsx +23 -0
- package/src/capabilities/settings.ts +19 -0
- package/src/capabilities/state.ts +21 -0
- package/src/components/ObservabilitySettings.tsx +15 -10
- package/src/events.ts +14 -0
- package/src/index.ts +3 -4
- package/src/meta.ts +2 -1
- package/src/translations.ts +1 -1
- package/dist/lib/browser/chunk-X6XUBXZQ.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-SIUGGDNL.cjs.map +0 -7
- package/dist/lib/node/meta.cjs +0 -30
- package/dist/lib/node/meta.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-7GGPSKXN.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/ObservabilityPlugin.tsx +0 -215
- /package/dist/lib/browser/{chunk-UBDF6N5K.mjs.map → chunk-LJICNNK4.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-HZSRCP4I.cjs.map → chunk-XBDGBB5D.cjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-52FTHXHB.mjs.map → chunk-DSC5SQ7W.mjs.map} +0 -0
|
@@ -1,41 +1,30 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
} from "./chunk-
|
|
3
|
+
ObservabilityCapabilities
|
|
4
|
+
} from "./chunk-KPH3N6JS.mjs";
|
|
5
5
|
import {
|
|
6
6
|
OBSERVABILITY_PLUGIN,
|
|
7
|
-
|
|
8
|
-
} from "./chunk-
|
|
7
|
+
meta
|
|
8
|
+
} from "./chunk-HTL7V6A2.mjs";
|
|
9
9
|
|
|
10
|
-
// packages/plugins/plugin-observability/src/
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import { getTelemetryIdentifier, setupTelemetryListeners, isObservabilityDisabled, storeObservabilityDisabled, getObservabilityGroup } from "@dxos/observability";
|
|
10
|
+
// packages/plugins/plugin-observability/src/capabilities/index.ts
|
|
11
|
+
import { lazy } from "@dxos/app-framework";
|
|
12
|
+
var ClientReady = lazy(() => import("./client-ready-NXRLOXLL.mjs"));
|
|
13
|
+
var IntentResolver = lazy(() => import("./intents-resolver-IXURWG7Z.mjs"));
|
|
14
|
+
var ReactSurface = lazy(() => import("./react-surface-QYURTQNR.mjs"));
|
|
15
|
+
var ObservabilitySettings = lazy(() => import("./settings-UNFUTWGX.mjs"));
|
|
16
|
+
var ObservabilityState = lazy(() => import("./state-UXRA6NQC.mjs"));
|
|
18
17
|
|
|
19
|
-
// packages/plugins/plugin-observability/src/
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
secondary: /* @__PURE__ */ React.createElement(Message.Root, {
|
|
30
|
-
valence: "info"
|
|
31
|
-
}, /* @__PURE__ */ React.createElement(Message.Body, null, t("observability description")))
|
|
32
|
-
}, /* @__PURE__ */ React.createElement(Input.Switch, {
|
|
33
|
-
checked: settings.enabled,
|
|
34
|
-
onCheckedChange: (checked) => dispatch(createIntent(ObservabilityAction.Toggle, {
|
|
35
|
-
state: !!checked
|
|
36
|
-
}))
|
|
37
|
-
})));
|
|
38
|
-
};
|
|
18
|
+
// packages/plugins/plugin-observability/src/events.ts
|
|
19
|
+
import { defineEvent, Events } from "@dxos/app-framework";
|
|
20
|
+
var ObservabilityEvents;
|
|
21
|
+
(function(ObservabilityEvents2) {
|
|
22
|
+
ObservabilityEvents2.StateReady = Events.createStateEvent(OBSERVABILITY_PLUGIN);
|
|
23
|
+
})(ObservabilityEvents || (ObservabilityEvents = {}));
|
|
24
|
+
var ClientReadyEvent = defineEvent("dxos.org/plugin/client/event/client-ready");
|
|
25
|
+
|
|
26
|
+
// packages/plugins/plugin-observability/src/ObservabilityPlugin.ts
|
|
27
|
+
import { allOf, Capabilities, contributes, defineModule, definePlugin, Events as Events2 } from "@dxos/app-framework";
|
|
39
28
|
|
|
40
29
|
// packages/plugins/plugin-observability/src/translations.ts
|
|
41
30
|
var translations_default = [
|
|
@@ -50,189 +39,70 @@ var translations_default = [
|
|
|
50
39
|
"observability toast close label": "Okay",
|
|
51
40
|
"observability enabled label": "Enable telemetry",
|
|
52
41
|
// TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.
|
|
53
|
-
"observability description": "When enabled, basic usage data will
|
|
42
|
+
"observability description": "When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices."
|
|
54
43
|
}
|
|
55
44
|
}
|
|
56
45
|
}
|
|
57
46
|
];
|
|
58
47
|
|
|
59
|
-
// packages/plugins/plugin-observability/src/ObservabilityPlugin.
|
|
60
|
-
var
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
void options.observability().then(async (obs) => {
|
|
111
|
-
observability = obs;
|
|
112
|
-
plugins.map((plugin) => observability?.setTag(`pluginEnabled-${plugin.meta.id}`, "true", "errors"));
|
|
113
|
-
if (!client) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
await dispatch(createIntent2(ObservabilityAction.SendEvent, {
|
|
117
|
-
name: "page.load",
|
|
118
|
-
properties: {
|
|
119
|
-
href: window.location.href,
|
|
120
|
-
// TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
|
|
121
|
-
loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart
|
|
122
|
-
}
|
|
123
|
-
}));
|
|
124
|
-
setupTelemetryListeners(options.namespace, client, observability);
|
|
125
|
-
await Promise.all([
|
|
126
|
-
observability.setIdentityTags(client.services.services),
|
|
127
|
-
observability.startRuntimeMetrics(client),
|
|
128
|
-
observability.startNetworkMetrics(client.services.services),
|
|
129
|
-
observability.startSpacesMetrics(client, options.namespace)
|
|
130
|
-
]);
|
|
131
|
-
if (client.halo.identity.get()) {
|
|
132
|
-
await sendPrivacyNotice();
|
|
133
|
-
} else {
|
|
134
|
-
const subscription = client.halo.identity.subscribe(async (identity) => {
|
|
135
|
-
if (identity && observability) {
|
|
136
|
-
await sendPrivacyNotice();
|
|
137
|
-
await observability.setIdentityTags(client.services.services);
|
|
138
|
-
subscription.unsubscribe();
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
}
|
|
48
|
+
// packages/plugins/plugin-observability/src/ObservabilityPlugin.ts
|
|
49
|
+
var ObservabilityPlugin = (options) => definePlugin(meta, [
|
|
50
|
+
defineModule({
|
|
51
|
+
id: `${meta.id}/module/observability`,
|
|
52
|
+
activatesOn: Events2.Startup,
|
|
53
|
+
activate: async () => contributes(ObservabilityCapabilities.Observability, await options.observability())
|
|
54
|
+
}),
|
|
55
|
+
defineModule({
|
|
56
|
+
id: `${meta.id}/module/settings`,
|
|
57
|
+
activatesOn: Events2.SetupSettings,
|
|
58
|
+
activate: ObservabilitySettings
|
|
59
|
+
}),
|
|
60
|
+
defineModule({
|
|
61
|
+
id: `${meta.id}/module/state`,
|
|
62
|
+
activatesOn: Events2.Startup,
|
|
63
|
+
activatesAfter: [
|
|
64
|
+
ObservabilityEvents.StateReady
|
|
65
|
+
],
|
|
66
|
+
activate: () => ObservabilityState({
|
|
67
|
+
namespace: options.namespace
|
|
68
|
+
})
|
|
69
|
+
}),
|
|
70
|
+
defineModule({
|
|
71
|
+
id: `${meta.id}/module/translations`,
|
|
72
|
+
activatesOn: Events2.SetupTranslations,
|
|
73
|
+
activate: () => contributes(Capabilities.Translations, translations_default)
|
|
74
|
+
}),
|
|
75
|
+
defineModule({
|
|
76
|
+
id: `${meta.id}/module/intent-resolver`,
|
|
77
|
+
activatesOn: Events2.SetupIntentResolver,
|
|
78
|
+
activate: (context) => IntentResolver({
|
|
79
|
+
context,
|
|
80
|
+
namespace: options.namespace
|
|
81
|
+
})
|
|
82
|
+
}),
|
|
83
|
+
defineModule({
|
|
84
|
+
id: `${meta.id}/module/react-surface`,
|
|
85
|
+
activatesOn: Events2.SetupReactSurface,
|
|
86
|
+
activate: ReactSurface
|
|
87
|
+
}),
|
|
88
|
+
defineModule({
|
|
89
|
+
id: `${meta.id}/module/client-ready`,
|
|
90
|
+
activatesOn: allOf(Events2.DispatcherReady, ObservabilityEvents.StateReady, ClientReadyEvent),
|
|
91
|
+
activate: async (context) => {
|
|
92
|
+
const observability = await options.observability();
|
|
93
|
+
return ClientReady({
|
|
94
|
+
context,
|
|
95
|
+
observability,
|
|
96
|
+
namespace: options.namespace
|
|
142
97
|
});
|
|
143
|
-
},
|
|
144
|
-
unload: async () => {
|
|
145
|
-
subscriptions.clear();
|
|
146
|
-
await observability?.close();
|
|
147
|
-
},
|
|
148
|
-
provides: {
|
|
149
|
-
intent: {
|
|
150
|
-
resolvers: ({ plugins }) => {
|
|
151
|
-
const client = findPlugin(plugins, "dxos.org/plugin/client")?.provides.client;
|
|
152
|
-
if (!client || !observability) {
|
|
153
|
-
return [];
|
|
154
|
-
}
|
|
155
|
-
return [
|
|
156
|
-
createResolver(ObservabilityAction.Toggle, async ({ state: state2 }) => {
|
|
157
|
-
invariant(observability, "Observability instance not available", {
|
|
158
|
-
F: __dxlog_file,
|
|
159
|
-
L: 170,
|
|
160
|
-
S: void 0,
|
|
161
|
-
A: [
|
|
162
|
-
"observability",
|
|
163
|
-
"'Observability instance not available'"
|
|
164
|
-
]
|
|
165
|
-
});
|
|
166
|
-
settings.enabled = state2 ?? !settings.enabled;
|
|
167
|
-
observability.event({
|
|
168
|
-
identityId: getTelemetryIdentifier(client),
|
|
169
|
-
name: `${options.namespace}.observability.toggle`,
|
|
170
|
-
properties: {
|
|
171
|
-
enabled: settings.enabled
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
observability.setMode(settings.enabled ? "basic" : "disabled");
|
|
175
|
-
await storeObservabilityDisabled(options.namespace, !settings.enabled);
|
|
176
|
-
return {
|
|
177
|
-
data: settings.enabled
|
|
178
|
-
};
|
|
179
|
-
}),
|
|
180
|
-
createResolver(ObservabilityAction.SendEvent, async (data) => {
|
|
181
|
-
invariant(observability, "Observability instance not available", {
|
|
182
|
-
F: __dxlog_file,
|
|
183
|
-
L: 184,
|
|
184
|
-
S: void 0,
|
|
185
|
-
A: [
|
|
186
|
-
"observability",
|
|
187
|
-
"'Observability instance not available'"
|
|
188
|
-
]
|
|
189
|
-
});
|
|
190
|
-
const event = {
|
|
191
|
-
identityId: getTelemetryIdentifier(client),
|
|
192
|
-
name: `${options.namespace}.${data.name}`,
|
|
193
|
-
properties: {
|
|
194
|
-
...data.properties
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
observability.event(event);
|
|
198
|
-
}),
|
|
199
|
-
createResolver(ObservabilityAction.CaptureUserFeedback, async (data) => {
|
|
200
|
-
invariant(observability, "Observability instance not available", {
|
|
201
|
-
F: __dxlog_file,
|
|
202
|
-
L: 195,
|
|
203
|
-
S: void 0,
|
|
204
|
-
A: [
|
|
205
|
-
"observability",
|
|
206
|
-
"'Observability instance not available'"
|
|
207
|
-
]
|
|
208
|
-
});
|
|
209
|
-
observability.captureUserFeedback(data.email, data.name, data.message);
|
|
210
|
-
})
|
|
211
|
-
];
|
|
212
|
-
}
|
|
213
|
-
},
|
|
214
|
-
observability: state.values,
|
|
215
|
-
settings,
|
|
216
|
-
surface: {
|
|
217
|
-
definitions: () => createSurface({
|
|
218
|
-
id: OBSERVABILITY_PLUGIN,
|
|
219
|
-
role: "settings",
|
|
220
|
-
filter: (data) => data.subject === OBSERVABILITY_PLUGIN,
|
|
221
|
-
component: () => /* @__PURE__ */ React2.createElement(ObservabilitySettings, {
|
|
222
|
-
settings
|
|
223
|
-
})
|
|
224
|
-
})
|
|
225
|
-
},
|
|
226
|
-
translations: translations_default
|
|
227
98
|
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
// packages/plugins/plugin-observability/src/index.ts
|
|
232
|
-
var src_default = ObservabilityPlugin;
|
|
99
|
+
})
|
|
100
|
+
]);
|
|
233
101
|
export {
|
|
102
|
+
OBSERVABILITY_PLUGIN,
|
|
103
|
+
ObservabilityCapabilities,
|
|
104
|
+
ObservabilityEvents,
|
|
234
105
|
ObservabilityPlugin,
|
|
235
|
-
|
|
236
|
-
parseObservabilityPlugin
|
|
106
|
+
meta
|
|
237
107
|
};
|
|
238
108
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport {\n type Plugin,\n type PluginDefinition,\n type IntentResolverProvides,\n type SettingsProvides,\n type SurfaceProvides,\n type TranslationsProvides,\n resolvePlugin,\n parseIntentPlugin,\n LayoutAction,\n SettingsAction,\n createSurface,\n findPlugin,\n createIntent,\n createResolver,\n} from '@dxos/app-framework';\nimport { EventSubscriptions } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { create } from '@dxos/live-object';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport {\n type Observability,\n getTelemetryIdentifier,\n setupTelemetryListeners,\n isObservabilityDisabled,\n storeObservabilityDisabled,\n getObservabilityGroup,\n} from '@dxos/observability';\nimport { type Client } from '@dxos/react-client';\n\nimport { ObservabilitySettings, type ObservabilitySettingsProps } from './components';\nimport meta, { OBSERVABILITY_PLUGIN } from './meta';\nimport translations from './translations';\nimport { ObservabilityAction } from './types';\n\nexport type ObservabilityPluginState = {\n group?: string;\n notified?: boolean;\n};\n\nexport type ObservabilityPluginProvides = IntentResolverProvides &\n SurfaceProvides &\n SettingsProvides<ObservabilitySettingsProps> &\n TranslationsProvides & {\n observability: ObservabilityPluginState;\n };\n\nexport const parseObservabilityPlugin = (plugin?: Plugin) =>\n (plugin?.provides as any).observability ? (plugin as Plugin<ObservabilityPluginProvides>) : undefined;\n\nexport const ObservabilityPlugin = (options: {\n namespace: string;\n observability: () => Promise<Observability>;\n}): PluginDefinition<ObservabilityPluginProvides> => {\n const settings = create<ObservabilitySettingsProps>({});\n const state = new LocalStorageStore<ObservabilityPluginState>(OBSERVABILITY_PLUGIN);\n const subscriptions = new EventSubscriptions();\n let observability: Observability | undefined;\n\n return {\n meta,\n initialize: async () => {\n settings.enabled = !(await isObservabilityDisabled(options.namespace));\n state.values.group = await getObservabilityGroup(options.namespace);\n state.prop({ key: 'notified', type: LocalStorageStore.bool({ allowUndefined: true }) });\n },\n ready: async ({ plugins }) => {\n const client = findPlugin<{ client: Client }>(plugins, 'dxos.org/plugin/client')?.provides.client;\n const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);\n\n const dispatch = intentPlugin?.provides?.intent?.dispatchPromise;\n if (!dispatch) {\n return;\n }\n\n const sendPrivacyNotice = async () => {\n const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;\n const notify =\n environment && environment !== 'ci' && !environment.endsWith('.local') && !environment.endsWith('.lan');\n if (!state.values.notified && notify) {\n await dispatch(\n createIntent(LayoutAction.SetLayout, {\n element: 'toast',\n subject: {\n id: `${OBSERVABILITY_PLUGIN}/notice`,\n // TODO(wittjosiah): Non-react translation utils.\n title: translations[0]['en-US'][OBSERVABILITY_PLUGIN]['observability toast label'],\n description: translations[0]['en-US'][OBSERVABILITY_PLUGIN]['observability toast description'],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: translations[0]['en-US'][OBSERVABILITY_PLUGIN]['observability toast action label'],\n actionAlt: translations[0]['en-US'][OBSERVABILITY_PLUGIN]['observability toast action alt'],\n closeLabel: translations[0]['en-US'][OBSERVABILITY_PLUGIN]['observability toast close label'],\n onAction: () => dispatch(createIntent(SettingsAction.Open, { plugin: OBSERVABILITY_PLUGIN })),\n },\n }),\n );\n\n state.values.notified = true;\n }\n };\n\n // Initialize asynchronously in the background, not in plugin initialization.\n // Should not block application startup.\n void options.observability().then(async (obs) => {\n observability = obs;\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n plugins.map((plugin) => observability?.setTag(`pluginEnabled-${plugin.meta.id}`, 'true', 'errors'));\n\n // Start client observability (i.e. not running as shared worker)\n // TODO(nf): how to prevent multiple instances for single shared worker?\n if (!client) {\n return;\n }\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'page.load',\n properties: {\n href: window.location.href,\n // TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?\n loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart,\n },\n }),\n );\n\n setupTelemetryListeners(options.namespace, client, observability);\n\n await Promise.all([\n observability.setIdentityTags(client.services.services),\n observability.startRuntimeMetrics(client),\n observability.startNetworkMetrics(client.services.services),\n observability.startSpacesMetrics(client, options.namespace),\n ]);\n\n if (client.halo.identity.get()) {\n await sendPrivacyNotice();\n } else {\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n await observability.setIdentityTags(client.services.services);\n subscription.unsubscribe();\n }\n });\n }\n });\n },\n unload: async () => {\n subscriptions.clear();\n await observability?.close();\n },\n provides: {\n intent: {\n resolvers: ({ plugins }) => {\n const client = findPlugin<{ client: Client }>(plugins, 'dxos.org/plugin/client')?.provides.client;\n if (!client || !observability) {\n return [];\n }\n\n return [\n createResolver(ObservabilityAction.Toggle, async ({ state }) => {\n invariant(observability, 'Observability instance not available');\n settings.enabled = state ?? !settings.enabled;\n observability.event({\n identityId: getTelemetryIdentifier(client),\n name: `${options.namespace}.observability.toggle`,\n properties: {\n enabled: settings.enabled,\n },\n });\n observability.setMode(settings.enabled ? 'basic' : 'disabled');\n await storeObservabilityDisabled(options.namespace, !settings.enabled);\n return { data: settings.enabled };\n }),\n createResolver(ObservabilityAction.SendEvent, async (data) => {\n invariant(observability, 'Observability instance not available');\n const event = {\n identityId: getTelemetryIdentifier(client),\n name: `${options.namespace}.${data.name}`,\n properties: {\n ...data.properties,\n },\n };\n observability.event(event);\n }),\n createResolver(ObservabilityAction.CaptureUserFeedback, async (data) => {\n invariant(observability, 'Observability instance not available');\n observability.captureUserFeedback(data.email, data.name, data.message);\n }),\n ];\n },\n },\n observability: state.values,\n settings,\n surface: {\n definitions: () =>\n createSurface({\n id: OBSERVABILITY_PLUGIN,\n role: 'settings',\n filter: (data): data is any => data.subject === OBSERVABILITY_PLUGIN,\n component: () => <ObservabilitySettings settings={settings} />,\n }),\n },\n translations,\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Input, Message, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport type ObservabilitySettingsProps = {\n enabled?: boolean;\n // TODO(wittjosiah): Separate settings for each observability feature.\n // metrics?: boolean;\n // telemetry?: boolean;\n // errors?: boolean;\n};\n\nexport const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return (\n <>\n <DeprecatedFormInput\n label={t('observability enabled label')}\n secondary={\n <Message.Root valence='info'>\n <Message.Body>{t('observability description')}</Message.Body>\n </Message.Root>\n }\n >\n <Input.Switch\n checked={settings.enabled}\n onCheckedChange={(checked) => dispatch(createIntent(ObservabilityAction.Toggle, { state: !!checked }))}\n />\n </DeprecatedFormInput>\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [OBSERVABILITY_PLUGIN]: {\n 'plugin name': 'Telemetry',\n 'observability toast label': 'Privacy Notice',\n 'observability toast description':\n 'Composer collects usage and performance metrics to improve the product. No user data is collected.',\n 'observability toast action label': 'Settings',\n 'observability toast action alt': 'Open settings to learn more or to disable.',\n 'observability toast close label': 'Okay',\n 'observability enabled label': 'Enable telemetry',\n // TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.\n 'observability description':\n 'When enabled, basic usage data will be sent to the DXOS team in order to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ObservabilityPlugin } from './ObservabilityPlugin';\n\nexport default ObservabilityPlugin;\n\nexport * from './ObservabilityPlugin';\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;AAIA,
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/capabilities/index.ts", "../../../src/events.ts", "../../../src/ObservabilityPlugin.ts", "../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const ClientReady = lazy(() => import('./client-ready'));\nexport const IntentResolver = lazy(() => import('./intents-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const ObservabilitySettings = lazy(() => import('./settings'));\nexport const ObservabilityState = lazy(() => import('./state'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent, Events } from '@dxos/app-framework';\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nexport namespace ObservabilityEvents {\n export const StateReady = Events.createStateEvent(OBSERVABILITY_PLUGIN);\n}\n\n// NOTE: This is cloned from the client plugin to avoid circular dependencies.\nexport const ClientReadyEvent = defineEvent('dxos.org/plugin/client/event/client-ready');\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { allOf, Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { type Observability } from '@dxos/observability';\n\nimport {\n ClientReady,\n IntentResolver,\n ObservabilityCapabilities,\n ObservabilitySettings,\n ObservabilityState,\n ReactSurface,\n} from './capabilities';\nimport { ObservabilityEvents, ClientReadyEvent } from './events';\nimport { meta } from './meta';\nimport translations from './translations';\n\nexport const ObservabilityPlugin = (options: { namespace: string; observability: () => Promise<Observability> }) =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/observability`,\n activatesOn: Events.Startup,\n activate: async () => contributes(ObservabilityCapabilities.Observability, await options.observability()),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: ObservabilitySettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n activatesOn: Events.Startup,\n activatesAfter: [ObservabilityEvents.StateReady],\n activate: () => ObservabilityState({ namespace: options.namespace }),\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: (context) => IntentResolver({ context, namespace: options.namespace }),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/client-ready`,\n activatesOn: allOf(Events.DispatcherReady, ObservabilityEvents.StateReady, ClientReadyEvent),\n activate: async (context) => {\n const observability = await options.observability();\n return ClientReady({ context, observability, namespace: options.namespace });\n },\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { OBSERVABILITY_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [OBSERVABILITY_PLUGIN]: {\n 'plugin name': 'Telemetry',\n 'observability toast label': 'Privacy Notice',\n 'observability toast description':\n 'Composer collects usage and performance metrics to improve the product. No user data is collected.',\n 'observability toast action label': 'Settings',\n 'observability toast action alt': 'Open settings to learn more or to disable.',\n 'observability toast close label': 'Okay',\n 'observability enabled label': 'Enable telemetry',\n // TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.\n 'observability description':\n 'When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.',\n },\n },\n },\n];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,SAASA,YAAY;AAEd,IAAMC,cAAcC,KAAK,MAAM,OAAO,6BAAA,CAAA;AACtC,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,iCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMG,wBAAwBH,KAAK,MAAM,OAAO,yBAAA,CAAA;AAChD,IAAMI,qBAAqBJ,KAAK,MAAM,OAAO,sBAAA,CAAA;;;ACNpD,SAASK,aAAaC,cAAc;;UAInBC,sBAAAA;uBACFC,aAAaC,OAAOC,iBAAiBC,oBAAAA;AACpD,GAFiBJ,wBAAAA,sBAAAA,CAAAA,EAAAA;AAKV,IAAMK,mBAAmBC,YAAY,2CAAA;;;ACT5C,SAASC,OAAOC,cAAcC,aAAaC,cAAcC,cAAcC,UAAAA,eAAc;;;ACErF,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACC,oBAAAA,GAAuB;QACtB,eAAe;QACf,6BAA6B;QAC7B,mCACE;QACF,oCAAoC;QACpC,kCAAkC;QAClC,mCAAmC;QACnC,+BAA+B;;QAE/B,6BACE;MACJ;IACF;EACF;;;;ADJK,IAAMC,sBAAsB,CAACC,YAClCC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,UAAU,YAAYC,YAAYC,0BAA0BC,eAAe,MAAMX,QAAQY,cAAa,CAAA;EACxG,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOO;IACpBL,UAAUM;EACZ,CAAA;EACAX,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBQ,gBAAgB;MAACC,oBAAoBC;;IACrCT,UAAU,MAAMU,mBAAmB;MAAEC,WAAWnB,QAAQmB;IAAU,CAAA;EACpE,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOc;IACpBZ,UAAU,MAAMC,YAAYY,aAAaC,cAAcC,oBAAAA;EACzD,CAAA;EACApB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOkB;IACpBhB,UAAU,CAACiB,YAAYC,eAAe;MAAED;MAASN,WAAWnB,QAAQmB;IAAU,CAAA;EAChF,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOqB;IACpBnB,UAAUoB;EACZ,CAAA;EACAzB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAawB,MAAMvB,QAAOwB,iBAAiBd,oBAAoBC,YAAYc,gBAAAA;IAC3EvB,UAAU,OAAOiB,YAAAA;AACf,YAAMb,gBAAgB,MAAMZ,QAAQY,cAAa;AACjD,aAAOoB,YAAY;QAAEP;QAASb;QAAeO,WAAWnB,QAAQmB;MAAU,CAAA;IAC5E;EACF,CAAA;CACD;",
|
|
6
|
+
"names": ["lazy", "ClientReady", "lazy", "IntentResolver", "ReactSurface", "ObservabilitySettings", "ObservabilityState", "defineEvent", "Events", "ObservabilityEvents", "StateReady", "Events", "createStateEvent", "OBSERVABILITY_PLUGIN", "ClientReadyEvent", "defineEvent", "allOf", "Capabilities", "contributes", "defineModule", "definePlugin", "Events", "OBSERVABILITY_PLUGIN", "ObservabilityPlugin", "options", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "activate", "contributes", "ObservabilityCapabilities", "Observability", "observability", "SetupSettings", "ObservabilitySettings", "activatesAfter", "ObservabilityEvents", "StateReady", "ObservabilityState", "namespace", "SetupTranslations", "Capabilities", "Translations", "translations", "SetupIntentResolver", "context", "IntentResolver", "SetupReactSurface", "ReactSurface", "allOf", "DispatcherReady", "ClientReadyEvent", "ClientReady"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
ObservabilityAction
|
|
4
|
+
} from "./chunk-DSC5SQ7W.mjs";
|
|
5
|
+
import {
|
|
6
|
+
ClientCapability,
|
|
7
|
+
ObservabilityCapabilities
|
|
8
|
+
} from "./chunk-KPH3N6JS.mjs";
|
|
9
|
+
import {
|
|
10
|
+
OBSERVABILITY_PLUGIN
|
|
11
|
+
} from "./chunk-HTL7V6A2.mjs";
|
|
12
|
+
|
|
13
|
+
// packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts
|
|
14
|
+
import { Capabilities, contributes, createResolver } from "@dxos/app-framework";
|
|
15
|
+
import { getTelemetryIdentifier, storeObservabilityDisabled } from "@dxos/observability";
|
|
16
|
+
var intents_resolver_default = ({ context, namespace }) => contributes(Capabilities.IntentResolver, [
|
|
17
|
+
createResolver({
|
|
18
|
+
intent: ObservabilityAction.Toggle,
|
|
19
|
+
resolve: async ({ state }) => {
|
|
20
|
+
const client = context.requestCapability(ClientCapability);
|
|
21
|
+
const observability = context.requestCapability(ObservabilityCapabilities.Observability);
|
|
22
|
+
const settings = context.requestCapability(Capabilities.SettingsStore).getStore(OBSERVABILITY_PLUGIN).value;
|
|
23
|
+
settings.enabled = state ?? !settings.enabled;
|
|
24
|
+
observability.event({
|
|
25
|
+
did: getTelemetryIdentifier(client),
|
|
26
|
+
name: `${namespace}.observability.toggle`,
|
|
27
|
+
properties: {
|
|
28
|
+
enabled: settings.enabled
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
observability.setMode(settings.enabled ? "basic" : "disabled");
|
|
32
|
+
await storeObservabilityDisabled(namespace, !settings.enabled);
|
|
33
|
+
return {
|
|
34
|
+
data: settings.enabled
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}),
|
|
38
|
+
createResolver({
|
|
39
|
+
intent: ObservabilityAction.SendEvent,
|
|
40
|
+
resolve: (data) => {
|
|
41
|
+
const client = context.requestCapability(ClientCapability);
|
|
42
|
+
void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {
|
|
43
|
+
const event = {
|
|
44
|
+
did: getTelemetryIdentifier(client),
|
|
45
|
+
name: `${namespace}.${data.name}`,
|
|
46
|
+
properties: {
|
|
47
|
+
...data.properties
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
observability.event(event);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}),
|
|
54
|
+
createResolver({
|
|
55
|
+
intent: ObservabilityAction.CaptureUserFeedback,
|
|
56
|
+
resolve: async (data) => {
|
|
57
|
+
const observability = context.requestCapability(ObservabilityCapabilities.Observability);
|
|
58
|
+
observability.captureUserFeedback(data.email, data.name, data.message);
|
|
59
|
+
}
|
|
60
|
+
})
|
|
61
|
+
]);
|
|
62
|
+
export {
|
|
63
|
+
intents_resolver_default as default
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=intents-resolver-IXURWG7Z.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/intents-resolver.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver, type PluginsContext } from '@dxos/app-framework';\nimport { getTelemetryIdentifier, storeObservabilityDisabled } from '@dxos/observability';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\nimport { type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport default ({ context, namespace }: { context: PluginsContext; namespace: string }) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ObservabilityAction.Toggle,\n resolve: async ({ state }) => {\n const client = context.requestCapability(ClientCapability);\n const observability = context.requestCapability(ObservabilityCapabilities.Observability);\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<ObservabilitySettingsProps>(OBSERVABILITY_PLUGIN)!.value;\n settings.enabled = state ?? !settings.enabled;\n observability.event({\n did: getTelemetryIdentifier(client),\n name: `${namespace}.observability.toggle`,\n properties: {\n enabled: settings.enabled,\n },\n });\n observability.setMode(settings.enabled ? 'basic' : 'disabled');\n await storeObservabilityDisabled(namespace, !settings.enabled);\n return { data: settings.enabled };\n },\n }),\n createResolver({\n intent: ObservabilityAction.SendEvent,\n resolve: (data) => {\n const client = context.requestCapability(ClientCapability);\n // NOTE: This is to ensure that events fired before observability is ready are still sent.\n // TODO(wittjosiah): If the intent dispatcher supports concurrent actions in the future,\n // then this could awaited still rather than voiding.\n void context.waitForCapability(ObservabilityCapabilities.Observability).then((observability) => {\n const event = {\n did: getTelemetryIdentifier(client),\n name: `${namespace}.${data.name}`,\n properties: {\n ...data.properties,\n },\n };\n observability.event(event);\n });\n },\n }),\n createResolver({\n intent: ObservabilityAction.CaptureUserFeedback,\n resolve: async (data) => {\n const observability = context.requestCapability(ObservabilityCapabilities.Observability);\n observability.captureUserFeedback(data.email, data.name, data.message);\n },\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;AAIA,SAASA,cAAcC,aAAaC,sBAA2C;AAC/E,SAASC,wBAAwBC,kCAAkC;AAOnE,IAAA,2BAAe,CAAC,EAAEC,SAASC,UAAS,MAClCC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,oBAAoBC;IAC5BC,SAAS,OAAO,EAAEC,MAAK,MAAE;AACvB,YAAMC,SAASX,QAAQY,kBAAkBC,gBAAAA;AACzC,YAAMC,gBAAgBd,QAAQY,kBAAkBG,0BAA0BC,aAAa;AACvF,YAAMC,WAAWjB,QACdY,kBAAkBT,aAAae,aAAa,EAC5CC,SAAqCC,oBAAAA,EAAuBC;AAC/DJ,eAASK,UAAUZ,SAAS,CAACO,SAASK;AACtCR,oBAAcS,MAAM;QAClBC,KAAKC,uBAAuBd,MAAAA;QAC5Be,MAAM,GAAGzB,SAAAA;QACT0B,YAAY;UACVL,SAASL,SAASK;QACpB;MACF,CAAA;AACAR,oBAAcc,QAAQX,SAASK,UAAU,UAAU,UAAA;AACnD,YAAMO,2BAA2B5B,WAAW,CAACgB,SAASK,OAAO;AAC7D,aAAO;QAAEQ,MAAMb,SAASK;MAAQ;IAClC;EACF,CAAA;EACAjB,eAAe;IACbC,QAAQC,oBAAoBwB;IAC5BtB,SAAS,CAACqB,SAAAA;AACR,YAAMnB,SAASX,QAAQY,kBAAkBC,gBAAAA;AAIzC,WAAKb,QAAQgC,kBAAkBjB,0BAA0BC,aAAa,EAAEiB,KAAK,CAACnB,kBAAAA;AAC5E,cAAMS,QAAQ;UACZC,KAAKC,uBAAuBd,MAAAA;UAC5Be,MAAM,GAAGzB,SAAAA,IAAa6B,KAAKJ,IAAI;UAC/BC,YAAY;YACV,GAAGG,KAAKH;UACV;QACF;AACAb,sBAAcS,MAAMA,KAAAA;MACtB,CAAA;IACF;EACF,CAAA;EACAlB,eAAe;IACbC,QAAQC,oBAAoB2B;IAC5BzB,SAAS,OAAOqB,SAAAA;AACd,YAAMhB,gBAAgBd,QAAQY,kBAAkBG,0BAA0BC,aAAa;AACvFF,oBAAcqB,oBAAoBL,KAAKM,OAAON,KAAKJ,MAAMI,KAAKO,OAAO;IACvE;EACF,CAAA;CACD;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "createResolver", "getTelemetryIdentifier", "storeObservabilityDisabled", "context", "namespace", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ObservabilityAction", "Toggle", "resolve", "state", "client", "requestCapability", "ClientCapability", "observability", "ObservabilityCapabilities", "Observability", "settings", "SettingsStore", "getStore", "OBSERVABILITY_PLUGIN", "value", "enabled", "event", "did", "getTelemetryIdentifier", "name", "properties", "setMode", "storeObservabilityDisabled", "data", "SendEvent", "waitForCapability", "then", "CaptureUserFeedback", "captureUserFeedback", "email", "message"]
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytes":1009,"imports":[],"format":"esm"},"packages/plugins/plugin-observability/src/types.ts":{"bytes":6985,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytes":4551,"imports":[{"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/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/index.ts":{"bytes":553,"imports":[{"path":"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx","kind":"import-statement","original":"./ObservabilitySettings"}],"format":"esm"},"packages/plugins/plugin-observability/src/translations.ts":{"bytes":3430,"imports":[{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/ObservabilityPlugin.tsx":{"bytes":29319,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-observability/src/index.ts":{"bytes":869,"imports":[{"path":"packages/plugins/plugin-observability/src/ObservabilityPlugin.tsx","kind":"import-statement","original":"./ObservabilityPlugin"},{"path":"packages/plugins/plugin-observability/src/ObservabilityPlugin.tsx","kind":"import-statement","original":"./ObservabilityPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18208},"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-52FTHXHB.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-7GGPSKXN.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","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/react-ui-form","kind":"import-statement","external":true}],"exports":["ObservabilityPlugin","default","parseObservabilityPlugin"],"entryPoint":"packages/plugins/plugin-observability/src/index.ts","inputs":{"packages/plugins/plugin-observability/src/ObservabilityPlugin.tsx":{"bytesInOutput":7557},"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytesInOutput":961},"packages/plugins/plugin-observability/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-observability/src/translations.ts":{"bytesInOutput":1031},"packages/plugins/plugin-observability/src/index.ts":{"bytesInOutput":39}},"bytes":10284},"packages/plugins/plugin-observability/dist/lib/node-esm/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-observability/dist/lib/node-esm/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-7GGPSKXN.mjs","kind":"import-statement"}],"exports":["OBSERVABILITY_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-observability/src/meta.ts","inputs":{},"bytes":267},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-52FTHXHB.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-7GGPSKXN.mjs","kind":"import-statement"}],"exports":["ObservabilityAction","UserFeedback"],"entryPoint":"packages/plugins/plugin-observability/src/types.ts","inputs":{},"bytes":286},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-52FTHXHB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3576},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-52FTHXHB.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-7GGPSKXN.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["ObservabilityAction","UserFeedback"],"inputs":{"packages/plugins/plugin-observability/src/types.ts":{"bytesInOutput":1658}},"bytes":1963},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-7GGPSKXN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":480},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-7GGPSKXN.mjs":{"imports":[],"exports":["OBSERVABILITY_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytesInOutput":132}},"bytes":374}}}
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytes":1140,"imports":[],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/capabilities.ts":{"bytes":2554,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/types.ts":{"bytes":6985,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/client-ready.ts":{"bytes":13968,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts":{"bytes":9515,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytes":5368,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-observability/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-observability/src/components/index.ts":{"bytes":553,"imports":[{"path":"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx","kind":"import-statement","original":"./ObservabilitySettings"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx":{"bytes":2983,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/settings.ts":{"bytes":2180,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/state.ts":{"bytes":3153,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/capabilities/index.ts":{"bytes":1944,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/capabilities/client-ready.ts","kind":"dynamic-import","original":"./client-ready"},{"path":"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts","kind":"dynamic-import","original":"./intents-resolver"},{"path":"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"packages/plugins/plugin-observability/src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"packages/plugins/plugin-observability/src/capabilities/state.ts","kind":"dynamic-import","original":"./state"}],"format":"esm"},"packages/plugins/plugin-observability/src/events.ts":{"bytes":1845,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/translations.ts":{"bytes":3365,"imports":[{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts":{"bytes":8404,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-observability/src/index.ts":{"bytes":1020,"imports":[{"path":"packages/plugins/plugin-observability/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-observability/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-observability/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts","kind":"import-statement","original":"./ObservabilityPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7008},"packages/plugins/plugin-observability/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-NXRLOXLL.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-IXURWG7Z.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-QYURTQNR.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/settings-UNFUTWGX.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/state-UXRA6NQC.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["OBSERVABILITY_PLUGIN","ObservabilityCapabilities","ObservabilityEvents","ObservabilityPlugin","meta"],"entryPoint":"packages/plugins/plugin-observability/src/index.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/index.ts":{"bytesInOutput":404},"packages/plugins/plugin-observability/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-observability/src/events.ts":{"bytesInOutput":337},"packages/plugins/plugin-observability/src/ObservabilityPlugin.ts":{"bytesInOutput":1690},"packages/plugins/plugin-observability/src/translations.ts":{"bytesInOutput":1002}},"bytes":4141},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-observability/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"}],"exports":["ObservabilityAction","UserFeedback"],"entryPoint":"packages/plugins/plugin-observability/src/types.ts","inputs":{},"bytes":286},"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-NXRLOXLL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6829},"packages/plugins/plugin-observability/dist/lib/node-esm/client-ready-NXRLOXLL.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/client-ready.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/client-ready.ts":{"bytesInOutput":3289}},"bytes":3766},"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-IXURWG7Z.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4681},"packages/plugins/plugin-observability/dist/lib/node-esm/intents-resolver-IXURWG7Z.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/intents-resolver.ts":{"bytesInOutput":1908}},"bytes":2397},"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-QYURTQNR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1531},"packages/plugins/plugin-observability/dist/lib/node-esm/react-surface-QYURTQNR.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-N5NBR55J.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-observability/src/capabilities/react-surface.tsx":{"bytesInOutput":542}},"bytes":968},"packages/plugins/plugin-observability/dist/lib/node-esm/settings-UNFUTWGX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1086},"packages/plugins/plugin-observability/dist/lib/node-esm/settings-UNFUTWGX.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-N5NBR55J.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/settings.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/settings.ts":{"bytesInOutput":342}},"bytes":758},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-N5NBR55J.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2948},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-N5NBR55J.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"exports":["ObservabilitySettings","ObservabilitySettingsSchema"],"inputs":{"packages/plugins/plugin-observability/src/components/ObservabilitySettings.tsx":{"bytesInOutput":1115},"packages/plugins/plugin-observability/src/components/index.ts":{"bytesInOutput":0}},"bytes":1527},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3576},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-DSC5SQ7W.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["ObservabilityAction","UserFeedback"],"inputs":{"packages/plugins/plugin-observability/src/types.ts":{"bytesInOutput":1658}},"bytes":1963},"packages/plugins/plugin-observability/dist/lib/node-esm/state-UXRA6NQC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1587},"packages/plugins/plugin-observability/dist/lib/node-esm/state-UXRA6NQC.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-observability/src/capabilities/state.ts","inputs":{"packages/plugins/plugin-observability/src/capabilities/state.ts":{"bytesInOutput":544}},"bytes":918},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1243},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-KPH3N6JS.mjs":{"imports":[{"path":"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["ClientCapability","ObservabilityCapabilities"],"inputs":{"packages/plugins/plugin-observability/src/capabilities/capabilities.ts":{"bytesInOutput":493}},"bytes":828},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":543},"packages/plugins/plugin-observability/dist/lib/node-esm/chunk-HTL7V6A2.mjs":{"imports":[],"exports":["OBSERVABILITY_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-observability/src/meta.ts":{"bytesInOutput":152}},"bytes":386}}}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
ObservabilitySettings
|
|
4
|
+
} from "./chunk-N5NBR55J.mjs";
|
|
5
|
+
import "./chunk-DSC5SQ7W.mjs";
|
|
6
|
+
import {
|
|
7
|
+
OBSERVABILITY_PLUGIN
|
|
8
|
+
} from "./chunk-HTL7V6A2.mjs";
|
|
9
|
+
|
|
10
|
+
// packages/plugins/plugin-observability/src/capabilities/react-surface.tsx
|
|
11
|
+
import React from "react";
|
|
12
|
+
import { contributes, Capabilities, createSurface } from "@dxos/app-framework";
|
|
13
|
+
import { SettingsStore } from "@dxos/local-storage";
|
|
14
|
+
var react_surface_default = () => contributes(Capabilities.ReactSurface, createSurface({
|
|
15
|
+
id: OBSERVABILITY_PLUGIN,
|
|
16
|
+
role: "article",
|
|
17
|
+
filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === OBSERVABILITY_PLUGIN,
|
|
18
|
+
component: ({ data: { subject } }) => /* @__PURE__ */ React.createElement(ObservabilitySettings, {
|
|
19
|
+
settings: subject.value
|
|
20
|
+
})
|
|
21
|
+
}));
|
|
22
|
+
export {
|
|
23
|
+
react_surface_default as default
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=react-surface-QYURTQNR.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 { contributes, Capabilities, createSurface } from '@dxos/app-framework';\nimport { SettingsStore } from '@dxos/local-storage';\n\nimport { ObservabilitySettings, type ObservabilitySettingsProps } from '../components';\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(\n Capabilities.ReactSurface,\n createSurface({\n id: OBSERVABILITY_PLUGIN,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ObservabilitySettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === OBSERVABILITY_PLUGIN,\n component: ({ data: { subject } }) => <ObservabilitySettings settings={subject.value} />,\n }),\n );\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,aAAaC,cAAcC,qBAAqB;AACzD,SAASC,qBAAqB;AAK9B,IAAA,wBAAe,MACbC,YACEC,aAAaC,cACbC,cAAc;EACZC,IAAIC;EACJC,MAAM;EACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN;EACnEO,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,uBAAAA;IAAsBC,UAAUL,QAAQM;;AACjF,CAAA,CAAA;",
|
|
6
|
+
"names": ["React", "contributes", "Capabilities", "createSurface", "SettingsStore", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "OBSERVABILITY_PLUGIN", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "ObservabilitySettings", "settings", "value"]
|
|
7
|
+
}
|