@dxos/plugin-observability 0.8.4-main.fd6878d → 0.8.4-staging.60fe92afc8
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 +63 -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 +19 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-5KWS3NZY.mjs +22 -0
- package/dist/lib/neutral/chunk-5KWS3NZY.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GLRKOAB7.mjs +8 -0
- package/dist/lib/neutral/chunk-GLRKOAB7.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-RY77X57N.mjs +109 -0
- package/dist/lib/neutral/chunk-RY77X57N.mjs.map +7 -0
- package/dist/lib/neutral/client-ready-DN3L5DIM.mjs +50 -0
- package/dist/lib/neutral/client-ready-DN3L5DIM.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/privacy-notice-G5TVVCIW.mjs +66 -0
- package/dist/lib/neutral/privacy-notice-G5TVVCIW.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-FKLBHQ2Q.mjs +20 -0
- package/dist/lib/neutral/send-event-FKLBHQ2Q.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-S3T6KNBA.mjs +45 -0
- package/dist/lib/neutral/toggle-S3T6KNBA.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 +11 -3
- 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 +16 -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/privacy-notice.d.ts +11 -0
- package/dist/types/src/capabilities/privacy-notice.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 -3
- 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 -16
- 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 +88 -51
- package/src/ObservabilityPlugin.node.ts +33 -0
- package/src/ObservabilityPlugin.test.ts +25 -0
- package/src/ObservabilityPlugin.ts +77 -55
- package/src/ObservabilityPlugin.workerd.ts +32 -0
- package/src/capabilities/client-ready.ts +48 -80
- package/src/capabilities/index.ts +12 -8
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/privacy-notice.ts +50 -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 +12 -6
- 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 -16
- package/src/types/ObservabilityCapabilities.ts +42 -0
- package/src/types/ObservabilityEvents.ts +15 -0
- package/src/types/ObservabilityOperation.ts +44 -0
- package/src/types/Settings.ts +22 -0
- package/src/types/index.ts +4 -1
- package/dist/lib/browser/app-graph-builder-2SLFJVUL.mjs +0 -43
- package/dist/lib/browser/app-graph-builder-2SLFJVUL.mjs.map +0 -7
- package/dist/lib/browser/chunk-57RVSKYP.mjs +0 -13
- package/dist/lib/browser/chunk-57RVSKYP.mjs.map +0 -7
- package/dist/lib/browser/chunk-AL5RST75.mjs +0 -191
- package/dist/lib/browser/chunk-AL5RST75.mjs.map +0 -7
- package/dist/lib/browser/chunk-EAA6E4FU.mjs +0 -175
- package/dist/lib/browser/chunk-EAA6E4FU.mjs.map +0 -7
- package/dist/lib/browser/chunk-UUOBAWT2.mjs +0 -18
- package/dist/lib/browser/chunk-UUOBAWT2.mjs.map +0 -7
- package/dist/lib/browser/client-ready-NBJRF7OJ.mjs +0 -102
- package/dist/lib/browser/client-ready-NBJRF7OJ.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -130
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-NPEP5KJQ.mjs +0 -77
- package/dist/lib/browser/intent-resolver-NPEP5KJQ.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-surface-245UEKB5.mjs +0 -32
- package/dist/lib/browser/react-surface-245UEKB5.mjs.map +0 -7
- package/dist/lib/browser/settings-4WW5E4VA.mjs +0 -25
- package/dist/lib/browser/settings-4WW5E4VA.mjs.map +0 -7
- package/dist/lib/browser/state-N7RLB477.mjs +0 -26
- package/dist/lib/browser/state-N7RLB477.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -10
- package/dist/lib/node-esm/app-graph-builder-MMH6BVY4.mjs +0 -44
- package/dist/lib/node-esm/app-graph-builder-MMH6BVY4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5W5V4TVX.mjs +0 -192
- package/dist/lib/node-esm/chunk-5W5V4TVX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7XR7KMAA.mjs +0 -15
- package/dist/lib/node-esm/chunk-7XR7KMAA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-D6QRS2CR.mjs +0 -176
- package/dist/lib/node-esm/chunk-D6QRS2CR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JTKEM7PT.mjs +0 -19
- package/dist/lib/node-esm/chunk-JTKEM7PT.mjs.map +0 -7
- package/dist/lib/node-esm/client-ready-XDI3JWUY.mjs +0 -103
- package/dist/lib/node-esm/client-ready-XDI3JWUY.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -131
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-OH4MMH5I.mjs +0 -78
- package/dist/lib/node-esm/intent-resolver-OH4MMH5I.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/react-surface-ZR3IU2ZM.mjs +0 -33
- package/dist/lib/node-esm/react-surface-ZR3IU2ZM.mjs.map +0 -7
- package/dist/lib/node-esm/settings-BKKLNOFT.mjs +0 -26
- package/dist/lib/node-esm/settings-BKKLNOFT.mjs.map +0 -7
- package/dist/lib/node-esm/state-LKANNCJJ.mjs +0 -27
- package/dist/lib/node-esm/state-LKANNCJJ.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 -45
- package/src/capabilities/capabilities.ts +0 -22
- 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
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
meta
|
|
3
|
-
} from "./chunk-57RVSKYP.mjs";
|
|
4
|
-
|
|
5
|
-
// src/types/schema.ts
|
|
6
|
-
import { Schema } from "effect";
|
|
7
|
-
import { Type } from "@dxos/echo";
|
|
8
|
-
var nonEmpty = (field) => Schema.nonEmptyString({
|
|
9
|
-
message: () => `Missing field: ${field}`
|
|
10
|
-
});
|
|
11
|
-
var maxLength = (field, length) => Schema.maxLength(length, {
|
|
12
|
-
message: () => `Exceeds max length (${length}): ${field}`
|
|
13
|
-
});
|
|
14
|
-
var UserFeedback = Schema.Struct({
|
|
15
|
-
message: Schema.String.pipe(nonEmpty("Feedback"), maxLength("Feedback", 32768))
|
|
16
|
-
});
|
|
17
|
-
(function(ObservabilityAction2) {
|
|
18
|
-
class Toggle extends Schema.TaggedClass()(`${meta.id}/action/toggle`, {
|
|
19
|
-
input: Schema.Struct({
|
|
20
|
-
state: Schema.optional(Schema.Boolean)
|
|
21
|
-
}),
|
|
22
|
-
output: Schema.Boolean
|
|
23
|
-
}) {
|
|
24
|
-
}
|
|
25
|
-
ObservabilityAction2.Toggle = Toggle;
|
|
26
|
-
class CaptureUserFeedback extends Schema.TaggedClass()(`${meta.id}/action/capture-feedback`, {
|
|
27
|
-
input: UserFeedback,
|
|
28
|
-
output: Schema.Void
|
|
29
|
-
}) {
|
|
30
|
-
}
|
|
31
|
-
ObservabilityAction2.CaptureUserFeedback = CaptureUserFeedback;
|
|
32
|
-
class BaseSendEvent extends Schema.TaggedClass()(`${meta.id}/action/send-event`, {
|
|
33
|
-
input: Schema.Struct({
|
|
34
|
-
name: Schema.String,
|
|
35
|
-
properties: Schema.optional(Schema.Object)
|
|
36
|
-
}),
|
|
37
|
-
output: Schema.Void
|
|
38
|
-
}) {
|
|
39
|
-
}
|
|
40
|
-
ObservabilityAction2.BaseSendEvent = BaseSendEvent;
|
|
41
|
-
class SendEvent extends Schema.TaggedClass()(`${meta.id}/action/send-event`, {
|
|
42
|
-
// NOTE: Sort alphabetically by name.
|
|
43
|
-
input: Schema.Union(Schema.Struct({
|
|
44
|
-
name: Schema.Literal("identity.create")
|
|
45
|
-
}), Schema.Struct({
|
|
46
|
-
name: Schema.Literal("identity.join")
|
|
47
|
-
}), Schema.Struct({
|
|
48
|
-
name: Schema.Literal("identity.recover")
|
|
49
|
-
}), Schema.Struct({
|
|
50
|
-
name: Schema.Literal("identity.share")
|
|
51
|
-
}), Schema.Struct({
|
|
52
|
-
name: Schema.Literal("navigation.activate"),
|
|
53
|
-
properties: Schema.Struct({
|
|
54
|
-
subjectId: Schema.String,
|
|
55
|
-
typename: Schema.optional(Schema.String)
|
|
56
|
-
})
|
|
57
|
-
}), Schema.Struct({
|
|
58
|
-
name: Schema.Literal("page.load"),
|
|
59
|
-
properties: Schema.Struct({
|
|
60
|
-
loadDuration: Schema.Number
|
|
61
|
-
})
|
|
62
|
-
}), Schema.Struct({
|
|
63
|
-
name: Schema.Literal("plugins.toggle"),
|
|
64
|
-
properties: Schema.Struct({
|
|
65
|
-
plugin: Schema.String,
|
|
66
|
-
enabled: Schema.Boolean
|
|
67
|
-
})
|
|
68
|
-
}), Schema.Struct({
|
|
69
|
-
name: Schema.Literal("space.create"),
|
|
70
|
-
properties: Schema.Struct({
|
|
71
|
-
spaceId: Type.SpaceId
|
|
72
|
-
})
|
|
73
|
-
}), Schema.Struct({
|
|
74
|
-
name: Schema.Literal("space.join"),
|
|
75
|
-
properties: Schema.Struct({
|
|
76
|
-
spaceId: Type.SpaceId
|
|
77
|
-
})
|
|
78
|
-
}), Schema.Struct({
|
|
79
|
-
name: Schema.Literal("space.limit"),
|
|
80
|
-
properties: Schema.Struct({
|
|
81
|
-
spaceId: Type.SpaceId
|
|
82
|
-
})
|
|
83
|
-
}), Schema.Struct({
|
|
84
|
-
name: Schema.Literal("space.lock"),
|
|
85
|
-
properties: Schema.Struct({
|
|
86
|
-
spaceId: Type.SpaceId
|
|
87
|
-
})
|
|
88
|
-
}), Schema.Struct({
|
|
89
|
-
name: Schema.Literal("space.migrate"),
|
|
90
|
-
properties: Schema.Struct({
|
|
91
|
-
spaceId: Type.SpaceId,
|
|
92
|
-
targetVersion: Schema.optional(Schema.String),
|
|
93
|
-
version: Schema.optional(Schema.String)
|
|
94
|
-
})
|
|
95
|
-
}), Schema.Struct({
|
|
96
|
-
name: Schema.Literal("space.schema.use"),
|
|
97
|
-
properties: Schema.Struct({
|
|
98
|
-
spaceId: Type.SpaceId,
|
|
99
|
-
typename: Schema.String
|
|
100
|
-
})
|
|
101
|
-
}), Schema.Struct({
|
|
102
|
-
name: Schema.Literal("space.schema.add"),
|
|
103
|
-
properties: Schema.Struct({
|
|
104
|
-
spaceId: Type.SpaceId,
|
|
105
|
-
objectId: Schema.String,
|
|
106
|
-
typename: Schema.String
|
|
107
|
-
})
|
|
108
|
-
}), Schema.Struct({
|
|
109
|
-
name: Schema.Literal("space.object.add"),
|
|
110
|
-
properties: Schema.Struct({
|
|
111
|
-
spaceId: Type.SpaceId,
|
|
112
|
-
objectId: Schema.String,
|
|
113
|
-
typename: Schema.optional(Schema.String)
|
|
114
|
-
})
|
|
115
|
-
}), Schema.Struct({
|
|
116
|
-
name: Schema.Literal("space.share"),
|
|
117
|
-
properties: Schema.Struct({
|
|
118
|
-
spaceId: Type.SpaceId
|
|
119
|
-
})
|
|
120
|
-
}), Schema.Struct({
|
|
121
|
-
name: Schema.Literal("space.unlock"),
|
|
122
|
-
properties: Schema.Struct({
|
|
123
|
-
spaceId: Type.SpaceId
|
|
124
|
-
})
|
|
125
|
-
}), Schema.Struct({
|
|
126
|
-
name: Schema.Literal("threads.create"),
|
|
127
|
-
properties: Schema.Struct({
|
|
128
|
-
spaceId: Type.SpaceId,
|
|
129
|
-
threadId: Schema.String
|
|
130
|
-
})
|
|
131
|
-
}), Schema.Struct({
|
|
132
|
-
name: Schema.Literal("threads.delete"),
|
|
133
|
-
properties: Schema.Struct({
|
|
134
|
-
spaceId: Type.SpaceId,
|
|
135
|
-
threadId: Schema.String
|
|
136
|
-
})
|
|
137
|
-
}), Schema.Struct({
|
|
138
|
-
name: Schema.Literal("threads.message.add"),
|
|
139
|
-
properties: Schema.Struct({
|
|
140
|
-
spaceId: Type.SpaceId,
|
|
141
|
-
threadId: Schema.String,
|
|
142
|
-
threadLength: Schema.Number,
|
|
143
|
-
messageId: Schema.String,
|
|
144
|
-
messageLength: Schema.Number
|
|
145
|
-
})
|
|
146
|
-
}), Schema.Struct({
|
|
147
|
-
name: Schema.Literal("threads.message.delete"),
|
|
148
|
-
properties: Schema.Struct({
|
|
149
|
-
spaceId: Type.SpaceId,
|
|
150
|
-
threadId: Schema.String,
|
|
151
|
-
messageId: Schema.String
|
|
152
|
-
})
|
|
153
|
-
}), Schema.Struct({
|
|
154
|
-
name: Schema.Literal("threads.message.undo-delete"),
|
|
155
|
-
properties: Schema.Struct({
|
|
156
|
-
spaceId: Type.SpaceId,
|
|
157
|
-
threadId: Schema.String,
|
|
158
|
-
messageId: Schema.String
|
|
159
|
-
})
|
|
160
|
-
}), Schema.Struct({
|
|
161
|
-
name: Schema.Literal("threads.message.update"),
|
|
162
|
-
properties: Schema.Struct({
|
|
163
|
-
spaceId: Type.SpaceId,
|
|
164
|
-
messageId: Schema.String,
|
|
165
|
-
messageLength: Schema.Number
|
|
166
|
-
})
|
|
167
|
-
}), Schema.Struct({
|
|
168
|
-
name: Schema.Literal("threads.toggle-resolved"),
|
|
169
|
-
properties: Schema.Struct({
|
|
170
|
-
spaceId: Type.SpaceId,
|
|
171
|
-
threadId: Schema.String
|
|
172
|
-
})
|
|
173
|
-
}), Schema.Struct({
|
|
174
|
-
name: Schema.Literal("threads.undo-delete"),
|
|
175
|
-
properties: Schema.Struct({
|
|
176
|
-
spaceId: Type.SpaceId,
|
|
177
|
-
threadId: Schema.String
|
|
178
|
-
})
|
|
179
|
-
})),
|
|
180
|
-
output: Schema.Void
|
|
181
|
-
}) {
|
|
182
|
-
}
|
|
183
|
-
ObservabilityAction2.SendEvent = SendEvent;
|
|
184
|
-
})(ObservabilityAction || (ObservabilityAction = {}));
|
|
185
|
-
var ObservabilityAction;
|
|
186
|
-
|
|
187
|
-
export {
|
|
188
|
-
UserFeedback,
|
|
189
|
-
ObservabilityAction
|
|
190
|
-
};
|
|
191
|
-
//# sourceMappingURL=chunk-AL5RST75.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/schema.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\n\nimport { meta } from '../meta';\n\nconst nonEmpty = <S extends Schema.Schema.Any>(field: string) =>\n Schema.nonEmptyString<S>({ message: () => `Missing field: ${field}` });\n\nconst maxLength = <S extends Schema.Schema.Any>(field: string, length: number) =>\n Schema.maxLength<S>(length, { message: () => `Exceeds max length (${length}): ${field}` });\n\nexport const UserFeedback = Schema.Struct({\n message: Schema.String.pipe(nonEmpty('Feedback'), maxLength('Feedback', 32_768)),\n});\n\nexport type UserFeedback = Schema.Schema.Type<typeof UserFeedback>;\n\nexport namespace ObservabilityAction {\n export class Toggle extends Schema.TaggedClass<Toggle>()(`${meta.id}/action/toggle`, {\n input: Schema.Struct({\n state: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Boolean,\n }) {}\n\n export class CaptureUserFeedback extends Schema.TaggedClass<CaptureUserFeedback>()(\n `${meta.id}/action/capture-feedback`,\n {\n input: UserFeedback,\n output: Schema.Void,\n },\n ) {}\n\n /** Base intent for sending events. */\n export class BaseSendEvent extends Schema.TaggedClass<BaseSendEvent>()(`${meta.id}/action/send-event`, {\n input: Schema.Struct({\n name: Schema.String,\n properties: Schema.optional(Schema.Object),\n }),\n output: Schema.Void,\n }) {}\n\n /** Intent with strict types for first-party events. */\n export class SendEvent extends Schema.TaggedClass<SendEvent>()(`${meta.id}/action/send-event`, {\n // NOTE: Sort alphabetically by name.\n input: Schema.Union(\n Schema.Struct({\n name: Schema.Literal('identity.create'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.join'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.recover'),\n }),\n Schema.Struct({\n name: Schema.Literal('identity.share'),\n }),\n Schema.Struct({\n name: Schema.Literal('navigation.activate'),\n properties: Schema.Struct({\n subjectId: Schema.String,\n typename: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('page.load'),\n properties: Schema.Struct({\n loadDuration: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('plugins.toggle'),\n properties: Schema.Struct({\n plugin: Schema.String,\n enabled: Schema.Boolean,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.create'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.join'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.limit'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.lock'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.migrate'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n targetVersion: Schema.optional(Schema.String),\n version: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.schema.use'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n typename: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.schema.add'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n objectId: Schema.String,\n typename: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.object.add'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n objectId: Schema.String,\n typename: Schema.optional(Schema.String),\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.share'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('space.unlock'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.create'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.add'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n threadLength: Schema.Number,\n messageId: Schema.String,\n messageLength: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n messageId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.undo-delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n messageId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.message.update'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n messageId: Schema.String,\n messageLength: Schema.Number,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.toggle-resolved'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n Schema.Struct({\n name: Schema.Literal('threads.undo-delete'),\n properties: Schema.Struct({\n spaceId: Type.SpaceId,\n threadId: Schema.String,\n }),\n }),\n ),\n output: Schema.Void,\n }) {}\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Schema", "Type", "nonEmpty", "field", "Schema", "nonEmptyString", "message", "maxLength", "length", "UserFeedback", "Struct", "String", "pipe", "ObservabilityAction", "Toggle", "TaggedClass", "meta", "id", "input", "state", "optional", "Boolean", "output", "CaptureUserFeedback", "Void", "BaseSendEvent", "name", "properties", "Object", "SendEvent", "Union", "Literal", "subjectId", "typename", "loadDuration", "Number", "plugin", "enabled", "spaceId", "Type", "SpaceId", "targetVersion", "version", "objectId", "threadId", "threadLength", "messageId", "messageLength"]
|
|
7
|
-
}
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ObservabilityAction,
|
|
3
|
-
UserFeedback
|
|
4
|
-
} from "./chunk-AL5RST75.mjs";
|
|
5
|
-
import {
|
|
6
|
-
OBSERVABILITY_PLUGIN
|
|
7
|
-
} from "./chunk-57RVSKYP.mjs";
|
|
8
|
-
|
|
9
|
-
// src/components/FeedbackForm.tsx
|
|
10
|
-
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
11
|
-
import React, { useCallback, useRef, useState } from "react";
|
|
12
|
-
import { getSnapshot } from "@dxos/echo-schema";
|
|
13
|
-
import { IconButton, Input, useTranslation } from "@dxos/react-ui";
|
|
14
|
-
import { FormProvider, useFormContext, useInputProps } from "@dxos/react-ui-form";
|
|
15
|
-
var defaultValues = {
|
|
16
|
-
message: ""
|
|
17
|
-
};
|
|
18
|
-
var FormContent = () => {
|
|
19
|
-
var _effect = _useSignals();
|
|
20
|
-
try {
|
|
21
|
-
const { t } = useTranslation(OBSERVABILITY_PLUGIN);
|
|
22
|
-
const { handleSave, canSave } = useFormContext();
|
|
23
|
-
const messageProps = useInputProps([
|
|
24
|
-
"message"
|
|
25
|
-
]);
|
|
26
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
27
|
-
role: "form",
|
|
28
|
-
className: "p-3 flex flex-col gap-2"
|
|
29
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
30
|
-
role: "none",
|
|
31
|
-
className: "space-b-1"
|
|
32
|
-
}, /* @__PURE__ */ React.createElement(Input.Root, {
|
|
33
|
-
validationValence: messageProps.getStatus().status
|
|
34
|
-
}, /* @__PURE__ */ React.createElement(Input.Label, null, t("feedback text area label")), /* @__PURE__ */ React.createElement(Input.TextArea, {
|
|
35
|
-
classNames: "text-sm",
|
|
36
|
-
rows: 5,
|
|
37
|
-
cols: 30,
|
|
38
|
-
placeholder: t("feedback text area placeholder"),
|
|
39
|
-
value: messageProps.getValue() ?? "",
|
|
40
|
-
onChange: (e) => messageProps.onValueChange("string", e.target.value),
|
|
41
|
-
// TODO(wittjosiah): This aggressively shows validation errors.
|
|
42
|
-
onBlur: messageProps.onBlur
|
|
43
|
-
}), /* @__PURE__ */ React.createElement(Input.DescriptionAndValidation, null, /* @__PURE__ */ React.createElement(Input.Validation, null, messageProps.getStatus().error)))), /* @__PURE__ */ React.createElement("div", {
|
|
44
|
-
role: "none",
|
|
45
|
-
className: "space-b-2"
|
|
46
|
-
}, /* @__PURE__ */ React.createElement(IconButton, {
|
|
47
|
-
icon: "ph--paper-plane-tilt--regular",
|
|
48
|
-
label: t("send feedback label"),
|
|
49
|
-
variant: "primary",
|
|
50
|
-
type: "submit",
|
|
51
|
-
classNames: "is-full",
|
|
52
|
-
disabled: !canSave,
|
|
53
|
-
onClick: handleSave
|
|
54
|
-
})));
|
|
55
|
-
} finally {
|
|
56
|
-
_effect.f();
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
var FeedbackForm = ({ onSave }) => {
|
|
60
|
-
var _effect = _useSignals();
|
|
61
|
-
try {
|
|
62
|
-
const formRef = useRef(null);
|
|
63
|
-
const [_, update] = useState({});
|
|
64
|
-
const forceRender = useCallback(() => update({}), [
|
|
65
|
-
update
|
|
66
|
-
]);
|
|
67
|
-
const handleSave = useCallback((values) => {
|
|
68
|
-
onSave(values);
|
|
69
|
-
forceRender();
|
|
70
|
-
}, [
|
|
71
|
-
forceRender,
|
|
72
|
-
onSave
|
|
73
|
-
]);
|
|
74
|
-
const initialValues = getSnapshot(defaultValues);
|
|
75
|
-
return /* @__PURE__ */ React.createElement(FormProvider, {
|
|
76
|
-
formRef,
|
|
77
|
-
schema: UserFeedback,
|
|
78
|
-
initialValues,
|
|
79
|
-
onSave: handleSave
|
|
80
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
81
|
-
ref: formRef
|
|
82
|
-
}, /* @__PURE__ */ React.createElement(FormContent, null)));
|
|
83
|
-
} finally {
|
|
84
|
-
_effect.f();
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
// src/components/HelpContainer.tsx
|
|
89
|
-
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
90
|
-
import { pipe } from "effect";
|
|
91
|
-
import React2, { useCallback as useCallback2 } from "react";
|
|
92
|
-
import { LayoutAction, chain, createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
93
|
-
var HelpContainer = () => {
|
|
94
|
-
var _effect = _useSignals2();
|
|
95
|
-
try {
|
|
96
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
97
|
-
const handleSave = useCallback2((values) => dispatch(pipe(createIntent(ObservabilityAction.CaptureUserFeedback, values), chain(LayoutAction.UpdateComplementary, {
|
|
98
|
-
part: "complementary",
|
|
99
|
-
options: {
|
|
100
|
-
state: "collapsed"
|
|
101
|
-
}
|
|
102
|
-
}), chain(LayoutAction.AddToast, {
|
|
103
|
-
part: "toast",
|
|
104
|
-
subject: {
|
|
105
|
-
id: `${OBSERVABILITY_PLUGIN}/feedback-success`,
|
|
106
|
-
icon: "ph--paper-plane-tilt--regular",
|
|
107
|
-
duration: 3e3,
|
|
108
|
-
title: [
|
|
109
|
-
"feedback toast label",
|
|
110
|
-
{
|
|
111
|
-
ns: OBSERVABILITY_PLUGIN
|
|
112
|
-
}
|
|
113
|
-
],
|
|
114
|
-
description: [
|
|
115
|
-
"feedback toast description",
|
|
116
|
-
{
|
|
117
|
-
ns: OBSERVABILITY_PLUGIN
|
|
118
|
-
}
|
|
119
|
-
],
|
|
120
|
-
closeLabel: [
|
|
121
|
-
"close label",
|
|
122
|
-
{
|
|
123
|
-
ns: "os"
|
|
124
|
-
}
|
|
125
|
-
]
|
|
126
|
-
}
|
|
127
|
-
}))), [
|
|
128
|
-
dispatch
|
|
129
|
-
]);
|
|
130
|
-
return /* @__PURE__ */ React2.createElement(FeedbackForm, {
|
|
131
|
-
onSave: handleSave
|
|
132
|
-
});
|
|
133
|
-
} finally {
|
|
134
|
-
_effect.f();
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
// src/components/ObservabilitySettings.tsx
|
|
139
|
-
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
140
|
-
import { Schema } from "effect";
|
|
141
|
-
import React3 from "react";
|
|
142
|
-
import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
|
|
143
|
-
import { Input as Input2, Message, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
144
|
-
import { DeprecatedFormContainer, DeprecatedFormInput } from "@dxos/react-ui-form";
|
|
145
|
-
var ObservabilitySettingsSchema = Schema.mutable(Schema.Struct({
|
|
146
|
-
enabled: Schema.Boolean
|
|
147
|
-
}));
|
|
148
|
-
var ObservabilitySettings = ({ settings }) => {
|
|
149
|
-
var _effect = _useSignals3();
|
|
150
|
-
try {
|
|
151
|
-
const { t } = useTranslation2(OBSERVABILITY_PLUGIN);
|
|
152
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher2();
|
|
153
|
-
return /* @__PURE__ */ React3.createElement(DeprecatedFormContainer, null, /* @__PURE__ */ React3.createElement(DeprecatedFormInput, {
|
|
154
|
-
label: t("observability enabled label"),
|
|
155
|
-
secondary: /* @__PURE__ */ React3.createElement(Message.Root, {
|
|
156
|
-
valence: "info"
|
|
157
|
-
}, /* @__PURE__ */ React3.createElement(Message.Content, null, t("observability description")))
|
|
158
|
-
}, /* @__PURE__ */ React3.createElement(Input2.Switch, {
|
|
159
|
-
checked: settings.enabled,
|
|
160
|
-
onCheckedChange: (checked) => dispatch(createIntent2(ObservabilityAction.Toggle, {
|
|
161
|
-
state: !!checked
|
|
162
|
-
}))
|
|
163
|
-
})));
|
|
164
|
-
} finally {
|
|
165
|
-
_effect.f();
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
export {
|
|
170
|
-
FeedbackForm,
|
|
171
|
-
HelpContainer,
|
|
172
|
-
ObservabilitySettingsSchema,
|
|
173
|
-
ObservabilitySettings
|
|
174
|
-
};
|
|
175
|
-
//# sourceMappingURL=chunk-EAA6E4FU.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/FeedbackForm.tsx", "../../../src/components/HelpContainer.tsx", "../../../src/components/ObservabilitySettings.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { getSnapshot } from '@dxos/echo-schema';\nimport { IconButton, Input, useTranslation } from '@dxos/react-ui';\nimport { FormProvider, useFormContext, useInputProps } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { UserFeedback } from '../types';\n\nconst defaultValues: UserFeedback = { message: '' };\n\nconst FormContent = () => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { handleSave, canSave } = useFormContext<UserFeedback>();\n\n const messageProps = useInputProps(['message']);\n\n return (\n <div role='form' className='p-3 flex flex-col gap-2'>\n <div role='none' className='space-b-1'>\n <Input.Root validationValence={messageProps.getStatus().status}>\n <Input.Label>{t('feedback text area label')}</Input.Label>\n <Input.TextArea\n classNames={'text-sm'}\n rows={5}\n cols={30}\n placeholder={t('feedback text area placeholder')}\n value={messageProps.getValue() ?? ''}\n onChange={(e) => messageProps.onValueChange('string', e.target.value)}\n // TODO(wittjosiah): This aggressively shows validation errors.\n onBlur={messageProps.onBlur}\n />\n <Input.DescriptionAndValidation>\n <Input.Validation>{messageProps.getStatus().error}</Input.Validation>\n </Input.DescriptionAndValidation>\n </Input.Root>\n </div>\n\n <div role='none' className='space-b-2'>\n <IconButton\n icon='ph--paper-plane-tilt--regular'\n label={t('send feedback label')}\n variant='primary'\n type='submit'\n classNames='is-full'\n disabled={!canSave}\n onClick={handleSave}\n />\n </div>\n </div>\n );\n};\n\n// TODO(wittjosiah): Use `Form`?\nexport const FeedbackForm = ({ onSave }: { onSave: (values: UserFeedback) => void }) => {\n const formRef = useRef<HTMLDivElement>(null);\n const [_, update] = useState({});\n const forceRender = useCallback(() => update({}), [update]);\n\n const handleSave = useCallback(\n (values: UserFeedback) => {\n onSave(values);\n // TODO(wittjosiah): Force re-render to clear the form.\n forceRender();\n },\n [forceRender, onSave],\n );\n\n const initialValues = getSnapshot(defaultValues);\n\n return (\n <FormProvider formRef={formRef} schema={UserFeedback} initialValues={initialValues} onSave={handleSave}>\n <div ref={formRef}>\n <FormContent />\n </div>\n </FormProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe } from 'effect';\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction, type UserFeedback } from '../types';\n\nimport { FeedbackForm } from './FeedbackForm';\n\nexport const HelpContainer = () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleSave = useCallback(\n (values: UserFeedback) =>\n dispatch(\n pipe(\n createIntent(ObservabilityAction.CaptureUserFeedback, values),\n chain(LayoutAction.UpdateComplementary, { part: 'complementary', options: { state: 'collapsed' } }),\n chain(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${OBSERVABILITY_PLUGIN}/feedback-success`,\n icon: 'ph--paper-plane-tilt--regular',\n duration: 3000,\n title: ['feedback toast label', { ns: OBSERVABILITY_PLUGIN }],\n description: ['feedback toast description', { ns: OBSERVABILITY_PLUGIN }],\n closeLabel: ['close label', { ns: 'os' }],\n },\n }),\n ),\n ),\n [dispatch],\n );\n\n return <FeedbackForm onSave={handleSave} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Input, Message, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nexport const ObservabilitySettingsSchema = Schema.mutable(\n Schema.Struct({\n enabled: Schema.Boolean,\n // TODO(wittjosiah): Separate settings for each observability feature.\n // metrics?: boolean;\n // telemetry?: boolean;\n // errors?: boolean;\n }),\n);\n\nexport type ObservabilitySettingsProps = Schema.Schema.Type<typeof ObservabilitySettingsSchema>;\n\nexport const ObservabilitySettings = ({ settings }: { settings: ObservabilitySettingsProps }) => {\n const { t } = useTranslation(OBSERVABILITY_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput\n label={t('observability enabled label')}\n secondary={\n <Message.Root valence='info'>\n <Message.Content>{t('observability description')}</Message.Content>\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 </DeprecatedFormContainer>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useCallback", "useRef", "useState", "getSnapshot", "IconButton", "Input", "useTranslation", "FormProvider", "useFormContext", "useInputProps", "defaultValues", "message", "FormContent", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "handleSave", "canSave", "useFormContext", "messageProps", "useInputProps", "div", "role", "className", "Input", "Root", "validationValence", "getStatus", "status", "Label", "TextArea", "classNames", "rows", "cols", "placeholder", "value", "getValue", "onChange", "e", "onValueChange", "target", "onBlur", "DescriptionAndValidation", "Validation", "error", "IconButton", "icon", "label", "variant", "type", "disabled", "onClick", "FeedbackForm", "onSave", "formRef", "useRef", "_", "update", "useState", "forceRender", "useCallback", "values", "initialValues", "getSnapshot", "FormProvider", "schema", "UserFeedback", "ref", "pipe", "React", "useCallback", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "HelpContainer", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleSave", "useCallback", "values", "pipe", "createIntent", "ObservabilityAction", "CaptureUserFeedback", "chain", "LayoutAction", "UpdateComplementary", "part", "options", "state", "AddToast", "subject", "id", "OBSERVABILITY_PLUGIN", "icon", "duration", "title", "ns", "description", "closeLabel", "React", "FeedbackForm", "onSave", "Schema", "React", "createIntent", "useIntentDispatcher", "Input", "Message", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "ObservabilitySettingsSchema", "Schema", "mutable", "Struct", "enabled", "Boolean", "ObservabilitySettings", "settings", "t", "useTranslation", "OBSERVABILITY_PLUGIN", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "secondary", "Message", "Root", "valence", "Content", "Input", "Switch", "checked", "onCheckedChange", "createIntent", "ObservabilityAction", "Toggle", "state"]
|
|
7
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
OBSERVABILITY_PLUGIN
|
|
3
|
-
} from "./chunk-57RVSKYP.mjs";
|
|
4
|
-
|
|
5
|
-
// src/capabilities/capabilities.ts
|
|
6
|
-
import { defineCapability } from "@dxos/app-framework";
|
|
7
|
-
(function(ObservabilityCapabilities2) {
|
|
8
|
-
ObservabilityCapabilities2.State = defineCapability(`${OBSERVABILITY_PLUGIN}/capability/state`);
|
|
9
|
-
ObservabilityCapabilities2.Observability = defineCapability(`${OBSERVABILITY_PLUGIN}/capability/observability`);
|
|
10
|
-
})(ObservabilityCapabilities || (ObservabilityCapabilities = {}));
|
|
11
|
-
var ClientCapability = defineCapability("dxos.org/plugin/client/capability/client");
|
|
12
|
-
var ObservabilityCapabilities;
|
|
13
|
-
|
|
14
|
-
export {
|
|
15
|
-
ClientCapability,
|
|
16
|
-
ObservabilityCapabilities
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=chunk-UUOBAWT2.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/capabilities.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type Client } from '@dxos/client';\nimport { type Observability } from '@dxos/observability';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\n\nexport namespace ObservabilityCapabilities {\n export type State = {\n group?: string;\n notified?: boolean;\n };\n export const State = defineCapability<State>(`${OBSERVABILITY_PLUGIN}/capability/state`);\n\n export const Observability = defineCapability<Observability>(`${OBSERVABILITY_PLUGIN}/capability/observability`);\n}\n\n// NOTE: This is cloned from the client plugin to avoid circular dependencies.\nexport const ClientCapability = defineCapability<Client>('dxos.org/plugin/client/capability/client');\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,SAASA,wBAAwB;UAMhBC,4BAAAA;6BAKFC,QAAQC,iBAAwB,GAAGC,oBAAAA,mBAAuC;6BAE1EC,gBAAgBF,iBAAgC,GAAGC,oBAAAA,2BAA+C;AACjH,GARiBH,8BAAAA,4BAAAA,CAAAA,EAAAA;AAWV,IAAMK,mBAAmBH,iBAAyB,0CAAA;;",
|
|
6
|
-
"names": ["defineCapability", "ObservabilityCapabilities", "State", "defineCapability", "OBSERVABILITY_PLUGIN", "Observability", "ClientCapability"]
|
|
7
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ObservabilityAction
|
|
3
|
-
} from "./chunk-AL5RST75.mjs";
|
|
4
|
-
import {
|
|
5
|
-
ClientCapability,
|
|
6
|
-
ObservabilityCapabilities
|
|
7
|
-
} from "./chunk-UUOBAWT2.mjs";
|
|
8
|
-
import {
|
|
9
|
-
OBSERVABILITY_PLUGIN
|
|
10
|
-
} from "./chunk-57RVSKYP.mjs";
|
|
11
|
-
|
|
12
|
-
// src/capabilities/client-ready.ts
|
|
13
|
-
import { Capabilities, LayoutAction, SettingsAction, contributes, createIntent } from "@dxos/app-framework";
|
|
14
|
-
import { setupTelemetryListeners } from "@dxos/observability";
|
|
15
|
-
var client_ready_default = async ({ context, namespace, observability }) => {
|
|
16
|
-
const manager = context.getCapability(Capabilities.PluginManager);
|
|
17
|
-
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
18
|
-
const state = context.getCapability(ObservabilityCapabilities.State);
|
|
19
|
-
const client = context.getCapability(ClientCapability);
|
|
20
|
-
const sendPrivacyNotice = async () => {
|
|
21
|
-
const environment = client?.config?.values.runtime?.app?.env?.DX_ENVIRONMENT;
|
|
22
|
-
const notify = environment && environment !== "ci" && !environment.endsWith(".local") && !environment.endsWith(".lan");
|
|
23
|
-
if (!state.notified && notify) {
|
|
24
|
-
await dispatch(createIntent(LayoutAction.AddToast, {
|
|
25
|
-
part: "toast",
|
|
26
|
-
subject: {
|
|
27
|
-
id: `${OBSERVABILITY_PLUGIN}/notice`,
|
|
28
|
-
title: [
|
|
29
|
-
"observability toast label",
|
|
30
|
-
{
|
|
31
|
-
ns: OBSERVABILITY_PLUGIN
|
|
32
|
-
}
|
|
33
|
-
],
|
|
34
|
-
description: [
|
|
35
|
-
"observability toast description",
|
|
36
|
-
{
|
|
37
|
-
ns: OBSERVABILITY_PLUGIN
|
|
38
|
-
}
|
|
39
|
-
],
|
|
40
|
-
duration: Infinity,
|
|
41
|
-
icon: "ph--info--regular",
|
|
42
|
-
actionLabel: [
|
|
43
|
-
"observability toast action label",
|
|
44
|
-
{
|
|
45
|
-
ns: OBSERVABILITY_PLUGIN
|
|
46
|
-
}
|
|
47
|
-
],
|
|
48
|
-
actionAlt: [
|
|
49
|
-
"observability toast action alt",
|
|
50
|
-
{
|
|
51
|
-
ns: OBSERVABILITY_PLUGIN
|
|
52
|
-
}
|
|
53
|
-
],
|
|
54
|
-
closeLabel: [
|
|
55
|
-
"observability toast close label",
|
|
56
|
-
{
|
|
57
|
-
ns: OBSERVABILITY_PLUGIN
|
|
58
|
-
}
|
|
59
|
-
],
|
|
60
|
-
onAction: () => dispatch(createIntent(SettingsAction.Open, {
|
|
61
|
-
plugin: OBSERVABILITY_PLUGIN
|
|
62
|
-
}))
|
|
63
|
-
}
|
|
64
|
-
}));
|
|
65
|
-
state.notified = true;
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, "true", "errors"));
|
|
69
|
-
await dispatch(createIntent(ObservabilityAction.SendEvent, {
|
|
70
|
-
name: "page.load",
|
|
71
|
-
properties: {
|
|
72
|
-
// TODO(wittjosiah): These apis are deprecated. Is there a better way to find this information?
|
|
73
|
-
loadDuration: window.performance.timing.loadEventEnd - window.performance.timing.loadEventStart
|
|
74
|
-
}
|
|
75
|
-
}));
|
|
76
|
-
const cleanup = setupTelemetryListeners(namespace, client, observability);
|
|
77
|
-
await Promise.all([
|
|
78
|
-
observability.setIdentityTags(client.services.services),
|
|
79
|
-
observability.startRuntimeMetrics(client),
|
|
80
|
-
observability.startNetworkMetrics(client.services.services),
|
|
81
|
-
observability.startSpacesMetrics(client, namespace)
|
|
82
|
-
]);
|
|
83
|
-
if (client.halo.identity.get()) {
|
|
84
|
-
await sendPrivacyNotice();
|
|
85
|
-
} else {
|
|
86
|
-
const subscription = client.halo.identity.subscribe(async (identity) => {
|
|
87
|
-
if (identity && observability) {
|
|
88
|
-
await sendPrivacyNotice();
|
|
89
|
-
await observability.setIdentityTags(client.services.services);
|
|
90
|
-
subscription.unsubscribe();
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
return contributes(ObservabilityCapabilities.Observability, observability, async () => {
|
|
95
|
-
cleanup();
|
|
96
|
-
await observability.close();
|
|
97
|
-
});
|
|
98
|
-
};
|
|
99
|
-
export {
|
|
100
|
-
client_ready_default as default
|
|
101
|
-
};
|
|
102
|
-
//# sourceMappingURL=client-ready-NBJRF7OJ.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/client-ready.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n LayoutAction,\n type PluginContext,\n SettingsAction,\n contributes,\n createIntent,\n} from '@dxos/app-framework';\nimport { type Observability, setupTelemetryListeners } from '@dxos/observability';\n\nimport { OBSERVABILITY_PLUGIN } from '../meta';\nimport { ObservabilityAction } from '../types';\n\nimport { ClientCapability, ObservabilityCapabilities } from './capabilities';\n\ntype ClientReadyOptions = {\n context: PluginContext;\n namespace: string;\n observability: Observability;\n};\n\nexport default async ({ context, namespace, observability }: ClientReadyOptions) => {\n const manager = context.getCapability(Capabilities.PluginManager);\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const state = context.getCapability(ObservabilityCapabilities.State);\n const client = context.getCapability(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 if (!state.notified && notify) {\n await dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${OBSERVABILITY_PLUGIN}/notice`,\n title: ['observability toast label', { ns: OBSERVABILITY_PLUGIN }],\n description: ['observability toast description', { ns: OBSERVABILITY_PLUGIN }],\n duration: Infinity,\n icon: 'ph--info--regular',\n actionLabel: ['observability toast action label', { ns: OBSERVABILITY_PLUGIN }],\n actionAlt: ['observability toast action alt', { ns: OBSERVABILITY_PLUGIN }],\n closeLabel: ['observability toast close label', { ns: OBSERVABILITY_PLUGIN }],\n onAction: () => dispatch(createIntent(SettingsAction.Open, { plugin: OBSERVABILITY_PLUGIN })),\n },\n }),\n );\n\n state.notified = true;\n }\n };\n\n // Ensure errors are tagged with enabled plugins to help with reproductions.\n manager.enabled.map((plugin) => observability?.setTag(`pluginEnabled-${plugin}`, 'true', 'errors'));\n\n await dispatch(\n createIntent(ObservabilityAction.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\n // Start client observability (i.e. not running as shared worker)\n // TODO(nf): how to prevent multiple instances for single shared worker?\n const cleanup = setupTelemetryListeners(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, 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 return contributes(ObservabilityCapabilities.Observability, observability, async () => {\n cleanup();\n await observability.close();\n });\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;AAIA,SACEA,cACAC,cAEAC,gBACAC,aACAC,oBACK;AACP,SAA6BC,+BAA+B;AAa5D,IAAA,uBAAe,OAAO,EAAEC,SAASC,WAAWC,cAAa,MAAsB;AAC7E,QAAMC,UAAUH,QAAQI,cAAcC,aAAaC,aAAa;AAChE,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKR,QAAQI,cAAcC,aAAaI,gBAAgB;AACzF,QAAMC,QAAQV,QAAQI,cAAcO,0BAA0BC,KAAK;AACnE,QAAMC,SAASb,QAAQI,cAAcU,gBAAAA;AAErC,QAAMC,oBAAoB,YAAA;AACxB,UAAMC,cAAcH,QAAQI,QAAQC,OAAOC,SAASC,KAAKC,KAAKC;AAC9D,UAAMC,SACJP,eAAeA,gBAAgB,QAAQ,CAACA,YAAYQ,SAAS,QAAA,KAAa,CAACR,YAAYQ,SAAS,MAAA;AAClG,QAAI,CAACd,MAAMe,YAAYF,QAAQ;AAC7B,YAAMf,SACJkB,aAAaC,aAAaC,UAAU;QAClCC,MAAM;QACNC,SAAS;UACPC,IAAI,GAAGC,oBAAAA;UACPC,OAAO;YAAC;YAA6B;cAAEC,IAAIF;YAAqB;;UAChEG,aAAa;YAAC;YAAmC;cAAED,IAAIF;YAAqB;;UAC5EI,UAAUC;UACVC,MAAM;UACNC,aAAa;YAAC;YAAoC;cAAEL,IAAIF;YAAqB;;UAC7EQ,WAAW;YAAC;YAAkC;cAAEN,IAAIF;YAAqB;;UACzES,YAAY;YAAC;YAAmC;cAAEP,IAAIF;YAAqB;;UAC3EU,UAAU,MAAMlC,SAASkB,aAAaiB,eAAeC,MAAM;YAAEC,QAAQb;UAAqB,CAAA,CAAA;QAC5F;MACF,CAAA,CAAA;AAGFtB,YAAMe,WAAW;IACnB;EACF;AAGAtB,UAAQ2C,QAAQC,IAAI,CAACF,WAAW3C,eAAe8C,OAAO,iBAAiBH,MAAAA,IAAU,QAAQ,QAAA,CAAA;AAEzF,QAAMrC,SACJkB,aAAauB,oBAAoBC,WAAW;IAC1CC,MAAM;IACNC,YAAY;;MAEVC,cAAcC,OAAOC,YAAYC,OAAOC,eAAeH,OAAOC,YAAYC,OAAOE;IACnF;EACF,CAAA,CAAA;AAKF,QAAMC,UAAUC,wBAAwB3D,WAAWY,QAAQX,aAAAA;AAE3D,QAAM2D,QAAQC,IAAI;IAChB5D,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;IACtD9D,cAAc+D,oBAAoBpD,MAAAA;IAClCX,cAAcgE,oBAAoBrD,OAAOmD,SAASA,QAAQ;IAC1D9D,cAAciE,mBAAmBtD,QAAQZ,SAAAA;GAC1C;AAED,MAAIY,OAAOuD,KAAKC,SAASC,IAAG,GAAI;AAC9B,UAAMvD,kBAAAA;EACR,OAAO;AACL,UAAMwD,eAAe1D,OAAOuD,KAAKC,SAASG,UAAU,OAAOH,aAAAA;AACzD,UAAIA,YAAYnE,eAAe;AAC7B,cAAMa,kBAAAA;AACN,cAAMb,cAAc6D,gBAAgBlD,OAAOmD,SAASA,QAAQ;AAC5DO,qBAAaE,YAAW;MAC1B;IACF,CAAA;EACF;AAEA,SAAOC,YAAY/D,0BAA0BgE,eAAezE,eAAe,YAAA;AACzEyD,YAAAA;AACA,UAAMzD,cAAc0E,MAAK;EAC3B,CAAA;AACF;",
|
|
6
|
-
"names": ["Capabilities", "LayoutAction", "SettingsAction", "contributes", "createIntent", "setupTelemetryListeners", "context", "namespace", "observability", "manager", "getCapability", "Capabilities", "PluginManager", "dispatchPromise", "dispatch", "IntentDispatcher", "state", "ObservabilityCapabilities", "State", "client", "ClientCapability", "sendPrivacyNotice", "environment", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "notify", "endsWith", "notified", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "OBSERVABILITY_PLUGIN", "title", "ns", "description", "duration", "Infinity", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "SettingsAction", "Open", "plugin", "enabled", "map", "setTag", "ObservabilityAction", "SendEvent", "name", "properties", "loadDuration", "window", "performance", "timing", "loadEventEnd", "loadEventStart", "cleanup", "setupTelemetryListeners", "Promise", "all", "setIdentityTags", "services", "startRuntimeMetrics", "startNetworkMetrics", "startSpacesMetrics", "halo", "identity", "get", "subscription", "subscribe", "unsubscribe", "contributes", "Observability", "close"]
|
|
7
|
-
}
|