@cortexkit/antigravity-auth-core 3.0.18 → 3.0.20
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/common-auth-embedded/claustrum/consumer.d.ts +10 -0
- package/dist/common-auth-embedded/claustrum/consumer.js +25 -0
- package/dist/common-auth-embedded/claustrum/custody.d.ts +6 -2
- package/dist/common-auth-embedded/claustrum/custody.js +20 -6
- package/dist/common-auth-embedded/claustrum/hub.d.ts +3 -1
- package/dist/common-auth-embedded/claustrum/hub.js +55 -5
- package/dist/common-auth-embedded/claustrum/roster.js +1 -1
- package/dist/common-auth-embedded/fs/refresh-file-lock.d.ts +2 -1
- package/dist/common-auth-embedded/fs/refresh-file-lock.js +3 -1
- package/dist/common-auth-embedded/fs/with-lock.js +1 -1
- package/dist/common-auth-embedded/source-output.json +36 -36
- package/package.json +1 -1
|
@@ -50,6 +50,12 @@ export interface ClaustrumConsumerOptions<Q = QuotaObservation> {
|
|
|
50
50
|
* routine token refresh, which never moves the view.
|
|
51
51
|
*/
|
|
52
52
|
onRoster?: (roster: VaultRosterFile) => void;
|
|
53
|
+
/**
|
|
54
|
+
* Called once when a coalesced discovery starts, with its completion promise.
|
|
55
|
+
* Covers explicit refresh, poll, watch and send-triggered discovery, even when
|
|
56
|
+
* the view does not change. Observe rejection when attaching async work.
|
|
57
|
+
*/
|
|
58
|
+
onDiscovery?: (promise: Promise<VaultRosterFile | undefined>) => void;
|
|
53
59
|
onError?: (error: unknown) => void;
|
|
54
60
|
/**
|
|
55
61
|
* How often `start()` ticks. A tick lists the vault when no vault watch is
|
|
@@ -104,6 +110,8 @@ export interface HubMemberPort {
|
|
|
104
110
|
keptReceiptState(): KeptReceiptState;
|
|
105
111
|
/** Apply the union of every member's roster in memory to kept receipts. */
|
|
106
112
|
retainUnion(): void;
|
|
113
|
+
/** Share a committed preference change with live members using this roster file. */
|
|
114
|
+
publishRoster(roster: VaultRosterFile): void;
|
|
107
115
|
forget(credentialId: string): void;
|
|
108
116
|
/** The member closed: the hub stops committing and pushing to it. */
|
|
109
117
|
detach(): void;
|
|
@@ -113,6 +121,8 @@ export interface HubRefreshOutcome {
|
|
|
113
121
|
}
|
|
114
122
|
/** What the hub may do to one member's memory. Package-internal. */
|
|
115
123
|
export interface HubMemberHooks {
|
|
124
|
+
/** Observe a hub discovery without relying on member refresh overrides. */
|
|
125
|
+
discovery(promise: Promise<HubRefreshOutcome | undefined>): void;
|
|
116
126
|
/**
|
|
117
127
|
* Set the roster in memory as a consumer's own refresh does (pending quota
|
|
118
128
|
* readings included) and notify `onRoster` when its view changed.
|
|
@@ -314,8 +314,17 @@ export class ClaustrumConsumer {
|
|
|
314
314
|
this.#refreshing = undefined;
|
|
315
315
|
});
|
|
316
316
|
this.#track(this.#refreshing);
|
|
317
|
+
this.#notifyDiscovery(this.#refreshing);
|
|
317
318
|
return this.#refreshing;
|
|
318
319
|
}
|
|
320
|
+
#notifyDiscovery(promise) {
|
|
321
|
+
try {
|
|
322
|
+
this.#options.onDiscovery?.(promise);
|
|
323
|
+
}
|
|
324
|
+
catch (error) {
|
|
325
|
+
this.#options.onError?.(error);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
319
328
|
/**
|
|
320
329
|
* Poll in the background and open the vault and insula watches. Until the
|
|
321
330
|
* vault watch is accepted, and whenever it is unavailable, every tick lists
|
|
@@ -571,6 +580,13 @@ export class ClaustrumConsumer {
|
|
|
571
580
|
/** The hub's handle on this member's memory. */
|
|
572
581
|
#hubHooks() {
|
|
573
582
|
return {
|
|
583
|
+
discovery: (promise) => {
|
|
584
|
+
const hub = this.#hub;
|
|
585
|
+
if (!hub || !this.#options.onDiscovery || this.#shutdown.signal.aborted)
|
|
586
|
+
return;
|
|
587
|
+
const discovery = this.#track(promise.then((outcome) => this.#hubOutcome(hub, outcome)));
|
|
588
|
+
this.#notifyDiscovery(discovery);
|
|
589
|
+
},
|
|
574
590
|
install: (roster) => {
|
|
575
591
|
if (this.#shutdown.signal.aborted)
|
|
576
592
|
return;
|
|
@@ -607,6 +623,9 @@ export class ClaustrumConsumer {
|
|
|
607
623
|
*/
|
|
608
624
|
async #hubRefresh(hub) {
|
|
609
625
|
const outcome = await hub.refresh();
|
|
626
|
+
return this.#hubOutcome(hub, outcome);
|
|
627
|
+
}
|
|
628
|
+
#hubOutcome(hub, outcome) {
|
|
610
629
|
this.#assertOpen();
|
|
611
630
|
if (!outcome)
|
|
612
631
|
return undefined;
|
|
@@ -788,6 +807,8 @@ export class ClaustrumConsumer {
|
|
|
788
807
|
this.#assertOpen();
|
|
789
808
|
await declineVaultRoute(this.#options.rosterPath, routeId);
|
|
790
809
|
this.#roster = pendingVaultQuota(this.#options.rosterPath, await readVaultRoster(this.#options.rosterPath));
|
|
810
|
+
if (this.#roster)
|
|
811
|
+
this.#hub?.publishRoster(this.#roster);
|
|
791
812
|
// A hub member shares kept receipts with every other member, so they are
|
|
792
813
|
// retained against all members' rosters, never against this one alone.
|
|
793
814
|
if (this.#hub)
|
|
@@ -799,6 +820,8 @@ export class ClaustrumConsumer {
|
|
|
799
820
|
this.#assertOpen();
|
|
800
821
|
await acceptVaultRoute(this.#options.rosterPath, routeId);
|
|
801
822
|
this.#roster = pendingVaultQuota(this.#options.rosterPath, await readVaultRoster(this.#options.rosterPath));
|
|
823
|
+
if (this.#roster)
|
|
824
|
+
this.#hub?.publishRoster(this.#roster);
|
|
802
825
|
}
|
|
803
826
|
/**
|
|
804
827
|
* Set the order vault accounts are tried in (`reorderVaultRoster`), then
|
|
@@ -809,6 +832,8 @@ export class ClaustrumConsumer {
|
|
|
809
832
|
this.#assertOpen();
|
|
810
833
|
const result = await reorderVaultRoster(this.#options.rosterPath, routeIds);
|
|
811
834
|
this.#roster = pendingVaultQuota(this.#options.rosterPath, await readVaultRoster(this.#options.rosterPath));
|
|
835
|
+
if (this.#roster)
|
|
836
|
+
this.#hub?.publishRoster(this.#roster);
|
|
812
837
|
return result;
|
|
813
838
|
}
|
|
814
839
|
/**
|
|
@@ -25,7 +25,8 @@ export interface ClaustrumFamily {
|
|
|
25
25
|
/** Non-secret classification facts, including rows decoded by older clients. */
|
|
26
26
|
export interface VaultRowFacts {
|
|
27
27
|
readonly credentialId: string;
|
|
28
|
-
|
|
28
|
+
/** Internal serving type derived from `authMethod`, not the id's type hint. */
|
|
29
|
+
readonly credentialType: VaultCredentialType;
|
|
29
30
|
readonly authMethod?: string;
|
|
30
31
|
readonly refreshAdapter?: string;
|
|
31
32
|
readonly providerIds?: readonly string[];
|
|
@@ -108,7 +109,10 @@ export interface VaultInventory {
|
|
|
108
109
|
readonly view: string;
|
|
109
110
|
readonly credentials: readonly VaultCredential[];
|
|
110
111
|
readonly skipped: readonly SkippedVaultRecord[];
|
|
111
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* Classifying families only: declared policy codes or the fixed library codes
|
|
114
|
+
* `unknown-auth-method`, `unmapped` and `unclassified`, never classifier errors.
|
|
115
|
+
*/
|
|
112
116
|
readonly refused?: readonly {
|
|
113
117
|
credentialId?: string;
|
|
114
118
|
code: string;
|
|
@@ -85,16 +85,28 @@ function credentialTypeOf(row, family) {
|
|
|
85
85
|
return notMine;
|
|
86
86
|
if (!row.categories.includes(family.category))
|
|
87
87
|
return notMine;
|
|
88
|
-
if (row.credentialType !== 'oauth' && row.credentialType !== 'api_key')
|
|
89
|
-
return notMine;
|
|
90
88
|
if ('classify' in family) {
|
|
91
|
-
|
|
89
|
+
const metadata = rowFactsOf(row);
|
|
90
|
+
let type;
|
|
91
|
+
// The id's type is only a hint; the vault's auth method determines serving.
|
|
92
|
+
switch (metadata.authMethod) {
|
|
93
|
+
case 'apikey':
|
|
94
|
+
type = 'api_key';
|
|
95
|
+
break;
|
|
96
|
+
case 'chatgpt':
|
|
97
|
+
case 'antigravity':
|
|
98
|
+
case 'oauth':
|
|
99
|
+
type = 'oauth';
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
return { kind: 'refused', code: 'unknown-auth-method' };
|
|
103
|
+
}
|
|
92
104
|
const facts = {
|
|
93
105
|
credentialId: row.id,
|
|
94
|
-
credentialType:
|
|
106
|
+
credentialType: type,
|
|
95
107
|
categories: row.categories,
|
|
96
108
|
refreshAdapter: row.refreshAdapter,
|
|
97
|
-
...
|
|
109
|
+
...metadata,
|
|
98
110
|
};
|
|
99
111
|
if (facts.providerIds === undefined)
|
|
100
112
|
return { kind: 'refused', code: 'unmapped' };
|
|
@@ -103,7 +115,7 @@ function credentialTypeOf(row, family) {
|
|
|
103
115
|
if (result.kind === 'not-mine')
|
|
104
116
|
return notMine;
|
|
105
117
|
if (result.kind === 'mine' && typeof result.member === 'string')
|
|
106
|
-
return { kind: 'mine', type
|
|
118
|
+
return { kind: 'mine', type, member: result.member };
|
|
107
119
|
if (result.kind === 'refused' &&
|
|
108
120
|
typeof result.code === 'string' &&
|
|
109
121
|
/^[a-z][a-z0-9-]{0,31}$/.test(result.code) &&
|
|
@@ -116,6 +128,8 @@ function credentialTypeOf(row, family) {
|
|
|
116
128
|
}
|
|
117
129
|
return { kind: 'refused', code: 'unclassified' };
|
|
118
130
|
}
|
|
131
|
+
if (row.credentialType !== 'oauth' && row.credentialType !== 'api_key')
|
|
132
|
+
return notMine;
|
|
119
133
|
if (row.credentialType === 'oauth')
|
|
120
134
|
return row.refreshAdapter === family.refreshAdapter
|
|
121
135
|
? { kind: 'mine', type: 'oauth' }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { QuotaObservation } from '../quota/index.js';
|
|
2
|
-
import { type ClaustrumConsumer } from './consumer.js';
|
|
2
|
+
import { type ClaustrumConsumer, type ClaustrumConsumerOptions } from './consumer.js';
|
|
3
3
|
import { type ClassifyingClaustrumFamily, type ClaustrumScopedClient, ClaustrumScopedCustody, type IdentityParser, type KeptReceiptState, type VaultGrantReach } from './custody.js';
|
|
4
4
|
import { type ClaustrumLogger } from './errors.js';
|
|
5
5
|
import { type AccountMapper, type VaultRosterFile } from './roster.js';
|
|
@@ -100,6 +100,8 @@ export interface ClaustrumHubMemberOptions<_Q = QuotaObservation> {
|
|
|
100
100
|
reservedRouteIds?: () => Iterable<string>;
|
|
101
101
|
/** As `ClaustrumConsumerOptions.onRoster`: once per change of view. */
|
|
102
102
|
onRoster?: (roster: VaultRosterFile) => void;
|
|
103
|
+
/** Observe every hub discovery's member result, including background work. */
|
|
104
|
+
onDiscovery?: ClaustrumConsumerOptions<_Q>['onDiscovery'];
|
|
103
105
|
/** This member's own failures, such as a roster commit that failed. */
|
|
104
106
|
onError?: (error: unknown) => void;
|
|
105
107
|
logger?: ClaustrumLogger;
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// never replaces a view another process committed after this hub listed.
|
|
13
13
|
import { createHash } from 'node:crypto';
|
|
14
14
|
import { readdir, stat } from 'node:fs/promises';
|
|
15
|
-
import { dirname, join } from 'node:path';
|
|
15
|
+
import { dirname, join, resolve } from 'node:path';
|
|
16
16
|
import { createLogger } from '../logger/index.js';
|
|
17
17
|
import { combineAbortSignals } from '../util/any-signal.js';
|
|
18
18
|
import { ClaustrumUnreachableError } from './availability.js';
|
|
@@ -23,6 +23,8 @@ import { ClaustrumConsumerError } from './errors.js';
|
|
|
23
23
|
import { DEFAULT_ROUTE_PREFIX, decodedVaultRoster, forgetPendingVaultDiscovery, isVaultRosterLockRefusal, readVaultRoster, refreshVaultRoster, vaultRosterSeed, } from './roster.js';
|
|
24
24
|
import { drainShutdown, shutdownWarning } from './shutdown.js';
|
|
25
25
|
import { SAFETY_POLL_MS } from './watch.js';
|
|
26
|
+
/** Published rosters are shared only in memory; file locks still order commits. */
|
|
27
|
+
const sharedRosters = new Map();
|
|
26
28
|
/** Lowercase ASCII, safe as a file name on every OS. */
|
|
27
29
|
const FILE_ID = /^[a-z0-9][a-z0-9._-]{0,63}$/;
|
|
28
30
|
/** Device names Windows reserves in every directory, with any extension. */
|
|
@@ -250,9 +252,11 @@ export class ClaustrumDiscoveryHub {
|
|
|
250
252
|
watchMode: () => this.watchState(),
|
|
251
253
|
keptReceiptState: () => this.keptReceiptState(),
|
|
252
254
|
retainUnion: () => this.#retainUnion(),
|
|
255
|
+
publishRoster: (roster) => this.#publishRoster(entry, roster),
|
|
253
256
|
forget: (credentialId) => this.#current?.custody?.forget(credentialId),
|
|
254
257
|
detach: () => {
|
|
255
258
|
entry.closed = true;
|
|
259
|
+
entry.releaseRoster?.();
|
|
256
260
|
},
|
|
257
261
|
};
|
|
258
262
|
const consumerOptions = {
|
|
@@ -265,14 +269,58 @@ export class ClaustrumDiscoveryHub {
|
|
|
265
269
|
}),
|
|
266
270
|
...(this.#options.mapAccount && { mapAccount: this.#options.mapAccount }),
|
|
267
271
|
...(options.onRoster && { onRoster: options.onRoster }),
|
|
272
|
+
...(options.onDiscovery && { onDiscovery: options.onDiscovery }),
|
|
268
273
|
...(options.onError && { onError: options.onError }),
|
|
269
274
|
logger: options.logger ?? this.#logger,
|
|
270
275
|
...(this.#options.now && { now: this.#options.now }),
|
|
271
276
|
};
|
|
272
277
|
const { consumer, hooks } = createHubMember(port, consumerOptions);
|
|
273
278
|
entry.hooks = hooks;
|
|
279
|
+
const path = resolve(entry.path);
|
|
280
|
+
const subscribers = sharedRosters.get(path) ?? new Set();
|
|
281
|
+
const install = (roster) => {
|
|
282
|
+
// A peer cannot reactivate an off or closed member, or install routes
|
|
283
|
+
// that collide with this plugin instance's local pool.
|
|
284
|
+
if (entry.closed ||
|
|
285
|
+
this.#active !== true ||
|
|
286
|
+
!this.#current ||
|
|
287
|
+
!this.#live(this.#current) ||
|
|
288
|
+
!hooks.roster() ||
|
|
289
|
+
this.#collides(hooks, roster))
|
|
290
|
+
return;
|
|
291
|
+
entry.seen = JSON.stringify(decodedVaultRoster(roster));
|
|
292
|
+
hooks.install(roster);
|
|
293
|
+
if (roster.view !== this.#committed?.view)
|
|
294
|
+
entry.pending ??= { failures: 0, wait: 0 };
|
|
295
|
+
this.#retainUnion();
|
|
296
|
+
};
|
|
297
|
+
subscribers.add(install);
|
|
298
|
+
entry.receiveRoster = install;
|
|
299
|
+
sharedRosters.set(path, subscribers);
|
|
300
|
+
let subscribed = true;
|
|
301
|
+
entry.releaseRoster = () => {
|
|
302
|
+
if (!subscribed)
|
|
303
|
+
return;
|
|
304
|
+
subscribed = false;
|
|
305
|
+
subscribers.delete(install);
|
|
306
|
+
if (!subscribers.size)
|
|
307
|
+
sharedRosters.delete(path);
|
|
308
|
+
};
|
|
274
309
|
return consumer;
|
|
275
310
|
}
|
|
311
|
+
#publishRoster(entry, roster) {
|
|
312
|
+
const generation = this.#current;
|
|
313
|
+
if (entry.closed || !generation || !this.#live(generation))
|
|
314
|
+
return;
|
|
315
|
+
entry.seen = JSON.stringify(decodedVaultRoster(roster));
|
|
316
|
+
entry.hooks?.install(roster);
|
|
317
|
+
for (const install of sharedRosters.get(resolve(entry.path)) ?? []) {
|
|
318
|
+
if (!this.#live(generation))
|
|
319
|
+
return;
|
|
320
|
+
if (install !== entry.receiveRoster)
|
|
321
|
+
install(roster);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
276
324
|
// --- leases ---
|
|
277
325
|
#startGeneration() {
|
|
278
326
|
const generation = {
|
|
@@ -582,6 +630,8 @@ export class ClaustrumDiscoveryHub {
|
|
|
582
630
|
}));
|
|
583
631
|
run.promise = promise;
|
|
584
632
|
this.#run = run;
|
|
633
|
+
for (const entry of this.#open())
|
|
634
|
+
entry.hooks?.discovery(promise);
|
|
585
635
|
return promise;
|
|
586
636
|
}
|
|
587
637
|
/**
|
|
@@ -681,9 +731,7 @@ export class ClaustrumDiscoveryHub {
|
|
|
681
731
|
continue;
|
|
682
732
|
}
|
|
683
733
|
// The push: memory holds the committed roster before refresh resolves.
|
|
684
|
-
entry
|
|
685
|
-
if (!entry.closed)
|
|
686
|
-
hooks.install(roster);
|
|
734
|
+
this.#publishRoster(entry, roster);
|
|
687
735
|
}
|
|
688
736
|
if (!this.#live(generation))
|
|
689
737
|
return undefined;
|
|
@@ -850,7 +898,7 @@ export class ClaustrumDiscoveryHub {
|
|
|
850
898
|
}
|
|
851
899
|
const before = enabledRows(memory);
|
|
852
900
|
entry.seen = content;
|
|
853
|
-
|
|
901
|
+
this.#publishRoster(entry, file);
|
|
854
902
|
if (enabledRows(hooks.roster()) !== before)
|
|
855
903
|
this.#retainUnion();
|
|
856
904
|
}
|
|
@@ -1013,6 +1061,8 @@ export class ClaustrumDiscoveryHub {
|
|
|
1013
1061
|
if (this.#shutdown.signal.aborted)
|
|
1014
1062
|
return;
|
|
1015
1063
|
this.#shutdown.abort(closed('Claustrum discovery hub is closed'));
|
|
1064
|
+
for (const entry of this.#members.values())
|
|
1065
|
+
entry.releaseRoster?.();
|
|
1016
1066
|
if (this.#timer)
|
|
1017
1067
|
(this.#options.clearTimeoutImpl ?? clearTimeout)(this.#timer);
|
|
1018
1068
|
this.#timer = undefined;
|
|
@@ -21,7 +21,8 @@ export interface LockLoss {
|
|
|
21
21
|
export interface RefreshFileLock {
|
|
22
22
|
readonly ownerId: string;
|
|
23
23
|
assertOwned(): Promise<void>;
|
|
24
|
-
release
|
|
24
|
+
/** Abort stops release retries; the unrenewed lease is left to expire by TTL. */
|
|
25
|
+
release(signal?: AbortSignal): Promise<void>;
|
|
25
26
|
/** Resolves once on detected loss; remains pending after an owner's release. */
|
|
26
27
|
whenLost(): Promise<LockLoss>;
|
|
27
28
|
hasLost(): boolean;
|
|
@@ -836,7 +836,7 @@ export async function acquireRefreshFileLockWithClock(options) {
|
|
|
836
836
|
: {}),
|
|
837
837
|
});
|
|
838
838
|
},
|
|
839
|
-
release: async () => {
|
|
839
|
+
release: async (signal) => {
|
|
840
840
|
if (windowsPrivateFiles && releaseConfirmed)
|
|
841
841
|
return;
|
|
842
842
|
released = true;
|
|
@@ -882,6 +882,8 @@ export async function acquireRefreshFileLockWithClock(options) {
|
|
|
882
882
|
releaseConfirmed = removalConfirmed;
|
|
883
883
|
return;
|
|
884
884
|
}
|
|
885
|
+
if (signal?.aborted)
|
|
886
|
+
return;
|
|
885
887
|
await recoverStaleEvictionMarker();
|
|
886
888
|
}
|
|
887
889
|
catch (error) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": 1,
|
|
3
3
|
"package": "@cortexkit/common-auth",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.31.0",
|
|
5
5
|
"artifactStatus": "published",
|
|
6
6
|
"publicRoots": {
|
|
7
7
|
"./store": {
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
"import": "./dist/pi-slot/index.js"
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
|
-
"input": "tools/common-auth-build/inputs/cortexkit-common-auth-0.
|
|
41
|
-
"tarballSha256": "
|
|
42
|
-
"sri": "sha512-
|
|
40
|
+
"input": "tools/common-auth-build/inputs/cortexkit-common-auth-0.31.0.tgz",
|
|
41
|
+
"tarballSha256": "7fd3ca6766e40af0f79edc65f282f251f3d57bd614254a5df11921635cd1d548",
|
|
42
|
+
"sri": "sha512-An0i6ywuMISocrZKZvYkVhExhg0/v0uUR7PU3QpDqko0+mTq4GA9zCJY2q74TK6fwF0w2Xw0mqxTNIUW8+4Apw==",
|
|
43
43
|
"canonicalFiles": 147,
|
|
44
|
-
"canonicalBytes":
|
|
44
|
+
"canonicalBytes": 998822,
|
|
45
45
|
"generator": {
|
|
46
46
|
"path": "packages/opencode/scripts/embed-common-auth.ts",
|
|
47
47
|
"version": 3,
|
|
48
|
-
"sha256": "
|
|
48
|
+
"sha256": "87413753f873de0e5cad4701d142da0ffcfd4969cb52712cf99a19af689eb2a5"
|
|
49
49
|
},
|
|
50
50
|
"files": [
|
|
51
51
|
{
|
|
@@ -227,33 +227,33 @@
|
|
|
227
227
|
{
|
|
228
228
|
"source": "package/dist/claustrum/consumer.d.ts",
|
|
229
229
|
"output": "claustrum/consumer.d.ts",
|
|
230
|
-
"bytes":
|
|
231
|
-
"sourceSha256": "
|
|
232
|
-
"outputSha256": "
|
|
230
|
+
"bytes": 13934,
|
|
231
|
+
"sourceSha256": "97e5fb096153912483b45f75831e4652db19457d94ad76ba8363b1fd232e6fd7",
|
|
232
|
+
"outputSha256": "97e5fb096153912483b45f75831e4652db19457d94ad76ba8363b1fd232e6fd7",
|
|
233
233
|
"transform": "verbatim"
|
|
234
234
|
},
|
|
235
235
|
{
|
|
236
236
|
"source": "package/dist/claustrum/consumer.js",
|
|
237
237
|
"output": "claustrum/consumer.js",
|
|
238
|
-
"bytes":
|
|
239
|
-
"sourceSha256": "
|
|
240
|
-
"outputSha256": "
|
|
238
|
+
"bytes": 39439,
|
|
239
|
+
"sourceSha256": "3b4cf06be8732f3183ac97721dfffb8fc489d4be1044260742a72a9995324391",
|
|
240
|
+
"outputSha256": "3b4cf06be8732f3183ac97721dfffb8fc489d4be1044260742a72a9995324391",
|
|
241
241
|
"transform": "verbatim"
|
|
242
242
|
},
|
|
243
243
|
{
|
|
244
244
|
"source": "package/dist/claustrum/custody.d.ts",
|
|
245
245
|
"output": "claustrum/custody.d.ts",
|
|
246
|
-
"bytes":
|
|
247
|
-
"sourceSha256": "
|
|
248
|
-
"outputSha256": "
|
|
246
|
+
"bytes": 16390,
|
|
247
|
+
"sourceSha256": "3bbbfc2d700cf6c25356339c64d3bef5cee5e00336d141de18bb7522c8a5ceaa",
|
|
248
|
+
"outputSha256": "3bbbfc2d700cf6c25356339c64d3bef5cee5e00336d141de18bb7522c8a5ceaa",
|
|
249
249
|
"transform": "verbatim"
|
|
250
250
|
},
|
|
251
251
|
{
|
|
252
252
|
"source": "package/dist/claustrum/custody.js",
|
|
253
253
|
"output": "claustrum/custody.js",
|
|
254
|
-
"bytes":
|
|
255
|
-
"sourceSha256": "
|
|
256
|
-
"outputSha256": "
|
|
254
|
+
"bytes": 30624,
|
|
255
|
+
"sourceSha256": "23c666b3d65b26b8f9aac6926c535f67d0ba7db4de1cf3591e95306aa0f8c5dd",
|
|
256
|
+
"outputSha256": "23c666b3d65b26b8f9aac6926c535f67d0ba7db4de1cf3591e95306aa0f8c5dd",
|
|
257
257
|
"transform": "verbatim"
|
|
258
258
|
},
|
|
259
259
|
{
|
|
@@ -307,17 +307,17 @@
|
|
|
307
307
|
{
|
|
308
308
|
"source": "package/dist/claustrum/hub.d.ts",
|
|
309
309
|
"output": "claustrum/hub.d.ts",
|
|
310
|
-
"bytes":
|
|
311
|
-
"sourceSha256": "
|
|
312
|
-
"outputSha256": "
|
|
310
|
+
"bytes": 9346,
|
|
311
|
+
"sourceSha256": "4c2cbd91b3cc9691ee765f766b7c80d27cf28b38494a0a53ce9410c184e7ca1d",
|
|
312
|
+
"outputSha256": "4c2cbd91b3cc9691ee765f766b7c80d27cf28b38494a0a53ce9410c184e7ca1d",
|
|
313
313
|
"transform": "verbatim"
|
|
314
314
|
},
|
|
315
315
|
{
|
|
316
316
|
"source": "package/dist/claustrum/hub.js",
|
|
317
317
|
"output": "claustrum/hub.js",
|
|
318
|
-
"bytes":
|
|
319
|
-
"sourceSha256": "
|
|
320
|
-
"outputSha256": "
|
|
318
|
+
"bytes": 45237,
|
|
319
|
+
"sourceSha256": "48f0889818545735a6e6315bfa2517a84544abb9237ec9f698581ba6628c1ae5",
|
|
320
|
+
"outputSha256": "48f0889818545735a6e6315bfa2517a84544abb9237ec9f698581ba6628c1ae5",
|
|
321
321
|
"transform": "verbatim"
|
|
322
322
|
},
|
|
323
323
|
{
|
|
@@ -395,9 +395,9 @@
|
|
|
395
395
|
{
|
|
396
396
|
"source": "package/dist/claustrum/roster.js",
|
|
397
397
|
"output": "claustrum/roster.js",
|
|
398
|
-
"bytes":
|
|
399
|
-
"sourceSha256": "
|
|
400
|
-
"outputSha256": "
|
|
398
|
+
"bytes": 39340,
|
|
399
|
+
"sourceSha256": "6919aa948f9022f76ce2b7aac83733bd7a11a8c21b8511191cf7fbf6bc1a2b30",
|
|
400
|
+
"outputSha256": "6919aa948f9022f76ce2b7aac83733bd7a11a8c21b8511191cf7fbf6bc1a2b30",
|
|
401
401
|
"transform": "verbatim"
|
|
402
402
|
},
|
|
403
403
|
{
|
|
@@ -595,17 +595,17 @@
|
|
|
595
595
|
{
|
|
596
596
|
"source": "package/dist/fs/refresh-file-lock.d.ts",
|
|
597
597
|
"output": "fs/refresh-file-lock.d.ts",
|
|
598
|
-
"bytes":
|
|
599
|
-
"sourceSha256": "
|
|
600
|
-
"outputSha256": "
|
|
598
|
+
"bytes": 3052,
|
|
599
|
+
"sourceSha256": "31c23ba9135ddc57ea0196ad56280bd12eab2c9524d33bd43d78112da27214d2",
|
|
600
|
+
"outputSha256": "31c23ba9135ddc57ea0196ad56280bd12eab2c9524d33bd43d78112da27214d2",
|
|
601
601
|
"transform": "verbatim"
|
|
602
602
|
},
|
|
603
603
|
{
|
|
604
604
|
"source": "package/dist/fs/refresh-file-lock.js",
|
|
605
605
|
"output": "fs/refresh-file-lock.js",
|
|
606
|
-
"bytes":
|
|
607
|
-
"sourceSha256": "
|
|
608
|
-
"outputSha256": "
|
|
606
|
+
"bytes": 37832,
|
|
607
|
+
"sourceSha256": "07b261b409c5c6cc9b35cb732df44486d372413ce6ae078be4b211b9b5a5c1c7",
|
|
608
|
+
"outputSha256": "07b261b409c5c6cc9b35cb732df44486d372413ce6ae078be4b211b9b5a5c1c7",
|
|
609
609
|
"transform": "verbatim"
|
|
610
610
|
},
|
|
611
611
|
{
|
|
@@ -619,9 +619,9 @@
|
|
|
619
619
|
{
|
|
620
620
|
"source": "package/dist/fs/with-lock.js",
|
|
621
621
|
"output": "fs/with-lock.js",
|
|
622
|
-
"bytes":
|
|
623
|
-
"sourceSha256": "
|
|
624
|
-
"outputSha256": "
|
|
622
|
+
"bytes": 1803,
|
|
623
|
+
"sourceSha256": "f31ff1935e18563e465ab235202de3932255d3b1fc72b5d0baf6d3502931fc8e",
|
|
624
|
+
"outputSha256": "f31ff1935e18563e465ab235202de3932255d3b1fc72b5d0baf6d3502931fc8e",
|
|
625
625
|
"transform": "verbatim"
|
|
626
626
|
},
|
|
627
627
|
{
|
package/package.json
CHANGED