insite-db 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bun.lockb CHANGED
Binary file
@@ -0,0 +1,9 @@
1
+ import type { Collection } from "mongodb";
2
+ import type { CollectionOptions, InSiteDB } from "./types";
3
+ export declare class Collections extends Map<string, Collection> {
4
+ constructor(db: InSiteDB);
5
+ db: InSiteDB;
6
+ [key: string]: Collection | unknown;
7
+ ensure(name: string, options?: CollectionOptions): Promise<Collection<import("bson").Document>>;
8
+ }
9
+ //# sourceMappingURL=Collections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collections.d.ts","sourceRoot":"","sources":["../src/Collections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsC,UAAU,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAqB3D,qBAAa,WAAY,SAAQ,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;gBAC3C,EAAE,EAAE,QAAQ;IAOxB,EAAE,EAAE,QAAQ,CAAC;IAEb,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IAE9B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;CAwC1D"}
@@ -0,0 +1,9 @@
1
+ import { MongoClient } from "mongodb";
2
+ import { Collections } from "./Collections";
3
+ import type { InSiteDB } from "./types";
4
+ export declare function connect(url: string, name: string): Promise<{
5
+ client: MongoClient;
6
+ db: InSiteDB;
7
+ collections: Collections;
8
+ }>;
9
+ //# sourceMappingURL=connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;GAgCtD"}
@@ -0,0 +1,11 @@
1
+ import { type CreateIndexesOptions, type IndexSpecification } from "mongodb";
2
+ type IndexTuple = [IndexSpecification, CreateIndexesOptions];
3
+ declare module "mongodb" {
4
+ interface Collection {
5
+ changeListeners?: Set<(listener: ChangeStreamDocument) => void>;
6
+ changeStream?: ChangeStream;
7
+ ensureIndexes(indexesToEnsure: IndexTuple[]): Promise<void>;
8
+ }
9
+ }
10
+ export {};
11
+ //# sourceMappingURL=Collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/extensions/Collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,MAAM,SAAS,CAAC;AAGjB,KAAK,UAAU,GAAG,CAAE,kBAAkB,EAAE,oBAAoB,CAAE,CAAC;AAE/D,OAAO,QAAQ,SAAS,CAAC;IACxB,UAAU,UAAU;QACnB,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC,CAAC;QAChE,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5D;CACD"}
@@ -0,0 +1,2 @@
1
+ import "./Collection";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { connect } from "./connect";
2
+ import "./extensions";
3
+ export { Binary, GridFSBucket, ObjectId } from "mongodb";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,cAAc,CAAC;AAGtB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- import{Binary as w,GridFSBucket as M,ObjectId as y}from"mongodb";import{Collection as s}from"mongodb";s.prototype.ensureIndexes=async function(r){try{for(let e of r)await this.createIndex(...e)}catch{}};s.prototype.handleChangeStreamChange=function(r){process.env.NODE_ENV==="development"&&console.log("Change stream change",this.parent.collectionName,r);for(let e of this.parent.changeListeners)e(r)};import{MongoClient as l}from"mongodb";var a=class r extends Map{constructor(e){super(),this.db=e}async ensure(e,o={}){let{db:t}=this,n=this.get(e);return n||((await t.listCollections({name:e},{nameOnly:!0}).toArray()).length?n=t.collection(e):(n=await t.createCollection(e,{...o.jsonSchema&&{validator:{$jsonSchema:o.jsonSchema}},...o.blockCompressor&&{storageEngine:{wiredTiger:{configString:`block_compressor=${o.blockCompressor}`}}}}),delete o.jsonSchema,delete o.blockCompressor),this.set(e,n),this[e]=n,o.watch!==!1&&(n.changeListeners=new Set,n.changeStream=n.watch({fullDocument:o.fullDocument===!1?void 0:"updateLookup"}).on("change",n.handleChangeStreamChange).on("error",r.handleChangeStreamError))),o.jsonSchema&&await t.command({collMod:e,...o.jsonSchema&&{validator:{$jsonSchema:o.jsonSchema}}}),n}static handleChangeStreamError(e){console.error(`\u{1F33F}\u2757\uFE0F Mongo ${this.parent.collectionName} Change Stream:`,e)}};async function i(r,e){/localhost/.test(r)&&(r=r.replace(/localhost/,"127.0.0.1"));let o=new l(r,{maxPoolSize:100});try{await o.connect(),console.info("\u{1F33F} Mongo Client connected to",r.replace(/(?<=\/\/)[^:]+?:[^@]+@/,"").replace(/(?:\/|\?)[^/]*$/,""))}catch(c){console.error("\u{1F33F}\u2757\uFE0F Mongo Client connection: ",c)}o.on("close",()=>console.error("\u{1F33F}\u2757\uFE0F Mongo DB socket closed")).on("error",c=>console.error("\u{1F33F}\u2757\uFE0F Mongo DB:",c)).on("parseError",c=>console.error("\u{1F33F}\u2757\uFE0F Mongo DB parse:",c)).on("reconnect",()=>console.info("\u{1F33F} Mongo DB reconnected")).on("timeout",()=>console.error("\u{1F33F}\u2757\uFE0F Mongo DB timeout"));let t=o.db(e),n=new a(t);return t.insiteCollections=n,{client:o,db:t,collections:n}}export{w as Binary,M as GridFSBucket,y as ObjectId,i as connect};
1
+ import{MongoClient as l}from"mongodb";function s(n){process.env.NODE_ENV==="development"&&console.log("Change stream change",this.parent.collectionName,n);for(let o of this.parent.changeListeners)o(n)}function a(n){console.error(`\u{1F33F}\u2757\uFE0F Mongo ${this.parent.collectionName} Change Stream:
2
+ `,n.stack)}var i=class extends Map{constructor(o){super(),this.db=o}db;async ensure(o,e={}){let{db:r}=this,t=this.get(o);return t||((await r.listCollections({name:o},{nameOnly:!0}).toArray()).length?t=r.collection(o):(t=await r.createCollection(o,{...e.jsonSchema&&{validator:{$jsonSchema:e.jsonSchema}},...e.blockCompressor&&{storageEngine:{wiredTiger:{configString:`block_compressor=${e.blockCompressor}`}}}}),delete e.jsonSchema,delete e.blockCompressor),this.set(o,t),this[o]=t,e.watch!==!1&&(t.changeListeners=new Set,t.changeStream=t.watch(void 0,{fullDocument:e.fullDocument===!1?void 0:"updateLookup"}).on("change",s).on("error",a))),e.jsonSchema&&await r.command({collMod:o,...e.jsonSchema&&{validator:{$jsonSchema:e.jsonSchema}}}),t}};async function m(n,o){/localhost/.test(n)&&(n=n.replace(/localhost/,"127.0.0.1"));let e=new l(n,{maxPoolSize:100});try{await e.connect(),console.info("\u{1F33F} Mongo Client connected to",n.replace(/(?<=\/\/)[^:]+?:[^@]+@/,"").replace(/[/?][^/]*$/,""))}catch(c){console.error("\u{1F33F}\u2757\uFE0F Mongo Client connection: ",c)}e.on("close",()=>console.error("\u{1F33F}\u2757\uFE0F Mongo DB socket closed")).on("error",c=>console.error("\u{1F33F}\u2757\uFE0F Mongo DB:",c)).on("parseError",c=>console.error("\u{1F33F}\u2757\uFE0F Mongo DB parse:",c)).on("reconnect",()=>console.info("\u{1F33F} Mongo DB reconnected")).on("timeout",()=>console.error("\u{1F33F}\u2757\uFE0F Mongo DB timeout"));let r=e.db(o),t=new i(r);return r.insiteCollections=t,{client:e,db:r,collections:t}}import{Collection as h}from"mongodb";h.prototype.ensureIndexes=async function(n){try{for(let o of n)await this.createIndex(...o)}catch{}};import{Binary as I,GridFSBucket as b,ObjectId as w}from"mongodb";export{I as Binary,b as GridFSBucket,w as ObjectId,m as connect};
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.js", "../src/extensions/Collection.js", "../src/connect.js", "../src/Collections.js"],
4
- "sourcesContent": ["export { Binary, GridFSBucket, ObjectId } from \"mongodb\";\nimport \"./extensions\";\n\n\nexport { connect } from \"./connect\";\n", "import { Collection } from \"mongodb\";\n\n\nCollection.prototype.ensureIndexes = async function (indexesToEnsure) {\n\t\n\t// const existingIndexes = await this.indexes();\n\t\n\t// TODO:\n\t\n\ttry {\n\t\tfor (const indexToEnsure of indexesToEnsure)\n\t\t\tawait this.createIndex(...indexToEnsure);\n\t} catch {}\n\t\n};\n\nCollection.prototype.handleChangeStreamChange = function (next) {\n\t\n\tif (process.env.NODE_ENV === \"development\")\n\t\tconsole.log(\"Change stream change\", this.parent.collectionName, next);\n\t\n\tfor (const listener of this.parent.changeListeners)\n\t\tlistener(next);\n\t\n};\n", "import { MongoClient } from \"mongodb\";\nimport { Collections } from \"./Collections\";\n\n\nexport async function connect(url, name) {\n\t\n\tif (/localhost/.test(url))\n\t\turl = url.replace(/localhost/, \"127.0.0.1\");\n\t\n\tconst client = new MongoClient(url, { maxPoolSize: 100 });\n\t\n\ttry {\n\t\tawait client.connect();\n\t\tconsole.info(\"\uD83C\uDF3F Mongo Client connected to\", url.replace(/(?<=\\/\\/)[^:]+?:[^@]+@/, \"\").replace(/(?:\\/|\\?)[^/]*$/, \"\"));\n\t} catch (error) {\n\t\tconsole.error(\"\uD83C\uDF3F\u2757\uFE0F Mongo Client connection: \", error);\n\t}\n\t\n\tclient\n\t\t.on(\"close\", () => console.error(\"\uD83C\uDF3F\u2757\uFE0F Mongo DB socket closed\"))\n\t\t.on(\"error\", error => console.error(\"\uD83C\uDF3F\u2757\uFE0F Mongo DB:\", error))\n\t\t.on(\"parseError\", error => console.error(\"\uD83C\uDF3F\u2757\uFE0F Mongo DB parse:\", error))\n\t\t.on(\"reconnect\", () => console.info(\"\uD83C\uDF3F Mongo DB reconnected\"))\n\t\t.on(\"timeout\", () => console.error(\"\uD83C\uDF3F\u2757\uFE0F Mongo DB timeout\"));\n\t\n\tconst db = client.db(name);\n\t\n\tconst collections = new Collections(db);\n\t\n\tdb.insiteCollections = collections;\n\t\n\treturn {\n\t\tclient,\n\t\tdb,\n\t\tcollections\n\t};\n}\n", "export class Collections extends Map {\n\tconstructor(db) {\n\t\tsuper();\n\t\t\n\t\tthis.db = db;\n\t\t\n\t}\n\t\n\tasync ensure(name, options = {}) {\n\t\t\n\t\tconst { db } = this;\n\t\t\n\t\tlet collection = this.get(name);\n\t\t\n\t\tif (!collection) {\n\t\t\tif ((await db.listCollections({ name }, { nameOnly: true }).toArray()).length)\n\t\t\t\tcollection = db.collection(name);\n\t\t\telse {\n\t\t\t\tcollection = await db.createCollection(name, {\n\t\t\t\t\t...options.jsonSchema && { validator: { $jsonSchema: options.jsonSchema } },\n\t\t\t\t\t...options.blockCompressor && { storageEngine: { wiredTiger: { configString: `block_compressor=${options.blockCompressor}` } } }\n\t\t\t\t});\n\t\t\t\tdelete options.jsonSchema;\n\t\t\t\tdelete options.blockCompressor;\n\t\t\t}\n\t\t\t\n\t\t\tthis.set(name, collection);\n\t\t\tthis[name] = collection;\n\t\t\t\n\t\t\tif (options.watch !== false) {\n\t\t\t\tcollection.changeListeners = new Set();\n\t\t\t\t\n\t\t\t\tcollection.changeStream =\n\t\t\t\t\tcollection.watch({ fullDocument: options.fullDocument === false ? undefined : \"updateLookup\" })\n\t\t\t\t\t\t.on(\"change\", collection.handleChangeStreamChange)\n\t\t\t\t\t\t.on(\"error\", Collections.handleChangeStreamError);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (options.jsonSchema)\n\t\t\tawait db.command({\n\t\t\t\tcollMod: name,\n\t\t\t\t...options.jsonSchema && { validator: { $jsonSchema: options.jsonSchema } }\n\t\t\t});\n\t\t\n\t\treturn collection;\n\t}\n\t\n\t\n\tstatic handleChangeStreamError(error) {\n\t\tconsole.error(`\uD83C\uDF3F\u2757\uFE0F Mongo ${this.parent.collectionName} Change Stream:`, error);\n\t\t\n\t}\n\t\n}\n"],
5
- "mappings": "AAAA,OAAS,UAAAA,EAAQ,gBAAAC,EAAc,YAAAC,MAAgB,UCA/C,OAAS,cAAAC,MAAkB,UAG3BA,EAAW,UAAU,cAAgB,eAAgBC,EAAiB,CAMrE,GAAI,CACH,QAAWC,KAAiBD,EAC3B,MAAM,KAAK,YAAY,GAAGC,CAAa,CACzC,MAAQ,CAAC,CAEV,EAEAF,EAAW,UAAU,yBAA2B,SAAUG,EAAM,CAE3D,QAAQ,IAAI,WAAa,eAC5B,QAAQ,IAAI,uBAAwB,KAAK,OAAO,eAAgBA,CAAI,EAErE,QAAWC,KAAY,KAAK,OAAO,gBAClCA,EAASD,CAAI,CAEf,ECxBA,OAAS,eAAAE,MAAmB,UCArB,IAAMC,EAAN,MAAMC,UAAoB,GAAI,CACpC,YAAYC,EAAI,CACf,MAAM,EAEN,KAAK,GAAKA,CAEX,CAEA,MAAM,OAAOC,EAAMC,EAAU,CAAC,EAAG,CAEhC,GAAM,CAAE,GAAAF,CAAG,EAAI,KAEXG,EAAa,KAAK,IAAIF,CAAI,EAE9B,OAAKE,KACC,MAAMH,EAAG,gBAAgB,CAAE,KAAAC,CAAK,EAAG,CAAE,SAAU,EAAK,CAAC,EAAE,QAAQ,GAAG,OACtEE,EAAaH,EAAG,WAAWC,CAAI,GAE/BE,EAAa,MAAMH,EAAG,iBAAiBC,EAAM,CAC5C,GAAGC,EAAQ,YAAc,CAAE,UAAW,CAAE,YAAaA,EAAQ,UAAW,CAAE,EAC1E,GAAGA,EAAQ,iBAAmB,CAAE,cAAe,CAAE,WAAY,CAAE,aAAc,oBAAoBA,EAAQ,eAAe,EAAG,CAAE,CAAE,CAChI,CAAC,EACD,OAAOA,EAAQ,WACf,OAAOA,EAAQ,iBAGhB,KAAK,IAAID,EAAME,CAAU,EACzB,KAAKF,CAAI,EAAIE,EAETD,EAAQ,QAAU,KACrBC,EAAW,gBAAkB,IAAI,IAEjCA,EAAW,aACVA,EAAW,MAAM,CAAE,aAAcD,EAAQ,eAAiB,GAAQ,OAAY,cAAe,CAAC,EAC5F,GAAG,SAAUC,EAAW,wBAAwB,EAChD,GAAG,QAASJ,EAAY,uBAAuB,IAIhDG,EAAQ,YACX,MAAMF,EAAG,QAAQ,CAChB,QAASC,EACT,GAAGC,EAAQ,YAAc,CAAE,UAAW,CAAE,YAAaA,EAAQ,UAAW,CAAE,CAC3E,CAAC,EAEKC,CACR,CAGA,OAAO,wBAAwBC,EAAO,CACrC,QAAQ,MAAM,+BAAc,KAAK,OAAO,cAAc,kBAAmBA,CAAK,CAE/E,CAED,EDlDA,eAAsBC,EAAQC,EAAKC,EAAM,CAEpC,YAAY,KAAKD,CAAG,IACvBA,EAAMA,EAAI,QAAQ,YAAa,WAAW,GAE3C,IAAME,EAAS,IAAIC,EAAYH,EAAK,CAAE,YAAa,GAAI,CAAC,EAExD,GAAI,CACH,MAAME,EAAO,QAAQ,EACrB,QAAQ,KAAK,sCAAgCF,EAAI,QAAQ,yBAA0B,EAAE,EAAE,QAAQ,kBAAmB,EAAE,CAAC,CACtH,OAASI,EAAO,CACf,QAAQ,MAAM,kDAAkCA,CAAK,CACtD,CAEAF,EACE,GAAG,QAAS,IAAM,QAAQ,MAAM,8CAA6B,CAAC,EAC9D,GAAG,QAASE,GAAS,QAAQ,MAAM,kCAAkBA,CAAK,CAAC,EAC3D,GAAG,aAAcA,GAAS,QAAQ,MAAM,wCAAwBA,CAAK,CAAC,EACtE,GAAG,YAAa,IAAM,QAAQ,KAAK,gCAAyB,CAAC,EAC7D,GAAG,UAAW,IAAM,QAAQ,MAAM,wCAAuB,CAAC,EAE5D,IAAMC,EAAKH,EAAO,GAAGD,CAAI,EAEnBK,EAAc,IAAIC,EAAYF,CAAE,EAEtC,OAAAA,EAAG,kBAAoBC,EAEhB,CACN,OAAAJ,EACA,GAAAG,EACA,YAAAC,CACD,CACD",
6
- "names": ["Binary", "GridFSBucket", "ObjectId", "Collection", "indexesToEnsure", "indexToEnsure", "next", "listener", "MongoClient", "Collections", "_Collections", "db", "name", "options", "collection", "error", "connect", "url", "name", "client", "MongoClient", "error", "db", "collections", "Collections"]
3
+ "sources": ["../src/connect.ts", "../src/Collections.ts", "../src/extensions/Collection.ts", "../src/index.ts"],
4
+ "sourcesContent": ["import { MongoClient } from \"mongodb\";\nimport { Collections } from \"./Collections\";\nimport type { InSiteDB } from \"./types\";\n\n\nexport async function connect(url: string, name: string) {\n\t\n\tif (/localhost/.test(url))\n\t\turl = url.replace(/localhost/, \"127.0.0.1\");\n\t\n\tconst client = new MongoClient(url, { maxPoolSize: 100 });\n\t\n\ttry {\n\t\tawait client.connect();\n\t\tconsole.info(\"\uD83C\uDF3F Mongo Client connected to\", url.replace(/(?<=\\/\\/)[^:]+?:[^@]+@/, \"\").replace(/[/?][^/]*$/, \"\"));\n\t} catch (error) {\n\t\tconsole.error(\"\uD83C\uDF3F\u2757\uFE0F Mongo Client connection: \", error);\n\t}\n\t\n\tclient\n\t\t.on(\"close\", () => console.error(\"\uD83C\uDF3F\u2757\uFE0F Mongo DB socket closed\"))\n\t\t.on(\"error\", error => console.error(\"\uD83C\uDF3F\u2757\uFE0F Mongo DB:\", error))\n\t\t.on(\"parseError\", error => console.error(\"\uD83C\uDF3F\u2757\uFE0F Mongo DB parse:\", error))\n\t\t.on(\"reconnect\", () => console.info(\"\uD83C\uDF3F Mongo DB reconnected\"))\n\t\t.on(\"timeout\", () => console.error(\"\uD83C\uDF3F\u2757\uFE0F Mongo DB timeout\"));\n\t\n\tconst db = client.db(name) as InSiteDB;\n\t\n\tconst collections = new Collections(db);\n\t\n\tdb.insiteCollections = collections;\n\t\n\treturn {\n\t\tclient,\n\t\tdb,\n\t\tcollections\n\t};\n}\n", "import type { ChangeStream, ChangeStreamDocument, Collection } from \"mongodb\";\nimport type { CollectionOptions, InSiteDB } from \"./types\";\n\n\n/* @this ChangeStream */\nfunction handleChangeStreamChange(this: ChangeStream, next: ChangeStreamDocument) {\n\t\n\tif (process.env.NODE_ENV === \"development\")\n\t\tconsole.log(\"Change stream change\", (this.parent as Collection).collectionName, next);\n\t\n\tfor (const listener of (this.parent as Collection).changeListeners!)\n\t\tlistener(next);\n\t\n}\n\n/* @this ChangeStream */\nfunction handleChangeStreamError(this: ChangeStream, error: Error) {\n\tconsole.error(`\uD83C\uDF3F\u2757\uFE0F Mongo ${(this.parent as Collection).collectionName} Change Stream:\\n`, error.stack);\n\t\n}\n\n\nexport class Collections extends Map<string, Collection> {\n\tconstructor(db: InSiteDB) {\n\t\tsuper();\n\t\t\n\t\tthis.db = db;\n\t\t\n\t}\n\t\n\tdb: InSiteDB;\n\t\n\t[key: string]: Collection | unknown;\n\t\n\tasync ensure(name: string, options: CollectionOptions = {}) {\n\t\t\n\t\tconst { db } = this;\n\t\t\n\t\tlet collection = this.get(name);\n\t\t\n\t\tif (!collection) {\n\t\t\tif ((await db.listCollections({ name }, { nameOnly: true }).toArray()).length)\n\t\t\t\tcollection = db.collection(name);\n\t\t\telse {\n\t\t\t\tcollection = await db.createCollection(name, {\n\t\t\t\t\t...options.jsonSchema && { validator: { $jsonSchema: options.jsonSchema } },\n\t\t\t\t\t...options.blockCompressor && { storageEngine: { wiredTiger: { configString: `block_compressor=${options.blockCompressor}` } } }\n\t\t\t\t});\n\t\t\t\tdelete options.jsonSchema;\n\t\t\t\tdelete options.blockCompressor;\n\t\t\t}\n\t\t\t\n\t\t\tthis.set(name, collection);\n\t\t\tthis[name] = collection;\n\t\t\t\n\t\t\tif (options.watch !== false) {\n\t\t\t\tcollection.changeListeners = new Set();\n\t\t\t\t\n\t\t\t\tcollection.changeStream =\n\t\t\t\t\tcollection.watch(undefined, { fullDocument: options.fullDocument === false ? undefined : \"updateLookup\" })\n\t\t\t\t\t\t.on(\"change\", handleChangeStreamChange)\n\t\t\t\t\t\t.on(\"error\", handleChangeStreamError);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (options.jsonSchema)\n\t\t\tawait db.command({\n\t\t\t\tcollMod: name,\n\t\t\t\t...options.jsonSchema && { validator: { $jsonSchema: options.jsonSchema } }\n\t\t\t});\n\t\t\n\t\treturn collection;\n\t}\n\t\n}\n", "import {\n\ttype ChangeStreamDocument,\n\tCollection,\n\ttype CreateIndexesOptions,\n\ttype IndexSpecification\n} from \"mongodb\";\n\n\ntype IndexTuple = [ IndexSpecification, CreateIndexesOptions ];\n\ndeclare module \"mongodb\" {\n\tinterface Collection { // eslint-disable-line no-shadow\n\t\tchangeListeners?: Set<(listener: ChangeStreamDocument) => void>;\n\t\tchangeStream?: ChangeStream;\n\t\tensureIndexes(indexesToEnsure: IndexTuple[]): Promise<void>;\n\t}\n}\n\n\nCollection.prototype.ensureIndexes = async function (indexesToEnsure) {\n\t\n\t// const existingIndexes = await this.indexes();\n\t\n\t// TODO:\n\t\n\ttry {\n\t\tfor (const indexToEnsure of indexesToEnsure)\n\t\t\tawait this.createIndex(...indexToEnsure);\n\t} catch {}\n\t\n};\n", "export { connect } from \"./connect\";\nimport \"./extensions\";\n\n\nexport { Binary, GridFSBucket, ObjectId } from \"mongodb\";\n"],
5
+ "mappings": "AAAA,OAAS,eAAAA,MAAmB,UCK5B,SAASC,EAA6CC,EAA4B,CAE7E,QAAQ,IAAI,WAAa,eAC5B,QAAQ,IAAI,uBAAyB,KAAK,OAAsB,eAAgBA,CAAI,EAErF,QAAWC,KAAa,KAAK,OAAsB,gBAClDA,EAASD,CAAI,CAEf,CAGA,SAASE,EAA4CC,EAAc,CAClE,QAAQ,MAAM,+BAAe,KAAK,OAAsB,cAAc;AAAA,EAAqBA,EAAM,KAAK,CAEvG,CAGO,IAAMC,EAAN,cAA0B,GAAwB,CACxD,YAAYC,EAAc,CACzB,MAAM,EAEN,KAAK,GAAKA,CAEX,CAEA,GAIA,MAAM,OAAOC,EAAcC,EAA6B,CAAC,EAAG,CAE3D,GAAM,CAAE,GAAAF,CAAG,EAAI,KAEXG,EAAa,KAAK,IAAIF,CAAI,EAE9B,OAAKE,KACC,MAAMH,EAAG,gBAAgB,CAAE,KAAAC,CAAK,EAAG,CAAE,SAAU,EAAK,CAAC,EAAE,QAAQ,GAAG,OACtEE,EAAaH,EAAG,WAAWC,CAAI,GAE/BE,EAAa,MAAMH,EAAG,iBAAiBC,EAAM,CAC5C,GAAGC,EAAQ,YAAc,CAAE,UAAW,CAAE,YAAaA,EAAQ,UAAW,CAAE,EAC1E,GAAGA,EAAQ,iBAAmB,CAAE,cAAe,CAAE,WAAY,CAAE,aAAc,oBAAoBA,EAAQ,eAAe,EAAG,CAAE,CAAE,CAChI,CAAC,EACD,OAAOA,EAAQ,WACf,OAAOA,EAAQ,iBAGhB,KAAK,IAAID,EAAME,CAAU,EACzB,KAAKF,CAAI,EAAIE,EAETD,EAAQ,QAAU,KACrBC,EAAW,gBAAkB,IAAI,IAEjCA,EAAW,aACVA,EAAW,MAAM,OAAW,CAAE,aAAcD,EAAQ,eAAiB,GAAQ,OAAY,cAAe,CAAC,EACvG,GAAG,SAAUR,CAAwB,EACrC,GAAG,QAASG,CAAuB,IAIpCK,EAAQ,YACX,MAAMF,EAAG,QAAQ,CAChB,QAASC,EACT,GAAGC,EAAQ,YAAc,CAAE,UAAW,CAAE,YAAaA,EAAQ,UAAW,CAAE,CAC3E,CAAC,EAEKC,CACR,CAED,EDrEA,eAAsBC,EAAQC,EAAaC,EAAc,CAEpD,YAAY,KAAKD,CAAG,IACvBA,EAAMA,EAAI,QAAQ,YAAa,WAAW,GAE3C,IAAME,EAAS,IAAIC,EAAYH,EAAK,CAAE,YAAa,GAAI,CAAC,EAExD,GAAI,CACH,MAAME,EAAO,QAAQ,EACrB,QAAQ,KAAK,sCAAgCF,EAAI,QAAQ,yBAA0B,EAAE,EAAE,QAAQ,aAAc,EAAE,CAAC,CACjH,OAASI,EAAO,CACf,QAAQ,MAAM,kDAAkCA,CAAK,CACtD,CAEAF,EACE,GAAG,QAAS,IAAM,QAAQ,MAAM,8CAA6B,CAAC,EAC9D,GAAG,QAASE,GAAS,QAAQ,MAAM,kCAAkBA,CAAK,CAAC,EAC3D,GAAG,aAAcA,GAAS,QAAQ,MAAM,wCAAwBA,CAAK,CAAC,EACtE,GAAG,YAAa,IAAM,QAAQ,KAAK,gCAAyB,CAAC,EAC7D,GAAG,UAAW,IAAM,QAAQ,MAAM,wCAAuB,CAAC,EAE5D,IAAMC,EAAKH,EAAO,GAAGD,CAAI,EAEnBK,EAAc,IAAIC,EAAYF,CAAE,EAEtC,OAAAA,EAAG,kBAAoBC,EAEhB,CACN,OAAAJ,EACA,GAAAG,EACA,YAAAC,CACD,CACD,CErCA,OAEC,cAAAE,MAGM,UAcPA,EAAW,UAAU,cAAgB,eAAgBC,EAAiB,CAMrE,GAAI,CACH,QAAWC,KAAiBD,EAC3B,MAAM,KAAK,YAAY,GAAGC,CAAa,CACzC,MAAQ,CAAC,CAEV,EC1BA,OAAS,UAAAC,EAAQ,gBAAAC,EAAc,YAAAC,MAAgB",
6
+ "names": ["MongoClient", "handleChangeStreamChange", "next", "listener", "handleChangeStreamError", "error", "Collections", "db", "name", "options", "collection", "connect", "url", "name", "client", "MongoClient", "error", "db", "collections", "Collections", "Collection", "indexesToEnsure", "indexToEnsure", "Binary", "GridFSBucket", "ObjectId"]
7
7
  }
