@dxos/plugin-observability 0.8.4-main.ead640a → 0.8.4-main.effb148878
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/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/neutral/ObservabilityPlugin.mjs +60 -0
- package/dist/lib/neutral/ObservabilityPlugin.mjs.map +7 -0
- package/dist/lib/neutral/ObservabilityPlugin.node.mjs +22 -0
- package/dist/lib/neutral/ObservabilityPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/ObservabilityPlugin.workerd.mjs +22 -0
- package/dist/lib/neutral/ObservabilityPlugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs +27 -0
- package/dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +17 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-6QCY3Z6O.mjs +8 -0
- package/dist/lib/neutral/chunk-6QCY3Z6O.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-RPFT4FVC.mjs +20 -0
- package/dist/lib/neutral/chunk-RPFT4FVC.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ZFVQL2JB.mjs +108 -0
- package/dist/lib/neutral/chunk-ZFVQL2JB.mjs.map +7 -0
- package/dist/lib/neutral/client-ready-TM7VE6CH.mjs +116 -0
- package/dist/lib/neutral/client-ready-TM7VE6CH.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +9 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +18 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-4WWRXOHR.mjs +13 -0
- package/dist/lib/neutral/operation-handler-4WWRXOHR.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-SHB2SLRK.mjs +35 -0
- package/dist/lib/neutral/react-surface-SHB2SLRK.mjs.map +7 -0
- package/dist/lib/neutral/send-event-NUMOCKDO.mjs +20 -0
- package/dist/lib/neutral/send-event-NUMOCKDO.mjs.map +7 -0
- package/dist/lib/neutral/settings-MZYK2WQR.mjs +30 -0
- package/dist/lib/neutral/settings-MZYK2WQR.mjs.map +7 -0
- package/dist/lib/neutral/state-5COCK3KV.mjs +27 -0
- package/dist/lib/neutral/state-5COCK3KV.mjs.map +7 -0
- package/dist/lib/neutral/toggle-RESKOU6L.mjs +45 -0
- package/dist/lib/neutral/toggle-RESKOU6L.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +26 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +14 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/types/src/ObservabilityPlugin.d.ts +9 -2
- package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
- package/dist/types/src/ObservabilityPlugin.node.d.ts +4 -0
- package/dist/types/src/ObservabilityPlugin.node.d.ts.map +1 -0
- package/dist/types/src/ObservabilityPlugin.test.d.ts +2 -0
- package/dist/types/src/ObservabilityPlugin.test.d.ts.map +1 -0
- package/dist/types/src/ObservabilityPlugin.workerd.d.ts +4 -0
- package/dist/types/src/ObservabilityPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/capabilities/client-ready.d.ts +5 -5
- package/dist/types/src/capabilities/client-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +15 -15
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +5 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +10 -3
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts +6 -0
- package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts.map +1 -0
- package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts +29 -0
- package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObservabilitySettings/index.d.ts +2 -0
- package/dist/types/src/components/ObservabilitySettings/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +2 -3
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -4
- 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/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/send-event.d.ts +5 -0
- package/dist/types/src/operations/send-event.d.ts.map +1 -0
- package/dist/types/src/operations/toggle.d.ts +5 -0
- package/dist/types/src/operations/toggle.d.ts.map +1 -0
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +10 -17
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/ObservabilityCapabilities.d.ts +28 -0
- package/dist/types/src/types/ObservabilityCapabilities.d.ts.map +1 -0
- package/dist/types/src/types/ObservabilityEvents.d.ts +4 -0
- package/dist/types/src/types/ObservabilityEvents.d.ts.map +1 -0
- package/dist/types/src/types/ObservabilityOperation.d.ts +10 -0
- package/dist/types/src/types/ObservabilityOperation.d.ts.map +1 -0
- package/dist/types/src/types/Settings.d.ts +7 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +4 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +97 -49
- package/src/ObservabilityPlugin.node.ts +33 -0
- package/src/ObservabilityPlugin.test.ts +25 -0
- package/src/ObservabilityPlugin.ts +64 -56
- package/src/ObservabilityPlugin.workerd.ts +32 -0
- package/src/capabilities/client-ready.ts +87 -79
- package/src/capabilities/index.ts +11 -8
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/react-surface.tsx +27 -19
- package/src/capabilities/settings.ts +26 -14
- package/src/capabilities/state.ts +20 -13
- package/src/components/ObservabilitySettings/ObservabilitySettings.stories.tsx +34 -0
- package/src/components/ObservabilitySettings/ObservabilitySettings.tsx +34 -0
- package/src/components/ObservabilitySettings/index.ts +5 -0
- package/src/components/index.ts +3 -3
- package/src/index.ts +1 -4
- package/src/meta.ts +10 -3
- package/src/operations/index.ts +10 -0
- package/src/operations/send-event.ts +23 -0
- package/src/operations/toggle.ts +46 -0
- package/src/plugin.ts +11 -0
- package/src/translations.ts +10 -17
- package/src/types/ObservabilityCapabilities.ts +42 -0
- package/src/types/ObservabilityEvents.ts +15 -0
- package/src/types/ObservabilityOperation.ts +43 -0
- package/src/types/Settings.ts +22 -0
- package/src/types/index.ts +4 -1
- package/dist/lib/browser/app-graph-builder-MBPI6TGN.mjs +0 -44
- package/dist/lib/browser/app-graph-builder-MBPI6TGN.mjs.map +0 -7
- package/dist/lib/browser/chunk-5VM6D2EF.mjs +0 -179
- package/dist/lib/browser/chunk-5VM6D2EF.mjs.map +0 -7
- package/dist/lib/browser/chunk-G754T676.mjs +0 -18
- package/dist/lib/browser/chunk-G754T676.mjs.map +0 -7
- package/dist/lib/browser/chunk-RS66U4WR.mjs +0 -191
- package/dist/lib/browser/chunk-RS66U4WR.mjs.map +0 -7
- package/dist/lib/browser/chunk-SCJ3DALL.mjs +0 -11
- package/dist/lib/browser/chunk-SCJ3DALL.mjs.map +0 -7
- package/dist/lib/browser/client-ready-IV2NFN4M.mjs +0 -102
- package/dist/lib/browser/client-ready-IV2NFN4M.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -128
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-IZTKLP6N.mjs +0 -77
- package/dist/lib/browser/intent-resolver-IZTKLP6N.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-surface-N7WRUNJ2.mjs +0 -32
- package/dist/lib/browser/react-surface-N7WRUNJ2.mjs.map +0 -7
- package/dist/lib/browser/settings-JOZ5BZDO.mjs +0 -25
- package/dist/lib/browser/settings-JOZ5BZDO.mjs.map +0 -7
- package/dist/lib/browser/state-OVWHPB7K.mjs +0 -26
- package/dist/lib/browser/state-OVWHPB7K.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -10
- package/dist/lib/node-esm/app-graph-builder-LHLEY5QQ.mjs +0 -45
- package/dist/lib/node-esm/app-graph-builder-LHLEY5QQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4SMSG2RN.mjs +0 -13
- package/dist/lib/node-esm/chunk-4SMSG2RN.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-H3QRVOIY.mjs +0 -180
- package/dist/lib/node-esm/chunk-H3QRVOIY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SCOMEIPJ.mjs +0 -192
- package/dist/lib/node-esm/chunk-SCOMEIPJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZS4YMD63.mjs +0 -19
- package/dist/lib/node-esm/chunk-ZS4YMD63.mjs.map +0 -7
- package/dist/lib/node-esm/client-ready-SL6BA2IP.mjs +0 -103
- package/dist/lib/node-esm/client-ready-SL6BA2IP.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -129
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-VW7XPMBG.mjs +0 -78
- package/dist/lib/node-esm/intent-resolver-VW7XPMBG.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/react-surface-3PNZVMXB.mjs +0 -33
- package/dist/lib/node-esm/react-surface-3PNZVMXB.mjs.map +0 -7
- package/dist/lib/node-esm/settings-2AOUWDQY.mjs +0 -26
- package/dist/lib/node-esm/settings-2AOUWDQY.mjs.map +0 -7
- package/dist/lib/node-esm/state-5UHYHOJV.mjs +0 -27
- package/dist/lib/node-esm/state-5UHYHOJV.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -11
- package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/capabilities.d.ts +0 -12
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -7
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/components/FeedbackForm.d.ts +0 -6
- package/dist/types/src/components/FeedbackForm.d.ts.map +0 -1
- package/dist/types/src/components/HelpContainer.d.ts +0 -3
- package/dist/types/src/components/HelpContainer.d.ts.map +0 -1
- package/dist/types/src/components/ObservabilitySettings.d.ts +0 -10
- package/dist/types/src/components/ObservabilitySettings.d.ts.map +0 -1
- package/dist/types/src/events.d.ts +0 -5
- package/dist/types/src/events.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -313
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder.ts +0 -47
- package/src/capabilities/capabilities.ts +0 -23
- package/src/capabilities/intent-resolver.ts +0 -69
- package/src/components/FeedbackForm.tsx +0 -82
- package/src/components/HelpContainer.tsx +0 -41
- package/src/components/ObservabilitySettings.tsx +0 -48
- package/src/events.ts +0 -14
- package/src/types/schema.ts +0 -216
- /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/client-ready.ts
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
6
|
+
import { LayoutOperation, SettingsOperation } from "@dxos/app-toolkit";
|
|
7
|
+
import { log } from "@dxos/log";
|
|
8
|
+
import { ObservabilityProvider } from "@dxos/observability";
|
|
9
|
+
import { meta } from "#meta";
|
|
10
|
+
import { ObservabilityCapabilities, ObservabilityOperation } from "#types";
|
|
11
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-observability/src/capabilities/client-ready.ts";
|
|
12
|
+
var client_ready_default = Capability.makeModule(Effect.fnUntraced(function* ({ observability }) {
|
|
13
|
+
const manager = yield* Capability.get(Capabilities.PluginManager);
|
|
14
|
+
const { invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);
|
|
15
|
+
const registry = yield* Capability.get(Capabilities.AtomRegistry);
|
|
16
|
+
const stateAtom = yield* Capability.get(ObservabilityCapabilities.State);
|
|
17
|
+
const client = yield* Capability.get(ObservabilityCapabilities.ClientCapability);
|
|
18
|
+
const sendPrivacyNotice = async () => {
|
|
19
|
+
const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;
|
|
20
|
+
const notify = environment && environment !== "ci" && !environment.endsWith(".local") && !environment.endsWith(".lan");
|
|
21
|
+
const state = registry.get(stateAtom);
|
|
22
|
+
if (!state.notified && notify) {
|
|
23
|
+
await invokePromise(LayoutOperation.AddToast, {
|
|
24
|
+
id: `${meta.id}.notice`,
|
|
25
|
+
title: [
|
|
26
|
+
"observability-toast.label",
|
|
27
|
+
{
|
|
28
|
+
ns: meta.id
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
description: [
|
|
32
|
+
"observability-toast.description",
|
|
33
|
+
{
|
|
34
|
+
ns: meta.id
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
duration: Infinity,
|
|
38
|
+
icon: "ph--info--regular",
|
|
39
|
+
actionLabel: [
|
|
40
|
+
"observability-toast-action.label",
|
|
41
|
+
{
|
|
42
|
+
ns: meta.id
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
actionAlt: [
|
|
46
|
+
"observability-toast-action.alt",
|
|
47
|
+
{
|
|
48
|
+
ns: meta.id
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
closeLabel: [
|
|
52
|
+
"observability-toast-close.label",
|
|
53
|
+
{
|
|
54
|
+
ns: meta.id
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
onAction: () => invokePromise(SettingsOperation.Open, {
|
|
58
|
+
plugin: meta.id
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
registry.set(stateAtom, {
|
|
62
|
+
...registry.get(stateAtom),
|
|
63
|
+
notified: true
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const enabledPlugins = manager.getEnabled();
|
|
68
|
+
log("client-ready: tagging enabled plugins", {
|
|
69
|
+
count: enabledPlugins.length
|
|
70
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 68, S: this });
|
|
71
|
+
for (const plugin of enabledPlugins) {
|
|
72
|
+
observability.setTags({
|
|
73
|
+
[`pluginEnabled-${plugin}`]: "true"
|
|
74
|
+
}, "errors");
|
|
75
|
+
}
|
|
76
|
+
log("client-ready: sending page.load event", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 76, S: this });
|
|
77
|
+
yield* Effect.tryPromise(() => invokePromise(ObservabilityOperation.SendEvent, {
|
|
78
|
+
name: "page.load",
|
|
79
|
+
properties: {
|
|
80
|
+
// TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
|
|
81
|
+
loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart
|
|
82
|
+
}
|
|
83
|
+
}));
|
|
84
|
+
log("client-ready: page.load event sent", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 84, S: this });
|
|
85
|
+
log("client-ready: adding identity data provider", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 89, S: this });
|
|
86
|
+
yield* observability.addDataProvider(ObservabilityProvider.Client.identityProvider(client.services.services));
|
|
87
|
+
log("client-ready: identity data provider added", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 91, S: this });
|
|
88
|
+
log("client-ready: adding network metrics data provider", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 92, S: this });
|
|
89
|
+
yield* observability.addDataProvider(ObservabilityProvider.Client.networkMetricsProvider(client.services.services));
|
|
90
|
+
log("client-ready: network metrics data provider added", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 94, S: this });
|
|
91
|
+
log("client-ready: adding runtime metrics data provider", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 95, S: this });
|
|
92
|
+
yield* observability.addDataProvider(ObservabilityProvider.Client.runtimeMetricsProvider(client.services.services));
|
|
93
|
+
log("client-ready: runtime metrics data provider added", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 97, S: this });
|
|
94
|
+
log("client-ready: adding space metrics data provider", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 98, S: this });
|
|
95
|
+
yield* observability.addDataProvider(ObservabilityProvider.Client.spacesMetricsProvider(client));
|
|
96
|
+
log("client-ready: space metrics data provider added", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 100, S: this });
|
|
97
|
+
if (client.halo.identity.get()) {
|
|
98
|
+
log("client-ready: identity present, sending privacy notice", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 102, S: this });
|
|
99
|
+
yield* Effect.tryPromise(() => sendPrivacyNotice());
|
|
100
|
+
log("client-ready: privacy notice sent", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 104, S: this });
|
|
101
|
+
} else {
|
|
102
|
+
log("client-ready: no identity, deferring privacy notice", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 106, S: this });
|
|
103
|
+
const subscription = client.halo.identity.subscribe(async (identity) => {
|
|
104
|
+
if (identity && observability) {
|
|
105
|
+
await sendPrivacyNotice();
|
|
106
|
+
subscription.unsubscribe();
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
log("client-ready: contributing observability capability", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 114, S: this });
|
|
111
|
+
return Capability.contributes(ObservabilityCapabilities.Observability, observability, () => observability.close());
|
|
112
|
+
}));
|
|
113
|
+
export {
|
|
114
|
+
client_ready_default as default
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=client-ready-TM7VE6CH.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/client-ready.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { LayoutOperation, SettingsOperation } from '@dxos/app-toolkit';\nimport { log } from '@dxos/log';\nimport { type Observability, ObservabilityProvider } from '@dxos/observability';\n\nimport { meta } from '#meta';\nimport { ObservabilityCapabilities, ObservabilityOperation } from '#types';\n\nexport type ClientReadyOptions = {\n namespace: string;\n observability: Observability.Observability;\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ observability }: ClientReadyOptions) {\n const manager = yield* Capability.get(Capabilities.PluginManager);\n const { invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const stateAtom = yield* Capability.get(ObservabilityCapabilities.State);\n const client = yield* Capability.get(ObservabilityCapabilities.ClientCapability);\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 const state = registry.get(stateAtom);\n if (!state.notified && notify) {\n await invokePromise(LayoutOperation.AddToast, {\n id: `${meta.id}.notice`,\n title: ['observability-toast.label', { ns: meta.id }],\n description: ['observability-toast.description', { ns: meta.id }],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: ['observability-toast-action.label', { ns: meta.id }],\n actionAlt: ['observability-toast-action.alt', { ns: meta.id }],\n closeLabel: ['observability-toast-close.label', { ns: meta.id }],\n onAction: () => invokePromise(SettingsOperation.Open, { plugin: meta.id }),\n });\n\n registry.set(stateAtom, { ...registry.get(stateAtom), notified: true });\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n const enabledPlugins = manager.getEnabled();\n log('client-ready: tagging enabled plugins', { count: enabledPlugins.length });\n for (const plugin of enabledPlugins) {\n observability.setTags({ [`pluginEnabled-${plugin}`]: 'true' }, 'errors');\n }\n\n log('client-ready: sending page.load event');\n yield* Effect.tryPromise(() =>\n invokePromise(ObservabilityOperation.SendEvent, {\n name: 'page.load',\n properties: {\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 log('client-ready: page.load event sent');\n\n // Each provider is logged individually because some provider setups perform\n // RPC calls (e.g. runtimeMetricsProvider awaits SystemService.getPlatform());\n // a hung worker pipe surfaces as a missing \"added\" log, so the last\n // \"adding ...\" line points to the stall.\n log('client-ready: adding identity data provider');\n yield* observability.addDataProvider(ObservabilityProvider.Client.identityProvider(client.services.services));\n log('client-ready: identity data provider added');\n\n log('client-ready: adding network metrics data provider');\n yield* observability.addDataProvider(ObservabilityProvider.Client.networkMetricsProvider(client.services.services));\n log('client-ready: network metrics data provider added');\n\n log('client-ready: adding runtime metrics data provider');\n yield* observability.addDataProvider(ObservabilityProvider.Client.runtimeMetricsProvider(client.services.services));\n log('client-ready: runtime metrics data provider added');\n\n log('client-ready: adding space metrics data provider');\n yield* observability.addDataProvider(ObservabilityProvider.Client.spacesMetricsProvider(client));\n log('client-ready: space metrics data provider added');\n\n if (client.halo.identity.get()) {\n log('client-ready: identity present, sending privacy notice');\n yield* Effect.tryPromise(() => sendPrivacyNotice());\n log('client-ready: privacy notice sent');\n } else {\n log('client-ready: no identity, deferring privacy notice');\n const subscription = client.halo.identity.subscribe(async (identity) => {\n if (identity && observability) {\n await sendPrivacyNotice();\n subscription.unsubscribe();\n }\n });\n }\n\n log('client-ready: contributing observability capability');\n return Capability.contributes(ObservabilityCapabilities.Observability, observability, () => observability.close());\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,iBAAiBC,yBAAyB;AACnD,SAASC,WAAW;AACpB,SAA6BC,6BAA6B;AAE1D,SAASC,YAAY;AACrB,SAASC,2BAA2BC,8BAA8B;AAOlE,IAAA,eAAeP;IAGX,uBAAQQ,WAAa,WAAYR,kBAAeD,WAAaU,EAAAA,cAAgB,GAAA;AAC7E,QAAMC,UAAAA,OAAW,WAAOV,IAAc,aAACD,aAAyB;AAChE,QAAMY,EAAAA,cAAY,IAAOX,OAAAA,WAAeM,IAAAA,aAAAA,gBAA+B;AACvE,QAAMM,WAAS,OAAOZ,WAAWa,IAAIP,aAAAA,YAA0BQ;AAE/D,QAAMC,YAAAA,OAAAA,WAAoB,IAAA,0BAAA,KAAA;QACxB,SAAMC,OAAAA,WAAsBC,IAAAA,0BAA6BC,gBAAKC;QAC9D,oBACEH,YAAeA;AACjB,UAAMI,cAAQV,QAAaC,QAAAA,OAAAA,SAAAA,KAAAA,KAAAA;AAC3B,UAAKS,SAAMC,eAAYC,gBAAQ,QAAA,CAAA,YAAA,SAAA,QAAA,KAAA,CAAA,YAAA,SAAA,MAAA;UAC7B,QAAMd,SAAAA,IAAcP,SAAAA;eAClBsB,YAAe,QAAQ;YACvBC,cAAO,gBAAA,UAAA;YAAC,GAAA,KAAA,EAAA;eAA6B;;UAAc;YAAE,IAAA,KAAA;UACrDC;;qBAAiD;;UAAc;YAAE,IAAA,KAAA;UACjEC;QACAC;QACAC,UAAAA;cAAc;qBAAoC;;UAAc;YAAE,IAAA,KAAA;UAClEC;;mBAA8C;;UAAc;YAAE,IAAA,KAAA;UAC9DC;;oBAAgD;;UAAc;YAAE,IAAA,KAAA;UAChEC;;kBAAwE,MAAA,cAAA,kBAAA,MAAA;UAC1E,QAAA,KAAA;QAEArB,CAASsB;;eAA6CX,IAAAA,WAAU;QAAK,GAAA,SAAA,IAAA,SAAA;QACvE,UAAA;MACF,CAAA;IAEA;EACA;QAC+CY,iBAAOC,QAAeC,WAAM;AAAC,MAAA,yCAAA;IAC5E,OAAWC,eAAUF;mBACnBG,YAAqB,GAAC,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;aAAI,UAAA,gBAAyB;AAAS,kBAAG,QAAA;MACjE,CAAA,iBAAA,MAAA,EAAA,GAAA;IAEI,GAAA,QAAA;EACJ;+CAEU,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;SACNC,kBAAY,MAAA,cAAA,uBAAA,WAAA;UACV;gBACAC;;MAEJ,cAAA,OAAA,YAAA,OAAA,eAAA,OAAA,YAAA,OAAA;IAEE;EAEJ,CAAA,CAAA;AACA,MAAA,sCAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAA8E,GAAA,IAAA,GAAA,KAAA,CAAA;AAK9EpC,MAAI,+CAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AAEJA,SAAI,cAAA,gBAAA,sBAAA,OAAA,iBAAA,OAAA,SAAA,QAAA,CAAA;AACJ,MAAA,8CAAqCC,QAAAA,EAAAA,YAA6BoC,YAAAA,GAAAA,cAAuB5B,GAAO6B,IAAAA,GAAAA,KAASA,CAAAA;AACzGtC,MAAI,sDAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AAEJA,SAAI,cAAA,gBAAA,sBAAA,OAAA,uBAAA,OAAA,SAAA,QAAA,CAAA;AACJ,MAAA,qDAAqCC,QAAsBsC,EAAAA,YAAOC,YAAAA,GAAsB,cAAQF,GAAAA,IAASA,GAAAA,KAAAA,CAAQ;AACjHtC,MAAI,sDAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AAEJA,SAAI,cAAA,gBAAA,sBAAA,OAAA,uBAAA,OAAA,SAAA,QAAA,CAAA;AACJ,MAAA,qDAAqCC,QAAsBsC,EAAAA,YAAOE,YAAAA,GAAsBhC,cAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;AACxFT,MAAI,oDAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AAEJ,SAAIS,cAAYiC,gBAAgB,sBAAA,OAAA,sBAAA,MAAA,CAAA;MAC9B1C,mDAAI,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,KAAA,CAAA;MACJ,OAAOL,KAAAA,SAAOgD,IAAW,GAAA;AACzB3C,QAAI,0DAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,KAAA,CAAA;AACN,WAAO,kBAAA,MAAA,kBAAA,CAAA;AACLA,QAAI,qCAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,KAAA,CAAA;SACJ;QACE,uDAA+B,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,KAAA,CAAA;yBACvBY,OAAAA,KAAAA,SAAAA,UAAAA,OAAAA,aAAAA;UACNgC,YAAAA,eAAwB;AAC1B,cAAA,kBAAA;AACF,qBAAA,YAAA;MACF;IAEI,CAAA;EACJ;AAEF,MAAA,uDAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,KAAA,CAAA;;;",
|
|
6
|
+
"names": ["Effect", "Capabilities", "Capability", "LayoutOperation", "SettingsOperation", "log", "ObservabilityProvider", "meta", "ObservabilityCapabilities", "ObservabilityOperation", "invokePromise", "OperationInvoker", "registry", "stateAtom", "client", "get", "ClientCapability", "sendPrivacyNotice", "environment", "config", "env", "DX_ENVIRONMENT", "state", "notified", "notify", "id", "title", "description", "duration", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "set", "count", "enabledPlugins", "length", "plugin", "observability", "properties", "loadDuration", "networkMetricsProvider", "services", "Client", "runtimeMetricsProvider", "spacesMetricsProvider", "identity", "tryPromise", "subscription"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const ObservabilitySettings: ComponentType<any> = lazy(() => import('./ObservabilitySettings'));\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,wBAA4CD,KAAK,MAAM,OAAO,uCAAA,CAAA;",
|
|
6
|
+
"names": ["lazy", "ObservabilitySettings"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ObservabilityCapabilities_exports,
|
|
3
|
+
ObservabilityEvents_exports,
|
|
4
|
+
ObservabilityOperation_exports,
|
|
5
|
+
Settings_exports
|
|
6
|
+
} from "./chunk-ZFVQL2JB.mjs";
|
|
7
|
+
import {
|
|
8
|
+
meta
|
|
9
|
+
} from "./chunk-RPFT4FVC.mjs";
|
|
10
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
11
|
+
export {
|
|
12
|
+
ObservabilityCapabilities_exports as ObservabilityCapabilities,
|
|
13
|
+
ObservabilityEvents_exports as ObservabilityEvents,
|
|
14
|
+
ObservabilityOperation_exports as ObservabilityOperation,
|
|
15
|
+
Settings_exports as Settings,
|
|
16
|
+
meta
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"inputs":{"src/meta.ts":{"bytes":1608,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/types/ObservabilityCapabilities.ts":{"bytes":4560,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/types/ObservabilityEvents.ts":{"bytes":1789,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/types/ObservabilityOperation.ts":{"bytes":4448,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/types/Settings.ts":{"bytes":1691,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true}],"format":"esm"},"src/types/index.ts":{"bytes":1164,"imports":[{"path":"src/types/ObservabilityCapabilities.ts","kind":"import-statement","original":"./ObservabilityCapabilities"},{"path":"src/types/ObservabilityEvents.ts","kind":"import-statement","original":"./ObservabilityEvents"},{"path":"src/types/ObservabilityOperation.ts","kind":"import-statement","original":"./ObservabilityOperation"},{"path":"src/types/Settings.ts","kind":"import-statement","original":"./Settings"}],"format":"esm"},"src/index.ts":{"bytes":449,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/ObservabilityPlugin.ts":{"bytes":10165,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/ObservabilityPlugin.node.ts":{"bytes":3710,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/ObservabilityPlugin.workerd.ts":{"bytes":3624,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/client-ready.ts":{"bytes":18219,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/operation-handler.ts":{"bytes":1703,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#operations","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":4854,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"#components","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/settings.ts":{"bytes":3215,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/state.ts":{"bytes":3720,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/index.ts":{"bytes":2452,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/client-ready.ts","kind":"dynamic-import","original":"./client-ready"},{"path":"src/capabilities/operation-handler.ts","kind":"dynamic-import","original":"./operation-handler"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"src/capabilities/state.ts","kind":"dynamic-import","original":"./state"}],"format":"esm"},"src/components/ObservabilitySettings/ObservabilitySettings.tsx":{"bytes":3793,"imports":[{"path":"react","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":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/components/ObservabilitySettings/index.ts":{"bytes":560,"imports":[{"path":"src/components/ObservabilitySettings/ObservabilitySettings.tsx","kind":"import-statement","original":"./ObservabilitySettings"}],"format":"esm"},"src/components/index.ts":{"bytes":756,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/components/ObservabilitySettings/index.ts","kind":"dynamic-import","original":"./ObservabilitySettings"}],"format":"esm"},"src/operations/send-event.ts":{"bytes":2822,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/operations/toggle.ts":{"bytes":6264,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/operations/index.ts":{"bytes":967,"imports":[{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"src/operations/send-event.ts","kind":"dynamic-import","original":"./send-event"},{"path":"src/operations/toggle.ts","kind":"dynamic-import","original":"./toggle"}],"format":"esm"},"src/plugin.ts":{"bytes":1123,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/operations/index.ts","kind":"import-statement","original":"./operations"},{"path":"#plugin","kind":"dynamic-import","external":true}],"format":"esm"},"src/translations.ts":{"bytes":3379,"imports":[{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2100},"dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","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":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/components/ObservabilitySettings/index.ts","inputs":{"src/components/ObservabilitySettings/ObservabilitySettings.tsx":{"bytesInOutput":912},"src/components/ObservabilitySettings/index.ts":{"bytesInOutput":0}},"bytes":1117},"dist/lib/neutral/send-event-NUMOCKDO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1516},"dist/lib/neutral/send-event-NUMOCKDO.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-ZFVQL2JB.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/operations/send-event.ts","inputs":{"src/operations/send-event.ts":{"bytesInOutput":500}},"bytes":767},"dist/lib/neutral/toggle-RESKOU6L.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3450},"dist/lib/neutral/toggle-RESKOU6L.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-ZFVQL2JB.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/operations/toggle.ts","inputs":{"src/operations/toggle.ts":{"bytesInOutput":1421}},"bytes":1676},"dist/lib/neutral/plugin.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":527},"dist/lib/neutral/plugin.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-RPFT4FVC.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-6QCY3Z6O.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#plugin","kind":"dynamic-import","external":true}],"exports":["ObservabilityOperationHandlerSet","ObservabilityPlugin"],"entryPoint":"src/plugin.ts","inputs":{"src/plugin.ts":{"bytesInOutput":116}},"bytes":393},"dist/lib/neutral/translations.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1564},"dist/lib/neutral/translations.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"#meta","kind":"import-statement","external":true}],"exports":["translations"],"entryPoint":"src/translations.ts","inputs":{"src/translations.ts":{"bytesInOutput":1034}},"bytes":1158},"dist/lib/neutral/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/types/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-ZFVQL2JB.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["ObservabilityCapabilities","ObservabilityEvents","ObservabilityOperation","Settings"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":452},"dist/lib/neutral/client-ready-TM7VE6CH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8650},"dist/lib/neutral/client-ready-TM7VE6CH.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/client-ready.ts","inputs":{"src/capabilities/client-ready.ts":{"bytesInOutput":5610}},"bytes":5775},"dist/lib/neutral/operation-handler-4WWRXOHR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":949},"dist/lib/neutral/operation-handler-4WWRXOHR.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#operations","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/operation-handler.ts","inputs":{"src/capabilities/operation-handler.ts":{"bytesInOutput":359}},"bytes":539},"dist/lib/neutral/react-surface-SHB2SLRK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2530},"dist/lib/neutral/react-surface-SHB2SLRK.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"#components","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":1139}},"bytes":1308},"dist/lib/neutral/settings-MZYK2WQR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1636},"dist/lib/neutral/settings-MZYK2WQR.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/settings.ts","inputs":{"src/capabilities/settings.ts":{"bytesInOutput":745}},"bytes":898},"dist/lib/neutral/state-5COCK3KV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1971},"dist/lib/neutral/state-5COCK3KV.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/observability","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/state.ts","inputs":{"src/capabilities/state.ts":{"bytesInOutput":839}},"bytes":983},"dist/lib/neutral/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-ZFVQL2JB.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-RPFT4FVC.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["ObservabilityCapabilities","ObservabilityEvents","ObservabilityOperation","Settings","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0}},"bytes":505},"dist/lib/neutral/chunk-ZFVQL2JB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6291},"dist/lib/neutral/chunk-ZFVQL2JB.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true}],"exports":["ObservabilityCapabilities_exports","ObservabilityEvents_exports","ObservabilityOperation_exports","Settings_exports"],"inputs":{"src/types/ObservabilityCapabilities.ts":{"bytesInOutput":1018},"src/types/index.ts":{"bytesInOutput":0},"src/types/ObservabilityEvents.ts":{"bytesInOutput":463},"src/types/ObservabilityOperation.ts":{"bytesInOutput":1246},"src/types/Settings.ts":{"bytesInOutput":351}},"bytes":3453},"dist/lib/neutral/ObservabilityPlugin.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5384},"dist/lib/neutral/ObservabilityPlugin.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["ObservabilityPlugin","default"],"entryPoint":"src/ObservabilityPlugin.ts","inputs":{"src/ObservabilityPlugin.ts":{"bytesInOutput":2356}},"bytes":2543},"dist/lib/neutral/ObservabilityPlugin.node.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1988},"dist/lib/neutral/ObservabilityPlugin.node.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["ObservabilityPlugin","default"],"entryPoint":"src/ObservabilityPlugin.node.ts","inputs":{"src/ObservabilityPlugin.node.ts":{"bytesInOutput":794}},"bytes":996},"dist/lib/neutral/ObservabilityPlugin.workerd.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1960},"dist/lib/neutral/ObservabilityPlugin.workerd.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["ObservabilityPlugin","default"],"entryPoint":"src/ObservabilityPlugin.workerd.ts","inputs":{"src/ObservabilityPlugin.workerd.ts":{"bytesInOutput":797}},"bytes":1008},"dist/lib/neutral/capabilities/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1340},"dist/lib/neutral/capabilities/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/neutral/client-ready-TM7VE6CH.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/operation-handler-4WWRXOHR.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/react-surface-SHB2SLRK.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/settings-MZYK2WQR.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/state-5COCK3KV.mjs","kind":"dynamic-import"}],"exports":["ClientReady","ObservabilitySettings","ObservabilityState","OperationHandler","ReactSurface"],"entryPoint":"src/capabilities/index.ts","inputs":{"src/capabilities/index.ts":{"bytesInOutput":571}},"bytes":777},"dist/lib/neutral/components/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":425},"dist/lib/neutral/components/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs","kind":"dynamic-import"}],"exports":["ObservabilitySettings"],"entryPoint":"src/components/index.ts","inputs":{"src/components/index.ts":{"bytesInOutput":119}},"bytes":250},"dist/lib/neutral/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/meta.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-RPFT4FVC.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["meta"],"entryPoint":"src/meta.ts","inputs":{},"bytes":131},"dist/lib/neutral/chunk-RPFT4FVC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":802},"dist/lib/neutral/chunk-RPFT4FVC.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["meta"],"inputs":{"src/meta.ts":{"bytesInOutput":381}},"bytes":460},"dist/lib/neutral/operations/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/operations/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-6QCY3Z6O.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["ObservabilityOperationHandlerSet"],"entryPoint":"src/operations/index.ts","inputs":{},"bytes":190},"dist/lib/neutral/chunk-6QCY3Z6O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":524},"dist/lib/neutral/chunk-6QCY3Z6O.mjs":{"imports":[{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"dist/lib/neutral/send-event-NUMOCKDO.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/toggle-RESKOU6L.mjs","kind":"dynamic-import"}],"exports":["ObservabilityOperationHandlerSet"],"inputs":{"src/operations/index.ts":{"bytesInOutput":200}},"bytes":319},"dist/lib/neutral/chunk-J5LGTIGS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/chunk-J5LGTIGS.mjs":{"imports":[],"exports":["__export"],"inputs":{},"bytes":235}}}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/operation-handler.ts
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
6
|
+
import { ObservabilityOperationHandlerSet } from "#operations";
|
|
7
|
+
var operation_handler_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
8
|
+
return Capability.contributes(Capabilities.OperationHandler, ObservabilityOperationHandlerSet);
|
|
9
|
+
}));
|
|
10
|
+
export {
|
|
11
|
+
operation_handler_default as default
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=operation-handler-4WWRXOHR.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/operation-handler.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport type { OperationHandlerSet } from '@dxos/compute';\n\nimport { ObservabilityOperationHandlerSet } from '#operations';\n\nexport default Capability.makeModule<OperationHandlerSet.OperationHandlerSet>(\n Effect.fnUntraced(function* () {\n return Capability.contributes(Capabilities.OperationHandler, ObservabilityOperationHandlerSet);\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AAGzC,SAASC,wCAAwC;AAEjD,IAAA,4BAAeD,WAAWE,WACjBC,kBAAW,aAAA;AAChB,SAAOH,WAAWI,YAAYL,aAAaM,kBAAkBJ,gCAAAA;AAC/D,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capabilities", "Capability", "ObservabilityOperationHandlerSet", "makeModule", "fnUntraced", "contributes", "OperationHandler"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-RPFT4FVC.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ObservabilityOperationHandlerSet
|
|
6
|
+
} from "./chunk-6QCY3Z6O.mjs";
|
|
7
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
8
|
+
|
|
9
|
+
// src/plugin.ts
|
|
10
|
+
import { Plugin } from "@dxos/app-framework";
|
|
11
|
+
var ObservabilityPlugin = Plugin.lazy(meta, () => import("#plugin"));
|
|
12
|
+
export {
|
|
13
|
+
ObservabilityOperationHandlerSet,
|
|
14
|
+
ObservabilityPlugin
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=plugin.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/plugin.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport const ObservabilityPlugin = Plugin.lazy(meta, () => import('#plugin'));\n\nexport { ObservabilityOperationHandlerSet } from './operations';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAIA,SAASA,cAAc;AAIhB,IAAMC,sBAAsBC,OAAOC,KAAKC,MAAM,MAAM,OAAO,SAAA,CAAA;",
|
|
6
|
+
"names": ["Plugin", "ObservabilityPlugin", "Plugin", "lazy", "meta"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/react-surface.tsx
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
7
|
+
import { Surface, useOperationInvoker, useSettingsState } from "@dxos/app-framework/ui";
|
|
8
|
+
import { AppSurface } from "@dxos/app-toolkit/ui";
|
|
9
|
+
import { ObservabilitySettings } from "#components";
|
|
10
|
+
import { meta } from "#meta";
|
|
11
|
+
import { ObservabilityOperation } from "#types";
|
|
12
|
+
var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
|
|
13
|
+
Surface.create({
|
|
14
|
+
id: "root",
|
|
15
|
+
filter: AppSurface.settings(AppSurface.Article, meta.id),
|
|
16
|
+
component: ({ data: { subject } }) => {
|
|
17
|
+
const { settings } = useSettingsState(subject.atom);
|
|
18
|
+
const { invokePromise } = useOperationInvoker();
|
|
19
|
+
const handleSettingsChange = (cb) => {
|
|
20
|
+
const next = cb(settings);
|
|
21
|
+
void invokePromise(ObservabilityOperation.Toggle, {
|
|
22
|
+
state: next.enabled
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
return /* @__PURE__ */ React.createElement(ObservabilitySettings, {
|
|
26
|
+
settings,
|
|
27
|
+
onSettingsChange: handleSettingsChange
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
])));
|
|
32
|
+
export {
|
|
33
|
+
react_surface_default as default
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=react-surface-SHB2SLRK.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 * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface, useOperationInvoker, useSettingsState } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\n\nimport { ObservabilitySettings } from '#components';\nimport { meta } from '#meta';\nimport { ObservabilityOperation } from '#types';\nimport { type Settings } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: 'root',\n filter: AppSurface.settings(AppSurface.Article, meta.id),\n component: ({ data: { subject } }) => {\n const { settings } = useSettingsState<Settings.Settings>(subject.atom);\n const { invokePromise } = useOperationInvoker();\n const handleSettingsChange = (cb: (current: Settings.Settings) => Settings.Settings) => {\n const next = cb(settings);\n void invokePromise(ObservabilityOperation.Toggle, { state: next.enabled });\n };\n return <ObservabilitySettings settings={settings} onSettingsChange={handleSettingsChange} />;\n },\n }),\n ]),\n ),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,SAASC,qBAAqBC,wBAAwB;AAC/D,SAASC,kBAAkB;AAE3B,SAASC,6BAA6B;AACtC,SAASC,YAAY;AACrB,SAASC,8BAA8B;AAGvC,IAAA,wBAAeP,WAAWQ,WAAW,MAC5BC,eACLT,WAAWU,YAAYX,aAAaY,cAAc;EAChDV,QAAQW,OAAO;IACbC,IAAI;IACJC,QAAQV,WAAWW,SAASX,WAAWY,SAASV,KAAKO,EAAE;IACvDI,WAAW,CAAC,EAAEC,MAAM,EAAEC,QAAO,EAAE,MAAE;AAC/B,YAAM,EAAEJ,SAAQ,IAAKZ,iBAAoCgB,QAAQC,IAAI;AACrE,YAAM,EAAEC,cAAa,IAAKnB,oBAAAA;AAC1B,YAAMoB,uBAAuB,CAACC,OAAAA;AAC5B,cAAMC,OAAOD,GAAGR,QAAAA;AAChB,aAAKM,cAAcd,uBAAuBkB,QAAQ;UAAEC,OAAOF,KAAKG;QAAQ,CAAA;MAC1E;AACA,aAAO,sBAAA,cAACtB,uBAAAA;QAAsBU;QAAoBa,kBAAkBN;;IACtE;EACF,CAAA;CACD,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "React", "Capabilities", "Capability", "Surface", "useOperationInvoker", "useSettingsState", "AppSurface", "ObservabilitySettings", "meta", "ObservabilityOperation", "makeModule", "succeed", "contributes", "ReactSurface", "create", "id", "filter", "settings", "Article", "component", "data", "subject", "atom", "invokePromise", "handleSettingsChange", "cb", "next", "Toggle", "state", "enabled", "onSettingsChange"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ObservabilityCapabilities_exports,
|
|
3
|
+
ObservabilityOperation_exports
|
|
4
|
+
} from "./chunk-ZFVQL2JB.mjs";
|
|
5
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
6
|
+
|
|
7
|
+
// src/operations/send-event.ts
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import { Capability } from "@dxos/app-framework";
|
|
10
|
+
import { Operation } from "@dxos/compute";
|
|
11
|
+
var handler = ObservabilityOperation_exports.SendEvent.pipe(Operation.withHandler(Effect.fnUntraced(function* (input) {
|
|
12
|
+
const observability = yield* Capability.waitFor(ObservabilityCapabilities_exports.Observability);
|
|
13
|
+
const properties = input.properties ?? {};
|
|
14
|
+
observability.events.captureEvent(input.name, properties);
|
|
15
|
+
})));
|
|
16
|
+
var send_event_default = handler;
|
|
17
|
+
export {
|
|
18
|
+
send_event_default as default
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=send-event-NUMOCKDO.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/send-event.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\n\nimport { ObservabilityCapabilities, ObservabilityOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ObservabilityOperation.SendEvent> = ObservabilityOperation.SendEvent.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n // NOTE: This is to ensure that events fired before observability is ready are still sent.\n const observability = yield* Capability.waitFor(ObservabilityCapabilities.Observability);\n const properties = input.properties ?? {};\n observability.events.captureEvent(input.name, properties);\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAI1B,IAAMC,UAA0EC,+BAAuBC,UAAUC,KAC/GC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAEhC,QAAMC,gBAAgB,OAAOC,WAAWC,QAAQC,kCAA0BC,aAAa;AACvF,QAAMC,aAAaN,MAAMM,cAAc,CAAC;AACxCL,gBAAcM,OAAOC,aAAaR,MAAMS,MAAMH,UAAAA;AAChD,CAAA,CAAA,CAAA;AAIJ,IAAA,qBAAeb;",
|
|
6
|
+
"names": ["Effect", "Capability", "Operation", "handler", "ObservabilityOperation", "SendEvent", "pipe", "Operation", "withHandler", "fnUntraced", "input", "observability", "Capability", "waitFor", "ObservabilityCapabilities", "Observability", "properties", "events", "captureEvent", "name"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/settings.ts
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import { Capability } from "@dxos/app-framework";
|
|
6
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
7
|
+
import { createKvsStore } from "@dxos/effect";
|
|
8
|
+
import { meta } from "#meta";
|
|
9
|
+
import { ObservabilityCapabilities, Settings } from "#types";
|
|
10
|
+
var settings_default = Capability.makeModule(() => Effect.sync(() => {
|
|
11
|
+
const settingsAtom = createKvsStore({
|
|
12
|
+
key: meta.id,
|
|
13
|
+
schema: Settings.Settings,
|
|
14
|
+
defaultValue: () => ({
|
|
15
|
+
enabled: true
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
return [
|
|
19
|
+
Capability.contributes(ObservabilityCapabilities.Settings, settingsAtom),
|
|
20
|
+
Capability.contributes(AppCapabilities.Settings, {
|
|
21
|
+
prefix: meta.id,
|
|
22
|
+
schema: Settings.Settings,
|
|
23
|
+
atom: settingsAtom
|
|
24
|
+
})
|
|
25
|
+
];
|
|
26
|
+
}));
|
|
27
|
+
export {
|
|
28
|
+
settings_default as default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=settings-MZYK2WQR.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/settings.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { createKvsStore } from '@dxos/effect';\n\nimport { meta } from '#meta';\nimport { ObservabilityCapabilities, Settings } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.sync(() => {\n const settingsAtom = createKvsStore({\n key: meta.id,\n schema: Settings.Settings,\n defaultValue: () => ({\n enabled: true,\n }),\n });\n\n return [\n Capability.contributes(ObservabilityCapabilities.Settings, settingsAtom),\n Capability.contributes(AppCapabilities.Settings, {\n prefix: meta.id,\n schema: Settings.Settings,\n atom: settingsAtom,\n }),\n ];\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AACrB,SAASC,2BAA2BC,gBAAgB;AAEpD,IAAA,mBAAeL,WAAWM,WAAW,MAC5BC,YAAK,MAAA;AACV,QAAMC,eAAeN,eAAe;IAClCO,KAAKN,KAAKO;IACVC,QAAQN,SAASA;IACjBO,cAAc,OAAO;MACnBC,SAAS;IACX;EACF,CAAA;AAEA,SAAO;IACLb,WAAWc,YAAYV,0BAA0BC,UAAUG,YAAAA;IAC3DR,WAAWc,YAAYb,gBAAgBI,UAAU;MAC/CU,QAAQZ,KAAKO;MACbC,QAAQN,SAASA;MACjBW,MAAMR;IACR,CAAA;;AAEJ,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capability", "AppCapabilities", "createKvsStore", "meta", "ObservabilityCapabilities", "Settings", "makeModule", "sync", "settingsAtom", "key", "id", "schema", "defaultValue", "enabled", "contributes", "prefix", "atom"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/state.ts
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
6
|
+
import { createKvsStore } from "@dxos/effect";
|
|
7
|
+
import { Observability } from "@dxos/observability";
|
|
8
|
+
import { meta } from "#meta";
|
|
9
|
+
import { ObservabilityCapabilities } from "#types";
|
|
10
|
+
var state_default = Capability.makeModule(Effect.fnUntraced(function* ({ namespace }) {
|
|
11
|
+
const stateAtom = createKvsStore({
|
|
12
|
+
key: meta.id,
|
|
13
|
+
schema: ObservabilityCapabilities.StateSchema,
|
|
14
|
+
defaultValue: () => ({})
|
|
15
|
+
});
|
|
16
|
+
const group = yield* Effect.tryPromise(() => Observability.getObservabilityGroup(namespace));
|
|
17
|
+
const registry = yield* Capability.get(Capabilities.AtomRegistry);
|
|
18
|
+
registry.set(stateAtom, {
|
|
19
|
+
...registry.get(stateAtom),
|
|
20
|
+
group
|
|
21
|
+
});
|
|
22
|
+
return Capability.contributes(ObservabilityCapabilities.State, stateAtom);
|
|
23
|
+
}));
|
|
24
|
+
export {
|
|
25
|
+
state_default as default
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=state-5COCK3KV.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/state.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { createKvsStore } from '@dxos/effect';\nimport { Observability } from '@dxos/observability';\n\nimport { meta } from '#meta';\nimport { ObservabilityCapabilities } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ namespace }: { namespace: string }) {\n const stateAtom = createKvsStore({\n key: meta.id,\n schema: ObservabilityCapabilities.StateSchema,\n defaultValue: () => ({}),\n });\n\n // NOTE: Group is set at runtime, not persisted.\n const group = yield* Effect.tryPromise(() => Observability.getObservabilityGroup(namespace));\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n registry.set(stateAtom, { ...registry.get(stateAtom), group });\n\n return Capability.contributes(ObservabilityCapabilities.State, stateAtom);\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,sBAAsB;AAC/B,SAASC,qBAAqB;AAE9B,SAASC,YAAY;AACrB,SAASC,iCAAiC;AAE1C,IAAA,gBAAeJ,WAAWK,WACjBC,kBAAW,WAAW,EAAEC,UAAS,GAAyB;AAC/D,QAAMC,YAAYP,eAAe;IAC/BQ,KAAKN,KAAKO;IACVC,QAAQP,0BAA0BQ;IAClCC,cAAc,OAAO,CAAC;EACxB,CAAA;AAGA,QAAMC,QAAQ,OAAcC,kBAAW,MAAMb,cAAcc,sBAAsBT,SAAAA,CAAAA;AACjF,QAAMU,WAAW,OAAOjB,WAAWkB,IAAInB,aAAaoB,YAAY;AAChEF,WAASG,IAAIZ,WAAW;IAAE,GAAGS,SAASC,IAAIV,SAAAA;IAAYM;EAAM,CAAA;AAE5D,SAAOd,WAAWqB,YAAYjB,0BAA0BkB,OAAOd,SAAAA;AACjE,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capabilities", "Capability", "createKvsStore", "Observability", "meta", "ObservabilityCapabilities", "makeModule", "fnUntraced", "namespace", "stateAtom", "key", "id", "schema", "StateSchema", "defaultValue", "group", "tryPromise", "getObservabilityGroup", "registry", "get", "AtomRegistry", "set", "contributes", "State"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ObservabilityCapabilities_exports,
|
|
3
|
+
ObservabilityOperation_exports
|
|
4
|
+
} from "./chunk-ZFVQL2JB.mjs";
|
|
5
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
6
|
+
|
|
7
|
+
// src/operations/toggle.ts
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
10
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
11
|
+
import { Operation } from "@dxos/compute";
|
|
12
|
+
import { Observability } from "@dxos/observability";
|
|
13
|
+
import { meta } from "#meta";
|
|
14
|
+
var handler = ObservabilityOperation_exports.Toggle.pipe(Operation.withHandler(Effect.fnUntraced(function* (input) {
|
|
15
|
+
const namespace = yield* Capability.get(ObservabilityCapabilities_exports.Namespace);
|
|
16
|
+
const observability = yield* Capability.get(ObservabilityCapabilities_exports.Observability);
|
|
17
|
+
const capabilities = yield* Capability.Service;
|
|
18
|
+
const registry = capabilities.get(Capabilities.AtomRegistry);
|
|
19
|
+
const allSettings = capabilities.getAll(AppCapabilities.Settings);
|
|
20
|
+
const settingsObj = allSettings.find((s) => s.prefix === meta.id);
|
|
21
|
+
if (!settingsObj) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const settings = registry.get(settingsObj.atom);
|
|
25
|
+
const newEnabled = input.state ?? !settings.enabled;
|
|
26
|
+
registry.set(settingsObj.atom, {
|
|
27
|
+
...settings,
|
|
28
|
+
enabled: newEnabled
|
|
29
|
+
});
|
|
30
|
+
observability.events.captureEvent("observability.toggle", {
|
|
31
|
+
enabled: newEnabled
|
|
32
|
+
});
|
|
33
|
+
if (newEnabled) {
|
|
34
|
+
yield* observability.enable();
|
|
35
|
+
} else {
|
|
36
|
+
yield* observability.disable();
|
|
37
|
+
}
|
|
38
|
+
yield* Effect.promise(() => Observability.storeObservabilityDisabled(namespace, !newEnabled));
|
|
39
|
+
return newEnabled;
|
|
40
|
+
})));
|
|
41
|
+
var toggle_default = handler;
|
|
42
|
+
export {
|
|
43
|
+
toggle_default as default
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=toggle-RESKOU6L.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/toggle.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { Observability } from '@dxos/observability';\n\nimport { meta } from '#meta';\n\nimport { ObservabilityCapabilities, ObservabilityOperation, type Settings } from '../types';\n\nconst handler: Operation.WithHandler<typeof ObservabilityOperation.Toggle> = ObservabilityOperation.Toggle.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n const namespace = yield* Capability.get(ObservabilityCapabilities.Namespace);\n const observability = yield* Capability.get(ObservabilityCapabilities.Observability);\n const capabilities = yield* Capability.Service;\n const registry = capabilities.get(Capabilities.AtomRegistry);\n const allSettings = capabilities.getAll(AppCapabilities.Settings);\n const settingsObj = allSettings.find((s: AppCapabilities.Settings) => s.prefix === meta.id);\n if (!settingsObj) {\n return false;\n }\n const settings = registry.get(settingsObj.atom) as Settings.Settings;\n const newEnabled = input.state ?? !settings.enabled;\n registry.set(settingsObj.atom, { ...settings, enabled: newEnabled });\n observability.events.captureEvent('observability.toggle', {\n enabled: newEnabled,\n });\n\n if (newEnabled) {\n yield* observability.enable();\n } else {\n yield* observability.disable();\n }\n yield* Effect.promise(() => Observability.storeObservabilityDisabled(namespace, !newEnabled));\n return newEnabled;\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,qBAAqB;AAE9B,SAASC,YAAY;AAIrB,IAAMC,UAAuEC,+BAAuBC,OAAOC,KACzGC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,QAAMC,YAAY,OAAOC,WAAWC,IAAIC,kCAA0BC,SAAS;AAC3E,QAAMC,gBAAgB,OAAOJ,WAAWC,IAAIC,kCAA0BG,aAAa;AACnF,QAAMC,eAAe,OAAON,WAAWO;AACvC,QAAMC,WAAWF,aAAaL,IAAIQ,aAAaC,YAAY;AAC3D,QAAMC,cAAcL,aAAaM,OAAOC,gBAAgBC,QAAQ;AAChE,QAAMC,cAAcJ,YAAYK,KAAK,CAACC,MAAgCA,EAAEC,WAAWC,KAAKC,EAAE;AAC1F,MAAI,CAACL,aAAa;AAChB,WAAO;EACT;AACA,QAAMM,WAAWb,SAASP,IAAIc,YAAYO,IAAI;AAC9C,QAAMC,aAAazB,MAAM0B,SAAS,CAACH,SAASI;AAC5CjB,WAASkB,IAAIX,YAAYO,MAAM;IAAE,GAAGD;IAAUI,SAASF;EAAW,CAAA;AAClEnB,gBAAcuB,OAAOC,aAAa,wBAAwB;IACxDH,SAASF;EACX,CAAA;AAEA,MAAIA,YAAY;AACd,WAAOnB,cAAcyB,OAAM;EAC7B,OAAO;AACL,WAAOzB,cAAc0B,QAAO;EAC9B;AACA,SAAcC,eAAQ,MAAM1B,cAAc2B,2BAA2BjC,WAAW,CAACwB,UAAAA,CAAAA;AACjF,SAAOA;AACT,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAehC;",
|
|
6
|
+
"names": ["Effect", "Capabilities", "Capability", "AppCapabilities", "Operation", "Observability", "meta", "handler", "ObservabilityOperation", "Toggle", "pipe", "Operation", "withHandler", "fnUntraced", "input", "namespace", "Capability", "get", "ObservabilityCapabilities", "Namespace", "observability", "Observability", "capabilities", "Service", "registry", "Capabilities", "AtomRegistry", "allSettings", "getAll", "AppCapabilities", "Settings", "settingsObj", "find", "s", "prefix", "meta", "id", "settings", "atom", "newEnabled", "state", "enabled", "set", "events", "captureEvent", "enable", "disable", "promise", "storeObservabilityDisabled"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/translations.ts
|
|
4
|
+
import { meta } from "#meta";
|
|
5
|
+
var translations = [
|
|
6
|
+
{
|
|
7
|
+
"en-US": {
|
|
8
|
+
[meta.id]: {
|
|
9
|
+
"plugin.name": "Telemetry",
|
|
10
|
+
"help.label": "Feedback",
|
|
11
|
+
"settings.title": "Telemetry settings",
|
|
12
|
+
"observability-toast.label": "Privacy Notice",
|
|
13
|
+
"observability-toast.description": "Composer collects usage and performance metrics to improve the product. No user data is collected.",
|
|
14
|
+
"observability-toast-action.label": "Settings",
|
|
15
|
+
"observability-toast-action.alt": "Open settings to learn more or to disable.",
|
|
16
|
+
"observability-toast-close.label": "Okay",
|
|
17
|
+
// TODO: Add link about telemetry privacy. Make it clearer that user data is not collected.
|
|
18
|
+
"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."
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
];
|
|
23
|
+
export {
|
|
24
|
+
translations
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=translations.mjs.map
|