@aeriajs/core 0.0.173 → 0.0.174

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.
@@ -16,6 +16,7 @@ export type GetReferenceOptions = {
16
16
  depth?: number;
17
17
  maxDepth?: number;
18
18
  populate?: string[];
19
+ isArrayElement?: boolean;
19
20
  };
20
21
  export type BuildLookupPipelineOptions = {
21
22
  rootPipeline?: Document[];
@@ -9,7 +9,7 @@ const getTempName = (path) => {
9
9
  const referenceMemo = {};
10
10
  const lookupMemo = {};
11
11
  const getReferences = async (properties, options = {}) => {
12
- const { depth = 0, maxDepth = 3, memoize, populate, } = options;
12
+ const { depth = 0, maxDepth = 3, memoize, populate, isArrayElement, } = options;
13
13
  if (memoize) {
14
14
  if (referenceMemo[memoize]) {
15
15
  return referenceMemo[memoize];
@@ -33,6 +33,7 @@ const getReferences = async (properties, options = {}) => {
33
33
  maxDepth: refProperty.populateDepth || maxDepth,
34
34
  memoize: `${memoize}.${propName}`,
35
35
  populate: Array.from(refProperty.populate),
36
+ isArrayElement: 'items' in property,
36
37
  });
37
38
  if (Object.keys(deepReferences).length > 0) {
38
39
  reference.deepReferences = deepReferences;
@@ -68,6 +69,9 @@ const getReferences = async (properties, options = {}) => {
68
69
  if ('items' in property) {
69
70
  reference.isArray = true;
70
71
  }
72
+ if (isArrayElement) {
73
+ reference.isArrayElement = true;
74
+ }
71
75
  if (depth > 0) {
72
76
  reference.isRecursive = true;
73
77
  }
@@ -92,7 +96,7 @@ const recurseSetStage = (reference, path, parentElem, options = {
92
96
  }) => {
93
97
  const refName = path.at(-1);
94
98
  let indexOfArray;
95
- if (reference.isRecursive && !reference.isArrayElement) {
99
+ if (reference.isRecursive && !(reference.isArrayElement && reference.isArray === false)) {
96
100
  indexOfArray = {
97
101
  $indexOfArray: [
98
102
  `$${getTempName(path)}._id`,
@@ -125,7 +129,6 @@ const recurseSetStage = (reference, path, parentElem, options = {
125
129
  mapIn = (0, exports.recurseSetStage)({
126
130
  ...reference,
127
131
  isArray: false,
128
- isArrayElement: true,
129
132
  }, path, `$$${newElemName}`);
130
133
  }
131
134
  else {
@@ -135,19 +138,33 @@ const recurseSetStage = (reference, path, parentElem, options = {
135
138
  (0, exports.recurseSetStage)({
136
139
  ...reference,
137
140
  isArray: false,
138
- isArrayElement: true,
139
141
  }, path, `$$${newElemName}`),
140
142
  ],
141
143
  };
142
144
  }
143
145
  let mapInput = parentElem;
144
146
  if (reference.isRecursive) {
145
- mapInput = {
146
- $arrayElemAt: [
147
- `$${getTempName(path.slice(0, -1))}.${refName}`,
148
- indexOfArray,
149
- ],
150
- };
147
+ if (reference.isArrayElement) {
148
+ mapInput = {
149
+ $arrayElemAt: [
150
+ `$${getTempName(path.slice(0, -1))}.${refName}`,
151
+ {
152
+ $indexOfArray: [
153
+ `$${getTempName(path.slice(0, -1))}._id`,
154
+ parentElem,
155
+ ],
156
+ },
157
+ ],
158
+ };
159
+ }
160
+ else {
161
+ mapInput = {
162
+ $arrayElemAt: [
163
+ `$${getTempName(path.slice(0, -1))}.${refName}`,
164
+ indexOfArray,
165
+ ],
166
+ };
167
+ }
151
168
  }
152
169
  return {
153
170
  $filter: {
@@ -11,7 +11,8 @@ export const getReferences = async (properties, options = {}) => {
11
11
  depth = 0,
12
12
  maxDepth = 3,
13
13
  memoize,
14
- populate
14
+ populate,
15
+ isArrayElement
15
16
  } = options;
16
17
  if (memoize) {
17
18
  if (referenceMemo[memoize]) {
@@ -35,7 +36,8 @@ export const getReferences = async (properties, options = {}) => {
35
36
  depth: depth + 1,
36
37
  maxDepth: refProperty.populateDepth || maxDepth,
37
38
  memoize: `${memoize}.${propName}`,
38
- populate: Array.from(refProperty.populate)
39
+ populate: Array.from(refProperty.populate),
40
+ isArrayElement: "items" in property
39
41
  });
40
42
  if (Object.keys(deepReferences).length > 0) {
41
43
  reference.deepReferences = deepReferences;
@@ -61,6 +63,9 @@ export const getReferences = async (properties, options = {}) => {
61
63
  if ("items" in property) {
62
64
  reference.isArray = true;
63
65
  }
66
+ if (isArrayElement) {
67
+ reference.isArrayElement = true;
68
+ }
64
69
  if (depth > 0) {
65
70
  reference.isRecursive = true;
66
71
  }
@@ -84,7 +89,7 @@ export const recurseSetStage = (reference, path, parentElem, options = {
84
89
  }) => {
85
90
  const refName = path.at(-1);
86
91
  let indexOfArray;
87
- if (reference.isRecursive && !reference.isArrayElement) {
92
+ if (reference.isRecursive && !(reference.isArrayElement && reference.isArray === false)) {
88
93
  indexOfArray = {
89
94
  $indexOfArray: [
90
95
  `$${getTempName(path)}._id`,
@@ -115,8 +120,7 @@ export const recurseSetStage = (reference, path, parentElem, options = {
115
120
  if (reference.referencedCollection) {
116
121
  mapIn = recurseSetStage({
117
122
  ...reference,
118
- isArray: false,
119
- isArrayElement: true
123
+ isArray: false
120
124
  }, path, `$$${newElemName}`);
121
125
  } else {
122
126
  mapIn = {
@@ -124,20 +128,33 @@ export const recurseSetStage = (reference, path, parentElem, options = {
124
128
  `$$${newElemName}`,
125
129
  recurseSetStage({
126
130
  ...reference,
127
- isArray: false,
128
- isArrayElement: true
131
+ isArray: false
129
132
  }, path, `$$${newElemName}`)
130
133
  ]
131
134
  };
132
135
  }
133
136
  let mapInput = parentElem;
134
137
  if (reference.isRecursive) {
135
- mapInput = {
136
- $arrayElemAt: [
137
- `$${getTempName(path.slice(0, -1))}.${refName}`,
138
- indexOfArray
139
- ]
140
- };
138
+ if (reference.isArrayElement) {
139
+ mapInput = {
140
+ $arrayElemAt: [
141
+ `$${getTempName(path.slice(0, -1))}.${refName}`,
142
+ {
143
+ $indexOfArray: [
144
+ `$${getTempName(path.slice(0, -1))}._id`,
145
+ parentElem
146
+ ]
147
+ }
148
+ ]
149
+ };
150
+ } else {
151
+ mapInput = {
152
+ $arrayElemAt: [
153
+ `$${getTempName(path.slice(0, -1))}.${refName}`,
154
+ indexOfArray
155
+ ]
156
+ };
157
+ }
141
158
  }
142
159
  return {
143
160
  $filter: {
package/dist/index.d.ts CHANGED
@@ -6,7 +6,6 @@ export * from './database.js';
6
6
  export * from './functions/index.js';
7
7
  export * from './endpoints.js';
8
8
  export * from './token.js';
9
- export * from './use.js';
10
9
  export * from './functions/index.js';
11
10
  export * as functions from './functions/index.js';
12
11
  export { ObjectId, } from 'mongodb';
package/dist/index.js CHANGED
@@ -35,7 +35,6 @@ __exportStar(require("./database.js"), exports);
35
35
  __exportStar(require("./functions/index.js"), exports);
36
36
  __exportStar(require("./endpoints.js"), exports);
37
37
  __exportStar(require("./token.js"), exports);
38
- __exportStar(require("./use.js"), exports);
39
38
  __exportStar(require("./functions/index.js"), exports);
40
39
  exports.functions = __importStar(require("./functions/index.js"));
41
40
  var mongodb_1 = require("mongodb");
package/dist/index.mjs CHANGED
@@ -7,7 +7,6 @@ export * from "./database.mjs";
7
7
  export * from "./functions/index.mjs";
8
8
  export * from "./endpoints.mjs";
9
9
  export * from "./token.mjs";
10
- export * from "./use.mjs";
11
10
  export * from "./functions/index.mjs";
12
11
  export * as functions from "./functions/index.mjs";
13
12
  export {
package/dist/token.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import type { SignOptions } from 'jsonwebtoken';
2
2
  export declare const EXPIRES_IN = 36000;
3
- export declare const signToken: (_payload: Record<string, unknown>, secret?: string | null, options?: SignOptions) => Promise<string>;
4
- export declare const verifyToken: <TToken>(token: string, secret?: string) => Promise<TToken>;
3
+ export declare const signToken: ({ iat, exp, ...payload }: Record<string, unknown>, secret?: string | null, options?: SignOptions) => Promise<string>;
5
4
  export declare const decodeToken: <TToken>(token: string, secret?: string) => Promise<TToken>;
package/dist/token.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.decodeToken = exports.verifyToken = exports.signToken = exports.EXPIRES_IN = void 0;
6
+ exports.decodeToken = exports.signToken = exports.EXPIRES_IN = void 0;
7
7
  const entrypoint_1 = require("@aeriajs/entrypoint");
8
8
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
9
9
  exports.EXPIRES_IN = 36000;
@@ -14,21 +14,13 @@ const getApplicationSecret = async () => {
14
14
  }
15
15
  return config.secret;
16
16
  };
17
- const signToken = async (_payload, secret, options) => {
18
- const payload = Object.assign({}, _payload);
19
- delete payload.iat;
20
- delete payload.exp;
21
- const signed = jsonwebtoken_1.default.sign(payload, secret || await getApplicationSecret(), options || {
17
+ const signToken = async ({ iat, exp, ...payload }, secret, options) => {
18
+ return jsonwebtoken_1.default.sign(payload, secret || await getApplicationSecret(), options || {
22
19
  expiresIn: exports.EXPIRES_IN,
23
20
  });
24
- return signed;
25
21
  };
26
22
  exports.signToken = signToken;
27
- const verifyToken = async (token, secret) => {
23
+ const decodeToken = async (token, secret) => {
28
24
  return jsonwebtoken_1.default.verify(token, secret || await getApplicationSecret());
29
25
  };
30
- exports.verifyToken = verifyToken;
31
- const decodeToken = (token, secret) => {
32
- return (0, exports.verifyToken)(token, secret);
33
- };
34
26
  exports.decodeToken = decodeToken;
package/dist/token.mjs CHANGED
@@ -9,18 +9,11 @@ const getApplicationSecret = async () => {
9
9
  }
10
10
  return config.secret;
11
11
  };
12
- export const signToken = async (_payload, secret, options) => {
13
- const payload = Object.assign({}, _payload);
14
- delete payload.iat;
15
- delete payload.exp;
16
- const signed = jwt.sign(payload, secret || await getApplicationSecret(), options || {
12
+ export const signToken = async ({ iat, exp, ...payload }, secret, options) => {
13
+ return jwt.sign(payload, secret || await getApplicationSecret(), options || {
17
14
  expiresIn: EXPIRES_IN
18
15
  });
19
- return signed;
20
16
  };
21
- export const verifyToken = async (token, secret) => {
17
+ export const decodeToken = async (token, secret) => {
22
18
  return jwt.verify(token, secret || await getApplicationSecret());
23
19
  };
24
- export const decodeToken = (token, secret) => {
25
- return verifyToken(token, secret);
26
- };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeriajs/core",
3
- "version": "0.0.173",
3
+ "version": "0.0.174",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "aeriaMain": "tests/fixtures/aeriaMain.js",
@@ -42,11 +42,11 @@
42
42
  "mongodb-memory-server": "^9.2.0"
43
43
  },
44
44
  "peerDependencies": {
45
- "@aeriajs/builtins": "^0.0.173",
45
+ "@aeriajs/builtins": "^0.0.174",
46
46
  "@aeriajs/common": "^0.0.105",
47
47
  "@aeriajs/entrypoint": "^0.0.107",
48
48
  "@aeriajs/http": "^0.0.118",
49
- "@aeriajs/security": "^0.0.173",
49
+ "@aeriajs/security": "^0.0.174",
50
50
  "@aeriajs/types": "^0.0.88",
51
51
  "@aeriajs/validation": "^0.0.108"
52
52
  },
package/dist/use.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare const createAeria: () => Promise<import("@aeriajs/types").RouteContext>;
package/dist/use.js DELETED
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAeria = void 0;
4
- const entrypoint_1 = require("@aeriajs/entrypoint");
5
- const context_js_1 = require("./context.js");
6
- const database_js_1 = require("./database.js");
7
- const createAeria = async () => {
8
- await (0, database_js_1.getDatabase)();
9
- const context = await (0, context_js_1.createContext)({
10
- config: await (0, entrypoint_1.getConfig)(),
11
- token: {
12
- authenticated: false,
13
- sub: null,
14
- },
15
- });
16
- return context;
17
- };
18
- exports.createAeria = createAeria;
package/dist/use.mjs DELETED
@@ -1,15 +0,0 @@
1
- "use strict";
2
- import { getConfig } from "@aeriajs/entrypoint";
3
- import { createContext } from "./context.mjs";
4
- import { getDatabase } from "./database.mjs";
5
- export const createAeria = async () => {
6
- await getDatabase();
7
- const context = await createContext({
8
- config: await getConfig(),
9
- token: {
10
- authenticated: false,
11
- sub: null
12
- }
13
- });
14
- return context;
15
- };