@webiny/api-record-locking 5.40.0-beta.3
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/LICENSE +21 -0
- package/README.md +10 -0
- package/abstractions/IGetLockRecordUseCase.d.ts +8 -0
- package/abstractions/IGetLockRecordUseCase.js +7 -0
- package/abstractions/IGetLockRecordUseCase.js.map +1 -0
- package/abstractions/IGetLockedEntryLockRecordUseCase.d.ts +8 -0
- package/abstractions/IGetLockedEntryLockRecordUseCase.js +7 -0
- package/abstractions/IGetLockedEntryLockRecordUseCase.js.map +1 -0
- package/abstractions/IIsEntryLocked.d.ts +8 -0
- package/abstractions/IIsEntryLocked.js +7 -0
- package/abstractions/IIsEntryLocked.js.map +1 -0
- package/abstractions/IKickOutCurrentUserUseCase.d.ts +5 -0
- package/abstractions/IKickOutCurrentUserUseCase.js +7 -0
- package/abstractions/IKickOutCurrentUserUseCase.js.map +1 -0
- package/abstractions/IListAllLockRecordsUseCase.d.ts +9 -0
- package/abstractions/IListAllLockRecordsUseCase.js +7 -0
- package/abstractions/IListAllLockRecordsUseCase.js.map +1 -0
- package/abstractions/IListLockRecordsUseCase.d.ts +10 -0
- package/abstractions/IListLockRecordsUseCase.js +7 -0
- package/abstractions/IListLockRecordsUseCase.js.map +1 -0
- package/abstractions/ILockEntryUseCase.d.ts +11 -0
- package/abstractions/ILockEntryUseCase.js +7 -0
- package/abstractions/ILockEntryUseCase.js.map +1 -0
- package/abstractions/IUnlockEntryRequestUseCase.d.ts +11 -0
- package/abstractions/IUnlockEntryRequestUseCase.js +7 -0
- package/abstractions/IUnlockEntryRequestUseCase.js.map +1 -0
- package/abstractions/IUnlockEntryUseCase.d.ts +12 -0
- package/abstractions/IUnlockEntryUseCase.js +7 -0
- package/abstractions/IUnlockEntryUseCase.js.map +1 -0
- package/abstractions/IUpdateEntryLockUseCase.d.ts +11 -0
- package/abstractions/IUpdateEntryLockUseCase.js +7 -0
- package/abstractions/IUpdateEntryLockUseCase.js.map +1 -0
- package/crud/crud.d.ts +6 -0
- package/crud/crud.js +188 -0
- package/crud/crud.js.map +1 -0
- package/crud/model.d.ts +2 -0
- package/crud/model.js +127 -0
- package/crud/model.js.map +1 -0
- package/graphql/schema.d.ts +7 -0
- package/graphql/schema.js +280 -0
- package/graphql/schema.js.map +1 -0
- package/index.d.ts +3 -0
- package/index.js +38 -0
- package/index.js.map +1 -0
- package/package.json +64 -0
- package/types.d.ts +172 -0
- package/types.js +30 -0
- package/types.js.map +1 -0
- package/useCases/GetLockRecord/GetLockRecordUseCase.d.ts +10 -0
- package/useCases/GetLockRecord/GetLockRecordUseCase.js +35 -0
- package/useCases/GetLockRecord/GetLockRecordUseCase.js.map +1 -0
- package/useCases/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.d.ts +16 -0
- package/useCases/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js +27 -0
- package/useCases/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js.map +1 -0
- package/useCases/IsEntryLocked/IsEntryLockedUseCase.d.ts +16 -0
- package/useCases/IsEntryLocked/IsEntryLockedUseCase.js +35 -0
- package/useCases/IsEntryLocked/IsEntryLockedUseCase.js.map +1 -0
- package/useCases/KickOutCurrentUser/KickOutCurrentUserUseCase.d.ts +12 -0
- package/useCases/KickOutCurrentUser/KickOutCurrentUserUseCase.js +46 -0
- package/useCases/KickOutCurrentUser/KickOutCurrentUserUseCase.js.map +1 -0
- package/useCases/ListAllLockRecordsUseCase/ListAllLockRecordsUseCase.d.ts +10 -0
- package/useCases/ListAllLockRecordsUseCase/ListAllLockRecordsUseCase.js +32 -0
- package/useCases/ListAllLockRecordsUseCase/ListAllLockRecordsUseCase.js.map +1 -0
- package/useCases/ListLockRecordsUseCase/ListLockRecordsUseCase.d.ts +14 -0
- package/useCases/ListLockRecordsUseCase/ListLockRecordsUseCase.js +27 -0
- package/useCases/ListLockRecordsUseCase/ListLockRecordsUseCase.js.map +1 -0
- package/useCases/LockEntryUseCase/LockEntryUseCase.d.ts +13 -0
- package/useCases/LockEntryUseCase/LockEntryUseCase.js +51 -0
- package/useCases/LockEntryUseCase/LockEntryUseCase.js.map +1 -0
- package/useCases/UnlockEntryUseCase/UnlockEntryUseCase.d.ts +20 -0
- package/useCases/UnlockEntryUseCase/UnlockEntryUseCase.js +67 -0
- package/useCases/UnlockEntryUseCase/UnlockEntryUseCase.js.map +1 -0
- package/useCases/UnlockRequestUseCase/UnlockEntryRequestUseCase.d.ts +15 -0
- package/useCases/UnlockRequestUseCase/UnlockEntryRequestUseCase.js +78 -0
- package/useCases/UnlockRequestUseCase/UnlockEntryRequestUseCase.js.map +1 -0
- package/useCases/UpdateEntryLock/UpdateEntryLockUseCase.d.ts +18 -0
- package/useCases/UpdateEntryLock/UpdateEntryLockUseCase.js +48 -0
- package/useCases/UpdateEntryLock/UpdateEntryLockUseCase.js.map +1 -0
- package/useCases/index.d.ts +28 -0
- package/useCases/index.js +83 -0
- package/useCases/index.js.map +1 -0
- package/utils/calculateExpiresOn.d.ts +2 -0
- package/utils/calculateExpiresOn.js +15 -0
- package/utils/calculateExpiresOn.js.map +1 -0
- package/utils/checkPermissions.d.ts +7 -0
- package/utils/checkPermissions.js +21 -0
- package/utils/checkPermissions.js.map +1 -0
- package/utils/convertEntryToLockRecord.d.ts +28 -0
- package/utils/convertEntryToLockRecord.js +88 -0
- package/utils/convertEntryToLockRecord.js.map +1 -0
- package/utils/convertWhereCondition.d.ts +4 -0
- package/utils/convertWhereCondition.js +41 -0
- package/utils/convertWhereCondition.js.map +1 -0
- package/utils/getTimeout.d.ts +4 -0
- package/utils/getTimeout.js +20 -0
- package/utils/getTimeout.js.map +1 -0
- package/utils/isLockedFactory.d.ts +5 -0
- package/utils/isLockedFactory.js +20 -0
- package/utils/isLockedFactory.js.map +1 -0
- package/utils/lockRecordDatabaseId.d.ts +2 -0
- package/utils/lockRecordDatabaseId.js +24 -0
- package/utils/lockRecordDatabaseId.js.map +1 -0
- package/utils/resolve.d.ts +8 -0
- package/utils/resolve.js +30 -0
- package/utils/resolve.js.map +1 -0
- package/utils/validateSameIdentity.d.ts +6 -0
- package/utils/validateSameIdentity.js +24 -0
- package/utils/validateSameIdentity.js.map +1 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.removeLockRecordDatabasePrefix = exports.createLockRecordDatabaseId = void 0;
|
|
7
|
+
var _utils = require("@webiny/utils");
|
|
8
|
+
const WBY_LM_PREFIX = "wby-lm-";
|
|
9
|
+
const createLockRecordDatabaseId = input => {
|
|
10
|
+
const {
|
|
11
|
+
id
|
|
12
|
+
} = (0, _utils.parseIdentifier)(input);
|
|
13
|
+
if (id.startsWith(WBY_LM_PREFIX)) {
|
|
14
|
+
return id;
|
|
15
|
+
}
|
|
16
|
+
return `${WBY_LM_PREFIX}${id}`;
|
|
17
|
+
};
|
|
18
|
+
exports.createLockRecordDatabaseId = createLockRecordDatabaseId;
|
|
19
|
+
const removeLockRecordDatabasePrefix = id => {
|
|
20
|
+
return id.replace(WBY_LM_PREFIX, "");
|
|
21
|
+
};
|
|
22
|
+
exports.removeLockRecordDatabasePrefix = removeLockRecordDatabasePrefix;
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=lockRecordDatabaseId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","WBY_LM_PREFIX","createLockRecordDatabaseId","input","id","parseIdentifier","startsWith","exports","removeLockRecordDatabasePrefix","replace"],"sources":["lockRecordDatabaseId.ts"],"sourcesContent":["import { parseIdentifier } from \"@webiny/utils\";\n\nconst WBY_LM_PREFIX = \"wby-lm-\";\n\nexport const createLockRecordDatabaseId = (input: string): string => {\n const { id } = parseIdentifier(input);\n if (id.startsWith(WBY_LM_PREFIX)) {\n return id;\n }\n return `${WBY_LM_PREFIX}${id}`;\n};\n\nexport const removeLockRecordDatabasePrefix = (id: string) => {\n return id.replace(WBY_LM_PREFIX, \"\");\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GAAG,SAAS;AAExB,MAAMC,0BAA0B,GAAIC,KAAa,IAAa;EACjE,MAAM;IAAEC;EAAG,CAAC,GAAG,IAAAC,sBAAe,EAACF,KAAK,CAAC;EACrC,IAAIC,EAAE,CAACE,UAAU,CAACL,aAAa,CAAC,EAAE;IAC9B,OAAOG,EAAE;EACb;EACA,OAAQ,GAAEH,aAAc,GAAEG,EAAG,EAAC;AAClC,CAAC;AAACG,OAAA,CAAAL,0BAAA,GAAAA,0BAAA;AAEK,MAAMM,8BAA8B,GAAIJ,EAAU,IAAK;EAC1D,OAAOA,EAAE,CAACK,OAAO,CAACR,aAAa,EAAE,EAAE,CAAC;AACxC,CAAC;AAACM,OAAA,CAAAC,8BAAA,GAAAA,8BAAA","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ErrorResponse, Response } from "@webiny/handler-graphql";
|
|
2
|
+
import { IRecordLockingMeta } from "../types";
|
|
3
|
+
export declare const resolve: <T>(cb: () => Promise<T>) => Promise<Response<T> | ErrorResponse>;
|
|
4
|
+
export interface IListResponse<T> {
|
|
5
|
+
items: T[];
|
|
6
|
+
meta: IRecordLockingMeta;
|
|
7
|
+
}
|
|
8
|
+
export declare const resolveList: <T>(cb: () => Promise<IListResponse<T>>) => Promise<ErrorResponse | Response<T[]>>;
|
package/utils/resolve.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resolveList = exports.resolve = void 0;
|
|
7
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
8
|
+
const resolve = async cb => {
|
|
9
|
+
try {
|
|
10
|
+
const result = await cb();
|
|
11
|
+
return new _handlerGraphql.Response(result);
|
|
12
|
+
} catch (ex) {
|
|
13
|
+
return new _handlerGraphql.ErrorResponse(ex);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
exports.resolve = resolve;
|
|
17
|
+
const resolveList = async cb => {
|
|
18
|
+
try {
|
|
19
|
+
const {
|
|
20
|
+
items,
|
|
21
|
+
meta
|
|
22
|
+
} = await cb();
|
|
23
|
+
return new _handlerGraphql.ListResponse(items, meta);
|
|
24
|
+
} catch (ex) {
|
|
25
|
+
return new _handlerGraphql.ListErrorResponse(ex);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.resolveList = resolveList;
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_handlerGraphql","require","resolve","cb","result","Response","ex","ErrorResponse","exports","resolveList","items","meta","ListResponse","ListErrorResponse"],"sources":["resolve.ts"],"sourcesContent":["import { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\nimport { IRecordLockingMeta } from \"~/types\";\n\nexport const resolve = async <T>(cb: () => Promise<T>): Promise<Response<T> | ErrorResponse> => {\n try {\n const result = await cb();\n return new Response<T>(result);\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\nexport interface IListResponse<T> {\n items: T[];\n meta: IRecordLockingMeta;\n}\n\nexport const resolveList = async <T>(\n cb: () => Promise<IListResponse<T>>\n): Promise<Response<T[]> | ErrorResponse> => {\n try {\n const { items, meta } = await cb();\n return new ListResponse(items, meta);\n } catch (ex) {\n return new ListErrorResponse(ex);\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGO,MAAMC,OAAO,GAAG,MAAUC,EAAoB,IAA2C;EAC5F,IAAI;IACA,MAAMC,MAAM,GAAG,MAAMD,EAAE,CAAC,CAAC;IACzB,OAAO,IAAIE,wBAAQ,CAAID,MAAM,CAAC;EAClC,CAAC,CAAC,OAAOE,EAAE,EAAE;IACT,OAAO,IAAIC,6BAAa,CAACD,EAAE,CAAC;EAChC;AACJ,CAAC;AAACE,OAAA,CAAAN,OAAA,GAAAA,OAAA;AAOK,MAAMO,WAAW,GAAG,MACvBN,EAAmC,IACM;EACzC,IAAI;IACA,MAAM;MAAEO,KAAK;MAAEC;IAAK,CAAC,GAAG,MAAMR,EAAE,CAAC,CAAC;IAClC,OAAO,IAAIS,4BAAY,CAACF,KAAK,EAAEC,IAAI,CAAC;EACxC,CAAC,CAAC,OAAOL,EAAE,EAAE;IACT,OAAO,IAAIO,iCAAiB,CAACP,EAAE,CAAC;EACpC;AACJ,CAAC;AAACE,OAAA,CAAAC,WAAA,GAAAA,WAAA","ignoreList":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IRecordLockingIdentity } from "../types";
|
|
2
|
+
export interface IValidateSameIdentityParams {
|
|
3
|
+
getIdentity: () => Pick<IRecordLockingIdentity, "id">;
|
|
4
|
+
target: Pick<IRecordLockingIdentity, "id">;
|
|
5
|
+
}
|
|
6
|
+
export declare const validateSameIdentity: (params: IValidateSameIdentityParams) => void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.validateSameIdentity = void 0;
|
|
7
|
+
var _apiSecurity = require("@webiny/api-security");
|
|
8
|
+
const validateSameIdentity = params => {
|
|
9
|
+
const {
|
|
10
|
+
getIdentity,
|
|
11
|
+
target
|
|
12
|
+
} = params;
|
|
13
|
+
const identity = getIdentity();
|
|
14
|
+
if (identity.id === target.id) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
throw new _apiSecurity.NotAuthorizedError({
|
|
18
|
+
message: "Cannot update lock record. Record is locked by another user.",
|
|
19
|
+
code: "LOCK_UPDATE_ERROR"
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
exports.validateSameIdentity = validateSameIdentity;
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=validateSameIdentity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_apiSecurity","require","validateSameIdentity","params","getIdentity","target","identity","id","NotAuthorizedError","message","code","exports"],"sources":["validateSameIdentity.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { IRecordLockingIdentity } from \"~/types\";\n\nexport interface IValidateSameIdentityParams {\n getIdentity: () => Pick<IRecordLockingIdentity, \"id\">;\n target: Pick<IRecordLockingIdentity, \"id\">;\n}\n\nexport const validateSameIdentity = (params: IValidateSameIdentityParams): void => {\n const { getIdentity, target } = params;\n const identity = getIdentity();\n if (identity.id === target.id) {\n return;\n }\n throw new NotAuthorizedError({\n message: \"Cannot update lock record. Record is locked by another user.\",\n code: \"LOCK_UPDATE_ERROR\"\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAQO,MAAMC,oBAAoB,GAAIC,MAAmC,IAAW;EAC/E,MAAM;IAAEC,WAAW;IAAEC;EAAO,CAAC,GAAGF,MAAM;EACtC,MAAMG,QAAQ,GAAGF,WAAW,CAAC,CAAC;EAC9B,IAAIE,QAAQ,CAACC,EAAE,KAAKF,MAAM,CAACE,EAAE,EAAE;IAC3B;EACJ;EACA,MAAM,IAAIC,+BAAkB,CAAC;IACzBC,OAAO,EAAE,8DAA8D;IACvEC,IAAI,EAAE;EACV,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAT,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|