mongo.do 0.1.0 → 0.1.1
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/cli/index.d.ts +1 -15
- package/dist/cli/index.js +4083 -196
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +2740 -20
- package/dist/index.js +9375 -27
- package/dist/index.js.map +1 -1
- package/dist/worker-entrypoint-BEW23Gmp.d.ts +1331 -0
- package/dist/worker.d.ts +6 -5
- package/dist/worker.js +5477 -18
- package/dist/worker.js.map +1 -1
- package/package.json +3 -2
- package/dist/agentfs/adapters/anthropic.d.ts +0 -176
- package/dist/agentfs/adapters/anthropic.d.ts.map +0 -1
- package/dist/agentfs/adapters/anthropic.js +0 -629
- package/dist/agentfs/adapters/anthropic.js.map +0 -1
- package/dist/agentfs/adapters/index.d.ts +0 -21
- package/dist/agentfs/adapters/index.d.ts.map +0 -1
- package/dist/agentfs/adapters/index.js +0 -23
- package/dist/agentfs/adapters/index.js.map +0 -1
- package/dist/agentfs/adapters/vercel.d.ts +0 -260
- package/dist/agentfs/adapters/vercel.d.ts.map +0 -1
- package/dist/agentfs/adapters/vercel.js +0 -288
- package/dist/agentfs/adapters/vercel.js.map +0 -1
- package/dist/agentfs/glob.d.ts +0 -116
- package/dist/agentfs/glob.d.ts.map +0 -1
- package/dist/agentfs/glob.js +0 -270
- package/dist/agentfs/glob.js.map +0 -1
- package/dist/agentfs/grep.d.ts +0 -83
- package/dist/agentfs/grep.d.ts.map +0 -1
- package/dist/agentfs/grep.js +0 -193
- package/dist/agentfs/grep.js.map +0 -1
- package/dist/agentfs/index.d.ts +0 -22
- package/dist/agentfs/index.d.ts.map +0 -1
- package/dist/agentfs/index.js +0 -18
- package/dist/agentfs/index.js.map +0 -1
- package/dist/agentfs/kv-store.d.ts +0 -128
- package/dist/agentfs/kv-store.d.ts.map +0 -1
- package/dist/agentfs/kv-store.js +0 -227
- package/dist/agentfs/kv-store.js.map +0 -1
- package/dist/agentfs/mondo-agent.d.ts +0 -255
- package/dist/agentfs/mondo-agent.d.ts.map +0 -1
- package/dist/agentfs/mondo-agent.js +0 -879
- package/dist/agentfs/mondo-agent.js.map +0 -1
- package/dist/agentfs/toolcalls.d.ts +0 -130
- package/dist/agentfs/toolcalls.d.ts.map +0 -1
- package/dist/agentfs/toolcalls.js +0 -178
- package/dist/agentfs/toolcalls.js.map +0 -1
- package/dist/agentfs/types.d.ts +0 -171
- package/dist/agentfs/types.d.ts.map +0 -1
- package/dist/agentfs/types.js +0 -7
- package/dist/agentfs/types.js.map +0 -1
- package/dist/agentfs/vfs.d.ts +0 -249
- package/dist/agentfs/vfs.d.ts.map +0 -1
- package/dist/agentfs/vfs.js +0 -469
- package/dist/agentfs/vfs.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/mcp.d.ts +0 -119
- package/dist/cli/mcp.d.ts.map +0 -1
- package/dist/cli/mcp.js +0 -418
- package/dist/cli/mcp.js.map +0 -1
- package/dist/cli/server.d.ts +0 -179
- package/dist/cli/server.d.ts.map +0 -1
- package/dist/cli/server.js +0 -441
- package/dist/cli/server.js.map +0 -1
- package/dist/client/Collection.d.ts +0 -199
- package/dist/client/Collection.d.ts.map +0 -1
- package/dist/client/Collection.js +0 -256
- package/dist/client/Collection.js.map +0 -1
- package/dist/client/Database.d.ts +0 -68
- package/dist/client/Database.d.ts.map +0 -1
- package/dist/client/Database.js +0 -105
- package/dist/client/Database.js.map +0 -1
- package/dist/client/MongoClient.d.ts +0 -165
- package/dist/client/MongoClient.d.ts.map +0 -1
- package/dist/client/MongoClient.js +0 -307
- package/dist/client/MongoClient.js.map +0 -1
- package/dist/client/aggregation-cursor.d.ts +0 -210
- package/dist/client/aggregation-cursor.d.ts.map +0 -1
- package/dist/client/aggregation-cursor.js +0 -509
- package/dist/client/aggregation-cursor.js.map +0 -1
- package/dist/client/bulk-write.d.ts +0 -216
- package/dist/client/bulk-write.d.ts.map +0 -1
- package/dist/client/bulk-write.js +0 -63
- package/dist/client/bulk-write.js.map +0 -1
- package/dist/client/change-stream.d.ts +0 -245
- package/dist/client/change-stream.d.ts.map +0 -1
- package/dist/client/change-stream.js +0 -429
- package/dist/client/change-stream.js.map +0 -1
- package/dist/client/cursor.d.ts +0 -85
- package/dist/client/cursor.d.ts.map +0 -1
- package/dist/client/cursor.js +0 -156
- package/dist/client/cursor.js.map +0 -1
- package/dist/client/http-cursor.d.ts +0 -233
- package/dist/client/http-cursor.d.ts.map +0 -1
- package/dist/client/http-cursor.js +0 -496
- package/dist/client/http-cursor.js.map +0 -1
- package/dist/client/index.d.ts +0 -18
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js +0 -24
- package/dist/client/index.js.map +0 -1
- package/dist/client/mongo-client.d.ts +0 -60
- package/dist/client/mongo-client.d.ts.map +0 -1
- package/dist/client/mongo-client.js +0 -190
- package/dist/client/mongo-client.js.map +0 -1
- package/dist/client/mongo-collection.d.ts +0 -359
- package/dist/client/mongo-collection.d.ts.map +0 -1
- package/dist/client/mongo-collection.js +0 -1641
- package/dist/client/mongo-collection.js.map +0 -1
- package/dist/client/mongo-cursor.d.ts +0 -257
- package/dist/client/mongo-cursor.d.ts.map +0 -1
- package/dist/client/mongo-cursor.js +0 -621
- package/dist/client/mongo-cursor.js.map +0 -1
- package/dist/client/mongo-database.d.ts +0 -88
- package/dist/client/mongo-database.d.ts.map +0 -1
- package/dist/client/mongo-database.js +0 -139
- package/dist/client/mongo-database.js.map +0 -1
- package/dist/client/session.d.ts +0 -210
- package/dist/client/session.d.ts.map +0 -1
- package/dist/client/session.js +0 -326
- package/dist/client/session.js.map +0 -1
- package/dist/durable-object/index-manager.d.ts +0 -173
- package/dist/durable-object/index-manager.d.ts.map +0 -1
- package/dist/durable-object/index-manager.js +0 -764
- package/dist/durable-object/index-manager.js.map +0 -1
- package/dist/durable-object/index.d.ts +0 -12
- package/dist/durable-object/index.d.ts.map +0 -1
- package/dist/durable-object/index.js +0 -8
- package/dist/durable-object/index.js.map +0 -1
- package/dist/durable-object/mcp-handler.d.ts +0 -52
- package/dist/durable-object/mcp-handler.d.ts.map +0 -1
- package/dist/durable-object/mcp-handler.js +0 -186
- package/dist/durable-object/mcp-handler.js.map +0 -1
- package/dist/durable-object/migrations.d.ts +0 -40
- package/dist/durable-object/migrations.d.ts.map +0 -1
- package/dist/durable-object/migrations.js +0 -121
- package/dist/durable-object/migrations.js.map +0 -1
- package/dist/durable-object/mondo-database.d.ts +0 -148
- package/dist/durable-object/mondo-database.d.ts.map +0 -1
- package/dist/durable-object/mondo-database.js +0 -621
- package/dist/durable-object/mondo-database.js.map +0 -1
- package/dist/durable-object/schema.d.ts +0 -192
- package/dist/durable-object/schema.d.ts.map +0 -1
- package/dist/durable-object/schema.js +0 -186
- package/dist/durable-object/schema.js.map +0 -1
- package/dist/embedding/document-serializer.d.ts +0 -118
- package/dist/embedding/document-serializer.d.ts.map +0 -1
- package/dist/embedding/document-serializer.js +0 -339
- package/dist/embedding/document-serializer.js.map +0 -1
- package/dist/embedding/embedding-manager.d.ts +0 -136
- package/dist/embedding/embedding-manager.d.ts.map +0 -1
- package/dist/embedding/embedding-manager.js +0 -176
- package/dist/embedding/embedding-manager.js.map +0 -1
- package/dist/embedding/index.d.ts +0 -9
- package/dist/embedding/index.d.ts.map +0 -1
- package/dist/embedding/index.js +0 -9
- package/dist/embedding/index.js.map +0 -1
- package/dist/executor/aggregation-executor.d.ts +0 -93
- package/dist/executor/aggregation-executor.d.ts.map +0 -1
- package/dist/executor/aggregation-executor.js +0 -275
- package/dist/executor/aggregation-executor.js.map +0 -1
- package/dist/executor/function-executor.d.ts +0 -39
- package/dist/executor/function-executor.d.ts.map +0 -1
- package/dist/executor/function-executor.js +0 -168
- package/dist/executor/function-executor.js.map +0 -1
- package/dist/executor/index.d.ts +0 -4
- package/dist/executor/index.d.ts.map +0 -1
- package/dist/executor/index.js +0 -4
- package/dist/executor/index.js.map +0 -1
- package/dist/executor/vector-search-executor.d.ts +0 -71
- package/dist/executor/vector-search-executor.d.ts.map +0 -1
- package/dist/executor/vector-search-executor.js +0 -113
- package/dist/executor/vector-search-executor.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/mcp/adapters/anthropic-adapter.d.ts +0 -256
- package/dist/mcp/adapters/anthropic-adapter.d.ts.map +0 -1
- package/dist/mcp/adapters/anthropic-adapter.js +0 -409
- package/dist/mcp/adapters/anthropic-adapter.js.map +0 -1
- package/dist/mcp/adapters/base-adapter.d.ts +0 -164
- package/dist/mcp/adapters/base-adapter.d.ts.map +0 -1
- package/dist/mcp/adapters/base-adapter.js +0 -277
- package/dist/mcp/adapters/base-adapter.js.map +0 -1
- package/dist/mcp/adapters/errors.d.ts +0 -173
- package/dist/mcp/adapters/errors.d.ts.map +0 -1
- package/dist/mcp/adapters/errors.js +0 -305
- package/dist/mcp/adapters/errors.js.map +0 -1
- package/dist/mcp/adapters/index.d.ts +0 -65
- package/dist/mcp/adapters/index.d.ts.map +0 -1
- package/dist/mcp/adapters/index.js +0 -92
- package/dist/mcp/adapters/index.js.map +0 -1
- package/dist/mcp/adapters/streaming.d.ts +0 -200
- package/dist/mcp/adapters/streaming.d.ts.map +0 -1
- package/dist/mcp/adapters/streaming.js +0 -381
- package/dist/mcp/adapters/streaming.js.map +0 -1
- package/dist/mcp/adapters/vercel-adapter.d.ts +0 -321
- package/dist/mcp/adapters/vercel-adapter.d.ts.map +0 -1
- package/dist/mcp/adapters/vercel-adapter.js +0 -487
- package/dist/mcp/adapters/vercel-adapter.js.map +0 -1
- package/dist/mcp/agent.d.ts +0 -192
- package/dist/mcp/agent.d.ts.map +0 -1
- package/dist/mcp/agent.js +0 -338
- package/dist/mcp/agent.js.map +0 -1
- package/dist/mcp/cli.d.ts +0 -71
- package/dist/mcp/cli.d.ts.map +0 -1
- package/dist/mcp/cli.js +0 -218
- package/dist/mcp/cli.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -15
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -20
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/sandbox/database-proxy.d.ts +0 -118
- package/dist/mcp/sandbox/database-proxy.d.ts.map +0 -1
- package/dist/mcp/sandbox/database-proxy.js +0 -154
- package/dist/mcp/sandbox/database-proxy.js.map +0 -1
- package/dist/mcp/sandbox/index.d.ts +0 -8
- package/dist/mcp/sandbox/index.d.ts.map +0 -1
- package/dist/mcp/sandbox/index.js +0 -7
- package/dist/mcp/sandbox/index.js.map +0 -1
- package/dist/mcp/sandbox/miniflare-evaluator.d.ts +0 -72
- package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +0 -1
- package/dist/mcp/sandbox/miniflare-evaluator.js +0 -379
- package/dist/mcp/sandbox/miniflare-evaluator.js.map +0 -1
- package/dist/mcp/sandbox/template.d.ts +0 -48
- package/dist/mcp/sandbox/template.d.ts.map +0 -1
- package/dist/mcp/sandbox/template.js +0 -147
- package/dist/mcp/sandbox/template.js.map +0 -1
- package/dist/mcp/sandbox/worker-evaluator.d.ts +0 -160
- package/dist/mcp/sandbox/worker-evaluator.d.ts.map +0 -1
- package/dist/mcp/sandbox/worker-evaluator.js +0 -217
- package/dist/mcp/sandbox/worker-evaluator.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -75
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/server.js +0 -278
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/tool-call-auditor.d.ts +0 -188
- package/dist/mcp/tool-call-auditor.d.ts.map +0 -1
- package/dist/mcp/tool-call-auditor.js +0 -198
- package/dist/mcp/tool-call-auditor.js.map +0 -1
- package/dist/mcp/tools/do.d.ts +0 -51
- package/dist/mcp/tools/do.d.ts.map +0 -1
- package/dist/mcp/tools/do.js +0 -113
- package/dist/mcp/tools/do.js.map +0 -1
- package/dist/mcp/tools/fetch.d.ts +0 -43
- package/dist/mcp/tools/fetch.d.ts.map +0 -1
- package/dist/mcp/tools/fetch.js +0 -127
- package/dist/mcp/tools/fetch.js.map +0 -1
- package/dist/mcp/tools/index.d.ts +0 -9
- package/dist/mcp/tools/index.d.ts.map +0 -1
- package/dist/mcp/tools/index.js +0 -9
- package/dist/mcp/tools/index.js.map +0 -1
- package/dist/mcp/tools/search.d.ts +0 -60
- package/dist/mcp/tools/search.d.ts.map +0 -1
- package/dist/mcp/tools/search.js +0 -278
- package/dist/mcp/tools/search.js.map +0 -1
- package/dist/mcp/transport/http.d.ts +0 -144
- package/dist/mcp/transport/http.d.ts.map +0 -1
- package/dist/mcp/transport/http.js +0 -545
- package/dist/mcp/transport/http.js.map +0 -1
- package/dist/mcp/transport/index.d.ts +0 -10
- package/dist/mcp/transport/index.d.ts.map +0 -1
- package/dist/mcp/transport/index.js +0 -12
- package/dist/mcp/transport/index.js.map +0 -1
- package/dist/mcp/transport/stdio.d.ts +0 -132
- package/dist/mcp/transport/stdio.d.ts.map +0 -1
- package/dist/mcp/transport/stdio.js +0 -466
- package/dist/mcp/transport/stdio.js.map +0 -1
- package/dist/mcp/types.d.ts +0 -476
- package/dist/mcp/types.d.ts.map +0 -1
- package/dist/mcp/types.js +0 -178
- package/dist/mcp/types.js.map +0 -1
- package/dist/olap/cdc/cdc-buffer.d.ts +0 -92
- package/dist/olap/cdc/cdc-buffer.d.ts.map +0 -1
- package/dist/olap/cdc/cdc-buffer.js +0 -146
- package/dist/olap/cdc/cdc-buffer.js.map +0 -1
- package/dist/olap/cdc/cdc-emitter.d.ts +0 -118
- package/dist/olap/cdc/cdc-emitter.d.ts.map +0 -1
- package/dist/olap/cdc/cdc-emitter.js +0 -217
- package/dist/olap/cdc/cdc-emitter.js.map +0 -1
- package/dist/olap/cdc/cdc-schema.d.ts +0 -119
- package/dist/olap/cdc/cdc-schema.d.ts.map +0 -1
- package/dist/olap/cdc/cdc-schema.js +0 -253
- package/dist/olap/cdc/cdc-schema.js.map +0 -1
- package/dist/olap/cdc/index.d.ts +0 -10
- package/dist/olap/cdc/index.d.ts.map +0 -1
- package/dist/olap/cdc/index.js +0 -10
- package/dist/olap/cdc/index.js.map +0 -1
- package/dist/olap/clickhouse/iceberg.d.ts +0 -164
- package/dist/olap/clickhouse/iceberg.d.ts.map +0 -1
- package/dist/olap/clickhouse/iceberg.js +0 -138
- package/dist/olap/clickhouse/iceberg.js.map +0 -1
- package/dist/olap/clickhouse/index.d.ts +0 -14
- package/dist/olap/clickhouse/index.d.ts.map +0 -1
- package/dist/olap/clickhouse/index.js +0 -14
- package/dist/olap/clickhouse/index.js.map +0 -1
- package/dist/olap/clickhouse/mapper.d.ts +0 -170
- package/dist/olap/clickhouse/mapper.d.ts.map +0 -1
- package/dist/olap/clickhouse/mapper.js +0 -654
- package/dist/olap/clickhouse/mapper.js.map +0 -1
- package/dist/olap/clickhouse/olap-backend.d.ts +0 -181
- package/dist/olap/clickhouse/olap-backend.d.ts.map +0 -1
- package/dist/olap/clickhouse/olap-backend.js +0 -1083
- package/dist/olap/clickhouse/olap-backend.js.map +0 -1
- package/dist/olap/clickhouse/query-executor.d.ts +0 -163
- package/dist/olap/clickhouse/query-executor.d.ts.map +0 -1
- package/dist/olap/clickhouse/query-executor.js +0 -560
- package/dist/olap/clickhouse/query-executor.js.map +0 -1
- package/dist/olap/clickhouse/query.d.ts +0 -134
- package/dist/olap/clickhouse/query.d.ts.map +0 -1
- package/dist/olap/clickhouse/query.js +0 -512
- package/dist/olap/clickhouse/query.js.map +0 -1
- package/dist/olap/stage/index.d.ts +0 -6
- package/dist/olap/stage/index.d.ts.map +0 -1
- package/dist/olap/stage/index.js +0 -6
- package/dist/olap/stage/index.js.map +0 -1
- package/dist/olap/stage/parser.d.ts +0 -68
- package/dist/olap/stage/parser.d.ts.map +0 -1
- package/dist/olap/stage/parser.js +0 -293
- package/dist/olap/stage/parser.js.map +0 -1
- package/dist/olap/stage/router.d.ts +0 -94
- package/dist/olap/stage/router.d.ts.map +0 -1
- package/dist/olap/stage/router.js +0 -390
- package/dist/olap/stage/router.js.map +0 -1
- package/dist/rpc/endpoint.d.ts +0 -52
- package/dist/rpc/endpoint.d.ts.map +0 -1
- package/dist/rpc/endpoint.js +0 -734
- package/dist/rpc/endpoint.js.map +0 -1
- package/dist/rpc/index.d.ts +0 -34
- package/dist/rpc/index.d.ts.map +0 -1
- package/dist/rpc/index.js +0 -45
- package/dist/rpc/index.js.map +0 -1
- package/dist/rpc/rpc-client.d.ts +0 -275
- package/dist/rpc/rpc-client.d.ts.map +0 -1
- package/dist/rpc/rpc-client.js +0 -735
- package/dist/rpc/rpc-client.js.map +0 -1
- package/dist/rpc/rpc-target.d.ts +0 -220
- package/dist/rpc/rpc-target.d.ts.map +0 -1
- package/dist/rpc/rpc-target.js +0 -500
- package/dist/rpc/rpc-target.js.map +0 -1
- package/dist/rpc/worker-entrypoint.d.ts +0 -159
- package/dist/rpc/worker-entrypoint.d.ts.map +0 -1
- package/dist/rpc/worker-entrypoint.js +0 -212
- package/dist/rpc/worker-entrypoint.js.map +0 -1
- package/dist/server.d.ts +0 -18
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -129
- package/dist/server.js.map +0 -1
- package/dist/studio/components/browser/CollectionItem.d.ts +0 -26
- package/dist/studio/components/browser/CollectionItem.d.ts.map +0 -1
- package/dist/studio/components/browser/CollectionItem.js +0 -143
- package/dist/studio/components/browser/CollectionItem.js.map +0 -1
- package/dist/studio/components/browser/CollectionTree.d.ts +0 -45
- package/dist/studio/components/browser/CollectionTree.d.ts.map +0 -1
- package/dist/studio/components/browser/CollectionTree.js +0 -207
- package/dist/studio/components/browser/CollectionTree.js.map +0 -1
- package/dist/studio/components/browser/ConnectedDatabaseBrowser.d.ts +0 -51
- package/dist/studio/components/browser/ConnectedDatabaseBrowser.d.ts.map +0 -1
- package/dist/studio/components/browser/ConnectedDatabaseBrowser.js +0 -185
- package/dist/studio/components/browser/ConnectedDatabaseBrowser.js.map +0 -1
- package/dist/studio/components/browser/DatabaseBrowser.d.ts +0 -46
- package/dist/studio/components/browser/DatabaseBrowser.d.ts.map +0 -1
- package/dist/studio/components/browser/DatabaseBrowser.js +0 -304
- package/dist/studio/components/browser/DatabaseBrowser.js.map +0 -1
- package/dist/studio/components/browser/__tests__/CollectionItem.test.d.ts +0 -5
- package/dist/studio/components/browser/__tests__/CollectionItem.test.d.ts.map +0 -1
- package/dist/studio/components/browser/__tests__/CollectionItem.test.js +0 -169
- package/dist/studio/components/browser/__tests__/CollectionItem.test.js.map +0 -1
- package/dist/studio/components/browser/__tests__/CollectionTree.test.d.ts +0 -5
- package/dist/studio/components/browser/__tests__/CollectionTree.test.d.ts.map +0 -1
- package/dist/studio/components/browser/__tests__/CollectionTree.test.js +0 -203
- package/dist/studio/components/browser/__tests__/CollectionTree.test.js.map +0 -1
- package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.d.ts +0 -8
- package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.d.ts.map +0 -1
- package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.js +0 -522
- package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.js.map +0 -1
- package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.d.ts +0 -5
- package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.d.ts.map +0 -1
- package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.js +0 -518
- package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.js.map +0 -1
- package/dist/studio/components/browser/__tests__/setup.d.ts +0 -5
- package/dist/studio/components/browser/__tests__/setup.d.ts.map +0 -1
- package/dist/studio/components/browser/__tests__/setup.js +0 -22
- package/dist/studio/components/browser/__tests__/setup.js.map +0 -1
- package/dist/studio/components/browser/index.d.ts +0 -15
- package/dist/studio/components/browser/index.d.ts.map +0 -1
- package/dist/studio/components/browser/index.js +0 -10
- package/dist/studio/components/browser/index.js.map +0 -1
- package/dist/studio/components/browser/types.d.ts +0 -33
- package/dist/studio/components/browser/types.d.ts.map +0 -1
- package/dist/studio/components/browser/types.js +0 -5
- package/dist/studio/components/browser/types.js.map +0 -1
- package/dist/studio/components/connection/ConnectionForm.d.ts +0 -59
- package/dist/studio/components/connection/ConnectionForm.d.ts.map +0 -1
- package/dist/studio/components/connection/ConnectionForm.js +0 -274
- package/dist/studio/components/connection/ConnectionForm.js.map +0 -1
- package/dist/studio/components/connection/ConnectionList.d.ts +0 -59
- package/dist/studio/components/connection/ConnectionList.d.ts.map +0 -1
- package/dist/studio/components/connection/ConnectionList.js +0 -286
- package/dist/studio/components/connection/ConnectionList.js.map +0 -1
- package/dist/studio/components/connection/ConnectionPanel.d.ts +0 -132
- package/dist/studio/components/connection/ConnectionPanel.d.ts.map +0 -1
- package/dist/studio/components/connection/ConnectionPanel.js +0 -293
- package/dist/studio/components/connection/ConnectionPanel.js.map +0 -1
- package/dist/studio/components/connection/__tests__/ConnectionPanel.test.d.ts +0 -8
- package/dist/studio/components/connection/__tests__/ConnectionPanel.test.d.ts.map +0 -1
- package/dist/studio/components/connection/__tests__/ConnectionPanel.test.js +0 -632
- package/dist/studio/components/connection/__tests__/ConnectionPanel.test.js.map +0 -1
- package/dist/studio/components/connection/__tests__/setup.d.ts +0 -5
- package/dist/studio/components/connection/__tests__/setup.d.ts.map +0 -1
- package/dist/studio/components/connection/__tests__/setup.js +0 -11
- package/dist/studio/components/connection/__tests__/setup.js.map +0 -1
- package/dist/studio/components/connection/index.d.ts +0 -10
- package/dist/studio/components/connection/index.d.ts.map +0 -1
- package/dist/studio/components/connection/index.js +0 -7
- package/dist/studio/components/connection/index.js.map +0 -1
- package/dist/studio/components/crud/DeleteDocumentDialog.d.ts +0 -91
- package/dist/studio/components/crud/DeleteDocumentDialog.d.ts.map +0 -1
- package/dist/studio/components/crud/DeleteDocumentDialog.js +0 -273
- package/dist/studio/components/crud/DeleteDocumentDialog.js.map +0 -1
- package/dist/studio/components/crud/DocumentEditor.d.ts +0 -32
- package/dist/studio/components/crud/DocumentEditor.d.ts.map +0 -1
- package/dist/studio/components/crud/DocumentEditor.js +0 -546
- package/dist/studio/components/crud/DocumentEditor.js.map +0 -1
- package/dist/studio/components/crud/InsertDocumentDialog.d.ts +0 -78
- package/dist/studio/components/crud/InsertDocumentDialog.d.ts.map +0 -1
- package/dist/studio/components/crud/InsertDocumentDialog.js +0 -323
- package/dist/studio/components/crud/InsertDocumentDialog.js.map +0 -1
- package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.d.ts +0 -5
- package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.d.ts.map +0 -1
- package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.js +0 -298
- package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.js.map +0 -1
- package/dist/studio/components/crud/__tests__/DocumentEditor.test.d.ts +0 -8
- package/dist/studio/components/crud/__tests__/DocumentEditor.test.d.ts.map +0 -1
- package/dist/studio/components/crud/__tests__/DocumentEditor.test.js +0 -368
- package/dist/studio/components/crud/__tests__/DocumentEditor.test.js.map +0 -1
- package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.d.ts +0 -2
- package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.d.ts.map +0 -1
- package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.js +0 -352
- package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.js.map +0 -1
- package/dist/studio/components/crud/__tests__/setup.d.ts +0 -5
- package/dist/studio/components/crud/__tests__/setup.d.ts.map +0 -1
- package/dist/studio/components/crud/__tests__/setup.js +0 -22
- package/dist/studio/components/crud/__tests__/setup.js.map +0 -1
- package/dist/studio/components/crud/index.d.ts +0 -12
- package/dist/studio/components/crud/index.d.ts.map +0 -1
- package/dist/studio/components/crud/index.js +0 -11
- package/dist/studio/components/crud/index.js.map +0 -1
- package/dist/studio/hooks/useConnection.d.ts +0 -127
- package/dist/studio/hooks/useConnection.d.ts.map +0 -1
- package/dist/studio/hooks/useConnection.js +0 -414
- package/dist/studio/hooks/useConnection.js.map +0 -1
- package/dist/studio/hooks/useDatabaseBrowser.d.ts +0 -107
- package/dist/studio/hooks/useDatabaseBrowser.d.ts.map +0 -1
- package/dist/studio/hooks/useDatabaseBrowser.js +0 -294
- package/dist/studio/hooks/useDatabaseBrowser.js.map +0 -1
- package/dist/studio/index.d.ts +0 -16
- package/dist/studio/index.d.ts.map +0 -1
- package/dist/studio/index.js +0 -14
- package/dist/studio/index.js.map +0 -1
- package/dist/studio/types/connection.d.ts +0 -266
- package/dist/studio/types/connection.d.ts.map +0 -1
- package/dist/studio/types/connection.js +0 -159
- package/dist/studio/types/connection.js.map +0 -1
- package/dist/studio/vitest.config.d.ts +0 -3
- package/dist/studio/vitest.config.d.ts.map +0 -1
- package/dist/studio/vitest.config.js +0 -33
- package/dist/studio/vitest.config.js.map +0 -1
- package/dist/translator/aggregation-translator.d.ts +0 -51
- package/dist/translator/aggregation-translator.d.ts.map +0 -1
- package/dist/translator/aggregation-translator.js +0 -324
- package/dist/translator/aggregation-translator.js.map +0 -1
- package/dist/translator/dialect.d.ts +0 -131
- package/dist/translator/dialect.d.ts.map +0 -1
- package/dist/translator/dialect.js +0 -276
- package/dist/translator/dialect.js.map +0 -1
- package/dist/translator/geo-translator.d.ts +0 -91
- package/dist/translator/geo-translator.d.ts.map +0 -1
- package/dist/translator/geo-translator.js +0 -587
- package/dist/translator/geo-translator.js.map +0 -1
- package/dist/translator/hybrid-translator.d.ts +0 -70
- package/dist/translator/hybrid-translator.d.ts.map +0 -1
- package/dist/translator/hybrid-translator.js +0 -193
- package/dist/translator/hybrid-translator.js.map +0 -1
- package/dist/translator/index.d.ts +0 -13
- package/dist/translator/index.d.ts.map +0 -1
- package/dist/translator/index.js +0 -11
- package/dist/translator/index.js.map +0 -1
- package/dist/translator/query-translator.d.ts +0 -211
- package/dist/translator/query-translator.d.ts.map +0 -1
- package/dist/translator/query-translator.js +0 -1276
- package/dist/translator/query-translator.js.map +0 -1
- package/dist/translator/search-highlight.d.ts +0 -83
- package/dist/translator/search-highlight.d.ts.map +0 -1
- package/dist/translator/search-highlight.js +0 -83
- package/dist/translator/search-highlight.js.map +0 -1
- package/dist/translator/search-translator.d.ts +0 -155
- package/dist/translator/search-translator.d.ts.map +0 -1
- package/dist/translator/search-translator.js +0 -241
- package/dist/translator/search-translator.js.map +0 -1
- package/dist/translator/stages/add-fields-stage.d.ts +0 -7
- package/dist/translator/stages/add-fields-stage.d.ts.map +0 -1
- package/dist/translator/stages/add-fields-stage.js +0 -72
- package/dist/translator/stages/add-fields-stage.js.map +0 -1
- package/dist/translator/stages/bucket-stage.d.ts +0 -7
- package/dist/translator/stages/bucket-stage.d.ts.map +0 -1
- package/dist/translator/stages/bucket-stage.js +0 -87
- package/dist/translator/stages/bucket-stage.js.map +0 -1
- package/dist/translator/stages/count-stage.d.ts +0 -7
- package/dist/translator/stages/count-stage.d.ts.map +0 -1
- package/dist/translator/stages/count-stage.js +0 -12
- package/dist/translator/stages/count-stage.js.map +0 -1
- package/dist/translator/stages/expression-translator.d.ts +0 -68
- package/dist/translator/stages/expression-translator.d.ts.map +0 -1
- package/dist/translator/stages/expression-translator.js +0 -467
- package/dist/translator/stages/expression-translator.js.map +0 -1
- package/dist/translator/stages/facet-stage.d.ts +0 -13
- package/dist/translator/stages/facet-stage.d.ts.map +0 -1
- package/dist/translator/stages/facet-stage.js +0 -26
- package/dist/translator/stages/facet-stage.js.map +0 -1
- package/dist/translator/stages/fusion-stages.d.ts +0 -118
- package/dist/translator/stages/fusion-stages.d.ts.map +0 -1
- package/dist/translator/stages/fusion-stages.js +0 -201
- package/dist/translator/stages/fusion-stages.js.map +0 -1
- package/dist/translator/stages/group-stage.d.ts +0 -8
- package/dist/translator/stages/group-stage.d.ts.map +0 -1
- package/dist/translator/stages/group-stage.js +0 -123
- package/dist/translator/stages/group-stage.js.map +0 -1
- package/dist/translator/stages/index.d.ts +0 -24
- package/dist/translator/stages/index.d.ts.map +0 -1
- package/dist/translator/stages/index.js +0 -24
- package/dist/translator/stages/index.js.map +0 -1
- package/dist/translator/stages/join-optimizer.d.ts +0 -37
- package/dist/translator/stages/join-optimizer.d.ts.map +0 -1
- package/dist/translator/stages/join-optimizer.js +0 -93
- package/dist/translator/stages/join-optimizer.js.map +0 -1
- package/dist/translator/stages/limit-stage.d.ts +0 -7
- package/dist/translator/stages/limit-stage.d.ts.map +0 -1
- package/dist/translator/stages/limit-stage.js +0 -11
- package/dist/translator/stages/limit-stage.js.map +0 -1
- package/dist/translator/stages/lookup-stage.d.ts +0 -7
- package/dist/translator/stages/lookup-stage.d.ts.map +0 -1
- package/dist/translator/stages/lookup-stage.js +0 -73
- package/dist/translator/stages/lookup-stage.js.map +0 -1
- package/dist/translator/stages/match-stage.d.ts +0 -7
- package/dist/translator/stages/match-stage.d.ts.map +0 -1
- package/dist/translator/stages/match-stage.js +0 -14
- package/dist/translator/stages/match-stage.js.map +0 -1
- package/dist/translator/stages/optimizer.d.ts +0 -15
- package/dist/translator/stages/optimizer.d.ts.map +0 -1
- package/dist/translator/stages/optimizer.js +0 -249
- package/dist/translator/stages/optimizer.js.map +0 -1
- package/dist/translator/stages/parallel-facet.d.ts +0 -47
- package/dist/translator/stages/parallel-facet.d.ts.map +0 -1
- package/dist/translator/stages/parallel-facet.js +0 -57
- package/dist/translator/stages/parallel-facet.js.map +0 -1
- package/dist/translator/stages/project-stage.d.ts +0 -8
- package/dist/translator/stages/project-stage.d.ts.map +0 -1
- package/dist/translator/stages/project-stage.js +0 -145
- package/dist/translator/stages/project-stage.js.map +0 -1
- package/dist/translator/stages/search-stage.d.ts +0 -60
- package/dist/translator/stages/search-stage.d.ts.map +0 -1
- package/dist/translator/stages/search-stage.js +0 -89
- package/dist/translator/stages/search-stage.js.map +0 -1
- package/dist/translator/stages/skip-stage.d.ts +0 -7
- package/dist/translator/stages/skip-stage.d.ts.map +0 -1
- package/dist/translator/stages/skip-stage.js +0 -11
- package/dist/translator/stages/skip-stage.js.map +0 -1
- package/dist/translator/stages/sort-stage.d.ts +0 -7
- package/dist/translator/stages/sort-stage.d.ts.map +0 -1
- package/dist/translator/stages/sort-stage.js +0 -21
- package/dist/translator/stages/sort-stage.js.map +0 -1
- package/dist/translator/stages/types.d.ts +0 -136
- package/dist/translator/stages/types.d.ts.map +0 -1
- package/dist/translator/stages/types.js +0 -5
- package/dist/translator/stages/types.js.map +0 -1
- package/dist/translator/stages/unwind-stage.d.ts +0 -7
- package/dist/translator/stages/unwind-stage.d.ts.map +0 -1
- package/dist/translator/stages/unwind-stage.js +0 -61
- package/dist/translator/stages/unwind-stage.js.map +0 -1
- package/dist/translator/stages/vector-search-stage.d.ts +0 -53
- package/dist/translator/stages/vector-search-stage.d.ts.map +0 -1
- package/dist/translator/stages/vector-search-stage.js +0 -62
- package/dist/translator/stages/vector-search-stage.js.map +0 -1
- package/dist/translator/update-translator.d.ts +0 -148
- package/dist/translator/update-translator.d.ts.map +0 -1
- package/dist/translator/update-translator.js +0 -819
- package/dist/translator/update-translator.js.map +0 -1
- package/dist/translator/vector-translator.d.ts +0 -89
- package/dist/translator/vector-translator.d.ts.map +0 -1
- package/dist/translator/vector-translator.js +0 -106
- package/dist/translator/vector-translator.js.map +0 -1
- package/dist/types/env.d.ts +0 -31
- package/dist/types/env.d.ts.map +0 -1
- package/dist/types/env.js +0 -5
- package/dist/types/env.js.map +0 -1
- package/dist/types/function.d.ts +0 -65
- package/dist/types/function.d.ts.map +0 -1
- package/dist/types/function.js +0 -5
- package/dist/types/function.js.map +0 -1
- package/dist/types/index.d.ts +0 -137
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -13
- package/dist/types/index.js.map +0 -1
- package/dist/types/mongodb.d.ts +0 -258
- package/dist/types/mongodb.d.ts.map +0 -1
- package/dist/types/mongodb.js +0 -5
- package/dist/types/mongodb.js.map +0 -1
- package/dist/types/objectid.d.ts +0 -130
- package/dist/types/objectid.d.ts.map +0 -1
- package/dist/types/objectid.js +0 -314
- package/dist/types/objectid.js.map +0 -1
- package/dist/types/rpc.d.ts +0 -313
- package/dist/types/rpc.d.ts.map +0 -1
- package/dist/types/rpc.js +0 -136
- package/dist/types/rpc.js.map +0 -1
- package/dist/types/vectorize.d.ts +0 -136
- package/dist/types/vectorize.d.ts.map +0 -1
- package/dist/types/vectorize.js +0 -8
- package/dist/types/vectorize.js.map +0 -1
- package/dist/utils/sql-safety.d.ts +0 -64
- package/dist/utils/sql-safety.d.ts.map +0 -1
- package/dist/utils/sql-safety.js +0 -112
- package/dist/utils/sql-safety.js.map +0 -1
- package/dist/validation/document-validator.d.ts +0 -195
- package/dist/validation/document-validator.d.ts.map +0 -1
- package/dist/validation/document-validator.js +0 -529
- package/dist/validation/document-validator.js.map +0 -1
- package/dist/vectorize/document-serializer.d.ts +0 -119
- package/dist/vectorize/document-serializer.d.ts.map +0 -1
- package/dist/vectorize/document-serializer.js +0 -320
- package/dist/vectorize/document-serializer.js.map +0 -1
- package/dist/wire/auth/index.d.ts +0 -5
- package/dist/wire/auth/index.d.ts.map +0 -1
- package/dist/wire/auth/index.js +0 -5
- package/dist/wire/auth/index.js.map +0 -1
- package/dist/wire/auth/scram.d.ts +0 -160
- package/dist/wire/auth/scram.d.ts.map +0 -1
- package/dist/wire/auth/scram.js +0 -425
- package/dist/wire/auth/scram.js.map +0 -1
- package/dist/wire/backend/interface.d.ts +0 -168
- package/dist/wire/backend/interface.d.ts.map +0 -1
- package/dist/wire/backend/interface.js +0 -10
- package/dist/wire/backend/interface.js.map +0 -1
- package/dist/wire/backend/local-sqlite.d.ts +0 -89
- package/dist/wire/backend/local-sqlite.d.ts.map +0 -1
- package/dist/wire/backend/local-sqlite.js +0 -1002
- package/dist/wire/backend/local-sqlite.js.map +0 -1
- package/dist/wire/backend/query-router.d.ts +0 -197
- package/dist/wire/backend/query-router.d.ts.map +0 -1
- package/dist/wire/backend/query-router.js +0 -590
- package/dist/wire/backend/query-router.js.map +0 -1
- package/dist/wire/backend/validation.d.ts +0 -26
- package/dist/wire/backend/validation.d.ts.map +0 -1
- package/dist/wire/backend/validation.js +0 -79
- package/dist/wire/backend/validation.js.map +0 -1
- package/dist/wire/backend/workers-proxy.d.ts +0 -95
- package/dist/wire/backend/workers-proxy.d.ts.map +0 -1
- package/dist/wire/backend/workers-proxy.js +0 -429
- package/dist/wire/backend/workers-proxy.js.map +0 -1
- package/dist/wire/commands/admin.d.ts +0 -49
- package/dist/wire/commands/admin.d.ts.map +0 -1
- package/dist/wire/commands/admin.js +0 -272
- package/dist/wire/commands/admin.js.map +0 -1
- package/dist/wire/commands/aggregate.d.ts +0 -15
- package/dist/wire/commands/aggregate.d.ts.map +0 -1
- package/dist/wire/commands/aggregate.js +0 -98
- package/dist/wire/commands/aggregate.js.map +0 -1
- package/dist/wire/commands/auth.d.ts +0 -58
- package/dist/wire/commands/auth.d.ts.map +0 -1
- package/dist/wire/commands/auth.js +0 -158
- package/dist/wire/commands/auth.js.map +0 -1
- package/dist/wire/commands/crud.d.ts +0 -49
- package/dist/wire/commands/crud.d.ts.map +0 -1
- package/dist/wire/commands/crud.js +0 -336
- package/dist/wire/commands/crud.js.map +0 -1
- package/dist/wire/commands/hello.d.ts +0 -35
- package/dist/wire/commands/hello.d.ts.map +0 -1
- package/dist/wire/commands/hello.js +0 -204
- package/dist/wire/commands/hello.js.map +0 -1
- package/dist/wire/commands/index.d.ts +0 -24
- package/dist/wire/commands/index.d.ts.map +0 -1
- package/dist/wire/commands/index.js +0 -145
- package/dist/wire/commands/index.js.map +0 -1
- package/dist/wire/commands/router.d.ts +0 -46
- package/dist/wire/commands/router.d.ts.map +0 -1
- package/dist/wire/commands/router.js +0 -151
- package/dist/wire/commands/router.js.map +0 -1
- package/dist/wire/commands/types.d.ts +0 -51
- package/dist/wire/commands/types.d.ts.map +0 -1
- package/dist/wire/commands/types.js +0 -15
- package/dist/wire/commands/types.js.map +0 -1
- package/dist/wire/index.d.ts +0 -15
- package/dist/wire/index.d.ts.map +0 -1
- package/dist/wire/index.js +0 -19
- package/dist/wire/index.js.map +0 -1
- package/dist/wire/message.d.ts +0 -49
- package/dist/wire/message.d.ts.map +0 -1
- package/dist/wire/message.js +0 -299
- package/dist/wire/message.js.map +0 -1
- package/dist/wire/server.d.ts +0 -145
- package/dist/wire/server.d.ts.map +0 -1
- package/dist/wire/server.js +0 -284
- package/dist/wire/server.js.map +0 -1
- package/dist/wire/types.d.ts +0 -140
- package/dist/wire/types.d.ts.map +0 -1
- package/dist/wire/types.js +0 -64
- package/dist/wire/types.js.map +0 -1
- package/dist/worker.d.ts.map +0 -1
package/dist/client/session.js
DELETED
|
@@ -1,326 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ClientSession - MongoDB-compatible session for transaction support
|
|
3
|
-
*
|
|
4
|
-
* Provides transaction management APIs compatible with MongoDB driver:
|
|
5
|
-
* - startTransaction(options)
|
|
6
|
-
* - commitTransaction()
|
|
7
|
-
* - abortTransaction()
|
|
8
|
-
* - withTransaction(callback, options)
|
|
9
|
-
*
|
|
10
|
-
* Maps MongoDB transactions to SQLite BEGIN/COMMIT/ROLLBACK semantics.
|
|
11
|
-
*/
|
|
12
|
-
import { ObjectId } from '../types/objectid';
|
|
13
|
-
/**
|
|
14
|
-
* Session ID structure (MongoDB compatible)
|
|
15
|
-
*/
|
|
16
|
-
export class SessionId {
|
|
17
|
-
id;
|
|
18
|
-
_hexString;
|
|
19
|
-
constructor(id) {
|
|
20
|
-
this.id = id;
|
|
21
|
-
// Pre-compute hex string for faster comparisons
|
|
22
|
-
this._hexString = Array.from(id)
|
|
23
|
-
.map(b => b.toString(16).padStart(2, '0'))
|
|
24
|
-
.join('');
|
|
25
|
-
}
|
|
26
|
-
toString() {
|
|
27
|
-
return this._hexString;
|
|
28
|
-
}
|
|
29
|
-
toHexString() {
|
|
30
|
-
return this._hexString;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* ClientSession provides MongoDB-compatible session and transaction support
|
|
35
|
-
*
|
|
36
|
-
* Transactions are mapped to SQLite as follows:
|
|
37
|
-
* - startTransaction() -> BEGIN TRANSACTION
|
|
38
|
-
* - commitTransaction() -> COMMIT
|
|
39
|
-
* - abortTransaction() -> ROLLBACK
|
|
40
|
-
*/
|
|
41
|
-
export class ClientSession {
|
|
42
|
-
_client;
|
|
43
|
-
_id;
|
|
44
|
-
_options;
|
|
45
|
-
_transactionState = 'none';
|
|
46
|
-
_transactionOptions = null;
|
|
47
|
-
_transactionNumber = 0;
|
|
48
|
-
_hasEnded = false;
|
|
49
|
-
// Transaction snapshot tracking for rollback support
|
|
50
|
-
_collectionSnapshots = new Map();
|
|
51
|
-
_trackedCollections = new Map();
|
|
52
|
-
constructor(client, options) {
|
|
53
|
-
this._client = client;
|
|
54
|
-
this._options = options || {};
|
|
55
|
-
this._id = this._generateSessionId();
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Generate a unique session ID
|
|
59
|
-
*/
|
|
60
|
-
_generateSessionId() {
|
|
61
|
-
const objectId = new ObjectId();
|
|
62
|
-
// Convert hex string to bytes
|
|
63
|
-
const hex = objectId.toHexString();
|
|
64
|
-
const bytes = new Uint8Array(12);
|
|
65
|
-
for (let i = 0; i < 12; i++) {
|
|
66
|
-
bytes[i] = parseInt(hex.substr(i * 2, 2), 16);
|
|
67
|
-
}
|
|
68
|
-
return new SessionId(bytes);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get the session ID
|
|
72
|
-
*/
|
|
73
|
-
get id() {
|
|
74
|
-
return this._id;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Get the client that created this session
|
|
78
|
-
*/
|
|
79
|
-
get client() {
|
|
80
|
-
return this._client;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Check if the session is currently in a transaction
|
|
84
|
-
*/
|
|
85
|
-
get inTransaction() {
|
|
86
|
-
return (this._transactionState === 'starting' ||
|
|
87
|
-
this._transactionState === 'in_progress');
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Get the current transaction state
|
|
91
|
-
*/
|
|
92
|
-
get transactionState() {
|
|
93
|
-
return this._transactionState;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Get the current transaction options
|
|
97
|
-
*/
|
|
98
|
-
get transactionOptions() {
|
|
99
|
-
return this._transactionOptions;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Get the current transaction number
|
|
103
|
-
*/
|
|
104
|
-
get transactionNumber() {
|
|
105
|
-
return this._transactionNumber;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Check if the session has ended
|
|
109
|
-
*/
|
|
110
|
-
get hasEnded() {
|
|
111
|
-
return this._hasEnded;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Start a new transaction
|
|
115
|
-
*
|
|
116
|
-
* Maps to SQLite: BEGIN TRANSACTION
|
|
117
|
-
*
|
|
118
|
-
* @param options - Transaction options (readConcern, writeConcern, maxCommitTimeMS)
|
|
119
|
-
* @throws Error if a transaction is already in progress
|
|
120
|
-
*/
|
|
121
|
-
startTransaction(options) {
|
|
122
|
-
if (this._hasEnded) {
|
|
123
|
-
throw new Error('Cannot start transaction on ended session');
|
|
124
|
-
}
|
|
125
|
-
if (this.inTransaction) {
|
|
126
|
-
throw new Error('Transaction already in progress');
|
|
127
|
-
}
|
|
128
|
-
// Increment transaction number
|
|
129
|
-
this._transactionNumber++;
|
|
130
|
-
// Merge with default options
|
|
131
|
-
this._transactionOptions = {
|
|
132
|
-
...this._options.defaultTransactionOptions,
|
|
133
|
-
...options,
|
|
134
|
-
};
|
|
135
|
-
// Clear any previous snapshots
|
|
136
|
-
this._collectionSnapshots.clear();
|
|
137
|
-
this._trackedCollections.clear();
|
|
138
|
-
this._transactionState = 'starting';
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Commit the current transaction
|
|
142
|
-
*
|
|
143
|
-
* Maps to SQLite: COMMIT
|
|
144
|
-
*
|
|
145
|
-
* @throws Error if no transaction is in progress
|
|
146
|
-
*/
|
|
147
|
-
async commitTransaction() {
|
|
148
|
-
if (this._hasEnded) {
|
|
149
|
-
throw new Error('Cannot commit transaction on ended session');
|
|
150
|
-
}
|
|
151
|
-
if (!this.inTransaction) {
|
|
152
|
-
throw new Error('No transaction started');
|
|
153
|
-
}
|
|
154
|
-
// In SQLite, COMMIT would be executed here
|
|
155
|
-
// For the in-memory client, we just update state
|
|
156
|
-
// Clear snapshots - changes are now permanent
|
|
157
|
-
this._collectionSnapshots.clear();
|
|
158
|
-
this._trackedCollections.clear();
|
|
159
|
-
this._transactionState = 'committed';
|
|
160
|
-
this._transactionOptions = null;
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Abort the current transaction
|
|
164
|
-
*
|
|
165
|
-
* Maps to SQLite: ROLLBACK
|
|
166
|
-
*
|
|
167
|
-
* @throws Error if no transaction is in progress
|
|
168
|
-
*/
|
|
169
|
-
async abortTransaction() {
|
|
170
|
-
if (this._hasEnded) {
|
|
171
|
-
throw new Error('Cannot abort transaction on ended session');
|
|
172
|
-
}
|
|
173
|
-
if (!this.inTransaction) {
|
|
174
|
-
throw new Error('No transaction started');
|
|
175
|
-
}
|
|
176
|
-
// In SQLite, ROLLBACK would be executed here
|
|
177
|
-
// For the in-memory client, restore from snapshots
|
|
178
|
-
for (const [collectionKey, snapshot] of this._collectionSnapshots) {
|
|
179
|
-
const collection = this._trackedCollections.get(collectionKey);
|
|
180
|
-
if (collection) {
|
|
181
|
-
collection._restoreFromSnapshot(snapshot.documents);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
// Clear snapshots after rollback
|
|
185
|
-
this._collectionSnapshots.clear();
|
|
186
|
-
this._trackedCollections.clear();
|
|
187
|
-
this._transactionState = 'aborted';
|
|
188
|
-
this._transactionOptions = null;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Execute a callback within a transaction with automatic commit/abort
|
|
192
|
-
*
|
|
193
|
-
* This method:
|
|
194
|
-
* 1. Starts a transaction
|
|
195
|
-
* 2. Executes the callback
|
|
196
|
-
* 3. Commits on success, aborts on error
|
|
197
|
-
* 4. Retries on transient transaction errors
|
|
198
|
-
*
|
|
199
|
-
* @param callback - Function to execute within the transaction
|
|
200
|
-
* @param options - Transaction options
|
|
201
|
-
* @returns The result of the callback
|
|
202
|
-
*/
|
|
203
|
-
async withTransaction(callback, options) {
|
|
204
|
-
const MAX_RETRIES = 120; // MongoDB default: 120 seconds worth of retries
|
|
205
|
-
const RETRY_DELAY_MS = 100;
|
|
206
|
-
let attempts = 0;
|
|
207
|
-
while (true) {
|
|
208
|
-
attempts++;
|
|
209
|
-
try {
|
|
210
|
-
// Start transaction
|
|
211
|
-
this.startTransaction(options);
|
|
212
|
-
// Execute callback
|
|
213
|
-
const result = await callback(this);
|
|
214
|
-
// Commit transaction
|
|
215
|
-
await this.commitTransaction();
|
|
216
|
-
return result;
|
|
217
|
-
}
|
|
218
|
-
catch (error) {
|
|
219
|
-
// Check if we should retry
|
|
220
|
-
const mongoError = error;
|
|
221
|
-
const isTransientError = mongoError.hasErrorLabel?.('TransientTransactionError') ?? false;
|
|
222
|
-
if (isTransientError && attempts < MAX_RETRIES) {
|
|
223
|
-
// Abort and retry
|
|
224
|
-
try {
|
|
225
|
-
if (this.inTransaction) {
|
|
226
|
-
await this.abortTransaction();
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
catch {
|
|
230
|
-
// Ignore abort errors during retry
|
|
231
|
-
}
|
|
232
|
-
// Reset state for retry
|
|
233
|
-
this._transactionState = 'none';
|
|
234
|
-
this._transactionOptions = null;
|
|
235
|
-
// Wait before retry
|
|
236
|
-
await new Promise(resolve => setTimeout(resolve, RETRY_DELAY_MS));
|
|
237
|
-
continue;
|
|
238
|
-
}
|
|
239
|
-
// Abort transaction on non-retryable error
|
|
240
|
-
try {
|
|
241
|
-
if (this.inTransaction) {
|
|
242
|
-
await this.abortTransaction();
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
catch {
|
|
246
|
-
// Ignore abort errors
|
|
247
|
-
}
|
|
248
|
-
throw error;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* End the session
|
|
254
|
-
*
|
|
255
|
-
* If a transaction is in progress, it will be aborted.
|
|
256
|
-
*/
|
|
257
|
-
async endSession() {
|
|
258
|
-
if (this._hasEnded) {
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
// Abort any active transaction
|
|
262
|
-
if (this.inTransaction) {
|
|
263
|
-
try {
|
|
264
|
-
await this.abortTransaction();
|
|
265
|
-
}
|
|
266
|
-
catch {
|
|
267
|
-
// Ignore abort errors during session end
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
this._hasEnded = true;
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Mark the transaction as in progress (called on first operation)
|
|
274
|
-
* @internal
|
|
275
|
-
*/
|
|
276
|
-
_markInProgress() {
|
|
277
|
-
if (this._transactionState === 'starting') {
|
|
278
|
-
this._transactionState = 'in_progress';
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Track a collection for transaction rollback support
|
|
283
|
-
* Creates a snapshot of the collection's data on first write operation
|
|
284
|
-
* @internal
|
|
285
|
-
*/
|
|
286
|
-
_trackCollection(collection) {
|
|
287
|
-
if (!this.inTransaction) {
|
|
288
|
-
return;
|
|
289
|
-
}
|
|
290
|
-
const collectionKey = collection._getCollectionKey();
|
|
291
|
-
// Only snapshot once per collection per transaction
|
|
292
|
-
if (!this._collectionSnapshots.has(collectionKey)) {
|
|
293
|
-
this._collectionSnapshots.set(collectionKey, {
|
|
294
|
-
collectionKey,
|
|
295
|
-
documents: collection._createSnapshot(),
|
|
296
|
-
});
|
|
297
|
-
this._trackedCollections.set(collectionKey, collection);
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Get the SQL command for starting a transaction
|
|
302
|
-
* @internal
|
|
303
|
-
*/
|
|
304
|
-
_getBeginCommand() {
|
|
305
|
-
// SQLite transaction modes based on read/write concern
|
|
306
|
-
// IMMEDIATE acquires a write lock immediately
|
|
307
|
-
// DEFERRED is the default and delays lock acquisition
|
|
308
|
-
return 'BEGIN IMMEDIATE TRANSACTION';
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Get the SQL command for committing a transaction
|
|
312
|
-
* @internal
|
|
313
|
-
*/
|
|
314
|
-
_getCommitCommand() {
|
|
315
|
-
return 'COMMIT';
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Get the SQL command for rolling back a transaction
|
|
319
|
-
* @internal
|
|
320
|
-
*/
|
|
321
|
-
_getRollbackCommand() {
|
|
322
|
-
return 'ROLLBACK';
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
export default ClientSession;
|
|
326
|
-
//# sourceMappingURL=session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/client/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Index Manager for mongo.do
|
|
3
|
-
*
|
|
4
|
-
* Manages SQLite indexes for MongoDB-style collections backed by Durable Objects.
|
|
5
|
-
* Indexes are created on json_extract expressions to enable efficient querying.
|
|
6
|
-
*
|
|
7
|
-
* TTL (Time-To-Live) Index Support:
|
|
8
|
-
* - createIndex({field: 1}, {expireAfterSeconds: N}) creates a TTL index
|
|
9
|
-
* - Documents with date values in the TTL field will expire after N seconds
|
|
10
|
-
* - Background cleanup removes expired documents periodically
|
|
11
|
-
*/
|
|
12
|
-
import type { IndexSpec, CreateIndexOptions, CreateIndexResult, IndexInfo, DropIndexResult, SQLStorage, SQLStatement, TTLIndexInfo, TTLMetadata, TTLCleanupResult, ExpiredDocumentsQuery } from './schema';
|
|
13
|
-
export type { SQLStorage, SQLStatement, TTLIndexInfo, TTLMetadata, TTLCleanupResult, ExpiredDocumentsQuery, };
|
|
14
|
-
/**
|
|
15
|
-
* Validates and escapes a field name/path for safe use in SQL json_extract expressions.
|
|
16
|
-
* Prevents SQL injection by only allowing safe characters in field paths.
|
|
17
|
-
*
|
|
18
|
-
* @throws Error if field name contains invalid characters
|
|
19
|
-
*/
|
|
20
|
-
export declare function escapeFieldPath(field: string): string;
|
|
21
|
-
/**
|
|
22
|
-
* Validates an identifier (table name, index name) for safe use in SQL.
|
|
23
|
-
* Only allows alphanumeric characters and underscores.
|
|
24
|
-
*
|
|
25
|
-
* @throws Error if identifier contains invalid characters
|
|
26
|
-
*/
|
|
27
|
-
export declare function validateIdentifier(identifier: string): string;
|
|
28
|
-
/**
|
|
29
|
-
* Check if an index specification is a text index
|
|
30
|
-
*/
|
|
31
|
-
export declare function isTextIndex(keys: IndexSpec): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Get fields that are text-indexed
|
|
34
|
-
*/
|
|
35
|
-
export declare function getTextFields(keys: IndexSpec): string[];
|
|
36
|
-
/**
|
|
37
|
-
* Generate FTS5 virtual table name for a collection
|
|
38
|
-
*/
|
|
39
|
-
export declare function generateFTS5TableName(collectionName: string): string;
|
|
40
|
-
/**
|
|
41
|
-
* Generates an index name from collection name and key specification
|
|
42
|
-
*/
|
|
43
|
-
export declare function generateIndexName(collectionName: string, keys: IndexSpec): string;
|
|
44
|
-
/**
|
|
45
|
-
* Generates the SQLite index name (prefixed for internal use)
|
|
46
|
-
*/
|
|
47
|
-
export declare function generateSQLiteIndexName(collectionName: string, keys: IndexSpec, unique?: boolean): string;
|
|
48
|
-
/**
|
|
49
|
-
* Builds the SQL CREATE INDEX statement for given index specification
|
|
50
|
-
*/
|
|
51
|
-
export declare function buildCreateIndexSQL(collectionName: string, collectionId: number, keys: IndexSpec, options?: CreateIndexOptions): {
|
|
52
|
-
sql: string;
|
|
53
|
-
indexName: string;
|
|
54
|
-
sqliteIndexName: string;
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Builds the SQL for creating an FTS5 virtual table for text indexing.
|
|
58
|
-
*
|
|
59
|
-
* UNIFIED SCHEMA: Uses _id column from the unified schema (not doc_id).
|
|
60
|
-
*/
|
|
61
|
-
export declare function buildFTS5CreateSQL(collectionName: string, fields: string[], options?: CreateIndexOptions): {
|
|
62
|
-
tableName: string;
|
|
63
|
-
createSQL: string;
|
|
64
|
-
triggersSQL: string[];
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* Builds the SQL for dropping an FTS5 virtual table and its triggers
|
|
68
|
-
*/
|
|
69
|
-
export declare function buildFTS5DropSQL(collectionName: string): {
|
|
70
|
-
dropSQL: string;
|
|
71
|
-
dropTriggersSQL: string[];
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* IndexManager handles creation, deletion, and listing of indexes
|
|
75
|
-
* Includes TTL (Time-To-Live) index support for automatic document expiration
|
|
76
|
-
*/
|
|
77
|
-
export declare class IndexManager {
|
|
78
|
-
private storage;
|
|
79
|
-
private cleanupIntervalMs;
|
|
80
|
-
private ttlMetadataCache;
|
|
81
|
-
constructor(storage: SQLStorage);
|
|
82
|
-
/**
|
|
83
|
-
* Ensure the collections and documents tables exist.
|
|
84
|
-
*
|
|
85
|
-
* UNIFIED SCHEMA: This uses the same schema as MondoDatabase/SchemaManager.
|
|
86
|
-
* The schema is defined in schema.ts/migrations.ts as the single source of truth.
|
|
87
|
-
* This method creates the tables if they don't exist (for standalone IndexManager usage).
|
|
88
|
-
*/
|
|
89
|
-
ensureMetadataTable(): void;
|
|
90
|
-
/**
|
|
91
|
-
* Get or create a collection and return its ID
|
|
92
|
-
*/
|
|
93
|
-
getOrCreateCollection(name: string): {
|
|
94
|
-
id: number;
|
|
95
|
-
created: boolean;
|
|
96
|
-
};
|
|
97
|
-
/**
|
|
98
|
-
* Get collection metadata
|
|
99
|
-
*/
|
|
100
|
-
getCollection(name: string): {
|
|
101
|
-
id: number;
|
|
102
|
-
indexes: IndexInfo[];
|
|
103
|
-
} | null;
|
|
104
|
-
/**
|
|
105
|
-
* Create an index on a collection
|
|
106
|
-
*/
|
|
107
|
-
createIndex(collectionName: string, keys: IndexSpec, options?: CreateIndexOptions): CreateIndexResult;
|
|
108
|
-
/**
|
|
109
|
-
* List all indexes on a collection
|
|
110
|
-
*/
|
|
111
|
-
listIndexes(collectionName: string): IndexInfo[];
|
|
112
|
-
/**
|
|
113
|
-
* Drop a specific index by name
|
|
114
|
-
*/
|
|
115
|
-
dropIndex(collectionName: string, indexName: string): DropIndexResult;
|
|
116
|
-
/**
|
|
117
|
-
* Drop all indexes on a collection (except _id)
|
|
118
|
-
*/
|
|
119
|
-
dropIndexes(collectionName: string): DropIndexResult;
|
|
120
|
-
/**
|
|
121
|
-
* Get index usage hints for a query
|
|
122
|
-
* Returns suggested index names that could be used for the query
|
|
123
|
-
*/
|
|
124
|
-
getIndexHints(collectionName: string, queryFields: string[]): string[];
|
|
125
|
-
/**
|
|
126
|
-
* Get all TTL indexes across all collections
|
|
127
|
-
*/
|
|
128
|
-
getTTLIndexes(): TTLIndexInfo[];
|
|
129
|
-
/**
|
|
130
|
-
* Check if a specific index is a TTL index
|
|
131
|
-
*/
|
|
132
|
-
isTTLIndex(collectionName: string, indexName: string): boolean;
|
|
133
|
-
/**
|
|
134
|
-
* Check if a value is a valid date for TTL purposes
|
|
135
|
-
* Accepts Date objects, ISO strings, and Unix timestamps (in ms)
|
|
136
|
-
*/
|
|
137
|
-
isValidTTLFieldValue(value: unknown): boolean;
|
|
138
|
-
/**
|
|
139
|
-
* Calculate expiration time for a document
|
|
140
|
-
*/
|
|
141
|
-
calculateExpirationTime(dateValue: Date | string | number, expireAfterSeconds: number): Date;
|
|
142
|
-
/**
|
|
143
|
-
* Check if a document is expired based on its TTL field
|
|
144
|
-
*/
|
|
145
|
-
isDocumentExpired(document: Record<string, unknown>, field: string, expireAfterSeconds: number): boolean;
|
|
146
|
-
/**
|
|
147
|
-
* Build SQL query to delete expired documents for a collection
|
|
148
|
-
*/
|
|
149
|
-
buildExpiredDocumentsQuery(collectionName: string, field: string, expireAfterSeconds: number): ExpiredDocumentsQuery;
|
|
150
|
-
/**
|
|
151
|
-
* Get TTL metadata for a specific index
|
|
152
|
-
*/
|
|
153
|
-
getTTLMetadata(collectionName: string, indexName: string): TTLMetadata | null;
|
|
154
|
-
/**
|
|
155
|
-
* Record a TTL cleanup operation for tracking purposes
|
|
156
|
-
*/
|
|
157
|
-
recordTTLCleanup(collectionName: string, indexName: string, deletedCount: number): void;
|
|
158
|
-
/**
|
|
159
|
-
* Get the next cleanup time based on the configured interval
|
|
160
|
-
*/
|
|
161
|
-
getNextCleanupTime(): number;
|
|
162
|
-
/**
|
|
163
|
-
* Set the cleanup interval in milliseconds
|
|
164
|
-
*/
|
|
165
|
-
setCleanupInterval(intervalMs: number): void;
|
|
166
|
-
/**
|
|
167
|
-
* Run TTL cleanup across all collections with TTL indexes
|
|
168
|
-
* Deletes all expired documents and returns cleanup statistics
|
|
169
|
-
*/
|
|
170
|
-
runTTLCleanup(): Promise<TTLCleanupResult>;
|
|
171
|
-
}
|
|
172
|
-
export default IndexManager;
|
|
173
|
-
//# sourceMappingURL=index-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../../src/durable-object/index-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,UAAU,CAAA;AAGjB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,qBAAqB,GACtB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAerD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAY7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAIvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAYjF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAIzG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,kBAAuB,GAC/B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAmC7D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,GAAE,kBAAuB,GAC/B;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAmDjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,CAWvG;AAKD;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,gBAAgB,CAAsC;gBAElD,OAAO,EAAE,UAAU;IAI/B;;;;;;OAMG;IACH,mBAAmB,IAAI,IAAI;IAkC3B;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;IA6BrE;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,IAAI;IAgBxE;;OAEG;IACH,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB;IAyJpB;;OAEG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE;IAgBhD;;OAEG;IACH,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe;IAmErE;;OAEG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,eAAe;IAmCpD;;;OAGG;IACH,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAsBtE;;OAEG;IACH,aAAa,IAAI,YAAY,EAAE;IA8B/B;;OAEG;IACH,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAU9D;;;OAGG;IACH,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAuB7C;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAc5F;;OAEG;IACH,iBAAiB,CACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,MAAM,GACzB,OAAO;IAeV;;OAEG;IACH,0BAA0B,CACxB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,MAAM,GACzB,qBAAqB;IAsCxB;;OAEG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAgC7E;;OAEG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAUvF;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAuCjD;AAED,eAAe,YAAY,CAAA"}
|