@cortexkit/antigravity-auth-core 3.0.6 → 3.0.7
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/account-migration.d.ts +1 -1
- package/dist/account-migration.d.ts.map +1 -1
- package/dist/account-migration.js +228 -53
- package/dist/account-migration.js.map +1 -1
- package/dist/agy-transport.d.ts.map +1 -1
- package/dist/agy-transport.js +2 -0
- package/dist/agy-transport.js.map +1 -1
- package/dist/common-auth-embedded/claustrum/consumer.d.ts +11 -1
- package/dist/common-auth-embedded/claustrum/consumer.js +38 -1
- package/dist/common-auth-embedded/claustrum/custody.d.ts +29 -0
- package/dist/common-auth-embedded/claustrum/custody.js +17 -0
- package/dist/common-auth-embedded/claustrum/index.d.ts +1 -1
- package/dist/common-auth-embedded/fs/refresh-file-lock.d.ts +8 -2
- package/dist/common-auth-embedded/fs/refresh-file-lock.js +6 -1
- package/dist/common-auth-embedded/pi-slot/lock.js +7 -3
- package/dist/common-auth-embedded/quota/format.d.ts +14 -3
- package/dist/common-auth-embedded/quota/format.js +135 -18
- package/dist/common-auth-embedded/quota/index.d.ts +1 -1
- package/dist/common-auth-embedded/quota/index.js +1 -1
- package/dist/common-auth-embedded/source-output.json +54 -54
- package/dist/common-auth-embedded/store/pool.d.ts +1 -1
- package/dist/common-auth-embedded/store/pool.js +0 -1
- package/dist/common-auth-embedded/store/refresh-lock.d.ts +0 -1
- package/dist/common-auth-embedded/store/refresh-lock.js +0 -1
- package/dist/credential-redaction.d.ts +8 -4
- package/dist/credential-redaction.d.ts.map +1 -1
- package/dist/credential-redaction.js +55 -28
- package/dist/credential-redaction.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/pre-response-deadline.d.ts +41 -0
- package/dist/pre-response-deadline.d.ts.map +1 -0
- package/dist/pre-response-deadline.js +150 -0
- package/dist/pre-response-deadline.js.map +1 -0
- package/dist/vault-account-source.d.ts +21 -1
- package/dist/vault-account-source.d.ts.map +1 -1
- package/dist/vault-account-source.js +5 -0
- package/dist/vault-account-source.js.map +1 -1
- package/dist/vault-folder-refusal.js +1 -1
- package/dist/vault-grant-reach.d.ts +23 -0
- package/dist/vault-grant-reach.d.ts.map +1 -0
- package/dist/vault-grant-reach.js +15 -0
- package/dist/vault-grant-reach.js.map +1 -0
- package/package.json +2 -2
|
@@ -304,6 +304,6 @@ export interface FreshAccountStoreOptions {
|
|
|
304
304
|
now: () => number;
|
|
305
305
|
onBoundary?: AccountMigrationOptions['onBoundary'];
|
|
306
306
|
}
|
|
307
|
-
/**
|
|
307
|
+
/** Publishes a complete empty generation, or validates and resumes an unfinished generation already named by the pointer. */
|
|
308
308
|
export declare function initializeFreshAccountStore(modules: AccountMigrationModules, options: FreshAccountStoreOptions): Promise<AccountMigrationOutcome>;
|
|
309
309
|
//# sourceMappingURL=account-migration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-migration.d.ts","sourceRoot":"","sources":["../src/account-migration.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"account-migration.d.ts","sourceRoot":"","sources":["../src/account-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -833,7 +833,7 @@ async function syncDirectory(path, boundary) {
|
|
|
833
833
|
}
|
|
834
834
|
await boundary?.('after-directory-sync');
|
|
835
835
|
}
|
|
836
|
-
async function exclusiveBytes(path, bytes, expectedHash, boundary) {
|
|
836
|
+
async function exclusiveBytes(path, bytes, expectedHash, boundary, pointerStage = false) {
|
|
837
837
|
let handle;
|
|
838
838
|
try {
|
|
839
839
|
handle = await open(path, 'wx', 0o600);
|
|
@@ -856,7 +856,10 @@ async function exclusiveBytes(path, bytes, expectedHash, boundary) {
|
|
|
856
856
|
const reopened = await secureRead(path);
|
|
857
857
|
if (digest(reopened) !== expectedHash || !reopened.equals(bytes))
|
|
858
858
|
throw new AccountMigrationError('exclusive backup or recovery copy differs');
|
|
859
|
-
|
|
859
|
+
// A new pointer stage was synced through its write handle. Reused stages and
|
|
860
|
+
// all backup, bootstrap, retired and export copies retain the reopened barrier.
|
|
861
|
+
if (handle === undefined || !pointerStage)
|
|
862
|
+
await syncFile(path);
|
|
860
863
|
await syncDirectory(dirname(path), boundary);
|
|
861
864
|
}
|
|
862
865
|
async function readJournal(paths) {
|
|
@@ -1663,7 +1666,7 @@ export function createAccountMigrationFactory(modules) {
|
|
|
1663
1666
|
throw new AccountMigrationError('source changed before pointer publication');
|
|
1664
1667
|
if (!journal)
|
|
1665
1668
|
throw new AccountMigrationError('capture journal missing');
|
|
1666
|
-
await publishGenerationPointer(modules, physical, journal, parentLease, prior, options.onBoundary);
|
|
1669
|
+
await publishGenerationPointer(modules, physical, journal, parentLease, lease, prior, options.onBoundary);
|
|
1667
1670
|
});
|
|
1668
1671
|
await options.onBoundary?.('after-capture');
|
|
1669
1672
|
}
|
|
@@ -2029,7 +2032,7 @@ async function expectedFreshArtifacts(paths, journal) {
|
|
|
2029
2032
|
!isDeepStrictEqual(decodeAccountStoreGeneration(config[ACCOUNT_STORE_GENERATION_SETTINGS_KEY]), generationJson(journal)))
|
|
2030
2033
|
throw new AccountMigrationError('fresh generation setting differs');
|
|
2031
2034
|
}
|
|
2032
|
-
/**
|
|
2035
|
+
/** Publishes a complete empty generation, or validates and resumes an unfinished generation already named by the pointer. */
|
|
2033
2036
|
export async function initializeFreshAccountStore(modules, options) {
|
|
2034
2037
|
resolveAccountStorePaths(options.legacyPath);
|
|
2035
2038
|
try {
|
|
@@ -2047,49 +2050,9 @@ export async function initializeFreshAccountStore(modules, options) {
|
|
|
2047
2050
|
timeoutMs: 2_000,
|
|
2048
2051
|
renew: true,
|
|
2049
2052
|
}, async (lease) => {
|
|
2050
|
-
|
|
2051
|
-
if (pointer === undefined)
|
|
2052
|
-
|
|
2053
|
-
await assertSourceAbsent(physical);
|
|
2054
|
-
await modules.fs.withLock(physical.legacyPath, {
|
|
2055
|
-
name: 'accounts',
|
|
2056
|
-
ttlMs: 10_000,
|
|
2057
|
-
timeoutMs: 2_000,
|
|
2058
|
-
renew: true,
|
|
2059
|
-
}, async (accountsLease) => {
|
|
2060
|
-
await assertSourceAbsent(physical);
|
|
2061
|
-
await accountsLease.assertOwned();
|
|
2062
|
-
await lease.assertOwned();
|
|
2063
|
-
if (journal !== undefined ||
|
|
2064
|
-
(await exists(physical.configPath)) ||
|
|
2065
|
-
(await exists(physical.statePath)))
|
|
2066
|
-
throw new AccountMigrationError('fresh stage has unrelated artifacts');
|
|
2067
|
-
journal = {
|
|
2068
|
-
schemaVersion: 1,
|
|
2069
|
-
id: pathGenerationId(physical),
|
|
2070
|
-
legacyPath: physical.legacyPath,
|
|
2071
|
-
storeDir: physical.storeDir,
|
|
2072
|
-
sourceKind: 'absent',
|
|
2073
|
-
status: 'pending',
|
|
2074
|
-
operation: 'migrate',
|
|
2075
|
-
phase: 'capture',
|
|
2076
|
-
manifest: {
|
|
2077
|
-
sourceVersion: null,
|
|
2078
|
-
normalizationClock: options.now(),
|
|
2079
|
-
accounts: [],
|
|
2080
|
-
routing: { schemaVersion: 1 },
|
|
2081
|
-
effectiveActiveIndex: 0,
|
|
2082
|
-
},
|
|
2083
|
-
mapping: [],
|
|
2084
|
-
completedRows: [],
|
|
2085
|
-
};
|
|
2086
|
-
await saveJournal(modules, physical, lease, journal, true, options.onBoundary);
|
|
2087
|
-
await options.onBoundary?.('pointer:before-publication');
|
|
2088
|
-
await assertSourceAbsent(physical);
|
|
2089
|
-
await publishGenerationPointer(modules, physical, journal, parentLease, undefined, options.onBoundary);
|
|
2090
|
-
await options.onBoundary?.('pointer:after-publication');
|
|
2091
|
-
});
|
|
2092
|
-
}
|
|
2053
|
+
const journal = await readJournal(physical);
|
|
2054
|
+
if (pointer === undefined)
|
|
2055
|
+
return initializePrivateEmptyGeneration(modules, physical, parentLease, lease, options);
|
|
2093
2056
|
if (journal?.sourceKind !== 'absent' ||
|
|
2094
2057
|
journal.operation !== 'migrate' ||
|
|
2095
2058
|
journal.status === 'inactive')
|
|
@@ -2168,6 +2131,205 @@ export async function initializeFreshAccountStore(modules, options) {
|
|
|
2168
2131
|
throw error;
|
|
2169
2132
|
}
|
|
2170
2133
|
}
|
|
2134
|
+
// These files are not reachable through a pointer yet. Their final barriers are
|
|
2135
|
+
// grouped immediately before publication, rather than at each construction step.
|
|
2136
|
+
async function exclusiveUnpublishedBytes(path, bytes) {
|
|
2137
|
+
const handle = await open(path, constants.O_WRONLY |
|
|
2138
|
+
constants.O_CREAT |
|
|
2139
|
+
constants.O_EXCL |
|
|
2140
|
+
constants.O_NOFOLLOW, 0o600);
|
|
2141
|
+
try {
|
|
2142
|
+
await handle.writeFile(bytes);
|
|
2143
|
+
}
|
|
2144
|
+
finally {
|
|
2145
|
+
await handle.close();
|
|
2146
|
+
}
|
|
2147
|
+
if (!(await secureRead(path)).equals(bytes))
|
|
2148
|
+
throw new AccountMigrationError('private stage readback differs');
|
|
2149
|
+
}
|
|
2150
|
+
async function initializePrivateEmptyGeneration(modules, paths, parentLease, managementLease, options) {
|
|
2151
|
+
return modules.fs.withLock(paths.legacyPath, { name: 'accounts', ttlMs: 10_000, timeoutMs: 2_000, renew: true }, async (accountsLease) => {
|
|
2152
|
+
const directory = await lstat(paths.storeDir);
|
|
2153
|
+
const assertOwned = async () => {
|
|
2154
|
+
await parentLease.assertOwned();
|
|
2155
|
+
await managementLease.assertOwned();
|
|
2156
|
+
await accountsLease.assertOwned();
|
|
2157
|
+
const current = await lstat(paths.storeDir);
|
|
2158
|
+
if (!current.isDirectory() ||
|
|
2159
|
+
current.isSymbolicLink() ||
|
|
2160
|
+
current.dev !== directory.dev ||
|
|
2161
|
+
current.ino !== directory.ino ||
|
|
2162
|
+
!sameFilesystemPath(await realpath(paths.storeDir), paths.storeDir))
|
|
2163
|
+
throw new AccountMigrationError('private generation directory changed');
|
|
2164
|
+
privateMode(current.mode, 0o700);
|
|
2165
|
+
};
|
|
2166
|
+
const boundary = options.onBoundary;
|
|
2167
|
+
await assertOwned();
|
|
2168
|
+
await assertSourceAbsent(paths);
|
|
2169
|
+
if (await readPointer(paths.legacyPath))
|
|
2170
|
+
throw new AccountMigrationError('private initialization found a competing pointer');
|
|
2171
|
+
if ((await readJournal(paths)) ||
|
|
2172
|
+
(await exists(paths.configPath)) ||
|
|
2173
|
+
(await exists(paths.statePath)))
|
|
2174
|
+
throw new AccountMigrationError('fresh stage has unrelated artifacts');
|
|
2175
|
+
const journal = {
|
|
2176
|
+
schemaVersion: 1,
|
|
2177
|
+
id: pathGenerationId(paths),
|
|
2178
|
+
legacyPath: paths.legacyPath,
|
|
2179
|
+
storeDir: paths.storeDir,
|
|
2180
|
+
sourceKind: 'absent',
|
|
2181
|
+
status: 'pending',
|
|
2182
|
+
operation: 'migrate',
|
|
2183
|
+
phase: 'build',
|
|
2184
|
+
manifest: {
|
|
2185
|
+
sourceVersion: null,
|
|
2186
|
+
normalizationClock: options.now(),
|
|
2187
|
+
accounts: [],
|
|
2188
|
+
routing: { schemaVersion: 1 },
|
|
2189
|
+
effectiveActiveIndex: 0,
|
|
2190
|
+
},
|
|
2191
|
+
mapping: [],
|
|
2192
|
+
completedRows: [],
|
|
2193
|
+
};
|
|
2194
|
+
await assertOwned();
|
|
2195
|
+
await exclusiveUnpublishedBytes(paths.configPath, Buffer.from('{"version":1,"accounts":[]}\n'));
|
|
2196
|
+
await boundary?.('empty-stage:after-seed');
|
|
2197
|
+
const store = openMigrationStore(modules, paths, options.now, async (step, info) => {
|
|
2198
|
+
await assertOwned();
|
|
2199
|
+
if (!step.includes('config') || (await exists(paths.statePath)))
|
|
2200
|
+
throw new AccountMigrationError('private empty stage attempted a credential write');
|
|
2201
|
+
await secureRead(paths.configPath);
|
|
2202
|
+
await boundary?.(`public:${info.operation}:${step}`);
|
|
2203
|
+
await assertOwned();
|
|
2204
|
+
});
|
|
2205
|
+
await assertOwned();
|
|
2206
|
+
await store.initialize();
|
|
2207
|
+
await boundary?.('empty-stage:after-initialize');
|
|
2208
|
+
await assertOwned();
|
|
2209
|
+
await store.updateSettings((settings) => {
|
|
2210
|
+
settings[ROUTING_SETTINGS_KEY] = encodeRoutingSettings(journal.manifest.routing);
|
|
2211
|
+
settings[ACCOUNT_STORE_GENERATION_SETTINGS_KEY] =
|
|
2212
|
+
generationJson(journal);
|
|
2213
|
+
settings[MANAGEMENT_SETTINGS_KEY] = {
|
|
2214
|
+
id: journal.id,
|
|
2215
|
+
kind: 'migration',
|
|
2216
|
+
targets: [],
|
|
2217
|
+
progress: { step: 'build', completedTargets: [] },
|
|
2218
|
+
};
|
|
2219
|
+
return settings;
|
|
2220
|
+
});
|
|
2221
|
+
await boundary?.('empty-stage:after-build-settings');
|
|
2222
|
+
await expectedFreshArtifacts(paths, journal);
|
|
2223
|
+
await assertStateOwnership(paths, journal, true);
|
|
2224
|
+
await verifyImported(store, journal);
|
|
2225
|
+
// Preserve the historical verification input: the real, reopened build
|
|
2226
|
+
// config includes management, unlike the final management-free config.
|
|
2227
|
+
const snapshot = await secureRead(paths.configPath);
|
|
2228
|
+
await verifyImported(store, journal);
|
|
2229
|
+
journal.verification = {
|
|
2230
|
+
manifestSha256: digest(canonical(manifestJson(journal.manifest))),
|
|
2231
|
+
configSha256: digest(snapshot),
|
|
2232
|
+
statePresent: false,
|
|
2233
|
+
durability: accountMigrationDurability(),
|
|
2234
|
+
};
|
|
2235
|
+
await assertOwned();
|
|
2236
|
+
await assertSourceAbsent(paths);
|
|
2237
|
+
journal.sourceAbsenceVerified = true;
|
|
2238
|
+
await management(store, journal, true);
|
|
2239
|
+
await boundary?.('empty-stage:after-clear-settings');
|
|
2240
|
+
await expectedFreshArtifacts(paths, journal);
|
|
2241
|
+
await currentSuccessor(store, paths, journal);
|
|
2242
|
+
if ((await settingsOf(store))[MANAGEMENT_SETTINGS_KEY] !== undefined)
|
|
2243
|
+
throw new AccountMigrationError('private stage still has management work');
|
|
2244
|
+
journal.phase = 'activate';
|
|
2245
|
+
journal.status = 'active';
|
|
2246
|
+
decodeAccountMigrationJournal(journalJson(journal));
|
|
2247
|
+
await assertOwned();
|
|
2248
|
+
await exclusiveUnpublishedBytes(paths.migrationPath, Buffer.from(`${JSON.stringify(journalJson(journal), null, 2)}\n`));
|
|
2249
|
+
await boundary?.('empty-stage:after-journal');
|
|
2250
|
+
await syncFile(paths.configPath);
|
|
2251
|
+
await boundary?.('empty-stage:after-config-sync');
|
|
2252
|
+
await syncFile(paths.migrationPath);
|
|
2253
|
+
await boundary?.('empty-stage:after-journal-sync');
|
|
2254
|
+
for (const [name, path] of [
|
|
2255
|
+
['backups', paths.backupsDir],
|
|
2256
|
+
['retired', paths.retiredDir],
|
|
2257
|
+
['transfers', paths.transfersDir],
|
|
2258
|
+
]) {
|
|
2259
|
+
await syncDirectory(path);
|
|
2260
|
+
await boundary?.(`empty-stage:after-${name}-sync`);
|
|
2261
|
+
}
|
|
2262
|
+
await syncDirectory(paths.storeDir);
|
|
2263
|
+
await boundary?.('empty-stage:after-generation-sync');
|
|
2264
|
+
await boundary?.('pointer:before-publication');
|
|
2265
|
+
const reopened = await readJournal(paths);
|
|
2266
|
+
if (!isDeepStrictEqual(reopened, journal))
|
|
2267
|
+
throw new AccountMigrationError('publication requires its complete synced canonical journal');
|
|
2268
|
+
const pointer = {
|
|
2269
|
+
schemaVersion: 1,
|
|
2270
|
+
id: journal.id,
|
|
2271
|
+
directoryBasename: basename(paths.storeDir),
|
|
2272
|
+
};
|
|
2273
|
+
const path = accountStorePointerPath(paths.legacyPath);
|
|
2274
|
+
const stage = `${path}.${journal.id}.tmp`;
|
|
2275
|
+
const bytes = Buffer.from(`${JSON.stringify(pointer, null, 2)}\n`);
|
|
2276
|
+
await assertOwned();
|
|
2277
|
+
let stageHandle;
|
|
2278
|
+
try {
|
|
2279
|
+
stageHandle = await open(stage, 'wx', 0o600);
|
|
2280
|
+
}
|
|
2281
|
+
catch (error) {
|
|
2282
|
+
if (errno(error) !== 'EEXIST')
|
|
2283
|
+
throw error;
|
|
2284
|
+
}
|
|
2285
|
+
if (stageHandle) {
|
|
2286
|
+
try {
|
|
2287
|
+
await stageHandle.writeFile(bytes);
|
|
2288
|
+
await stageHandle.sync();
|
|
2289
|
+
}
|
|
2290
|
+
finally {
|
|
2291
|
+
await stageHandle.close();
|
|
2292
|
+
}
|
|
2293
|
+
}
|
|
2294
|
+
if (!(await secureRead(stage)).equals(bytes))
|
|
2295
|
+
throw new AccountMigrationError('exclusive pointer stage differs');
|
|
2296
|
+
if (!stageHandle)
|
|
2297
|
+
await syncFile(stage);
|
|
2298
|
+
await boundary?.('empty-stage:after-pointer-stage');
|
|
2299
|
+
await syncDirectory(dirname(path));
|
|
2300
|
+
await boundary?.('empty-stage:after-parent-prelink-sync');
|
|
2301
|
+
await boundary?.('pointer:before-link');
|
|
2302
|
+
await assertOwned();
|
|
2303
|
+
await assertSourceAbsent(paths);
|
|
2304
|
+
if (await exists(path))
|
|
2305
|
+
throw new AccountMigrationError('foreign or competing pointer publication refuses overwrite');
|
|
2306
|
+
if (await exists(resolveAccountStorePaths(paths.legacyPath).storeDir))
|
|
2307
|
+
throw new AccountMigrationError('foreign logical store directory appeared before publication');
|
|
2308
|
+
try {
|
|
2309
|
+
await link(stage, path);
|
|
2310
|
+
}
|
|
2311
|
+
catch (error) {
|
|
2312
|
+
if (errno(error) === 'EEXIST')
|
|
2313
|
+
throw new AccountMigrationError('foreign or competing pointer publication refuses overwrite');
|
|
2314
|
+
throw new AccountMigrationError('exclusive pointer hard-link publication failed');
|
|
2315
|
+
}
|
|
2316
|
+
await boundary?.('pointer:after-link-before-parent-sync');
|
|
2317
|
+
await syncDirectory(dirname(path));
|
|
2318
|
+
if (!isDeepStrictEqual(await readPointer(paths.legacyPath), pointer) ||
|
|
2319
|
+
!isDeepStrictEqual(await readJournal(paths), journal))
|
|
2320
|
+
throw new AccountMigrationError('pointer publication readback differs');
|
|
2321
|
+
await expectedFreshArtifacts(paths, journal);
|
|
2322
|
+
await currentSuccessor(store, paths, journal);
|
|
2323
|
+
const admission = await readAccountStoreAdmission(paths.legacyPath, modules, options.now, journal.id);
|
|
2324
|
+
if (admission.status !== 'active' ||
|
|
2325
|
+
!isDeepStrictEqual(admission.receipt, receipt(journal)))
|
|
2326
|
+
throw new AccountMigrationError('published empty generation is not admitted');
|
|
2327
|
+
await boundary?.('pointer:after-sync-before-stage-cleanup');
|
|
2328
|
+
await cleanupPointerStage(paths.legacyPath, pointer, parentLease);
|
|
2329
|
+
await assertOwned();
|
|
2330
|
+
return { status: 'completed', receipt: receipt(journal) };
|
|
2331
|
+
});
|
|
2332
|
+
}
|
|
2171
2333
|
async function allocateGeneration(legacyPath) {
|
|
2172
2334
|
if (await exists(resolveAccountStorePaths(legacyPath).storeDir))
|
|
2173
2335
|
throw new AccountMigrationError('foreign logical directory refuses generation allocation');
|
|
@@ -2176,15 +2338,20 @@ async function allocateGeneration(legacyPath) {
|
|
|
2176
2338
|
await prepareDirectories(paths);
|
|
2177
2339
|
return paths;
|
|
2178
2340
|
}
|
|
2179
|
-
async function publishGenerationPointer(modules, paths, journal, parentLease, prior, boundary) {
|
|
2341
|
+
async function publishGenerationPointer(modules, paths, journal, parentLease, managementLease, prior, boundary, journalSavedBy) {
|
|
2180
2342
|
await parentLease.assertOwned();
|
|
2343
|
+
await managementLease.assertOwned();
|
|
2181
2344
|
const currentJournal = await readJournal(paths);
|
|
2182
2345
|
if (!currentJournal ||
|
|
2183
2346
|
currentJournal.id !== journal.id ||
|
|
2184
2347
|
!isDeepStrictEqual(journalJson(currentJournal), journalJson(journal)))
|
|
2185
2348
|
throw new AccountMigrationError('publication requires its complete synced canonical journal');
|
|
2186
|
-
|
|
2187
|
-
|
|
2349
|
+
// Callers without a still-held save-owner opt-in retain both barriers rather
|
|
2350
|
+
// than infer that the canonical journal was persisted by an earlier operation.
|
|
2351
|
+
if (journalSavedBy !== managementLease) {
|
|
2352
|
+
await syncFile(paths.migrationPath);
|
|
2353
|
+
await syncDirectory(paths.storeDir);
|
|
2354
|
+
}
|
|
2188
2355
|
const pointer = {
|
|
2189
2356
|
schemaVersion: 1,
|
|
2190
2357
|
id: journal.id,
|
|
@@ -2194,8 +2361,9 @@ async function publishGenerationPointer(modules, paths, journal, parentLease, pr
|
|
|
2194
2361
|
if (prior === undefined) {
|
|
2195
2362
|
const stage = `${path}.${journal.id}.tmp`;
|
|
2196
2363
|
const bytes = Buffer.from(`${JSON.stringify(pointer, null, 2)}\n`);
|
|
2197
|
-
await exclusiveBytes(stage, bytes, digest(bytes));
|
|
2364
|
+
await exclusiveBytes(stage, bytes, digest(bytes), undefined, true);
|
|
2198
2365
|
await parentLease.assertOwned();
|
|
2366
|
+
await managementLease.assertOwned();
|
|
2199
2367
|
await boundary?.('pointer:before-link');
|
|
2200
2368
|
if (await exists(resolveAccountStorePaths(paths.legacyPath).storeDir))
|
|
2201
2369
|
throw new AccountMigrationError('foreign logical store directory appeared before publication');
|
|
@@ -2229,6 +2397,7 @@ async function publishGenerationPointer(modules, paths, journal, parentLease, pr
|
|
|
2229
2397
|
stageName: () => stageName,
|
|
2230
2398
|
beforeRename: async () => {
|
|
2231
2399
|
await parentLease.assertOwned();
|
|
2400
|
+
await managementLease.assertOwned();
|
|
2232
2401
|
if (!isDeepStrictEqual(await readPointer(paths.legacyPath), prior) ||
|
|
2233
2402
|
(await readJournal(oldPaths))?.status !== 'inactive')
|
|
2234
2403
|
throw new AccountMigrationError('inactive pointer changed before transition');
|
|
@@ -2239,6 +2408,7 @@ async function publishGenerationPointer(modules, paths, journal, parentLease, pr
|
|
|
2239
2408
|
await syncDirectory(dirname(path));
|
|
2240
2409
|
}
|
|
2241
2410
|
await parentLease.assertOwned();
|
|
2411
|
+
await managementLease.assertOwned();
|
|
2242
2412
|
}
|
|
2243
2413
|
function withParentTopology(modules, legacyPath, body) {
|
|
2244
2414
|
return modules.fs.withLock(legacyPath, {
|
|
@@ -2268,9 +2438,14 @@ async function finishPointerPublication(legacyPath, pointer, lease) {
|
|
|
2268
2438
|
const path = accountStorePointerPath(legacyPath);
|
|
2269
2439
|
await syncFile(path);
|
|
2270
2440
|
await syncDirectory(dirname(path));
|
|
2441
|
+
if (await cleanupPointerStage(legacyPath, pointer, lease))
|
|
2442
|
+
await syncDirectory(dirname(path));
|
|
2443
|
+
}
|
|
2444
|
+
async function cleanupPointerStage(legacyPath, pointer, lease) {
|
|
2445
|
+
const path = accountStorePointerPath(legacyPath);
|
|
2271
2446
|
const stage = `${path}.${pointer.id}.tmp`;
|
|
2272
2447
|
if (!(await exists(stage)))
|
|
2273
|
-
return;
|
|
2448
|
+
return false;
|
|
2274
2449
|
const bytes = await secureRead(stage);
|
|
2275
2450
|
if (!isDeepStrictEqual(decodeAccountStorePointer(jsonBytes(bytes), legacyPath), pointer))
|
|
2276
2451
|
throw new AccountMigrationError('pointer stage differs from publication authority');
|
|
@@ -2279,6 +2454,6 @@ async function finishPointerPublication(legacyPath, pointer, lease) {
|
|
|
2279
2454
|
throw new AccountMigrationError('pointer stage is not the published hard link');
|
|
2280
2455
|
await lease.assertOwned();
|
|
2281
2456
|
await unlink(stage);
|
|
2282
|
-
|
|
2457
|
+
return true;
|
|
2283
2458
|
}
|
|
2284
2459
|
//# sourceMappingURL=account-migration.js.map
|