@corbado/observe 1.15.0 → 1.15.2
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/CHANGELOG.md +24 -0
- package/dist/analysis/readers/password-manager-extensions.mjs +11 -1
- package/dist/analysis/version.mjs +1 -1
- package/dist/cdn/script.global.js +2 -2
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/manifest/index.d.mts +48 -9
- package/dist/manifest/index.d.ts +48 -9
- package/dist/manifest/index.js +54 -48
- package/dist/manifest/index.mjs +54 -48
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @corbado/observe
|
|
2
2
|
|
|
3
|
+
## 1.15.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- fe724d3: Restore detection of Kaspersky's Chrome extension after version 26.1 removed its page-global flag. Recognize its WebAuthn wrapper by reading its source without invoking it; collected data and detector side effects are unchanged.
|
|
8
|
+
|
|
9
|
+
## 1.15.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- a2cb17d: Collection manifest v2 descriptors (tools-only subpaths `@corbado/observe/manifest`, `@corbado/autocapture/manifest`;
|
|
14
|
+
data only, nothing changes in the bundles):
|
|
15
|
+
- Contract (additive, optional): `Conditional` (`when`, now also `"!<switch>"`; `requires` = never-ship item id) on
|
|
16
|
+
side effects, gateway fields, generated and stored entries; `SideEffect`; stored `deleteOnly`, `note` and
|
|
17
|
+
`otherwise` (`StoredVariant`: what the entry becomes when its `when` does not hold).
|
|
18
|
+
- Side effects: `ac:request@1` wraps fetch and XMLHttpRequest; `ac:ceremony@1` wraps navigator.credentials (proxy
|
|
19
|
+
with `aap`); `sdk:input@1` / `ac:element@1` watch the document for added elements.
|
|
20
|
+
- Own storage: the private-mode library's temporary test storage is no longer a stored entry (only the
|
|
21
|
+
`sdk:private-mode@1` side effect); config cache `when: "!static"` (absent from static-config builds); legacy debug keys
|
|
22
|
+
`deleteOnly` (project-scoped keys); low outbox `when: "durableLowOutbox"` with a not-written variant; cross-origin
|
|
23
|
+
session cookie and email-link starts carry `requires`.
|
|
24
|
+
- Texts: password managers ("whether the person is signed in to them", "behavior"), transport IP address and
|
|
25
|
+
client hints.
|
|
26
|
+
|
|
3
27
|
## 1.15.0
|
|
4
28
|
|
|
5
29
|
### Minor Changes
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var ONEPASSWORD_SCRIPT = "/inline/injected/webauthn-listeners.js";
|
|
3
3
|
var DASHLANE_STACK = /\/dashlane-(?:shadow-dom|top-layer)-page-script\.js/;
|
|
4
4
|
var KASPERSKY_SCRIPT = /-extension:\/\/[^/]+\/content-scripts\/passkey_proxy\/index\.js$/;
|
|
5
|
+
var KASPERSKY_SOURCE = /\bPromise\.all\s*\(\s*\[[\s\S]*?\.getIsPasskeyAvailable\s*\(/;
|
|
5
6
|
var KEEPER_STACK = /-extension:\/\/[^/]+\/content_scripts\/shadow-dom\/shadowAttachNotifier\.js:/;
|
|
6
7
|
var NORDPASS_STACK = /-extension:\/\/[^/]+\/js\/nordpass-script\.js:/;
|
|
7
8
|
var NORDPASS_PASSKEYS_KEY = /-extension:\/\/[^/]+\/js\/passkeys\.js:/;
|
|
@@ -101,6 +102,14 @@ var hasKeeperOverride = () => {
|
|
|
101
102
|
];
|
|
102
103
|
return methods.some((m) => typeof m === "function" && KEEPER_SOURCE.test(Function.prototype.toString.call(m)));
|
|
103
104
|
};
|
|
105
|
+
var hasKasperskyOverride = () => {
|
|
106
|
+
const credential = typeof PublicKeyCredential === "undefined" ? void 0 : PublicKeyCredential;
|
|
107
|
+
const methods = [
|
|
108
|
+
credential?.isUserVerifyingPlatformAuthenticatorAvailable,
|
|
109
|
+
credential?._isUserVerifyingPlatformAuthenticatorAvailable
|
|
110
|
+
];
|
|
111
|
+
return methods.some((m) => typeof m === "function" && KASPERSKY_SOURCE.test(Function.prototype.toString.call(m)));
|
|
112
|
+
};
|
|
104
113
|
var hasLastPassRoot = () => {
|
|
105
114
|
let root = document;
|
|
106
115
|
while (root) {
|
|
@@ -158,7 +167,7 @@ var PROBES = [
|
|
|
158
167
|
{
|
|
159
168
|
name: "kaspersky",
|
|
160
169
|
signal: "passkey proxy flag",
|
|
161
|
-
//
|
|
170
|
+
// Older builds set this at document_start in https frames, with or without the desktop app.
|
|
162
171
|
test: () => window.wasKPMKeyPassProxyInited === true
|
|
163
172
|
},
|
|
164
173
|
{
|
|
@@ -169,6 +178,7 @@ var PROBES = [
|
|
|
169
178
|
document.querySelector('script[src*="/content-scripts/passkey_proxy/"]')?.src ?? ""
|
|
170
179
|
)
|
|
171
180
|
},
|
|
181
|
+
{ name: "kaspersky", signal: "WebAuthn override source", test: hasKasperskyOverride },
|
|
172
182
|
{
|
|
173
183
|
name: "keeper",
|
|
174
184
|
signal: "attachShadow stack",
|