@cortexkit/antigravity-auth-core 2.2.1 → 3.0.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.
- package/README.md +24 -2
- package/dist/abort-forwarding.d.ts +3 -0
- package/dist/abort-forwarding.d.ts.map +1 -0
- package/dist/abort-forwarding.js +19 -0
- package/dist/abort-forwarding.js.map +1 -0
- package/dist/account-identity.d.ts +52 -0
- package/dist/account-identity.d.ts.map +1 -0
- package/dist/account-identity.js +66 -0
- package/dist/account-identity.js.map +1 -0
- package/dist/account-manager.d.ts +228 -43
- package/dist/account-manager.d.ts.map +1 -1
- package/dist/account-manager.js +942 -903
- package/dist/account-manager.js.map +1 -1
- package/dist/account-migration.d.ts +309 -0
- package/dist/account-migration.d.ts.map +1 -0
- package/dist/account-migration.js +2284 -0
- package/dist/account-migration.js.map +1 -0
- package/dist/account-repository-codecs.d.ts +82 -0
- package/dist/account-repository-codecs.d.ts.map +1 -0
- package/dist/account-repository-codecs.js +609 -0
- package/dist/account-repository-codecs.js.map +1 -0
- package/dist/account-repository-types.d.ts +831 -0
- package/dist/account-repository-types.d.ts.map +1 -0
- package/dist/account-repository-types.js +137 -0
- package/dist/account-repository-types.js.map +1 -0
- package/dist/account-repository.d.ts +442 -0
- package/dist/account-repository.d.ts.map +1 -0
- package/dist/account-repository.js +2253 -0
- package/dist/account-repository.js.map +1 -0
- package/dist/account-selector.d.ts +470 -0
- package/dist/account-selector.d.ts.map +1 -0
- package/dist/account-selector.js +1383 -0
- package/dist/account-selector.js.map +1 -0
- package/dist/account-storage.d.ts.map +1 -1
- package/dist/account-storage.js +5 -0
- package/dist/account-storage.js.map +1 -1
- package/dist/agy-request-metadata.d.ts.map +1 -1
- package/dist/agy-request-metadata.js +8 -21
- package/dist/agy-request-metadata.js.map +1 -1
- package/dist/agy-transport.d.ts.map +1 -1
- package/dist/agy-transport.js +21 -35
- package/dist/agy-transport.js.map +1 -1
- package/dist/antigravity-command-menu.d.ts +171 -0
- package/dist/antigravity-command-menu.d.ts.map +1 -0
- package/dist/antigravity-command-menu.js +523 -0
- package/dist/antigravity-command-menu.js.map +1 -0
- package/dist/atomic-write.d.ts +18 -1
- package/dist/atomic-write.d.ts.map +1 -1
- package/dist/atomic-write.js +15 -3
- package/dist/atomic-write.js.map +1 -1
- package/dist/common-auth-embedded/NOTICE.txt +21 -0
- package/dist/common-auth-embedded/auth-menu/accounts.d.ts +97 -0
- package/dist/common-auth-embedded/auth-menu/accounts.js +387 -0
- package/dist/common-auth-embedded/auth-menu/ansi.d.ts +26 -0
- package/dist/common-auth-embedded/auth-menu/ansi.js +98 -0
- package/dist/common-auth-embedded/auth-menu/confirm.d.ts +7 -0
- package/dist/common-auth-embedded/auth-menu/confirm.js +21 -0
- package/dist/common-auth-embedded/auth-menu/doctor.d.ts +52 -0
- package/dist/common-auth-embedded/auth-menu/doctor.js +81 -0
- package/dist/common-auth-embedded/auth-menu/index.d.ts +17 -0
- package/dist/common-auth-embedded/auth-menu/index.js +12 -0
- package/dist/common-auth-embedded/auth-menu/login.d.ts +55 -0
- package/dist/common-auth-embedded/auth-menu/login.js +83 -0
- package/dist/common-auth-embedded/auth-menu/menu.d.ts +59 -0
- package/dist/common-auth-embedded/auth-menu/menu.js +73 -0
- package/dist/common-auth-embedded/auth-menu/opencode-v1.d.ts +49 -0
- package/dist/common-auth-embedded/auth-menu/opencode-v1.js +47 -0
- package/dist/common-auth-embedded/auth-menu/select.d.ts +21 -0
- package/dist/common-auth-embedded/auth-menu/select.js +159 -0
- package/dist/common-auth-embedded/auth-menu/terminal.d.ts +43 -0
- package/dist/common-auth-embedded/auth-menu/terminal.js +19 -0
- package/dist/common-auth-embedded/claustrum/consumer.d.ts +102 -0
- package/dist/common-auth-embedded/claustrum/consumer.js +298 -0
- package/dist/common-auth-embedded/claustrum/custody.d.ts +175 -0
- package/dist/common-auth-embedded/claustrum/custody.js +354 -0
- package/dist/common-auth-embedded/claustrum/enrollment.d.ts +158 -0
- package/dist/common-auth-embedded/claustrum/enrollment.js +759 -0
- package/dist/common-auth-embedded/claustrum/errors.d.ts +16 -0
- package/dist/common-auth-embedded/claustrum/errors.js +8 -0
- package/dist/common-auth-embedded/claustrum/host-slot.d.ts +39 -0
- package/dist/common-auth-embedded/claustrum/host-slot.js +72 -0
- package/dist/common-auth-embedded/claustrum/index.d.ts +18 -0
- package/dist/common-auth-embedded/claustrum/index.js +22 -0
- package/dist/common-auth-embedded/claustrum/interlock.d.ts +27 -0
- package/dist/common-auth-embedded/claustrum/interlock.js +29 -0
- package/dist/common-auth-embedded/claustrum/roster.d.ts +208 -0
- package/dist/common-auth-embedded/claustrum/roster.js +536 -0
- package/dist/common-auth-embedded/commands/builtins.d.ts +71 -0
- package/dist/common-auth-embedded/commands/builtins.js +534 -0
- package/dist/common-auth-embedded/commands/index.d.ts +10 -0
- package/dist/common-auth-embedded/commands/index.js +5 -0
- package/dist/common-auth-embedded/commands/menu.d.ts +61 -0
- package/dist/common-auth-embedded/commands/menu.js +300 -0
- package/dist/common-auth-embedded/commands/model.d.ts +238 -0
- package/dist/common-auth-embedded/commands/model.js +16 -0
- package/dist/common-auth-embedded/commands/pi.d.ts +23 -0
- package/dist/common-auth-embedded/commands/pi.js +206 -0
- package/dist/common-auth-embedded/commands/seam.d.ts +72 -0
- package/dist/common-auth-embedded/commands/seam.js +301 -0
- package/dist/common-auth-embedded/fs/atomic-write.d.ts +20 -0
- package/dist/common-auth-embedded/fs/atomic-write.js +80 -0
- package/dist/common-auth-embedded/fs/index.d.ts +7 -0
- package/dist/common-auth-embedded/fs/index.js +6 -0
- package/dist/common-auth-embedded/fs/lock-constants.d.ts +14 -0
- package/dist/common-auth-embedded/fs/lock-constants.js +14 -0
- package/dist/common-auth-embedded/fs/refresh-file-lock.d.ts +33 -0
- package/dist/common-auth-embedded/fs/refresh-file-lock.js +501 -0
- package/dist/common-auth-embedded/fs/with-lock.d.ts +33 -0
- package/dist/common-auth-embedded/fs/with-lock.js +48 -0
- package/dist/common-auth-embedded/logger/capture-sink.d.ts +14 -0
- package/dist/common-auth-embedded/logger/capture-sink.js +13 -0
- package/dist/common-auth-embedded/logger/engine.d.ts +100 -0
- package/dist/common-auth-embedded/logger/engine.js +246 -0
- package/dist/common-auth-embedded/logger/index.d.ts +6 -0
- package/dist/common-auth-embedded/logger/index.js +3 -0
- package/dist/common-auth-embedded/logger/redact.d.ts +11 -0
- package/dist/common-auth-embedded/logger/redact.js +83 -0
- package/dist/common-auth-embedded/pi-slot/index.d.ts +3 -0
- package/dist/common-auth-embedded/pi-slot/index.js +2 -0
- package/dist/common-auth-embedded/pi-slot/lock.js +212 -0
- package/dist/common-auth-embedded/pi-slot/slot.d.ts +49 -0
- package/dist/common-auth-embedded/pi-slot/slot.js +383 -0
- package/dist/common-auth-embedded/quota/codec.d.ts +11 -0
- package/dist/common-auth-embedded/quota/codec.js +12 -0
- package/dist/common-auth-embedded/quota/format.d.ts +46 -0
- package/dist/common-auth-embedded/quota/format.js +138 -0
- package/dist/common-auth-embedded/quota/index.d.ts +10 -0
- package/dist/common-auth-embedded/quota/index.js +5 -0
- package/dist/common-auth-embedded/quota/map.d.ts +63 -0
- package/dist/common-auth-embedded/quota/map.js +105 -0
- package/dist/common-auth-embedded/quota/merge.d.ts +48 -0
- package/dist/common-auth-embedded/quota/merge.js +162 -0
- package/dist/common-auth-embedded/quota/projection.d.ts +64 -0
- package/dist/common-auth-embedded/quota/projection.js +134 -0
- package/dist/common-auth-embedded/routing/admission.d.ts +93 -0
- package/dist/common-auth-embedded/routing/admission.js +142 -0
- package/dist/common-auth-embedded/routing/index.d.ts +8 -0
- package/dist/common-auth-embedded/routing/index.js +4 -0
- package/dist/common-auth-embedded/routing/ordered.d.ts +47 -0
- package/dist/common-auth-embedded/routing/ordered.js +58 -0
- package/dist/common-auth-embedded/routing/pins.d.ts +22 -0
- package/dist/common-auth-embedded/routing/pins.js +34 -0
- package/dist/common-auth-embedded/routing/sticky.d.ts +158 -0
- package/dist/common-auth-embedded/routing/sticky.js +339 -0
- package/dist/common-auth-embedded/source-output.json +1090 -0
- package/dist/common-auth-embedded/store/attribution.d.ts +28 -0
- package/dist/common-auth-embedded/store/attribution.js +60 -0
- package/dist/common-auth-embedded/store/errors.d.ts +55 -0
- package/dist/common-auth-embedded/store/errors.js +38 -0
- package/dist/common-auth-embedded/store/hooks.d.ts +12 -0
- package/dist/common-auth-embedded/store/hooks.js +34 -0
- package/dist/common-auth-embedded/store/identity.d.ts +39 -0
- package/dist/common-auth-embedded/store/identity.js +79 -0
- package/dist/common-auth-embedded/store/index.d.ts +21 -0
- package/dist/common-auth-embedded/store/index.js +7 -0
- package/dist/common-auth-embedded/store/mutate.d.ts +189 -0
- package/dist/common-auth-embedded/store/mutate.js +500 -0
- package/dist/common-auth-embedded/store/pool.d.ts +196 -0
- package/dist/common-auth-embedded/store/pool.js +120 -0
- package/dist/common-auth-embedded/store/provider-state.d.ts +131 -0
- package/dist/common-auth-embedded/store/provider-state.js +226 -0
- package/dist/common-auth-embedded/store/publication.d.ts +47 -0
- package/dist/common-auth-embedded/store/publication.js +304 -0
- package/dist/common-auth-embedded/store/pull.d.ts +36 -0
- package/dist/common-auth-embedded/store/pull.js +143 -0
- package/dist/common-auth-embedded/store/refresh-lock.d.ts +63 -0
- package/dist/common-auth-embedded/store/refresh-lock.js +136 -0
- package/dist/common-auth-embedded/store/refresh.d.ts +72 -0
- package/dist/common-auth-embedded/store/refresh.js +225 -0
- package/dist/common-auth-embedded/store/reserved.js +13 -0
- package/dist/common-auth-embedded/store/rows.d.ts +313 -0
- package/dist/common-auth-embedded/store/rows.js +1258 -0
- package/dist/common-auth-embedded/store/runtime.d.ts +36 -0
- package/dist/common-auth-embedded/store/runtime.js +68 -0
- package/dist/common-auth-embedded/store/schema.d.ts +443 -0
- package/dist/common-auth-embedded/store/schema.js +754 -0
- package/dist/common-auth-embedded/store/settings.d.ts +63 -0
- package/dist/common-auth-embedded/store/settings.js +120 -0
- package/dist/common-auth-embedded/store/torn.d.ts +78 -0
- package/dist/common-auth-embedded/store/torn.js +294 -0
- package/dist/common-auth-embedded/util/any-signal.js +42 -0
- package/dist/common-auth-runtime.d.ts +73 -0
- package/dist/common-auth-runtime.d.ts.map +1 -0
- package/dist/common-auth-runtime.js +65 -0
- package/dist/common-auth-runtime.js.map +1 -0
- package/dist/credential-redaction.d.ts +13 -0
- package/dist/credential-redaction.d.ts.map +1 -0
- package/dist/credential-redaction.js +230 -0
- package/dist/credential-redaction.js.map +1 -0
- package/dist/fetch-timeout.d.ts +4 -2
- package/dist/fetch-timeout.d.ts.map +1 -1
- package/dist/fetch-timeout.js +121 -14
- package/dist/fetch-timeout.js.map +1 -1
- package/dist/fingerprint.d.ts +3 -3
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +4 -4
- package/dist/fingerprint.js.map +1 -1
- package/dist/index.d.ts +16 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/model-registry.d.ts +16 -0
- package/dist/model-registry.d.ts.map +1 -1
- package/dist/model-registry.js +242 -30
- package/dist/model-registry.js.map +1 -1
- package/dist/quota-manager.d.ts.map +1 -1
- package/dist/quota-manager.js +35 -10
- package/dist/quota-manager.js.map +1 -1
- package/dist/quota-presentation.d.ts +10 -0
- package/dist/quota-presentation.d.ts.map +1 -0
- package/dist/quota-presentation.js +60 -0
- package/dist/quota-presentation.js.map +1 -0
- package/dist/quota-types.d.ts +2 -0
- package/dist/quota-types.d.ts.map +1 -1
- package/dist/rotation.d.ts +8 -0
- package/dist/rotation.d.ts.map +1 -1
- package/dist/rotation.js +24 -0
- package/dist/rotation.js.map +1 -1
- package/dist/transform/agy-generation.d.ts +3 -0
- package/dist/transform/agy-generation.d.ts.map +1 -0
- package/dist/transform/agy-generation.js +28 -0
- package/dist/transform/agy-generation.js.map +1 -0
- package/dist/transform/claude.d.ts +7 -3
- package/dist/transform/claude.d.ts.map +1 -1
- package/dist/transform/claude.js +8 -2
- package/dist/transform/claude.js.map +1 -1
- package/dist/transform/index.d.ts +1 -0
- package/dist/transform/index.d.ts.map +1 -1
- package/dist/transform/index.js +1 -0
- package/dist/transform/index.js.map +1 -1
- package/dist/transform/model-resolver.d.ts +2 -1
- package/dist/transform/model-resolver.d.ts.map +1 -1
- package/dist/transform/model-resolver.js +46 -5
- package/dist/transform/model-resolver.js.map +1 -1
- package/dist/transform/types.d.ts +1 -1
- package/dist/transform/types.d.ts.map +1 -1
- package/dist/vault-account-source.d.ts +183 -0
- package/dist/vault-account-source.d.ts.map +1 -0
- package/dist/vault-account-source.js +296 -0
- package/dist/vault-account-source.js.map +1 -0
- package/dist/vault-enrollment-authority.d.ts +16 -0
- package/dist/vault-enrollment-authority.d.ts.map +1 -0
- package/dist/vault-enrollment-authority.js +19 -0
- package/dist/vault-enrollment-authority.js.map +1 -0
- package/dist/vault-family.d.ts +11 -0
- package/dist/vault-family.d.ts.map +1 -0
- package/dist/vault-family.js +24 -0
- package/dist/vault-family.js.map +1 -0
- package/dist/vault-provider-state.d.ts +162 -0
- package/dist/vault-provider-state.d.ts.map +1 -0
- package/dist/vault-provider-state.js +422 -0
- package/dist/vault-provider-state.js.map +1 -0
- package/package.json +39 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-auth-runtime.d.ts","sourceRoot":"","sources":["../src/common-auth-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAC/B,cAAc,uCAAuC,CAAC,CAAA;AACxD,wEAAwE;AACxE,MAAM,MAAM,kBAAkB,GAC5B,cAAc,oCAAoC,CAAC,CAAA;AACrD,6EAA6E;AAC7E,MAAM,MAAM,uBAAuB,GACjC,cAAc,yCAAyC,CAAC,CAAA;AAC1D,8EAA8E;AAC9E,MAAM,MAAM,qBAAqB,GAC/B,cAAc,uCAAuC,CAAC,CAAA;AACxD,wEAAwE;AACxE,MAAM,MAAM,wBAAwB,GAClC,cAAc,0CAA0C,CAAC,CAAA;AAC3D,2EAA2E;AAC3E,MAAM,MAAM,wBAAwB,GAClC,cAAc,2CAA2C,CAAC,CAAA;AAC5D,0EAA0E;AAC1E,MAAM,MAAM,yBAAyB,GACnC,cAAc,2CAA2C,CAAC,CAAA;AAC5D,0EAA0E;AAC1E,MAAM,MAAM,sBAAsB,GAChC,cAAc,wCAAwC,CAAC,CAAA;AAEzD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;IACrC,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAA;CAChC;AAeD,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,EAAE,MAAM,OAAO,CAAC,qBAAqB,CACL,CAAA;AAEhE,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAE9D,CAAA;AAED,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,EAAE,MAAM,OAAO,CAAC,uBAAuB,CACP,CAAA;AAElE,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,EAAE,MAAM,OAAO,CAAC,qBAAqB,CACL,CAAA;AAEhE,qDAAqD;AACrD,eAAO,MAAM,sBAAsB,EAAE,MAAM,OAAO,CAAC,wBAAwB,CACR,CAAA;AAEnE,sDAAsD;AACtD,eAAO,MAAM,sBAAsB,EAAE,MAAM,OAAO,CAAC,wBAAwB,CACP,CAAA;AAEpE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,OAAO,CAAC,yBAAyB,CACT,CAAA;AAEpE,mDAAmD;AACnD,eAAO,MAAM,oBAAoB,EAAE,MAAM,OAAO,CAAC,sBAAsB,CACN,CAAA;AAEjE,0EAA0E;AAC1E,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAMlF;AAED,MAAM,MAAM,sBAAsB,GAChC,cAAc,yCAAyC,CAAC,CAAA;AAE1D,mHAAmH;AACnH,eAAO,MAAM,oBAAoB,EAAE,MAAM,OAAO,CAAC,sBAAsB,CACL,CAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed, lazily loaded bindings to the public entries of @cortexkit/common-auth
|
|
3
|
+
* that this package ships inside itself.
|
|
4
|
+
*
|
|
5
|
+
* The library's public `./store`, `./fs`, `./routing`, `./quota`,
|
|
6
|
+
* `./commands`, `./auth-menu`, `./claustrum` and `./logger` entries are copied
|
|
7
|
+
* byte for byte from the verified library archive into `common-auth-embedded/`
|
|
8
|
+
* by the repository's single common-auth emitter; `source-output.json` there
|
|
9
|
+
* records the archive and every file hash. Nothing here re-implements or wraps
|
|
10
|
+
* library behaviour: each type is the genuine module namespace type, and each
|
|
11
|
+
* loader returns the genuine module.
|
|
12
|
+
*
|
|
13
|
+
* The loaders use dynamic imports so that importing the package root does not
|
|
14
|
+
* evaluate the store, the command menu or the vault client. A loaded module is
|
|
15
|
+
* cached for the life of the process; a failed load is not cached, so a later
|
|
16
|
+
* call can retry it. `./claustrum` additionally needs the
|
|
17
|
+
* `@cortexkit/claustrum-client` dependency, which is only resolved when
|
|
18
|
+
* `loadCommonAuthClaustrum` is called.
|
|
19
|
+
*
|
|
20
|
+
* Static consumers can import the same modules through this package's
|
|
21
|
+
* `./common-auth/<entry>` subpath exports instead.
|
|
22
|
+
*/
|
|
23
|
+
function memoize(load) {
|
|
24
|
+
let pending;
|
|
25
|
+
return () => {
|
|
26
|
+
if (!pending) {
|
|
27
|
+
pending = load().catch((error) => {
|
|
28
|
+
pending = undefined;
|
|
29
|
+
throw error;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return pending;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Loads the library's public `./store` entry. */
|
|
36
|
+
export const loadCommonAuthStore = memoize(() => import('./common-auth-embedded/store/index.js'));
|
|
37
|
+
/** Loads the library's public `./fs` entry. */
|
|
38
|
+
export const loadCommonAuthFs = memoize(() => import('./common-auth-embedded/fs/index.js'));
|
|
39
|
+
/** Loads the library's public `./routing` entry. */
|
|
40
|
+
export const loadCommonAuthRouting = memoize(() => import('./common-auth-embedded/routing/index.js'));
|
|
41
|
+
/** Loads the library's public `./quota` entry. */
|
|
42
|
+
export const loadCommonAuthQuota = memoize(() => import('./common-auth-embedded/quota/index.js'));
|
|
43
|
+
/** Loads the library's public `./commands` entry. */
|
|
44
|
+
export const loadCommonAuthCommands = memoize(() => import('./common-auth-embedded/commands/index.js'));
|
|
45
|
+
/** Loads the library's public `./auth-menu` entry. */
|
|
46
|
+
export const loadCommonAuthAuthMenu = memoize(() => import('./common-auth-embedded/auth-menu/index.js'));
|
|
47
|
+
/**
|
|
48
|
+
* Loads the library's public `./claustrum` entry. This also loads the
|
|
49
|
+
* installed `@cortexkit/claustrum-client`; a missing client rejects here, not
|
|
50
|
+
* when the package root is imported.
|
|
51
|
+
*/
|
|
52
|
+
export const loadCommonAuthClaustrum = memoize(() => import('./common-auth-embedded/claustrum/index.js'));
|
|
53
|
+
/** Loads the library's public `./logger` entry. */
|
|
54
|
+
export const loadCommonAuthLogger = memoize(() => import('./common-auth-embedded/logger/index.js'));
|
|
55
|
+
/** Loads the `./store` and `./fs` entries an account repository needs. */
|
|
56
|
+
export async function loadCommonAuthStoreModules() {
|
|
57
|
+
const [store, fs] = await Promise.all([
|
|
58
|
+
loadCommonAuthStore(),
|
|
59
|
+
loadCommonAuthFs(),
|
|
60
|
+
]);
|
|
61
|
+
return { store, fs };
|
|
62
|
+
}
|
|
63
|
+
/** Load common-auth's Pi auth.json editor outside UI bundles; its lock coordinates with Pi's own login writers. */
|
|
64
|
+
export const loadCommonAuthPiSlot = memoize(() => import('./common-auth-embedded/pi-slot/index.js'));
|
|
65
|
+
//# sourceMappingURL=common-auth-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-auth-runtime.js","sourceRoot":"","sources":["../src/common-auth-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAqCH,SAAS,OAAO,CAAI,IAAsB;IACxC,IAAI,OAA+B,CAAA;IACnC,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACxC,OAAO,GAAG,SAAS,CAAA;gBACnB,MAAM,KAAK,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAC9B,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAA;AAEhE,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAsC,OAAO,CACxE,GAAG,EAAE,CAAC,MAAM,CAAC,oCAAoC,CAAC,CACnD,CAAA;AAED,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAChC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAElE,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAC9B,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAA;AAEhE,qDAAqD;AACrD,MAAM,CAAC,MAAM,sBAAsB,GACjC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAA;AAEnE,sDAAsD;AACtD,MAAM,CAAC,MAAM,sBAAsB,GACjC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAA;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAClC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAA;AAEpE,mDAAmD;AACnD,MAAM,CAAC,MAAM,oBAAoB,GAC/B,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAA;AAEjE,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpC,mBAAmB,EAAE;QACrB,gBAAgB,EAAE;KACnB,CAAC,CAAA;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;AACtB,CAAC;AAKD,mHAAmH;AACnH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type Credentials = string | readonly string[] | undefined;
|
|
2
|
+
/** Selected bearers can be opaque; scrub their exact values as well as recognizable token shapes. */
|
|
3
|
+
export declare function redactCredentialText(text: string, credentials?: Credentials): string;
|
|
4
|
+
/** Keep writable transport errors and routing metadata; immutable errors need a safe replacement. */
|
|
5
|
+
export declare function redactCredentialError(error: unknown, credentials?: Credentials): Error;
|
|
6
|
+
/** Ordinary model text, including text that mentions errors or tokens, is not a diagnostic. */
|
|
7
|
+
export declare function redactCredentialFrame(frame: string, credentials?: Credentials): string;
|
|
8
|
+
/** Body wrappers must retain fetch metadata in addition to status and headers. */
|
|
9
|
+
export declare function preserveResponseMetadata(response: Response, original: Response): Response;
|
|
10
|
+
/** Scrub failed HTTP diagnostics and SSE error frames, never successful content. */
|
|
11
|
+
export declare function redactCredentialResponse(response: Response, credentials?: Credentials, bufferedBody?: string): Promise<Response>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=credential-redaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-redaction.d.ts","sourceRoot":"","sources":["../src/credential-redaction.ts"],"names":[],"mappings":"AACA,KAAK,WAAW,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;AAEzD,qGAAqG;AACrG,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,CASR;AAoDD,qGAAqG;AACrG,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,WAAW,CAAC,EAAE,WAAW,GACxB,KAAK,CAoDP;AAmBD,+FAA+F;AAC/F,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,CAWR;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GACjB,QAAQ,CAQV;AAED,oFAAoF;AACpF,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,QAAQ,CAAC,CA0FnB"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
const MARKER = '[credential]';
|
|
2
|
+
/** Selected bearers can be opaque; scrub their exact values as well as recognizable token shapes. */
|
|
3
|
+
export function redactCredentialText(text, credentials) {
|
|
4
|
+
for (const credential of typeof credentials === 'string'
|
|
5
|
+
? [credentials]
|
|
6
|
+
: (credentials ?? [])) {
|
|
7
|
+
if (credential)
|
|
8
|
+
text = text.split(credential).join(MARKER);
|
|
9
|
+
}
|
|
10
|
+
return text
|
|
11
|
+
.replace(/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g, MARKER)
|
|
12
|
+
.replace(/\bBearer\s+[A-Za-z0-9._~+/-]+=*/gi, MARKER);
|
|
13
|
+
}
|
|
14
|
+
function scrub(value, credentials, seen = new WeakSet()) {
|
|
15
|
+
if (typeof value === 'string')
|
|
16
|
+
return redactCredentialText(value, credentials);
|
|
17
|
+
if (!value || typeof value !== 'object')
|
|
18
|
+
return value;
|
|
19
|
+
if (!containsCredential(value, credentials))
|
|
20
|
+
return value;
|
|
21
|
+
if (seen.has(value))
|
|
22
|
+
return '[Circular]';
|
|
23
|
+
seen.add(value);
|
|
24
|
+
const safe = Array.isArray(value)
|
|
25
|
+
? []
|
|
26
|
+
: Object.create(Object.getPrototypeOf(value));
|
|
27
|
+
for (const key of Reflect.ownKeys(value)) {
|
|
28
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
29
|
+
if (key === 'cause' &&
|
|
30
|
+
(!('value' in descriptor) ||
|
|
31
|
+
containsCredential(descriptor.value, credentials)))
|
|
32
|
+
continue;
|
|
33
|
+
Object.defineProperty(safe, key, 'value' in descriptor
|
|
34
|
+
? { ...descriptor, value: scrub(descriptor.value, credentials, seen) }
|
|
35
|
+
: descriptor);
|
|
36
|
+
}
|
|
37
|
+
return safe;
|
|
38
|
+
}
|
|
39
|
+
function containsCredential(value, credentials, seen = new WeakSet()) {
|
|
40
|
+
if (typeof value === 'string')
|
|
41
|
+
return redactCredentialText(value, credentials) !== value;
|
|
42
|
+
if (!value || typeof value !== 'object' || seen.has(value))
|
|
43
|
+
return false;
|
|
44
|
+
seen.add(value);
|
|
45
|
+
return Reflect.ownKeys(value).some((key) => {
|
|
46
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
47
|
+
return ('value' in descriptor &&
|
|
48
|
+
containsCredential(descriptor.value, credentials, seen));
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/** Keep writable transport errors and routing metadata; immutable errors need a safe replacement. */
|
|
52
|
+
export function redactCredentialError(error, credentials) {
|
|
53
|
+
const source = error instanceof Error || error instanceof DOMException ? error : undefined;
|
|
54
|
+
const message = redactCredentialText(source?.message ?? String(error), credentials);
|
|
55
|
+
const fields = source
|
|
56
|
+
? Reflect.ownKeys(source).map((key) => ({
|
|
57
|
+
key,
|
|
58
|
+
descriptor: Object.getOwnPropertyDescriptor(source, key),
|
|
59
|
+
}))
|
|
60
|
+
: [];
|
|
61
|
+
const cause = fields.find(({ key }) => key === 'cause')?.descriptor;
|
|
62
|
+
const secretCause = cause &&
|
|
63
|
+
(!('value' in cause) || containsCredential(cause.value, credentials));
|
|
64
|
+
try {
|
|
65
|
+
if (source) {
|
|
66
|
+
if (message !== source.message)
|
|
67
|
+
Object.defineProperty(source, 'message', {
|
|
68
|
+
value: message,
|
|
69
|
+
configurable: true,
|
|
70
|
+
writable: true,
|
|
71
|
+
});
|
|
72
|
+
for (const { key, descriptor } of fields) {
|
|
73
|
+
if (key === 'message' || key === 'cause' || !('value' in descriptor))
|
|
74
|
+
continue;
|
|
75
|
+
const value = scrub(descriptor.value, credentials);
|
|
76
|
+
if (value !== descriptor.value)
|
|
77
|
+
Object.defineProperty(source, key, { ...descriptor, value });
|
|
78
|
+
}
|
|
79
|
+
if (secretCause)
|
|
80
|
+
delete source.cause;
|
|
81
|
+
return source;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Frozen diagnostics cannot keep unsafe text, but their classification still matters.
|
|
86
|
+
}
|
|
87
|
+
const safe = new Error(message);
|
|
88
|
+
safe.name = redactCredentialText(source?.name ?? 'Error', credentials);
|
|
89
|
+
for (const { key, descriptor } of fields) {
|
|
90
|
+
if (key === 'message' || key === 'cause' || !('value' in descriptor))
|
|
91
|
+
continue;
|
|
92
|
+
Object.defineProperty(safe, key, {
|
|
93
|
+
...descriptor,
|
|
94
|
+
configurable: true,
|
|
95
|
+
writable: true,
|
|
96
|
+
value: scrub(descriptor.value, credentials),
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
if (cause && !secretCause && 'value' in cause)
|
|
100
|
+
safe.cause = cause.value;
|
|
101
|
+
return safe;
|
|
102
|
+
}
|
|
103
|
+
function redactDiagnosticText(text, credentials, parsed) {
|
|
104
|
+
const direct = redactCredentialText(text, credentials);
|
|
105
|
+
if (direct !== text || !text.includes('\\u'))
|
|
106
|
+
return direct;
|
|
107
|
+
try {
|
|
108
|
+
// JSON escapes can hide a credential even after the diagnostic is recognized.
|
|
109
|
+
const canonical = JSON.stringify(parsed ?? JSON.parse(text));
|
|
110
|
+
const safe = redactCredentialText(canonical, credentials);
|
|
111
|
+
return safe === canonical ? text : safe;
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return text;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** Ordinary model text, including text that mentions errors or tokens, is not a diagnostic. */
|
|
118
|
+
export function redactCredentialFrame(frame, credentials) {
|
|
119
|
+
if (!frame.includes('"error"') && !frame.includes('\\u'))
|
|
120
|
+
return frame;
|
|
121
|
+
try {
|
|
122
|
+
const value = JSON.parse(frame);
|
|
123
|
+
if (value?.type === 'error' || value?.error || value?.response?.error) {
|
|
124
|
+
return redactDiagnosticText(frame, credentials, value);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// Non-JSON data is not an error envelope.
|
|
129
|
+
}
|
|
130
|
+
return frame;
|
|
131
|
+
}
|
|
132
|
+
/** Body wrappers must retain fetch metadata in addition to status and headers. */
|
|
133
|
+
export function preserveResponseMetadata(response, original) {
|
|
134
|
+
for (const key of ['url', 'type', 'redirected']) {
|
|
135
|
+
Object.defineProperty(response, key, {
|
|
136
|
+
value: original[key],
|
|
137
|
+
configurable: true,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return response;
|
|
141
|
+
}
|
|
142
|
+
/** Scrub failed HTTP diagnostics and SSE error frames, never successful content. */
|
|
143
|
+
export async function redactCredentialResponse(response, credentials, bufferedBody) {
|
|
144
|
+
const init = {
|
|
145
|
+
status: response.status,
|
|
146
|
+
statusText: response.statusText,
|
|
147
|
+
headers: new Headers(response.headers),
|
|
148
|
+
};
|
|
149
|
+
if (!response.ok) {
|
|
150
|
+
init.statusText = redactCredentialText(init.statusText, credentials);
|
|
151
|
+
let metadataChanged = init.statusText !== response.statusText;
|
|
152
|
+
for (const [key, value] of init.headers) {
|
|
153
|
+
const safe = redactCredentialText(value, credentials);
|
|
154
|
+
if (safe !== value) {
|
|
155
|
+
init.headers.set(key, safe);
|
|
156
|
+
metadataChanged = true;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
const text = bufferedBody ??
|
|
160
|
+
(response.body
|
|
161
|
+
? await response.text().catch((error) => {
|
|
162
|
+
throw redactCredentialError(error, credentials);
|
|
163
|
+
})
|
|
164
|
+
: null);
|
|
165
|
+
const redacted = text === null ? null : redactDiagnosticText(text, credentials);
|
|
166
|
+
if ((bufferedBody !== undefined || !response.body) &&
|
|
167
|
+
redacted === text &&
|
|
168
|
+
!metadataChanged)
|
|
169
|
+
return response;
|
|
170
|
+
if (response.body)
|
|
171
|
+
init.headers.delete('content-length');
|
|
172
|
+
return preserveResponseMetadata(new Response(redacted, init), response);
|
|
173
|
+
}
|
|
174
|
+
if (!response.body ||
|
|
175
|
+
!response.headers.get('content-type')?.includes('text/event-stream'))
|
|
176
|
+
return response;
|
|
177
|
+
init.headers.delete('content-length');
|
|
178
|
+
const reader = response.body.getReader();
|
|
179
|
+
const decoder = new TextDecoder();
|
|
180
|
+
const encoder = new TextEncoder();
|
|
181
|
+
let pending = '';
|
|
182
|
+
const redact = (event) => event.replace(/^data: ?([^\r\n]*)/gm, (line, data) => line.slice(0, line.length - data.length) +
|
|
183
|
+
redactCredentialFrame(data, credentials));
|
|
184
|
+
const body = new ReadableStream({
|
|
185
|
+
async pull(controller) {
|
|
186
|
+
try {
|
|
187
|
+
for (;;) {
|
|
188
|
+
const next = await reader.read();
|
|
189
|
+
pending += decoder.decode(next.value, { stream: !next.done });
|
|
190
|
+
let emitted = false;
|
|
191
|
+
for (;;) {
|
|
192
|
+
const boundary = /\r?\n\r?\n/.exec(pending);
|
|
193
|
+
if (!boundary)
|
|
194
|
+
break;
|
|
195
|
+
const end = boundary.index + boundary[0].length;
|
|
196
|
+
controller.enqueue(encoder.encode(redact(pending.slice(0, end))));
|
|
197
|
+
pending = pending.slice(end);
|
|
198
|
+
emitted = true;
|
|
199
|
+
}
|
|
200
|
+
if (next.done) {
|
|
201
|
+
if (pending)
|
|
202
|
+
controller.enqueue(encoder.encode(redact(pending)));
|
|
203
|
+
controller.close();
|
|
204
|
+
reader.releaseLock();
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (emitted)
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
reader.releaseLock();
|
|
213
|
+
controller.error(redactCredentialError(error, credentials));
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
async cancel(reason) {
|
|
217
|
+
try {
|
|
218
|
+
await reader.cancel(reason);
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
throw redactCredentialError(error, credentials);
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
reader.releaseLock();
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
});
|
|
228
|
+
return preserveResponseMetadata(new Response(body, init), response);
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=credential-redaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-redaction.js","sourceRoot":"","sources":["../src/credential-redaction.ts"],"names":[],"mappings":"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"}
|
package/dist/fetch-timeout.d.ts
CHANGED
|
@@ -17,10 +17,12 @@ export type ActiveFetchOptions = {
|
|
|
17
17
|
/**
|
|
18
18
|
* Issue an HTTP fetch with a bounded active-fetch (header) wait.
|
|
19
19
|
*
|
|
20
|
-
* The `init.signal
|
|
21
|
-
*
|
|
20
|
+
* The caller signal (`init.signal`, or the input Request's inherited signal)
|
|
21
|
+
* is forwarded into the request abort signal so cancellation still propagates,
|
|
22
|
+
* but the 15s active timeout is only enforced
|
|
22
23
|
* until `fetchImpl` resolves — once headers arrive the timeout listener is
|
|
23
24
|
* removed and the returned Response body can be streamed past the deadline.
|
|
25
|
+
* Caller forwarding remains until the body reaches EOF, errors, or is canceled.
|
|
24
26
|
*/
|
|
25
27
|
export declare function fetchWithActiveTimeout(input: RequestInfo | URL, init?: RequestInit, options?: ActiveFetchOptions): Promise<Response>;
|
|
26
28
|
//# sourceMappingURL=fetch-timeout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-timeout.d.ts","sourceRoot":"","sources":["../src/fetch-timeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"fetch-timeout.d.ts","sourceRoot":"","sources":["../src/fetch-timeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAE7C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,GAAE,WAAgB,EACtB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAkCnB"}
|
package/dist/fetch-timeout.js
CHANGED
|
@@ -9,35 +9,142 @@
|
|
|
9
9
|
* until the underlying fetch resolves, then drops the timeout listener so
|
|
10
10
|
* the body remains consumable.
|
|
11
11
|
*/
|
|
12
|
+
import { forwardAbort } from "./abort-forwarding.js";
|
|
12
13
|
export const ACTIVE_FETCH_TIMEOUT_MS = 15_000;
|
|
13
14
|
/**
|
|
14
15
|
* Issue an HTTP fetch with a bounded active-fetch (header) wait.
|
|
15
16
|
*
|
|
16
|
-
* The `init.signal
|
|
17
|
-
*
|
|
17
|
+
* The caller signal (`init.signal`, or the input Request's inherited signal)
|
|
18
|
+
* is forwarded into the request abort signal so cancellation still propagates,
|
|
19
|
+
* but the 15s active timeout is only enforced
|
|
18
20
|
* until `fetchImpl` resolves — once headers arrive the timeout listener is
|
|
19
21
|
* removed and the returned Response body can be streamed past the deadline.
|
|
22
|
+
* Caller forwarding remains until the body reaches EOF, errors, or is canceled.
|
|
20
23
|
*/
|
|
21
24
|
export async function fetchWithActiveTimeout(input, init = {}, options = {}) {
|
|
22
25
|
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
23
26
|
const timeoutMs = options.timeoutMs ?? ACTIVE_FETCH_TIMEOUT_MS;
|
|
24
|
-
const
|
|
27
|
+
const callerSignal = init.signal !== undefined
|
|
28
|
+
? init.signal
|
|
29
|
+
: input instanceof Request
|
|
30
|
+
? input.signal
|
|
31
|
+
: undefined;
|
|
25
32
|
const activeController = new AbortController();
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
33
|
+
const detachCaller = forwardAbort(callerSignal, activeController);
|
|
34
|
+
let detachTimeout = () => { };
|
|
35
|
+
try {
|
|
36
|
+
detachTimeout = forwardAbort(AbortSignal.timeout(timeoutMs), activeController);
|
|
37
|
+
const response = await fetchImpl(input, {
|
|
38
|
+
...init,
|
|
39
|
+
signal: activeController.signal,
|
|
40
|
+
});
|
|
41
|
+
if (!callerSignal || !response.body) {
|
|
42
|
+
detachCaller();
|
|
43
|
+
return response;
|
|
44
|
+
}
|
|
45
|
+
return withBodyCleanup(response, detachCaller);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
detachCaller();
|
|
49
|
+
throw error;
|
|
29
50
|
}
|
|
30
|
-
|
|
31
|
-
|
|
51
|
+
finally {
|
|
52
|
+
detachTimeout();
|
|
32
53
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
54
|
+
}
|
|
55
|
+
function withBodyCleanup(response, cleanup) {
|
|
56
|
+
const reader = response.body.getReader();
|
|
57
|
+
let finished = false;
|
|
58
|
+
let canceled = false;
|
|
59
|
+
let pulling = false;
|
|
60
|
+
let sourceClosed = false;
|
|
61
|
+
let bodyController;
|
|
62
|
+
const finish = () => {
|
|
63
|
+
if (finished)
|
|
64
|
+
return;
|
|
65
|
+
finished = true;
|
|
66
|
+
cleanup();
|
|
67
|
+
reader.releaseLock();
|
|
68
|
+
};
|
|
69
|
+
const body = new ReadableStream({
|
|
70
|
+
start(controller) {
|
|
71
|
+
bodyController = controller;
|
|
72
|
+
},
|
|
73
|
+
async pull(controller) {
|
|
74
|
+
pulling = true;
|
|
75
|
+
try {
|
|
76
|
+
const next = await reader.read();
|
|
77
|
+
if (canceled)
|
|
78
|
+
return;
|
|
79
|
+
if (next.done) {
|
|
80
|
+
finish();
|
|
81
|
+
controller.close();
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
controller.enqueue(next.value);
|
|
85
|
+
if (sourceClosed) {
|
|
86
|
+
finish();
|
|
87
|
+
controller.close();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
if (canceled)
|
|
93
|
+
return;
|
|
94
|
+
finish();
|
|
95
|
+
controller.error(error);
|
|
96
|
+
}
|
|
97
|
+
finally {
|
|
98
|
+
pulling = false;
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
async cancel(reason) {
|
|
102
|
+
canceled = true;
|
|
103
|
+
try {
|
|
104
|
+
await reader.cancel(reason);
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
finish();
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
// Do not read ahead: the caller controls consumption of the network body.
|
|
112
|
+
{ highWaterMark: 0 });
|
|
113
|
+
// Observe idle errors/empty EOF without reading ahead or dropping a final chunk.
|
|
114
|
+
void reader.closed.then(() => {
|
|
115
|
+
sourceClosed = true;
|
|
116
|
+
if (finished || canceled || pulling)
|
|
117
|
+
return;
|
|
118
|
+
finish();
|
|
119
|
+
bodyController.close();
|
|
120
|
+
}, (error) => {
|
|
121
|
+
if (finished || canceled)
|
|
122
|
+
return;
|
|
123
|
+
finish();
|
|
124
|
+
bodyController.error(error);
|
|
125
|
+
});
|
|
36
126
|
try {
|
|
37
|
-
return
|
|
127
|
+
return preserveResponseMetadata(new Response(body, {
|
|
128
|
+
status: response.status,
|
|
129
|
+
statusText: response.statusText,
|
|
130
|
+
headers: response.headers,
|
|
131
|
+
}), response);
|
|
38
132
|
}
|
|
39
|
-
|
|
40
|
-
|
|
133
|
+
catch (error) {
|
|
134
|
+
finish();
|
|
135
|
+
throw error;
|
|
41
136
|
}
|
|
42
137
|
}
|
|
138
|
+
function preserveResponseMetadata(wrapped, original) {
|
|
139
|
+
// Response's constructor cannot carry network metadata, including on clones.
|
|
140
|
+
Object.defineProperties(wrapped, {
|
|
141
|
+
url: { value: original.url },
|
|
142
|
+
type: { value: original.type },
|
|
143
|
+
redirected: { value: original.redirected },
|
|
144
|
+
clone: {
|
|
145
|
+
value: () => preserveResponseMetadata(Response.prototype.clone.call(wrapped), original),
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
return wrapped;
|
|
149
|
+
}
|
|
43
150
|
//# sourceMappingURL=fetch-timeout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-timeout.js","sourceRoot":"","sources":["../src/fetch-timeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAO7C
|
|
1
|
+
{"version":3,"file":"fetch-timeout.js","sourceRoot":"","sources":["../src/fetch-timeout.ts"],"names":[],"mappings":"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"}
|
package/dist/fingerprint.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Device Fingerprint Generator for Rate Limit Mitigation
|
|
3
3
|
*
|
|
4
|
-
* Uses the agy CLI 1.
|
|
4
|
+
* Uses the agy CLI 1.3.3 content-request identity captured with mitmproxy:
|
|
5
5
|
* an Antigravity CLI User-Agent with explicit client, OS, architecture, and auth metadata.
|
|
6
6
|
* The stored deviceId/sessionToken fields are
|
|
7
7
|
* retained for account history, but content requests only send User-Agent.
|
|
8
8
|
*/
|
|
9
|
-
export declare const AGY_CLI_VERSION = "1.
|
|
10
|
-
export declare const AGY_CLI_CHANGE_LIST = "
|
|
9
|
+
export declare const AGY_CLI_VERSION = "1.3.3";
|
|
10
|
+
export declare const AGY_CLI_CHANGE_LIST = "996823801";
|
|
11
11
|
export interface ClientMetadata {
|
|
12
12
|
ideType: string;
|
|
13
13
|
platform: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,eAAO,MAAM,eAAe,UAAU,CAAA;AACtC,eAAO,MAAM,mBAAmB,cAAc,CAAA;AAG9C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,cAAc,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;CAClB;AACD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,CAAA;CAC/C;AAED,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAA;CACrB;AAiBD,wBAAgB,mCAAmC,CACjD,QAAQ,kBAAmB,EAC3B,IAAI,sBAAe,GAClB,MAAM,CAER;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,SAAkB,EACzB,QAAQ,kBAAmB,EAC3B,IAAI,sBAAe,EACnB,UAAU,SAAa,GACtB,MAAM,CAMR;AAED,wBAAgB,8CAA8C,CAC5D,OAAO,SAAkB,GACxB,MAAM,CAER;AAQD,wBAAgB,sCAAsC,IAAI,MAAM,CAC9D,MAAM,EACN,MAAM,CACP,CAEA;AAED,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAUD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,CAajD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,WAAW,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAQ1E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,GAAG,IAAI,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAQ7B;AAQD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,CAKnD;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,WAAW,CAG1D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
|
package/dist/fingerprint.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Device Fingerprint Generator for Rate Limit Mitigation
|
|
3
3
|
*
|
|
4
|
-
* Uses the agy CLI 1.
|
|
4
|
+
* Uses the agy CLI 1.3.3 content-request identity captured with mitmproxy:
|
|
5
5
|
* an Antigravity CLI User-Agent with explicit client, OS, architecture, and auth metadata.
|
|
6
6
|
* The stored deviceId/sessionToken fields are
|
|
7
7
|
* retained for account history, but content requests only send User-Agent.
|
|
8
8
|
*/
|
|
9
9
|
import * as crypto from 'node:crypto';
|
|
10
|
-
export const AGY_CLI_VERSION = '1.
|
|
11
|
-
export const AGY_CLI_CHANGE_LIST = '
|
|
10
|
+
export const AGY_CLI_VERSION = '1.3.3';
|
|
11
|
+
export const AGY_CLI_CHANGE_LIST = '996823801';
|
|
12
12
|
const ANTIGRAVITY_API_CLIENT = 'antigravity-cli';
|
|
13
13
|
/** Maximum number of fingerprint versions to keep per account */
|
|
14
14
|
export const MAX_FINGERPRINT_HISTORY = 5;
|
|
@@ -104,7 +104,7 @@ export function buildFingerprintHeaders(fingerprint) {
|
|
|
104
104
|
return {};
|
|
105
105
|
}
|
|
106
106
|
return {
|
|
107
|
-
'User-Agent':
|
|
107
|
+
'User-Agent': buildAntigravityHarnessUserAgent(),
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
110
|
/**
|
package/dist/fingerprint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,MAAM,CAAC,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"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"}
|