@aeriajs/security 0.0.180 → 0.0.182
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/middleware/iterableMiddlewares.d.ts +2 -2
- package/dist/middleware/iterableMiddlewares.js +7 -10
- package/dist/middleware/iterableMiddlewares.mjs +7 -10
- package/dist/middlewares/immutability.d.ts +5 -8
- package/dist/middlewares/ownership.d.ts +4 -7
- package/dist/middlewares/pagination.d.ts +3 -6
- package/dist/types.d.ts +3 -0
- package/dist/types.js +2 -0
- package/dist/types.mjs +1 -0
- package/dist/use.d.ts +6 -8
- package/dist/use.js +5 -8
- package/dist/use.mjs +5 -8
- package/package.json +4 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Middleware,
|
|
2
|
-
export declare const iterableMiddlewares: <TPayload, TReturn
|
|
1
|
+
import type { Middleware, Context } from '@aeriajs/types';
|
|
2
|
+
export declare const iterableMiddlewares: <TPayload, TReturn>(middlewares: Middleware<TPayload, TReturn>[], end?: (payload: TPayload, _context: Context) => any) => (payload: TPayload, context: Context) => TReturn;
|
|
@@ -2,18 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.iterableMiddlewares = void 0;
|
|
4
4
|
const iterableMiddlewares = function (middlewares, end = (payload, _context) => payload) {
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
yield (payload, context) => {
|
|
9
|
-
const { value: next } = it.next();
|
|
10
|
-
return middleware(Object.assign({}, payload), context, next);
|
|
11
|
-
};
|
|
5
|
+
const run = (payload, context, index) => {
|
|
6
|
+
if (index === middlewares.length) {
|
|
7
|
+
return end(payload, context);
|
|
12
8
|
}
|
|
13
|
-
|
|
9
|
+
const middleware = middlewares[index];
|
|
10
|
+
return middleware(payload, context, (payload, context) => run(payload, context, index + 1));
|
|
11
|
+
};
|
|
14
12
|
return (payload, context) => {
|
|
15
|
-
|
|
16
|
-
return first(Object.assign({}, payload), context, next);
|
|
13
|
+
return run(payload, context, 0);
|
|
17
14
|
};
|
|
18
15
|
};
|
|
19
16
|
exports.iterableMiddlewares = iterableMiddlewares;
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
export const iterableMiddlewares = function(middlewares, end = (payload, _context) => payload) {
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
yield (payload, context) => {
|
|
7
|
-
const { value: next } = it.next();
|
|
8
|
-
return middleware(Object.assign({}, payload), context, next);
|
|
9
|
-
};
|
|
3
|
+
const run = (payload, context, index) => {
|
|
4
|
+
if (index === middlewares.length) {
|
|
5
|
+
return end(payload, context);
|
|
10
6
|
}
|
|
11
|
-
|
|
7
|
+
const middleware = middlewares[index];
|
|
8
|
+
return middleware(payload, context, (payload2, context2) => run(payload2, context2, index + 1));
|
|
9
|
+
};
|
|
12
10
|
return (payload, context) => {
|
|
13
|
-
|
|
14
|
-
return first(Object.assign({}, payload), context, next);
|
|
11
|
+
return run(payload, context, 0);
|
|
15
12
|
};
|
|
16
13
|
};
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import type { Context, CollectionProps,
|
|
1
|
+
import type { Context, CollectionProps, CollectionReadPayload, CollectionWritePayload } from '@aeriajs/types';
|
|
2
|
+
import type { ReadMiddlewareReturn, WriteMiddlewareReturn } from '../types.js';
|
|
2
3
|
import { Result, ACError } from '@aeriajs/types';
|
|
3
|
-
export declare const checkImmutabilityRead: <T extends CollectionReadPayload>(props: Result.Result<CollectionProps<T>>, context: Context, next:
|
|
4
|
+
export declare const checkImmutabilityRead: <T extends CollectionReadPayload>(props: Result.Result<CollectionProps<T>>, context: Context, next: (payload: typeof props, context: Context) => ReadMiddlewareReturn<CollectionProps<T>>) => Promise<{
|
|
4
5
|
readonly _tag: "Error";
|
|
5
6
|
readonly error: ACError.TargetImmutable | ACError.ResourceNotFound;
|
|
6
7
|
readonly result: undefined;
|
|
7
|
-
}
|
|
8
|
-
export declare const checkImmutabilityWrite: <T extends CollectionWritePayload>(props: Result.Result<CollectionProps<T>>, context: Context, next:
|
|
9
|
-
readonly _tag: "Error";
|
|
10
|
-
readonly error: ACError.TargetImmutable | ACError.ResourceNotFound;
|
|
11
|
-
readonly result: undefined;
|
|
12
|
-
}>;
|
|
8
|
+
} | Result.Either<ACError.InvalidLimit | ACError.OwnershipError, CollectionProps<T>>>;
|
|
9
|
+
export declare const checkImmutabilityWrite: <T extends CollectionWritePayload>(props: Result.Result<CollectionProps<T>>, context: Context, next: (payload: typeof props, context: Context) => WriteMiddlewareReturn<CollectionProps<T>>) => Promise<Result.Either<ACError.TargetImmutable | ACError.OwnershipError | ACError.ResourceNotFound, CollectionProps<T>>>;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Context, CollectionProps, CollectionReadPayload, CollectionWritePayload } from '@aeriajs/types';
|
|
2
|
+
import type { ReadMiddlewareReturn, WriteMiddlewareReturn } from '../types.js';
|
|
2
3
|
import { Result, ACError } from '@aeriajs/types';
|
|
3
|
-
export declare const checkOwnershipRead: <T extends CollectionReadPayload>(props: Result.Result<CollectionProps<T>>, context: Context, next:
|
|
4
|
-
export declare const checkOwnershipWrite: <T extends CollectionWritePayload>(props: Result.Result<CollectionProps<T>>, context: Context, next:
|
|
5
|
-
readonly _tag: "Error";
|
|
6
|
-
readonly error: ACError.OwnershipError;
|
|
7
|
-
readonly result: undefined;
|
|
8
|
-
}>;
|
|
4
|
+
export declare const checkOwnershipRead: <T extends CollectionReadPayload>(props: Result.Result<CollectionProps<T>>, context: Context, next: (payload: typeof props, context: Context) => ReadMiddlewareReturn<CollectionProps<T>>) => Promise<Result.Either<ACError.InvalidLimit | ACError.OwnershipError, CollectionProps<T>>>;
|
|
5
|
+
export declare const checkOwnershipWrite: <T extends CollectionWritePayload>(props: Result.Result<CollectionProps<T>>, context: Context, next: (payload: typeof props, context: Context) => WriteMiddlewareReturn<CollectionProps<T>>) => Promise<Result.Either<ACError.TargetImmutable | ACError.OwnershipError | ACError.ResourceNotFound, CollectionProps<T>>>;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Context, CollectionProps, CollectionReadPayload } from '@aeriajs/types';
|
|
2
|
+
import type { ReadMiddlewareReturn } from '../types.js';
|
|
2
3
|
import { Result, ACError } from '@aeriajs/types';
|
|
3
|
-
export declare const checkPagination: <T extends CollectionReadPayload>(props: Result.Result<CollectionProps<T>>, context: Context, next:
|
|
4
|
-
readonly _tag: "Error";
|
|
5
|
-
readonly error: ACError.InvalidLimit;
|
|
6
|
-
readonly result: undefined;
|
|
7
|
-
}>;
|
|
4
|
+
export declare const checkPagination: <T extends CollectionReadPayload>(props: Result.Result<CollectionProps<T>>, context: Context, next: (payload: typeof props, context: Context) => ReadMiddlewareReturn<CollectionProps<T>>) => Promise<Result.Either<ACError.InvalidLimit | ACError.OwnershipError, CollectionProps<T>>>;
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Result, ACError, CollectionProps } from '@aeriajs/types';
|
|
2
|
+
export type ReadMiddlewareReturn<TProps extends CollectionProps<unknown>> = Promise<Result.Either<ACError.OwnershipError | ACError.InvalidLimit, TProps>>;
|
|
3
|
+
export type WriteMiddlewareReturn<TProps extends CollectionProps<unknown>> = Promise<Result.Either<ACError.OwnershipError | ACError.ResourceNotFound | ACError.TargetImmutable, TProps>>;
|
package/dist/types.js
ADDED
package/dist/types.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/dist/use.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { Context, Description,
|
|
1
|
+
import type { Context, Description, CollectionReadPayload, CollectionWritePayload } from '@aeriajs/types';
|
|
2
2
|
export declare const useSecurity: <TDescription extends Description>(context: Context<TDescription>) => {
|
|
3
|
-
secureReadPayload: <TPayload extends Partial<CollectionReadPayload>>(payload
|
|
3
|
+
secureReadPayload: <TPayload extends Partial<CollectionReadPayload>>(payload: TPayload) => Promise<{
|
|
4
4
|
readonly _tag: "Error";
|
|
5
|
-
readonly error: ACError.InvalidLimit | ACError.OwnershipError;
|
|
5
|
+
readonly error: import("@aeriajs/types").ACError.InvalidLimit | import("@aeriajs/types").ACError.OwnershipError;
|
|
6
6
|
readonly result: undefined;
|
|
7
7
|
} | {
|
|
8
8
|
readonly _tag: "Result";
|
|
@@ -11,15 +11,13 @@ export declare const useSecurity: <TDescription extends Description>(context: Co
|
|
|
11
11
|
filters: {};
|
|
12
12
|
} & TPayload;
|
|
13
13
|
}>;
|
|
14
|
-
secureWritePayload: <TPayload extends CollectionWritePayload>(payload
|
|
14
|
+
secureWritePayload: <TPayload extends CollectionWritePayload>(payload: TPayload) => Promise<{
|
|
15
15
|
readonly _tag: "Error";
|
|
16
|
-
readonly error: ACError.TargetImmutable | ACError.OwnershipError | ACError.ResourceNotFound;
|
|
16
|
+
readonly error: import("@aeriajs/types").ACError.TargetImmutable | import("@aeriajs/types").ACError.OwnershipError | import("@aeriajs/types").ACError.ResourceNotFound;
|
|
17
17
|
readonly result: undefined;
|
|
18
18
|
} | {
|
|
19
19
|
readonly _tag: "Result";
|
|
20
20
|
readonly error: undefined;
|
|
21
|
-
readonly result:
|
|
22
|
-
what: {};
|
|
23
|
-
} & TPayload;
|
|
21
|
+
readonly result: TPayload;
|
|
24
22
|
}>;
|
|
25
23
|
};
|
package/dist/use.js
CHANGED
|
@@ -6,11 +6,11 @@ const index_js_1 = require("./middleware/index.js");
|
|
|
6
6
|
const index_js_2 = require("./middlewares/index.js");
|
|
7
7
|
const useSecurity = (context) => {
|
|
8
8
|
const secureReadPayload = async (payload) => {
|
|
9
|
-
const newPayload = Object.assign({
|
|
10
|
-
filters: {},
|
|
11
|
-
}, payload);
|
|
12
9
|
const props = {
|
|
13
|
-
payload:
|
|
10
|
+
payload: {
|
|
11
|
+
filters: {},
|
|
12
|
+
...payload,
|
|
13
|
+
},
|
|
14
14
|
};
|
|
15
15
|
const start = (0, index_js_1.iterableMiddlewares)([
|
|
16
16
|
index_js_2.checkPagination,
|
|
@@ -23,11 +23,8 @@ const useSecurity = (context) => {
|
|
|
23
23
|
return types_1.Result.result(result.payload);
|
|
24
24
|
};
|
|
25
25
|
const secureWritePayload = async (payload) => {
|
|
26
|
-
const newPayload = Object.assign({
|
|
27
|
-
what: {},
|
|
28
|
-
}, payload);
|
|
29
26
|
const props = {
|
|
30
|
-
payload
|
|
27
|
+
payload,
|
|
31
28
|
};
|
|
32
29
|
const start = (0, index_js_1.iterableMiddlewares)([
|
|
33
30
|
index_js_2.checkOwnershipWrite,
|
package/dist/use.mjs
CHANGED
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
} from "./middlewares/index.mjs";
|
|
10
10
|
export const useSecurity = (context) => {
|
|
11
11
|
const secureReadPayload = async (payload) => {
|
|
12
|
-
const newPayload = Object.assign({
|
|
13
|
-
filters: {}
|
|
14
|
-
}, payload);
|
|
15
12
|
const props = {
|
|
16
|
-
payload:
|
|
13
|
+
payload: {
|
|
14
|
+
filters: {},
|
|
15
|
+
...payload
|
|
16
|
+
}
|
|
17
17
|
};
|
|
18
18
|
const start = iterableMiddlewares([
|
|
19
19
|
checkPagination,
|
|
@@ -26,11 +26,8 @@ export const useSecurity = (context) => {
|
|
|
26
26
|
return Result.result(result.payload);
|
|
27
27
|
};
|
|
28
28
|
const secureWritePayload = async (payload) => {
|
|
29
|
-
const newPayload = Object.assign({
|
|
30
|
-
what: {}
|
|
31
|
-
}, payload);
|
|
32
29
|
const props = {
|
|
33
|
-
payload
|
|
30
|
+
payload
|
|
34
31
|
};
|
|
35
32
|
const start = iterableMiddlewares([
|
|
36
33
|
checkOwnershipWrite,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aeriajs/security",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.182",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"mongodb": "^6.5.0"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
|
-
"@aeriajs/core": "^0.0.
|
|
32
|
-
"@aeriajs/common": "^0.0.
|
|
33
|
-
"@aeriajs/types": "^0.0.
|
|
31
|
+
"@aeriajs/core": "^0.0.182",
|
|
32
|
+
"@aeriajs/common": "^0.0.112",
|
|
33
|
+
"@aeriajs/types": "^0.0.95",
|
|
34
34
|
"mongodb": "^6.5.0"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|