clearcote 0.28.1 → 0.30.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.
package/dist/license.js CHANGED
@@ -8,13 +8,20 @@
8
8
  //
9
9
  // With NO license key this is entirely inert — the free build never calls the
10
10
  // backend and never gates. See clearcoat/PRIVATE-SDK-LICENSING-PLAN.md.
11
- import { existsSync, readFileSync, mkdirSync, writeFileSync } from "node:fs";
12
- import { homedir } from "node:os";
11
+ import { existsSync, readFileSync, mkdirSync, writeFileSync, rmSync, chmodSync } from "node:fs";
12
+ import { homedir, tmpdir } from "node:os";
13
13
  import { join } from "node:path";
14
14
  import { createHash, randomUUID } from "node:crypto";
15
+ import { proxiedRequest, toProxySpec } from "./net.js";
15
16
  /** Default backend. Override with `licenseApiBase` or CLEARCOTE_LICENSE_API. */
16
17
  const DEFAULT_API_BASE = "https://www.clearcotelabs.com";
17
18
  const RUN_TOKEN_ENV = "CLEARCOTE_RUN_TOKEN";
19
+ /** Whether licence calls should use the launch proxy: explicit option, else the env switch. */
20
+ export function licenseThroughProxyRequested(opt, env = process.env) {
21
+ if (opt !== undefined)
22
+ return opt;
23
+ return /^(1|true|yes|on)$/i.test((env.CLEARCOTE_LICENSE_THROUGH_PROXY ?? "").trim());
24
+ }
18
25
  export class LicenseError extends Error {
19
26
  code;
20
27
  constructor(message, code = "LICENSE_ERROR") {
@@ -100,14 +107,32 @@ function cachePath(licenseKey) {
100
107
  function readCache(licenseKey) {
101
108
  try {
102
109
  const d = JSON.parse(readFileSync(cachePath(licenseKey), "utf8"));
103
- if (d && typeof d.token === "string" && typeof d.exp === "number")
110
+ if (d && typeof d.token === "string" && typeof d.exp === "number") {
111
+ // A per-browser (free-tier) token belongs to the one browser it was checked out for. Reusing it
112
+ // would start another browser without a slot, so it is never taken from the cache, even one an
113
+ // older SDK wrote. Paid tokens are reused exactly as before.
114
+ if (tokenPlan(d.token) === PER_BROWSER_PLAN)
115
+ return null;
104
116
  return d;
117
+ }
105
118
  }
106
119
  catch {
107
120
  /* ignore */
108
121
  }
109
122
  return null;
110
123
  }
124
+ /** The plan a run-token was minted for, read from its payload WITHOUT verifying it (routing only). */
125
+ export function tokenPlan(token) {
126
+ try {
127
+ const body = token.split(".")[0] ?? "";
128
+ const json = Buffer.from(body.replace(/-/g, "+").replace(/_/g, "/"), "base64").toString("utf8");
129
+ const plan = JSON.parse(json).plan;
130
+ return typeof plan === "string" ? plan : undefined;
131
+ }
132
+ catch {
133
+ return undefined;
134
+ }
135
+ }
111
136
  function writeCache(licenseKey, token, exp, leaseId) {
112
137
  try {
113
138
  const dir = join(homedir(), ".clearcote");
@@ -118,12 +143,23 @@ function writeCache(licenseKey, token, exp, leaseId) {
118
143
  /* ignore */
119
144
  }
120
145
  }
121
- async function postJson(url, licenseKey, body) {
122
- return fetch(url, {
146
+ /** The plan whose tokens are per browser. Only used to keep such tokens out of the shared cache. */
147
+ const PER_BROWSER_PLAN = "free";
148
+ /** One id per browser launch: the backend counts every launch_id as its own slot on per-browser plans. */
149
+ export function newLaunchId() {
150
+ return randomUUID().replace(/-/g, "");
151
+ }
152
+ async function postJson(url, licenseKey, body, proxy) {
153
+ const init = {
123
154
  method: "POST",
124
155
  headers: { authorization: `Bearer ${licenseKey}`, "content-type": "application/json" },
125
156
  body: JSON.stringify(body),
126
- });
157
+ };
158
+ // Through the launch proxy when licenseThroughProxy is on; otherwise the plain fetch path, which
159
+ // is unchanged from before the option existed.
160
+ if (proxy)
161
+ return proxiedRequest(url, { ...init, proxy, timeoutMs: 30_000 });
162
+ return fetch(url, init);
127
163
  }
128
164
  function throwForStatus(status, body) {
129
165
  const msg = body?.error || `License request failed (${status}).`;
@@ -136,6 +172,53 @@ function throwForStatus(status, body) {
136
172
  // Seconds of headroom kept before a token's exp: reuse it only while still valid
137
173
  // with this much slack, so an in-flight launch never ships an expiring token.
138
174
  const SKEW_SEC = 60;
175
+ // ── run-token files (engine online-enforcement opt-in) ───────────────────────
176
+ // A supporting engine (152 r23+) re-reads the run-token from CLEARCOTE_RUN_TOKEN_FILE and stops a
177
+ // running FREE browser once the token stops advancing (the SDK can only advance it by heartbeating,
178
+ // which the backend gates). This class mirrors a lease's rotating token into one file per launch and
179
+ // removes it on close. Older engines ignore the file (they read CLEARCOTE_RUN_TOKEN once at launch),
180
+ // so it is purely additive — nothing breaks if the engine does not support it.
181
+ class TokenFileSet {
182
+ files = new Set();
183
+ /** Create a token file seeded with `current`, kept updated until release() removes it. */
184
+ bind(current) {
185
+ const path = join(tmpdir(), `clearcote-rt-${randomUUID()}.tok`);
186
+ this.writeOne(path, current);
187
+ const entry = { path };
188
+ this.files.add(entry);
189
+ return {
190
+ file: path,
191
+ release: () => {
192
+ this.files.delete(entry);
193
+ try {
194
+ rmSync(path, { force: true });
195
+ }
196
+ catch { /* already gone */ }
197
+ },
198
+ };
199
+ }
200
+ /** Rewrite every live file with the freshly-rotated token. */
201
+ update(token) {
202
+ for (const e of this.files)
203
+ this.writeOne(e.path, token);
204
+ }
205
+ /** Remove every file (lease shutdown). */
206
+ closeAll() {
207
+ for (const e of this.files) {
208
+ try {
209
+ rmSync(e.path, { force: true });
210
+ }
211
+ catch { /* ignore */ }
212
+ }
213
+ this.files.clear();
214
+ }
215
+ writeOne(path, token) {
216
+ try {
217
+ writeFileSync(path, token, { mode: 0o600 });
218
+ }
219
+ catch { /* the launch still has CLEARCOTE_RUN_TOKEN */ }
220
+ }
221
+ }
139
222
  /**
140
223
  * One shared lease per (process, license key).
141
224
  *
@@ -153,9 +236,21 @@ class MachineLease {
153
236
  sdkVersion;
154
237
  quiet;
155
238
  engineVersion;
156
- token = null;
239
+ proxy;
240
+ _token = null;
241
+ tokenFiles = new TokenFileSet();
242
+ get token() { return this._token; }
243
+ set token(v) { this._token = v; if (v)
244
+ this.tokenFiles.update(v); }
245
+ /** Bind a per-launch token file that follows this lease's rotating token. */
246
+ bindLaunch() { return this.tokenFiles.bind(this._token ?? ""); }
157
247
  exp = 0;
158
248
  leaseId = null;
249
+ /** Learned from the first checkout: "browser" means every launch holds its own lease. */
250
+ scope = "machine";
251
+ /** A per-browser checkout made by ensure(), waiting for the one launch that asked for it. */
252
+ pendingBrowser = null;
253
+ browsers = new Set();
159
254
  hbSec = 270;
160
255
  owner = false;
161
256
  timer = null;
@@ -165,13 +260,14 @@ class MachineLease {
165
260
  constructor(key, base, instanceId, sdkVersion, quiet,
166
261
  // Resolved browser build (e.g. "150.0.7871.114"). A string, or a thunk that resolves it lazily
167
262
  // so the catalog is only consulted on a cold checkout — never per launch. Telemetry only.
168
- engineVersion) {
263
+ engineVersion, proxy = null) {
169
264
  this.key = key;
170
265
  this.base = base;
171
266
  this.instanceId = instanceId;
172
267
  this.sdkVersion = sdkVersion;
173
268
  this.quiet = quiet;
174
269
  this.engineVersion = engineVersion;
270
+ this.proxy = proxy;
175
271
  }
176
272
  valid() {
177
273
  return !!this.token && this.exp > Math.floor(Date.now() / 1000) + SKEW_SEC;
@@ -212,22 +308,41 @@ class MachineLease {
212
308
  return; // NO checkout, NO heartbeat
213
309
  }
214
310
  await this.checkout();
311
+ if (this.scope === "browser")
312
+ return; // the lease belongs to one launch; see acquire()
215
313
  this.owner = true;
216
314
  this.startHeartbeat();
217
315
  }
316
+ /** POST a checkout for one launch. Throws the backend's verdict; network errors propagate. */
317
+ async checkoutFor(launchId) {
318
+ const res = await postJson(`${this.base}/api/v1/lease/checkout`, this.key, {
319
+ instance_id: this.instanceId,
320
+ // Per-browser plans count each launch_id as its own slot; machine plans ignore it.
321
+ launch_id: launchId,
322
+ os: osTag(),
323
+ sdk_version: this.sdkVersion,
324
+ engine_version: await this.engineVer(),
325
+ }, this.proxy);
326
+ if (!res.ok) {
327
+ const body = (await res.json().catch(() => ({})));
328
+ throwForStatus(res.status, body);
329
+ }
330
+ return (await res.json());
331
+ }
332
+ /** Heartbeat / re-checkout / check-in for a BrowserLease, over this lease's route (direct or proxy). */
333
+ post(path, body) {
334
+ return postJson(`${this.base}${path}`, this.key, body, this.proxy);
335
+ }
218
336
  async checkout() {
219
337
  try {
220
- const res = await postJson(`${this.base}/api/v1/lease/checkout`, this.key, {
221
- instance_id: this.instanceId,
222
- os: osTag(),
223
- sdk_version: this.sdkVersion,
224
- engine_version: await this.engineVer(),
225
- });
226
- if (!res.ok) {
227
- const body = (await res.json().catch(() => ({})));
228
- throwForStatus(res.status, body);
338
+ const launchId = newLaunchId();
339
+ const co = await this.checkoutFor(launchId);
340
+ if (co.lease_scope === "browser") {
341
+ // Per-browser plan: this checkout is the calling launch's own slot. Never shared, never cached.
342
+ this.scope = "browser";
343
+ this.pendingBrowser = { co, launchId };
344
+ return;
229
345
  }
230
- const co = (await res.json());
231
346
  this.token = co.token;
232
347
  this.exp = co.exp;
233
348
  this.leaseId = co.lease_id;
@@ -258,14 +373,14 @@ class MachineLease {
258
373
  const res = await postJson(`${this.base}/api/v1/lease/heartbeat`, this.key, {
259
374
  lease_id: this.leaseId,
260
375
  nonce: randomUUID(),
261
- });
376
+ }, this.proxy);
262
377
  if (res.status === 409) {
263
378
  const co = await postJson(`${this.base}/api/v1/lease/checkout`, this.key, {
264
379
  instance_id: this.instanceId,
265
380
  os: osTag(),
266
381
  sdk_version: this.sdkVersion,
267
382
  engine_version: await this.engineVer(),
268
- });
383
+ }, this.proxy);
269
384
  if (co.ok) {
270
385
  const d = (await co.json());
271
386
  this.leaseId = d.lease_id;
@@ -289,7 +404,16 @@ class MachineLease {
289
404
  this.timer.unref?.();
290
405
  }
291
406
  async acquire() {
407
+ if (this.perBrowser())
408
+ return this.acquireBrowser();
292
409
  await this.ensure();
410
+ if (this.perBrowser()) {
411
+ // ensure() discovered the per-browser scope. Exactly one waiting launch takes the checkout it
412
+ // made; every other launch (including ones that were waiting on the same ensure) checks out its own.
413
+ const pending = this.pendingBrowser;
414
+ this.pendingBrowser = null;
415
+ return pending ? this.startBrowser(pending.co, pending.launchId) : this.acquireBrowser();
416
+ }
293
417
  this.refs++;
294
418
  const self = this;
295
419
  return {
@@ -304,20 +428,48 @@ class MachineLease {
304
428
  stop: async () => {
305
429
  self.release();
306
430
  },
431
+ bindLaunch: () => self.bindLaunch(),
307
432
  };
308
433
  }
434
+ /** Read through a method: ensure() can change the scope while acquire() awaits it. */
435
+ perBrowser() {
436
+ return this.scope === "browser";
437
+ }
309
438
  release() {
310
439
  if (this.refs > 0)
311
440
  this.refs--;
312
441
  }
442
+ /** A new launch on a per-browser plan: its own checkout. A refusal (one browser already running) throws. */
443
+ async acquireBrowser() {
444
+ const launchId = newLaunchId();
445
+ let co;
446
+ try {
447
+ co = await this.checkoutFor(launchId);
448
+ }
449
+ catch (e) {
450
+ if (e instanceof LicenseError)
451
+ throw e;
452
+ // No offline grace here: without the backend there is no slot for this browser.
453
+ throw new LicenseError(`Could not reach the license server to start this browser: ${String(e)}`);
454
+ }
455
+ return this.startBrowser(co, launchId);
456
+ }
457
+ startBrowser(co, launchId) {
458
+ const lease = new BrowserLease(this, co, launchId, () => this.browsers.delete(lease));
459
+ this.browsers.add(lease);
460
+ return lease.session();
461
+ }
313
462
  async shutdown() {
463
+ this.tokenFiles.closeAll();
464
+ // Per-browser leases still open at exit (a browser nobody closed): release their slots too.
465
+ await Promise.all([...this.browsers].map((b) => b.stop()));
314
466
  if (this.timer) {
315
467
  clearInterval(this.timer);
316
468
  this.timer = null;
317
469
  }
318
470
  if (this.owner && this.leaseId) {
319
471
  try {
320
- await postJson(`${this.base}/api/v1/lease/checkin`, this.key, { lease_id: this.leaseId });
472
+ await postJson(`${this.base}/api/v1/lease/checkin`, this.key, { lease_id: this.leaseId }, this.proxy);
321
473
  }
322
474
  catch {
323
475
  /* best-effort; the lease TTL reclaims it anyway */
@@ -325,12 +477,99 @@ class MachineLease {
325
477
  }
326
478
  }
327
479
  }
480
+ /**
481
+ * One browser's own lease on a per-browser plan (the free tier: "1 browser at a time").
482
+ *
483
+ * Checked out for exactly one launch, heartbeated while that browser runs, checked in when it closes.
484
+ * Its token is never written to the shared cache and never handed to another launch.
485
+ */
486
+ class BrowserLease {
487
+ owner;
488
+ launchId;
489
+ onStop;
490
+ _token;
491
+ tokenFiles = new TokenFileSet();
492
+ get token() { return this._token; }
493
+ set token(v) { this._token = v; this.tokenFiles.update(v); }
494
+ /** Bind a per-launch token file that follows this browser's rotating token. */
495
+ bindLaunch() { return this.tokenFiles.bind(this._token); }
496
+ leaseId;
497
+ timer = null;
498
+ stopped = false;
499
+ constructor(owner, co, launchId, onStop) {
500
+ this.owner = owner;
501
+ this.launchId = launchId;
502
+ this.onStop = onStop;
503
+ this.token = co.token;
504
+ this.leaseId = co.lease_id;
505
+ const hbMs = Math.max(5, co.heartbeat_interval_sec || 120) * 1000;
506
+ this.timer = setInterval(() => void this.beat(), hbMs);
507
+ this.timer.unref?.();
508
+ }
509
+ async beat() {
510
+ if (this.stopped)
511
+ return;
512
+ try {
513
+ const res = await this.owner.post("/api/v1/lease/heartbeat", { lease_id: this.leaseId, nonce: randomUUID() });
514
+ if (res.status === 409) {
515
+ // Reclaimed (e.g. missed beats): re-take the slot as the SAME launch, which the backend treats
516
+ // as this browser's own lease. If another browser took the slot meanwhile, this is refused.
517
+ const co = await this.owner.checkoutFor(this.launchId);
518
+ this.leaseId = co.lease_id;
519
+ this.token = co.token;
520
+ return;
521
+ }
522
+ if (res.ok) {
523
+ const d = (await res.json());
524
+ if (typeof d.token === "string")
525
+ this.token = d.token;
526
+ }
527
+ }
528
+ catch {
529
+ /* transient; the next beat retries, and the lease TTL is the backstop */
530
+ }
531
+ }
532
+ async stop() {
533
+ if (this.stopped)
534
+ return;
535
+ this.stopped = true;
536
+ this.tokenFiles.closeAll();
537
+ if (this.timer) {
538
+ clearInterval(this.timer);
539
+ this.timer = null;
540
+ }
541
+ this.onStop();
542
+ try {
543
+ await this.owner.post("/api/v1/lease/checkin", { lease_id: this.leaseId });
544
+ }
545
+ catch {
546
+ /* best-effort; the lease TTL reclaims it */
547
+ }
548
+ }
549
+ session() {
550
+ const self = this;
551
+ return {
552
+ get token() {
553
+ return self.token;
554
+ },
555
+ get leaseId() {
556
+ return self.leaseId;
557
+ },
558
+ stop: () => self.stop(),
559
+ bindLaunch: () => self.bindLaunch(),
560
+ };
561
+ }
562
+ }
328
563
  const machineLeases = new Map();
329
564
  let exitHooked = false;
330
565
  /**
331
- * Acquire a per-MACHINE concurrency lease, shared across every launch in this
332
- * process (checks out ~once per token-TTL, not once per launch). Returns `null` in
333
- * free mode. Throws {@link ConcurrencyLimitError} / {@link LicenseRevokedError} /
566
+ * Acquire a concurrency lease for one launch. Returns `null` in free mode (no key).
567
+ *
568
+ * Machine plans (every paid plan): a per-MACHINE lease shared across every launch in this process
569
+ * (checks out ~once per token-TTL, not once per launch); `stop()` only drops a reference.
570
+ * Per-browser plans (the GitHub free tier, told by the backend's `lease_scope: "browser"`): every
571
+ * launch checks out its own slot, and `stop()` releases it, so a second browser is refused while one runs.
572
+ * Throws {@link ConcurrencyLimitError} / {@link LicenseRevokedError} /
334
573
  * {@link LicenseError} only on a cold checkout the backend definitively refuses;
335
574
  * falls back to a cached, still-valid token on a transient network failure.
336
575
  */
@@ -339,10 +578,18 @@ export async function acquireLease(opts = {}) {
339
578
  if (!licenseKey)
340
579
  return null; // free mode — inert
341
580
  const base = apiBase(opts);
342
- let ml = machineLeases.get(licenseKey);
581
+ const viaProxy = licenseThroughProxyRequested(opts.licenseThroughProxy) ? toProxySpec(opts.proxy ?? null) : null;
582
+ if (licenseThroughProxyRequested(opts.licenseThroughProxy) && !viaProxy && !opts.quiet) {
583
+ process.stderr.write("[clearcote] [license] licenseThroughProxy is on but this launch has no proxy; licence calls go direct.\n");
584
+ }
585
+ // One lease per (key, route): a direct lease and a proxied lease are different network paths, so
586
+ // they must not share the in-process heartbeat owner.
587
+ // The username is part of the route: sticky-session gateways encode the session in it.
588
+ const mapKey = viaProxy ? `${licenseKey}|${viaProxy.server}|${viaProxy.username ?? ""}` : licenseKey;
589
+ let ml = machineLeases.get(mapKey);
343
590
  if (!ml) {
344
- ml = new MachineLease(licenseKey, base, resolveInstanceId(), opts.sdkVersion, !!opts.quiet, opts.engineVersion);
345
- machineLeases.set(licenseKey, ml);
591
+ ml = new MachineLease(licenseKey, base, resolveInstanceId(), opts.sdkVersion, !!opts.quiet, opts.engineVersion, viaProxy);
592
+ machineLeases.set(mapKey, ml);
346
593
  }
347
594
  if (!exitHooked) {
348
595
  exitHooked = true;
@@ -354,13 +601,93 @@ export async function acquireLease(opts = {}) {
354
601
  return ml.acquire();
355
602
  }
356
603
  /** Merge the run-token into a child-process env (base defaults to the parent env). */
357
- export function withRunToken(token, baseEnv) {
604
+ export function withRunToken(token, baseEnv, tokenFile) {
358
605
  const src = baseEnv ?? process.env;
359
606
  const out = {};
360
607
  for (const [k, v] of Object.entries(src))
361
608
  if (v !== undefined)
362
609
  out[k] = v;
363
610
  out[RUN_TOKEN_ENV] = token;
611
+ // A supporting engine (r23+) re-reads this file so revoke/check-in/over-limit stops a running free
612
+ // browser. Older engines ignore it. Additive: the launch-time token above is unchanged.
613
+ if (tokenFile)
614
+ out[`${RUN_TOKEN_ENV}_FILE`] = tokenFile;
364
615
  return out;
365
616
  }
617
+ /**
618
+ * Seats in use on a licence right now (live leases), without checking one out. Never cached and
619
+ * never throws: an unreachable backend or an older backend without the endpoint reports
620
+ * `state: "unavailable"` with the reason, rather than a guessed number.
621
+ */
622
+ export async function getSessionSeats(opts = {}) {
623
+ const key = resolveLicenseKey(opts.licenseKey);
624
+ if (!key)
625
+ return { state: "no-key" };
626
+ const via = licenseThroughProxyRequested(opts.licenseThroughProxy) ? toProxySpec(opts.proxy ?? null) : null;
627
+ try {
628
+ const res = await proxiedRequest(`${apiBase(opts)}/api/v1/lease/seats`, {
629
+ method: "GET",
630
+ headers: { authorization: `Bearer ${key}` },
631
+ proxy: via,
632
+ timeoutMs: 15_000,
633
+ });
634
+ const body = (await res.json().catch(() => ({})));
635
+ if (res.ok && typeof body.used === "number") {
636
+ return { state: "ok", used: body.used, limit: body.limit ?? null, plan: body.plan };
637
+ }
638
+ if (res.status === 401 || res.status === 403)
639
+ return { state: "invalid", reason: body.error || `HTTP ${res.status}` };
640
+ if (res.status === 404)
641
+ return { state: "unavailable", reason: "this licence server does not report seats yet" };
642
+ return { state: "unavailable", reason: body.error || `HTTP ${res.status}` };
643
+ }
644
+ catch (e) {
645
+ return { state: "unavailable", reason: `licence server unreachable (${e.message})` };
646
+ }
647
+ }
648
+ /** Where `clearcote login` stores the key: ~/.clearcote/license.key. */
649
+ export function licenseKeyPath() {
650
+ return join(homedir(), ".clearcote", "license.key");
651
+ }
652
+ /** Save a licence key for every later launch (owner-only permissions where the OS supports it). */
653
+ export function saveLicenseKey(key) {
654
+ const k = key.trim();
655
+ if (!k)
656
+ throw new LicenseError("Empty licence key.", "LICENSE_EMPTY");
657
+ const p = licenseKeyPath();
658
+ mkdirSync(join(homedir(), ".clearcote"), { recursive: true });
659
+ writeFileSync(p, k + "\n", { mode: 0o600 });
660
+ try {
661
+ chmodSync(p, 0o600);
662
+ }
663
+ catch { /* not supported on this filesystem */ }
664
+ return p;
665
+ }
666
+ /** Remove the saved key. Returns true when a file was removed. */
667
+ export function removeLicenseKey() {
668
+ const p = licenseKeyPath();
669
+ if (!existsSync(p))
670
+ return false;
671
+ rmSync(p, { force: true });
672
+ return true;
673
+ }
674
+ /** Where the key a launch would use comes from, without revealing it. */
675
+ export function licenseKeySource(explicit) {
676
+ const mask = (k) => (k.length > 12 ? `${k.slice(0, 7)}…${k.slice(-4)}` : "…");
677
+ if (explicit && explicit.trim())
678
+ return { source: "option", masked: mask(explicit.trim()) };
679
+ const env = process.env.CLEARCOTE_LICENSE_KEY;
680
+ if (env && env.trim())
681
+ return { source: "env", masked: mask(env.trim()) };
682
+ try {
683
+ const p = licenseKeyPath();
684
+ if (existsSync(p)) {
685
+ const v = readFileSync(p, "utf8").trim();
686
+ if (v)
687
+ return { source: "file", masked: mask(v) };
688
+ }
689
+ }
690
+ catch { /* ignore */ }
691
+ return { source: "none" };
692
+ }
366
693
  //# sourceMappingURL=license.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"license.js","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"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"}