@@ -0,0 +1,12 @@
1
+ import type { Db } from "mongodb";
2
+ import type { Collections } from "./Collections";
3
+ export type InSiteDB = {
4
+ insiteCollections: Collections;
5
+ } & Db;
6
+ export type CollectionOptions = {
7
+ fullDocument?: boolean;
8
+ jsonSchema?: Record<string, unknown>;
9
+ blockCompressor?: "none" | "snappy" | "zlib" | "zstd";
10
+ watch?: boolean;
11
+ };
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,MAAM,QAAQ,GAAG;IACtB,iBAAiB,EAAE,WAAW,CAAC;CAC/B,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,iBAAiB,GAAG;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC"}
@@ -0,0 +1 @@
1
+ export { node as default } from "@nesvet/eslint-config";
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "insite-db",
3
- "version": "1.1.0",
3
+ "version": "1.2.1",
4
4
  "description": "MongoDB for inSite",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
8
- "packageManager": "bun@1.1.12",
8
+ "packageManager": "bun@1.1.13",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
11
- "build": "bun .conveyer.js"
11
+ "build": "bun .conveyer.js",
12
+ "postbuild": "tsc --emitDeclarationOnly -p ."
12
13
  },
13
14
  "repository": {
14
15
  "type": "git",
@@ -26,6 +27,7 @@
26
27
  },
27
28
  "devDependencies": {
28
29
  "@nesvet/conveyer": "^2.1.0",
29
- "@nesvet/eslint-config": "^1.1.1"
30
+ "@nesvet/eslint-config": "^2.0.8",
31
+ "@types/node": "^20.14.2"
30
32
  }
31
33
  }