@ebarahona/loopback-connector-mongodb 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +526 -0
  3. package/dist/connector/coercion.d.ts +30 -0
  4. package/dist/connector/coercion.js +75 -0
  5. package/dist/connector/coercion.js.map +1 -0
  6. package/dist/connector/errors.d.ts +13 -0
  7. package/dist/connector/errors.js +20 -0
  8. package/dist/connector/errors.js.map +1 -0
  9. package/dist/connector/index.d.ts +6 -0
  10. package/dist/connector/index.js +24 -0
  11. package/dist/connector/index.js.map +1 -0
  12. package/dist/connector/mongo.connector.d.ts +171 -0
  13. package/dist/connector/mongo.connector.js +567 -0
  14. package/dist/connector/mongo.connector.js.map +1 -0
  15. package/dist/connector/property-mapping.d.ts +64 -0
  16. package/dist/connector/property-mapping.js +105 -0
  17. package/dist/connector/property-mapping.js.map +1 -0
  18. package/dist/connector/query-builder.d.ts +42 -0
  19. package/dist/connector/query-builder.js +204 -0
  20. package/dist/connector/query-builder.js.map +1 -0
  21. package/dist/datasource/index.d.ts +3 -0
  22. package/dist/datasource/index.js +10 -0
  23. package/dist/datasource/index.js.map +1 -0
  24. package/dist/datasource/mongo.datasource.d.ts +17 -0
  25. package/dist/datasource/mongo.datasource.factory.d.ts +30 -0
  26. package/dist/datasource/mongo.datasource.factory.js +44 -0
  27. package/dist/datasource/mongo.datasource.factory.js.map +1 -0
  28. package/dist/datasource/mongo.datasource.js +40 -0
  29. package/dist/datasource/mongo.datasource.js.map +1 -0
  30. package/dist/datasource/mongo.datasource.provider.d.ts +17 -0
  31. package/dist/datasource/mongo.datasource.provider.js +42 -0
  32. package/dist/datasource/mongo.datasource.provider.js.map +1 -0
  33. package/dist/helpers/config-validator.d.ts +34 -0
  34. package/dist/helpers/config-validator.js +79 -0
  35. package/dist/helpers/config-validator.js.map +1 -0
  36. package/dist/helpers/connection-manager.d.ts +78 -0
  37. package/dist/helpers/connection-manager.js +212 -0
  38. package/dist/helpers/connection-manager.js.map +1 -0
  39. package/dist/helpers/index.d.ts +5 -0
  40. package/dist/helpers/index.js +15 -0
  41. package/dist/helpers/index.js.map +1 -0
  42. package/dist/helpers/topology.d.ts +23 -0
  43. package/dist/helpers/topology.js +27 -0
  44. package/dist/helpers/topology.js.map +1 -0
  45. package/dist/helpers/url-builder.d.ts +7 -0
  46. package/dist/helpers/url-builder.js +30 -0
  47. package/dist/helpers/url-builder.js.map +1 -0
  48. package/dist/index.d.ts +15 -0
  49. package/dist/index.js +37 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/keys.d.ts +38 -0
  52. package/dist/keys.js +38 -0
  53. package/dist/keys.js.map +1 -0
  54. package/dist/mongo.component.d.ts +59 -0
  55. package/dist/mongo.component.js +138 -0
  56. package/dist/mongo.component.js.map +1 -0
  57. package/dist/providers/index.d.ts +0 -0
  58. package/dist/providers/index.js +4 -0
  59. package/dist/providers/index.js.map +1 -0
  60. package/dist/services/index.d.ts +2 -0
  61. package/dist/services/index.js +7 -0
  62. package/dist/services/index.js.map +1 -0
  63. package/dist/services/mongo.service.d.ts +61 -0
  64. package/dist/services/mongo.service.impl.d.ts +58 -0
  65. package/dist/services/mongo.service.impl.js +211 -0
  66. package/dist/services/mongo.service.impl.js.map +1 -0
  67. package/dist/services/mongo.service.js +3 -0
  68. package/dist/services/mongo.service.js.map +1 -0
  69. package/dist/types.d.ts +85 -0
  70. package/dist/types.js +3 -0
  71. package/dist/types.js.map +1 -0
  72. package/package.json +109 -0
