clearcote 0.28.0 → 0.29.0

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.
Files changed (45) hide show
  1. package/README.md +48 -1
  2. package/dist/clearcote-cli.d.ts +3 -0
  3. package/dist/clearcote-cli.d.ts.map +1 -0
  4. package/dist/clearcote-cli.js +9 -0
  5. package/dist/clearcote-cli.js.map +1 -0
  6. package/dist/cli-commands.d.ts +62 -0
  7. package/dist/cli-commands.d.ts.map +1 -0
  8. package/dist/cli-commands.js +333 -0
  9. package/dist/cli-commands.js.map +1 -0
  10. package/dist/download.d.ts +28 -0
  11. package/dist/download.d.ts.map +1 -1
  12. package/dist/download.js +56 -6
  13. package/dist/download.js.map +1 -1
  14. package/dist/fingerprint.d.ts +16 -0
  15. package/dist/fingerprint.d.ts.map +1 -1
  16. package/dist/fingerprint.js +37 -0
  17. package/dist/fingerprint.js.map +1 -1
  18. package/dist/geoip.d.ts +37 -1
  19. package/dist/geoip.d.ts.map +1 -1
  20. package/dist/geoip.js +90 -68
  21. package/dist/geoip.js.map +1 -1
  22. package/dist/index.d.ts +44 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +102 -41
  25. package/dist/index.js.map +1 -1
  26. package/dist/launchopts.d.ts +44 -0
  27. package/dist/launchopts.d.ts.map +1 -1
  28. package/dist/launchopts.js +78 -0
  29. package/dist/launchopts.js.map +1 -1
  30. package/dist/license.d.ts +59 -3
  31. package/dist/license.d.ts.map +1 -1
  32. package/dist/license.js +286 -25
  33. package/dist/license.js.map +1 -1
  34. package/dist/multiplex.d.ts +111 -0
  35. package/dist/multiplex.d.ts.map +1 -0
  36. package/dist/multiplex.js +536 -0
  37. package/dist/multiplex.js.map +1 -0
  38. package/dist/net.d.ts +36 -0
  39. package/dist/net.d.ts.map +1 -0
  40. package/dist/net.js +278 -0
  41. package/dist/net.js.map +1 -0
  42. package/dist/warnings.d.ts.map +1 -1
  43. package/dist/warnings.js +16 -0
  44. package/dist/warnings.js.map +1 -1
  45. package/package.json +3 -2
package/dist/geoip.js CHANGED
@@ -6,9 +6,11 @@
6
6
  // (direct geo through the proxy) if the DB can't be fetched/opened.
7
7
  //
8
8
  // The .mmdb (GPL-3.0 data) is downloaded + cached on first use (≈52 MB zip → ≈120 MB), NOT bundled.
9
- // http(s) proxies only for the lookup; SOCKS is skipped (we never fall back to the local IP under a
10
- // proxy, which would give the wrong region).
11
- import http from "node:http";
9
+ // The exit-IP and ip-api lookups go THROUGH the proxy (HTTP or SOCKS5, see ./net.ts); we never fall
10
+ // back to the local IP under a proxy, which would give the wrong region.
11
+ //
12
+ // Budget: CLEARCOTE_GEOIP_TIMEOUT_SECONDS (default 20) bounds the whole resolution. A lookup that
13
+ // runs out of budget fails rather than hanging a launch.
12
14
  import { createWriteStream, existsSync, mkdirSync, readdirSync, rmSync, statSync } from "node:fs";
13
15
  import os from "node:os";
14
16
  import path from "node:path";
@@ -16,6 +18,7 @@ import { Readable } from "node:stream";
16
18
  import { pipeline } from "node:stream/promises";
17
19
  import extract from "extract-zip";
18
20
  import maxmind from "maxmind";
21
+ import { proxiedRequest, toProxySpec } from "./net.js";
19
22
  const MMDB_URL = "https://github.com/daijro/geoip-all-in-one/releases/latest/download/geoip-aio-all.mmdb.zip";
20
23
  const MMDB_MAX_AGE_DAYS = 30;
21
24
  const IPECHO_URLS = ["http://api.ipify.org", "http://ip-api.com/line/?fields=query"];
