@event-driven-io/pongo 0.17.0-beta.39 → 0.17.0-beta.40
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.cjs +2 -2
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/cloudflare.cjs +2 -2
- package/dist/cloudflare.d.cts +2 -2
- package/dist/cloudflare.d.ts +2 -2
- package/dist/cloudflare.js +2 -2
- package/dist/{core-Dtn-d-91.js → core-BHdOCUrr.js} +111 -3
- package/dist/core-BHdOCUrr.js.map +1 -0
- package/dist/{core-BdTIuXiI.cjs → core-C9SB3XMx.cjs} +116 -2
- package/dist/core-C9SB3XMx.cjs.map +1 -0
- package/dist/{core-wHw_lMM5.js → core-CH0SOCr3.js} +65 -11
- package/dist/core-CH0SOCr3.js.map +1 -0
- package/dist/{core-BYk4wCpe.cjs → core-CkmE5dkK.cjs} +65 -11
- package/dist/core-CkmE5dkK.cjs.map +1 -0
- package/dist/{index-CL0zRxRl.d.ts → index-C3pnS1S_.d.cts} +23 -8
- package/dist/{index-Cxo6j266.d.ts → index-CZOmOsQt.d.ts} +2 -2
- package/dist/{index-DyNmc6tD.d.cts → index-FXnldVnn.d.cts} +2 -2
- package/dist/{index-BfOn92K5.d.cts → index-r7V4paf_.d.ts} +23 -8
- package/dist/index.cjs +2 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/pg.cjs +67 -10
- package/dist/pg.cjs.map +1 -1
- package/dist/pg.d.cts +1 -1
- package/dist/pg.d.ts +1 -1
- package/dist/pg.js +67 -10
- package/dist/pg.js.map +1 -1
- package/dist/shim.cjs +18 -8
- package/dist/shim.cjs.map +1 -1
- package/dist/shim.d.cts +1 -1
- package/dist/shim.d.ts +1 -1
- package/dist/shim.js +18 -8
- package/dist/shim.js.map +1 -1
- package/dist/sqlite3.cjs +2 -2
- package/dist/sqlite3.d.cts +2 -2
- package/dist/sqlite3.d.ts +2 -2
- package/dist/sqlite3.js +2 -2
- package/package.json +2 -2
- package/dist/core-BYk4wCpe.cjs.map +0 -1
- package/dist/core-BdTIuXiI.cjs.map +0 -1
- package/dist/core-Dtn-d-91.js.map +0 -1
- package/dist/core-wHw_lMM5.js.map +0 -1
package/dist/pg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg.js","names":["dumboDriver"],"sources":["../src/storage/postgresql/core/sqlBuilder/filter/queryOperators.ts","../src/storage/postgresql/core/sqlBuilder/filter/index.ts","../src/storage/postgresql/core/sqlBuilder/update/index.ts","../src/storage/postgresql/core/sqlBuilder/index.ts","../src/storage/postgresql/pg/index.ts"],"sourcesContent":["import type { JSONSerializer } from '@event-driven-io/dumbo';\nimport { SQL } from '@event-driven-io/dumbo';\nimport { objectEntries, OperatorMap } from '../../../../../core';\n\nexport const handleOperator = (\n path: string,\n operator: string,\n value: unknown,\n serializer: JSONSerializer,\n): SQL => {\n if (path === '_id' || path === '_version') {\n return handleMetadataOperator(path, operator, value);\n }\n\n switch (operator) {\n case '$eq': {\n const nestedPath = serializer.serialize(buildNestedObject(path, value));\n const serializedValue = serializer.serialize(value);\n\n return SQL`(data @> ${nestedPath}::jsonb OR jsonb_path_exists(data, '$.${SQL.plain(path)}[*] ? (@ == ${SQL.plain(serializedValue)})'))`;\n }\n case '$gt':\n case '$gte':\n case '$lt':\n case '$lte':\n case '$ne': {\n const jsonPath = SQL.plain(path.split('.').join(','));\n\n return SQL`data ->> '${jsonPath}' ${SQL.plain(OperatorMap[operator])} ${value}`;\n }\n case '$in': {\n const jsonPath = `{${path.split('.').join(',')}}`;\n\n return SQL`data #>> ${jsonPath} = ANY (${value})`;\n }\n case '$nin': {\n const jsonPath = `{${path.split('.').join(',')}}`;\n\n return SQL`data #>> ${jsonPath} != ALL (${value})`;\n }\n case '$elemMatch': {\n const subQuery = objectEntries(value as Record<string, unknown>)\n .map(\n ([subKey, subValue]) =>\n `@.\"${subKey}\" == ${serializer.serialize(subValue)}`,\n )\n .join(' && ');\n return SQL`jsonb_path_exists(data, '$.${SQL.plain(path)}[*] ? (${SQL.plain(subQuery)})')`;\n }\n case '$all': {\n const nestedPath = serializer.serialize(buildNestedObject(path, value));\n return SQL`data @> ${nestedPath}::jsonb`;\n }\n case '$size': {\n const jsonPath = `{${path.split('.').join(',')}}`;\n\n return SQL`jsonb_array_length(data #> ${jsonPath}) = ${value}`;\n }\n default:\n throw new Error(`Unsupported operator: ${operator}`);\n }\n};\n\nconst handleMetadataOperator = (\n fieldName: string,\n operator: string,\n value: unknown,\n): SQL => {\n switch (operator) {\n case '$eq':\n return SQL`${SQL.plain(fieldName)} = ${value}`;\n case '$gt':\n case '$gte':\n case '$lt':\n case '$lte':\n case '$ne':\n return SQL`${SQL.plain(fieldName)} ${SQL.plain(OperatorMap[operator])} ${value}`;\n case '$in':\n return SQL`${SQL.plain(fieldName)} = ANY (${value})`;\n case '$nin':\n return SQL`${SQL.plain(fieldName)} != ALL (${value})`;\n default:\n throw new Error(`Unsupported operator: ${operator}`);\n }\n};\n\nconst buildNestedObject = (\n path: string,\n value: unknown,\n): Record<string, unknown> =>\n path\n .split('.')\n .reverse()\n .reduce((acc, key) => ({ [key]: acc }), value as Record<string, unknown>);\n","import type { JSONSerializer } from '@event-driven-io/dumbo';\nimport { SQL } from '@event-driven-io/dumbo';\nimport {\n hasOperators,\n objectEntries,\n QueryOperators,\n type PongoFilter,\n} from '../../../../../core';\nimport { handleOperator } from './queryOperators';\n\nexport * from './queryOperators';\n\nconst AND = 'AND';\n\nexport const constructFilterQuery = <T>(\n filter: PongoFilter<T>,\n serializer: JSONSerializer,\n): SQL =>\n SQL.merge(\n Object.entries(filter).map(([key, value]) =>\n isRecord(value)\n ? constructComplexFilterQuery(key, value, serializer)\n : handleOperator(key, '$eq', value, serializer),\n ),\n ` ${AND} `,\n );\n\nconst constructComplexFilterQuery = (\n key: string,\n value: Record<string, unknown>,\n serializer: JSONSerializer,\n): SQL => {\n const isEquality = !hasOperators(value);\n\n return SQL.merge(\n objectEntries(value).map(([nestedKey, val]) =>\n isEquality\n ? handleOperator(\n `${key}.${nestedKey}`,\n QueryOperators.$eq,\n val,\n serializer,\n )\n : handleOperator(key, nestedKey, val, serializer),\n ),\n ` ${AND} `,\n );\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n value !== null && typeof value === 'object' && !Array.isArray(value);\n","import type { JSONSerializer } from '@event-driven-io/dumbo';\nimport { SQL } from '@event-driven-io/dumbo';\nimport {\n objectEntries,\n type $inc,\n type $push,\n type $set,\n type $unset,\n type PongoUpdate,\n} from '../../../../../core';\n\nexport const buildUpdateQuery = <T>(\n update: PongoUpdate<T>,\n serializer: JSONSerializer,\n): SQL =>\n objectEntries(update).reduce(\n (currentUpdateQuery, [op, value]) => {\n switch (op) {\n case '$set':\n return buildSetQuery(value, currentUpdateQuery, serializer);\n case '$unset':\n return buildUnsetQuery(value, currentUpdateQuery);\n case '$inc':\n return buildIncQuery(value, currentUpdateQuery);\n case '$push':\n return buildPushQuery(value, currentUpdateQuery, serializer);\n default:\n return currentUpdateQuery;\n }\n },\n SQL`data`,\n );\n\nexport const buildSetQuery = <T>(\n set: $set<T>,\n currentUpdateQuery: SQL,\n serializer: JSONSerializer,\n): SQL => SQL`${currentUpdateQuery} || ${serializer.serialize(set)}::jsonb`;\n\nexport const buildUnsetQuery = <T>(\n unset: $unset<T>,\n currentUpdateQuery: SQL,\n): SQL =>\n SQL`${currentUpdateQuery} - ${Object.keys(unset)\n .map((k) => `{${k}}`)\n .join(', ')}`;\n\nexport const buildIncQuery = <T>(\n inc: $inc<T>,\n currentUpdateQuery: SQL,\n): SQL => {\n for (const [key, value] of Object.entries(inc)) {\n currentUpdateQuery =\n typeof value === 'bigint'\n ? SQL`jsonb_set(${currentUpdateQuery}, '{${SQL.plain(key)}}', to_jsonb((COALESCE((data->>'${SQL.plain(key)}')::BIGINT, 0) + ${value})::TEXT), true)`\n : SQL`jsonb_set(${currentUpdateQuery}, '{${SQL.plain(key)}}', to_jsonb(COALESCE((data->>'${SQL.plain(key)}')::NUMERIC, 0) + ${value}), true)`;\n }\n return currentUpdateQuery;\n};\n\nexport const buildPushQuery = <T>(\n push: $push<T>,\n currentUpdateQuery: SQL,\n serializer: JSONSerializer,\n): SQL => {\n for (const [key, value] of Object.entries(push)) {\n const serializedValue = serializer.serialize([value]);\n currentUpdateQuery = SQL`jsonb_set(${currentUpdateQuery}, '{${SQL.plain(key)}}', (coalesce(data->'${SQL.plain(key)}', '[]'::jsonb) || ${serializedValue}::jsonb), true)`;\n }\n return currentUpdateQuery;\n};\n","import type { JSONSerializer } from '@event-driven-io/dumbo';\nimport { isSQL, SQL, sqlMigration } from '@event-driven-io/dumbo';\nimport {\n expectedVersionValue,\n type DeleteOneOptions,\n type FindOptions,\n type OptionalUnlessRequiredIdAndVersion,\n type PongoCollectionSQLBuilder,\n type PongoFilter,\n type PongoUpdate,\n type ReplaceOneOptions,\n type UpdateOneOptions,\n type WithId,\n type WithIdAndVersion,\n type WithoutId,\n} from '../../../../core';\nimport { constructFilterQuery } from './filter';\nimport { buildUpdateQuery } from './update';\n\nconst createCollection = (collectionName: string): SQL =>\n SQL`\n CREATE TABLE IF NOT EXISTS ${SQL.identifier(collectionName)} (\n _id TEXT PRIMARY KEY, \n data JSONB NOT NULL, \n metadata JSONB NOT NULL DEFAULT '{}',\n _version BIGINT NOT NULL DEFAULT 1,\n _partition TEXT NOT NULL DEFAULT 'png_global',\n _archived BOOLEAN NOT NULL DEFAULT FALSE,\n _created TIMESTAMPTZ NOT NULL DEFAULT now(),\n _updated TIMESTAMPTZ NOT NULL DEFAULT now()\n )`;\n\nexport const pongoCollectionPostgreSQLMigrations = (collectionName: string) => [\n sqlMigration(`pongoCollection:${collectionName}:001:createtable`, [\n createCollection(collectionName),\n ]),\n];\n\nexport const postgresSQLBuilder = (\n collectionName: string,\n serializer: JSONSerializer,\n): PongoCollectionSQLBuilder => ({\n createCollection: (): SQL => createCollection(collectionName),\n insertOne: <T>(document: OptionalUnlessRequiredIdAndVersion<T>): SQL => {\n const serialized = serializer.serialize(document);\n const id = document._id;\n const version = document._version ?? 1n;\n\n return SQL`\n INSERT INTO ${SQL.identifier(collectionName)} (_id, data, _version) \n VALUES (${id}, ${serialized}, ${version}) ON CONFLICT(_id) DO NOTHING;`;\n },\n insertMany: <T>(documents: OptionalUnlessRequiredIdAndVersion<T>[]): SQL => {\n const values = SQL.merge(\n documents.map(\n (doc) =>\n SQL`(${doc._id}, ${serializer.serialize(doc)}, ${doc._version ?? 1n})`,\n ),\n ',',\n );\n\n return SQL`\n INSERT INTO ${SQL.identifier(collectionName)} (_id, data, _version) VALUES ${values}\n ON CONFLICT(_id) DO NOTHING\n RETURNING _id;`;\n },\n updateOne: <T>(\n filter: PongoFilter<T> | SQL,\n update: PongoUpdate<T> | SQL,\n options?: UpdateOneOptions,\n ): SQL => {\n const expectedVersion = expectedVersionValue(options?.expectedVersion);\n const expectedVersionUpdate =\n expectedVersion != null\n ? SQL`AND ${SQL.identifier(collectionName)}._version = ${expectedVersion}`\n : SQL``;\n\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n const updateQuery = isSQL(update)\n ? update\n : buildUpdateQuery(update, serializer);\n\n return SQL`\n WITH existing AS (\n SELECT _id, _version as current_version\n FROM ${SQL.identifier(collectionName)} ${where(filterQuery)}\n LIMIT 1\n ),\n updated AS (\n UPDATE ${SQL.identifier(collectionName)} \n SET \n data = ${updateQuery} || jsonb_build_object('_id', ${SQL.identifier(collectionName)}._id) || jsonb_build_object('_version', (_version + 1)::text),\n _version = _version + 1\n FROM existing \n WHERE ${SQL.identifier(collectionName)}._id = existing._id ${expectedVersionUpdate}\n RETURNING ${SQL.identifier(collectionName)}._id, ${SQL.identifier(collectionName)}._version\n )\n SELECT \n existing._id,\n COALESCE(updated._version, existing.current_version) AS version,\n COUNT(existing._id) over() AS matched,\n COUNT(updated._id) over() AS modified\n FROM existing\n LEFT JOIN updated \n ON existing._id = updated._id;`;\n },\n replaceOne: <T>(\n filter: PongoFilter<T> | SQL,\n document: WithoutId<T>,\n options?: ReplaceOneOptions,\n ): SQL => {\n const expectedVersion = expectedVersionValue(options?.expectedVersion);\n const expectedVersionUpdate =\n expectedVersion != null\n ? SQL`AND ${SQL.identifier(collectionName)}._version = ${expectedVersion}`\n : SQL``;\n\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n\n return SQL`\n WITH existing AS (\n SELECT _id, _version as current_version\n FROM ${SQL.identifier(collectionName)} ${where(filterQuery)}\n LIMIT 1\n ),\n updated AS (\n UPDATE ${SQL.identifier(collectionName)} \n SET \n data = ${serializer.serialize(document)} || jsonb_build_object('_id', ${SQL.identifier(collectionName)}._id) || jsonb_build_object('_version', (_version + 1)::text),\n _version = _version + 1\n FROM existing \n WHERE ${SQL.identifier(collectionName)}._id = existing._id ${expectedVersionUpdate}\n RETURNING ${SQL.identifier(collectionName)}._id, ${SQL.identifier(collectionName)}._version\n )\n SELECT \n existing._id,\n COALESCE(updated._version, existing.current_version) AS version,\n COUNT(existing._id) over() AS matched,\n COUNT(updated._id) over() AS modified\n FROM existing\n LEFT JOIN updated \n ON existing._id = updated._id;`;\n },\n updateMany: <T>(\n filter: PongoFilter<T> | SQL,\n update: PongoUpdate<T> | SQL,\n ): SQL => {\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n const updateQuery = isSQL(update)\n ? update\n : buildUpdateQuery(update, serializer);\n\n return SQL`\n UPDATE ${SQL.identifier(collectionName)} \n SET \n data = ${updateQuery} || jsonb_build_object('_version', (_version + 1)::text),\n _version = _version + 1\n ${where(filterQuery)};`;\n },\n deleteOne: <T>(\n filter: PongoFilter<T> | SQL,\n options?: DeleteOneOptions,\n ): SQL => {\n const expectedVersion = expectedVersionValue(options?.expectedVersion);\n const expectedVersionUpdate =\n expectedVersion != null\n ? SQL`AND ${SQL.identifier(collectionName)}._version = ${expectedVersion}`\n : SQL``;\n\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n\n return SQL`\n WITH existing AS (\n SELECT _id\n FROM ${SQL.identifier(collectionName)} ${where(filterQuery)}\n LIMIT 1\n ),\n deleted AS (\n DELETE FROM ${SQL.identifier(collectionName)}\n USING existing\n WHERE ${SQL.identifier(collectionName)}._id = existing._id ${expectedVersionUpdate}\n RETURNING ${SQL.identifier(collectionName)}._id\n )\n SELECT \n existing._id,\n COUNT(existing._id) over() AS matched,\n COUNT(deleted._id) over() AS deleted\n FROM existing\n LEFT JOIN deleted \n ON existing._id = deleted._id;`;\n },\n deleteMany: <T>(filter: PongoFilter<T> | SQL): SQL => {\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n\n return SQL`DELETE FROM ${SQL.identifier(collectionName)} ${where(filterQuery)}`;\n },\n replaceMany: <T>(documents: Array<WithIdAndVersion<T> | WithId<T>>): SQL => {\n const hasVersions = documents.some(\n (d) => '_version' in d && d._version !== undefined,\n );\n\n if (hasVersions) {\n const values = SQL.merge(\n documents.map(\n (d) =>\n SQL`(${d._id}::text, ${serializer.serialize(d)}::jsonb, ${(d as WithIdAndVersion<T>)._version ?? 0n}::bigint)`,\n ),\n ',',\n );\n return SQL`\n WITH replacements(_id, data, expected_version) AS (\n VALUES ${values}\n )\n UPDATE ${SQL.identifier(collectionName)} t\n SET\n data = r.data\n || jsonb_build_object('_id', t._id)\n || jsonb_build_object('_version', (t._version + 1)::text),\n _version = t._version + 1\n FROM replacements r\n WHERE t._id = r._id AND t._version = r.expected_version\n RETURNING t._id, t._version AS version;`;\n }\n\n const values = SQL.merge(\n documents.map(\n (d) => SQL`(${d._id}::text, ${serializer.serialize(d)}::jsonb)`,\n ),\n ',',\n );\n return SQL`\n WITH replacements(_id, data) AS (\n VALUES ${values}\n )\n UPDATE ${SQL.identifier(collectionName)} t\n SET\n data = r.data\n || jsonb_build_object('_id', t._id)\n || jsonb_build_object('_version', (t._version + 1)::text),\n _version = t._version + 1\n FROM replacements r\n WHERE t._id = r._id\n RETURNING t._id, t._version AS version;`;\n },\n deleteManyByIds: (ids: Array<{ _id: string; _version?: bigint }>): SQL => {\n const hasVersions = ids.some((d) => d._version !== undefined);\n\n if (hasVersions) {\n const values = SQL.merge(\n ids.map((d) => SQL`(${d._id}::text, ${d._version ?? 0n}::bigint)`),\n ',',\n );\n\n return SQL`\n WITH targets(_id, expected_version) AS (\n VALUES ${values}\n ),\n deleted AS (\n DELETE FROM ${SQL.identifier(collectionName)} t\n USING targets r\n WHERE t._id = r._id AND t._version = r.expected_version\n RETURNING t._id\n )\n SELECT r._id,\n CASE WHEN d._id IS NOT NULL THEN 1 ELSE 0 END as deleted\n FROM targets r\n LEFT JOIN deleted d ON r._id = d._id;`;\n }\n\n const values = SQL.merge(\n ids.map((d) => SQL`(${d._id}::text)`),\n ',',\n );\n\n return SQL`\n WITH targets(_id) AS (\n VALUES ${values}\n ),\n deleted AS (\n DELETE FROM ${SQL.identifier(collectionName)} t\n USING targets r\n WHERE t._id = r._id\n RETURNING t._id\n )\n SELECT r._id,\n CASE WHEN d._id IS NOT NULL THEN 1 ELSE 0 END as deleted\n FROM targets r\n LEFT JOIN deleted d ON r._id = d._id;`;\n },\n findOne: <T>(filter: PongoFilter<T> | SQL): SQL => {\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n\n return SQL`SELECT data, _id, _version FROM ${SQL.identifier(collectionName)} ${where(filterQuery)} LIMIT 1;`;\n },\n find: <T>(filter: PongoFilter<T> | SQL, options?: FindOptions): SQL => {\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n const query: SQL[] = [];\n\n query.push(\n SQL`SELECT data, _id, _version FROM ${SQL.identifier(collectionName)}`,\n );\n\n query.push(where(filterQuery));\n\n if (options?.sort && Object.keys(options.sort).length > 0) {\n const clauses = Object.entries(options.sort).map(([field, dir]) => {\n const isMetadata = field === '_id' || field === '_version';\n const isNested = !isMetadata && field.includes('.');\n // _id and _version are native columns, not JSON fields.\n // Use -> / #> (returns jsonb) rather than ->> / #>> (returns text) so\n // that numeric fields are sorted numerically, not lexicographically.\n const accessor = isMetadata\n ? SQL`${SQL.plain(field)}`\n : isNested\n ? SQL`data #> '${SQL.plain(`{${field.split('.').join(',')}}`)}'`\n : SQL`data -> '${SQL.plain(field)}'`;\n // Match MongoDB's null ordering: missing/null values sort first on ASC,\n // last on DESC. PostgreSQL's default is the opposite for ASC (NULLS LAST).\n return dir === 1\n ? SQL`${accessor} ASC NULLS FIRST`\n : SQL`${accessor} DESC NULLS LAST`;\n });\n query.push(SQL`ORDER BY ${SQL.merge(clauses, ',')}`);\n }\n\n if (options?.limit) {\n query.push(SQL`LIMIT ${options.limit}`);\n }\n\n if (options?.skip) {\n query.push(SQL`OFFSET ${options.skip}`);\n }\n\n return SQL.merge([...query, SQL`;`]);\n },\n countDocuments: <T>(filter: PongoFilter<T> | SQL): SQL => {\n const filterQuery = SQL.check.isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n return SQL`SELECT COUNT(1) as count FROM ${SQL.identifier(collectionName)} ${where(filterQuery)};`;\n },\n rename: (newName: string): SQL =>\n SQL`ALTER TABLE ${SQL.identifier(collectionName)} RENAME TO ${SQL.identifier(newName)};`,\n drop: (targetName: string = collectionName): SQL =>\n SQL`DROP TABLE IF EXISTS ${SQL.identifier(targetName)}`,\n});\n\nconst where = (filterQuery: SQL): SQL =>\n SQL.check.isEmpty(filterQuery)\n ? SQL.EMPTY\n : SQL.merge([SQL`WHERE `, filterQuery]);\n","import { dumbo, JSONSerializer } from '@event-driven-io/dumbo';\nimport {\n pgDumboDriver as dumboDriver,\n PgDriverType,\n postgreSQLMetadata,\n type PgConnection,\n} from '@event-driven-io/dumbo/pg';\nimport type pg from 'pg';\nimport {\n PongoCollectionSchemaComponent,\n PongoDatabase,\n PongoDatabaseSchemaComponent,\n pongoDriverRegistry,\n pongoSchema,\n type PongoDb,\n type PongoDriver,\n type PongoDriverOptions,\n} from '../../../core';\nimport {\n pongoCollectionPostgreSQLMigrations,\n postgresSQLBuilder,\n} from '../core';\n\nexport type PgPongoClientOptions =\n PooledPongoClientOptions | NotPooledPongoOptions;\n\nexport type PooledPongoClientOptions =\n | {\n pool: pg.Pool;\n }\n | {\n pooled: true;\n }\n | {\n pool: pg.Pool;\n pooled: true;\n }\n | object;\n\nexport type NotPooledPongoOptions =\n | {\n client: pg.Client;\n }\n | {\n pooled: false;\n }\n | {\n client: pg.Client;\n pooled: false;\n }\n | {\n connection: PgConnection;\n pooled?: false;\n };\n\ntype PgDatabaseDriverOptions = PongoDriverOptions<PgPongoClientOptions> & {\n databaseName?: string | undefined;\n connectionString: string;\n};\n\nconst pgPongoDriver: PongoDriver<\n PongoDb<PgDriverType>,\n PgDatabaseDriverOptions\n> = {\n driverType: PgDriverType,\n databaseFactory: (options) => {\n const databaseName =\n options.databaseName ??\n postgreSQLMetadata.parseDatabaseName(options.connectionString) ??\n postgreSQLMetadata.defaultDatabaseName;\n\n return PongoDatabase({\n ...options,\n pool: dumbo({\n connectionString: options.connectionString,\n driver: dumboDriver,\n ...options.connectionOptions,\n serialization: { serializer: options.serializer },\n }),\n schemaComponent: PongoDatabaseSchemaComponent({\n driverType: PgDriverType,\n collectionFactory: (schema) =>\n PongoCollectionSchemaComponent({\n driverType: PgDriverType,\n definition: schema,\n migrationsOrSchemaComponents: {\n migrations: pongoCollectionPostgreSQLMigrations(schema.name),\n },\n sqlBuilder: postgresSQLBuilder(\n schema.name,\n options.serialization?.serializer ?? JSONSerializer,\n ),\n }),\n definition:\n options.schema?.definition ?? pongoSchema.db(databaseName, {}),\n }),\n databaseName,\n });\n },\n};\n\nexport const usePgPongoDriver = () => {\n pongoDriverRegistry.register(PgDriverType, pgPongoDriver);\n};\n\nusePgPongoDriver();\n\nexport { pgPongoDriver as pgDriver, pgPongoDriver as pongoDriver };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pg.js","names":["dumboDriver"],"sources":["../src/storage/postgresql/core/sqlBuilder/filter/queryOperators.ts","../src/storage/postgresql/core/sqlBuilder/filter/index.ts","../src/storage/postgresql/core/sqlBuilder/update/index.ts","../src/storage/postgresql/core/sqlBuilder/index.ts","../src/storage/postgresql/pg/index.ts"],"sourcesContent":["import type { JSONSerializer } from '@event-driven-io/dumbo';\nimport { SQL } from '@event-driven-io/dumbo';\nimport { objectEntries, OperatorMap } from '../../../../../core';\n\nexport const handleOperator = (\n path: string,\n operator: string,\n value: unknown,\n serializer: JSONSerializer,\n): SQL => {\n if (path === '_id' || path === '_version') {\n return handleMetadataOperator(path, operator, value);\n }\n\n switch (operator) {\n case '$eq': {\n const nestedPath = serializer.serialize(buildNestedObject(path, value));\n const serializedValue = serializer.serialize(value);\n\n return SQL`(data @> ${nestedPath}::jsonb OR jsonb_path_exists(data, '$.${SQL.plain(path)}[*] ? (@ == ${SQL.plain(serializedValue)})'))`;\n }\n case '$gt':\n case '$gte':\n case '$lt':\n case '$lte':\n case '$ne': {\n const jsonPath = SQL.plain(path.split('.').join(','));\n\n return SQL`data ->> '${jsonPath}' ${SQL.plain(OperatorMap[operator])} ${value}`;\n }\n case '$in': {\n const jsonPath = `{${path.split('.').join(',')}}`;\n\n return SQL`data #>> ${jsonPath} = ANY (${value})`;\n }\n case '$nin': {\n const jsonPath = `{${path.split('.').join(',')}}`;\n\n return SQL`data #>> ${jsonPath} != ALL (${value})`;\n }\n case '$elemMatch': {\n const subQuery = objectEntries(value as Record<string, unknown>)\n .map(\n ([subKey, subValue]) =>\n `@.\"${subKey}\" == ${serializer.serialize(subValue)}`,\n )\n .join(' && ');\n return SQL`jsonb_path_exists(data, '$.${SQL.plain(path)}[*] ? (${SQL.plain(subQuery)})')`;\n }\n case '$all': {\n const nestedPath = serializer.serialize(buildNestedObject(path, value));\n return SQL`data @> ${nestedPath}::jsonb`;\n }\n case '$size': {\n const jsonPath = `{${path.split('.').join(',')}}`;\n\n return SQL`jsonb_array_length(data #> ${jsonPath}) = ${value}`;\n }\n default:\n throw new Error(`Unsupported operator: ${operator}`);\n }\n};\n\nconst handleMetadataOperator = (\n fieldName: string,\n operator: string,\n value: unknown,\n): SQL => {\n switch (operator) {\n case '$eq':\n return SQL`${SQL.plain(fieldName)} = ${value}`;\n case '$gt':\n case '$gte':\n case '$lt':\n case '$lte':\n case '$ne':\n return SQL`${SQL.plain(fieldName)} ${SQL.plain(OperatorMap[operator])} ${value}`;\n case '$in':\n return SQL`${SQL.plain(fieldName)} = ANY (${value})`;\n case '$nin':\n return SQL`${SQL.plain(fieldName)} != ALL (${value})`;\n default:\n throw new Error(`Unsupported operator: ${operator}`);\n }\n};\n\nconst buildNestedObject = (\n path: string,\n value: unknown,\n): Record<string, unknown> =>\n path\n .split('.')\n .reverse()\n .reduce((acc, key) => ({ [key]: acc }), value as Record<string, unknown>);\n","import type { JSONSerializer } from '@event-driven-io/dumbo';\nimport { SQL } from '@event-driven-io/dumbo';\nimport {\n hasOperators,\n objectEntries,\n QueryOperators,\n type PongoFilter,\n} from '../../../../../core';\nimport { handleOperator } from './queryOperators';\n\nexport * from './queryOperators';\n\nconst AND = 'AND';\nconst OR = 'OR';\n\nconst unsupportedRootOperators = ['$text', '$where', '$comment'] as const;\n\nexport const constructFilterQuery = <T>(\n filter: PongoFilter<T>,\n serializer: JSONSerializer,\n): SQL => {\n ensureSupportedRootOperators(filter);\n const parts: SQL[] = [];\n\n const fieldFilterQuery = constructFieldFilterQuery(filter, serializer);\n if (!SQL.check.isEmpty(fieldFilterQuery)) {\n parts.push(fieldFilterQuery);\n }\n\n const orFilterQuery = constructLogicalFilterQuery(filter.$or, OR, serializer);\n if (!SQL.check.isEmpty(orFilterQuery)) {\n parts.push(orFilterQuery);\n }\n\n const andFilterQuery = constructLogicalFilterQuery(\n filter.$and,\n AND,\n serializer,\n );\n if (!SQL.check.isEmpty(andFilterQuery)) {\n parts.push(andFilterQuery);\n }\n\n const norFilterQuery = constructNorFilterQuery(filter.$nor, serializer);\n if (!SQL.check.isEmpty(norFilterQuery)) {\n parts.push(norFilterQuery);\n }\n\n return SQL.merge(parts, ` ${AND} `);\n};\n\nconst constructFieldFilterQuery = <T>(\n filter: PongoFilter<T>,\n serializer: JSONSerializer,\n): SQL =>\n SQL.merge(\n objectEntries(filter).flatMap(([key, value]) =>\n isLogicalRootOperator(key)\n ? []\n : [\n isRecord(value)\n ? constructComplexFilterQuery(key, value, serializer)\n : handleOperator(key, QueryOperators.$eq, value, serializer),\n ],\n ),\n ` ${AND} `,\n );\n\nconst constructLogicalFilterQuery = <T>(\n filters: PongoFilter<T>[] | undefined,\n joinOperator: typeof AND | typeof OR,\n serializer: JSONSerializer,\n): SQL => {\n if (!filters?.length) {\n return SQL.EMPTY;\n }\n\n const subFilterQueries = filters.reduce<SQL[]>((queries, filter) => {\n const query = constructFilterQuery(filter, serializer);\n if (!SQL.check.isEmpty(query)) {\n queries.push(query);\n }\n\n return queries;\n }, []);\n\n if (subFilterQueries.length === 0) {\n return SQL.EMPTY;\n }\n\n if (subFilterQueries.length === 1) {\n return wrapFilterQuery(subFilterQueries[0]!);\n }\n\n return SQL`(${SQL.merge(subFilterQueries.map(wrapFilterQuery), ` ${joinOperator} `)})`;\n};\n\nconst constructNorFilterQuery = <T>(\n filters: PongoFilter<T>[] | undefined,\n serializer: JSONSerializer,\n): SQL => {\n if (!filters?.length) {\n return SQL.EMPTY;\n }\n\n const logicalFilterQuery = constructLogicalFilterQuery(\n filters,\n OR,\n serializer,\n );\n return SQL.check.isEmpty(logicalFilterQuery)\n ? SQL.EMPTY\n : SQL`NOT ${logicalFilterQuery}`;\n};\n\nconst constructComplexFilterQuery = (\n key: string,\n value: Record<string, unknown>,\n serializer: JSONSerializer,\n): SQL => {\n const isEquality = !hasOperators(value);\n\n return SQL.merge(\n objectEntries(value).map(([nestedKey, val]) =>\n isEquality\n ? handleOperator(\n `${key}.${nestedKey}`,\n QueryOperators.$eq,\n val,\n serializer,\n )\n : handleOperator(key, nestedKey, val, serializer),\n ),\n ` ${AND} `,\n );\n};\n\nconst wrapFilterQuery = (filterQuery: SQL): SQL => SQL`(${filterQuery})`;\n\nconst ensureSupportedRootOperators = (filter: object): void => {\n for (const operator of unsupportedRootOperators) {\n if (operator in filter) {\n throw new Error(`Unsupported root operator: ${operator}`);\n }\n }\n};\n\nconst isLogicalRootOperator = (key: string): key is '$and' | '$nor' | '$or' =>\n key === '$and' || key === '$nor' || key === '$or';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n value !== null && typeof value === 'object' && !Array.isArray(value);\n","import type { JSONSerializer } from '@event-driven-io/dumbo';\nimport { SQL } from '@event-driven-io/dumbo';\nimport {\n objectEntries,\n type $inc,\n type $push,\n type $set,\n type $unset,\n type PongoUpdate,\n} from '../../../../../core';\n\nexport const buildUpdateQuery = <T>(\n update: PongoUpdate<T>,\n serializer: JSONSerializer,\n): SQL =>\n objectEntries(update).reduce(\n (currentUpdateQuery, [op, value]) => {\n switch (op) {\n case '$set':\n return buildSetQuery(value, currentUpdateQuery, serializer);\n case '$unset':\n return buildUnsetQuery(value, currentUpdateQuery);\n case '$inc':\n return buildIncQuery(value, currentUpdateQuery);\n case '$push':\n return buildPushQuery(value, currentUpdateQuery, serializer);\n default:\n return currentUpdateQuery;\n }\n },\n SQL`data`,\n );\n\nexport const buildSetQuery = <T>(\n set: $set<T>,\n currentUpdateQuery: SQL,\n serializer: JSONSerializer,\n): SQL => SQL`${currentUpdateQuery} || ${serializer.serialize(set)}::jsonb`;\n\nexport const buildUnsetQuery = <T>(\n unset: $unset<T>,\n currentUpdateQuery: SQL,\n): SQL =>\n SQL`${currentUpdateQuery} - ${Object.keys(unset)\n .map((k) => `{${k}}`)\n .join(', ')}`;\n\nexport const buildIncQuery = <T>(\n inc: $inc<T>,\n currentUpdateQuery: SQL,\n): SQL => {\n for (const [key, value] of Object.entries(inc)) {\n currentUpdateQuery =\n typeof value === 'bigint'\n ? SQL`jsonb_set(${currentUpdateQuery}, '{${SQL.plain(key)}}', to_jsonb((COALESCE((data->>'${SQL.plain(key)}')::BIGINT, 0) + ${value})::TEXT), true)`\n : SQL`jsonb_set(${currentUpdateQuery}, '{${SQL.plain(key)}}', to_jsonb(COALESCE((data->>'${SQL.plain(key)}')::NUMERIC, 0) + ${value}), true)`;\n }\n return currentUpdateQuery;\n};\n\nexport const buildPushQuery = <T>(\n push: $push<T>,\n currentUpdateQuery: SQL,\n serializer: JSONSerializer,\n): SQL => {\n for (const [key, value] of Object.entries(push)) {\n const serializedValue = serializer.serialize([value]);\n currentUpdateQuery = SQL`jsonb_set(${currentUpdateQuery}, '{${SQL.plain(key)}}', (coalesce(data->'${SQL.plain(key)}', '[]'::jsonb) || ${serializedValue}::jsonb), true)`;\n }\n return currentUpdateQuery;\n};\n","import type { JSONSerializer } from '@event-driven-io/dumbo';\nimport { isSQL, SQL, sqlMigration } from '@event-driven-io/dumbo';\nimport {\n expectedVersionPredicate,\n type DeleteOneOptions,\n type ExpectedDocumentVersion,\n type FindOptions,\n type OptionalUnlessRequiredIdAndVersion,\n type PongoCollectionSQLBuilder,\n type PongoFilter,\n type PongoUpdate,\n type ReplaceOneOptions,\n type UpdateOneOptions,\n type WithId,\n type WithIdAndVersion,\n type WithoutId,\n} from '../../../../core';\nimport { constructFilterQuery } from './filter';\nimport { buildUpdateQuery } from './update';\n\nconst versionCheckClause = (\n collectionName: string,\n expectedVersion: ExpectedDocumentVersion | undefined,\n): SQL => {\n const col = SQL.identifier(collectionName);\n const predicate = expectedVersionPredicate(expectedVersion);\n return predicate.operator === 'none'\n ? SQL.EMPTY\n : SQL`AND ${col}._version = ${predicate.value}`;\n};\n\nconst createCollection = (collectionName: string): SQL =>\n SQL`\n CREATE TABLE IF NOT EXISTS ${SQL.identifier(collectionName)} (\n _id TEXT PRIMARY KEY, \n data JSONB NOT NULL, \n metadata JSONB NOT NULL DEFAULT '{}',\n _version BIGINT NOT NULL DEFAULT 1,\n _partition TEXT NOT NULL DEFAULT 'png_global',\n _archived BOOLEAN NOT NULL DEFAULT FALSE,\n _created TIMESTAMPTZ NOT NULL DEFAULT now(),\n _updated TIMESTAMPTZ NOT NULL DEFAULT now()\n )`;\n\nexport const pongoCollectionPostgreSQLMigrations = (collectionName: string) => [\n sqlMigration(`pongoCollection:${collectionName}:001:createtable`, [\n createCollection(collectionName),\n ]),\n];\n\nexport const postgresSQLBuilder = (\n collectionName: string,\n serializer: JSONSerializer,\n): PongoCollectionSQLBuilder => ({\n createCollection: (): SQL => createCollection(collectionName),\n insertOne: <T>(document: OptionalUnlessRequiredIdAndVersion<T>): SQL => {\n const serialized = serializer.serialize(document);\n const id = document._id;\n const version = document._version ?? 1n;\n\n return SQL`\n INSERT INTO ${SQL.identifier(collectionName)} (_id, data, _version) \n VALUES (${id}, ${serialized}, ${version}) ON CONFLICT(_id) DO NOTHING;`;\n },\n insertMany: <T>(documents: OptionalUnlessRequiredIdAndVersion<T>[]): SQL => {\n const values = SQL.merge(\n documents.map(\n (doc) =>\n SQL`(${doc._id}, ${serializer.serialize(doc)}, ${doc._version ?? 1n})`,\n ),\n ',',\n );\n\n return SQL`\n INSERT INTO ${SQL.identifier(collectionName)} (_id, data, _version) VALUES ${values}\n ON CONFLICT(_id) DO NOTHING\n RETURNING _id;`;\n },\n insertOrReplace: <T>(documents: Array<WithId<T>>): SQL => {\n const col = SQL.identifier(collectionName);\n const values = SQL.merge(\n documents.map(\n (d) =>\n SQL`(${d._id}::text, ${serializer.serialize(d)}::jsonb || jsonb_build_object('_id', ${d._id}::text) || jsonb_build_object('_version', '1'::text), 1::bigint)`,\n ),\n ',',\n );\n\n return SQL`\n INSERT INTO ${col} (_id, data, _version)\n VALUES ${values}\n ON CONFLICT(_id) DO UPDATE SET\n data = EXCLUDED.data\n || jsonb_build_object('_id', ${col}._id)\n || jsonb_build_object('_version', (${col}._version + 1)::text),\n _version = ${col}._version + 1\n RETURNING _id, _version AS version;`;\n },\n updateOne: <T>(\n filter: PongoFilter<T> | SQL,\n update: PongoUpdate<T> | SQL,\n options?: UpdateOneOptions,\n ): SQL => {\n const expectedVersionUpdate = versionCheckClause(\n collectionName,\n options?.expectedVersion,\n );\n\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n const updateQuery = isSQL(update)\n ? update\n : buildUpdateQuery(update, serializer);\n\n return SQL`\n WITH existing AS (\n SELECT _id, _version as current_version\n FROM ${SQL.identifier(collectionName)} ${where(filterQuery)}\n LIMIT 1\n ),\n updated AS (\n UPDATE ${SQL.identifier(collectionName)} \n SET \n data = ${updateQuery} || jsonb_build_object('_id', ${SQL.identifier(collectionName)}._id) || jsonb_build_object('_version', (_version + 1)::text),\n _version = _version + 1\n FROM existing \n WHERE ${SQL.identifier(collectionName)}._id = existing._id ${expectedVersionUpdate}\n RETURNING ${SQL.identifier(collectionName)}._id, ${SQL.identifier(collectionName)}._version\n )\n SELECT \n existing._id,\n COALESCE(updated._version, existing.current_version) AS version,\n COUNT(existing._id) over() AS matched,\n COUNT(updated._id) over() AS modified\n FROM existing\n LEFT JOIN updated \n ON existing._id = updated._id;`;\n },\n replaceOne: <T>(\n filter: PongoFilter<T> | SQL,\n document: WithoutId<T>,\n options?: ReplaceOneOptions,\n ): SQL => {\n const expectedVersionUpdate = versionCheckClause(\n collectionName,\n options?.expectedVersion,\n );\n\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n\n return SQL`\n WITH existing AS (\n SELECT _id, _version as current_version\n FROM ${SQL.identifier(collectionName)} ${where(filterQuery)}\n LIMIT 1\n ),\n updated AS (\n UPDATE ${SQL.identifier(collectionName)} \n SET \n data = ${serializer.serialize(document)} || jsonb_build_object('_id', ${SQL.identifier(collectionName)}._id) || jsonb_build_object('_version', (_version + 1)::text),\n _version = _version + 1\n FROM existing \n WHERE ${SQL.identifier(collectionName)}._id = existing._id ${expectedVersionUpdate}\n RETURNING ${SQL.identifier(collectionName)}._id, ${SQL.identifier(collectionName)}._version\n )\n SELECT \n existing._id,\n COALESCE(updated._version, existing.current_version) AS version,\n COUNT(existing._id) over() AS matched,\n COUNT(updated._id) over() AS modified\n FROM existing\n LEFT JOIN updated \n ON existing._id = updated._id;`;\n },\n updateMany: <T>(\n filter: PongoFilter<T> | SQL,\n update: PongoUpdate<T> | SQL,\n ): SQL => {\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n const updateQuery = isSQL(update)\n ? update\n : buildUpdateQuery(update, serializer);\n\n return SQL`\n UPDATE ${SQL.identifier(collectionName)} \n SET \n data = ${updateQuery} || jsonb_build_object('_version', (_version + 1)::text),\n _version = _version + 1\n ${where(filterQuery)};`;\n },\n deleteOne: <T>(\n filter: PongoFilter<T> | SQL,\n options?: DeleteOneOptions,\n ): SQL => {\n const expectedVersionUpdate = versionCheckClause(\n collectionName,\n options?.expectedVersion,\n );\n\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n\n return SQL`\n WITH existing AS (\n SELECT _id\n FROM ${SQL.identifier(collectionName)} ${where(filterQuery)}\n LIMIT 1\n ),\n deleted AS (\n DELETE FROM ${SQL.identifier(collectionName)}\n USING existing\n WHERE ${SQL.identifier(collectionName)}._id = existing._id ${expectedVersionUpdate}\n RETURNING ${SQL.identifier(collectionName)}._id\n )\n SELECT \n existing._id,\n COUNT(existing._id) over() AS matched,\n COUNT(deleted._id) over() AS deleted\n FROM existing\n LEFT JOIN deleted \n ON existing._id = deleted._id;`;\n },\n deleteMany: <T>(filter: PongoFilter<T> | SQL): SQL => {\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n\n return SQL`DELETE FROM ${SQL.identifier(collectionName)} ${where(filterQuery)}`;\n },\n replaceMany: <T>(\n documents: Array<WithIdAndVersion<T>> | Array<WithId<T>>,\n ): SQL => {\n const hasVersions = documents.some(\n (d) => '_version' in d && d._version !== undefined,\n );\n\n if (hasVersions) {\n const values = SQL.merge(\n documents.map((d) => {\n const expectedVersion = (d as WithIdAndVersion<T>)._version;\n return expectedVersion !== undefined\n ? SQL`(${d._id}::text, ${serializer.serialize(d)}::jsonb, ${expectedVersion}::bigint)`\n : SQL`(${d._id}::text, ${serializer.serialize(d)}::jsonb, NULL::bigint)`;\n }),\n ',',\n );\n return SQL`\n WITH replacements(_id, data, expected_version) AS (\n VALUES ${values}\n )\n UPDATE ${SQL.identifier(collectionName)} t\n SET\n data = r.data\n || jsonb_build_object('_id', t._id)\n || jsonb_build_object('_version', (t._version + 1)::text),\n _version = t._version + 1\n FROM replacements r\n WHERE t._id = r._id AND (r.expected_version IS NULL OR t._version = r.expected_version)\n RETURNING t._id, t._version AS version;`;\n }\n\n const values = SQL.merge(\n documents.map(\n (d) => SQL`(${d._id}::text, ${serializer.serialize(d)}::jsonb)`,\n ),\n ',',\n );\n return SQL`\n WITH replacements(_id, data) AS (\n VALUES ${values}\n )\n UPDATE ${SQL.identifier(collectionName)} t\n SET\n data = r.data\n || jsonb_build_object('_id', t._id)\n || jsonb_build_object('_version', (t._version + 1)::text),\n _version = t._version + 1\n FROM replacements r\n WHERE t._id = r._id\n RETURNING t._id, t._version AS version;`;\n },\n deleteManyByIds: (ids: Array<{ _id: string; _version?: bigint }>): SQL => {\n const hasVersions = ids.some((d) => d._version !== undefined);\n\n if (hasVersions) {\n const values = SQL.merge(\n ids.map((d) => SQL`(${d._id}::text, ${d._version ?? 0n}::bigint)`),\n ',',\n );\n\n return SQL`\n WITH targets(_id, expected_version) AS (\n VALUES ${values}\n ),\n deleted AS (\n DELETE FROM ${SQL.identifier(collectionName)} t\n USING targets r\n WHERE t._id = r._id AND t._version = r.expected_version\n RETURNING t._id\n )\n SELECT r._id,\n CASE WHEN d._id IS NOT NULL THEN 1 ELSE 0 END as deleted\n FROM targets r\n LEFT JOIN deleted d ON r._id = d._id;`;\n }\n\n const values = SQL.merge(\n ids.map((d) => SQL`(${d._id}::text)`),\n ',',\n );\n\n return SQL`\n WITH targets(_id) AS (\n VALUES ${values}\n ),\n deleted AS (\n DELETE FROM ${SQL.identifier(collectionName)} t\n USING targets r\n WHERE t._id = r._id\n RETURNING t._id\n )\n SELECT r._id,\n CASE WHEN d._id IS NOT NULL THEN 1 ELSE 0 END as deleted\n FROM targets r\n LEFT JOIN deleted d ON r._id = d._id;`;\n },\n findOne: <T>(filter: PongoFilter<T> | SQL): SQL => {\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n\n return SQL`SELECT data, _id, _version FROM ${SQL.identifier(collectionName)} ${where(filterQuery)} LIMIT 1;`;\n },\n find: <T>(filter: PongoFilter<T> | SQL, options?: FindOptions): SQL => {\n const filterQuery = isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n const query: SQL[] = [];\n\n query.push(\n SQL`SELECT data, _id, _version FROM ${SQL.identifier(collectionName)}`,\n );\n\n query.push(where(filterQuery));\n\n if (options?.sort && Object.keys(options.sort).length > 0) {\n const clauses = Object.entries(options.sort).map(([field, dir]) => {\n const isMetadata = field === '_id' || field === '_version';\n const isNested = !isMetadata && field.includes('.');\n // _id and _version are native columns, not JSON fields.\n // Use -> / #> (returns jsonb) rather than ->> / #>> (returns text) so\n // that numeric fields are sorted numerically, not lexicographically.\n const accessor = isMetadata\n ? SQL`${SQL.plain(field)}`\n : isNested\n ? SQL`data #> '${SQL.plain(`{${field.split('.').join(',')}}`)}'`\n : SQL`data -> '${SQL.plain(field)}'`;\n // Match MongoDB's null ordering: missing/null values sort first on ASC,\n // last on DESC. PostgreSQL's default is the opposite for ASC (NULLS LAST).\n return dir === 1\n ? SQL`${accessor} ASC NULLS FIRST`\n : SQL`${accessor} DESC NULLS LAST`;\n });\n query.push(SQL`ORDER BY ${SQL.merge(clauses, ',')}`);\n }\n\n if (options?.limit) {\n query.push(SQL`LIMIT ${options.limit}`);\n }\n\n if (options?.skip) {\n query.push(SQL`OFFSET ${options.skip}`);\n }\n\n return SQL.merge([...query, SQL`;`]);\n },\n countDocuments: <T>(filter: PongoFilter<T> | SQL): SQL => {\n const filterQuery = SQL.check.isSQL(filter)\n ? filter\n : constructFilterQuery(filter, serializer);\n return SQL`SELECT COUNT(1) as count FROM ${SQL.identifier(collectionName)} ${where(filterQuery)};`;\n },\n rename: (newName: string): SQL =>\n SQL`ALTER TABLE ${SQL.identifier(collectionName)} RENAME TO ${SQL.identifier(newName)};`,\n drop: (targetName: string = collectionName): SQL =>\n SQL`DROP TABLE IF EXISTS ${SQL.identifier(targetName)}`,\n});\n\nconst where = (filterQuery: SQL): SQL =>\n SQL.check.isEmpty(filterQuery)\n ? SQL.EMPTY\n : SQL.merge([SQL`WHERE `, filterQuery]);\n","import { dumbo, JSONSerializer } from '@event-driven-io/dumbo';\nimport {\n pgDumboDriver as dumboDriver,\n PgDriverType,\n postgreSQLMetadata,\n type PgConnection,\n} from '@event-driven-io/dumbo/pg';\nimport type pg from 'pg';\nimport {\n PongoCollectionSchemaComponent,\n PongoDatabase,\n PongoDatabaseSchemaComponent,\n pongoDriverRegistry,\n pongoSchema,\n type PongoDb,\n type PongoDriver,\n type PongoDriverOptions,\n} from '../../../core';\nimport {\n pongoCollectionPostgreSQLMigrations,\n postgresSQLBuilder,\n} from '../core';\n\nexport type PgPongoClientOptions =\n PooledPongoClientOptions | NotPooledPongoOptions;\n\nexport type PooledPongoClientOptions =\n | {\n pool: pg.Pool;\n }\n | {\n pooled: true;\n }\n | {\n pool: pg.Pool;\n pooled: true;\n }\n | object;\n\nexport type NotPooledPongoOptions =\n | {\n client: pg.Client;\n }\n | {\n pooled: false;\n }\n | {\n client: pg.Client;\n pooled: false;\n }\n | {\n connection: PgConnection;\n pooled?: false;\n };\n\ntype PgDatabaseDriverOptions = PongoDriverOptions<PgPongoClientOptions> & {\n databaseName?: string | undefined;\n connectionString: string;\n};\n\nconst pgPongoDriver: PongoDriver<\n PongoDb<PgDriverType>,\n PgDatabaseDriverOptions\n> = {\n driverType: PgDriverType,\n databaseFactory: (options) => {\n const databaseName =\n options.databaseName ??\n postgreSQLMetadata.parseDatabaseName(options.connectionString) ??\n postgreSQLMetadata.defaultDatabaseName;\n\n return PongoDatabase({\n ...options,\n pool: dumbo({\n connectionString: options.connectionString,\n driver: dumboDriver,\n ...options.connectionOptions,\n serialization: { serializer: options.serializer },\n }),\n schemaComponent: PongoDatabaseSchemaComponent({\n driverType: PgDriverType,\n collectionFactory: (schema) =>\n PongoCollectionSchemaComponent({\n driverType: PgDriverType,\n definition: schema,\n migrationsOrSchemaComponents: {\n migrations: pongoCollectionPostgreSQLMigrations(schema.name),\n },\n sqlBuilder: postgresSQLBuilder(\n schema.name,\n options.serialization?.serializer ?? JSONSerializer,\n ),\n }),\n definition:\n options.schema?.definition ?? pongoSchema.db(databaseName, {}),\n }),\n databaseName,\n });\n },\n};\n\nexport const usePgPongoDriver = () => {\n pongoDriverRegistry.register(PgDriverType, pgPongoDriver);\n};\n\nusePgPongoDriver();\n\nexport { pgPongoDriver as pgDriver, pgPongoDriver as pongoDriver };\n"],"mappings":";;;;;AAIA,MAAa,kBACX,MACA,UACA,OACA,eACQ;AACR,KAAI,SAAS,SAAS,SAAS,WAC7B,QAAO,uBAAuB,MAAM,UAAU,MAAM;AAGtD,SAAQ,UAAR;EACE,KAAK,OAAO;GACV,MAAM,aAAa,WAAW,UAAU,kBAAkB,MAAM,MAAM,CAAC;GACvE,MAAM,kBAAkB,WAAW,UAAU,MAAM;AAEnD,UAAO,GAAG,YAAY,WAAW,wCAAwC,IAAI,MAAM,KAAK,CAAC,cAAc,IAAI,MAAM,gBAAgB,CAAC;;EAEpI,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,MAGH,QAAO,GAAG,aAFO,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,CAErB,CAAC,IAAI,IAAI,MAAM,YAAY,UAAU,CAAC,GAAG;EAE1E,KAAK,MAGH,QAAO,GAAG,YAAY,IAFD,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,GAEhB,UAAU,MAAM;EAEjD,KAAK,OAGH,QAAO,GAAG,YAAY,IAFD,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,GAEhB,WAAW,MAAM;EAElD,KAAK,cAAc;GACjB,MAAM,WAAW,cAAc,MAAiC,CAC7D,KACE,CAAC,QAAQ,cACR,MAAM,OAAO,OAAO,WAAW,UAAU,SAAS,GACrD,CACA,KAAK,OAAO;AACf,UAAO,GAAG,8BAA8B,IAAI,MAAM,KAAK,CAAC,SAAS,IAAI,MAAM,SAAS,CAAC;;EAEvF,KAAK,OAEH,QAAO,GAAG,WADS,WAAW,UAAU,kBAAkB,MAAM,MAAM,CACvC,CAAC;EAElC,KAAK,QAGH,QAAO,GAAG,8BAA8B,IAFnB,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,GAEE,MAAM;EAEzD,QACE,OAAM,IAAI,MAAM,yBAAyB,WAAW;;;AAI1D,MAAM,0BACJ,WACA,UACA,UACQ;AACR,SAAQ,UAAR;EACE,KAAK,MACH,QAAO,GAAG,GAAG,IAAI,MAAM,UAAU,CAAC,KAAK;EACzC,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,MACH,QAAO,GAAG,GAAG,IAAI,MAAM,UAAU,CAAC,GAAG,IAAI,MAAM,YAAY,UAAU,CAAC,GAAG;EAC3E,KAAK,MACH,QAAO,GAAG,GAAG,IAAI,MAAM,UAAU,CAAC,UAAU,MAAM;EACpD,KAAK,OACH,QAAO,GAAG,GAAG,IAAI,MAAM,UAAU,CAAC,WAAW,MAAM;EACrD,QACE,OAAM,IAAI,MAAM,yBAAyB,WAAW;;;AAI1D,MAAM,qBACJ,MACA,UAEA,KACG,MAAM,IAAI,CACV,SAAS,CACT,QAAQ,KAAK,SAAS,GAAG,MAAM,KAAK,GAAG,MAAiC;;;;ACjF7E,MAAM,MAAM;AACZ,MAAM,KAAK;AAEX,MAAM,2BAA2B;CAAC;CAAS;CAAU;CAAW;AAEhE,MAAa,wBACX,QACA,eACQ;AACR,8BAA6B,OAAO;CACpC,MAAM,QAAe,EAAE;CAEvB,MAAM,mBAAmB,0BAA0B,QAAQ,WAAW;AACtE,KAAI,CAAC,IAAI,MAAM,QAAQ,iBAAiB,CACtC,OAAM,KAAK,iBAAiB;CAG9B,MAAM,gBAAgB,4BAA4B,OAAO,KAAK,IAAI,WAAW;AAC7E,KAAI,CAAC,IAAI,MAAM,QAAQ,cAAc,CACnC,OAAM,KAAK,cAAc;CAG3B,MAAM,iBAAiB,4BACrB,OAAO,MACP,KACA,WACD;AACD,KAAI,CAAC,IAAI,MAAM,QAAQ,eAAe,CACpC,OAAM,KAAK,eAAe;CAG5B,MAAM,iBAAiB,wBAAwB,OAAO,MAAM,WAAW;AACvE,KAAI,CAAC,IAAI,MAAM,QAAQ,eAAe,CACpC,OAAM,KAAK,eAAe;AAG5B,QAAO,IAAI,MAAM,OAAO,IAAI,IAAI,GAAG;;AAGrC,MAAM,6BACJ,QACA,eAEA,IAAI,MACF,cAAc,OAAO,CAAC,SAAS,CAAC,KAAK,WACnC,sBAAsB,IAAI,GACtB,EAAE,GACF,CACE,SAAS,MAAM,GACX,4BAA4B,KAAK,OAAO,WAAW,GACnD,eAAe,KAAK,eAAe,KAAK,OAAO,WAAW,CAC/D,CACN,EACD,IAAI,IAAI,GACT;AAEH,MAAM,+BACJ,SACA,cACA,eACQ;AACR,KAAI,CAAC,SAAS,OACZ,QAAO,IAAI;CAGb,MAAM,mBAAmB,QAAQ,QAAe,SAAS,WAAW;EAClE,MAAM,QAAQ,qBAAqB,QAAQ,WAAW;AACtD,MAAI,CAAC,IAAI,MAAM,QAAQ,MAAM,CAC3B,SAAQ,KAAK,MAAM;AAGrB,SAAO;IACN,EAAE,CAAC;AAEN,KAAI,iBAAiB,WAAW,EAC9B,QAAO,IAAI;AAGb,KAAI,iBAAiB,WAAW,EAC9B,QAAO,gBAAgB,iBAAiB,GAAI;AAG9C,QAAO,GAAG,IAAI,IAAI,MAAM,iBAAiB,IAAI,gBAAgB,EAAE,IAAI,aAAa,GAAG,CAAC;;AAGtF,MAAM,2BACJ,SACA,eACQ;AACR,KAAI,CAAC,SAAS,OACZ,QAAO,IAAI;CAGb,MAAM,qBAAqB,4BACzB,SACA,IACA,WACD;AACD,QAAO,IAAI,MAAM,QAAQ,mBAAmB,GACxC,IAAI,QACJ,GAAG,OAAO;;AAGhB,MAAM,+BACJ,KACA,OACA,eACQ;CACR,MAAM,aAAa,CAAC,aAAa,MAAM;AAEvC,QAAO,IAAI,MACT,cAAc,MAAM,CAAC,KAAK,CAAC,WAAW,SACpC,aACI,eACE,GAAG,IAAI,GAAG,aACV,eAAe,KACf,KACA,WACD,GACD,eAAe,KAAK,WAAW,KAAK,WAAW,CACpD,EACD,IAAI,IAAI,GACT;;AAGH,MAAM,mBAAmB,gBAA0B,GAAG,IAAI,YAAY;AAEtE,MAAM,gCAAgC,WAAyB;AAC7D,MAAK,MAAM,YAAY,yBACrB,KAAI,YAAY,OACd,OAAM,IAAI,MAAM,8BAA8B,WAAW;;AAK/D,MAAM,yBAAyB,QAC7B,QAAQ,UAAU,QAAQ,UAAU,QAAQ;AAE9C,MAAM,YAAY,UAChB,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM;;;;AC5ItE,MAAa,oBACX,QACA,eAEA,cAAc,OAAO,CAAC,QACnB,oBAAoB,CAAC,IAAI,WAAW;AACnC,SAAQ,IAAR;EACE,KAAK,OACH,QAAO,cAAc,OAAO,oBAAoB,WAAW;EAC7D,KAAK,SACH,QAAO,gBAAgB,OAAO,mBAAmB;EACnD,KAAK,OACH,QAAO,cAAc,OAAO,mBAAmB;EACjD,KAAK,QACH,QAAO,eAAe,OAAO,oBAAoB,WAAW;EAC9D,QACE,QAAO;;GAGb,GAAG,OACJ;AAEH,MAAa,iBACX,KACA,oBACA,eACQ,GAAG,GAAG,mBAAmB,MAAM,WAAW,UAAU,IAAI,CAAC;AAEnE,MAAa,mBACX,OACA,uBAEA,GAAG,GAAG,mBAAmB,KAAK,OAAO,KAAK,MAAM,CAC7C,KAAK,MAAM,IAAI,EAAE,GAAG,CACpB,KAAK,KAAK;AAEf,MAAa,iBACX,KACA,uBACQ;AACR,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,CAC5C,sBACE,OAAO,UAAU,WACb,GAAG,aAAa,mBAAmB,MAAM,IAAI,MAAM,IAAI,CAAC,kCAAkC,IAAI,MAAM,IAAI,CAAC,mBAAmB,MAAM,mBAClI,GAAG,aAAa,mBAAmB,MAAM,IAAI,MAAM,IAAI,CAAC,iCAAiC,IAAI,MAAM,IAAI,CAAC,oBAAoB,MAAM;AAE1I,QAAO;;AAGT,MAAa,kBACX,MACA,oBACA,eACQ;AACR,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,EAAE;EAC/C,MAAM,kBAAkB,WAAW,UAAU,CAAC,MAAM,CAAC;AACrD,uBAAqB,GAAG,aAAa,mBAAmB,MAAM,IAAI,MAAM,IAAI,CAAC,uBAAuB,IAAI,MAAM,IAAI,CAAC,qBAAqB,gBAAgB;;AAE1J,QAAO;;;;;ACjDT,MAAM,sBACJ,gBACA,oBACQ;CACR,MAAM,MAAM,IAAI,WAAW,eAAe;CAC1C,MAAM,YAAY,yBAAyB,gBAAgB;AAC3D,QAAO,UAAU,aAAa,SAC1B,IAAI,QACJ,GAAG,OAAO,IAAI,cAAc,UAAU;;AAG5C,MAAM,oBAAoB,mBACxB,GAAG;iCAC4B,IAAI,WAAW,eAAe,CAAC;;;;;;;;;;AAWhE,MAAa,uCAAuC,mBAA2B,CAC7E,aAAa,mBAAmB,eAAe,mBAAmB,CAChE,iBAAiB,eAAe,CACjC,CAAC,CACH;AAED,MAAa,sBACX,gBACA,gBAC+B;CAC/B,wBAA6B,iBAAiB,eAAe;CAC7D,YAAe,aAAyD;EACtE,MAAM,aAAa,WAAW,UAAU,SAAS;EACjD,MAAM,KAAK,SAAS;EACpB,MAAM,UAAU,SAAS,YAAY;AAErC,SAAO,GAAG;oBACM,IAAI,WAAW,eAAe,CAAC;gBACnC,GAAG,IAAI,WAAW,IAAI,QAAQ;;CAE5C,aAAgB,cAA4D;EAC1E,MAAM,SAAS,IAAI,MACjB,UAAU,KACP,QACC,GAAG,IAAI,IAAI,IAAI,IAAI,WAAW,UAAU,IAAI,CAAC,IAAI,IAAI,YAAY,GAAG,GACvE,EACD,IACD;AAED,SAAO,GAAG;oBACM,IAAI,WAAW,eAAe,CAAC,gCAAgC,OAAO;;;;CAIxF,kBAAqB,cAAqC;EACxD,MAAM,MAAM,IAAI,WAAW,eAAe;AAS1C,SAAO,GAAG;oBACM,IAAI;eATL,IAAI,MACjB,UAAU,KACP,MACC,GAAG,IAAI,EAAE,IAAI,UAAU,WAAW,UAAU,EAAE,CAAC,uCAAuC,EAAE,IAAI,kEAC/F,EACD,IAKe,CAAC;;;yCAGmB,IAAI;+CACE,IAAI;qBAC9B,IAAI;;;CAGvB,YACE,QACA,QACA,YACQ;EACR,MAAM,wBAAwB,mBAC5B,gBACA,SAAS,gBACV;EAED,MAAM,cAAc,MAAM,OAAO,GAC7B,SACA,qBAAqB,QAAQ,WAAW;EAC5C,MAAM,cAAc,MAAM,OAAO,GAC7B,SACA,iBAAiB,QAAQ,WAAW;AAExC,SAAO,GAAG;;;eAGC,IAAI,WAAW,eAAe,CAAC,GAAG,MAAM,YAAY,CAAC;;;;iBAInD,IAAI,WAAW,eAAe,CAAC;;mBAE7B,YAAY,gCAAgC,IAAI,WAAW,eAAe,CAAC;;;gBAG9E,IAAI,WAAW,eAAe,CAAC,sBAAsB,sBAAsB;oBACvE,IAAI,WAAW,eAAe,CAAC,QAAQ,IAAI,WAAW,eAAe,CAAC;;;;;;;;;;;CAWxF,aACE,QACA,UACA,YACQ;EACR,MAAM,wBAAwB,mBAC5B,gBACA,SAAS,gBACV;EAED,MAAM,cAAc,MAAM,OAAO,GAC7B,SACA,qBAAqB,QAAQ,WAAW;AAE5C,SAAO,GAAG;;;eAGC,IAAI,WAAW,eAAe,CAAC,GAAG,MAAM,YAAY,CAAC;;;;iBAInD,IAAI,WAAW,eAAe,CAAC;;mBAE7B,WAAW,UAAU,SAAS,CAAC,gCAAgC,IAAI,WAAW,eAAe,CAAC;;;gBAGjG,IAAI,WAAW,eAAe,CAAC,sBAAsB,sBAAsB;oBACvE,IAAI,WAAW,eAAe,CAAC,QAAQ,IAAI,WAAW,eAAe,CAAC;;;;;;;;;;;CAWxF,aACE,QACA,WACQ;EACR,MAAM,cAAc,MAAM,OAAO,GAC7B,SACA,qBAAqB,QAAQ,WAAW;EAC5C,MAAM,cAAc,MAAM,OAAO,GAC7B,SACA,iBAAiB,QAAQ,WAAW;AAExC,SAAO,GAAG;eACC,IAAI,WAAW,eAAe,CAAC;;iBAE7B,YAAY;;QAErB,MAAM,YAAY,CAAC;;CAEzB,YACE,QACA,YACQ;EACR,MAAM,wBAAwB,mBAC5B,gBACA,SAAS,gBACV;EAED,MAAM,cAAc,MAAM,OAAO,GAC7B,SACA,qBAAqB,QAAQ,WAAW;AAE5C,SAAO,GAAG;;;eAGC,IAAI,WAAW,eAAe,CAAC,GAAG,MAAM,YAAY,CAAC;;;;sBAI9C,IAAI,WAAW,eAAe,CAAC;;gBAErC,IAAI,WAAW,eAAe,CAAC,sBAAsB,sBAAsB;oBACvE,IAAI,WAAW,eAAe,CAAC;;;;;;;;;;CAUjD,aAAgB,WAAsC;EACpD,MAAM,cAAc,MAAM,OAAO,GAC7B,SACA,qBAAqB,QAAQ,WAAW;AAE5C,SAAO,GAAG,eAAe,IAAI,WAAW,eAAe,CAAC,GAAG,MAAM,YAAY;;CAE/E,cACE,cACQ;AAKR,MAJoB,UAAU,MAC3B,MAAM,cAAc,KAAK,EAAE,aAAa,OAG5B,CAUb,QAAO,GAAG;;mBATK,IAAI,MACjB,UAAU,KAAK,MAAM;GACnB,MAAM,kBAAmB,EAA0B;AACnD,UAAO,oBAAoB,SACvB,GAAG,IAAI,EAAE,IAAI,UAAU,WAAW,UAAU,EAAE,CAAC,WAAW,gBAAgB,aAC1E,GAAG,IAAI,EAAE,IAAI,UAAU,WAAW,UAAU,EAAE,CAAC;IACnD,EACF,IAIiB,CAAC;;iBAET,IAAI,WAAW,eAAe,CAAC;;;;;;;;;AAiB5C,SAAO,GAAG;;iBANK,IAAI,MACjB,UAAU,KACP,MAAM,GAAG,IAAI,EAAE,IAAI,UAAU,WAAW,UAAU,EAAE,CAAC,UACvD,EACD,IAIiB,CAAC;;eAET,IAAI,WAAW,eAAe,CAAC;;;;;;;;;;CAU5C,kBAAkB,QAAwD;AAGxE,MAFoB,IAAI,MAAM,MAAM,EAAE,aAAa,OAEpC,CAMb,QAAO,GAAG;;mBALK,IAAI,MACjB,IAAI,KAAK,MAAM,GAAG,IAAI,EAAE,IAAI,UAAU,EAAE,YAAY,GAAG,WAAW,EAClE,IAKiB,CAAC;;;wBAGF,IAAI,WAAW,eAAe,CAAC;;;;;;;;;AAgBnD,SAAO,GAAG;;iBALK,IAAI,MACjB,IAAI,KAAK,MAAM,GAAG,IAAI,EAAE,IAAI,SAAS,EACrC,IAKiB,CAAC;;;sBAGF,IAAI,WAAW,eAAe,CAAC;;;;;;;;;;CAUnD,UAAa,WAAsC;EACjD,MAAM,cAAc,MAAM,OAAO,GAC7B,SACA,qBAAqB,QAAQ,WAAW;AAE5C,SAAO,GAAG,mCAAmC,IAAI,WAAW,eAAe,CAAC,GAAG,MAAM,YAAY,CAAC;;CAEpG,OAAU,QAA8B,YAA+B;EACrE,MAAM,cAAc,MAAM,OAAO,GAC7B,SACA,qBAAqB,QAAQ,WAAW;EAC5C,MAAM,QAAe,EAAE;AAEvB,QAAM,KACJ,GAAG,mCAAmC,IAAI,WAAW,eAAe,GACrE;AAED,QAAM,KAAK,MAAM,YAAY,CAAC;AAE9B,MAAI,SAAS,QAAQ,OAAO,KAAK,QAAQ,KAAK,CAAC,SAAS,GAAG;GACzD,MAAM,UAAU,OAAO,QAAQ,QAAQ,KAAK,CAAC,KAAK,CAAC,OAAO,SAAS;IACjE,MAAM,aAAa,UAAU,SAAS,UAAU;IAChD,MAAM,WAAW,CAAC,cAAc,MAAM,SAAS,IAAI;IAInD,MAAM,WAAW,aACb,GAAG,GAAG,IAAI,MAAM,MAAM,KACtB,WACE,GAAG,YAAY,IAAI,MAAM,IAAI,MAAM,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAC5D,GAAG,YAAY,IAAI,MAAM,MAAM,CAAC;AAGtC,WAAO,QAAQ,IACX,GAAG,GAAG,SAAS,oBACf,GAAG,GAAG,SAAS;KACnB;AACF,SAAM,KAAK,GAAG,YAAY,IAAI,MAAM,SAAS,IAAI,GAAG;;AAGtD,MAAI,SAAS,MACX,OAAM,KAAK,GAAG,SAAS,QAAQ,QAAQ;AAGzC,MAAI,SAAS,KACX,OAAM,KAAK,GAAG,UAAU,QAAQ,OAAO;AAGzC,SAAO,IAAI,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;;CAEtC,iBAAoB,WAAsC;EACxD,MAAM,cAAc,IAAI,MAAM,MAAM,OAAO,GACvC,SACA,qBAAqB,QAAQ,WAAW;AAC5C,SAAO,GAAG,iCAAiC,IAAI,WAAW,eAAe,CAAC,GAAG,MAAM,YAAY,CAAC;;CAElG,SAAS,YACP,GAAG,eAAe,IAAI,WAAW,eAAe,CAAC,aAAa,IAAI,WAAW,QAAQ,CAAC;CACxF,OAAO,aAAqB,mBAC1B,GAAG,wBAAwB,IAAI,WAAW,WAAW;CACxD;AAED,MAAM,SAAS,gBACb,IAAI,MAAM,QAAQ,YAAY,GAC1B,IAAI,QACJ,IAAI,MAAM,CAAC,GAAG,UAAU,YAAY,CAAC;;;;ACjV3C,MAAM,gBAGF;CACF,YAAY;CACZ,kBAAkB,YAAY;EAC5B,MAAM,eACJ,QAAQ,gBACR,mBAAmB,kBAAkB,QAAQ,iBAAiB,IAC9D,mBAAmB;AAErB,SAAO,cAAc;GACnB,GAAG;GACH,MAAM,MAAM;IACV,kBAAkB,QAAQ;IAC1B,QAAQA;IACR,GAAG,QAAQ;IACX,eAAe,EAAE,YAAY,QAAQ,YAAY;IAClD,CAAC;GACF,iBAAiB,6BAA6B;IAC5C,YAAY;IACZ,oBAAoB,WAClB,+BAA+B;KAC7B,YAAY;KACZ,YAAY;KACZ,8BAA8B,EAC5B,YAAY,oCAAoC,OAAO,KAAK,EAC7D;KACD,YAAY,mBACV,OAAO,MACP,QAAQ,eAAe,cAAc,eACtC;KACF,CAAC;IACJ,YACE,QAAQ,QAAQ,cAAc,YAAY,GAAG,cAAc,EAAE,CAAC;IACjE,CAAC;GACF;GACD,CAAC;;CAEL;AAED,MAAa,yBAAyB;AACpC,qBAAoB,SAAS,cAAc,cAAc;;AAG3D,kBAAkB"}
|
package/dist/shim.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_core = require('./core-
|
|
2
|
+
const require_core = require('./core-C9SB3XMx.cjs');
|
|
3
3
|
const require_cli = require('./cli.cjs');
|
|
4
4
|
let _event_driven_io_dumbo = require("@event-driven-io/dumbo");
|
|
5
5
|
|
|
@@ -97,22 +97,32 @@ var Collection = class {
|
|
|
97
97
|
const result = await this.collection.updateOne(filter, update, toCollectionOperationOptions(options));
|
|
98
98
|
return {
|
|
99
99
|
acknowledged: result.acknowledged,
|
|
100
|
-
matchedCount: result.
|
|
100
|
+
matchedCount: result.matchedCount,
|
|
101
101
|
modifiedCount: result.modifiedCount,
|
|
102
|
-
upsertedCount: result.
|
|
103
|
-
upsertedId:
|
|
102
|
+
upsertedCount: result.upsertedCount,
|
|
103
|
+
upsertedId: result.upsertedId
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
-
replaceOne(filter, document, options) {
|
|
107
|
-
|
|
106
|
+
async replaceOne(filter, document, options) {
|
|
107
|
+
const result = await this.collection.replaceOne(filter, document, {
|
|
108
|
+
...toCollectionOperationOptions(options),
|
|
109
|
+
upsert: options?.upsert ?? false
|
|
110
|
+
});
|
|
111
|
+
return {
|
|
112
|
+
acknowledged: result.acknowledged,
|
|
113
|
+
matchedCount: result.matchedCount,
|
|
114
|
+
modifiedCount: result.modifiedCount,
|
|
115
|
+
upsertedCount: result.upsertedCount,
|
|
116
|
+
upsertedId: result.upsertedId
|
|
117
|
+
};
|
|
108
118
|
}
|
|
109
119
|
async updateMany(filter, update, options) {
|
|
110
120
|
const result = await this.collection.updateMany(filter, update, toCollectionOperationOptions(options));
|
|
111
121
|
return {
|
|
112
122
|
acknowledged: result.acknowledged,
|
|
113
|
-
matchedCount: result.
|
|
123
|
+
matchedCount: result.matchedCount,
|
|
114
124
|
modifiedCount: result.modifiedCount,
|
|
115
|
-
upsertedCount:
|
|
125
|
+
upsertedCount: 0,
|
|
116
126
|
upsertedId: null
|
|
117
127
|
};
|
|
118
128
|
}
|
package/dist/shim.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shim.cjs","names":["pongoClient","pongoSession"],"sources":["../src/mongo/findCursor.ts","../src/mongo/mongoCollection.ts","../src/mongo/mongoDb.ts","../src/mongo/mongoClient.ts"],"sourcesContent":["export class FindCursor<T> {\n private findDocumentsPromise: Promise<T[]>;\n private documents: T[] | null = null;\n private index: number = 0;\n\n constructor(documents: Promise<T[]>) {\n this.findDocumentsPromise = documents;\n }\n\n async toArray(): Promise<T[]> {\n return this.findDocuments();\n }\n\n async forEach(callback: (doc: T) => void): Promise<void> {\n const docs = await this.findDocuments();\n\n for (const doc of docs) {\n callback(doc);\n }\n return Promise.resolve();\n }\n\n hasNext(): boolean {\n if (this.documents === null) throw Error('Error while fetching documents');\n return this.index < this.documents.length;\n }\n\n async next(): Promise<T | null> {\n const docs = await this.findDocuments();\n return this.hasNext() ? (docs[this.index++] ?? null) : null;\n }\n\n private async findDocuments(): Promise<T[]> {\n this.documents = await this.findDocumentsPromise;\n return this.documents;\n }\n}\n","import type {\n AbstractCursorOptions,\n AggregateOptions,\n AggregationCursor,\n AnyBulkWriteOperation,\n BSONSerializeOptions,\n BulkWriteOptions,\n BulkWriteResult,\n ChangeStream,\n ChangeStreamDocument,\n ChangeStreamOptions,\n CommandOperationOptions,\n CountDocumentsOptions,\n CountOptions,\n CreateIndexesOptions,\n Db,\n DeleteOptions,\n DeleteResult,\n Document,\n DropCollectionOptions,\n EnhancedOmit,\n EstimatedDocumentCountOptions,\n Filter,\n FindOneAndDeleteOptions,\n FindOneAndReplaceOptions,\n FindOneAndUpdateOptions,\n FindOptions,\n Flatten,\n Hint,\n IndexDescription,\n IndexDescriptionCompact,\n IndexDescriptionInfo,\n IndexInformationOptions,\n IndexSpecification,\n InferIdType,\n InsertManyResult,\n InsertOneOptions,\n InsertOneResult,\n ListIndexesCursor,\n ListSearchIndexesCursor,\n ListSearchIndexesOptions,\n ModifyResult,\n Collection as MongoCollection,\n FindCursor as MongoFindCursor,\n ObjectId,\n OperationOptions,\n OptionalUnlessRequiredId,\n OrderedBulkOperation,\n ReadConcern,\n ReadPreference,\n RenameOptions,\n ReplaceOptions,\n SearchIndexDescription,\n UnorderedBulkOperation,\n UpdateFilter,\n UpdateOptions,\n UpdateResult,\n WithId,\n WithoutId,\n WriteConcern,\n} from 'mongodb';\nimport type { Key } from 'readline';\nimport type {\n CollectionOperationOptions,\n DocumentHandler,\n HandleOptions,\n PongoCollection,\n PongoFilter,\n FindOptions as PongoFindOptions,\n PongoHandleResult,\n OptionalUnlessRequiredId as PongoOptionalUnlessRequiredId,\n PongoSession,\n PongoUpdate,\n} from '../core';\nimport type { Db as ShimDb } from '../shim';\nimport { FindCursor } from './findCursor';\n\nconst toCollectionOperationOptions = (\n options: OperationOptions | undefined,\n): CollectionOperationOptions | undefined =>\n options?.session\n ? { session: options.session as unknown as PongoSession }\n : undefined;\n\nconst toFindOptions = (\n options: FindOptions | undefined,\n): PongoFindOptions | undefined => {\n if (\n !options?.session &&\n !options?.limit &&\n !options?.skip &&\n !options?.sort\n ) {\n return undefined;\n }\n\n const pongoFindOptions: PongoFindOptions = {};\n\n if (options?.session) {\n pongoFindOptions.session = options.session as unknown as PongoSession;\n }\n if (options?.limit !== undefined) {\n pongoFindOptions.limit = options.limit;\n }\n if (options?.skip !== undefined) {\n pongoFindOptions.skip = options.skip;\n }\n if (options?.sort !== undefined) {\n pongoFindOptions.sort = options.sort as { [field: string]: 1 | -1 };\n }\n\n return pongoFindOptions;\n};\n\nexport class Collection<T extends Document> implements MongoCollection<T> {\n private collection: PongoCollection<T>;\n private database: ShimDb;\n\n constructor(database: ShimDb, collection: PongoCollection<T>) {\n this.collection = collection;\n this.database = database;\n }\n get db(): Db {\n return this.database as unknown as Db;\n }\n get dbName(): string {\n return this.collection.dbName;\n }\n get collectionName(): string {\n return this.collection.collectionName;\n }\n get namespace(): string {\n return `${this.dbName}.${this.collectionName}`;\n }\n get readConcern(): ReadConcern | undefined {\n return undefined;\n }\n get readPreference(): ReadPreference | undefined {\n return undefined;\n }\n get bsonOptions(): BSONSerializeOptions {\n return {};\n }\n get writeConcern(): WriteConcern | undefined {\n return undefined;\n }\n get hint(): Hint | undefined {\n return undefined;\n }\n get timeoutMS(): number | undefined {\n return undefined;\n }\n set hint(v: Hint | undefined) {\n throw new Error('Method not implemented.');\n }\n async insertOne(\n doc: OptionalUnlessRequiredId<T>,\n options?: InsertOneOptions,\n ): Promise<InsertOneResult<T>> {\n const result = await this.collection.insertOne(\n doc as unknown as PongoOptionalUnlessRequiredId<T>,\n toCollectionOperationOptions(options),\n );\n return {\n acknowledged: result.acknowledged,\n insertedId: result.insertedId as unknown as InferIdType<T>,\n };\n }\n async insertMany(\n docs: OptionalUnlessRequiredId<T>[],\n options?: BulkWriteOptions,\n ): Promise<InsertManyResult<T>> {\n const result = await this.collection.insertMany(\n docs as unknown as PongoOptionalUnlessRequiredId<T>[],\n toCollectionOperationOptions(options),\n );\n return {\n acknowledged: result.acknowledged,\n insertedIds: result.insertedIds as unknown as InferIdType<T>[],\n insertedCount: result.insertedCount,\n };\n }\n bulkWrite(\n _operations: AnyBulkWriteOperation<T>[],\n _options?: BulkWriteOptions,\n ): Promise<BulkWriteResult> {\n throw new Error('Method not implemented.');\n }\n async updateOne(\n filter: Filter<T>,\n update: Document[] | UpdateFilter<T>,\n options?: UpdateOptions,\n ): Promise<UpdateResult<T>> {\n const result = await this.collection.updateOne(\n filter as unknown as PongoFilter<T>,\n update as unknown as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n matchedCount: result.modifiedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.modifiedCount,\n upsertedId: null,\n };\n }\n replaceOne(\n filter: Filter<T>,\n document: WithoutId<T>,\n options?: ReplaceOptions,\n ): Promise<UpdateResult<T>> {\n return this.collection.replaceOne(\n filter as unknown as PongoFilter<T>,\n document,\n toCollectionOperationOptions(options),\n ) as unknown as Promise<UpdateResult<T>>;\n }\n async updateMany(\n filter: Filter<T>,\n update: Document[] | UpdateFilter<T>,\n options?: UpdateOptions,\n ): Promise<UpdateResult<T>> {\n const result = await this.collection.updateMany(\n filter as unknown as PongoFilter<T>,\n update as unknown as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n matchedCount: result.modifiedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.modifiedCount,\n upsertedId: null,\n };\n }\n async deleteOne(\n filter?: Filter<T>,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n const result = await this.collection.deleteOne(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n deletedCount: result.deletedCount,\n };\n }\n async deleteMany(\n filter?: Filter<T>,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n const result = await this.collection.deleteMany(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n deletedCount: result.deletedCount,\n };\n }\n async rename(\n newName: string,\n options?: RenameOptions,\n ): Promise<Collection<Document>> {\n await this.collection.rename(\n newName,\n toCollectionOperationOptions(options),\n );\n\n return this as unknown as Collection<Document>;\n }\n drop(options?: DropCollectionOptions): Promise<boolean> {\n return this.collection.drop(toCollectionOperationOptions(options));\n }\n findOne(): Promise<WithId<T> | null>;\n findOne(filter: Filter<T>): Promise<WithId<T> | null>;\n findOne(filter: Filter<T>, options: FindOptions): Promise<WithId<T> | null>;\n findOne<TS = T>(): Promise<TS | null>;\n findOne<TS = T>(filter: Filter<TS>): Promise<TS | null>;\n findOne<TS = T>(\n filter: Filter<TS>,\n options?: FindOptions,\n ): Promise<TS | null>;\n async findOne(\n filter?: unknown,\n options?: FindOptions,\n ): Promise<WithId<T> | T | null> {\n return await this.collection.findOne(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n }\n find(): MongoFindCursor<WithId<T>>;\n find(filter: Filter<T>, options?: FindOptions): MongoFindCursor<WithId<T>>;\n find<T extends Document>(\n filter: Filter<T>,\n options?: FindOptions,\n ): MongoFindCursor<T>;\n find(\n filter?: unknown,\n options?: FindOptions,\n ): MongoFindCursor<WithId<T>> | MongoFindCursor<T> {\n return new FindCursor(\n this.collection.find(filter as PongoFilter<T>, toFindOptions(options)),\n ) as unknown as MongoFindCursor<T>;\n }\n options(_options?: OperationOptions): Promise<Document> {\n throw new Error('Method not implemented.');\n }\n isCapped(_options?: OperationOptions): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n createIndex(\n _indexSpec: IndexSpecification,\n _options?: CreateIndexesOptions,\n ): Promise<string> {\n throw new Error('Method not implemented.');\n }\n createIndexes(\n _indexSpecs: IndexDescription[],\n _options?: CreateIndexesOptions,\n ): Promise<string[]> {\n throw new Error('Method not implemented.');\n }\n dropIndex(\n _indexName: string,\n _options?: CommandOperationOptions,\n ): Promise<Document> {\n throw new Error('Method not implemented.');\n }\n dropIndexes(_options?: CommandOperationOptions): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n listIndexes(_options?: AbstractCursorOptions): ListIndexesCursor {\n throw new Error('Method not implemented.');\n }\n indexExists(\n _indexes: string | string[],\n _options?: AbstractCursorOptions,\n ): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n indexInformation(\n options: IndexInformationOptions & { full: true },\n ): Promise<IndexDescriptionInfo[]>;\n indexInformation(\n options: IndexInformationOptions & { full?: false | undefined },\n ): Promise<IndexDescriptionCompact>;\n indexInformation(\n options: IndexInformationOptions,\n ): Promise<IndexDescriptionCompact | IndexDescriptionInfo[]>;\n indexInformation(): Promise<IndexDescriptionCompact>;\n indexInformation(\n _options?: unknown,\n ):\n | Promise<IndexDescriptionInfo[]>\n | Promise<IndexDescriptionCompact>\n | Promise<IndexDescriptionCompact | IndexDescriptionInfo[]> {\n throw new Error('Method not implemented.');\n }\n estimatedDocumentCount(\n options?: EstimatedDocumentCountOptions,\n ): Promise<number> {\n return this.collection.countDocuments(\n {},\n toCollectionOperationOptions(options),\n );\n }\n countDocuments(\n filter?: Filter<T>,\n options?: CountDocumentsOptions,\n ): Promise<number> {\n return this.collection.countDocuments(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n }\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n filter: Filter<T>,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n filter: Filter<T>,\n options: CommandOperationOptions,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n distinct(key: string): Promise<any[]>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n distinct(key: string, filter: Filter<T>): Promise<any[]>;\n distinct(\n key: string,\n filter: Filter<T>,\n options: CommandOperationOptions, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<any[]>;\n distinct(\n _key: unknown,\n _filter?: unknown,\n _options?: unknown,\n ):\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-imports\n Promise<any[]> | Promise<import('mongodb').Flatten<WithId<T>[Key]>[]> {\n throw new Error('Method not implemented.');\n }\n indexes(\n options: IndexInformationOptions & { full?: true | undefined },\n ): Promise<IndexDescriptionInfo[]>;\n indexes(\n options: IndexInformationOptions & { full: false },\n ): Promise<IndexDescriptionCompact>;\n indexes(\n options: IndexInformationOptions,\n ): Promise<IndexDescriptionCompact | IndexDescriptionInfo[]>;\n indexes(options?: AbstractCursorOptions): Promise<IndexDescriptionInfo[]>;\n indexes(\n _options?: unknown,\n ):\n | Promise<IndexDescriptionInfo[]>\n | Promise<IndexDescriptionCompact>\n | Promise<IndexDescriptionCompact | IndexDescriptionInfo[]> {\n throw new Error('Method not implemented.');\n }\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions,\n ): Promise<WithId<T> | null>;\n findOneAndDelete(filter: Filter<T>): Promise<WithId<T> | null>;\n findOneAndDelete(\n filter: unknown,\n options?: FindOneAndDeleteOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndDelete(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions,\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: unknown,\n replacement: unknown,\n options?: FindOneAndReplaceOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndReplace(\n filter as PongoFilter<T>,\n replacement as WithoutId<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions,\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: unknown,\n update: unknown,\n options?: FindOneAndUpdateOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndUpdate(\n filter as PongoFilter<T>,\n update as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n aggregate<T extends Document = Document>(\n _pipeline?: Document[],\n _options?: AggregateOptions,\n ): AggregationCursor<T> {\n throw new Error('Method not implemented.');\n }\n watch<\n TLocal extends Document = T,\n TChange extends Document = ChangeStreamDocument<TLocal>,\n >(\n _pipeline?: Document[],\n _options?: ChangeStreamOptions,\n ): ChangeStream<TLocal, TChange> {\n throw new Error('Method not implemented.');\n }\n initializeUnorderedBulkOp(\n _options?: BulkWriteOptions,\n ): UnorderedBulkOperation {\n throw new Error('Method not implemented.');\n }\n initializeOrderedBulkOp(_options?: BulkWriteOptions): OrderedBulkOperation {\n throw new Error('Method not implemented.');\n }\n count(filter?: Filter<T>, options?: CountOptions): Promise<number> {\n return this.collection.countDocuments(\n (filter as PongoFilter<T>) ?? {},\n toCollectionOperationOptions(options),\n );\n }\n listSearchIndexes(\n options?: ListSearchIndexesOptions,\n ): ListSearchIndexesCursor;\n listSearchIndexes(\n name: string,\n options?: ListSearchIndexesOptions,\n ): ListSearchIndexesCursor;\n listSearchIndexes(\n _name?: unknown,\n _options?: unknown,\n ): ListSearchIndexesCursor {\n throw new Error('Method not implemented.');\n }\n createSearchIndex(_description: SearchIndexDescription): Promise<string> {\n throw new Error('Method not implemented.');\n }\n createSearchIndexes(\n _descriptions: SearchIndexDescription[],\n ): Promise<string[]> {\n throw new Error('Method not implemented.');\n }\n dropSearchIndex(_name: string): Promise<void> {\n throw new Error('Method not implemented.');\n }\n updateSearchIndex(_name: string, _definition: Document): Promise<void> {\n throw new Error('Method not implemented.');\n }\n\n async createCollection(): Promise<void> {\n await this.collection.createCollection();\n }\n async handle(\n id: ObjectId,\n handle: DocumentHandler<T>,\n options?: HandleOptions,\n ): Promise<PongoHandleResult<T>> {\n return this.collection.handle(id.toString(), handle, options);\n }\n}\n","import type { Collection as MongoCollection, ObjectId } from 'mongodb';\nimport type { Document } from 'mongodb';\nimport type {\n DocumentHandler,\n HandleOptions,\n PongoDb,\n PongoDBCollectionOptions,\n PongoHandleResult,\n} from '../core';\nimport { Collection } from './mongoCollection';\n\nexport class Db {\n private pongoDb: PongoDb;\n constructor(pongoDb: PongoDb) {\n this.pongoDb = pongoDb;\n }\n\n get databaseName(): string {\n return this.pongoDb.databaseName;\n }\n\n collection<T extends Document>(\n collectionName: string,\n options?: PongoDBCollectionOptions<T>,\n ): MongoCollection<T> & {\n handle(\n id: ObjectId,\n handle: DocumentHandler<T>,\n options?: HandleOptions,\n ): Promise<PongoHandleResult<T>>;\n } {\n return new Collection<T>(\n this,\n this.pongoDb.collection<T>(collectionName, options),\n );\n }\n}\n","import {\n parseConnectionString,\n toDatabaseDriverType,\n} from '@event-driven-io/dumbo';\nimport type { ClientSessionOptions } from 'http2';\nimport type { ClientSession, WithSessionCallback } from 'mongodb';\nimport {\n pongoClient,\n pongoSession,\n type AnyPongoDriver,\n type PongoClient,\n type PongoClientOptions,\n type PongoClientSchema,\n} from '../core';\nimport { Db } from './mongoDb';\n\nexport class MongoClient<\n DatabaseDriverType extends AnyPongoDriver = AnyPongoDriver,\n TypedClientSchema extends PongoClientSchema = PongoClientSchema,\n> {\n private pongoClient: PongoClient;\n\n constructor(\n options: PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n );\n constructor(\n connectionString: string,\n options?: Omit<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n 'connectionString'\n > & {\n driver?: AnyPongoDriver;\n },\n );\n constructor(\n connectionStringOrOptions:\n string | PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n options?: Omit<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n 'connectionString'\n > & {\n driver?: AnyPongoDriver;\n },\n ) {\n if (typeof connectionStringOrOptions !== 'string') {\n this.pongoClient = pongoClient(connectionStringOrOptions);\n return;\n }\n\n const { databaseType, driverName } = parseConnectionString(\n connectionStringOrOptions,\n );\n\n const driver =\n options?.driver ??\n pongoDriverRegistry.tryGet(\n toDatabaseDriverType(databaseType, driverName),\n );\n\n if (driver === null) {\n throw new Error(\n `No database driver registered for ${databaseType} with name ${driverName}`,\n );\n }\n\n this.pongoClient = pongoClient({\n ...(options ?? {}),\n ...{ connectionString: connectionStringOrOptions },\n driver,\n } as unknown as PongoClientOptions<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>['driver'] &\n AnyPongoDriver,\n TypedClientSchema\n >);\n }\n\n async connect() {\n await this.pongoClient.connect();\n return this;\n }\n\n async close() {\n await this.pongoClient.close();\n }\n\n db(dbName?: string): Db {\n return new Db(this.pongoClient.db(dbName));\n }\n startSession(_options?: ClientSessionOptions): ClientSession {\n return pongoSession() as unknown as ClientSession;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withSession<T = any>(_executor: WithSessionCallback<T>): Promise<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withSession<T = any>(\n _options: ClientSessionOptions,\n _executor: WithSessionCallback<T>,\n ): Promise<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async withSession<T = any>(\n optionsOrExecutor: ClientSessionOptions | WithSessionCallback<T>,\n executor?: WithSessionCallback<T>,\n ): Promise<T> {\n const callback =\n typeof optionsOrExecutor === 'function' ? optionsOrExecutor : executor!;\n\n const session = pongoSession() as unknown as ClientSession;\n\n try {\n return await callback(session);\n } finally {\n await session.endSession();\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shim.cjs","names":["pongoClient","pongoSession"],"sources":["../src/mongo/findCursor.ts","../src/mongo/mongoCollection.ts","../src/mongo/mongoDb.ts","../src/mongo/mongoClient.ts"],"sourcesContent":["export class FindCursor<T> {\n private findDocumentsPromise: Promise<T[]>;\n private documents: T[] | null = null;\n private index: number = 0;\n\n constructor(documents: Promise<T[]>) {\n this.findDocumentsPromise = documents;\n }\n\n async toArray(): Promise<T[]> {\n return this.findDocuments();\n }\n\n async forEach(callback: (doc: T) => void): Promise<void> {\n const docs = await this.findDocuments();\n\n for (const doc of docs) {\n callback(doc);\n }\n return Promise.resolve();\n }\n\n hasNext(): boolean {\n if (this.documents === null) throw Error('Error while fetching documents');\n return this.index < this.documents.length;\n }\n\n async next(): Promise<T | null> {\n const docs = await this.findDocuments();\n return this.hasNext() ? (docs[this.index++] ?? null) : null;\n }\n\n private async findDocuments(): Promise<T[]> {\n this.documents = await this.findDocumentsPromise;\n return this.documents;\n }\n}\n","import type {\n AbstractCursorOptions,\n AggregateOptions,\n AggregationCursor,\n AnyBulkWriteOperation,\n BSONSerializeOptions,\n BulkWriteOptions,\n BulkWriteResult,\n ChangeStream,\n ChangeStreamDocument,\n ChangeStreamOptions,\n CommandOperationOptions,\n CountDocumentsOptions,\n CountOptions,\n CreateIndexesOptions,\n Db,\n DeleteOptions,\n DeleteResult,\n Document,\n DropCollectionOptions,\n EnhancedOmit,\n EstimatedDocumentCountOptions,\n Filter,\n FindOneAndDeleteOptions,\n FindOneAndReplaceOptions,\n FindOneAndUpdateOptions,\n FindOptions,\n Flatten,\n Hint,\n IndexDescription,\n IndexDescriptionCompact,\n IndexDescriptionInfo,\n IndexInformationOptions,\n IndexSpecification,\n InferIdType,\n InsertManyResult,\n InsertOneOptions,\n InsertOneResult,\n ListIndexesCursor,\n ListSearchIndexesCursor,\n ListSearchIndexesOptions,\n ModifyResult,\n Collection as MongoCollection,\n FindCursor as MongoFindCursor,\n ObjectId,\n OperationOptions,\n OptionalUnlessRequiredId,\n OrderedBulkOperation,\n ReadConcern,\n ReadPreference,\n RenameOptions,\n ReplaceOptions,\n SearchIndexDescription,\n UnorderedBulkOperation,\n UpdateFilter,\n UpdateOptions,\n UpdateResult,\n WithId,\n WithoutId,\n WriteConcern,\n} from 'mongodb';\nimport type { Key } from 'readline';\nimport type {\n CollectionOperationOptions,\n DocumentHandler,\n HandleOptions,\n PongoCollection,\n PongoFilter,\n FindOptions as PongoFindOptions,\n PongoHandleResult,\n OptionalUnlessRequiredId as PongoOptionalUnlessRequiredId,\n PongoSession,\n PongoUpdate,\n} from '../core';\nimport type { Db as ShimDb } from '../shim';\nimport { FindCursor } from './findCursor';\n\nconst toCollectionOperationOptions = (\n options: OperationOptions | undefined,\n): CollectionOperationOptions | undefined =>\n options?.session\n ? { session: options.session as unknown as PongoSession }\n : undefined;\n\nconst toFindOptions = (\n options: FindOptions | undefined,\n): PongoFindOptions | undefined => {\n if (\n !options?.session &&\n !options?.limit &&\n !options?.skip &&\n !options?.sort\n ) {\n return undefined;\n }\n\n const pongoFindOptions: PongoFindOptions = {};\n\n if (options?.session) {\n pongoFindOptions.session = options.session as unknown as PongoSession;\n }\n if (options?.limit !== undefined) {\n pongoFindOptions.limit = options.limit;\n }\n if (options?.skip !== undefined) {\n pongoFindOptions.skip = options.skip;\n }\n if (options?.sort !== undefined) {\n pongoFindOptions.sort = options.sort as { [field: string]: 1 | -1 };\n }\n\n return pongoFindOptions;\n};\n\nexport class Collection<T extends Document> implements MongoCollection<T> {\n private collection: PongoCollection<T>;\n private database: ShimDb;\n\n constructor(database: ShimDb, collection: PongoCollection<T>) {\n this.collection = collection;\n this.database = database;\n }\n get db(): Db {\n return this.database as unknown as Db;\n }\n get dbName(): string {\n return this.collection.dbName;\n }\n get collectionName(): string {\n return this.collection.collectionName;\n }\n get namespace(): string {\n return `${this.dbName}.${this.collectionName}`;\n }\n get readConcern(): ReadConcern | undefined {\n return undefined;\n }\n get readPreference(): ReadPreference | undefined {\n return undefined;\n }\n get bsonOptions(): BSONSerializeOptions {\n return {};\n }\n get writeConcern(): WriteConcern | undefined {\n return undefined;\n }\n get hint(): Hint | undefined {\n return undefined;\n }\n get timeoutMS(): number | undefined {\n return undefined;\n }\n set hint(v: Hint | undefined) {\n throw new Error('Method not implemented.');\n }\n async insertOne(\n doc: OptionalUnlessRequiredId<T>,\n options?: InsertOneOptions,\n ): Promise<InsertOneResult<T>> {\n const result = await this.collection.insertOne(\n doc as unknown as PongoOptionalUnlessRequiredId<T>,\n toCollectionOperationOptions(options),\n );\n return {\n acknowledged: result.acknowledged,\n insertedId: result.insertedId as unknown as InferIdType<T>,\n };\n }\n async insertMany(\n docs: OptionalUnlessRequiredId<T>[],\n options?: BulkWriteOptions,\n ): Promise<InsertManyResult<T>> {\n const result = await this.collection.insertMany(\n docs as unknown as PongoOptionalUnlessRequiredId<T>[],\n toCollectionOperationOptions(options),\n );\n return {\n acknowledged: result.acknowledged,\n insertedIds: result.insertedIds as unknown as InferIdType<T>[],\n insertedCount: result.insertedCount,\n };\n }\n bulkWrite(\n _operations: AnyBulkWriteOperation<T>[],\n _options?: BulkWriteOptions,\n ): Promise<BulkWriteResult> {\n throw new Error('Method not implemented.');\n }\n async updateOne(\n filter: Filter<T>,\n update: Document[] | UpdateFilter<T>,\n options?: UpdateOptions,\n ): Promise<UpdateResult<T>> {\n const result = await this.collection.updateOne(\n filter as unknown as PongoFilter<T>,\n update as unknown as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.upsertedCount,\n upsertedId: result.upsertedId as unknown as InferIdType<T>,\n };\n }\n async replaceOne(\n filter: Filter<T>,\n document: WithoutId<T>,\n options?: ReplaceOptions,\n ): Promise<UpdateResult<T>> {\n const result = await this.collection.replaceOne(\n filter as unknown as PongoFilter<T>,\n document,\n {\n ...toCollectionOperationOptions(options),\n upsert: options?.upsert ?? false,\n },\n );\n\n return {\n acknowledged: result.acknowledged,\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.upsertedCount,\n upsertedId: result.upsertedId as unknown as InferIdType<T>,\n };\n }\n async updateMany(\n filter: Filter<T>,\n update: Document[] | UpdateFilter<T>,\n options?: UpdateOptions,\n ): Promise<UpdateResult<T>> {\n const result = await this.collection.updateMany(\n filter as unknown as PongoFilter<T>,\n update as unknown as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: 0,\n upsertedId: null,\n };\n }\n async deleteOne(\n filter?: Filter<T>,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n const result = await this.collection.deleteOne(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n deletedCount: result.deletedCount,\n };\n }\n async deleteMany(\n filter?: Filter<T>,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n const result = await this.collection.deleteMany(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n deletedCount: result.deletedCount,\n };\n }\n async rename(\n newName: string,\n options?: RenameOptions,\n ): Promise<Collection<Document>> {\n await this.collection.rename(\n newName,\n toCollectionOperationOptions(options),\n );\n\n return this as unknown as Collection<Document>;\n }\n drop(options?: DropCollectionOptions): Promise<boolean> {\n return this.collection.drop(toCollectionOperationOptions(options));\n }\n findOne(): Promise<WithId<T> | null>;\n findOne(filter: Filter<T>): Promise<WithId<T> | null>;\n findOne(filter: Filter<T>, options: FindOptions): Promise<WithId<T> | null>;\n findOne<TS = T>(): Promise<TS | null>;\n findOne<TS = T>(filter: Filter<TS>): Promise<TS | null>;\n findOne<TS = T>(\n filter: Filter<TS>,\n options?: FindOptions,\n ): Promise<TS | null>;\n async findOne(\n filter?: unknown,\n options?: FindOptions,\n ): Promise<WithId<T> | T | null> {\n return await this.collection.findOne(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n }\n find(): MongoFindCursor<WithId<T>>;\n find(filter: Filter<T>, options?: FindOptions): MongoFindCursor<WithId<T>>;\n find<T extends Document>(\n filter: Filter<T>,\n options?: FindOptions,\n ): MongoFindCursor<T>;\n find(\n filter?: unknown,\n options?: FindOptions,\n ): MongoFindCursor<WithId<T>> | MongoFindCursor<T> {\n return new FindCursor(\n this.collection.find(filter as PongoFilter<T>, toFindOptions(options)),\n ) as unknown as MongoFindCursor<T>;\n }\n options(_options?: OperationOptions): Promise<Document> {\n throw new Error('Method not implemented.');\n }\n isCapped(_options?: OperationOptions): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n createIndex(\n _indexSpec: IndexSpecification,\n _options?: CreateIndexesOptions,\n ): Promise<string> {\n throw new Error('Method not implemented.');\n }\n createIndexes(\n _indexSpecs: IndexDescription[],\n _options?: CreateIndexesOptions,\n ): Promise<string[]> {\n throw new Error('Method not implemented.');\n }\n dropIndex(\n _indexName: string,\n _options?: CommandOperationOptions,\n ): Promise<Document> {\n throw new Error('Method not implemented.');\n }\n dropIndexes(_options?: CommandOperationOptions): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n listIndexes(_options?: AbstractCursorOptions): ListIndexesCursor {\n throw new Error('Method not implemented.');\n }\n indexExists(\n _indexes: string | string[],\n _options?: AbstractCursorOptions,\n ): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n indexInformation(\n options: IndexInformationOptions & { full: true },\n ): Promise<IndexDescriptionInfo[]>;\n indexInformation(\n options: IndexInformationOptions & { full?: false | undefined },\n ): Promise<IndexDescriptionCompact>;\n indexInformation(\n options: IndexInformationOptions,\n ): Promise<IndexDescriptionCompact | IndexDescriptionInfo[]>;\n indexInformation(): Promise<IndexDescriptionCompact>;\n indexInformation(\n _options?: unknown,\n ):\n | Promise<IndexDescriptionInfo[]>\n | Promise<IndexDescriptionCompact>\n | Promise<IndexDescriptionCompact | IndexDescriptionInfo[]> {\n throw new Error('Method not implemented.');\n }\n estimatedDocumentCount(\n options?: EstimatedDocumentCountOptions,\n ): Promise<number> {\n return this.collection.countDocuments(\n {},\n toCollectionOperationOptions(options),\n );\n }\n countDocuments(\n filter?: Filter<T>,\n options?: CountDocumentsOptions,\n ): Promise<number> {\n return this.collection.countDocuments(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n }\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n filter: Filter<T>,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n filter: Filter<T>,\n options: CommandOperationOptions,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n distinct(key: string): Promise<any[]>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n distinct(key: string, filter: Filter<T>): Promise<any[]>;\n distinct(\n key: string,\n filter: Filter<T>,\n options: CommandOperationOptions, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<any[]>;\n distinct(\n _key: unknown,\n _filter?: unknown,\n _options?: unknown,\n ):\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-imports\n Promise<any[]> | Promise<import('mongodb').Flatten<WithId<T>[Key]>[]> {\n throw new Error('Method not implemented.');\n }\n indexes(\n options: IndexInformationOptions & { full?: true | undefined },\n ): Promise<IndexDescriptionInfo[]>;\n indexes(\n options: IndexInformationOptions & { full: false },\n ): Promise<IndexDescriptionCompact>;\n indexes(\n options: IndexInformationOptions,\n ): Promise<IndexDescriptionCompact | IndexDescriptionInfo[]>;\n indexes(options?: AbstractCursorOptions): Promise<IndexDescriptionInfo[]>;\n indexes(\n _options?: unknown,\n ):\n | Promise<IndexDescriptionInfo[]>\n | Promise<IndexDescriptionCompact>\n | Promise<IndexDescriptionCompact | IndexDescriptionInfo[]> {\n throw new Error('Method not implemented.');\n }\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions,\n ): Promise<WithId<T> | null>;\n findOneAndDelete(filter: Filter<T>): Promise<WithId<T> | null>;\n findOneAndDelete(\n filter: unknown,\n options?: FindOneAndDeleteOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndDelete(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions,\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: unknown,\n replacement: unknown,\n options?: FindOneAndReplaceOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndReplace(\n filter as PongoFilter<T>,\n replacement as WithoutId<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions,\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: unknown,\n update: unknown,\n options?: FindOneAndUpdateOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndUpdate(\n filter as PongoFilter<T>,\n update as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n aggregate<T extends Document = Document>(\n _pipeline?: Document[],\n _options?: AggregateOptions,\n ): AggregationCursor<T> {\n throw new Error('Method not implemented.');\n }\n watch<\n TLocal extends Document = T,\n TChange extends Document = ChangeStreamDocument<TLocal>,\n >(\n _pipeline?: Document[],\n _options?: ChangeStreamOptions,\n ): ChangeStream<TLocal, TChange> {\n throw new Error('Method not implemented.');\n }\n initializeUnorderedBulkOp(\n _options?: BulkWriteOptions,\n ): UnorderedBulkOperation {\n throw new Error('Method not implemented.');\n }\n initializeOrderedBulkOp(_options?: BulkWriteOptions): OrderedBulkOperation {\n throw new Error('Method not implemented.');\n }\n count(filter?: Filter<T>, options?: CountOptions): Promise<number> {\n return this.collection.countDocuments(\n (filter as PongoFilter<T>) ?? {},\n toCollectionOperationOptions(options),\n );\n }\n listSearchIndexes(\n options?: ListSearchIndexesOptions,\n ): ListSearchIndexesCursor;\n listSearchIndexes(\n name: string,\n options?: ListSearchIndexesOptions,\n ): ListSearchIndexesCursor;\n listSearchIndexes(\n _name?: unknown,\n _options?: unknown,\n ): ListSearchIndexesCursor {\n throw new Error('Method not implemented.');\n }\n createSearchIndex(_description: SearchIndexDescription): Promise<string> {\n throw new Error('Method not implemented.');\n }\n createSearchIndexes(\n _descriptions: SearchIndexDescription[],\n ): Promise<string[]> {\n throw new Error('Method not implemented.');\n }\n dropSearchIndex(_name: string): Promise<void> {\n throw new Error('Method not implemented.');\n }\n updateSearchIndex(_name: string, _definition: Document): Promise<void> {\n throw new Error('Method not implemented.');\n }\n\n async createCollection(): Promise<void> {\n await this.collection.createCollection();\n }\n async handle(\n id: ObjectId,\n handle: DocumentHandler<T>,\n options?: HandleOptions,\n ): Promise<PongoHandleResult<T>> {\n return this.collection.handle(id.toString(), handle, options);\n }\n}\n","import type { Collection as MongoCollection, ObjectId } from 'mongodb';\nimport type { Document } from 'mongodb';\nimport type {\n DocumentHandler,\n HandleOptions,\n PongoDb,\n PongoDBCollectionOptions,\n PongoHandleResult,\n} from '../core';\nimport { Collection } from './mongoCollection';\n\nexport class Db {\n private pongoDb: PongoDb;\n constructor(pongoDb: PongoDb) {\n this.pongoDb = pongoDb;\n }\n\n get databaseName(): string {\n return this.pongoDb.databaseName;\n }\n\n collection<T extends Document>(\n collectionName: string,\n options?: PongoDBCollectionOptions<T>,\n ): MongoCollection<T> & {\n handle(\n id: ObjectId,\n handle: DocumentHandler<T>,\n options?: HandleOptions,\n ): Promise<PongoHandleResult<T>>;\n } {\n return new Collection<T>(\n this,\n this.pongoDb.collection<T>(collectionName, options),\n );\n }\n}\n","import {\n parseConnectionString,\n toDatabaseDriverType,\n} from '@event-driven-io/dumbo';\nimport type { ClientSessionOptions } from 'http2';\nimport type { ClientSession, WithSessionCallback } from 'mongodb';\nimport {\n pongoClient,\n pongoSession,\n type AnyPongoDriver,\n type PongoClient,\n type PongoClientOptions,\n type PongoClientSchema,\n} from '../core';\nimport { Db } from './mongoDb';\n\nexport class MongoClient<\n DatabaseDriverType extends AnyPongoDriver = AnyPongoDriver,\n TypedClientSchema extends PongoClientSchema = PongoClientSchema,\n> {\n private pongoClient: PongoClient;\n\n constructor(\n options: PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n );\n constructor(\n connectionString: string,\n options?: Omit<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n 'connectionString'\n > & {\n driver?: AnyPongoDriver;\n },\n );\n constructor(\n connectionStringOrOptions:\n string | PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n options?: Omit<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n 'connectionString'\n > & {\n driver?: AnyPongoDriver;\n },\n ) {\n if (typeof connectionStringOrOptions !== 'string') {\n this.pongoClient = pongoClient(connectionStringOrOptions);\n return;\n }\n\n const { databaseType, driverName } = parseConnectionString(\n connectionStringOrOptions,\n );\n\n const driver =\n options?.driver ??\n pongoDriverRegistry.tryGet(\n toDatabaseDriverType(databaseType, driverName),\n );\n\n if (driver === null) {\n throw new Error(\n `No database driver registered for ${databaseType} with name ${driverName}`,\n );\n }\n\n this.pongoClient = pongoClient({\n ...(options ?? {}),\n ...{ connectionString: connectionStringOrOptions },\n driver,\n } as unknown as PongoClientOptions<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>['driver'] &\n AnyPongoDriver,\n TypedClientSchema\n >);\n }\n\n async connect() {\n await this.pongoClient.connect();\n return this;\n }\n\n async close() {\n await this.pongoClient.close();\n }\n\n db(dbName?: string): Db {\n return new Db(this.pongoClient.db(dbName));\n }\n startSession(_options?: ClientSessionOptions): ClientSession {\n return pongoSession() as unknown as ClientSession;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withSession<T = any>(_executor: WithSessionCallback<T>): Promise<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withSession<T = any>(\n _options: ClientSessionOptions,\n _executor: WithSessionCallback<T>,\n ): Promise<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async withSession<T = any>(\n optionsOrExecutor: ClientSessionOptions | WithSessionCallback<T>,\n executor?: WithSessionCallback<T>,\n ): Promise<T> {\n const callback =\n typeof optionsOrExecutor === 'function' ? optionsOrExecutor : executor!;\n\n const session = pongoSession() as unknown as ClientSession;\n\n try {\n return await callback(session);\n } finally {\n await session.endSession();\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/shim.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { G as DocumentHandler,
|
|
1
|
+
import { G as DocumentHandler, Q as HandleOptions, Qt as AnyPongoDriver, Tt as PongoHandleResult, _t as PongoDb, gt as PongoDBCollectionOptions, ht as PongoCollection, mn as PongoClientSchema, mt as PongoClientOptions } from "./index-C3pnS1S_.cjs";
|
|
2
2
|
import { ClientSessionOptions } from "http2";
|
|
3
3
|
import { AbstractCursorOptions, AggregateOptions, AggregationCursor, AnyBulkWriteOperation, BSONSerializeOptions, BulkWriteOptions, BulkWriteResult, ChangeStream, ChangeStreamDocument, ChangeStreamOptions, ClientSession, Collection as Collection$1, CommandOperationOptions, CountDocumentsOptions, CountOptions, CreateIndexesOptions, Db as Db$1, DeleteOptions, DeleteResult, Document, DropCollectionOptions, EnhancedOmit, EstimatedDocumentCountOptions, Filter, FindCursor as FindCursor$1, FindOneAndDeleteOptions, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, Flatten, Hint, IndexDescription, IndexDescriptionCompact, IndexDescriptionInfo, IndexInformationOptions, IndexSpecification, InsertManyResult, InsertOneOptions, InsertOneResult, ListIndexesCursor, ListSearchIndexesCursor, ListSearchIndexesOptions, ModifyResult, ObjectId, OperationOptions, OptionalUnlessRequiredId, OrderedBulkOperation, ReadConcern, ReadPreference, RenameOptions, ReplaceOptions, SearchIndexDescription, UnorderedBulkOperation, UpdateFilter, UpdateOptions, UpdateResult, WithId, WithSessionCallback, WithoutId, WriteConcern } from "mongodb";
|
|
4
4
|
|
package/dist/shim.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { G as DocumentHandler,
|
|
1
|
+
import { G as DocumentHandler, Q as HandleOptions, Qt as AnyPongoDriver, Tt as PongoHandleResult, _t as PongoDb, gt as PongoDBCollectionOptions, ht as PongoCollection, mn as PongoClientSchema, mt as PongoClientOptions } from "./index-r7V4paf_.js";
|
|
2
2
|
import { ClientSessionOptions } from "http2";
|
|
3
3
|
import { AbstractCursorOptions, AggregateOptions, AggregationCursor, AnyBulkWriteOperation, BSONSerializeOptions, BulkWriteOptions, BulkWriteResult, ChangeStream, ChangeStreamDocument, ChangeStreamOptions, ClientSession, Collection as Collection$1, CommandOperationOptions, CountDocumentsOptions, CountOptions, CreateIndexesOptions, Db as Db$1, DeleteOptions, DeleteResult, Document, DropCollectionOptions, EnhancedOmit, EstimatedDocumentCountOptions, Filter, FindCursor as FindCursor$1, FindOneAndDeleteOptions, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, Flatten, Hint, IndexDescription, IndexDescriptionCompact, IndexDescriptionInfo, IndexInformationOptions, IndexSpecification, InsertManyResult, InsertOneOptions, InsertOneResult, ListIndexesCursor, ListSearchIndexesCursor, ListSearchIndexesOptions, ModifyResult, ObjectId, OperationOptions, OptionalUnlessRequiredId, OrderedBulkOperation, ReadConcern, ReadPreference, RenameOptions, ReplaceOptions, SearchIndexDescription, UnorderedBulkOperation, UpdateFilter, UpdateOptions, UpdateResult, WithId, WithSessionCallback, WithoutId, WriteConcern } from "mongodb";
|
|
4
4
|
|
package/dist/shim.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as pongoClient, s as pongoSession } from "./core-
|
|
1
|
+
import { o as pongoClient, s as pongoSession } from "./core-BHdOCUrr.js";
|
|
2
2
|
import { parseConnectionString, toDatabaseDriverType } from "@event-driven-io/dumbo";
|
|
3
3
|
|
|
4
4
|
//#region src/mongo/findCursor.ts
|
|
@@ -95,22 +95,32 @@ var Collection = class {
|
|
|
95
95
|
const result = await this.collection.updateOne(filter, update, toCollectionOperationOptions(options));
|
|
96
96
|
return {
|
|
97
97
|
acknowledged: result.acknowledged,
|
|
98
|
-
matchedCount: result.
|
|
98
|
+
matchedCount: result.matchedCount,
|
|
99
99
|
modifiedCount: result.modifiedCount,
|
|
100
|
-
upsertedCount: result.
|
|
101
|
-
upsertedId:
|
|
100
|
+
upsertedCount: result.upsertedCount,
|
|
101
|
+
upsertedId: result.upsertedId
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
|
-
replaceOne(filter, document, options) {
|
|
105
|
-
|
|
104
|
+
async replaceOne(filter, document, options) {
|
|
105
|
+
const result = await this.collection.replaceOne(filter, document, {
|
|
106
|
+
...toCollectionOperationOptions(options),
|
|
107
|
+
upsert: options?.upsert ?? false
|
|
108
|
+
});
|
|
109
|
+
return {
|
|
110
|
+
acknowledged: result.acknowledged,
|
|
111
|
+
matchedCount: result.matchedCount,
|
|
112
|
+
modifiedCount: result.modifiedCount,
|
|
113
|
+
upsertedCount: result.upsertedCount,
|
|
114
|
+
upsertedId: result.upsertedId
|
|
115
|
+
};
|
|
106
116
|
}
|
|
107
117
|
async updateMany(filter, update, options) {
|
|
108
118
|
const result = await this.collection.updateMany(filter, update, toCollectionOperationOptions(options));
|
|
109
119
|
return {
|
|
110
120
|
acknowledged: result.acknowledged,
|
|
111
|
-
matchedCount: result.
|
|
121
|
+
matchedCount: result.matchedCount,
|
|
112
122
|
modifiedCount: result.modifiedCount,
|
|
113
|
-
upsertedCount:
|
|
123
|
+
upsertedCount: 0,
|
|
114
124
|
upsertedId: null
|
|
115
125
|
};
|
|
116
126
|
}
|
package/dist/shim.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shim.js","names":[],"sources":["../src/mongo/findCursor.ts","../src/mongo/mongoCollection.ts","../src/mongo/mongoDb.ts","../src/mongo/mongoClient.ts"],"sourcesContent":["export class FindCursor<T> {\n private findDocumentsPromise: Promise<T[]>;\n private documents: T[] | null = null;\n private index: number = 0;\n\n constructor(documents: Promise<T[]>) {\n this.findDocumentsPromise = documents;\n }\n\n async toArray(): Promise<T[]> {\n return this.findDocuments();\n }\n\n async forEach(callback: (doc: T) => void): Promise<void> {\n const docs = await this.findDocuments();\n\n for (const doc of docs) {\n callback(doc);\n }\n return Promise.resolve();\n }\n\n hasNext(): boolean {\n if (this.documents === null) throw Error('Error while fetching documents');\n return this.index < this.documents.length;\n }\n\n async next(): Promise<T | null> {\n const docs = await this.findDocuments();\n return this.hasNext() ? (docs[this.index++] ?? null) : null;\n }\n\n private async findDocuments(): Promise<T[]> {\n this.documents = await this.findDocumentsPromise;\n return this.documents;\n }\n}\n","import type {\n AbstractCursorOptions,\n AggregateOptions,\n AggregationCursor,\n AnyBulkWriteOperation,\n BSONSerializeOptions,\n BulkWriteOptions,\n BulkWriteResult,\n ChangeStream,\n ChangeStreamDocument,\n ChangeStreamOptions,\n CommandOperationOptions,\n CountDocumentsOptions,\n CountOptions,\n CreateIndexesOptions,\n Db,\n DeleteOptions,\n DeleteResult,\n Document,\n DropCollectionOptions,\n EnhancedOmit,\n EstimatedDocumentCountOptions,\n Filter,\n FindOneAndDeleteOptions,\n FindOneAndReplaceOptions,\n FindOneAndUpdateOptions,\n FindOptions,\n Flatten,\n Hint,\n IndexDescription,\n IndexDescriptionCompact,\n IndexDescriptionInfo,\n IndexInformationOptions,\n IndexSpecification,\n InferIdType,\n InsertManyResult,\n InsertOneOptions,\n InsertOneResult,\n ListIndexesCursor,\n ListSearchIndexesCursor,\n ListSearchIndexesOptions,\n ModifyResult,\n Collection as MongoCollection,\n FindCursor as MongoFindCursor,\n ObjectId,\n OperationOptions,\n OptionalUnlessRequiredId,\n OrderedBulkOperation,\n ReadConcern,\n ReadPreference,\n RenameOptions,\n ReplaceOptions,\n SearchIndexDescription,\n UnorderedBulkOperation,\n UpdateFilter,\n UpdateOptions,\n UpdateResult,\n WithId,\n WithoutId,\n WriteConcern,\n} from 'mongodb';\nimport type { Key } from 'readline';\nimport type {\n CollectionOperationOptions,\n DocumentHandler,\n HandleOptions,\n PongoCollection,\n PongoFilter,\n FindOptions as PongoFindOptions,\n PongoHandleResult,\n OptionalUnlessRequiredId as PongoOptionalUnlessRequiredId,\n PongoSession,\n PongoUpdate,\n} from '../core';\nimport type { Db as ShimDb } from '../shim';\nimport { FindCursor } from './findCursor';\n\nconst toCollectionOperationOptions = (\n options: OperationOptions | undefined,\n): CollectionOperationOptions | undefined =>\n options?.session\n ? { session: options.session as unknown as PongoSession }\n : undefined;\n\nconst toFindOptions = (\n options: FindOptions | undefined,\n): PongoFindOptions | undefined => {\n if (\n !options?.session &&\n !options?.limit &&\n !options?.skip &&\n !options?.sort\n ) {\n return undefined;\n }\n\n const pongoFindOptions: PongoFindOptions = {};\n\n if (options?.session) {\n pongoFindOptions.session = options.session as unknown as PongoSession;\n }\n if (options?.limit !== undefined) {\n pongoFindOptions.limit = options.limit;\n }\n if (options?.skip !== undefined) {\n pongoFindOptions.skip = options.skip;\n }\n if (options?.sort !== undefined) {\n pongoFindOptions.sort = options.sort as { [field: string]: 1 | -1 };\n }\n\n return pongoFindOptions;\n};\n\nexport class Collection<T extends Document> implements MongoCollection<T> {\n private collection: PongoCollection<T>;\n private database: ShimDb;\n\n constructor(database: ShimDb, collection: PongoCollection<T>) {\n this.collection = collection;\n this.database = database;\n }\n get db(): Db {\n return this.database as unknown as Db;\n }\n get dbName(): string {\n return this.collection.dbName;\n }\n get collectionName(): string {\n return this.collection.collectionName;\n }\n get namespace(): string {\n return `${this.dbName}.${this.collectionName}`;\n }\n get readConcern(): ReadConcern | undefined {\n return undefined;\n }\n get readPreference(): ReadPreference | undefined {\n return undefined;\n }\n get bsonOptions(): BSONSerializeOptions {\n return {};\n }\n get writeConcern(): WriteConcern | undefined {\n return undefined;\n }\n get hint(): Hint | undefined {\n return undefined;\n }\n get timeoutMS(): number | undefined {\n return undefined;\n }\n set hint(v: Hint | undefined) {\n throw new Error('Method not implemented.');\n }\n async insertOne(\n doc: OptionalUnlessRequiredId<T>,\n options?: InsertOneOptions,\n ): Promise<InsertOneResult<T>> {\n const result = await this.collection.insertOne(\n doc as unknown as PongoOptionalUnlessRequiredId<T>,\n toCollectionOperationOptions(options),\n );\n return {\n acknowledged: result.acknowledged,\n insertedId: result.insertedId as unknown as InferIdType<T>,\n };\n }\n async insertMany(\n docs: OptionalUnlessRequiredId<T>[],\n options?: BulkWriteOptions,\n ): Promise<InsertManyResult<T>> {\n const result = await this.collection.insertMany(\n docs as unknown as PongoOptionalUnlessRequiredId<T>[],\n toCollectionOperationOptions(options),\n );\n return {\n acknowledged: result.acknowledged,\n insertedIds: result.insertedIds as unknown as InferIdType<T>[],\n insertedCount: result.insertedCount,\n };\n }\n bulkWrite(\n _operations: AnyBulkWriteOperation<T>[],\n _options?: BulkWriteOptions,\n ): Promise<BulkWriteResult> {\n throw new Error('Method not implemented.');\n }\n async updateOne(\n filter: Filter<T>,\n update: Document[] | UpdateFilter<T>,\n options?: UpdateOptions,\n ): Promise<UpdateResult<T>> {\n const result = await this.collection.updateOne(\n filter as unknown as PongoFilter<T>,\n update as unknown as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n matchedCount: result.modifiedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.modifiedCount,\n upsertedId: null,\n };\n }\n replaceOne(\n filter: Filter<T>,\n document: WithoutId<T>,\n options?: ReplaceOptions,\n ): Promise<UpdateResult<T>> {\n return this.collection.replaceOne(\n filter as unknown as PongoFilter<T>,\n document,\n toCollectionOperationOptions(options),\n ) as unknown as Promise<UpdateResult<T>>;\n }\n async updateMany(\n filter: Filter<T>,\n update: Document[] | UpdateFilter<T>,\n options?: UpdateOptions,\n ): Promise<UpdateResult<T>> {\n const result = await this.collection.updateMany(\n filter as unknown as PongoFilter<T>,\n update as unknown as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n matchedCount: result.modifiedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.modifiedCount,\n upsertedId: null,\n };\n }\n async deleteOne(\n filter?: Filter<T>,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n const result = await this.collection.deleteOne(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n deletedCount: result.deletedCount,\n };\n }\n async deleteMany(\n filter?: Filter<T>,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n const result = await this.collection.deleteMany(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n deletedCount: result.deletedCount,\n };\n }\n async rename(\n newName: string,\n options?: RenameOptions,\n ): Promise<Collection<Document>> {\n await this.collection.rename(\n newName,\n toCollectionOperationOptions(options),\n );\n\n return this as unknown as Collection<Document>;\n }\n drop(options?: DropCollectionOptions): Promise<boolean> {\n return this.collection.drop(toCollectionOperationOptions(options));\n }\n findOne(): Promise<WithId<T> | null>;\n findOne(filter: Filter<T>): Promise<WithId<T> | null>;\n findOne(filter: Filter<T>, options: FindOptions): Promise<WithId<T> | null>;\n findOne<TS = T>(): Promise<TS | null>;\n findOne<TS = T>(filter: Filter<TS>): Promise<TS | null>;\n findOne<TS = T>(\n filter: Filter<TS>,\n options?: FindOptions,\n ): Promise<TS | null>;\n async findOne(\n filter?: unknown,\n options?: FindOptions,\n ): Promise<WithId<T> | T | null> {\n return await this.collection.findOne(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n }\n find(): MongoFindCursor<WithId<T>>;\n find(filter: Filter<T>, options?: FindOptions): MongoFindCursor<WithId<T>>;\n find<T extends Document>(\n filter: Filter<T>,\n options?: FindOptions,\n ): MongoFindCursor<T>;\n find(\n filter?: unknown,\n options?: FindOptions,\n ): MongoFindCursor<WithId<T>> | MongoFindCursor<T> {\n return new FindCursor(\n this.collection.find(filter as PongoFilter<T>, toFindOptions(options)),\n ) as unknown as MongoFindCursor<T>;\n }\n options(_options?: OperationOptions): Promise<Document> {\n throw new Error('Method not implemented.');\n }\n isCapped(_options?: OperationOptions): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n createIndex(\n _indexSpec: IndexSpecification,\n _options?: CreateIndexesOptions,\n ): Promise<string> {\n throw new Error('Method not implemented.');\n }\n createIndexes(\n _indexSpecs: IndexDescription[],\n _options?: CreateIndexesOptions,\n ): Promise<string[]> {\n throw new Error('Method not implemented.');\n }\n dropIndex(\n _indexName: string,\n _options?: CommandOperationOptions,\n ): Promise<Document> {\n throw new Error('Method not implemented.');\n }\n dropIndexes(_options?: CommandOperationOptions): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n listIndexes(_options?: AbstractCursorOptions): ListIndexesCursor {\n throw new Error('Method not implemented.');\n }\n indexExists(\n _indexes: string | string[],\n _options?: AbstractCursorOptions,\n ): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n indexInformation(\n options: IndexInformationOptions & { full: true },\n ): Promise<IndexDescriptionInfo[]>;\n indexInformation(\n options: IndexInformationOptions & { full?: false | undefined },\n ): Promise<IndexDescriptionCompact>;\n indexInformation(\n options: IndexInformationOptions,\n ): Promise<IndexDescriptionCompact | IndexDescriptionInfo[]>;\n indexInformation(): Promise<IndexDescriptionCompact>;\n indexInformation(\n _options?: unknown,\n ):\n | Promise<IndexDescriptionInfo[]>\n | Promise<IndexDescriptionCompact>\n | Promise<IndexDescriptionCompact | IndexDescriptionInfo[]> {\n throw new Error('Method not implemented.');\n }\n estimatedDocumentCount(\n options?: EstimatedDocumentCountOptions,\n ): Promise<number> {\n return this.collection.countDocuments(\n {},\n toCollectionOperationOptions(options),\n );\n }\n countDocuments(\n filter?: Filter<T>,\n options?: CountDocumentsOptions,\n ): Promise<number> {\n return this.collection.countDocuments(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n }\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n filter: Filter<T>,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n filter: Filter<T>,\n options: CommandOperationOptions,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n distinct(key: string): Promise<any[]>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n distinct(key: string, filter: Filter<T>): Promise<any[]>;\n distinct(\n key: string,\n filter: Filter<T>,\n options: CommandOperationOptions, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<any[]>;\n distinct(\n _key: unknown,\n _filter?: unknown,\n _options?: unknown,\n ):\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-imports\n Promise<any[]> | Promise<import('mongodb').Flatten<WithId<T>[Key]>[]> {\n throw new Error('Method not implemented.');\n }\n indexes(\n options: IndexInformationOptions & { full?: true | undefined },\n ): Promise<IndexDescriptionInfo[]>;\n indexes(\n options: IndexInformationOptions & { full: false },\n ): Promise<IndexDescriptionCompact>;\n indexes(\n options: IndexInformationOptions,\n ): Promise<IndexDescriptionCompact | IndexDescriptionInfo[]>;\n indexes(options?: AbstractCursorOptions): Promise<IndexDescriptionInfo[]>;\n indexes(\n _options?: unknown,\n ):\n | Promise<IndexDescriptionInfo[]>\n | Promise<IndexDescriptionCompact>\n | Promise<IndexDescriptionCompact | IndexDescriptionInfo[]> {\n throw new Error('Method not implemented.');\n }\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions,\n ): Promise<WithId<T> | null>;\n findOneAndDelete(filter: Filter<T>): Promise<WithId<T> | null>;\n findOneAndDelete(\n filter: unknown,\n options?: FindOneAndDeleteOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndDelete(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions,\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: unknown,\n replacement: unknown,\n options?: FindOneAndReplaceOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndReplace(\n filter as PongoFilter<T>,\n replacement as WithoutId<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions,\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: unknown,\n update: unknown,\n options?: FindOneAndUpdateOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndUpdate(\n filter as PongoFilter<T>,\n update as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n aggregate<T extends Document = Document>(\n _pipeline?: Document[],\n _options?: AggregateOptions,\n ): AggregationCursor<T> {\n throw new Error('Method not implemented.');\n }\n watch<\n TLocal extends Document = T,\n TChange extends Document = ChangeStreamDocument<TLocal>,\n >(\n _pipeline?: Document[],\n _options?: ChangeStreamOptions,\n ): ChangeStream<TLocal, TChange> {\n throw new Error('Method not implemented.');\n }\n initializeUnorderedBulkOp(\n _options?: BulkWriteOptions,\n ): UnorderedBulkOperation {\n throw new Error('Method not implemented.');\n }\n initializeOrderedBulkOp(_options?: BulkWriteOptions): OrderedBulkOperation {\n throw new Error('Method not implemented.');\n }\n count(filter?: Filter<T>, options?: CountOptions): Promise<number> {\n return this.collection.countDocuments(\n (filter as PongoFilter<T>) ?? {},\n toCollectionOperationOptions(options),\n );\n }\n listSearchIndexes(\n options?: ListSearchIndexesOptions,\n ): ListSearchIndexesCursor;\n listSearchIndexes(\n name: string,\n options?: ListSearchIndexesOptions,\n ): ListSearchIndexesCursor;\n listSearchIndexes(\n _name?: unknown,\n _options?: unknown,\n ): ListSearchIndexesCursor {\n throw new Error('Method not implemented.');\n }\n createSearchIndex(_description: SearchIndexDescription): Promise<string> {\n throw new Error('Method not implemented.');\n }\n createSearchIndexes(\n _descriptions: SearchIndexDescription[],\n ): Promise<string[]> {\n throw new Error('Method not implemented.');\n }\n dropSearchIndex(_name: string): Promise<void> {\n throw new Error('Method not implemented.');\n }\n updateSearchIndex(_name: string, _definition: Document): Promise<void> {\n throw new Error('Method not implemented.');\n }\n\n async createCollection(): Promise<void> {\n await this.collection.createCollection();\n }\n async handle(\n id: ObjectId,\n handle: DocumentHandler<T>,\n options?: HandleOptions,\n ): Promise<PongoHandleResult<T>> {\n return this.collection.handle(id.toString(), handle, options);\n }\n}\n","import type { Collection as MongoCollection, ObjectId } from 'mongodb';\nimport type { Document } from 'mongodb';\nimport type {\n DocumentHandler,\n HandleOptions,\n PongoDb,\n PongoDBCollectionOptions,\n PongoHandleResult,\n} from '../core';\nimport { Collection } from './mongoCollection';\n\nexport class Db {\n private pongoDb: PongoDb;\n constructor(pongoDb: PongoDb) {\n this.pongoDb = pongoDb;\n }\n\n get databaseName(): string {\n return this.pongoDb.databaseName;\n }\n\n collection<T extends Document>(\n collectionName: string,\n options?: PongoDBCollectionOptions<T>,\n ): MongoCollection<T> & {\n handle(\n id: ObjectId,\n handle: DocumentHandler<T>,\n options?: HandleOptions,\n ): Promise<PongoHandleResult<T>>;\n } {\n return new Collection<T>(\n this,\n this.pongoDb.collection<T>(collectionName, options),\n );\n }\n}\n","import {\n parseConnectionString,\n toDatabaseDriverType,\n} from '@event-driven-io/dumbo';\nimport type { ClientSessionOptions } from 'http2';\nimport type { ClientSession, WithSessionCallback } from 'mongodb';\nimport {\n pongoClient,\n pongoSession,\n type AnyPongoDriver,\n type PongoClient,\n type PongoClientOptions,\n type PongoClientSchema,\n} from '../core';\nimport { Db } from './mongoDb';\n\nexport class MongoClient<\n DatabaseDriverType extends AnyPongoDriver = AnyPongoDriver,\n TypedClientSchema extends PongoClientSchema = PongoClientSchema,\n> {\n private pongoClient: PongoClient;\n\n constructor(\n options: PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n );\n constructor(\n connectionString: string,\n options?: Omit<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n 'connectionString'\n > & {\n driver?: AnyPongoDriver;\n },\n );\n constructor(\n connectionStringOrOptions:\n string | PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n options?: Omit<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n 'connectionString'\n > & {\n driver?: AnyPongoDriver;\n },\n ) {\n if (typeof connectionStringOrOptions !== 'string') {\n this.pongoClient = pongoClient(connectionStringOrOptions);\n return;\n }\n\n const { databaseType, driverName } = parseConnectionString(\n connectionStringOrOptions,\n );\n\n const driver =\n options?.driver ??\n pongoDriverRegistry.tryGet(\n toDatabaseDriverType(databaseType, driverName),\n );\n\n if (driver === null) {\n throw new Error(\n `No database driver registered for ${databaseType} with name ${driverName}`,\n );\n }\n\n this.pongoClient = pongoClient({\n ...(options ?? {}),\n ...{ connectionString: connectionStringOrOptions },\n driver,\n } as unknown as PongoClientOptions<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>['driver'] &\n AnyPongoDriver,\n TypedClientSchema\n >);\n }\n\n async connect() {\n await this.pongoClient.connect();\n return this;\n }\n\n async close() {\n await this.pongoClient.close();\n }\n\n db(dbName?: string): Db {\n return new Db(this.pongoClient.db(dbName));\n }\n startSession(_options?: ClientSessionOptions): ClientSession {\n return pongoSession() as unknown as ClientSession;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withSession<T = any>(_executor: WithSessionCallback<T>): Promise<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withSession<T = any>(\n _options: ClientSessionOptions,\n _executor: WithSessionCallback<T>,\n ): Promise<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async withSession<T = any>(\n optionsOrExecutor: ClientSessionOptions | WithSessionCallback<T>,\n executor?: WithSessionCallback<T>,\n ): Promise<T> {\n const callback =\n typeof optionsOrExecutor === 'function' ? optionsOrExecutor : executor!;\n\n const session = pongoSession() as unknown as ClientSession;\n\n try {\n return await callback(session);\n } finally {\n await session.endSession();\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shim.js","names":[],"sources":["../src/mongo/findCursor.ts","../src/mongo/mongoCollection.ts","../src/mongo/mongoDb.ts","../src/mongo/mongoClient.ts"],"sourcesContent":["export class FindCursor<T> {\n private findDocumentsPromise: Promise<T[]>;\n private documents: T[] | null = null;\n private index: number = 0;\n\n constructor(documents: Promise<T[]>) {\n this.findDocumentsPromise = documents;\n }\n\n async toArray(): Promise<T[]> {\n return this.findDocuments();\n }\n\n async forEach(callback: (doc: T) => void): Promise<void> {\n const docs = await this.findDocuments();\n\n for (const doc of docs) {\n callback(doc);\n }\n return Promise.resolve();\n }\n\n hasNext(): boolean {\n if (this.documents === null) throw Error('Error while fetching documents');\n return this.index < this.documents.length;\n }\n\n async next(): Promise<T | null> {\n const docs = await this.findDocuments();\n return this.hasNext() ? (docs[this.index++] ?? null) : null;\n }\n\n private async findDocuments(): Promise<T[]> {\n this.documents = await this.findDocumentsPromise;\n return this.documents;\n }\n}\n","import type {\n AbstractCursorOptions,\n AggregateOptions,\n AggregationCursor,\n AnyBulkWriteOperation,\n BSONSerializeOptions,\n BulkWriteOptions,\n BulkWriteResult,\n ChangeStream,\n ChangeStreamDocument,\n ChangeStreamOptions,\n CommandOperationOptions,\n CountDocumentsOptions,\n CountOptions,\n CreateIndexesOptions,\n Db,\n DeleteOptions,\n DeleteResult,\n Document,\n DropCollectionOptions,\n EnhancedOmit,\n EstimatedDocumentCountOptions,\n Filter,\n FindOneAndDeleteOptions,\n FindOneAndReplaceOptions,\n FindOneAndUpdateOptions,\n FindOptions,\n Flatten,\n Hint,\n IndexDescription,\n IndexDescriptionCompact,\n IndexDescriptionInfo,\n IndexInformationOptions,\n IndexSpecification,\n InferIdType,\n InsertManyResult,\n InsertOneOptions,\n InsertOneResult,\n ListIndexesCursor,\n ListSearchIndexesCursor,\n ListSearchIndexesOptions,\n ModifyResult,\n Collection as MongoCollection,\n FindCursor as MongoFindCursor,\n ObjectId,\n OperationOptions,\n OptionalUnlessRequiredId,\n OrderedBulkOperation,\n ReadConcern,\n ReadPreference,\n RenameOptions,\n ReplaceOptions,\n SearchIndexDescription,\n UnorderedBulkOperation,\n UpdateFilter,\n UpdateOptions,\n UpdateResult,\n WithId,\n WithoutId,\n WriteConcern,\n} from 'mongodb';\nimport type { Key } from 'readline';\nimport type {\n CollectionOperationOptions,\n DocumentHandler,\n HandleOptions,\n PongoCollection,\n PongoFilter,\n FindOptions as PongoFindOptions,\n PongoHandleResult,\n OptionalUnlessRequiredId as PongoOptionalUnlessRequiredId,\n PongoSession,\n PongoUpdate,\n} from '../core';\nimport type { Db as ShimDb } from '../shim';\nimport { FindCursor } from './findCursor';\n\nconst toCollectionOperationOptions = (\n options: OperationOptions | undefined,\n): CollectionOperationOptions | undefined =>\n options?.session\n ? { session: options.session as unknown as PongoSession }\n : undefined;\n\nconst toFindOptions = (\n options: FindOptions | undefined,\n): PongoFindOptions | undefined => {\n if (\n !options?.session &&\n !options?.limit &&\n !options?.skip &&\n !options?.sort\n ) {\n return undefined;\n }\n\n const pongoFindOptions: PongoFindOptions = {};\n\n if (options?.session) {\n pongoFindOptions.session = options.session as unknown as PongoSession;\n }\n if (options?.limit !== undefined) {\n pongoFindOptions.limit = options.limit;\n }\n if (options?.skip !== undefined) {\n pongoFindOptions.skip = options.skip;\n }\n if (options?.sort !== undefined) {\n pongoFindOptions.sort = options.sort as { [field: string]: 1 | -1 };\n }\n\n return pongoFindOptions;\n};\n\nexport class Collection<T extends Document> implements MongoCollection<T> {\n private collection: PongoCollection<T>;\n private database: ShimDb;\n\n constructor(database: ShimDb, collection: PongoCollection<T>) {\n this.collection = collection;\n this.database = database;\n }\n get db(): Db {\n return this.database as unknown as Db;\n }\n get dbName(): string {\n return this.collection.dbName;\n }\n get collectionName(): string {\n return this.collection.collectionName;\n }\n get namespace(): string {\n return `${this.dbName}.${this.collectionName}`;\n }\n get readConcern(): ReadConcern | undefined {\n return undefined;\n }\n get readPreference(): ReadPreference | undefined {\n return undefined;\n }\n get bsonOptions(): BSONSerializeOptions {\n return {};\n }\n get writeConcern(): WriteConcern | undefined {\n return undefined;\n }\n get hint(): Hint | undefined {\n return undefined;\n }\n get timeoutMS(): number | undefined {\n return undefined;\n }\n set hint(v: Hint | undefined) {\n throw new Error('Method not implemented.');\n }\n async insertOne(\n doc: OptionalUnlessRequiredId<T>,\n options?: InsertOneOptions,\n ): Promise<InsertOneResult<T>> {\n const result = await this.collection.insertOne(\n doc as unknown as PongoOptionalUnlessRequiredId<T>,\n toCollectionOperationOptions(options),\n );\n return {\n acknowledged: result.acknowledged,\n insertedId: result.insertedId as unknown as InferIdType<T>,\n };\n }\n async insertMany(\n docs: OptionalUnlessRequiredId<T>[],\n options?: BulkWriteOptions,\n ): Promise<InsertManyResult<T>> {\n const result = await this.collection.insertMany(\n docs as unknown as PongoOptionalUnlessRequiredId<T>[],\n toCollectionOperationOptions(options),\n );\n return {\n acknowledged: result.acknowledged,\n insertedIds: result.insertedIds as unknown as InferIdType<T>[],\n insertedCount: result.insertedCount,\n };\n }\n bulkWrite(\n _operations: AnyBulkWriteOperation<T>[],\n _options?: BulkWriteOptions,\n ): Promise<BulkWriteResult> {\n throw new Error('Method not implemented.');\n }\n async updateOne(\n filter: Filter<T>,\n update: Document[] | UpdateFilter<T>,\n options?: UpdateOptions,\n ): Promise<UpdateResult<T>> {\n const result = await this.collection.updateOne(\n filter as unknown as PongoFilter<T>,\n update as unknown as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.upsertedCount,\n upsertedId: result.upsertedId as unknown as InferIdType<T>,\n };\n }\n async replaceOne(\n filter: Filter<T>,\n document: WithoutId<T>,\n options?: ReplaceOptions,\n ): Promise<UpdateResult<T>> {\n const result = await this.collection.replaceOne(\n filter as unknown as PongoFilter<T>,\n document,\n {\n ...toCollectionOperationOptions(options),\n upsert: options?.upsert ?? false,\n },\n );\n\n return {\n acknowledged: result.acknowledged,\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.upsertedCount,\n upsertedId: result.upsertedId as unknown as InferIdType<T>,\n };\n }\n async updateMany(\n filter: Filter<T>,\n update: Document[] | UpdateFilter<T>,\n options?: UpdateOptions,\n ): Promise<UpdateResult<T>> {\n const result = await this.collection.updateMany(\n filter as unknown as PongoFilter<T>,\n update as unknown as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: 0,\n upsertedId: null,\n };\n }\n async deleteOne(\n filter?: Filter<T>,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n const result = await this.collection.deleteOne(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n deletedCount: result.deletedCount,\n };\n }\n async deleteMany(\n filter?: Filter<T>,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n const result = await this.collection.deleteMany(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n\n return {\n acknowledged: result.acknowledged,\n deletedCount: result.deletedCount,\n };\n }\n async rename(\n newName: string,\n options?: RenameOptions,\n ): Promise<Collection<Document>> {\n await this.collection.rename(\n newName,\n toCollectionOperationOptions(options),\n );\n\n return this as unknown as Collection<Document>;\n }\n drop(options?: DropCollectionOptions): Promise<boolean> {\n return this.collection.drop(toCollectionOperationOptions(options));\n }\n findOne(): Promise<WithId<T> | null>;\n findOne(filter: Filter<T>): Promise<WithId<T> | null>;\n findOne(filter: Filter<T>, options: FindOptions): Promise<WithId<T> | null>;\n findOne<TS = T>(): Promise<TS | null>;\n findOne<TS = T>(filter: Filter<TS>): Promise<TS | null>;\n findOne<TS = T>(\n filter: Filter<TS>,\n options?: FindOptions,\n ): Promise<TS | null>;\n async findOne(\n filter?: unknown,\n options?: FindOptions,\n ): Promise<WithId<T> | T | null> {\n return await this.collection.findOne(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n }\n find(): MongoFindCursor<WithId<T>>;\n find(filter: Filter<T>, options?: FindOptions): MongoFindCursor<WithId<T>>;\n find<T extends Document>(\n filter: Filter<T>,\n options?: FindOptions,\n ): MongoFindCursor<T>;\n find(\n filter?: unknown,\n options?: FindOptions,\n ): MongoFindCursor<WithId<T>> | MongoFindCursor<T> {\n return new FindCursor(\n this.collection.find(filter as PongoFilter<T>, toFindOptions(options)),\n ) as unknown as MongoFindCursor<T>;\n }\n options(_options?: OperationOptions): Promise<Document> {\n throw new Error('Method not implemented.');\n }\n isCapped(_options?: OperationOptions): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n createIndex(\n _indexSpec: IndexSpecification,\n _options?: CreateIndexesOptions,\n ): Promise<string> {\n throw new Error('Method not implemented.');\n }\n createIndexes(\n _indexSpecs: IndexDescription[],\n _options?: CreateIndexesOptions,\n ): Promise<string[]> {\n throw new Error('Method not implemented.');\n }\n dropIndex(\n _indexName: string,\n _options?: CommandOperationOptions,\n ): Promise<Document> {\n throw new Error('Method not implemented.');\n }\n dropIndexes(_options?: CommandOperationOptions): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n listIndexes(_options?: AbstractCursorOptions): ListIndexesCursor {\n throw new Error('Method not implemented.');\n }\n indexExists(\n _indexes: string | string[],\n _options?: AbstractCursorOptions,\n ): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n indexInformation(\n options: IndexInformationOptions & { full: true },\n ): Promise<IndexDescriptionInfo[]>;\n indexInformation(\n options: IndexInformationOptions & { full?: false | undefined },\n ): Promise<IndexDescriptionCompact>;\n indexInformation(\n options: IndexInformationOptions,\n ): Promise<IndexDescriptionCompact | IndexDescriptionInfo[]>;\n indexInformation(): Promise<IndexDescriptionCompact>;\n indexInformation(\n _options?: unknown,\n ):\n | Promise<IndexDescriptionInfo[]>\n | Promise<IndexDescriptionCompact>\n | Promise<IndexDescriptionCompact | IndexDescriptionInfo[]> {\n throw new Error('Method not implemented.');\n }\n estimatedDocumentCount(\n options?: EstimatedDocumentCountOptions,\n ): Promise<number> {\n return this.collection.countDocuments(\n {},\n toCollectionOperationOptions(options),\n );\n }\n countDocuments(\n filter?: Filter<T>,\n options?: CountDocumentsOptions,\n ): Promise<number> {\n return this.collection.countDocuments(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n );\n }\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n filter: Filter<T>,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n distinct<Key extends '_id' | keyof EnhancedOmit<T, '_id'>>(\n key: Key,\n filter: Filter<T>,\n options: CommandOperationOptions,\n ): Promise<Flatten<WithId<T>[Key]>[]>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n distinct(key: string): Promise<any[]>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n distinct(key: string, filter: Filter<T>): Promise<any[]>;\n distinct(\n key: string,\n filter: Filter<T>,\n options: CommandOperationOptions, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<any[]>;\n distinct(\n _key: unknown,\n _filter?: unknown,\n _options?: unknown,\n ):\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-imports\n Promise<any[]> | Promise<import('mongodb').Flatten<WithId<T>[Key]>[]> {\n throw new Error('Method not implemented.');\n }\n indexes(\n options: IndexInformationOptions & { full?: true | undefined },\n ): Promise<IndexDescriptionInfo[]>;\n indexes(\n options: IndexInformationOptions & { full: false },\n ): Promise<IndexDescriptionCompact>;\n indexes(\n options: IndexInformationOptions,\n ): Promise<IndexDescriptionCompact | IndexDescriptionInfo[]>;\n indexes(options?: AbstractCursorOptions): Promise<IndexDescriptionInfo[]>;\n indexes(\n _options?: unknown,\n ):\n | Promise<IndexDescriptionInfo[]>\n | Promise<IndexDescriptionCompact>\n | Promise<IndexDescriptionCompact | IndexDescriptionInfo[]> {\n throw new Error('Method not implemented.');\n }\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndDelete(\n filter: Filter<T>,\n options: FindOneAndDeleteOptions,\n ): Promise<WithId<T> | null>;\n findOneAndDelete(filter: Filter<T>): Promise<WithId<T> | null>;\n findOneAndDelete(\n filter: unknown,\n options?: FindOneAndDeleteOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndDelete(\n filter as PongoFilter<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n options: FindOneAndReplaceOptions,\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: Filter<T>,\n replacement: WithoutId<T>,\n ): Promise<WithId<T> | null>;\n findOneAndReplace(\n filter: unknown,\n replacement: unknown,\n options?: FindOneAndReplaceOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndReplace(\n filter as PongoFilter<T>,\n replacement as WithoutId<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions & { includeResultMetadata: true },\n ): Promise<ModifyResult<T>>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions & { includeResultMetadata: false },\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n options: FindOneAndUpdateOptions,\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: Filter<T>,\n update: UpdateFilter<T>,\n ): Promise<WithId<T> | null>;\n findOneAndUpdate(\n filter: unknown,\n update: unknown,\n options?: FindOneAndUpdateOptions,\n ): Promise<WithId<T> | null | ModifyResult<T>> {\n return this.collection.findOneAndUpdate(\n filter as PongoFilter<T>,\n update as PongoUpdate<T>,\n toCollectionOperationOptions(options),\n ) as Promise<WithId<T> | null>;\n }\n aggregate<T extends Document = Document>(\n _pipeline?: Document[],\n _options?: AggregateOptions,\n ): AggregationCursor<T> {\n throw new Error('Method not implemented.');\n }\n watch<\n TLocal extends Document = T,\n TChange extends Document = ChangeStreamDocument<TLocal>,\n >(\n _pipeline?: Document[],\n _options?: ChangeStreamOptions,\n ): ChangeStream<TLocal, TChange> {\n throw new Error('Method not implemented.');\n }\n initializeUnorderedBulkOp(\n _options?: BulkWriteOptions,\n ): UnorderedBulkOperation {\n throw new Error('Method not implemented.');\n }\n initializeOrderedBulkOp(_options?: BulkWriteOptions): OrderedBulkOperation {\n throw new Error('Method not implemented.');\n }\n count(filter?: Filter<T>, options?: CountOptions): Promise<number> {\n return this.collection.countDocuments(\n (filter as PongoFilter<T>) ?? {},\n toCollectionOperationOptions(options),\n );\n }\n listSearchIndexes(\n options?: ListSearchIndexesOptions,\n ): ListSearchIndexesCursor;\n listSearchIndexes(\n name: string,\n options?: ListSearchIndexesOptions,\n ): ListSearchIndexesCursor;\n listSearchIndexes(\n _name?: unknown,\n _options?: unknown,\n ): ListSearchIndexesCursor {\n throw new Error('Method not implemented.');\n }\n createSearchIndex(_description: SearchIndexDescription): Promise<string> {\n throw new Error('Method not implemented.');\n }\n createSearchIndexes(\n _descriptions: SearchIndexDescription[],\n ): Promise<string[]> {\n throw new Error('Method not implemented.');\n }\n dropSearchIndex(_name: string): Promise<void> {\n throw new Error('Method not implemented.');\n }\n updateSearchIndex(_name: string, _definition: Document): Promise<void> {\n throw new Error('Method not implemented.');\n }\n\n async createCollection(): Promise<void> {\n await this.collection.createCollection();\n }\n async handle(\n id: ObjectId,\n handle: DocumentHandler<T>,\n options?: HandleOptions,\n ): Promise<PongoHandleResult<T>> {\n return this.collection.handle(id.toString(), handle, options);\n }\n}\n","import type { Collection as MongoCollection, ObjectId } from 'mongodb';\nimport type { Document } from 'mongodb';\nimport type {\n DocumentHandler,\n HandleOptions,\n PongoDb,\n PongoDBCollectionOptions,\n PongoHandleResult,\n} from '../core';\nimport { Collection } from './mongoCollection';\n\nexport class Db {\n private pongoDb: PongoDb;\n constructor(pongoDb: PongoDb) {\n this.pongoDb = pongoDb;\n }\n\n get databaseName(): string {\n return this.pongoDb.databaseName;\n }\n\n collection<T extends Document>(\n collectionName: string,\n options?: PongoDBCollectionOptions<T>,\n ): MongoCollection<T> & {\n handle(\n id: ObjectId,\n handle: DocumentHandler<T>,\n options?: HandleOptions,\n ): Promise<PongoHandleResult<T>>;\n } {\n return new Collection<T>(\n this,\n this.pongoDb.collection<T>(collectionName, options),\n );\n }\n}\n","import {\n parseConnectionString,\n toDatabaseDriverType,\n} from '@event-driven-io/dumbo';\nimport type { ClientSessionOptions } from 'http2';\nimport type { ClientSession, WithSessionCallback } from 'mongodb';\nimport {\n pongoClient,\n pongoSession,\n type AnyPongoDriver,\n type PongoClient,\n type PongoClientOptions,\n type PongoClientSchema,\n} from '../core';\nimport { Db } from './mongoDb';\n\nexport class MongoClient<\n DatabaseDriverType extends AnyPongoDriver = AnyPongoDriver,\n TypedClientSchema extends PongoClientSchema = PongoClientSchema,\n> {\n private pongoClient: PongoClient;\n\n constructor(\n options: PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n );\n constructor(\n connectionString: string,\n options?: Omit<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n 'connectionString'\n > & {\n driver?: AnyPongoDriver;\n },\n );\n constructor(\n connectionStringOrOptions:\n string | PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n options?: Omit<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>,\n 'connectionString'\n > & {\n driver?: AnyPongoDriver;\n },\n ) {\n if (typeof connectionStringOrOptions !== 'string') {\n this.pongoClient = pongoClient(connectionStringOrOptions);\n return;\n }\n\n const { databaseType, driverName } = parseConnectionString(\n connectionStringOrOptions,\n );\n\n const driver =\n options?.driver ??\n pongoDriverRegistry.tryGet(\n toDatabaseDriverType(databaseType, driverName),\n );\n\n if (driver === null) {\n throw new Error(\n `No database driver registered for ${databaseType} with name ${driverName}`,\n );\n }\n\n this.pongoClient = pongoClient({\n ...(options ?? {}),\n ...{ connectionString: connectionStringOrOptions },\n driver,\n } as unknown as PongoClientOptions<\n PongoClientOptions<DatabaseDriverType, TypedClientSchema>['driver'] &\n AnyPongoDriver,\n TypedClientSchema\n >);\n }\n\n async connect() {\n await this.pongoClient.connect();\n return this;\n }\n\n async close() {\n await this.pongoClient.close();\n }\n\n db(dbName?: string): Db {\n return new Db(this.pongoClient.db(dbName));\n }\n startSession(_options?: ClientSessionOptions): ClientSession {\n return pongoSession() as unknown as ClientSession;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withSession<T = any>(_executor: WithSessionCallback<T>): Promise<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withSession<T = any>(\n _options: ClientSessionOptions,\n _executor: WithSessionCallback<T>,\n ): Promise<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async withSession<T = any>(\n optionsOrExecutor: ClientSessionOptions | WithSessionCallback<T>,\n executor?: WithSessionCallback<T>,\n ): Promise<T> {\n const callback =\n typeof optionsOrExecutor === 'function' ? optionsOrExecutor : executor!;\n\n const session = pongoSession() as unknown as ClientSession;\n\n try {\n return await callback(session);\n } finally {\n await session.endSession();\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/sqlite3.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_core = require('./core-
|
|
2
|
+
const require_core = require('./core-C9SB3XMx.cjs');
|
|
3
3
|
const require_cli = require('./cli.cjs');
|
|
4
|
-
const require_core$1 = require('./core-
|
|
4
|
+
const require_core$1 = require('./core-CkmE5dkK.cjs');
|
|
5
5
|
let _event_driven_io_dumbo = require("@event-driven-io/dumbo");
|
|
6
6
|
let _event_driven_io_dumbo_sqlite3 = require("@event-driven-io/dumbo/sqlite3");
|
|
7
7
|
|
package/dist/sqlite3.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as sqliteSQLBuilder, t as pongoCollectionSQLiteMigrations } from "./index-
|
|
1
|
+
import { _t as PongoDb, in as PongoDriverOptions, rn as PongoDriver } from "./index-C3pnS1S_.cjs";
|
|
2
|
+
import { n as sqliteSQLBuilder, t as pongoCollectionSQLiteMigrations } from "./index-FXnldVnn.cjs";
|
|
3
3
|
import { SQLite3DriverType } from "@event-driven-io/dumbo/sqlite3";
|
|
4
4
|
|
|
5
5
|
//#region src/storage/sqlite/sqlite3/index.d.ts
|
package/dist/sqlite3.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as sqliteSQLBuilder, t as pongoCollectionSQLiteMigrations } from "./index-
|
|
1
|
+
import { _t as PongoDb, in as PongoDriverOptions, rn as PongoDriver } from "./index-r7V4paf_.js";
|
|
2
|
+
import { n as sqliteSQLBuilder, t as pongoCollectionSQLiteMigrations } from "./index-CZOmOsQt.js";
|
|
3
3
|
import { SQLite3DriverType } from "@event-driven-io/dumbo/sqlite3";
|
|
4
4
|
|
|
5
5
|
//#region src/storage/sqlite/sqlite3/index.d.ts
|