@lossless.org/nosqldb 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/.smartconfig.json +107 -0
  2. package/dist_rust/rustdb_linux_amd64 +0 -0
  3. package/dist_rust/rustdb_linux_amd64.tsrust-build.json +14 -0
  4. package/dist_rust/rustdb_linux_arm64 +0 -0
  5. package/dist_rust/rustdb_linux_arm64.tsrust-build.json +14 -0
  6. package/dist_rust/rustdb_macos_amd64 +0 -0
  7. package/dist_rust/rustdb_macos_amd64.tsrust-build.json +14 -0
  8. package/dist_rust/rustdb_macos_arm64 +0 -0
  9. package/dist_rust/rustdb_macos_arm64.tsrust-build.json +14 -0
  10. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  11. package/dist_ts/00_commitinfo_data.js +9 -0
  12. package/dist_ts/index.d.ts +8 -0
  13. package/dist_ts/index.js +10 -0
  14. package/dist_ts/ts_local/classes.localnosqldb.d.ts +119 -0
  15. package/dist_ts/ts_local/classes.localnosqldb.js +386 -0
  16. package/dist_ts/ts_local/index.d.ts +5 -0
  17. package/dist_ts/ts_local/index.js +3 -0
  18. package/dist_ts/ts_local/plugins.d.ts +1 -0
  19. package/dist_ts/ts_local/plugins.js +3 -0
  20. package/dist_ts/ts_nosqldb/classes.storagerehearsal.d.ts +19 -0
  21. package/dist_ts/ts_nosqldb/classes.storagerehearsal.js +122 -0
  22. package/dist_ts/ts_nosqldb/file-storage-options.d.ts +13 -0
  23. package/dist_ts/ts_nosqldb/file-storage-options.js +24 -0
  24. package/dist_ts/ts_nosqldb/file-storage-startup.d.ts +3 -0
  25. package/dist_ts/ts_nosqldb/file-storage-startup.js +6 -0
  26. package/dist_ts/ts_nosqldb/index.d.ts +14 -0
  27. package/dist_ts/ts_nosqldb/index.js +11 -0
  28. package/dist_ts/ts_nosqldb/offline-inspection.d.ts +72 -0
  29. package/dist_ts/ts_nosqldb/offline-inspection.js +282 -0
  30. package/dist_ts/ts_nosqldb/plugins.d.ts +7 -0
  31. package/dist_ts/ts_nosqldb/plugins.js +10 -0
  32. package/dist_ts/ts_nosqldb/resource-fencing.d.ts +39 -0
  33. package/dist_ts/ts_nosqldb/resource-fencing.js +271 -0
  34. package/dist_ts/ts_nosqldb/rust-db-bridge.d.ts +213 -0
  35. package/dist_ts/ts_nosqldb/rust-db-bridge.js +439 -0
  36. package/dist_ts/ts_nosqldb/server/classes.nosqldbserver.d.ts +204 -0
  37. package/dist_ts/ts_nosqldb/server/classes.nosqldbserver.js +456 -0
  38. package/dist_ts/ts_nosqldb/server/index.d.ts +3 -0
  39. package/dist_ts/ts_nosqldb/server/index.js +3 -0
  40. package/dist_ts/ts_nosqldb/service-types.d.ts +341 -0
  41. package/dist_ts/ts_nosqldb/service-types.js +62 -0
  42. package/dist_ts/ts_nosqldb/storage-rehearsal.d.ts +103 -0
  43. package/dist_ts/ts_nosqldb/storage-rehearsal.js +131 -0
  44. package/dist_ts/ts_nosqldb/storage-root-relocation.d.ts +27 -0
  45. package/dist_ts/ts_nosqldb/storage-root-relocation.js +211 -0
  46. package/dist_ts_debugserver/bundled.d.ts +4 -0
  47. package/dist_ts_debugserver/bundled.js +16 -0
  48. package/dist_ts_debugserver/classes.debugserver.d.ts +36 -0
  49. package/dist_ts_debugserver/classes.debugserver.js +95 -0
  50. package/dist_ts_debugserver/index.d.ts +2 -0
  51. package/dist_ts_debugserver/index.js +2 -0
  52. package/dist_ts_debugserver/plugins.d.ts +2 -0
  53. package/dist_ts_debugserver/plugins.js +3 -0
  54. package/dist_ts_debugui/index.d.ts +2 -0
  55. package/dist_ts_debugui/index.js +2 -0
  56. package/dist_ts_debugui/nosqldb-debugui.d.ts +62 -0
  57. package/dist_ts_debugui/nosqldb-debugui.js +1132 -0
  58. package/dist_ts_debugui/plugins.d.ts +1 -0
  59. package/dist_ts_debugui/plugins.js +2 -0
  60. package/license +21 -0
  61. package/package.json +82 -0
  62. package/readme.md +1733 -0
  63. package/third-party-notices.md +925 -0
  64. package/ts/00_commitinfo_data.ts +8 -0
  65. package/ts/index.ts +85 -0
  66. package/ts/ts_local/classes.localnosqldb.ts +500 -0
  67. package/ts/ts_local/index.ts +19 -0
  68. package/ts/ts_local/plugins.ts +1 -0
  69. package/ts/ts_nosqldb/classes.storagerehearsal.ts +109 -0
  70. package/ts/ts_nosqldb/file-storage-options.ts +33 -0
  71. package/ts/ts_nosqldb/file-storage-startup.ts +9 -0
  72. package/ts/ts_nosqldb/index.ts +104 -0
  73. package/ts/ts_nosqldb/offline-inspection.ts +375 -0
  74. package/ts/ts_nosqldb/plugins.ts +12 -0
  75. package/ts/ts_nosqldb/resource-fencing.ts +368 -0
  76. package/ts/ts_nosqldb/rust-db-bridge.ts +964 -0
  77. package/ts/ts_nosqldb/server/classes.nosqldbserver.ts +696 -0
  78. package/ts/ts_nosqldb/server/index.ts +4 -0
  79. package/ts/ts_nosqldb/service-types.ts +484 -0
  80. package/ts/ts_nosqldb/storage-rehearsal.ts +215 -0
  81. package/ts/ts_nosqldb/storage-root-relocation.ts +277 -0