@@ -24,7 +27,8 @@ function log(quiet, m) {
24
27
  if (!quiet)
25
28
  process.stderr.write(`[clearcote] ${m}\n`);
26
29
  }
27
- function geoCacheRoot() {
30
+ /** Where the geoip database is cached (CLEARCOTE_CACHE/geoip when set). */
31
+ export function geoCacheRoot() {
28
32
  if (process.env.CLEARCOTE_CACHE)
29
33
  return path.join(process.env.CLEARCOTE_CACHE, "geoip");
30
34
  if (process.platform === "win32")
@@ -33,63 +37,31 @@ function geoCacheRoot() {
33
37
  return path.join(os.homedir(), "Library", "Caches", "clearcote", "geoip");
34
38
  return path.join(process.env.XDG_CACHE_HOME || path.join(os.homedir(), ".cache"), "clearcote", "geoip");
35
39
  }
36
- function proxyUrl(proxy) {
37
- if (!proxy?.server)
38
- return null;
39
- let server = proxy.server;
40
- if (!/:\/\//.test(server))
41
- server = "http://" + server;
42
- if (proxy.username) {
43
- const u = new URL(server);
44
- u.username = encodeURIComponent(proxy.username);
45
- if (proxy.password)
46
- u.password = encodeURIComponent(proxy.password);
47
- return u.toString();
48
- }
49
- return server;
40
+ /** Whole-resolution budget in ms: CLEARCOTE_GEOIP_TIMEOUT_SECONDS (seconds, > 0), default 20s. */
41
+ export function geoipTimeoutMs(env = process.env) {
42
+ const raw = (env.CLEARCOTE_GEOIP_TIMEOUT_SECONDS ?? "").trim();
43
+ const n = Number(raw);
44
+ return raw && Number.isFinite(n) && n > 0 ? Math.round(n * 1000) : 20_000;
50
45
  }
51
- function isSocks(proxy) {
52
- return !!proxy?.server && /^socks/i.test(proxy.server);
53
- }
54
- // GET an http:// URL, optionally through an http proxy (absolute-form request target). Text body.
55
- function httpGetText(targetUrl, proxy, timeoutMs) {
56
- return new Promise((resolve, reject) => {
57
- const t = new URL(targetUrl);
58
- let opts;
59
- if (proxy) {
60
- const p = new URL(proxy);
61
- opts = { host: p.hostname, port: p.port || 80, path: targetUrl, timeout: timeoutMs,
62
- headers: { Host: t.host, "User-Agent": "clearcote-sdk", Accept: "*/*" } };
63
- if (p.username) {
64
- const cred = Buffer.from(`${decodeURIComponent(p.username)}:${decodeURIComponent(p.password)}`).toString("base64");
65
- opts.headers["Proxy-Authorization"] = `Basic ${cred}`;
66
- }
67
- }
68
- else {
69
- opts = { host: t.hostname, port: t.port || 80, path: t.pathname + t.search, timeout: timeoutMs,
70
- headers: { Host: t.host, "User-Agent": "clearcote-sdk", Accept: "*/*" } };
71
- }
72
- const req = http.request(opts, (res) => {
73
- let data = "";
74
- res.setEncoding("utf8");
75
- res.on("data", (c) => (data += c));
76
- res.on("end", () => resolve(data.trim()));
77
- });
78
- req.on("error", reject);
79
- req.on("timeout", () => req.destroy(new Error("timed out")));
80
- req.end();
81
- });
46
+ async function getText(url, proxy, timeoutMs) {
47
+ const res = await proxiedRequest(url, { proxy, timeoutMs: Math.max(1, timeoutMs) });
48
+ if (!res.ok)
49
+ throw new Error(`HTTP ${res.status}`);
50
+ return (await res.text()).trim();
82
51
  }
83
52
  const IPV4 = /^(?:\d{1,3}\.){3}\d{1,3}$/;
84
53
  const IPV6 = /^[0-9a-f:]+$/i;
85
54
  function looksLikeIp(s) {
86
55
  return IPV4.test(s) || (s.includes(":") && IPV6.test(s));
87
56
  }
88
- /** Discover the egress IP via an IP-echo through the proxy (or direct). */
89
- async function exitIp(proxy, quiet) {
57
+ /** Discover the egress IP via an IP-echo through the proxy (or direct), within `deadline`. */
58
+ async function exitIp(proxy, deadline, quiet) {
90
59
  for (const url of IPECHO_URLS) {
60
+ const left = deadline - Date.now();
61
+ if (left <= 0)
62
+ break;
91
63
  try {
92
- const ip = (await httpGetText(url, proxy, 8000)).split(/\s+/)[0];
64
+ const ip = (await getText(url, proxy, Math.min(left, 8000))).split(/\s+/)[0];
93
65
  if (looksLikeIp(ip))
94
66
  return ip;
95
67
  }
@@ -160,8 +132,19 @@ function findMmdb(dir) {
160
132
  return null;
161
133
  }
162
134
  let _reader = null;
163
- async function mmdbLookup(ip, quiet) {
164
- const file = await ensureMmdb(quiet);
135
+ async function mmdbLookup(ip, deadline, quiet) {
136
+ // The first-run database download (~52 MB) may outlast the budget. It keeps going in the
137
+ // background and caches for the next launch; this launch falls back to ip-api instead of waiting.
138
+ const left = deadline - Date.now();
139
+ if (left <= 0)
140
+ return null;
141
+ let timer;
142
+ const file = await Promise.race([
143
+ ensureMmdb(quiet),
144
+ new Promise((resolve) => { timer = setTimeout(() => resolve(null), left); }),
145
+ ]);
146
+ if (timer)
147
+ clearTimeout(timer);
165
148
  if (!file)
166
149
  return null;
167
150
  try {
@@ -190,9 +173,12 @@ async function mmdbLookup(ip, quiet) {
190
173
  }
191
174
  }
192
175
  // Fallback: ip-api.com returns geo directly (through the proxy), no DB needed.
193
- async function ipApiFallback(proxy, quiet) {
176
+ async function ipApiFallback(proxy, deadline) {
177
+ const left = deadline - Date.now();
178
+ if (left <= 0)
179
+ return null;
194
180
  try {
195
- const txt = await httpGetText(IPAPI_URL, proxy, 8000);
181
+ const txt = await getText(IPAPI_URL, proxy, Math.min(left, 8000));
196
182
  const j = JSON.parse(txt);
197
183
  if (j?.status !== "success")
198
184
  return null;
@@ -209,22 +195,44 @@ async function ipApiFallback(proxy, quiet) {
209
195
  }
210
196
  }
211
197
  /**
212
- * Resolve geo for the egress (through `proxy` if given, else direct). Never throws — returns null
213
- * on failure. Uses the geoip-all-in-one offline DB first, ip-api.com as a fallback.
198
+ * Resolve geo for the egress (through `proxy` if given — HTTP or SOCKS5 — else direct), reporting
199
+ * why it failed. Never throws. Bounded by `timeoutMs` (default {@link geoipTimeoutMs}).
214
200
  */
215
- export async function resolveGeo(proxy, opts = {}) {
216
- if (isSocks(proxy)) {
217
- log(opts.quiet, "geoip: SOCKS proxy can't be used for the geo lookup — set timezone/acceptLanguage explicitly. Skipping.");
218
- return null;
201
+ export async function resolveGeoDetailed(proxy, opts = {}) {
202
+ const started = Date.now();
203
+ const budget = opts.timeoutMs ?? geoipTimeoutMs();
204
+ const deadline = started + budget;
205
+ let spec;
206
+ try {
207
+ spec = toProxySpec(proxy ?? null);
219
208
  }
220
- const purl = proxyUrl(proxy);
221
- const ip = await exitIp(purl, opts.quiet);
222
- let geo = ip ? await mmdbLookup(ip, opts.quiet) : null;
209
+ catch (e) {
210
+ return { geo: null, reason: `invalid proxy (${e.message})`, elapsedMs: Date.now() - started };
211
+ }
212
+ const ip = await exitIp(spec, deadline, opts.quiet);
213
+ let geo = ip ? await mmdbLookup(ip, deadline, opts.quiet) : null;
223
214
  if (!geo)
224
- geo = await ipApiFallback(purl, opts.quiet);
225
- if (geo)
215
+ geo = await ipApiFallback(spec, deadline);
216
+ const elapsedMs = Date.now() - started;
217
+ if (geo && geo.timezone) {
226
218
  log(opts.quiet, `geoip: ${geo.ip} -> ${geo.country} tz=${geo.timezone} lang=${geo.acceptLanguage}`);
227
- return geo;
219
+ return { geo, elapsedMs };
220
+ }
221
+ const reason = Date.now() >= deadline
222
+ ? `timed out after ${Math.round(budget / 1000)}s (CLEARCOTE_GEOIP_TIMEOUT_SECONDS)`
223
+ : !ip
224
+ ? `could not determine the exit IP${spec ? " through the proxy" : ""}`
225
+ : geo
226
+ ? `no timezone for exit IP ${ip}`
227
+ : `no geo data for exit IP ${ip}`;
228
+ return { geo, reason, elapsedMs };
229
+ }
230
+ /**
231
+ * Resolve geo for the egress (through `proxy` if given, else direct). Never throws — returns null
232
+ * on failure. Uses the geoip-all-in-one offline DB first, ip-api.com as a fallback.
233
+ */
234
+ export async function resolveGeo(proxy, opts = {}) {
235
+ return (await resolveGeoDetailed(proxy, opts)).geo;
228
236
  }
229
237
  // country (ISO-3166 alpha-2) -> Accept-Language. Plain comma list (NO ;q= weights — Chromium's
230
238
  // --accept-lang adds those). The geoip DB has no language data, so this maps the resolved country.
@@ -249,4 +257,18 @@ export function acceptLanguageForCountry(cc) {
249
257
  return "en-US,en";
250
258
  return COUNTRY_LANG[cc.toUpperCase()] || "en-US,en";
251
259
  }
260
+ /**
261
+ * Thrown by launch() when `geoip: true` was requested and the region could not be resolved.
262
+ *
263
+ * Failing closed is the point: continuing would launch with the host's clock and a default
264
+ * language — UTC + en-US on most servers — which is exactly the mismatch geoip exists to prevent.
265
+ * Pass an explicit `timezone` AND `acceptLanguage` to launch anyway when the lookup is unavailable.
266
+ */
267
+ export class GeoipError extends Error {
268
+ code = "GEOIP_UNRESOLVED";
269
+ constructor(message) {
270
+ super(message);
271
+ this.name = "GeoipError";
272
+ }
273
+ }
252
274
  //# sourceMappingURL=geoip.js.map
package/dist/geoip.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"geoip.js","sourceRoot":"","sources":["../src/geoip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geoip.js","sourceRoot":"","sources":["../src/geoip.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,7 +13,12 @@ export type { FingerprintOptions } from "./fingerprint.js";
13
13
  export type { DownloadOptions } from "./download.js";
14
14
  export { proEnsureBinary, type ProDownloadOptions } from "./download.js";
15
15
  export { checkInstall, verifyInstall } from "./download.js";
16
- export { resolveGeo, type Geo } from "./geoip.js";
16
+ export { resolveGeo, resolveGeoDetailed, geoipTimeoutMs, GeoipError, type Geo, type GeoResult } from "./geoip.js";
17
+ export { proxiedRequest, toProxySpec, type ProxySpec } from "./net.js";
18
+ export { resolveReleaseChannel, type ReleaseChannel } from "./download.js";
19
+ export { isFingerprintPassthrough } from "./fingerprint.js";
20
+ export { DEFAULT_IGNORED_ARGS, gpuBlocklistArgs, gateEngineSwitches, engineSupportsSwitch } from "./launchopts.js";
21
+ export { serveMultiplex, type MultiplexOptions, type MultiplexServer } from "./multiplex.js";
17
22
  export type { HumanizeOptions } from "./humanize.js";
18
23
  export { Profile, listProfiles, loadProfile, PROFILE_DIR, type ProfileOptions } from "./profile.js";
19
24
  export { selectProfile, scoreProfile, eligible, gpuVendorClass, defaultStickyKey, DEFAULT_MAX_ENCODED, type HostFacts, type ProfileIndexEntry, type SelectMode, type SelectOptions, type Selection, } from "./profilelib.js";
@@ -24,7 +29,7 @@ export { runAgentTask, agentArgs, OPENROUTER_BASE_URL, type AgentOptions, type A
24
29
  export { RELEASE } from "./release.js";
25
30
  export { fetchWidevine, seedWidevine } from "./widevine.js";
26
31
  export { checkRenderCoherence, type RenderVerdict } from "./render.js";
27
- export { resolveLicenseKey, acquireLease, LicenseError, ConcurrencyLimitError, LicenseRevokedError, type LicenseOptions, type LeaseSession, } from "./license.js";
32
+ export { resolveLicenseKey, acquireLease, getSessionSeats, saveLicenseKey, removeLicenseKey, licenseKeySource, licenseKeyPath, type SessionSeats, LicenseError, ConcurrencyLimitError, LicenseRevokedError, type LicenseOptions, type LeaseSession, } from "./license.js";
28
33
  /** When true (and a proxy is set), resolve the proxy's exit-IP geo and auto-fill any unset
29
34
  * `timezone` + `acceptLanguage` (+ `location`) so they match the proxy region. */
30
35
  interface GeoipOption {
@@ -88,6 +93,21 @@ interface ShaderDialectOption {
88
93
  * dialect. Turn it on if you hit this specific check. Needs a PRO engine 151 r15+. */
89
94
  shaderDialect?: ShaderDialect;
90
95
  }
96
+ /** Engine behaviour switches that are not part of the persona (engine 152 r22+). */
97
+ interface EngineExtrasOption {
98
+ /**
99
+ * Allow third-party cookies, as stock Chrome does. The de-Googled base blocks them by default,
100
+ * which breaks embedded flows that rely on them: reCAPTCHA, SSO sign-in, payment challenges.
101
+ * Default off (unchanged behaviour).
102
+ */
103
+ allowThirdPartyCookies?: boolean;
104
+ /**
105
+ * Hide proxy use from origins and pages: send `Connection` instead of `Proxy-Connection` on
106
+ * plain-HTTP requests through an HTTP proxy, and report proxied connection timing the way a reused
107
+ * connection reports it (no proxy-shaped DNS/connect/TLS durations). Requires a proxy.
108
+ */
109
+ transparentProxy?: boolean;
110
+ }
91
111
  /** Opt-in SOCKS5 UDP relaying (see {@link socks5UdpArgs}). */
92
112
  interface Socks5UdpOption {
93
113
  /** Relay WebRTC's UDP through the SOCKS5 proxy using UDP ASSOCIATE, instead of letting it egress
@@ -102,10 +122,10 @@ interface Socks5UdpOption {
102
122
  socks5Udp?: boolean;
103
123
  }
104
124
  /** Options for {@link launch}: Playwright launch options + Clearcote fingerprint + agent + download options. */
105
- export interface LaunchOptions extends PlaywrightLaunchOptions, FingerprintOptions, AgentOptions, GeoipOption, ProfileOption, ExtensionsOption, EphemeralProfileOption, HumanizeOptions, DownloadOptions, LicenseOptions, ShaderDialectOption, Socks5UdpOption {
125
+ export interface LaunchOptions extends PlaywrightLaunchOptions, FingerprintOptions, AgentOptions, GeoipOption, ProfileOption, ExtensionsOption, EphemeralProfileOption, HumanizeOptions, DownloadOptions, LicenseOptions, ShaderDialectOption, Socks5UdpOption, EngineExtrasOption {
106
126
  }
107
127
  /** Options for {@link launchPersistentContext}. */
108
- export interface PersistentContextOptions extends PlaywrightLaunchOptions, BrowserContextOptions, FingerprintOptions, AgentOptions, GeoipOption, ProfileOption, ExtensionsOption, HumanizeOptions, DownloadOptions, LicenseOptions, ShaderDialectOption, Socks5UdpOption {
128
+ export interface PersistentContextOptions extends PlaywrightLaunchOptions, BrowserContextOptions, FingerprintOptions, AgentOptions, GeoipOption, ProfileOption, ExtensionsOption, HumanizeOptions, DownloadOptions, LicenseOptions, ShaderDialectOption, Socks5UdpOption, EngineExtrasOption {
109
129
  /**
110
130
  * Seed + enable the opt-in Widevine CDM in this profile so DRM/EME works
111
131
  * (`requestMediaKeySystemAccess('com.widevine.alpha')` resolves) and the EME surface matches a
@@ -114,6 +134,15 @@ export interface PersistentContextOptions extends PlaywrightLaunchOptions, Brows
114
134
  */
115
135
  widevine?: boolean;
116
136
  }
137
+ /**
138
+ * Fill unset timezone/acceptLanguage/location/webrtcIp on `fp` from the proxy's exit-IP geo.
139
+ *
140
+ * FAILS CLOSED: if the region cannot be resolved, the launch throws {@link GeoipError} instead of
141
+ * continuing on the host's clock and a default language (UTC + en-US on most servers) — the exact
142
+ * mismatch geoip exists to prevent. A caller who set BOTH `timezone` and `acceptLanguage`
143
+ * explicitly still launches (with a warning), since nothing geoip would fill is missing.
144
+ */
145
+ export declare function applyGeoip(fp: FingerprintOptions, proxy: unknown, quiet?: boolean): Promise<void>;
117
146
  /**
118
147
  * Resolve the Clearcote chrome.exe path, downloading + verifying it if needed.
119
148
  * Order: explicit `executablePath` > `CLEARCOTE_BINARY` env > PRO (when licensed) > free auto-download.
@@ -124,6 +153,7 @@ export interface PersistentContextOptions extends PlaywrightLaunchOptions, Brows
124
153
  export declare function executablePath(options?: {
125
154
  executablePath?: string;
126
155
  version?: string;
156
+ releaseChannel?: string;
127
157
  pro?: {
128
158
  licenseKey: string;
129
159
  licenseApiBase?: string;
@@ -137,6 +167,7 @@ export declare function download(options?: DownloadOptions & {
137
167
  version?: string;
138
168
  licenseKey?: string;
139
169
  licenseApiBase?: string;
170
+ releaseChannel?: string;
140
171
  }): Promise<string>;
141
172
  export declare function isWinLaunchRace(err: unknown): boolean;
142
173
  /**
@@ -163,6 +194,11 @@ export declare function winAvRetry<T>(doLaunch: (exe: string) => Promise<T>, exe
163
194
  * and no state survives to the next launch — the incognito-like isolation callers relied on is
164
195
  * preserved. Pass `userDataDir` to keep a profile, or `ephemeralProfile: false` to opt back out.
165
196
  */
197
+ /**
198
+ * Start a browser; if it fails to start, release the lease before re-throwing. On a per-browser plan
199
+ * (the free tier) the slot would otherwise stay taken until the lease TTL. Exported for tests.
200
+ */
201
+ export declare function releaseLeaseOnFailure<T>(lease: LeaseSession | null, start: () => Promise<T>): Promise<T>;
166
202
  export declare function launch(options?: LaunchOptions): Promise<Browser>;
167
203
  /**
168
204
  * Launch Clearcote with a persistent profile directory and return a Playwright
@@ -219,6 +255,8 @@ export declare class Server {
219
255
  get cdpUrl(): string;
220
256
  /** The browser-level WebSocket URL (for clients that want `connect({ browserWSEndpoint })`). */
221
257
  wsUrl(): Promise<string | undefined>;
258
+ /** OS process id of the browser, when running. */
259
+ get pid(): number | undefined;
222
260
  isAlive(): boolean;
223
261
  close(): Promise<void>;
224
262
  }
@@ -239,6 +277,8 @@ export declare class Server {
239
277
  * to the page; the port binds to loopback with an origin allowlist; attaching over CDP adds no
240
278
  * launch flags, so the served persona is preserved end to end.
241
279
  */
280
+ /** serve() as root on Linux needs --no-sandbox (unless the caller already passed it). */
281
+ export declare function serveNeedsNoSandbox(platform: string, uid: number | undefined, args: string[]): boolean;
242
282
  export declare function serve(options?: ServeOptions): Promise<Server>;
243
283
  import { runAgentTask } from "./agent.js";
244
284
  import { listProfiles, loadProfile } from "./profile.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}