@@ -0,0 +1,85 @@
1
+ import type { MongoClientOptions } from 'mongodb';
2
+ /**
3
+ * Configuration for the MongoDB connector and service.
4
+ *
5
+ * @public
6
+ */
7
+ export interface MongoConnectorConfig {
8
+ /**
9
+ * MongoDB connection string.
10
+ * Supports mongodb:// and mongodb+srv:// schemes.
11
+ */
12
+ url?: string;
13
+ /**
14
+ * Default database name. Used when no database is specified
15
+ * in the connection string.
16
+ */
17
+ database?: string;
18
+ /**
19
+ * Host for connection (used when url is not provided).
20
+ */
21
+ host?: string;
22
+ /**
23
+ * Port for connection (used when url is not provided).
24
+ * @defaultValue 27017
25
+ */
26
+ port?: number;
27
+ /**
28
+ * Username for authentication.
29
+ */
30
+ username?: string;
31
+ /**
32
+ * Password for authentication.
33
+ */
34
+ password?: string;
35
+ /**
36
+ * Authentication source database.
37
+ */
38
+ authSource?: string;
39
+ /**
40
+ * Replica set name.
41
+ */
42
+ replicaSet?: string;
43
+ /**
44
+ * Native MongoClient options passed directly to the driver.
45
+ */
46
+ clientOptions?: MongoClientOptions;
47
+ /**
48
+ * Enable lazy connection. If true, connection is deferred
49
+ * until the first operation. Only applies when using the
50
+ * connector via juggler DataSource, not via MongoComponent.
51
+ * @defaultValue false
52
+ */
53
+ lazyConnect?: boolean;
54
+ /**
55
+ * Enable debug logging.
56
+ * @defaultValue false
57
+ */
58
+ debug?: boolean;
59
+ /**
60
+ * Enable extended operators ($inc, $set, $push, etc.)
61
+ * in update operations.
62
+ * @defaultValue true
63
+ */
64
+ allowExtendedOperators?: boolean;
65
+ /**
66
+ * Enable GeoPoint indexing support.
67
+ * @defaultValue false
68
+ */
69
+ enableGeoIndexing?: boolean;
70
+ /**
71
+ * Coerce ObjectId strings strictly. When true, only properties
72
+ * explicitly marked with mongodb.dataType: 'ObjectId' are coerced.
73
+ * When false, any 24-char hex string is auto-coerced.
74
+ * @defaultValue false
75
+ */
76
+ strictObjectIDCoercion?: boolean;
77
+ /**
78
+ * Connector name override.
79
+ */
80
+ connector?: string;
81
+ /**
82
+ * Name for this connector instance.
83
+ */
84
+ name?: string;
85
+ }
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,109 @@
1
+ {
2
+ "name": "@ebarahona/loopback-connector-mongodb",
3
+ "version": "1.0.0",
4
+ "description": "Full-featured MongoDB connector for LoopBack 4 on driver 7.x. Aggregation, Change Streams, Time Series, GridFS, transactions, tailable cursors, bulk ops, and an injectable MongoService.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "engines": {
14
+ "node": ">=20.19.0"
15
+ },
16
+ "scripts": {
17
+ "build": "tsc -p tsconfig.build.json",
18
+ "clean": "rimraf dist",
19
+ "format": "prettier --write \"src/**/*.ts\"",
20
+ "lint": "eslint \"src/**/*.ts\"",
21
+ "test": "vitest run",
22
+ "test:unit": "vitest run src/__tests__/unit",
23
+ "test:integration": "vitest run src/__tests__/integration",
24
+ "test:dev": "vitest",
25
+ "commitlint": "commitlint --edit",
26
+ "prepare": "sh scripts/install-hooks.sh",
27
+ "prepublishOnly": "npm run clean && npm run build",
28
+ "leak-detection": "node --expose-gc scripts/leak-detection.mjs",
29
+ "bench": "node bench/index.mjs",
30
+ "docs": "typedoc"
31
+ },
32
+ "keywords": [
33
+ "loopback",
34
+ "loopback4",
35
+ "mongodb",
36
+ "native-driver",
37
+ "aggregation",
38
+ "change-streams",
39
+ "time-series",
40
+ "gridfs",
41
+ "transactions",
42
+ "loopback4 extension",
43
+ "extension"
44
+ ],
45
+ "author": "Ed Barahona (https://github.com/ebarahona)",
46
+ "license": "MIT",
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "git+https://github.com/ebarahona/loopback-connector-mongodb.git"
50
+ },
51
+ "bugs": {
52
+ "url": "https://github.com/ebarahona/loopback-connector-mongodb/issues"
53
+ },
54
+ "homepage": "https://github.com/ebarahona/loopback-connector-mongodb#readme",
55
+ "peerDependencies": {
56
+ "@loopback/core": ">=7.0.0 <8.0.0",
57
+ "@loopback/repository": ">=8.0.0 <9.0.0"
58
+ },
59
+ "dependencies": {
60
+ "debug": "^4.3.4",
61
+ "mongodb": "^7.2.0"
62
+ },
63
+ "devDependencies": {
64
+ "@commitlint/cli": "^21.0.1",
65
+ "@commitlint/config-conventional": "^21.0.1",
66
+ "@loopback/core": "^7.0.12",
67
+ "@loopback/repository": "^8.0.12",
68
+ "@size-limit/preset-small-lib": "^11.0.0",
69
+ "@types/debug": "^4.1.12",
70
+ "@types/node": "^25.7.0",
71
+ "@typescript-eslint/eslint-plugin": "^8.59.3",
72
+ "@typescript-eslint/parser": "^8.59.3",
73
+ "eslint": "^10.3.0",
74
+ "eslint-config-prettier": "^10.1.8",
75
+ "eslint-plugin-import-x": "^4.16.2",
76
+ "eslint-plugin-tsdoc": "^0.5.2",
77
+ "lefthook": "^2.1.6",
78
+ "mongodb-memory-server": "^11.1.0",
79
+ "prettier": "^3.2.0",
80
+ "rimraf": "^6.0.1",
81
+ "size-limit": "^11.0.0",
82
+ "tinybench": "^3.1.1",
83
+ "typedoc": "^0.28.19",
84
+ "typescript": "^6.0.3",
85
+ "vitest": "^4.1.6",
86
+ "yaml": "^2.9.0"
87
+ },
88
+ "files": [
89
+ "dist",
90
+ "README.md",
91
+ "LICENSE"
92
+ ],
93
+ "publishConfig": {
94
+ "access": "public"
95
+ },
96
+ "size-limit": [
97
+ {
98
+ "name": "dist (CommonJS)",
99
+ "path": "dist/index.js",
100
+ "limit": "100 KB",
101
+ "ignore": [
102
+ "@loopback/core",
103
+ "@loopback/repository",
104
+ "mongodb",
105
+ "debug"
106
+ ]
107
+ }
108
+ ]
109
+ }