@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.
@@ -1,2 +1,2 @@
1
- import type { Middleware, MiddlewareNext, GenericMiddlewareNext, Context } from '@aeriajs/types';
2
- export declare const iterableMiddlewares: <TPayload, TReturn, TReturnNext extends GenericMiddlewareNext<TPayload, TReturn> = MiddlewareNext>(middlewares: Middleware<TPayload, TReturn, TReturnNext>[], end?: (payload: TPayload, _context: Context) => any) => (payload: TPayload, context: Context) => 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 [first, ...subsequent] = middlewares;
6
- const it = function* () {
7
- for (const middleware of subsequent.concat([end])) {
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
- const { value: next } = it.next();
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 [first, ...subsequent] = middlewares;
4
- const it = function* () {
5
- for (const middleware of subsequent.concat([end])) {
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
- const { value: next } = it.next();
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, GenericMiddlewareNext, CollectionReadPayload, CollectionWritePayload } from '@aeriajs/types';
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: GenericMiddlewareNext<typeof props, typeof props>) => Promise<Result.Result<CollectionProps<T>> | {
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: GenericMiddlewareNext<typeof props, typeof props>) => Promise<Result.Result<CollectionProps<T>> | {
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 { GenericMiddlewareNext, Context, CollectionProps, CollectionReadPayload, CollectionWritePayload } from '@aeriajs/types';
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: GenericMiddlewareNext<typeof props, typeof props>) => Promise<Result.Result<CollectionProps<T>>>;
4
- export declare const checkOwnershipWrite: <T extends CollectionWritePayload>(props: Result.Result<CollectionProps<T>>, context: Context, next: GenericMiddlewareNext<typeof props, typeof props>) => Promise<Result.Result<CollectionProps<T>> | {
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 { CollectionProps, GenericMiddlewareNext, Context, CollectionReadPayload } from '@aeriajs/types';
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: GenericMiddlewareNext<typeof props, typeof props>) => Promise<Result.Result<CollectionProps<T>> | {
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>>>;
@@ -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
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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, ACError, CollectionReadPayload, CollectionWritePayload } from '@aeriajs/types';
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?: TPayload) => Promise<{
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?: TPayload) => Promise<{
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: newPayload,
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: newPayload,
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: newPayload
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: newPayload
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.180",
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.180",
32
- "@aeriajs/common": "^0.0.110",
33
- "@aeriajs/types": "^0.0.93",
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": {