@push.rocks/smartdb 4.1.0 → 4.2.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_rust/rustdb_linux_amd64 +0 -0
- package/dist_rust/rustdb_linux_arm64 +0 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/index.d.ts +1 -1
- package/dist_ts/index.js +1 -1
- package/dist_ts/ts_local/classes.localsmartdb.d.ts +7 -1
- package/dist_ts/ts_local/classes.localsmartdb.js +20 -10
- package/dist_ts/ts_local/index.d.ts +1 -1
- package/dist_ts/ts_smartdb/index.d.ts +1 -1
- package/dist_ts/ts_smartdb/index.js +1 -1
- package/dist_ts/ts_smartdb/offline-inspection.d.ts +52 -1
- package/dist_ts/ts_smartdb/offline-inspection.js +104 -1
- package/dist_ts/ts_smartdb/rust-db-bridge.d.ts +3 -2
- package/dist_ts/ts_smartdb/rust-db-bridge.js +17 -2
- package/dist_ts/ts_smartdb/service-types.d.ts +24 -0
- package/dist_ts/ts_smartdb/service-types.js +1 -1
- package/package.json +1 -1
- package/readme.md +62 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/index.ts +3 -0
- package/ts/ts_local/classes.localsmartdb.ts +55 -13
- package/ts/ts_local/index.ts +3 -0
- package/ts/ts_smartdb/index.ts +3 -0
- package/ts/ts_smartdb/offline-inspection.ts +142 -0
- package/ts/ts_smartdb/rust-db-bridge.ts +36 -0
- package/ts/ts_smartdb/service-types.ts +27 -0
|
Binary file
|
|
Binary file
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartdb',
|
|
6
|
-
version: '4.
|
|
6
|
+
version: '4.2.0',
|
|
7
7
|
description: 'A MongoDB-compatible embedded database server with wire protocol support, backed by a high-performance Rust engine.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHFIQUFxSDtDQUNuSSxDQUFBIn0=
|
package/dist_ts/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { commitinfo } from './00_commitinfo_data.js';
|
|
2
2
|
export * from './ts_smartdb/index.js';
|
|
3
3
|
export { LocalSmartDb } from './ts_local/index.js';
|
|
4
|
-
export type { ILocalSmartDbOptions, ILocalSmartDbConnectionInfo, ILocalSmartDbOfflineInspectionLimits, ILocalSmartDbOfflineStringValueInspection, TLocalSmartDbOfflineStringValueInspectionResult, } from './ts_local/index.js';
|
|
4
|
+
export type { ILocalSmartDbOptions, ILocalSmartDbConnectionInfo, ILocalSmartDbOfflineInspectionLimits, ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits, ILocalSmartDbOfflinePhysicalNamespaceInspection, ILocalSmartDbOfflinePhysicalNamespaceInspectionResult, ILocalSmartDbOfflineStringValueInspection, TLocalSmartDbOfflineStringValueInspectionResult, } from './ts_local/index.js';
|
|
5
5
|
export { AuthMetadataMigrationRunner, StorageMigrator, type IAuthMetadataPermissionMigrationBridge, type TAuthMetadataMigrationRunnerStatus, } from './ts_migration/index.js';
|
|
6
6
|
export { commitinfo };
|
|
7
7
|
export type { IOpLogEntry, IOpLogResult, IOpLogStats, IRevertResult, ICollectionInfo, IDocumentsResult, ISmartDbMetrics, ISmartDbHealth, ISmartDbResourceFence, ISmartDbResourceFenceReceipt, ISmartDbHeldPublicationReceipt, ISmartDbCommitDatabasePublicationInput, ISmartDbManagementOperationOptions, ISmartDbDatabaseResourceFenceState, ISmartDbDatabaseAllocationIdentity, ISmartDbDatabaseAllocationLifecycle, ISmartDbDatabaseAllocationReadAccessGrantIdentity, ISmartDbIssueDatabaseAllocationReadAccessGrantInput, ISmartDbIssueDatabaseAllocationReadAccessGrantResult, ISmartDbRevokeDatabaseAllocationReadAccessGrantInput, ISmartDbRevokeDatabaseAllocationReadAccessGrantResult, TSmartDbCommitDatabasePublicationResult, TSmartDbResourceFenceErrorCode, TSmartDbAllocationReadAccessGrantErrorCode, ISmartDbDatabaseTenantInput, ISmartDbAttestDatabaseTenantInput, ISmartDbAttestDatabaseTenantResult, ISmartDbEnsureDatabaseTenantInput, ISmartDbEnsureDatabaseTenantResult, ISmartDbAllocateDatabaseTenantInput, ISmartDbAllocateDatabaseTenantResult, ISmartDbDeleteDatabaseTenantInput, ISmartDbRotateDatabaseTenantPasswordInput, ISmartDbDatabaseTenantDescriptor, ISmartDbDeleteDatabaseTenantResult, ISmartDbDatabaseExportCollection, ISmartDbDatabaseExport, ISmartDbDatabaseExportLimits, ISmartDbExportDatabaseInput, ISmartDbDatabaseContentDigestLimits, ISmartDbGetDatabaseContentDigestInput, ISmartDbDatabaseContentDigest, ISmartDbImportDatabaseInput, ISmartDbImportDatabaseResult, TSmartDbEffectivePayloadInputV1, } from './ts_smartdb/index.js';
|
package/dist_ts/index.js
CHANGED
|
@@ -8,4 +8,4 @@ export { AuthMetadataMigrationRunner, StorageMigrator, } from './ts_migration/in
|
|
|
8
8
|
// Export commitinfo
|
|
9
9
|
export { commitinfo };
|
|
10
10
|
export { SmartDbAllocationReadAccessGrantError, normalizeSmartDbAllocationReadAccessGrantError, smartDbAllocationReadAccessGrantErrorCodes, SmartDbResourceFenceError, normalizeSmartDbResourceFenceError, smartDbResourceFenceErrorCodes, createSmartDbEffectivePayloadSha256V1, } from './ts_smartdb/index.js';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsNkJBQTZCO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsc0JBQXNCO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVluRCxtQkFBbUI7QUFDbkIsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixlQUFlLEdBR2hCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztBQWtEdEIsT0FBTyxFQUNMLHFDQUFxQyxFQUNyQyw4Q0FBOEMsRUFDOUMsMENBQTBDLEVBQzFDLHlCQUF5QixFQUN6QixrQ0FBa0MsRUFDbEMsOEJBQThCLEVBQzlCLHFDQUFxQyxHQUN0QyxNQUFNLHVCQUF1QixDQUFDIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SmartdbServer, type ILocalSmartDbOfflineStringValueInspection, type ISmartDbManagementOperationOptions, type TLocalSmartDbOfflineStringValueInspectionResult } from '../ts_smartdb/index.js';
|
|
1
|
+
import { SmartdbServer, type ILocalSmartDbOfflinePhysicalNamespaceInspection, type ILocalSmartDbOfflinePhysicalNamespaceInspectionResult, type ILocalSmartDbOfflineStringValueInspection, type ISmartDbManagementOperationOptions, type TLocalSmartDbOfflineStringValueInspectionResult } from '../ts_smartdb/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* Connection information returned by LocalSmartDb.start()
|
|
4
4
|
*/
|
|
@@ -48,6 +48,12 @@ export declare class LocalSmartDb {
|
|
|
48
48
|
private generatedSocketPath;
|
|
49
49
|
constructor(options: ILocalSmartDbOptions);
|
|
50
50
|
private static createOfflineInspectionBridge;
|
|
51
|
+
private static runOfflineInspection;
|
|
52
|
+
/**
|
|
53
|
+
* Inspect physical database and collection names while the owning engine is stopped.
|
|
54
|
+
* This starts only the Rust management sidecar and never initializes storage.
|
|
55
|
+
*/
|
|
56
|
+
static inspectOfflinePhysicalNamespaces(inputArg: ILocalSmartDbOfflinePhysicalNamespaceInspection, optionsArg?: ISmartDbManagementOperationOptions): Promise<ILocalSmartDbOfflinePhysicalNamespaceInspectionResult>;
|
|
51
57
|
/**
|
|
52
58
|
* Inspect one exact string value while the owning LocalSmartDb engine is stopped.
|
|
53
59
|
* This starts only the Rust management sidecar and never initializes storage.
|
|
@@ -5,7 +5,7 @@ import * as path from 'path';
|
|
|
5
5
|
import * as os from 'os';
|
|
6
6
|
import { RustDbBridge, SmartdbServer, } from '../ts_smartdb/index.js';
|
|
7
7
|
import { StorageMigrator } from '../ts_migration/index.js';
|
|
8
|
-
import { normalizeLocalSmartDbOfflineInspectionInput, validateSmartDbManagementOperationOptions, } from '../ts_smartdb/offline-inspection.js';
|
|
8
|
+
import { normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput, normalizeLocalSmartDbOfflineInspectionInput, validateSmartDbManagementOperationOptions, } from '../ts_smartdb/offline-inspection.js';
|
|
9
9
|
/**
|
|
10
10
|
* LocalSmartDb - Lightweight local MongoDB-compatible database using Unix sockets
|
|
11
11
|
*
|
|
@@ -43,15 +43,11 @@ export class LocalSmartDb {
|
|
|
43
43
|
static createOfflineInspectionBridge() {
|
|
44
44
|
return new RustDbBridge();
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
* This starts only the Rust management sidecar and never initializes storage.
|
|
49
|
-
*/
|
|
50
|
-
static async inspectOfflineStringValue(inputArg, optionsArg) {
|
|
51
|
-
const validatedInput = normalizeLocalSmartDbOfflineInspectionInput(inputArg);
|
|
46
|
+
static async runOfflineInspection(inputArg, optionsArg, normalizeInputArg, inspectArg) {
|
|
47
|
+
const validatedInput = normalizeInputArg(inputArg);
|
|
52
48
|
validateSmartDbManagementOperationOptions(optionsArg);
|
|
53
49
|
optionsArg?.signal?.throwIfAborted();
|
|
54
|
-
const input =
|
|
50
|
+
const input = normalizeInputArg({
|
|
55
51
|
...validatedInput,
|
|
56
52
|
folderPath: path.resolve(validatedInput.folderPath),
|
|
57
53
|
});
|
|
@@ -89,7 +85,7 @@ export class LocalSmartDb {
|
|
|
89
85
|
timeoutMs: remainingMs,
|
|
90
86
|
};
|
|
91
87
|
}
|
|
92
|
-
result = await bridge
|
|
88
|
+
result = await inspectArg(bridge, input, commandOptions);
|
|
93
89
|
}
|
|
94
90
|
catch (error) {
|
|
95
91
|
operationFailed = true;
|
|
@@ -109,6 +105,20 @@ export class LocalSmartDb {
|
|
|
109
105
|
}
|
|
110
106
|
return result;
|
|
111
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Inspect physical database and collection names while the owning engine is stopped.
|
|
110
|
+
* This starts only the Rust management sidecar and never initializes storage.
|
|
111
|
+
*/
|
|
112
|
+
static async inspectOfflinePhysicalNamespaces(inputArg, optionsArg) {
|
|
113
|
+
return LocalSmartDb.runOfflineInspection(inputArg, optionsArg, normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput, (bridgeArg, input, commandOptions) => bridgeArg.inspectOfflinePhysicalNamespaces(input, commandOptions));
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Inspect one exact string value while the owning LocalSmartDb engine is stopped.
|
|
117
|
+
* This starts only the Rust management sidecar and never initializes storage.
|
|
118
|
+
*/
|
|
119
|
+
static async inspectOfflineStringValue(inputArg, optionsArg) {
|
|
120
|
+
return LocalSmartDb.runOfflineInspection(inputArg, optionsArg, normalizeLocalSmartDbOfflineInspectionInput, (bridgeArg, input, commandOptions) => bridgeArg.inspectOfflineStringValue(input, commandOptions));
|
|
121
|
+
}
|
|
112
122
|
/**
|
|
113
123
|
* Generate a unique socket path in /tmp
|
|
114
124
|
*/
|
|
@@ -236,4 +246,4 @@ export class LocalSmartDb {
|
|
|
236
246
|
}
|
|
237
247
|
}
|
|
238
248
|
}
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5sb2NhbHNtYXJ0ZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy90c19sb2NhbC9jbGFzc2VzLmxvY2Fsc21hcnRkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEtBQUssR0FBRyxNQUFNLEtBQUssQ0FBQztBQUMzQixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQ0wsWUFBWSxFQUNaLGFBQWEsR0FNZCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsNERBQTRELEVBQzVELDJDQUEyQyxFQUMzQyx5Q0FBeUMsR0FDMUMsTUFBTSxxQ0FBcUMsQ0FBQztBQW1CN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBS3ZCLFlBQVksT0FBNkI7UUFIakMsV0FBTSxHQUF5QixJQUFJLENBQUM7UUFDcEMsd0JBQW1CLEdBQWtCLElBQUksQ0FBQztRQUdoRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRU8sTUFBTSxDQUFDLDZCQUE2QjtRQUMxQyxPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBSXZDLFFBQWdCLEVBQ2hCLFVBQTBELEVBQzFELGlCQUErQyxFQUMvQyxVQUlxQjtRQUVyQixNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCx5Q0FBeUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxV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
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { LocalSmartDb } from './classes.localsmartdb.js';
|
|
2
2
|
export type { ILocalSmartDbOptions, ILocalSmartDbConnectionInfo } from './classes.localsmartdb.js';
|
|
3
|
-
export type { ILocalSmartDbOfflineInspectionLimits, ILocalSmartDbOfflineStringValueInspection, TLocalSmartDbOfflineStringValueInspectionResult, } from '../ts_smartdb/service-types.js';
|
|
3
|
+
export type { ILocalSmartDbOfflineInspectionLimits, ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits, ILocalSmartDbOfflinePhysicalNamespaceInspection, ILocalSmartDbOfflinePhysicalNamespaceInspectionResult, ILocalSmartDbOfflineStringValueInspection, TLocalSmartDbOfflineStringValueInspectionResult, } from '../ts_smartdb/service-types.js';
|
|
@@ -2,7 +2,7 @@ export { SmartdbServer } from './server/SmartdbServer.js';
|
|
|
2
2
|
export type { ISmartdbAuthOptions, ISmartdbAuthUser, ISmartdbOplogOptions, ISmartdbServerOptions, ISmartdbTlsOptions, } from './server/SmartdbServer.js';
|
|
3
3
|
export { RustDbBridge, SmartDbManagementOperationTerminationError, } from './rust-db-bridge.js';
|
|
4
4
|
export type { IOpLogEntry, IOpLogResult, IOpLogStats, IRevertResult, ICollectionInfo, IDocumentsResult, ISmartDbMetrics, } from './rust-db-bridge.js';
|
|
5
|
-
export type { ISmartDbHealth, ISmartDbResourceFence, ISmartDbResourceFenceReceipt, ISmartDbHeldPublicationReceipt, ISmartDbCommitDatabasePublicationInput, ISmartDbManagementOperationOptions, ISmartDbDatabaseResourceFenceState, ISmartDbDatabaseAllocationIdentity, ISmartDbDatabaseAllocationLifecycle, ISmartDbDatabaseAllocationReadAccessGrantIdentity, ISmartDbIssueDatabaseAllocationReadAccessGrantInput, ISmartDbIssueDatabaseAllocationReadAccessGrantResult, ISmartDbRevokeDatabaseAllocationReadAccessGrantInput, ISmartDbRevokeDatabaseAllocationReadAccessGrantResult, ILocalSmartDbOfflineInspectionLimits, ILocalSmartDbOfflineStringValueInspection, TLocalSmartDbOfflineStringValueInspectionResult, TSmartDbCommitDatabasePublicationResult, TSmartDbResourceFenceErrorCode, TSmartDbAllocationReadAccessGrantErrorCode, ISmartDbDatabaseTenantInput, ISmartDbAttestDatabaseTenantInput, ISmartDbAttestDatabaseTenantResult, ISmartDbEnsureDatabaseTenantInput, ISmartDbEnsureDatabaseTenantResult, ISmartDbAllocateDatabaseTenantInput, ISmartDbAllocateDatabaseTenantResult, ISmartDbDeleteDatabaseTenantInput, ISmartDbRotateDatabaseTenantPasswordInput, ISmartDbDatabaseTenantDescriptor, ISmartDbDeleteDatabaseTenantResult, ISmartDbDatabaseExportCollection, ISmartDbDatabaseExport, ISmartDbDatabaseExportLimits, ISmartDbExportDatabaseInput, ISmartDbDatabaseContentDigestLimits, ISmartDbGetDatabaseContentDigestInput, ISmartDbDatabaseContentDigest, ISmartDbImportDatabaseInput, ISmartDbImportDatabaseResult, } from './service-types.js';
|
|
5
|
+
export type { ISmartDbHealth, ISmartDbResourceFence, ISmartDbResourceFenceReceipt, ISmartDbHeldPublicationReceipt, ISmartDbCommitDatabasePublicationInput, ISmartDbManagementOperationOptions, ISmartDbDatabaseResourceFenceState, ISmartDbDatabaseAllocationIdentity, ISmartDbDatabaseAllocationLifecycle, ISmartDbDatabaseAllocationReadAccessGrantIdentity, ISmartDbIssueDatabaseAllocationReadAccessGrantInput, ISmartDbIssueDatabaseAllocationReadAccessGrantResult, ISmartDbRevokeDatabaseAllocationReadAccessGrantInput, ISmartDbRevokeDatabaseAllocationReadAccessGrantResult, ILocalSmartDbOfflineInspectionLimits, ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits, ILocalSmartDbOfflinePhysicalNamespaceInspection, ILocalSmartDbOfflinePhysicalNamespaceInspectionResult, ILocalSmartDbOfflineStringValueInspection, TLocalSmartDbOfflineStringValueInspectionResult, TSmartDbCommitDatabasePublicationResult, TSmartDbResourceFenceErrorCode, TSmartDbAllocationReadAccessGrantErrorCode, ISmartDbDatabaseTenantInput, ISmartDbAttestDatabaseTenantInput, ISmartDbAttestDatabaseTenantResult, ISmartDbEnsureDatabaseTenantInput, ISmartDbEnsureDatabaseTenantResult, ISmartDbAllocateDatabaseTenantInput, ISmartDbAllocateDatabaseTenantResult, ISmartDbDeleteDatabaseTenantInput, ISmartDbRotateDatabaseTenantPasswordInput, ISmartDbDatabaseTenantDescriptor, ISmartDbDeleteDatabaseTenantResult, ISmartDbDatabaseExportCollection, ISmartDbDatabaseExport, ISmartDbDatabaseExportLimits, ISmartDbExportDatabaseInput, ISmartDbDatabaseContentDigestLimits, ISmartDbGetDatabaseContentDigestInput, ISmartDbDatabaseContentDigest, ISmartDbImportDatabaseInput, ISmartDbImportDatabaseResult, } from './service-types.js';
|
|
6
6
|
export { SmartDbAllocationReadAccessGrantError, normalizeSmartDbAllocationReadAccessGrantError, smartDbAllocationReadAccessGrantErrorCodes, SmartDbResourceFenceError, normalizeSmartDbResourceFenceError, smartDbResourceFenceErrorCodes, } from './service-types.js';
|
|
7
7
|
export type { TSmartDbEffectivePayloadInputV1 } from './resource-fencing.js';
|
|
8
8
|
export { createSmartDbEffectivePayloadSha256V1 } from './resource-fencing.js';
|
|
@@ -5,4 +5,4 @@ export { SmartdbServer } from './server/SmartdbServer.js';
|
|
|
5
5
|
export { RustDbBridge, SmartDbManagementOperationTerminationError, } from './rust-db-bridge.js';
|
|
6
6
|
export { SmartDbAllocationReadAccessGrantError, normalizeSmartDbAllocationReadAccessGrantError, smartDbAllocationReadAccessGrantErrorCodes, SmartDbResourceFenceError, normalizeSmartDbResourceFenceError, smartDbResourceFenceErrorCodes, } from './service-types.js';
|
|
7
7
|
export { createSmartDbEffectivePayloadSha256V1 } from './resource-fencing.js';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy90c19zbWFydGRiL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhEQUE4RDtBQUU5RCx5REFBeUQ7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUzFELHNFQUFzRTtBQUN0RSxPQUFPLEVBQ0wsWUFBWSxFQUNaLDBDQUEwQyxHQUMzQyxNQUFNLHFCQUFxQixDQUFDO0FBMkQ3QixPQUFPLEVBQ0wscUNBQXFDLEVBQ3JDLDhDQUE4QyxFQUM5QywwQ0FBMEMsRUFDMUMseUJBQXlCLEVBQ3pCLGtDQUFrQyxFQUNsQyw4QkFBOEIsR0FDL0IsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyJ9
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ILocalSmartDbOfflineStringValueInspection, ISmartDbManagementOperationOptions } from './service-types.js';
|
|
1
|
+
import type { ILocalSmartDbOfflinePhysicalNamespaceInspection, ILocalSmartDbOfflineStringValueInspection, ISmartDbManagementOperationOptions } from './service-types.js';
|
|
2
2
|
export declare const localSmartDbOfflineInspectionBounds: {
|
|
3
3
|
readonly maximumFolderPathBytes: 4096;
|
|
4
4
|
readonly maximumNamespaceComponentBytes: 255;
|
|
@@ -29,5 +29,56 @@ export declare const localSmartDbOfflineInspectionBounds: {
|
|
|
29
29
|
};
|
|
30
30
|
};
|
|
31
31
|
};
|
|
32
|
+
export declare const localSmartDbOfflinePhysicalNamespaceInspectionBounds: {
|
|
33
|
+
readonly maximumFolderPathBytes: 4096;
|
|
34
|
+
readonly maximumRequestBytes: number;
|
|
35
|
+
readonly limits: {
|
|
36
|
+
readonly maximumEntries: {
|
|
37
|
+
readonly minimum: 1;
|
|
38
|
+
readonly maximum: 100000;
|
|
39
|
+
};
|
|
40
|
+
readonly maximumDatabases: {
|
|
41
|
+
readonly minimum: 1;
|
|
42
|
+
readonly maximum: 4096;
|
|
43
|
+
};
|
|
44
|
+
readonly maximumCollections: {
|
|
45
|
+
readonly minimum: 1;
|
|
46
|
+
readonly maximum: 10000;
|
|
47
|
+
};
|
|
48
|
+
readonly maximumIndexes: {
|
|
49
|
+
readonly minimum: 1;
|
|
50
|
+
readonly maximum: 100000;
|
|
51
|
+
};
|
|
52
|
+
readonly maximumDataFileBytes: {
|
|
53
|
+
readonly minimum: 64;
|
|
54
|
+
readonly maximum: number;
|
|
55
|
+
};
|
|
56
|
+
readonly maximumWalFileBytes: {
|
|
57
|
+
readonly minimum: 64;
|
|
58
|
+
readonly maximum: number;
|
|
59
|
+
};
|
|
60
|
+
readonly maximumIndexFileBytes: {
|
|
61
|
+
readonly minimum: 2;
|
|
62
|
+
readonly maximum: number;
|
|
63
|
+
};
|
|
64
|
+
readonly maximumTotalFileBytes: {
|
|
65
|
+
readonly minimum: 1;
|
|
66
|
+
readonly maximum: number;
|
|
67
|
+
};
|
|
68
|
+
readonly maximumRecordsPerCollection: {
|
|
69
|
+
readonly minimum: 1;
|
|
70
|
+
readonly maximum: 1000000;
|
|
71
|
+
};
|
|
72
|
+
readonly maximumRecordBytes: {
|
|
73
|
+
readonly minimum: 22;
|
|
74
|
+
readonly maximum: number;
|
|
75
|
+
};
|
|
76
|
+
readonly maximumResultBytes: {
|
|
77
|
+
readonly minimum: 32;
|
|
78
|
+
readonly maximum: number;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
};
|
|
32
82
|
export declare const normalizeLocalSmartDbOfflineInspectionInput: (inputArg: ILocalSmartDbOfflineStringValueInspection) => ILocalSmartDbOfflineStringValueInspection;
|
|
83
|
+
export declare const normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput: (inputArg: ILocalSmartDbOfflinePhysicalNamespaceInspection) => ILocalSmartDbOfflinePhysicalNamespaceInspection;
|
|
33
84
|
export declare const validateSmartDbManagementOperationOptions: (optionsArg?: ISmartDbManagementOperationOptions) => void;
|
|
@@ -14,6 +14,23 @@ export const localSmartDbOfflineInspectionBounds = {
|
|
|
14
14
|
maximumResultBytes: { minimum: 1, maximum: 16 * 1024 * 1024 },
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
|
+
export const localSmartDbOfflinePhysicalNamespaceInspectionBounds = {
|
|
18
|
+
maximumFolderPathBytes: 4096,
|
|
19
|
+
maximumRequestBytes: 2 * 1024 * 1024,
|
|
20
|
+
limits: {
|
|
21
|
+
maximumEntries: { minimum: 1, maximum: 100_000 },
|
|
22
|
+
maximumDatabases: { minimum: 1, maximum: 4096 },
|
|
23
|
+
maximumCollections: { minimum: 1, maximum: 10_000 },
|
|
24
|
+
maximumIndexes: { minimum: 1, maximum: 100_000 },
|
|
25
|
+
maximumDataFileBytes: { minimum: 64, maximum: 256 * 1024 * 1024 },
|
|
26
|
+
maximumWalFileBytes: { minimum: 64, maximum: 64 * 1024 * 1024 },
|
|
27
|
+
maximumIndexFileBytes: { minimum: 2, maximum: 16 * 1024 * 1024 },
|
|
28
|
+
maximumTotalFileBytes: { minimum: 1, maximum: 1024 * 1024 * 1024 * 1024 },
|
|
29
|
+
maximumRecordsPerCollection: { minimum: 1, maximum: 1_000_000 },
|
|
30
|
+
maximumRecordBytes: { minimum: 22, maximum: 17 * 1024 * 1024 },
|
|
31
|
+
maximumResultBytes: { minimum: 32, maximum: 16 * 1024 * 1024 },
|
|
32
|
+
},
|
|
33
|
+
};
|
|
17
34
|
const inputKeys = new Set([
|
|
18
35
|
'folderPath',
|
|
19
36
|
'databaseName',
|
|
@@ -33,7 +50,41 @@ const limitKeys = [
|
|
|
33
50
|
const limitKeySet = new Set(limitKeys);
|
|
34
51
|
const requestStructuralBytes = plugins.buffer.Buffer.byteLength('{"folderPath":,"databaseName":,"collectionName":,"match":{"field":,"value":},"valueField":,"limits":{"maximumDataFileBytes":,"maximumWalFileBytes":,"maximumRecords":,"maximumRecordBytes":,"maximumResultBytes":}}', 'utf8');
|
|
35
52
|
const requestEnvelopeBytes = plugins.buffer.Buffer.byteLength('{"id":"req_9007199254740991","method":"inspectOfflineStringValue","params":}', 'utf8');
|
|
53
|
+
const physicalNamespaceInputKeys = new Set(['folderPath', 'limits']);
|
|
54
|
+
const physicalNamespaceLimitKeys = [
|
|
55
|
+
'maximumEntries',
|
|
56
|
+
'maximumDatabases',
|
|
57
|
+
'maximumCollections',
|
|
58
|
+
'maximumIndexes',
|
|
59
|
+
'maximumDataFileBytes',
|
|
60
|
+
'maximumWalFileBytes',
|
|
61
|
+
'maximumIndexFileBytes',
|
|
62
|
+
'maximumTotalFileBytes',
|
|
63
|
+
'maximumRecordsPerCollection',
|
|
64
|
+
'maximumRecordBytes',
|
|
65
|
+
'maximumResultBytes',
|
|
66
|
+
];
|
|
67
|
+
const physicalNamespaceLimitKeySet = new Set(physicalNamespaceLimitKeys);
|
|
36
68
|
const isRecord = (valueArg) => typeof valueArg === 'object' && valueArg !== null && !Array.isArray(valueArg);
|
|
69
|
+
const requirePhysicalNamespacePlainObject = (valueArg, allowedKeysArg, labelArg) => {
|
|
70
|
+
if (!isRecord(valueArg)) {
|
|
71
|
+
throw new TypeError(`LocalSmartDb offline physical namespace inspection ${labelArg} must be a plain object`);
|
|
72
|
+
}
|
|
73
|
+
for (const key in valueArg) {
|
|
74
|
+
if (!allowedKeysArg.has(key)) {
|
|
75
|
+
throw new TypeError(`LocalSmartDb offline physical namespace inspection ${labelArg} contains unknown key '${key}'`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (Object.getPrototypeOf(valueArg) !== Object.prototype) {
|
|
79
|
+
throw new TypeError(`LocalSmartDb offline physical namespace inspection ${labelArg} must be a plain object`);
|
|
80
|
+
}
|
|
81
|
+
for (const key of allowedKeysArg) {
|
|
82
|
+
if (!Object.prototype.propertyIsEnumerable.call(valueArg, key)) {
|
|
83
|
+
throw new TypeError(`LocalSmartDb offline physical namespace inspection ${labelArg} must contain own enumerable key '${key}'`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return valueArg;
|
|
87
|
+
};
|
|
37
88
|
const rejectUnknownEnumerableKeys = (valueArg, allowedKeysArg, labelArg) => {
|
|
38
89
|
for (const key in valueArg) {
|
|
39
90
|
if (!allowedKeysArg.has(key)) {
|
|
@@ -171,6 +222,58 @@ export const normalizeLocalSmartDbOfflineInspectionInput = (inputArg) => {
|
|
|
171
222
|
}
|
|
172
223
|
return normalized;
|
|
173
224
|
};
|
|
225
|
+
export const normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput = (inputArg) => {
|
|
226
|
+
const inputRecord = requirePhysicalNamespacePlainObject(inputArg, physicalNamespaceInputKeys, 'input');
|
|
227
|
+
const limits = requirePhysicalNamespacePlainObject(inputRecord.limits, physicalNamespaceLimitKeySet, 'limits');
|
|
228
|
+
const normalized = {
|
|
229
|
+
folderPath: inputRecord.folderPath,
|
|
230
|
+
limits: {
|
|
231
|
+
maximumEntries: limits.maximumEntries,
|
|
232
|
+
maximumDatabases: limits.maximumDatabases,
|
|
233
|
+
maximumCollections: limits.maximumCollections,
|
|
234
|
+
maximumIndexes: limits.maximumIndexes,
|
|
235
|
+
maximumDataFileBytes: limits.maximumDataFileBytes,
|
|
236
|
+
maximumWalFileBytes: limits.maximumWalFileBytes,
|
|
237
|
+
maximumIndexFileBytes: limits.maximumIndexFileBytes,
|
|
238
|
+
maximumTotalFileBytes: limits.maximumTotalFileBytes,
|
|
239
|
+
maximumRecordsPerCollection: limits.maximumRecordsPerCollection,
|
|
240
|
+
maximumRecordBytes: limits.maximumRecordBytes,
|
|
241
|
+
maximumResultBytes: limits.maximumResultBytes,
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
const bounds = localSmartDbOfflinePhysicalNamespaceInspectionBounds;
|
|
245
|
+
if (typeof normalized.folderPath !== 'string') {
|
|
246
|
+
throw new TypeError('LocalSmartDb offline physical namespace inspection folderPath must be a string');
|
|
247
|
+
}
|
|
248
|
+
const folderPathBytes = plugins.buffer.Buffer.byteLength(normalized.folderPath, 'utf8');
|
|
249
|
+
if (folderPathBytes < 1 || folderPathBytes > bounds.maximumFolderPathBytes) {
|
|
250
|
+
throw new RangeError(`LocalSmartDb offline physical namespace inspection folderPath must be between 1 and ${bounds.maximumFolderPathBytes} UTF-8 bytes`);
|
|
251
|
+
}
|
|
252
|
+
for (const character of normalized.folderPath) {
|
|
253
|
+
if (/\p{Cc}/u.test(character)) {
|
|
254
|
+
throw new TypeError('LocalSmartDb offline physical namespace inspection folderPath must not contain control characters');
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
for (const key of physicalNamespaceLimitKeys) {
|
|
258
|
+
const value = normalized.limits[key];
|
|
259
|
+
const range = bounds.limits[key];
|
|
260
|
+
if (!Number.isSafeInteger(value) || value < range.minimum || value > range.maximum) {
|
|
261
|
+
throw new RangeError(`LocalSmartDb offline physical namespace inspection limits.${key} must be a safe integer between ${range.minimum} and ${range.maximum}`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
const requestBytes = plugins.buffer.Buffer.byteLength(JSON.stringify({
|
|
265
|
+
id: 'req_9007199254740991',
|
|
266
|
+
method: 'inspectOfflinePhysicalNamespaces',
|
|
267
|
+
params: {
|
|
268
|
+
folderPath: normalized.folderPath,
|
|
269
|
+
...normalized.limits,
|
|
270
|
+
},
|
|
271
|
+
}), 'utf8');
|
|
272
|
+
if (requestBytes > bounds.maximumRequestBytes) {
|
|
273
|
+
throw new RangeError(`LocalSmartDb offline physical namespace inspection request exceeds the ${bounds.maximumRequestBytes}-byte serialized limit`);
|
|
274
|
+
}
|
|
275
|
+
return normalized;
|
|
276
|
+
};
|
|
174
277
|
export const validateSmartDbManagementOperationOptions = (optionsArg) => {
|
|
175
278
|
if (optionsArg === undefined)
|
|
176
279
|
return;
|
|
@@ -184,4 +287,4 @@ export const validateSmartDbManagementOperationOptions = (optionsArg) => {
|
|
|
184
287
|
throw new RangeError(`SmartDB management operation timeoutMs must be an integer between 1 and ${localSmartDbOfflineInspectionBounds.maximumTimeoutMs}`);
|
|
185
288
|
}
|
|
186
289
|
};
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZS1pbnNwZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvdHNfc21hcnRkYi9vZmZsaW5lLWluc3BlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFNeEMsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUc7SUFDakQsc0JBQXNCLEVBQUUsSUFBSTtJQUM1Qiw4QkFBOEIsRUFBRSxHQUFHO0lBQ25DLHFCQUFxQixFQUFFLEdBQUc7SUFDMUIsc0JBQXNCLEVBQUUsSUFBSSxHQUFHLElBQUk7SUFDbkMsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ3BDLGdCQUFnQixFQUFFLGFBQWE7SUFDL0IsTUFBTSxFQUFFO1FBQ04sb0JBQW9CLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRTtRQUNqRSxtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFO1FBQy9ELGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUNsRCxrQkFBa0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFO1FBQzlELGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEVBQUU7S0FDOUQ7Q0FDTyxDQUFDO0FBRVgsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDeEIsWUFBWTtJQUNaLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsT0FBTztJQUNQLFlBQVk7SUFDWixRQUFRO0NB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
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZS1pbnNwZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvdHNfc21hcnRkYi9vZmZsaW5lLWluc3BlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFPeEMsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUc7SUFDakQsc0JBQXNCLEVBQUUsSUFBSTtJQUM1Qiw4QkFBOEIsRUFBRSxHQUFHO0lBQ25DLHFCQUFxQixFQUFFLEdBQUc7SUFDMUIsc0JBQXNCLEVBQUUsSUFBSSxHQUFHLElBQUk7SUFDbkMsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ3BDLGdCQUFnQixFQUFFLGFBQWE7SUFDL0IsTUFBTSxFQUFFO1FBQ04sb0JBQW9CLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRTtRQUNqRSxtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFO1FBQy9ELGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUNsRCxrQkFBa0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFO1FBQzlELGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEVBQUU7S0FDOUQ7Q0FDTyxDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0sb0RBQW9ELEdBQUc7SUFDbEUsc0JBQXNCLEVBQUUsSUFBSTtJQUM1QixtQkFBbUIsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFD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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
|
-
import type { ISmartDbHealth, ISmartDbDatabaseTenantInput, ISmartDbAttestDatabaseTenantInput, ISmartDbAttestDatabaseTenantResult, ISmartDbEnsureDatabaseTenantInput, ISmartDbEnsureDatabaseTenantResult, ISmartDbAllocateDatabaseTenantInput, ISmartDbAllocateDatabaseTenantResult, ISmartDbDeleteDatabaseTenantInput, ISmartDbRotateDatabaseTenantPasswordInput, ISmartDbDatabaseTenantDescriptor, ISmartDbDeleteDatabaseTenantResult, ISmartDbIssueDatabaseAllocationReadAccessGrantInput, ISmartDbIssueDatabaseAllocationReadAccessGrantResult, ISmartDbRevokeDatabaseAllocationReadAccessGrantInput, ISmartDbRevokeDatabaseAllocationReadAccessGrantResult, ISmartDbDatabaseExport, ISmartDbExportDatabaseInput, ISmartDbDatabaseContentDigest, ISmartDbGetDatabaseContentDigestInput, ISmartDbImportDatabaseInput, ISmartDbImportDatabaseResult, ISmartDbCommitDatabasePublicationInput, ISmartDbManagementOperationOptions, ISmartDbDatabaseResourceFenceState, ILocalSmartDbOfflineStringValueInspection, TLocalSmartDbOfflineStringValueInspectionResult, TSmartDbCommitDatabasePublicationResult } from './service-types.js';
|
|
4
|
-
export type { ISmartDbHealth, ISmartDbDatabaseTenantInput, ISmartDbAttestDatabaseTenantInput, ISmartDbAttestDatabaseTenantResult, ISmartDbEnsureDatabaseTenantInput, ISmartDbEnsureDatabaseTenantResult, ISmartDbAllocateDatabaseTenantInput, ISmartDbAllocateDatabaseTenantResult, ISmartDbDeleteDatabaseTenantInput, ISmartDbRotateDatabaseTenantPasswordInput, ISmartDbDatabaseTenantDescriptor, ISmartDbDeleteDatabaseTenantResult, ISmartDbDatabaseAllocationReadAccessGrantIdentity, ISmartDbIssueDatabaseAllocationReadAccessGrantInput, ISmartDbIssueDatabaseAllocationReadAccessGrantResult, ISmartDbRevokeDatabaseAllocationReadAccessGrantInput, ISmartDbRevokeDatabaseAllocationReadAccessGrantResult, ISmartDbDatabaseExportCollection, ISmartDbDatabaseExport, ISmartDbImportDatabaseInput, ISmartDbImportDatabaseResult, ISmartDbHeldPublicationReceipt, ISmartDbCommitDatabasePublicationInput, ISmartDbManagementOperationOptions, ISmartDbDatabaseResourceFenceState, ILocalSmartDbOfflineInspectionLimits, ILocalSmartDbOfflineStringValueInspection, TLocalSmartDbOfflineStringValueInspectionResult, TSmartDbCommitDatabasePublicationResult, } from './service-types.js';
|
|
3
|
+
import type { ISmartDbHealth, ISmartDbDatabaseTenantInput, ISmartDbAttestDatabaseTenantInput, ISmartDbAttestDatabaseTenantResult, ISmartDbEnsureDatabaseTenantInput, ISmartDbEnsureDatabaseTenantResult, ISmartDbAllocateDatabaseTenantInput, ISmartDbAllocateDatabaseTenantResult, ISmartDbDeleteDatabaseTenantInput, ISmartDbRotateDatabaseTenantPasswordInput, ISmartDbDatabaseTenantDescriptor, ISmartDbDeleteDatabaseTenantResult, ISmartDbIssueDatabaseAllocationReadAccessGrantInput, ISmartDbIssueDatabaseAllocationReadAccessGrantResult, ISmartDbRevokeDatabaseAllocationReadAccessGrantInput, ISmartDbRevokeDatabaseAllocationReadAccessGrantResult, ISmartDbDatabaseExport, ISmartDbExportDatabaseInput, ISmartDbDatabaseContentDigest, ISmartDbGetDatabaseContentDigestInput, ISmartDbImportDatabaseInput, ISmartDbImportDatabaseResult, ISmartDbCommitDatabasePublicationInput, ISmartDbManagementOperationOptions, ISmartDbDatabaseResourceFenceState, ILocalSmartDbOfflinePhysicalNamespaceInspection, ILocalSmartDbOfflinePhysicalNamespaceInspectionResult, ILocalSmartDbOfflineStringValueInspection, TLocalSmartDbOfflineStringValueInspectionResult, TSmartDbCommitDatabasePublicationResult } from './service-types.js';
|
|
4
|
+
export type { ISmartDbHealth, ISmartDbDatabaseTenantInput, ISmartDbAttestDatabaseTenantInput, ISmartDbAttestDatabaseTenantResult, ISmartDbEnsureDatabaseTenantInput, ISmartDbEnsureDatabaseTenantResult, ISmartDbAllocateDatabaseTenantInput, ISmartDbAllocateDatabaseTenantResult, ISmartDbDeleteDatabaseTenantInput, ISmartDbRotateDatabaseTenantPasswordInput, ISmartDbDatabaseTenantDescriptor, ISmartDbDeleteDatabaseTenantResult, ISmartDbDatabaseAllocationReadAccessGrantIdentity, ISmartDbIssueDatabaseAllocationReadAccessGrantInput, ISmartDbIssueDatabaseAllocationReadAccessGrantResult, ISmartDbRevokeDatabaseAllocationReadAccessGrantInput, ISmartDbRevokeDatabaseAllocationReadAccessGrantResult, ISmartDbDatabaseExportCollection, ISmartDbDatabaseExport, ISmartDbImportDatabaseInput, ISmartDbImportDatabaseResult, ISmartDbHeldPublicationReceipt, ISmartDbCommitDatabasePublicationInput, ISmartDbManagementOperationOptions, ISmartDbDatabaseResourceFenceState, ILocalSmartDbOfflineInspectionLimits, ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits, ILocalSmartDbOfflinePhysicalNamespaceInspection, ILocalSmartDbOfflinePhysicalNamespaceInspectionResult, ILocalSmartDbOfflineStringValueInspection, TLocalSmartDbOfflineStringValueInspectionResult, TSmartDbCommitDatabasePublicationResult, } from './service-types.js';
|
|
5
5
|
/**
|
|
6
6
|
* A single oplog entry returned from the Rust engine.
|
|
7
7
|
*/
|
|
@@ -145,6 +145,7 @@ export declare class RustDbBridge extends EventEmitter {
|
|
|
145
145
|
get running(): boolean;
|
|
146
146
|
get ownershipReleased(): boolean;
|
|
147
147
|
private awaitManagementOperationTermination;
|
|
148
|
+
inspectOfflinePhysicalNamespaces(inputArg: ILocalSmartDbOfflinePhysicalNamespaceInspection, optionsArg?: ISmartDbManagementOperationOptions): Promise<ILocalSmartDbOfflinePhysicalNamespaceInspectionResult>;
|
|
148
149
|
inspectOfflineStringValue(inputArg: ILocalSmartDbOfflineStringValueInspection, optionsArg?: ISmartDbManagementOperationOptions): Promise<TLocalSmartDbOfflineStringValueInspectionResult>;
|
|
149
150
|
transitionAuthMetadataPermissions(usersPathArg: string, expectedModeArg: number, targetModeArg: number, optionsArg?: ISmartDbManagementOperationOptions): Promise<TAuthMetadataPermissionTransitionStatus>;
|
|
150
151
|
startDb(config: ISmartDbRustConfig, optionsArg?: ISmartDbManagementOperationOptions): Promise<{
|
|
@@ -3,7 +3,7 @@ import * as path from 'path';
|
|
|
3
3
|
import * as url from 'url';
|
|
4
4
|
import { EventEmitter } from 'events';
|
|
5
5
|
import { normalizeSmartDbAllocationReadAccessGrantError, normalizeSmartDbResourceFenceError, } from './service-types.js';
|
|
6
|
-
import { normalizeLocalSmartDbOfflineInspectionInput, validateSmartDbManagementOperationOptions, } from './offline-inspection.js';
|
|
6
|
+
import { normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput, normalizeLocalSmartDbOfflineInspectionInput, validateSmartDbManagementOperationOptions, } from './offline-inspection.js';
|
|
7
7
|
export class SmartDbManagementOperationTerminationError extends AggregateError {
|
|
8
8
|
constructor(operationErrorArg, terminationErrorArg) {
|
|
9
9
|
super([operationErrorArg, terminationErrorArg], 'SmartDB management operation failed and Rust engine termination was incomplete', { cause: operationErrorArg });
|
|
@@ -205,6 +205,21 @@ export class RustDbBridge extends EventEmitter {
|
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
// --- Convenience methods for each management command ---
|
|
208
|
+
async inspectOfflinePhysicalNamespaces(inputArg, optionsArg) {
|
|
209
|
+
const input = normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput(inputArg);
|
|
210
|
+
validateSmartDbManagementOperationOptions(optionsArg);
|
|
211
|
+
const params = {
|
|
212
|
+
folderPath: input.folderPath,
|
|
213
|
+
...input.limits,
|
|
214
|
+
};
|
|
215
|
+
try {
|
|
216
|
+
return await this.bridge.sendCommand('inspectOfflinePhysicalNamespaces', params, optionsArg);
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
await this.awaitManagementOperationTermination(error);
|
|
220
|
+
throw error;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
208
223
|
async inspectOfflineStringValue(inputArg, optionsArg) {
|
|
209
224
|
const input = normalizeLocalSmartDbOfflineInspectionInput(inputArg);
|
|
210
225
|
validateSmartDbManagementOperationOptions(optionsArg);
|
|
@@ -397,4 +412,4 @@ export class RustDbBridge extends EventEmitter {
|
|
|
397
412
|
return this.bridge.sendCommand('getDocuments', { db, collection, limit, skip });
|
|
398
413
|
}
|
|
399
414
|
}
|
|
400
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVzdC1kYi1icmlkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy90c19zbWFydGRiL3J1c3QtZGItYnJpZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEMsT0FBTyxFQUNMLDhDQUE4QyxFQUM5QyxrQ0FBa0MsR0FDbkMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQ0wsMkNBQTJDLEVBQzNDLHlDQUF5QyxHQUMxQyxNQUFNLHlCQUF5QixDQUFDO0FBbUlqQyxNQUFNLE9BQU8sMENBQTJDLFNBQVEsY0FBYztJQUM1RSxZQUFZLGlCQUEwQixFQUFFLG1CQUE0QjtRQUNsRSxLQUFLLENBQ0gsQ0FBQyxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQyxFQUN4QyxnRkFBZ0YsRUFDaEYsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsQ0FDN0IsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsNENBQTRDLENBQUM7SUFDM0QsQ0FBQztDQUNGO0FBeUpEOzs7R0FHRztBQUNILFNBQVMsY0FBYztJQUNyQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLHVCQUF1QjtJQUM5QixNQUFNLE9BQU8sR0FBMkIsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN6RSxNQUFNLEtBQUssR0FBMkIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDZixPQUFPLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGVBQWU7SUFDdEIsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFFLENBQUM7SUFDckMsTUFBTSxNQUFNLEdBQUcsdUJBQXVCLEVBQUUsQ0FBQztJQUN6QyxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFFM0IsdURBQXVEO0lBQ3ZELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUUxRCx3QkFBd0I7SUFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQy9FLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUU3RSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFDRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGNBQWlDLE9BQU8sQ0FBQyxHQUFHO0lBRTVDLE9BQU87UUFDTCwyQkFBMkIsRUFBRSxXQUFXLENBQUMsMkJBQTJCLElBQUksR0FBRztRQUMzRSw2QkFBNkIsRUFBRSxXQUFXLENBQUMsNkJBQTZCLElBQUksR0FBRztLQUNoRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsWUFBWTtJQU01QztRQUNFLEtBQUssRUFBRSxDQUFDO1FBTEYseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBT2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBbUI7WUFDL0QsVUFBVSxFQUFFLFFBQVE7WUFDcEIsVUFBVSxFQUFFLHFCQUFxQjtZQUNqQyxxQkFBcUIsRUFBRSxxQkFBcUI7WUFDNUMsVUFBVSxFQUFFLGVBQWUsRUFBRTtZQUM3QixjQUFjLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEVBQUUsOERBQThEO1lBQ2pHLEdBQUcsRUFBRSxxQkFBcUIsRUFBRTtTQUM3QixDQUFDLENBQUM7UUFFSCx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBbUIsRUFBRSxNQUFxQixFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztZQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUErQztRQUNoRSx5Q0FBeUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxJQUFJLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQ2hELDBEQUEwRCxFQUMxRDtnQkFDRSxJQUFJLEVBQUUsaUNBQWlDO2dCQUN2QyxNQUFNLEVBQUUsT0FBTztnQkFDZixLQUFLLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2hDLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7UUFDcEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxJQUFJLE9BQWtELENBQUM7UUFDdkQsSUFBSSxZQUFzQyxDQUFDO1FBQzNDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxPQUFPLENBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDeEUsSUFBSSxVQUFVLEVBQUUsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN4QyxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDeEIsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FDcEQsOENBQThDLFVBQVUsQ0FBQyxTQUFTLElBQUksRUFDdEU7d0JBQ0UsSUFBSSxFQUFFLGlDQUFpQzt3QkFDdkMsTUFBTSxFQUFFLE9BQU87cUJBQ2hCLENBQ0YsQ0FBQyxDQUFDO2dCQUNMLENBQUMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0IsQ0FBQztZQUNELElBQUksVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN2QixZQUFZLEdBQUcsR0FBRyxFQUFFO29CQUNsQixTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUNwRCx3Q0FBd0MsRUFDeEM7d0JBQ0UsSUFBSSxFQUFFLGlDQUFpQzt3QkFDdkMsTUFBTSxFQUFFLE9BQU87d0JBQ2YsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFPLENBQUMsTUFBTTtxQkFDakMsQ0FDRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQztnQkFDSCxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBQUMsT0FBTyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMxQixNQUFNLElBQUksMENBQTBDLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDaEYsQ0FBQztZQUNELE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxPQUFPO2dCQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxJQUFJLFlBQVksSUFBSSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZDLFVBQVUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQy9ELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUNkLFVBQTBEO1FBRTFELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDakMsQ0FBQztRQUVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUMvRCxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7UUFDdEMsQ0FBQyxFQUNELENBQUMsUUFBaUIsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUM7WUFDbkMsTUFBTSxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsS0FBSyxrQkFBa0IsQ0FBQyxJQUFJLENBQzFCLEdBQUcsRUFBRTtZQUNILElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixFQUFFLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7WUFDdEMsQ0FBQztRQUNILENBQUMsRUFDRCxHQUFHLEVBQUU7WUFDSCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNuRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFTyxLQUFLLENBQUMsbUNBQW1DLENBQUMsUUFBaUI7UUFDakUsTUFBTSwrQkFBK0IsR0FDbkMsUUFBUSxZQUFZLE9BQU8sQ0FBQyxTQUFTLENBQUMsc0JBQXNCO2VBQ3pEO2dCQUNELGlDQUFpQztnQkFDakMsaUNBQWlDO2FBQ2xDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUNqRCxJQUFJLCtCQUErQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMzRCxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN4RSxNQUFNLElBQUksMENBQTBDLENBQ2xELFFBQVEsRUFDUixJQUFJLENBQUMsa0JBQWtCLENBQ3hCLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLGtCQUFrQixDQUFDO1FBQzNCLENBQUM7UUFBQyxPQUFPLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLDBDQUEwQyxDQUNsRCxRQUFRLEVBQ1IsZ0JBQWdCLENBQ2pCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELDBEQUEwRDtJQUVuRCxLQUFLLENBQUMseUJBQXlCLENBQ3BDLFFBQW1ELEVBQ25ELFVBQStDO1FBRS9DLE1BQU0sS0FBSyxHQUFHLDJDQUEyQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLHlDQUF5QyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDbEMsMkJBQTJCLEVBQzNCLEtBQUssRUFDTCxVQUFVLENBQ3dDLENBQUM7UUFDdkQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLGlDQUFpQyxDQUM1QyxZQUFvQixFQUNwQixlQUF1QixFQUN2QixhQUFxQixFQUNyQixVQUErQztRQUUvQyx5Q0FBeUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUMxQyxtQ0FBbUMsRUFDbkM7Z0JBQ0UsU0FBUyxFQUFFLFlBQVk7Z0JBQ3ZCLFlBQVksRUFBRSxlQUFlO2dCQUM3QixVQUFVLEVBQUUsYUFBYTthQUMxQixFQUNELFVBQVUsQ0FDNEMsQ0FBQztZQUN6RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FDbEIsTUFBMEIsRUFDMUIsVUFBK0M7UUFFL0MseUNBQXlDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUNsQyxPQUFPLEVBQ1AsRUFBRSxNQUFNLEVBQUUsRUFDVixVQUFVLENBQ2tCLENBQUM7UUFDakMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU07UUFDakIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBMkIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUztRQUNwQixPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQTJCLENBQXlCLENBQUM7SUFDekcsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQTJCLENBQTZCLENBQUM7SUFDeEcsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTLENBQ3BCLFVBQStDO1FBRS9DLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDbEMsV0FBVyxFQUNYLEVBQTJCLEVBQzNCLFVBQVUsQ0FDTyxDQUFDO1FBQ3RCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxvQkFBb0IsQ0FDL0IsTUFBbUM7UUFFbkMsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBcUMsQ0FBQztRQUMzRyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sa0NBQWtDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsb0JBQW9CLENBQy9CLE1BQXlDLEVBQ3pDLFVBQStDO1FBRS9DLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDbEMsc0JBQXNCLEVBQ3RCLE1BQU0sRUFDTixVQUFVLENBQzJCLENBQUM7UUFDMUMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxNQUFNLGtDQUFrQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQixDQUMvQixNQUF5QyxFQUN6QyxVQUErQztRQUUvQyxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQ2xDLHNCQUFzQixFQUN0QixNQUFNLEVBQ04sVUFBVSxDQUMyQixDQUFDO1FBQzFDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsTUFBTSxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxzQkFBc0IsQ0FDakMsTUFBMkMsRUFDM0MsVUFBK0M7UUFFL0MsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUNsQyx3QkFBd0IsRUFDeEIsTUFBTSxFQUNOLFVBQVUsQ0FDNkIsQ0FBQztRQUM1QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RELE1BQU0sa0NBQWtDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsb0JBQW9CLENBQy9CLE1BQXlDLEVBQ3pDLFVBQStDO1FBRS9DLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDbEMsc0JBQXNCLEVBQ3RCLE1BQU0sRUFDTixVQUFVLENBQzJCLENBQUM7UUFDMUMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxNQUFNLGtDQUFrQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLHNDQUFzQyxDQUNqRCxNQUEyRCxFQUMzRCxVQUErQztRQUUvQyxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQ2xDLHdDQUF3QyxFQUN4QyxNQUFNLEVBQ04sVUFBVSxDQUM2QyxDQUFDO1FBQzVELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsTUFBTSw4Q0FBOEMsQ0FDbEQsa0NBQWtDLENBQUMsS0FBSyxDQUFDLEVBQ3pDLEtBQUssWUFBWSxPQUFPLENBQUMsU0FBUyxDQUFDLHNCQUFzQjtnQkFDdkQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7Z0JBQ3pCLENBQUMsQ0FBQyxTQUFTLENBQ2QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLHVDQUF1QyxDQUNsRCxNQUE0RCxFQUM1RCxVQUErQztRQUUvQyxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQ2xDLHlDQUF5QyxFQUN6QyxNQUFNLEVBQ04sVUFBVSxDQUM4QyxDQUFDO1FBQzdELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsTUFBTSw4Q0FBOEMsQ0FDbEQsa0NBQWtDLENBQUMsS0FBSyxDQUFDLEVBQ3pDLEtBQUssWUFBWSxPQUFPLENBQUMsU0FBUyxDQUFDLHNCQUFzQjtnQkFDdkQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7Z0JBQ3pCLENBQUMsQ0FBQyxTQUFTLENBQ2QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLDRCQUE0QixDQUN2QyxNQUFpRDtRQUVqRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLDhCQUE4QixFQUFFLE1BQU0sQ0FBOEMsQ0FBQztJQUN0SCxDQUFDO0lBRU0sS0FBSyxDQUFDLG1CQUFtQjtRQUM5QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLEVBQTJCLENBQW9ELENBQUM7UUFDcEosT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsTUFHeEM7UUFDQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLDZCQUE2QixFQUFFLE1BQU0sQ0FBOEMsQ0FBQztJQUNySCxDQUFDO0lBRU0sS0FBSyxDQUFDLDZCQUE2QixDQUN4QyxNQUFnQyxFQUNoQyxVQUErQztRQUUvQyxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQ2xDLCtCQUErQixFQUMvQixNQUFNLEVBQ04sVUFBVSxDQUNrQyxDQUFDO1FBQ2pELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsTUFBTSxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjLENBQ3pCLE1BQW1DLEVBQ25DLFVBQStDO1FBRS9DLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDbEMsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixVQUFVLENBQ2UsQ0FBQztRQUM5QixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RELE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsd0JBQXdCLENBQ25DLE1BQTZDLEVBQzdDLFVBQStDO1FBRS9DLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDbEMsMEJBQTBCLEVBQzFCLE1BQU0sRUFDTixVQUFVLENBQ3NCLENBQUM7UUFDckMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLGNBQWMsQ0FDekIsTUFBbUMsRUFDbkMsVUFBK0M7UUFFL0MsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUNsQyxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLFVBQVUsQ0FDcUIsQ0FBQztRQUNwQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RELE1BQU0sa0NBQWtDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMseUJBQXlCLENBQ3BDLE1BQThDLEVBQzlDLFVBQStDO1FBRS9DLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDbEMsMkJBQTJCLEVBQzNCLE1BQU0sRUFDTixVQUFVLENBQ2dDLENBQUM7UUFDL0MsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxNQUFNLGtDQUFrQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUtsQixFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUEwQixDQUFDO0lBQzlFLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYTtRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUEyQixDQUF5QixDQUFDO0lBQ3ZHLENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQVcsRUFBRSxNQUFNLEdBQUcsS0FBSztRQUNsRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBMkIsQ0FBQztJQUMzRixDQUFDO0lBRU0sS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUFXO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQXVDLENBQUM7UUFDdkgsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUN2QixFQUFVLEVBQ1YsVUFBa0IsRUFDbEIsS0FBSyxHQUFHLEVBQUUsRUFDVixJQUFJLEdBQUcsQ0FBQztRQUVSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQThCLENBQUM7SUFDL0csQ0FBQztDQUNGIn0=
|
|
415
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVzdC1kYi1icmlkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy90c19zbWFydGRiL3J1c3QtZGItYnJpZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEMsT0FBTyxFQUNMLDhDQUE4QyxFQUM5QyxrQ0FBa0MsR0FDbkMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQ0wsNERBQTRELEVBQzVELDJDQUEyQyxFQUMzQyx5Q0FBeUMsR0FDMUMsTUFBTSx5QkFBeUIsQ0FBQztBQXdJakMsTUFBTSxPQUFPLDBDQUEyQyxTQUFRLGNBQWM7SUFDNUUsWUFBWSxpQkFBMEIsRUFBRSxtQkFBNEI7UUFDbEUsS0FBSyxDQUNILENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsRUFDeEMsZ0ZBQWdGLEVBQ2hGLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLENBQzdCLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLDRDQUE0QyxDQUFDO0lBQzNELENBQUM7Q0FDRjtBQWlLRDs7O0dBR0c7QUFDSCxTQUFTLGNBQWM7SUFDckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyx1QkFBdUI7SUFDOUIsTUFBTSxPQUFPLEdBQTJCLEVBQUUsR0FBRyxFQUFF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
|
|
@@ -44,6 +44,30 @@ export type TLocalSmartDbOfflineStringValueInspectionResult = {
|
|
|
44
44
|
status: 'found';
|
|
45
45
|
value: string;
|
|
46
46
|
};
|
|
47
|
+
export interface ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits {
|
|
48
|
+
maximumEntries: number;
|
|
49
|
+
maximumDatabases: number;
|
|
50
|
+
maximumCollections: number;
|
|
51
|
+
maximumIndexes: number;
|
|
52
|
+
maximumDataFileBytes: number;
|
|
53
|
+
maximumWalFileBytes: number;
|
|
54
|
+
maximumIndexFileBytes: number;
|
|
55
|
+
maximumTotalFileBytes: number;
|
|
56
|
+
maximumRecordsPerCollection: number;
|
|
57
|
+
maximumRecordBytes: number;
|
|
58
|
+
maximumResultBytes: number;
|
|
59
|
+
}
|
|
60
|
+
export interface ILocalSmartDbOfflinePhysicalNamespaceInspection {
|
|
61
|
+
folderPath: string;
|
|
62
|
+
limits: ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits;
|
|
63
|
+
}
|
|
64
|
+
export interface ILocalSmartDbOfflinePhysicalNamespaceInspectionResult {
|
|
65
|
+
schemaVersion: 1;
|
|
66
|
+
databases: Array<{
|
|
67
|
+
name: string;
|
|
68
|
+
collections: string[];
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
47
71
|
export declare const smartDbResourceFenceErrorCodes: readonly ["EFENCE_REQUIRED", "EFENCE_STALE", "EFENCE_SCOPE_MISMATCH", "EFENCE_UNSUPPORTED", "EFENCE_MUTATION_MISMATCH", "EFENCE_OWNERSHIP_MISMATCH", "EFENCE_STATE_CORRUPT", "EFENCE_RECEIPT_LIMIT", "EFENCE_BUSY", "EFENCE_PUBLICATION_HELD", "EFENCE_CAPABILITY_MISMATCH", "EFENCE_NOT_HELD", "EALLOCATION_EXPECTED_ABSENT_CONFLICT", "EALLOCATION_REQUIRED", "EALLOCATION_MISMATCH", "EALLOCATION_GENERATION_EXHAUSTED", "EALLOCATION_DEPROVISIONED"];
|
|
48
72
|
export type TSmartDbResourceFenceErrorCode = (typeof smartDbResourceFenceErrorCodes)[number];
|
|
49
73
|
export interface ISmartDbResourceFence {
|
|
@@ -59,4 +59,4 @@ export const normalizeSmartDbResourceFenceError = (errorArg) => {
|
|
|
59
59
|
}
|
|
60
60
|
return new SmartDbResourceFenceError(match[1], match[2], error);
|
|
61
61
|
};
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3RzX3NtYXJ0ZGIvc2VydmljZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwRUEsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUc7SUFDNUMsaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCx1QkFBdUI7SUFDdkIsb0JBQW9CO0lBQ3BCLDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLHNCQUFzQjtJQUN0QixhQUFhO0lBQ2IseUJBQXlCO0lBQ3pCLDRCQUE0QjtJQUM1QixpQkFBaUI7SUFDakIsc0NBQXNDO0lBQ3RDLHNCQUFzQjtJQUN0QixzQkFBc0I7SUFDdEIsa0NBQWtDO0lBQ2xDLDJCQUEyQjtDQUNuQixDQUFDO0FBdUdYLE1BQU0sQ0FBQyxNQUFNLDBDQUEwQyxHQUFHO0lBQ3hELHdCQUF3QjtJQUN4Qiw0QkFBNEI7SUFDNUIsaUJBQWlCO0lBQ2pCLHdCQUF3QjtJQUN4QiwwQkFBMEI7Q0FDbEIsQ0FBQztBQUtYLE1BQU0sT0FBTyxxQ0FBc0MsU0FBUSxLQUFLO0lBRzlELFlBQ0UsT0FBbUQsRUFDbkQsVUFBa0IsRUFDbEIsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLEdBQUcsT0FBTyxLQUFLLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksR0FBRyx1Q0FBdUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSw4Q0FBOEMsR0FBRyxDQUM1RCxRQUFpQixFQUNqQixPQUFpQixFQUNWLEVBQUU7SUFDVCxNQUFNLEtBQUssR0FDVCxRQUFRLFlBQVksS0FBSztRQUN2QixDQUFDLENBQUMsUUFBUTtRQUNWLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNsQyxJQUNFLE9BQU8sT0FBTyxLQUFLLFFBQVE7V0FDeEIsQ0FBQywwQ0FBMEMsQ0FBQyxRQUFRLENBQ3JELE9BQXFELENBQ3RELEVBQ0QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sSUFBSSxxQ0FBcUMsQ0FDOUMsT0FBcUQsRUFDckQsS0FBSyxDQUFDLE9BQU8sRUFDYixLQUFLLENBQ04sQ0FBQztBQUNKLENBQUMsQ0FBQztBQXdDRixNQUFNLE9BQU8seUJBQTBCLFNBQVEsS0FBSztJQUdsRCxZQUNFLE9BQXVDLEVBQ3ZDLFVBQWtCLEVBQ2xCLFFBQWtCO1FBRWxCLEtBQUssQ0FBQyxHQUFHLE9BQU8sS0FBSyxVQUFVLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLEdBQUcsMkJBQTJCLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsQ0FDaEQsUUFBaUIsRUFDVixFQUFFO0lBQ1QsTUFBTSxLQUFLLEdBQ1QsUUFBUSxZQUFZLEtBQUs7UUFDdkIsQ0FBQyxDQUFDLFFBQVE7UUFDVixDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEMsTUFBTSxLQUFLLEdBQUcsNkNBQTZDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRixJQUNFLENBQUMsS0FBSztRQUNOLENBQUMsOEJBQThCLENBQUMsUUFBUSxDQUN0QyxLQUFLLENBQUMsQ0FBQyxDQUFtQyxDQUMzQyxFQUNELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLElBQUkseUJBQXlCLENBQ2xDLEtBQUssQ0FBQyxDQUFDLENBQW1DLEVBQzFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDUixLQUFLLENBQ04sQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -540,6 +540,7 @@ const db = new LocalSmartDb({
|
|
|
540
540
|
| `getServer()` | `SmartdbServer` | Access the underlying server |
|
|
541
541
|
| `running` | `boolean` | Whether the server is running |
|
|
542
542
|
| `LocalSmartDb.inspectOfflineStringValue(input, options?)` | `Promise<TLocalSmartDbOfflineStringValueInspectionResult>` | Read one exact top-level string value from stopped file storage without starting or mutating the engine |
|
|
543
|
+
| `LocalSmartDb.inspectOfflinePhysicalNamespaces(input, options?)` | `Promise<ILocalSmartDbOfflinePhysicalNamespaceInspectionResult>` | Validate stopped physical file storage and return only deterministic database and collection names |
|
|
543
544
|
|
|
544
545
|
#### Offline String-Value Inspection
|
|
545
546
|
|
|
@@ -593,6 +594,67 @@ The TypeScript API enforces these bounds before creating the sidecar or serializ
|
|
|
593
594
|
|
|
594
595
|
All numeric limits must be positive safe integers. The caller must stop and retain external ownership of the `LocalSmartDb` daemon for the full call. Current storage roots additionally enforce this through SmartDB's storage-owner lock. Roots created before that lock existed rely on the caller's external single-owner coordination plus descriptor and stability validation. One `timeoutMs` budget covers sidecar lookup/spawn, readiness, and the command. Cancellation or timeout kills and reaps the disposable sidecar before the call rejects.
|
|
595
596
|
|
|
597
|
+
#### Offline Physical Namespace Inspection
|
|
598
|
+
|
|
599
|
+
`inspectOfflinePhysicalNamespaces()` is a Linux-only management API for validating and listing the physical database and collection namespaces in a stopped SmartDB file-storage root. It uses Linux `openat2` descriptor traversal and starts only the disposable Rust management sidecar. It never calls `SmartdbServer.start()`, opens a database listener, initializes the storage adapter, runs migration or recovery, repairs a tail, truncates a WAL, compacts data, or persists a hint.
|
|
600
|
+
|
|
601
|
+
```typescript
|
|
602
|
+
import { LocalSmartDb } from '@push.rocks/smartdb';
|
|
603
|
+
|
|
604
|
+
const namespaces = await LocalSmartDb.inspectOfflinePhysicalNamespaces({
|
|
605
|
+
folderPath: '/var/lib/myapp/smartdb',
|
|
606
|
+
limits: {
|
|
607
|
+
maximumEntries: 100_000,
|
|
608
|
+
maximumDatabases: 4096,
|
|
609
|
+
maximumCollections: 10_000,
|
|
610
|
+
maximumIndexes: 100_000,
|
|
611
|
+
maximumDataFileBytes: 256 * 1024 * 1024,
|
|
612
|
+
maximumWalFileBytes: 64 * 1024 * 1024,
|
|
613
|
+
maximumIndexFileBytes: 16 * 1024 * 1024,
|
|
614
|
+
maximumTotalFileBytes: 1024 * 1024 * 1024 * 1024,
|
|
615
|
+
maximumRecordsPerCollection: 1_000_000,
|
|
616
|
+
maximumRecordBytes: 17 * 1024 * 1024,
|
|
617
|
+
maximumResultBytes: 16 * 1024 * 1024,
|
|
618
|
+
},
|
|
619
|
+
}, {
|
|
620
|
+
timeoutMs: 30_000,
|
|
621
|
+
});
|
|
622
|
+
|
|
623
|
+
// {
|
|
624
|
+
// schemaVersion: 1,
|
|
625
|
+
// databases: [
|
|
626
|
+
// { name: 'myapp', collections: ['MetadataDoc', 'system.views'] },
|
|
627
|
+
// ],
|
|
628
|
+
// }
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
The result is exactly `{ schemaVersion: 1, databases: Array<{ name, collections }> }`. Databases and each database's collections are sorted by physical name, empty database directories are retained, and no documents, index definitions, record identifiers, or values cross the management boundary.
|
|
632
|
+
|
|
633
|
+
The accepted root must contain the current `.__rustdb_internal/storage-owner.lock`; legacy roots without that lock are rejected. The sidecar takes the shared owner lock, so an active engine causes the call to fail. Every reported collection must have the canonical complete profile of regular `data.rdb`, `wal.rdb`, and `indexes.json` files. A regular `keydir.hint` is optional and is treated only as an allowed cache file. Missing canonical files, unexpected collection entries, malformed index metadata, invalid data or WAL records, symlinks, cross-filesystem traversal, resource-limit exhaustion, and changes observed during inspection fail the complete operation. No partial result is returned and the storage tree is not mutated.
|
|
634
|
+
|
|
635
|
+
Inspection performs two full bounded passes and returns only if their namespace results and retained filesystem observations agree. The entry, database, collection, index, file-byte, and record limits are enforced independently on each pass, so total validation work is at most twice the corresponding caller cap. The result-size cap applies to the single serialized result. This is a contract for the current owner-locked canonical SmartDB file-storage profile, not a claim of compatibility with arbitrary MongoDB layouts, legacy SmartDB roots, or unspecified future storage formats.
|
|
636
|
+
|
|
637
|
+
All limits are required; this API supplies no defaults or compatibility aliases. TypeScript validates the following bounds before creating the sidecar and revalidates `folderPath` after resolving it to an absolute path:
|
|
638
|
+
|
|
639
|
+
| Input | Enforced range |
|
|
640
|
+
|---|---|
|
|
641
|
+
| `folderPath` | 1 to 4096 UTF-8 bytes before and after absolute resolution; no control characters |
|
|
642
|
+
| Complete serialized request | At most 2,097,152 bytes |
|
|
643
|
+
| `timeoutMs` | 1 to 2,147,483,647 milliseconds |
|
|
644
|
+
| `maximumEntries` | 1 to 100,000 directory entries per pass |
|
|
645
|
+
| `maximumDatabases` | 1 to 4,096 databases per pass |
|
|
646
|
+
| `maximumCollections` | 1 to 10,000 collections per pass |
|
|
647
|
+
| `maximumIndexes` | 1 to 100,000 index definitions per pass |
|
|
648
|
+
| `maximumDataFileBytes` | 64 to 268,435,456 bytes per data file |
|
|
649
|
+
| `maximumWalFileBytes` | 64 to 67,108,864 bytes per WAL file |
|
|
650
|
+
| `maximumIndexFileBytes` | 2 to 16,777,216 bytes per index file |
|
|
651
|
+
| `maximumTotalFileBytes` | 1 to 1,099,511,627,776 aggregate canonical collection-file bytes per pass |
|
|
652
|
+
| `maximumRecordsPerCollection` | 1 to 1,000,000 data records plus WAL records/commit markers per collection per pass |
|
|
653
|
+
| `maximumRecordBytes` | 22 to 17,825,792 bytes per record |
|
|
654
|
+
| `maximumResultBytes` | 32 to 16,777,216 serialized result bytes |
|
|
655
|
+
|
|
656
|
+
Every numeric value must be a safe integer. One optional `timeoutMs` budget and `AbortSignal` cover sidecar lookup/spawn, readiness, both inspection passes, and response delivery; timeout or cancellation kills and reaps the sidecar before rejection. For a point-in-time ownership proof, the caller must exclude every engine start and other storage lifecycle change continuously from before invocation through acceptance or handoff of the returned result. The owner lock proves that the engine was stopped during inspection, but it cannot replace that caller-held lifecycle exclusion after the sidecar releases its lock.
|
|
657
|
+
|
|
596
658
|
### SmartdbDebugServer
|
|
597
659
|
|
|
598
660
|
Web-based debug dashboard served via `@api.global/typedserver`. Import from the `debugserver` subpath:
|
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/index.ts
CHANGED
|
@@ -9,6 +9,9 @@ export type {
|
|
|
9
9
|
ILocalSmartDbOptions,
|
|
10
10
|
ILocalSmartDbConnectionInfo,
|
|
11
11
|
ILocalSmartDbOfflineInspectionLimits,
|
|
12
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits,
|
|
13
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspection,
|
|
14
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspectionResult,
|
|
12
15
|
ILocalSmartDbOfflineStringValueInspection,
|
|
13
16
|
TLocalSmartDbOfflineStringValueInspectionResult,
|
|
14
17
|
} from './ts_local/index.js';
|
|
@@ -6,12 +6,15 @@ import * as os from 'os';
|
|
|
6
6
|
import {
|
|
7
7
|
RustDbBridge,
|
|
8
8
|
SmartdbServer,
|
|
9
|
+
type ILocalSmartDbOfflinePhysicalNamespaceInspection,
|
|
10
|
+
type ILocalSmartDbOfflinePhysicalNamespaceInspectionResult,
|
|
9
11
|
type ILocalSmartDbOfflineStringValueInspection,
|
|
10
12
|
type ISmartDbManagementOperationOptions,
|
|
11
13
|
type TLocalSmartDbOfflineStringValueInspectionResult,
|
|
12
14
|
} from '../ts_smartdb/index.js';
|
|
13
15
|
import { StorageMigrator } from '../ts_migration/index.js';
|
|
14
16
|
import {
|
|
17
|
+
normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput,
|
|
15
18
|
normalizeLocalSmartDbOfflineInspectionInput,
|
|
16
19
|
validateSmartDbManagementOperationOptions,
|
|
17
20
|
} from '../ts_smartdb/offline-inspection.js';
|
|
@@ -74,19 +77,24 @@ export class LocalSmartDb {
|
|
|
74
77
|
return new RustDbBridge();
|
|
75
78
|
}
|
|
76
79
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
80
|
+
private static async runOfflineInspection<
|
|
81
|
+
TInput extends { folderPath: string },
|
|
82
|
+
TResult,
|
|
83
|
+
>(
|
|
84
|
+
inputArg: TInput,
|
|
85
|
+
optionsArg: ISmartDbManagementOperationOptions | undefined,
|
|
86
|
+
normalizeInputArg: (inputArg: TInput) => TInput,
|
|
87
|
+
inspectArg: (
|
|
88
|
+
bridgeArg: RustDbBridge,
|
|
89
|
+
inputArg: TInput,
|
|
90
|
+
optionsArg?: ISmartDbManagementOperationOptions,
|
|
91
|
+
) => Promise<TResult>,
|
|
92
|
+
): Promise<TResult> {
|
|
93
|
+
const validatedInput = normalizeInputArg(inputArg);
|
|
86
94
|
validateSmartDbManagementOperationOptions(optionsArg);
|
|
87
95
|
optionsArg?.signal?.throwIfAborted();
|
|
88
96
|
|
|
89
|
-
const input =
|
|
97
|
+
const input = normalizeInputArg({
|
|
90
98
|
...validatedInput,
|
|
91
99
|
folderPath: path.resolve(validatedInput.folderPath),
|
|
92
100
|
});
|
|
@@ -96,7 +104,7 @@ export class LocalSmartDb {
|
|
|
96
104
|
const bridge = LocalSmartDb.createOfflineInspectionBridge();
|
|
97
105
|
let operationFailed = false;
|
|
98
106
|
let operationError: unknown;
|
|
99
|
-
let result:
|
|
107
|
+
let result: TResult | undefined;
|
|
100
108
|
try {
|
|
101
109
|
let spawnOptions = optionsArg;
|
|
102
110
|
if (deadline !== undefined) {
|
|
@@ -126,7 +134,7 @@ export class LocalSmartDb {
|
|
|
126
134
|
timeoutMs: remainingMs,
|
|
127
135
|
};
|
|
128
136
|
}
|
|
129
|
-
result = await bridge
|
|
137
|
+
result = await inspectArg(bridge, input, commandOptions);
|
|
130
138
|
} catch (error) {
|
|
131
139
|
operationFailed = true;
|
|
132
140
|
operationError = error;
|
|
@@ -147,7 +155,41 @@ export class LocalSmartDb {
|
|
|
147
155
|
if (operationFailed) {
|
|
148
156
|
throw operationError;
|
|
149
157
|
}
|
|
150
|
-
return result as
|
|
158
|
+
return result as TResult;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Inspect physical database and collection names while the owning engine is stopped.
|
|
163
|
+
* This starts only the Rust management sidecar and never initializes storage.
|
|
164
|
+
*/
|
|
165
|
+
public static async inspectOfflinePhysicalNamespaces(
|
|
166
|
+
inputArg: ILocalSmartDbOfflinePhysicalNamespaceInspection,
|
|
167
|
+
optionsArg?: ISmartDbManagementOperationOptions,
|
|
168
|
+
): Promise<ILocalSmartDbOfflinePhysicalNamespaceInspectionResult> {
|
|
169
|
+
return LocalSmartDb.runOfflineInspection(
|
|
170
|
+
inputArg,
|
|
171
|
+
optionsArg,
|
|
172
|
+
normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput,
|
|
173
|
+
(bridgeArg, input, commandOptions) =>
|
|
174
|
+
bridgeArg.inspectOfflinePhysicalNamespaces(input, commandOptions),
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Inspect one exact string value while the owning LocalSmartDb engine is stopped.
|
|
180
|
+
* This starts only the Rust management sidecar and never initializes storage.
|
|
181
|
+
*/
|
|
182
|
+
public static async inspectOfflineStringValue(
|
|
183
|
+
inputArg: ILocalSmartDbOfflineStringValueInspection,
|
|
184
|
+
optionsArg?: ISmartDbManagementOperationOptions,
|
|
185
|
+
): Promise<TLocalSmartDbOfflineStringValueInspectionResult> {
|
|
186
|
+
return LocalSmartDb.runOfflineInspection(
|
|
187
|
+
inputArg,
|
|
188
|
+
optionsArg,
|
|
189
|
+
normalizeLocalSmartDbOfflineInspectionInput,
|
|
190
|
+
(bridgeArg, input, commandOptions) =>
|
|
191
|
+
bridgeArg.inspectOfflineStringValue(input, commandOptions),
|
|
192
|
+
);
|
|
151
193
|
}
|
|
152
194
|
|
|
153
195
|
/**
|
package/ts/ts_local/index.ts
CHANGED
|
@@ -2,6 +2,9 @@ export { LocalSmartDb } from './classes.localsmartdb.js';
|
|
|
2
2
|
export type { ILocalSmartDbOptions, ILocalSmartDbConnectionInfo } from './classes.localsmartdb.js';
|
|
3
3
|
export type {
|
|
4
4
|
ILocalSmartDbOfflineInspectionLimits,
|
|
5
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits,
|
|
6
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspection,
|
|
7
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspectionResult,
|
|
5
8
|
ILocalSmartDbOfflineStringValueInspection,
|
|
6
9
|
TLocalSmartDbOfflineStringValueInspectionResult,
|
|
7
10
|
} from '../ts_smartdb/service-types.js';
|
package/ts/ts_smartdb/index.ts
CHANGED
|
@@ -44,6 +44,9 @@ export type {
|
|
|
44
44
|
ISmartDbRevokeDatabaseAllocationReadAccessGrantInput,
|
|
45
45
|
ISmartDbRevokeDatabaseAllocationReadAccessGrantResult,
|
|
46
46
|
ILocalSmartDbOfflineInspectionLimits,
|
|
47
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits,
|
|
48
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspection,
|
|
49
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspectionResult,
|
|
47
50
|
ILocalSmartDbOfflineStringValueInspection,
|
|
48
51
|
TLocalSmartDbOfflineStringValueInspectionResult,
|
|
49
52
|
TSmartDbCommitDatabasePublicationResult,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
2
|
import type {
|
|
3
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspection,
|
|
3
4
|
ILocalSmartDbOfflineStringValueInspection,
|
|
4
5
|
ISmartDbManagementOperationOptions,
|
|
5
6
|
} from './service-types.js';
|
|
@@ -20,6 +21,24 @@ export const localSmartDbOfflineInspectionBounds = {
|
|
|
20
21
|
},
|
|
21
22
|
} as const;
|
|
22
23
|
|
|
24
|
+
export const localSmartDbOfflinePhysicalNamespaceInspectionBounds = {
|
|
25
|
+
maximumFolderPathBytes: 4096,
|
|
26
|
+
maximumRequestBytes: 2 * 1024 * 1024,
|
|
27
|
+
limits: {
|
|
28
|
+
maximumEntries: { minimum: 1, maximum: 100_000 },
|
|
29
|
+
maximumDatabases: { minimum: 1, maximum: 4096 },
|
|
30
|
+
maximumCollections: { minimum: 1, maximum: 10_000 },
|
|
31
|
+
maximumIndexes: { minimum: 1, maximum: 100_000 },
|
|
32
|
+
maximumDataFileBytes: { minimum: 64, maximum: 256 * 1024 * 1024 },
|
|
33
|
+
maximumWalFileBytes: { minimum: 64, maximum: 64 * 1024 * 1024 },
|
|
34
|
+
maximumIndexFileBytes: { minimum: 2, maximum: 16 * 1024 * 1024 },
|
|
35
|
+
maximumTotalFileBytes: { minimum: 1, maximum: 1024 * 1024 * 1024 * 1024 },
|
|
36
|
+
maximumRecordsPerCollection: { minimum: 1, maximum: 1_000_000 },
|
|
37
|
+
maximumRecordBytes: { minimum: 22, maximum: 17 * 1024 * 1024 },
|
|
38
|
+
maximumResultBytes: { minimum: 32, maximum: 16 * 1024 * 1024 },
|
|
39
|
+
},
|
|
40
|
+
} as const;
|
|
41
|
+
|
|
23
42
|
const inputKeys = new Set([
|
|
24
43
|
'folderPath',
|
|
25
44
|
'databaseName',
|
|
@@ -46,9 +65,57 @@ const requestEnvelopeBytes = plugins.buffer.Buffer.byteLength(
|
|
|
46
65
|
'utf8',
|
|
47
66
|
);
|
|
48
67
|
|
|
68
|
+
const physicalNamespaceInputKeys = new Set(['folderPath', 'limits']);
|
|
69
|
+
const physicalNamespaceLimitKeys = [
|
|
70
|
+
'maximumEntries',
|
|
71
|
+
'maximumDatabases',
|
|
72
|
+
'maximumCollections',
|
|
73
|
+
'maximumIndexes',
|
|
74
|
+
'maximumDataFileBytes',
|
|
75
|
+
'maximumWalFileBytes',
|
|
76
|
+
'maximumIndexFileBytes',
|
|
77
|
+
'maximumTotalFileBytes',
|
|
78
|
+
'maximumRecordsPerCollection',
|
|
79
|
+
'maximumRecordBytes',
|
|
80
|
+
'maximumResultBytes',
|
|
81
|
+
] as const;
|
|
82
|
+
const physicalNamespaceLimitKeySet = new Set<string>(physicalNamespaceLimitKeys);
|
|
83
|
+
|
|
49
84
|
const isRecord = (valueArg: unknown): valueArg is Record<string, unknown> =>
|
|
50
85
|
typeof valueArg === 'object' && valueArg !== null && !Array.isArray(valueArg);
|
|
51
86
|
|
|
87
|
+
const requirePhysicalNamespacePlainObject = (
|
|
88
|
+
valueArg: unknown,
|
|
89
|
+
allowedKeysArg: Set<string>,
|
|
90
|
+
labelArg: string,
|
|
91
|
+
): Record<string, unknown> => {
|
|
92
|
+
if (!isRecord(valueArg)) {
|
|
93
|
+
throw new TypeError(
|
|
94
|
+
`LocalSmartDb offline physical namespace inspection ${labelArg} must be a plain object`,
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
for (const key in valueArg) {
|
|
98
|
+
if (!allowedKeysArg.has(key)) {
|
|
99
|
+
throw new TypeError(
|
|
100
|
+
`LocalSmartDb offline physical namespace inspection ${labelArg} contains unknown key '${key}'`,
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (Object.getPrototypeOf(valueArg) !== Object.prototype) {
|
|
105
|
+
throw new TypeError(
|
|
106
|
+
`LocalSmartDb offline physical namespace inspection ${labelArg} must be a plain object`,
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
for (const key of allowedKeysArg) {
|
|
110
|
+
if (!Object.prototype.propertyIsEnumerable.call(valueArg, key)) {
|
|
111
|
+
throw new TypeError(
|
|
112
|
+
`LocalSmartDb offline physical namespace inspection ${labelArg} must contain own enumerable key '${key}'`,
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return valueArg;
|
|
117
|
+
};
|
|
118
|
+
|
|
52
119
|
const rejectUnknownEnumerableKeys = (
|
|
53
120
|
valueArg: object,
|
|
54
121
|
allowedKeysArg: Set<string>,
|
|
@@ -219,6 +286,81 @@ export const normalizeLocalSmartDbOfflineInspectionInput = (
|
|
|
219
286
|
return normalized;
|
|
220
287
|
};
|
|
221
288
|
|
|
289
|
+
export const normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput = (
|
|
290
|
+
inputArg: ILocalSmartDbOfflinePhysicalNamespaceInspection,
|
|
291
|
+
): ILocalSmartDbOfflinePhysicalNamespaceInspection => {
|
|
292
|
+
const inputRecord = requirePhysicalNamespacePlainObject(
|
|
293
|
+
inputArg,
|
|
294
|
+
physicalNamespaceInputKeys,
|
|
295
|
+
'input',
|
|
296
|
+
);
|
|
297
|
+
const limits = requirePhysicalNamespacePlainObject(
|
|
298
|
+
inputRecord.limits,
|
|
299
|
+
physicalNamespaceLimitKeySet,
|
|
300
|
+
'limits',
|
|
301
|
+
);
|
|
302
|
+
const normalized: ILocalSmartDbOfflinePhysicalNamespaceInspection = {
|
|
303
|
+
folderPath: inputRecord.folderPath as string,
|
|
304
|
+
limits: {
|
|
305
|
+
maximumEntries: limits.maximumEntries as number,
|
|
306
|
+
maximumDatabases: limits.maximumDatabases as number,
|
|
307
|
+
maximumCollections: limits.maximumCollections as number,
|
|
308
|
+
maximumIndexes: limits.maximumIndexes as number,
|
|
309
|
+
maximumDataFileBytes: limits.maximumDataFileBytes as number,
|
|
310
|
+
maximumWalFileBytes: limits.maximumWalFileBytes as number,
|
|
311
|
+
maximumIndexFileBytes: limits.maximumIndexFileBytes as number,
|
|
312
|
+
maximumTotalFileBytes: limits.maximumTotalFileBytes as number,
|
|
313
|
+
maximumRecordsPerCollection: limits.maximumRecordsPerCollection as number,
|
|
314
|
+
maximumRecordBytes: limits.maximumRecordBytes as number,
|
|
315
|
+
maximumResultBytes: limits.maximumResultBytes as number,
|
|
316
|
+
},
|
|
317
|
+
};
|
|
318
|
+
const bounds = localSmartDbOfflinePhysicalNamespaceInspectionBounds;
|
|
319
|
+
if (typeof normalized.folderPath !== 'string') {
|
|
320
|
+
throw new TypeError(
|
|
321
|
+
'LocalSmartDb offline physical namespace inspection folderPath must be a string',
|
|
322
|
+
);
|
|
323
|
+
}
|
|
324
|
+
const folderPathBytes = plugins.buffer.Buffer.byteLength(normalized.folderPath, 'utf8');
|
|
325
|
+
if (folderPathBytes < 1 || folderPathBytes > bounds.maximumFolderPathBytes) {
|
|
326
|
+
throw new RangeError(
|
|
327
|
+
`LocalSmartDb offline physical namespace inspection folderPath must be between 1 and ${bounds.maximumFolderPathBytes} UTF-8 bytes`,
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
for (const character of normalized.folderPath) {
|
|
331
|
+
if (/\p{Cc}/u.test(character)) {
|
|
332
|
+
throw new TypeError(
|
|
333
|
+
'LocalSmartDb offline physical namespace inspection folderPath must not contain control characters',
|
|
334
|
+
);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
for (const key of physicalNamespaceLimitKeys) {
|
|
339
|
+
const value = normalized.limits[key];
|
|
340
|
+
const range = bounds.limits[key];
|
|
341
|
+
if (!Number.isSafeInteger(value) || value < range.minimum || value > range.maximum) {
|
|
342
|
+
throw new RangeError(
|
|
343
|
+
`LocalSmartDb offline physical namespace inspection limits.${key} must be a safe integer between ${range.minimum} and ${range.maximum}`,
|
|
344
|
+
);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
const requestBytes = plugins.buffer.Buffer.byteLength(JSON.stringify({
|
|
349
|
+
id: 'req_9007199254740991',
|
|
350
|
+
method: 'inspectOfflinePhysicalNamespaces',
|
|
351
|
+
params: {
|
|
352
|
+
folderPath: normalized.folderPath,
|
|
353
|
+
...normalized.limits,
|
|
354
|
+
},
|
|
355
|
+
}), 'utf8');
|
|
356
|
+
if (requestBytes > bounds.maximumRequestBytes) {
|
|
357
|
+
throw new RangeError(
|
|
358
|
+
`LocalSmartDb offline physical namespace inspection request exceeds the ${bounds.maximumRequestBytes}-byte serialized limit`,
|
|
359
|
+
);
|
|
360
|
+
}
|
|
361
|
+
return normalized;
|
|
362
|
+
};
|
|
363
|
+
|
|
222
364
|
export const validateSmartDbManagementOperationOptions = (
|
|
223
365
|
optionsArg?: ISmartDbManagementOperationOptions,
|
|
224
366
|
): void => {
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
normalizeSmartDbResourceFenceError,
|
|
8
8
|
} from './service-types.js';
|
|
9
9
|
import {
|
|
10
|
+
normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput,
|
|
10
11
|
normalizeLocalSmartDbOfflineInspectionInput,
|
|
11
12
|
validateSmartDbManagementOperationOptions,
|
|
12
13
|
} from './offline-inspection.js';
|
|
@@ -36,6 +37,8 @@ import type {
|
|
|
36
37
|
ISmartDbCommitDatabasePublicationInput,
|
|
37
38
|
ISmartDbManagementOperationOptions,
|
|
38
39
|
ISmartDbDatabaseResourceFenceState,
|
|
40
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspection,
|
|
41
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspectionResult,
|
|
39
42
|
ILocalSmartDbOfflineStringValueInspection,
|
|
40
43
|
TLocalSmartDbOfflineStringValueInspectionResult,
|
|
41
44
|
TSmartDbCommitDatabasePublicationResult,
|
|
@@ -68,6 +71,9 @@ export type {
|
|
|
68
71
|
ISmartDbManagementOperationOptions,
|
|
69
72
|
ISmartDbDatabaseResourceFenceState,
|
|
70
73
|
ILocalSmartDbOfflineInspectionLimits,
|
|
74
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits,
|
|
75
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspection,
|
|
76
|
+
ILocalSmartDbOfflinePhysicalNamespaceInspectionResult,
|
|
71
77
|
ILocalSmartDbOfflineStringValueInspection,
|
|
72
78
|
TLocalSmartDbOfflineStringValueInspectionResult,
|
|
73
79
|
TSmartDbCommitDatabasePublicationResult,
|
|
@@ -169,7 +175,15 @@ export interface ISmartDbMetrics {
|
|
|
169
175
|
/**
|
|
170
176
|
* Type-safe command definitions for the RustDb IPC protocol.
|
|
171
177
|
*/
|
|
178
|
+
type TOfflinePhysicalNamespaceInspectionCommandParams = {
|
|
179
|
+
folderPath: string;
|
|
180
|
+
} & ILocalSmartDbOfflinePhysicalNamespaceInspection['limits'];
|
|
181
|
+
|
|
172
182
|
type TSmartDbCommands = {
|
|
183
|
+
inspectOfflinePhysicalNamespaces: {
|
|
184
|
+
params: TOfflinePhysicalNamespaceInspectionCommandParams;
|
|
185
|
+
result: ILocalSmartDbOfflinePhysicalNamespaceInspectionResult;
|
|
186
|
+
};
|
|
173
187
|
inspectOfflineStringValue: {
|
|
174
188
|
params: ILocalSmartDbOfflineStringValueInspection;
|
|
175
189
|
result: TLocalSmartDbOfflineStringValueInspectionResult;
|
|
@@ -543,6 +557,28 @@ export class RustDbBridge extends EventEmitter {
|
|
|
543
557
|
|
|
544
558
|
// --- Convenience methods for each management command ---
|
|
545
559
|
|
|
560
|
+
public async inspectOfflinePhysicalNamespaces(
|
|
561
|
+
inputArg: ILocalSmartDbOfflinePhysicalNamespaceInspection,
|
|
562
|
+
optionsArg?: ISmartDbManagementOperationOptions,
|
|
563
|
+
): Promise<ILocalSmartDbOfflinePhysicalNamespaceInspectionResult> {
|
|
564
|
+
const input = normalizeLocalSmartDbOfflinePhysicalNamespaceInspectionInput(inputArg);
|
|
565
|
+
validateSmartDbManagementOperationOptions(optionsArg);
|
|
566
|
+
const params: TOfflinePhysicalNamespaceInspectionCommandParams = {
|
|
567
|
+
folderPath: input.folderPath,
|
|
568
|
+
...input.limits,
|
|
569
|
+
};
|
|
570
|
+
try {
|
|
571
|
+
return await this.bridge.sendCommand(
|
|
572
|
+
'inspectOfflinePhysicalNamespaces',
|
|
573
|
+
params,
|
|
574
|
+
optionsArg,
|
|
575
|
+
) as ILocalSmartDbOfflinePhysicalNamespaceInspectionResult;
|
|
576
|
+
} catch (error) {
|
|
577
|
+
await this.awaitManagementOperationTermination(error);
|
|
578
|
+
throw error;
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
|
|
546
582
|
public async inspectOfflineStringValue(
|
|
547
583
|
inputArg: ILocalSmartDbOfflineStringValueInspection,
|
|
548
584
|
optionsArg?: ISmartDbManagementOperationOptions,
|
|
@@ -45,6 +45,33 @@ export type TLocalSmartDbOfflineStringValueInspectionResult =
|
|
|
45
45
|
| { status: 'not-found' }
|
|
46
46
|
| { status: 'found'; value: string };
|
|
47
47
|
|
|
48
|
+
export interface ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits {
|
|
49
|
+
maximumEntries: number;
|
|
50
|
+
maximumDatabases: number;
|
|
51
|
+
maximumCollections: number;
|
|
52
|
+
maximumIndexes: number;
|
|
53
|
+
maximumDataFileBytes: number;
|
|
54
|
+
maximumWalFileBytes: number;
|
|
55
|
+
maximumIndexFileBytes: number;
|
|
56
|
+
maximumTotalFileBytes: number;
|
|
57
|
+
maximumRecordsPerCollection: number;
|
|
58
|
+
maximumRecordBytes: number;
|
|
59
|
+
maximumResultBytes: number;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface ILocalSmartDbOfflinePhysicalNamespaceInspection {
|
|
63
|
+
folderPath: string;
|
|
64
|
+
limits: ILocalSmartDbOfflinePhysicalNamespaceInspectionLimits;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface ILocalSmartDbOfflinePhysicalNamespaceInspectionResult {
|
|
68
|
+
schemaVersion: 1;
|
|
69
|
+
databases: Array<{
|
|
70
|
+
name: string;
|
|
71
|
+
collections: string[];
|
|
72
|
+
}>;
|
|
73
|
+
}
|
|
74
|
+
|
|
48
75
|
export const smartDbResourceFenceErrorCodes = [
|
|
49
76
|
'EFENCE_REQUIRED',
|
|
50
77
|
'EFENCE_STALE',
|