@@ -0,0 +1,36 @@
1
+ import type { NoSqlDbServer } from '../dist_ts/index.js';
2
+ export interface IDebugServerOptions {
3
+ /** Port to listen on (default: 4000). */
4
+ port?: number;
5
+ }
6
+ /**
7
+ * Serves the NoSQLDB debug UI as a web application with API proxy endpoints.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { NoSqlDbServer } from '@lossless.org/nosqldb';
12
+ * import { NoSqlDbDebugServer } from '@lossless.org/nosqldb/debugserver';
13
+ *
14
+ * const db = new NoSqlDbServer({ storage: 'memory' });
15
+ * await db.start();
16
+ *
17
+ * const debugServer = new NoSqlDbDebugServer(db, { port: 4000 });
18
+ * await debugServer.start();
19
+ * // Open http://localhost:4000
20
+ * ```
21
+ */
22
+ export declare class NoSqlDbDebugServer {
23
+ private server;
24
+ private nosqldbServer;
25
+ private port;
26
+ constructor(nosqldbServer: NoSqlDbServer, options?: IDebugServerOptions);
27
+ private setupApiRoutes;
28
+ /**
29
+ * Start the debug server.
30
+ */
31
+ start(): Promise<void>;
32
+ /**
33
+ * Stop the debug server.
34
+ */
35
+ stop(): Promise<void>;
36
+ }
@@ -0,0 +1,95 @@
1
+ import * as plugins from './plugins.js';
2
+ import { files as bundledFiles } from './bundled.js';
3
+ /**
4
+ * Serves the NoSQLDB debug UI as a web application with API proxy endpoints.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { NoSqlDbServer } from '@lossless.org/nosqldb';
9
+ * import { NoSqlDbDebugServer } from '@lossless.org/nosqldb/debugserver';
10
+ *
11
+ * const db = new NoSqlDbServer({ storage: 'memory' });
12
+ * await db.start();
13
+ *
14
+ * const debugServer = new NoSqlDbDebugServer(db, { port: 4000 });
15
+ * await debugServer.start();
16
+ * // Open http://localhost:4000
17
+ * ```
18
+ */
19
+ export class NoSqlDbDebugServer {
20
+ constructor(nosqldbServer, options = {}) {
21
+ this.nosqldbServer = nosqldbServer;
22
+ this.port = options.port ?? 4000;
23
+ this.server = new plugins.typedserver.TypedServer({
24
+ cors: true,
25
+ port: this.port,
26
+ bundledContent: bundledFiles,
27
+ spaFallback: true,
28
+ noCache: true,
29
+ });
30
+ this.setupApiRoutes();
31
+ }
32
+ setupApiRoutes() {
33
+ const jsonResponse = (data, status = 200) => new Response(JSON.stringify(data), {
34
+ status,
35
+ headers: { 'Content-Type': 'application/json' },
36
+ });
37
+ // Metrics
38
+ this.server.addRoute('/api/nosqldb/metrics', 'GET', async () => {
39
+ return jsonResponse(await this.nosqldbServer.getMetrics());
40
+ });
41
+ // OpLog stats
42
+ this.server.addRoute('/api/nosqldb/oplog/stats', 'GET', async () => {
43
+ return jsonResponse(await this.nosqldbServer.getOpLogStats());
44
+ });
45
+ // OpLog entries
46
+ this.server.addRoute('/api/nosqldb/oplog', 'GET', async (ctx) => {
47
+ const result = await this.nosqldbServer.getOpLog({
48
+ sinceSeq: ctx.query.sinceSeq ? parseInt(ctx.query.sinceSeq) : undefined,
49
+ limit: ctx.query.limit ? parseInt(ctx.query.limit) : undefined,
50
+ db: ctx.query.db || undefined,
51
+ collection: ctx.query.collection || undefined,
52
+ });
53
+ return jsonResponse(result);
54
+ });
55
+ // Collections
56
+ this.server.addRoute('/api/nosqldb/collections', 'GET', async (ctx) => {
57
+ const collections = await this.nosqldbServer.getCollections(ctx.query.db || undefined);
58
+ return jsonResponse({ collections });
59
+ });
60
+ // Documents
61
+ this.server.addRoute('/api/nosqldb/documents', 'GET', async (ctx) => {
62
+ const { db, collection } = ctx.query;
63
+ if (!db || !collection) {
64
+ return jsonResponse({ error: 'db and collection required' }, 400);
65
+ }
66
+ const limit = parseInt(ctx.query.limit ?? '50');
67
+ const skip = parseInt(ctx.query.skip ?? '0');
68
+ const result = await this.nosqldbServer.getDocuments(db, collection, limit, skip);
69
+ return jsonResponse(result);
70
+ });
71
+ // Revert
72
+ this.server.addRoute('/api/nosqldb/revert', 'GET', async (ctx) => {
73
+ const { seq, dryRun } = ctx.query;
74
+ if (!seq) {
75
+ return jsonResponse({ error: 'seq required' }, 400);
76
+ }
77
+ const result = await this.nosqldbServer.revertToSeq(parseInt(seq), dryRun === 'true');
78
+ return jsonResponse(result);
79
+ });
80
+ }
81
+ /**
82
+ * Start the debug server.
83
+ */
84
+ async start() {
85
+ await this.server.start();
86
+ console.log(`NoSQLDB Debug UI available at http://localhost:${this.port}`);
87
+ }
88
+ /**
89
+ * Stop the debug server.
90
+ */
91
+ async stop() {
92
+ await this.server.stop();
93
+ }
94
+ }
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kZWJ1Z3NlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2RlYnVnc2VydmVyL2NsYXNzZXMuZGVidWdzZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssSUFBSSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFRckQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUs3QixZQUFZLGFBQTRCLEVBQUUsVUFBK0IsRUFBRTtRQUN6RSxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1FBRWpDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztZQUNoRCxJQUFJLEVBQUUsSUFBSTtZQUNWLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLGNBQWMsRUFBRSxZQUFZO1lBQzVCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBUyxFQUFFLE1BQU0sR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUMvQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pDLE1BQU07WUFDTixPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUU7U0FDaEQsQ0FBQyxDQUFDO1FBRUwsVUFBVTtRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBRSxLQUFLLElB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
@@ -0,0 +1,2 @@
1
+ export { NoSqlDbDebugServer } from './classes.debugserver.js';
2
+ export type { IDebugServerOptions } from './classes.debugserver.js';
@@ -0,0 +1,2 @@
1
+ export { NoSqlDbDebugServer } from './classes.debugserver.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19kZWJ1Z3NlcnZlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ import * as typedserver from '@api.global/typedserver';
2
+ export { typedserver };
@@ -0,0 +1,3 @@
1
+ import * as typedserver from '@api.global/typedserver';
2
+ export { typedserver };
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2RlYnVnc2VydmVyL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFdBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMifQ==
@@ -0,0 +1,2 @@
1
+ export { NoSqlDbDebugUi } from './nosqldb-debugui.js';
2
+ export type { IOpLogEntry, IOpLogResult, IOpLogStats, IRevertResult, ICollectionInfo, IDocumentsResult, INoSqlDbMetrics, } from '../dist_ts/index.js';
@@ -0,0 +1,2 @@
1
+ export { NoSqlDbDebugUi } from './nosqldb-debugui.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19kZWJ1Z3VpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQyJ9
@@ -0,0 +1,62 @@
1
+ import { DeesElement, type CSSResult, type TemplateResult } from './plugins.js';
2
+ import type { NoSqlDbServer, IOpLogEntry, IOpLogStats, ICollectionInfo, INoSqlDbMetrics } from '../dist_ts/index.js';
3
+ type TTab = 'dashboard' | 'collections' | 'oplog' | 'revert';
4
+ export declare class NoSqlDbDebugUi extends DeesElement {
5
+ /** Direct server reference (Node-side usage). */
6
+ accessor server: NoSqlDbServer | null;
7
+ /** Base URL for HTTP API (browser usage, e.g. "" for same origin). When set, uses fetch instead of direct server calls. */
8
+ accessor apiBaseUrl: string | null;
9
+ accessor refreshInterval: number;
10
+ accessor activeTab: TTab;
11
+ accessor metrics: INoSqlDbMetrics | null;
12
+ accessor oplogStats: IOpLogStats | null;
13
+ accessor oplogEntries: IOpLogEntry[];
14
+ accessor collections: ICollectionInfo[];
15
+ accessor selectedCollection: {
16
+ db: string;
17
+ name: string;
18
+ } | null;
19
+ accessor documents: Record<string, any>[];
20
+ accessor documentsTotal: number;
21
+ accessor expandedOplogSeqs: Set<number>;
22
+ accessor revertTargetSeq: number;
23
+ accessor revertPreview: {
24
+ reverted: number;
25
+ entries?: any[];
26
+ } | null;
27
+ accessor revertInProgress: boolean;
28
+ accessor oplogFilter: {
29
+ op?: string;
30
+ collection?: string;
31
+ };
32
+ private refreshTimer;
33
+ static styles: CSSResult[];
34
+ connectedCallback(): Promise<void>;
35
+ disconnectedCallback(): Promise<void>;
36
+ private startRefreshing;
37
+ private stopRefreshing;
38
+ private get useHttp();
39
+ private apiFetch;
40
+ private refresh;
41
+ private loadOplog;
42
+ private loadCollections;
43
+ private selectCollection;
44
+ private toggleOplogEntry;
45
+ private handlePreviewRevert;
46
+ private handleExecuteRevert;
47
+ private switchTab;
48
+ private computeDiff;
49
+ private diffRecursive;
50
+ private formatValue;
51
+ private formatTime;
52
+ render(): TemplateResult;
53
+ private renderDashboard;
54
+ private formatUptime;
55
+ private renderCollections;
56
+ private renderOplog;
57
+ private getFilteredOplog;
58
+ private renderOplogEntry;
59
+ private renderDiffRow;
60
+ private renderRevert;
61
+ }
62
+ export {};