@paralect/hive 0.1.49 → 0.1.50-alpha.2
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/.hive/.babelrc +3 -0
- package/.hive/.cursor/commands/add-endpoint.md +262 -0
- package/.hive/.cursor/commands/add-handler.md +137 -0
- package/.hive/.cursor/commands/add-middleware.md +95 -0
- package/.hive/.cursor/commands/add-resource.md +71 -0
- package/.hive/.cursor/commands/add-scheduler.md +138 -0
- package/.hive/.cursor/commands/add-service.md +188 -0
- package/.hive/.cursor/skills/hive-auth/SKILL.md +134 -0
- package/.hive/.cursor/skills/hive-database/SKILL.md +103 -0
- package/.hive/.cursor/skills/hive-endpoint/SKILL.md +103 -0
- package/.hive/.cursor/skills/hive-handler/SKILL.md +88 -0
- package/.hive/.cursor/skills/hive-mapping/SKILL.md +85 -0
- package/.hive/.cursor/skills/hive-middleware/SKILL.md +104 -0
- package/.hive/.cursor/skills/hive-overview/SKILL.md +50 -0
- package/.hive/.cursor/skills/hive-scheduler/SKILL.md +94 -0
- package/.hive/.cursor/skills/hive-schema/SKILL.md +73 -0
- package/.hive/.cursor/skills/hive-service/SKILL.md +90 -0
- package/.hive/.dockerignore +1 -0
- package/.hive/Dockerfile +22 -0
- package/.hive/Dockerfile.dev +33 -0
- package/.hive/Dockerfile.prod +29 -0
- package/.hive/README.md +11 -0
- package/.hive/bin/deploy.sh +5 -0
- package/.hive/bin/start.sh +2 -0
- package/.hive/bootstrap-hive.js +118 -0
- package/.hive/deploy/api/Chart.yaml +6 -0
- package/.hive/deploy/api/staging.yaml +3 -0
- package/.hive/deploy/api/templates/deployment.yaml +44 -0
- package/.hive/deploy/api/templates/ingress.yaml +26 -0
- package/.hive/deploy/api/templates/service.yaml +14 -0
- package/.hive/deploy/script/Dockerfile +39 -0
- package/.hive/deploy/script/package-lock.json +1499 -0
- package/.hive/deploy/script/package.json +12 -0
- package/.hive/deploy/script/src/config.js +48 -0
- package/.hive/deploy/script/src/index.js +108 -0
- package/.hive/deploy/script/src/util.js +19 -0
- package/.hive/initial-data.json +176 -0
- package/.hive/package-lock.json +10242 -0
- package/.hive/package.json +98 -0
- package/.hive/ship_logo.png +0 -0
- package/.hive/src/app-config/app.js +3 -0
- package/.hive/src/app-config/assertEnv.js +15 -0
- package/.hive/src/app-config/index.js +62 -0
- package/.hive/src/app.js +69 -0
- package/.hive/src/assets/emails/components/header.mjml +13 -0
- package/.hive/src/assets/emails/dist/.gitkeep +0 -0
- package/.hive/src/assets/emails/signup-welcome.mjml +34 -0
- package/.hive/src/assets/emails/styles/index.mjml +77 -0
- package/.hive/src/autoMap/addHandlers.js +142 -0
- package/.hive/src/autoMap/getDependentFields.js +37 -0
- package/.hive/src/autoMap/mapSchema.js +99 -0
- package/.hive/src/autoMap/schemaMappings.js +13 -0
- package/.hive/src/autoMap/schemaMappings.json +3 -0
- package/.hive/src/bullMqBus.js +21 -0
- package/.hive/src/bullMqWrapper.js +23 -0
- package/.hive/src/db.js +52 -0
- package/.hive/src/emails/MyEmailComponent.jsx +14 -0
- package/.hive/src/emails/compiled/MyEmailComponent.js +18 -0
- package/.hive/src/emails/compiled/compiled/MyEmailComponent.js +18 -0
- package/.hive/src/helpers/db/ifUpdated.js +22 -0
- package/.hive/src/helpers/getMiddlewares.js +38 -0
- package/.hive/src/helpers/getResourceEndpoints.js +28 -0
- package/.hive/src/helpers/getResources.js +32 -0
- package/.hive/src/helpers/getSchemas.js +50 -0
- package/.hive/src/helpers/importHandlers.js +29 -0
- package/.hive/src/helpers/isZodArray.js +13 -0
- package/.hive/src/helpers/prettierFormat.js +8 -0
- package/.hive/src/helpers/schema/db.schema.js +9 -0
- package/.hive/src/helpers/schema/pagination.schema.js +14 -0
- package/.hive/src/ioEmitter.js +9 -0
- package/.hive/src/jsconfig.json +5 -0
- package/.hive/src/lib/node-mongo/.github/workflows/npm-publish.yml +32 -0
- package/.hive/src/lib/node-mongo/API.md +654 -0
- package/.hive/src/lib/node-mongo/CHANGELOG.md +98 -0
- package/.hive/src/lib/node-mongo/README.md +97 -0
- package/.hive/src/lib/node-mongo/package-lock.json +3682 -0
- package/.hive/src/lib/node-mongo/package.json +74 -0
- package/.hive/src/lib/node-mongo/src/index.js +64 -0
- package/.hive/src/lib/node-mongo/src/mongo-query-service.js +78 -0
- package/.hive/src/lib/node-mongo/src/mongo-service-error.js +15 -0
- package/.hive/src/lib/node-mongo/src/mongo-service.js +303 -0
- package/.hive/src/logger.js +43 -0
- package/.hive/src/middlewares/allowNoAuth.js +9 -0
- package/.hive/src/middlewares/attachUser.js +41 -0
- package/.hive/src/middlewares/global/extractUserTokens.js +15 -0
- package/.hive/src/middlewares/global/tryToAttachUser.js +33 -0
- package/.hive/src/middlewares/isAuthorized.js +18 -0
- package/.hive/src/middlewares/shouldExist.js +37 -0
- package/.hive/src/middlewares/shouldNotExist.js +19 -0
- package/.hive/src/middlewares/uploadFile.js +5 -0
- package/.hive/src/middlewares/validate.js +32 -0
- package/.hive/src/migrations/migration.js +8 -0
- package/.hive/src/migrations/migration.service.js +73 -0
- package/.hive/src/migrations/migrations/1.js +22 -0
- package/.hive/src/migrations/migrations-log/migration-log.schema.js +13 -0
- package/.hive/src/migrations/migrations-log/migration-log.service.js +50 -0
- package/.hive/src/migrations/migrations.schema.js +6 -0
- package/.hive/src/migrations/migrator.js +75 -0
- package/.hive/src/migrator.js +4 -0
- package/.hive/src/resources/_dev/endpoints/triggerSchedulerHandler.js +32 -0
- package/.hive/src/resources/health/endpoints/get.js +19 -0
- package/.hive/src/resources/schemaMappings/schemaMappings.schema.js +6 -0
- package/.hive/src/resources/tokens/methods/generateSecureToken.js +9 -0
- package/.hive/src/resources/tokens/methods/setToken.js +8 -0
- package/.hive/src/resources/tokens/methods/storeToken.js +35 -0
- package/.hive/src/resources/tokens/tokens.schema.js +11 -0
- package/.hive/src/resources/users/endpoints/getCurrentUser.js +14 -0
- package/.hive/src/resources/users/endpoints/getUserProfile.js +19 -0
- package/.hive/src/resources/users/handlers/test.js +1 -0
- package/.hive/src/resources/users/methods/ensureUserCreated.js +68 -0
- package/.hive/src/resources/users/users.schema.js +16 -0
- package/.hive/src/routes/index.js +172 -0
- package/.hive/src/routes/middlewares/attachCustomErrors.js +28 -0
- package/.hive/src/routes/middlewares/routeErrorHandler.js +27 -0
- package/.hive/src/scheduler/handlers/sendDailyReport.example.js +7 -0
- package/.hive/src/scheduler.js +32 -0
- package/.hive/src/security.util.js +38 -0
- package/.hive/src/services/emailService.js +15 -0
- package/.hive/src/services/globalTest.js +0 -0
- package/.hive/src/services/setCookie.js +21 -0
- package/.hive/src/socketIo.js +99 -0
- package/.hive/tsconfig.json +31 -0
- package/cli/helpers/docker.js +59 -0
- package/cli/helpers/envCheck.js +127 -0
- package/cli/helpers/findPort.js +32 -0
- package/cli/hive.js +91 -17
- package/package.json +1 -1
- package/starter/loader.mjs +40 -0
- package/starter/package-lock.json +3512 -262
- package/starter/package.json +7 -2
- package/starter/register.mjs +6 -0
- package/starter/src/app-config/index.js +3 -0
- package/starter/src/app.js +10 -14
- package/starter/src/autoMap/addHandlers.js +3 -3
- package/starter/src/autoMap/getDependentFields.js +1 -1
- package/starter/src/autoMap/mapSchema.js +2 -2
- package/starter/src/bullMqBus.js +1 -1
- package/starter/src/bullMqWrapper.js +1 -1
- package/starter/src/db.js +12 -11
- package/starter/src/helpers/esm.js +56 -0
- package/starter/src/helpers/getMiddlewares.js +3 -0
- package/starter/src/helpers/getResourceEndpoints.js +3 -0
- package/starter/src/helpers/getResources.js +3 -0
- package/starter/src/helpers/getSchemas.js +3 -0
- package/starter/src/helpers/importHandlers.js +11 -20
- package/starter/src/ioEmitter.js +1 -1
- package/starter/src/logger.js +1 -1
- package/starter/src/middlewares/attachUser.js +2 -2
- package/starter/src/middlewares/global/tryToAttachUser.js +1 -1
- package/starter/src/middlewares/shouldExist.js +1 -1
- package/starter/src/middlewares/shouldNotExist.js +1 -1
- package/starter/src/migrations/migration.service.js +4 -1
- package/starter/src/migrations/migrations-log/migration-log.schema.js +1 -1
- package/starter/src/migrations/migrations-log/migration-log.service.js +1 -1
- package/starter/src/migrations/migrations.schema.js +1 -1
- package/starter/src/migrations/migrator.js +1 -1
- package/starter/src/migrator.js +2 -3
- package/starter/src/resources/schemaMappings/schemaMappings.schema.js +1 -1
- package/starter/src/resources/tokens/methods/setToken.js +1 -1
- package/starter/src/resources/tokens/methods/storeToken.js +2 -2
- package/starter/src/resources/tokens/tokens.schema.js +1 -1
- package/starter/src/resources/users/endpoints/getCurrentUser.js +1 -1
- package/starter/src/resources/users/endpoints/getUserProfile.js +1 -1
- package/starter/src/resources/users/methods/ensureUserCreated.js +1 -1
- package/starter/src/resources/users/users.schema.js +1 -1
- package/starter/src/routes/index.js +8 -8
- package/starter/src/routes/middlewares/routeErrorHandler.js +1 -1
- package/starter/src/scheduler.js +10 -7
- package/starter/src/services/emailService.js +1 -1
- package/starter/src/services/setCookie.js +2 -2
- package/starter/src/socketIo.js +3 -3
- package/test-app/.cursor/commands/add-endpoint.md +262 -0
- package/test-app/.cursor/commands/add-handler.md +137 -0
- package/test-app/.cursor/commands/add-middleware.md +95 -0
- package/test-app/.cursor/commands/add-resource.md +71 -0
- package/test-app/.cursor/commands/add-scheduler.md +138 -0
- package/test-app/.cursor/commands/add-service.md +188 -0
- package/test-app/.cursor/skills/hive-auth/SKILL.md +134 -0
- package/test-app/.cursor/skills/hive-database/SKILL.md +103 -0
- package/test-app/.cursor/skills/hive-endpoint/SKILL.md +103 -0
- package/test-app/.cursor/skills/hive-handler/SKILL.md +88 -0
- package/test-app/.cursor/skills/hive-mapping/SKILL.md +85 -0
- package/test-app/.cursor/skills/hive-middleware/SKILL.md +104 -0
- package/test-app/.cursor/skills/hive-overview/SKILL.md +50 -0
- package/test-app/.cursor/skills/hive-scheduler/SKILL.md +94 -0
- package/test-app/.cursor/skills/hive-schema/SKILL.md +73 -0
- package/test-app/.cursor/skills/hive-service/SKILL.md +90 -0
- package/test-app/package-lock.json +462 -0
- package/test-app/package.json +21 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
## v2.1.0 (2020-10-15)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
#### Manager
|
|
6
|
+
|
|
7
|
+
[createService](API.md#createservice)
|
|
8
|
+
|
|
9
|
+
- Add [emitter](API.md#createservice) option.
|
|
10
|
+
|
|
11
|
+
## v2.0.0 (2020-09-29)
|
|
12
|
+
|
|
13
|
+
- Update dependencies.
|
|
14
|
+
|
|
15
|
+
### Breaking Changes
|
|
16
|
+
|
|
17
|
+
#### [Manager](API.md#manager)
|
|
18
|
+
|
|
19
|
+
[createQueryService](API.md#createqueryservice)
|
|
20
|
+
|
|
21
|
+
- Rename `validateSchema` option to `validate`.
|
|
22
|
+
- Change `addCreatedOnField` default to `true`.
|
|
23
|
+
- Change `addUpdatedOnField` default to `true`.
|
|
24
|
+
|
|
25
|
+
[createService](API.md#createservice)
|
|
26
|
+
|
|
27
|
+
- Rename `validateSchema` option to `validate`.
|
|
28
|
+
- Change `addCreatedOnField` default to `true`.
|
|
29
|
+
- Change `addUpdatedOnField` default to `true`.
|
|
30
|
+
|
|
31
|
+
#### [Query Service](API.md#query-service)
|
|
32
|
+
|
|
33
|
+
- Remove `generateId` method.
|
|
34
|
+
- Remove `expectDocument` method.
|
|
35
|
+
|
|
36
|
+
#### [Service](API.md#service)
|
|
37
|
+
|
|
38
|
+
- Remove `update` method. Use [updateOne](API.md#updateone) or [updateMany](API.md#updatemany).
|
|
39
|
+
- Remove `ensureIndex`. Use [atomic.createIndex](API.md#atomiccreateindex).
|
|
40
|
+
- Remove `createOrUpdate`. Use [create](API.md#create) or [updateOne](API.md#updateone) or [updateMany](API.md#updatemany).
|
|
41
|
+
- Remove `findOneAndUpdate`. Use [findOne](API.md#findone) and [updateOne](API.md#updateone).
|
|
42
|
+
|
|
43
|
+
### Features
|
|
44
|
+
|
|
45
|
+
#### Manager
|
|
46
|
+
|
|
47
|
+
[createQueryService](API.md#createqueryservice)
|
|
48
|
+
|
|
49
|
+
- Add `useStringId` option.
|
|
50
|
+
|
|
51
|
+
[createService](API.md#createservice)
|
|
52
|
+
|
|
53
|
+
- Add `useStringId` option.
|
|
54
|
+
|
|
55
|
+
#### [Query Service](API.md#query-service)
|
|
56
|
+
|
|
57
|
+
- Add more monk's methods. [See full list](API.md#query-service)
|
|
58
|
+
|
|
59
|
+
#### [Service](API.md#service)
|
|
60
|
+
|
|
61
|
+
- Add [generateId](API.md#generateid) method.
|
|
62
|
+
- Add [updateOne](API.md#updateone) method.
|
|
63
|
+
- Add [updateMany](API.md#updatemany) method.
|
|
64
|
+
- Add [performTransaction](API.md#performtransaction) method.
|
|
65
|
+
- Add more monk's methods in `atomic` namespace. [See full list](API.md#service)
|
|
66
|
+
|
|
67
|
+
## v1.1.0 (2019-06-25)
|
|
68
|
+
|
|
69
|
+
- Update dependencies.
|
|
70
|
+
- Fix required version of the Node.js.
|
|
71
|
+
|
|
72
|
+
### Breaking Changes
|
|
73
|
+
|
|
74
|
+
- Now `update` function will work via [set](https://docs.mongodb.com/manual/reference/operator/update/set/) operator. It means the new doc will be the result of merge of the old doc and the provided one.
|
|
75
|
+
|
|
76
|
+
## v1.0.0 (2018-05-23)
|
|
77
|
+
|
|
78
|
+
- Update dependencies.
|
|
79
|
+
- Add tests.
|
|
80
|
+
- Fix required version of the Node.js.
|
|
81
|
+
|
|
82
|
+
### Breaking Changes
|
|
83
|
+
|
|
84
|
+
- Now, by default, we do not add the fields `createdOn` and` updatedOn` automatically to the model. If you want to save the current behavior, add the appropriate `addCreatedOnField` and` addUpdatedOnField` options to the service definitions.
|
|
85
|
+
|
|
86
|
+
## v0.3.1 (2017-12-16)
|
|
87
|
+
|
|
88
|
+
- Stop using deprecated method `ensureIndex` of the `monk`.
|
|
89
|
+
|
|
90
|
+
## v0.3.0 (2017-10-24)
|
|
91
|
+
|
|
92
|
+
- Add ability to create custom methods for service and query service.
|
|
93
|
+
- Add tests.
|
|
94
|
+
|
|
95
|
+
## v0.2.0 (2017-10-12)
|
|
96
|
+
|
|
97
|
+
- Add support of the [joi](https://github.com/hapijs/joi) for validating data schema.
|
|
98
|
+
- Add tests for validating of the schema.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Node Mongo
|
|
2
|
+
|
|
3
|
+
[](https://badge.fury.io/js/%40paralect%2Fnode-mongo)
|
|
4
|
+
|
|
5
|
+
Node Mongo is reactive extension to MongoDB API. It provides few usability improvements to the [monk](https://github.com/Automattic/monk) API.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- ️️**Reactive**. Fires events as document stored, updated or deleted from database
|
|
10
|
+
- **Paging**. Implements high level paging API
|
|
11
|
+
- **Schema validation**. Validates your data before save
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
npm i @paralect/node-mongo
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Documentation
|
|
20
|
+
|
|
21
|
+
[API Reference](API.md).
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
### Connect to MongoDB
|
|
26
|
+
|
|
27
|
+
```javascript
|
|
28
|
+
const connectionString = "mongodb://localhost:27017/home-db";
|
|
29
|
+
const db = require("@paralect/node-mongo").connect(connectionString);
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### CRUD Operations
|
|
33
|
+
|
|
34
|
+
```javascript
|
|
35
|
+
// create a service to work with specific database collection
|
|
36
|
+
const userService = db.createService("users");
|
|
37
|
+
|
|
38
|
+
// create documents
|
|
39
|
+
const users = await userService.create([{ name: "Alex" }, { name: "Bob" }]);
|
|
40
|
+
|
|
41
|
+
// find one document
|
|
42
|
+
const user = await userService.findOne({ name: "Bob" });
|
|
43
|
+
|
|
44
|
+
// find many documents with pagination
|
|
45
|
+
const { results, pagesCount, count } = await userService.find(
|
|
46
|
+
{ name: "Bob" },
|
|
47
|
+
{ page: 1, perPage: 30 }
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
// update document
|
|
51
|
+
const updatedUser = await userService.updateOne({ _id: "1" }, (doc) => ({
|
|
52
|
+
...doc,
|
|
53
|
+
name: "Alex",
|
|
54
|
+
}));
|
|
55
|
+
|
|
56
|
+
// remove document
|
|
57
|
+
const removedUser = await userService.remove({ _id: "1" });
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Event handlers
|
|
61
|
+
|
|
62
|
+
```js
|
|
63
|
+
const userService = db.createService("users");
|
|
64
|
+
|
|
65
|
+
userService.on("created", ({ doc }) => {});
|
|
66
|
+
|
|
67
|
+
userService.on("updated", ({ doc, prevDoc }) => {});
|
|
68
|
+
|
|
69
|
+
userService.onPropertiesUpdated(["email"], ({ doc, prevDoc }) => {});
|
|
70
|
+
|
|
71
|
+
userService.on("removed", ({ doc }) => {});
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Schema validation
|
|
75
|
+
|
|
76
|
+
```javascript
|
|
77
|
+
const Joi = require("Joi");
|
|
78
|
+
|
|
79
|
+
const userSchema = Joi.object({
|
|
80
|
+
_id: Joi.string(),
|
|
81
|
+
createdOn: Joi.date(),
|
|
82
|
+
name: Joi.string(),
|
|
83
|
+
status: Joi.string().valid("active", "inactive"),
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
function validate(obj) {
|
|
87
|
+
return userSchema.validate(obj);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const userService = db.createService("users", { validate });
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Change Log
|
|
94
|
+
|
|
95
|
+
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
96
|
+
|
|
97
|
+
Every release is documented on the Github [Releases](https://github.com/paralect/node-mongo/releases) page.
|