@aeriajs/core 0.0.174 → 0.0.175
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/collection/reference.js +3 -2
- package/dist/collection/reference.mjs +3 -2
- package/dist/collection/traverseDocument.js +5 -0
- package/dist/collection/traverseDocument.mjs +5 -0
- package/dist/functions/upload.js +0 -5
- package/dist/functions/upload.mjs +0 -5
- package/dist/token.d.ts +0 -1
- package/dist/token.js +15 -7
- package/dist/token.mjs +14 -6
- package/package.json +5 -5
|
@@ -95,8 +95,9 @@ const recurseSetStage = (reference, path, parentElem, options = {
|
|
|
95
95
|
noCond: false,
|
|
96
96
|
}) => {
|
|
97
97
|
const refName = path.at(-1);
|
|
98
|
+
const shouldUseArrayIndex = reference.isRecursive && !(reference.isArrayElement && reference.isArray === false);
|
|
98
99
|
let indexOfArray;
|
|
99
|
-
if (
|
|
100
|
+
if (shouldUseArrayIndex) {
|
|
100
101
|
indexOfArray = {
|
|
101
102
|
$indexOfArray: [
|
|
102
103
|
`$${getTempName(path)}._id`,
|
|
@@ -189,7 +190,7 @@ const recurseSetStage = (reference, path, parentElem, options = {
|
|
|
189
190
|
const stages = [];
|
|
190
191
|
for (const [subRefName, subReference] of Object.entries(reference.deepReferences)) {
|
|
191
192
|
let newElem;
|
|
192
|
-
if (
|
|
193
|
+
if (shouldUseArrayIndex) {
|
|
193
194
|
newElem = {
|
|
194
195
|
$arrayElemAt: [
|
|
195
196
|
`$${getTempName(path.slice(0, -1))}.${refName}`,
|
|
@@ -88,8 +88,9 @@ export const recurseSetStage = (reference, path, parentElem, options = {
|
|
|
88
88
|
noCond: false
|
|
89
89
|
}) => {
|
|
90
90
|
const refName = path.at(-1);
|
|
91
|
+
const shouldUseArrayIndex = reference.isRecursive && !(reference.isArrayElement && reference.isArray === false);
|
|
91
92
|
let indexOfArray;
|
|
92
|
-
if (
|
|
93
|
+
if (shouldUseArrayIndex) {
|
|
93
94
|
indexOfArray = {
|
|
94
95
|
$indexOfArray: [
|
|
95
96
|
`$${getTempName(path)}._id`,
|
|
@@ -179,7 +180,7 @@ export const recurseSetStage = (reference, path, parentElem, options = {
|
|
|
179
180
|
const stages = [];
|
|
180
181
|
for (const [subRefName, subReference] of Object.entries(reference.deepReferences)) {
|
|
181
182
|
let newElem;
|
|
182
|
-
if (
|
|
183
|
+
if (shouldUseArrayIndex) {
|
|
183
184
|
newElem = {
|
|
184
185
|
$arrayElemAt: [
|
|
185
186
|
`$${getTempName(path.slice(0, -1))}.${refName}`,
|
|
@@ -27,6 +27,7 @@ exports.traverseDocument = void 0;
|
|
|
27
27
|
const types_1 = require("@aeriajs/types");
|
|
28
28
|
const common_1 = require("@aeriajs/common");
|
|
29
29
|
const validation_1 = require("@aeriajs/validation");
|
|
30
|
+
const entrypoint_1 = require("@aeriajs/entrypoint");
|
|
30
31
|
const mongodb_1 = require("mongodb");
|
|
31
32
|
const assets_js_1 = require("../assets.js");
|
|
32
33
|
const preload_js_1 = require("./preload.js");
|
|
@@ -195,6 +196,10 @@ const moveFiles = async (value, ctx) => {
|
|
|
195
196
|
if (!('$ref' in ctx.property) || ctx.property.$ref !== 'file') {
|
|
196
197
|
return value;
|
|
197
198
|
}
|
|
199
|
+
const tempFileCollection = await (0, entrypoint_1.getCollection)('tempFile');
|
|
200
|
+
if (!tempFileCollection) {
|
|
201
|
+
throw new Error('The "tempFile" collection is absent, yet it is required to upload files.');
|
|
202
|
+
}
|
|
198
203
|
if (!isValidTempFile(value)) {
|
|
199
204
|
return types_1.Result.error(types_1.TraverseError.InvalidTempfile);
|
|
200
205
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Result, ACError, ValidationErrorCode, TraverseError } from "@aeriajs/types";
|
|
3
3
|
import { throwIfError, pipe, isReference, getValueFromPath, isObjectId, isError } from "@aeriajs/common";
|
|
4
4
|
import { makeValidationError, validateProperty, validateWholeness } from "@aeriajs/validation";
|
|
5
|
+
import { getCollection } from "@aeriajs/entrypoint";
|
|
5
6
|
import { ObjectId } from "mongodb";
|
|
6
7
|
import { getCollectionAsset } from "../assets.mjs";
|
|
7
8
|
import { preloadDescription } from "./preload.mjs";
|
|
@@ -160,6 +161,10 @@ const moveFiles = async (value, ctx) => {
|
|
|
160
161
|
if (!("$ref" in ctx.property) || ctx.property.$ref !== "file") {
|
|
161
162
|
return value;
|
|
162
163
|
}
|
|
164
|
+
const tempFileCollection = await getCollection("tempFile");
|
|
165
|
+
if (!tempFileCollection) {
|
|
166
|
+
throw new Error('The "tempFile" collection is absent, yet it is required to upload files.');
|
|
167
|
+
}
|
|
163
168
|
if (!isValidTempFile(value)) {
|
|
164
169
|
return Result.error(TraverseError.InvalidTempfile);
|
|
165
170
|
}
|
package/dist/functions/upload.js
CHANGED
|
@@ -25,7 +25,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.upload = void 0;
|
|
27
27
|
const types_1 = require("@aeriajs/types");
|
|
28
|
-
const entrypoint_1 = require("@aeriajs/entrypoint");
|
|
29
28
|
const validation_1 = require("@aeriajs/validation");
|
|
30
29
|
const path = __importStar(require("path"));
|
|
31
30
|
const fs_1 = require("fs");
|
|
@@ -60,10 +59,6 @@ const streamToFs = (metadata, context) => {
|
|
|
60
59
|
});
|
|
61
60
|
};
|
|
62
61
|
const upload = async (_props, context) => {
|
|
63
|
-
const tempFileCollection = await (0, entrypoint_1.getCollection)('tempFile');
|
|
64
|
-
if (!tempFileCollection) {
|
|
65
|
-
throw new Error('The "tempFile" collection is absent, yet it is required to upload files.');
|
|
66
|
-
}
|
|
67
62
|
const { error: headersError } = (0, validation_1.validate)(context.request.headers, {
|
|
68
63
|
type: 'object',
|
|
69
64
|
additionalProperties: true,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import { Result, ACError, HTTPStatus } from "@aeriajs/types";
|
|
3
|
-
import { getCollection } from "@aeriajs/entrypoint";
|
|
4
3
|
import { validate, validator } from "@aeriajs/validation";
|
|
5
4
|
import * as path from "path";
|
|
6
5
|
import { createWriteStream } from "fs";
|
|
@@ -29,10 +28,6 @@ const streamToFs = (metadata, context) => {
|
|
|
29
28
|
});
|
|
30
29
|
};
|
|
31
30
|
export const upload = async (_props, context) => {
|
|
32
|
-
const tempFileCollection = await getCollection("tempFile");
|
|
33
|
-
if (!tempFileCollection) {
|
|
34
|
-
throw new Error('The "tempFile" collection is absent, yet it is required to upload files.');
|
|
35
|
-
}
|
|
36
31
|
const { error: headersError } = validate(context.request.headers, {
|
|
37
32
|
type: "object",
|
|
38
33
|
additionalProperties: true,
|
package/dist/token.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { SignOptions } from 'jsonwebtoken';
|
|
2
|
-
export declare const EXPIRES_IN = 36000;
|
|
3
2
|
export declare const signToken: ({ iat, exp, ...payload }: Record<string, unknown>, secret?: string | null, options?: SignOptions) => Promise<string>;
|
|
4
3
|
export declare const decodeToken: <TToken>(token: string, secret?: string) => Promise<TToken>;
|
package/dist/token.js
CHANGED
|
@@ -3,24 +3,32 @@ 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.signToken =
|
|
6
|
+
exports.decodeToken = exports.signToken = void 0;
|
|
7
7
|
const entrypoint_1 = require("@aeriajs/entrypoint");
|
|
8
8
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
9
|
-
|
|
10
|
-
const getApplicationSecret = async () => {
|
|
9
|
+
const getTokenConfig = async () => {
|
|
11
10
|
const config = await (0, entrypoint_1.getConfig)();
|
|
12
11
|
if (!config.secret) {
|
|
13
12
|
throw new Error('application secret is not set');
|
|
14
13
|
}
|
|
15
|
-
return
|
|
14
|
+
return {
|
|
15
|
+
name: config.name,
|
|
16
|
+
secret: config.secret,
|
|
17
|
+
tokenExpiration: config.security.tokenExpiration,
|
|
18
|
+
};
|
|
16
19
|
};
|
|
17
20
|
const signToken = async ({ iat, exp, ...payload }, secret, options) => {
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
const tokenConfig = await getTokenConfig();
|
|
22
|
+
if (tokenConfig.name) {
|
|
23
|
+
payload.aud = tokenConfig.name;
|
|
24
|
+
}
|
|
25
|
+
return jsonwebtoken_1.default.sign(payload, secret || tokenConfig.secret, options || {
|
|
26
|
+
expiresIn: tokenConfig.tokenExpiration,
|
|
20
27
|
});
|
|
21
28
|
};
|
|
22
29
|
exports.signToken = signToken;
|
|
23
30
|
const decodeToken = async (token, secret) => {
|
|
24
|
-
|
|
31
|
+
const tokenConfig = await getTokenConfig();
|
|
32
|
+
return jsonwebtoken_1.default.verify(token, secret || tokenConfig.secret);
|
|
25
33
|
};
|
|
26
34
|
exports.decodeToken = decodeToken;
|
package/dist/token.mjs
CHANGED
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import { getConfig } from "@aeriajs/entrypoint";
|
|
3
3
|
import jwt from "jsonwebtoken";
|
|
4
|
-
|
|
5
|
-
const getApplicationSecret = async () => {
|
|
4
|
+
const getTokenConfig = async () => {
|
|
6
5
|
const config = await getConfig();
|
|
7
6
|
if (!config.secret) {
|
|
8
7
|
throw new Error("application secret is not set");
|
|
9
8
|
}
|
|
10
|
-
return
|
|
9
|
+
return {
|
|
10
|
+
name: config.name,
|
|
11
|
+
secret: config.secret,
|
|
12
|
+
tokenExpiration: config.security.tokenExpiration
|
|
13
|
+
};
|
|
11
14
|
};
|
|
12
15
|
export const signToken = async ({ iat, exp, ...payload }, secret, options) => {
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
const tokenConfig = await getTokenConfig();
|
|
17
|
+
if (tokenConfig.name) {
|
|
18
|
+
payload.aud = tokenConfig.name;
|
|
19
|
+
}
|
|
20
|
+
return jwt.sign(payload, secret || tokenConfig.secret, options || {
|
|
21
|
+
expiresIn: tokenConfig.tokenExpiration
|
|
15
22
|
});
|
|
16
23
|
};
|
|
17
24
|
export const decodeToken = async (token, secret) => {
|
|
18
|
-
|
|
25
|
+
const tokenConfig = await getTokenConfig();
|
|
26
|
+
return jwt.verify(token, secret || tokenConfig.secret);
|
|
19
27
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aeriajs/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.175",
|
|
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.
|
|
45
|
+
"@aeriajs/builtins": "^0.0.175",
|
|
46
46
|
"@aeriajs/common": "^0.0.105",
|
|
47
|
-
"@aeriajs/entrypoint": "^0.0.
|
|
48
|
-
"@aeriajs/http": "^0.0.
|
|
49
|
-
"@aeriajs/security": "^0.0.
|
|
47
|
+
"@aeriajs/entrypoint": "^0.0.108",
|
|
48
|
+
"@aeriajs/http": "^0.0.119",
|
|
49
|
+
"@aeriajs/security": "^0.0.175",
|
|
50
50
|
"@aeriajs/types": "^0.0.88",
|
|
51
51
|
"@aeriajs/validation": "^0.0.108"
|
|
52
52
|
},
|