@corbado/observe 1.11.0 → 1.12.1

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.
@@ -12,10 +12,11 @@ function fieldContentLength(field) {
12
12
  group: "Input interaction",
13
13
  origin: "observe-external",
14
14
  fields: [
15
- { path: "value.length", label: "Length of the entered text", exposure: "size" },
15
+ { path: "value.length", label: "Length of the entered text", category: "behavior", exposure: "size" },
16
16
  {
17
17
  path: "checked",
18
18
  label: "Whether a checkbox or option is selected",
19
+ category: "behavior",
19
20
  exposure: "enum",
20
21
  transform: { values: [true, false], note: "checkbox and radio only" }
21
22
  }
@@ -46,12 +47,14 @@ var LowEventInputTracker = class {
46
47
  {
47
48
  path: "event.paste",
48
49
  label: "Paste into the field",
50
+ category: "behavior",
49
51
  exposure: "presence",
50
52
  transform: { note: "trusted paste events only" }
51
53
  },
52
54
  {
53
55
  path: "value",
54
56
  label: "Length of the pasted text",
57
+ category: "behavior",
55
58
  exposure: "size",
56
59
  transform: { note: "inserted length only; values are compared in memory and discarded" }
57
60
  }
@@ -107,21 +110,33 @@ var LowEventInputTracker = class {
107
110
  group: "Input interaction",
108
111
  origin: "observe-external",
109
112
  fields: [
110
- { path: "event.focus", label: "Field selected", exposure: "presence" },
111
- { path: "event.blur", label: "Field left", exposure: "presence" },
112
- { path: "event.pointerdown", label: "Pointer pressed on the field", exposure: "presence" },
113
- { path: "event.pointerup", label: "Pointer released on the field", exposure: "presence" },
114
- { path: "event.click", label: "Click on the field", exposure: "presence" },
115
- { path: "event.input", label: "Typing in the field", exposure: "presence" },
113
+ { path: "event.focus", label: "Field selected", category: "behavior", exposure: "presence" },
114
+ { path: "event.blur", label: "Field left", category: "behavior", exposure: "presence" },
115
+ {
116
+ path: "event.pointerdown",
117
+ label: "Pointer pressed on the field",
118
+ category: "behavior",
119
+ exposure: "presence"
120
+ },
121
+ {
122
+ path: "event.pointerup",
123
+ label: "Pointer released on the field",
124
+ category: "behavior",
125
+ exposure: "presence"
126
+ },
127
+ { path: "event.click", label: "Click on the field", category: "behavior", exposure: "presence" },
128
+ { path: "event.input", label: "Typing in the field", category: "behavior", exposure: "presence" },
116
129
  {
117
130
  path: "event.input.isComposing",
118
131
  label: "Whether text is being composed with an input method",
132
+ category: "behavior",
119
133
  exposure: "enum",
120
134
  transform: { values: [true, false] }
121
135
  },
122
136
  {
123
137
  path: "event.keyup.key",
124
138
  label: "Escape key pressed",
139
+ category: "behavior",
125
140
  exposure: "enum",
126
141
  transform: { values: ["Escape", "other"] }
127
142
  }
@@ -158,6 +173,7 @@ var LowEventInputTracker = class {
158
173
  {
159
174
  path: "event.pagehide",
160
175
  label: "Leaving the page",
176
+ category: "technical",
161
177
  exposure: "presence",
162
178
  transform: { note: "flushes pending input low events on unload" }
163
179
  }
@@ -179,6 +195,7 @@ var LowEventInputTracker = class {
179
195
  {
180
196
  path: "focused",
181
197
  label: "Whether the field is selected",
198
+ category: "behavior",
182
199
  exposure: "enum",
183
200
  transform: { values: [true, false] }
184
201
  }
@@ -19,48 +19,55 @@ var SharedWindowObserver = class {
19
19
  group: "Window interaction",
20
20
  origin: "observe-external",
21
21
  fields: [
22
- { path: "event.blur", label: "Window left", exposure: "presence" },
23
- { path: "event.focus", label: "Window selected", exposure: "presence" },
22
+ { path: "event.blur", label: "Window left", category: "behavior", exposure: "presence" },
23
+ { path: "event.focus", label: "Window selected", category: "behavior", exposure: "presence" },
24
24
  {
25
25
  path: "event.visibilitychange",
26
26
  label: "Page hidden or shown again",
27
+ category: "behavior",
27
28
  exposure: "enum",
28
29
  transform: { values: ["hidden", "visible"] }
29
30
  },
30
31
  {
31
32
  path: "event.focusout",
32
33
  label: "Whether a tracked field lost focus",
34
+ category: "behavior",
33
35
  exposure: "computed",
34
36
  transform: { note: "only whether a handed-over input lost focus to nothing" }
35
37
  },
36
38
  {
37
39
  path: "event.focusin",
38
40
  label: "Which tracked field gained focus",
41
+ category: "behavior",
39
42
  exposure: "computed",
40
43
  transform: { note: "only which handed-over input gained focus" }
41
44
  },
42
45
  {
43
46
  path: "event.pointerdown",
44
47
  label: "Whether a tracked field was pressed",
48
+ category: "behavior",
45
49
  exposure: "computed",
46
50
  transform: { note: "only whether the pointer went to a handed-over input" }
47
51
  },
48
52
  {
49
53
  path: "event.visualviewport.resize",
50
54
  label: "Duration of zooming or resizing",
55
+ category: "behavior",
51
56
  exposure: "size",
52
57
  transform: { note: "batched duration only" }
53
58
  },
54
59
  {
55
60
  path: "event.visualviewport.scroll",
56
61
  label: "Duration of scrolling",
62
+ category: "behavior",
57
63
  exposure: "size",
58
64
  transform: { note: "batched duration only" }
59
65
  },
60
- { path: "event.pagehide", label: "Leaving the page", exposure: "presence" },
66
+ { path: "event.pagehide", label: "Leaving the page", category: "technical", exposure: "presence" },
61
67
  {
62
68
  path: "event.navigation.back",
63
69
  label: "Going back within the page",
70
+ category: "behavior",
64
71
  exposure: "enum",
65
72
  transform: { values: [true, false], note: "committed same-document traverse to an earlier entry" }
66
73
  }
@@ -156,6 +163,7 @@ var SharedWindowObserver = class {
156
163
  {
157
164
  path: "activeElement",
158
165
  label: "Which tracked field is selected",
166
+ category: "behavior",
159
167
  exposure: "computed",
160
168
  transform: { note: "identity compared against handed-over inputs only" }
161
169
  }
@@ -222,12 +230,14 @@ var SharedWindowObserver = class {
222
230
  {
223
231
  path: "activeElement",
224
232
  label: "Which tracked field is selected",
233
+ category: "behavior",
225
234
  exposure: "computed",
226
235
  transform: { note: "identity compared against handed-over inputs only" }
227
236
  },
228
237
  {
229
238
  path: "activeElement.idle",
230
239
  label: "Whether nothing is selected",
240
+ category: "behavior",
231
241
  exposure: "enum",
232
242
  transform: { values: [true, false], note: "nothing focused (body or none)" }
233
243
  }
@@ -647,6 +647,7 @@ var RequestQueue = class {
647
647
  {
648
648
  path: "visibilityState",
649
649
  label: "Whether the page is hidden",
650
+ category: "technical",
650
651
  exposure: "enum",
651
652
  transform: { values: ["hidden", "other"] }
652
653
  }
@@ -679,6 +680,7 @@ var RequestQueue = class {
679
680
  {
680
681
  path: "event.visibilitychange",
681
682
  label: "Page hidden or shown again",
683
+ category: "technical",
682
684
  exposure: "presence",
683
685
  transform: { note: "flushes pending events when the page is hidden" }
684
686
  }
@@ -698,6 +700,7 @@ var RequestQueue = class {
698
700
  {
699
701
  path: "event.pagehide",
700
702
  label: "Leaving the page",
703
+ category: "technical",
701
704
  exposure: "presence",
702
705
  transform: { note: "flushes pending events on unload" }
703
706
  }
@@ -723,6 +726,7 @@ var RequestQueue = class {
723
726
  {
724
727
  path: "url",
725
728
  label: "Full page address",
729
+ category: "technical",
726
730
  exposure: "raw",
727
731
  transform: { note: "debug mode only; written to own localStorage, never sent" }
728
732
  }
@@ -13,6 +13,16 @@ var READER_EXPOSURES = [
13
13
  "redacted",
14
14
  "raw"
15
15
  ];
16
+ var READER_CATEGORIES = [
17
+ "personal-identifier",
18
+ "personal-data",
19
+ "secret",
20
+ "passkey",
21
+ "device",
22
+ "behavior",
23
+ "technical"
24
+ ];
16
25
  export {
26
+ READER_CATEGORIES,
17
27
  READER_EXPOSURES
18
28
  };
@@ -28,16 +28,13 @@ var LocalStorage = class {
28
28
  accessNote: "localStorage, Observe's own cbo_ keys",
29
29
  group: "Observe SDK state",
30
30
  origin: "observe-internal",
31
- fields: [
32
- {
33
- path: "value",
34
- label: "Observe's own saved data",
35
- exposure: "none",
36
- transform: {
37
- note: "own cbo_* keys only (session, sequence, outbox, config cache, experiments, client env, debug); written and read back by the SDK"
38
- }
39
- }
40
- ]
31
+ fields: [],
32
+ storage: {
33
+ area: "local",
34
+ keys: ["cbo_*"],
35
+ lifetime: "persistent",
36
+ retention: "Kept on the device; Observe replaces or removes its entries as they change"
37
+ }
41
38
  });
42
39
  /**
43
40
  * Error situations:
@@ -98,16 +95,13 @@ var CookieStorage = class {
98
95
  accessNote: "document.cookie, Observe's own cbo_ cookies",
99
96
  group: "Observe SDK state",
100
97
  origin: "observe-internal",
101
- fields: [
102
- {
103
- path: "value",
104
- label: "Observe's own cookies",
105
- exposure: "none",
106
- transform: {
107
- note: "own cbo_* cookies only (cookie storage mode); the cookie string is scanned for the requested key"
108
- }
109
- }
110
- ]
98
+ fields: [],
99
+ storage: {
100
+ area: "cookie",
101
+ keys: ["cbo_*"],
102
+ lifetime: "browser",
103
+ retention: "Removed when the browser closes"
104
+ }
111
105
  });
112
106
  /**
113
107
  * Error situations:
@@ -181,16 +175,13 @@ var SessionStorage = class {
181
175
  accessNote: "sessionStorage, Observe's own cbo_ keys",
182
176
  group: "Observe SDK state",
183
177
  origin: "observe-internal",
184
- fields: [
185
- {
186
- path: "value",
187
- label: "Observe's own data for this tab",
188
- exposure: "none",
189
- transform: {
190
- note: "own cbo_* keys only (per-tab session, sequence and tab id); written and read back by the SDK"
191
- }
192
- }
193
- ]
178
+ fields: [],
179
+ storage: {
180
+ area: "session",
181
+ keys: ["cbo_*"],
182
+ lifetime: "tab",
183
+ retention: "Removed when the tab closes"
184
+ }
194
185
  });
195
186
  /**
196
187
  * Error situations:
@@ -49,6 +49,7 @@ var EventStore = class {
49
49
  {
50
50
  path: "result",
51
51
  label: "Coordination between open tabs",
52
+ category: "technical",
52
53
  exposure: "none",
53
54
  transform: { note: "own cbo_* lock names; serializes the SDK's storage updates across tabs" }
54
55
  }
@@ -479,6 +479,7 @@ var CorbadoTrackerCore = class _CorbadoTrackerCore {
479
479
  {
480
480
  path: "result",
481
481
  label: "Whether the browser looks like a bot",
482
+ category: "device",
482
483
  exposure: "computed",
483
484
  transform: { note: "matched against the blocked user-agent list; only the boolean is used (tracking off)" }
484
485
  }
@@ -678,6 +679,7 @@ var CorbadoTrackerCore = class _CorbadoTrackerCore {
678
679
  {
679
680
  path: "available",
680
681
  label: "Whether the browser supports tab coordination",
682
+ category: "device",
681
683
  exposure: "enum",
682
684
  transform: { values: [true, false] }
683
685
  }
@@ -696,6 +698,7 @@ var CorbadoTrackerCore = class _CorbadoTrackerCore {
696
698
  {
697
699
  path: "result",
698
700
  label: "Coordination between open tabs",
701
+ category: "technical",
699
702
  exposure: "none",
700
703
  transform: { note: "own cbo_* lock names; serializes the SDK's storage updates across tabs" }
701
704
  }
@@ -724,10 +727,11 @@ var CorbadoTrackerCore = class _CorbadoTrackerCore {
724
727
  group: "Page",
725
728
  origin: "observe-external",
726
729
  fields: [
727
- { path: "url.path", label: "Page path", exposure: "raw" },
730
+ { path: "url.path", label: "Page path", category: "technical", exposure: "raw" },
728
731
  {
729
732
  path: "url.query",
730
733
  label: "Page address parameters (allowed ones only)",
734
+ category: "technical",
731
735
  exposure: "redacted",
732
736
  transform: { note: "sourcePathQuery 'allowlist': values of non-allowlisted keys become '*'; 'all': raw" }
733
737
  }
@@ -16,6 +16,7 @@ var FetchTransport = class {
16
16
  {
17
17
  path: "request.header.user-agent",
18
18
  label: "Browser and operating system identifier",
19
+ category: "device",
19
20
  exposure: "raw",
20
21
  transform: { note: "full User-Agent string, sent by the browser" }
21
22
  }
@@ -61,17 +62,24 @@ var FetchTransport = class {
61
62
  group: "Event delivery",
62
63
  origin: "observe-internal",
63
64
  fields: [
64
- { path: "response.status", label: "Response code", exposure: "raw" },
65
- { path: "response.header.retry-after", label: "Retry delay requested by the server", exposure: "raw" },
65
+ { path: "response.status", label: "Response code", category: "technical", exposure: "raw" },
66
+ {
67
+ path: "response.header.retry-after",
68
+ label: "Retry delay requested by the server",
69
+ category: "technical",
70
+ exposure: "raw"
71
+ },
66
72
  {
67
73
  path: "response.header.x-corbado-observe-accepted",
68
74
  label: "Whether Observe accepted the events",
75
+ category: "technical",
69
76
  exposure: "enum",
70
77
  transform: { values: ["1", "other"] }
71
78
  },
72
79
  {
73
80
  path: "response.body",
74
81
  label: "Observe settings in the response",
82
+ category: "technical",
75
83
  exposure: "raw",
76
84
  transform: { note: "SDK reliability config (HTTP 200 only)" }
77
85
  }
@@ -129,6 +137,7 @@ var FetchTransport = class {
129
137
  {
130
138
  path: "result",
131
139
  label: "Whether the browser accepted the data for sending",
140
+ category: "technical",
132
141
  exposure: "enum",
133
142
  transform: { values: [true, false], note: "whether the browser queued the beacon" }
134
143
  }
@@ -78,6 +78,7 @@ var EmailLinkContinuationOperation = class extends OperationFull {
78
78
  {
79
79
  path: "event.pagehide",
80
80
  label: "Leaving the page",
81
+ category: "technical",
81
82
  exposure: "presence",
82
83
  transform: { note: "flushes a detached email-link continuation on unload" }
83
84
  }
@@ -23,6 +23,7 @@ var PasswordManagerSampler = class {
23
23
  {
24
24
  path: "readyState",
25
25
  label: "Whether the page has finished loading",
26
+ category: "technical",
26
27
  exposure: "enum",
27
28
  transform: { values: ["complete", "other"] }
28
29
  }
@@ -46,6 +47,7 @@ var PasswordManagerSampler = class {
46
47
  {
47
48
  path: "event.load",
48
49
  label: "Page finished loading",
50
+ category: "technical",
49
51
  exposure: "presence",
50
52
  transform: { note: "schedules a password manager sample" }
51
53
  }
@@ -132,6 +134,7 @@ var PasswordManagerSampler = class {
132
134
  {
133
135
  path: "result[].name",
134
136
  label: "Names of known password managers found",
137
+ category: "device",
135
138
  exposure: "enum",
136
139
  transform: {
137
140
  values: [
@@ -147,7 +150,12 @@ var PasswordManagerSampler = class {
147
150
  }
148
151
  },
149
152
  // Read to merge samples, never reported (takeReport keeps only the name).
150
- { path: "result[].signedIn", label: "Whether the password manager is signed in", exposure: "none" }
153
+ {
154
+ path: "result[].signedIn",
155
+ label: "Whether the password manager is signed in",
156
+ category: "device",
157
+ exposure: "none"
158
+ }
151
159
  ],
152
160
  dataConfig: "pmd"
153
161
  });
@@ -1,6 +1,6 @@
1
1
  // src/version.ts
2
2
  var SDK_NAME = "@corbado/observe";
3
- var SDK_VERSION = true ? "1.11.0" : "0.0.0-dev";
3
+ var SDK_VERSION = true ? "1.12.1" : "0.0.0-dev";
4
4
  export {
5
5
  SDK_NAME,
6
6
  SDK_VERSION