@webiny/app-record-locking 6.3.0-beta.4 → 6.4.0-beta.0
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/components/HeadlessCmsActionsAcoCell.js +29 -51
- package/components/HeadlessCmsActionsAcoCell.js.map +1 -1
- package/components/HeadlessCmsContentEntry/ContentEntryGuard.js +26 -34
- package/components/HeadlessCmsContentEntry/ContentEntryGuard.js.map +1 -1
- package/components/HeadlessCmsContentEntry/ContentEntryLocker.js +70 -89
- package/components/HeadlessCmsContentEntry/ContentEntryLocker.js.map +1 -1
- package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js +38 -62
- package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js.map +1 -1
- package/components/HeadlessCmsContentEntry/index.js +0 -2
- package/components/LockedRecord/LockedRecord.js +45 -57
- package/components/LockedRecord/LockedRecord.js.map +1 -1
- package/components/LockedRecord/LockedRecordForceUnlock.js +49 -63
- package/components/LockedRecord/LockedRecordForceUnlock.js.map +1 -1
- package/components/LockedRecord/index.js +0 -2
- package/components/RecordLockingProvider.js +103 -117
- package/components/RecordLockingProvider.js.map +1 -1
- package/components/SecurityPermissions.js +11 -14
- package/components/SecurityPermissions.js.map +1 -1
- package/components/decorators/UseContentEntriesListHookDecorator.js +18 -18
- package/components/decorators/UseContentEntriesListHookDecorator.js.map +1 -1
- package/components/decorators/UseRecordsDecorator.js +13 -22
- package/components/decorators/UseRecordsDecorator.js.map +1 -1
- package/components/decorators/UseSaveEntryDecorator.js +35 -49
- package/components/decorators/UseSaveEntryDecorator.js.map +1 -1
- package/domain/RecordLocking.js +229 -291
- package/domain/RecordLocking.js.map +1 -1
- package/domain/RecordLockingClient.js +17 -16
- package/domain/RecordLockingClient.js.map +1 -1
- package/domain/RecordLockingGetLockRecord.js +13 -15
- package/domain/RecordLockingGetLockRecord.js.map +1 -1
- package/domain/RecordLockingGetLockedEntryLockRecord.js +12 -13
- package/domain/RecordLockingGetLockedEntryLockRecord.js.map +1 -1
- package/domain/RecordLockingIsEntryLocked.js +15 -14
- package/domain/RecordLockingIsEntryLocked.js.map +1 -1
- package/domain/RecordLockingListLockRecords.js +18 -24
- package/domain/RecordLockingListLockRecords.js.map +1 -1
- package/domain/RecordLockingLockEntry.js +8 -9
- package/domain/RecordLockingLockEntry.js.map +1 -1
- package/domain/RecordLockingUnlockEntry.js +12 -13
- package/domain/RecordLockingUnlockEntry.js.map +1 -1
- package/domain/RecordLockingUpdateEntryLock.js +12 -13
- package/domain/RecordLockingUpdateEntryLock.js.map +1 -1
- package/domain/abstractions/IRecordLocking.js +0 -3
- package/domain/abstractions/IRecordLockingClient.js +0 -3
- package/domain/abstractions/IRecordLockingGetLockRecord.js +0 -3
- package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js +0 -3
- package/domain/abstractions/IRecordLockingIsEntryLocked.js +0 -3
- package/domain/abstractions/IRecordLockingListLockRecords.js +0 -3
- package/domain/abstractions/IRecordLockingLockEntry.js +0 -3
- package/domain/abstractions/IRecordLockingUnlockEntry.js +0 -3
- package/domain/abstractions/IRecordLockingUpdateEntryLock.js +0 -3
- package/domain/graphql/fields.js +3 -2
- package/domain/graphql/fields.js.map +1 -1
- package/domain/graphql/getLockRecord.js +3 -2
- package/domain/graphql/getLockRecord.js.map +1 -1
- package/domain/graphql/getLockedEntryLockRecord.js +3 -2
- package/domain/graphql/getLockedEntryLockRecord.js.map +1 -1
- package/domain/graphql/isEntryLocked.js +3 -2
- package/domain/graphql/isEntryLocked.js.map +1 -1
- package/domain/graphql/listLockRecords.js +4 -5
- package/domain/graphql/listLockRecords.js.map +1 -1
- package/domain/graphql/lockEntry.js +3 -4
- package/domain/graphql/lockEntry.js.map +1 -1
- package/domain/graphql/unlockEntry.js +3 -2
- package/domain/graphql/unlockEntry.js.map +1 -1
- package/domain/graphql/updateEntryLock.js +3 -2
- package/domain/graphql/updateEntryLock.js.map +1 -1
- package/domain/permissionsSchema.js +6 -5
- package/domain/permissionsSchema.js.map +1 -1
- package/domain/utils/createRecordLockingClient.js +5 -6
- package/domain/utils/createRecordLockingClient.js.map +1 -1
- package/domain/utils/createRecordLockingError.js +10 -11
- package/domain/utils/createRecordLockingError.js.map +1 -1
- package/features/permissions/abstractions.js +2 -1
- package/features/permissions/abstractions.js.map +1 -1
- package/features/permissions/feature.js +2 -1
- package/features/permissions/feature.js.map +1 -1
- package/hooks/index.js +0 -2
- package/hooks/usePermission.js +14 -15
- package/hooks/usePermission.js.map +1 -1
- package/hooks/useRecordLocking.js +5 -6
- package/hooks/useRecordLocking.js.map +1 -1
- package/index.js +15 -21
- package/index.js.map +1 -1
- package/package.json +12 -12
- package/types.js +0 -3
- package/utils/createCacheKey.js +9 -10
- package/utils/createCacheKey.js.map +1 -1
- package/components/HeadlessCmsContentEntry/index.js.map +0 -1
- package/components/LockedRecord/index.js.map +0 -1
- package/domain/abstractions/IRecordLocking.js.map +0 -1
- package/domain/abstractions/IRecordLockingClient.js.map +0 -1
- package/domain/abstractions/IRecordLockingGetLockRecord.js.map +0 -1
- package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js.map +0 -1
- package/domain/abstractions/IRecordLockingIsEntryLocked.js.map +0 -1
- package/domain/abstractions/IRecordLockingListLockRecords.js.map +0 -1
- package/domain/abstractions/IRecordLockingLockEntry.js.map +0 -1
- package/domain/abstractions/IRecordLockingUnlockEntry.js.map +0 -1
- package/domain/abstractions/IRecordLockingUpdateEntryLock.js.map +0 -1
- package/hooks/index.js.map +0 -1
- package/types.js.map +0 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import graphql_tag from "graphql-tag";
|
|
2
2
|
import { ERROR_FIELDS, LOCK_RECORD_FIELDS } from "./fields.js";
|
|
3
|
-
|
|
4
|
-
return gql`
|
|
3
|
+
const createLockGraphQL = ()=>graphql_tag`
|
|
5
4
|
mutation RecordLockingLockEntry($id: ID!, $type: String!) {
|
|
6
5
|
recordLocking {
|
|
7
6
|
lockEntry(id: $id, type: $type) {
|
|
@@ -15,6 +14,6 @@ export const createLockGraphQL = () => {
|
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
`;
|
|
18
|
-
};
|
|
17
|
+
export { createLockGraphQL };
|
|
19
18
|
|
|
20
19
|
//# sourceMappingURL=lockEntry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/graphql/lockEntry.js","sources":["../../../src/domain/graphql/lockEntry.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport { ERROR_FIELDS, LOCK_RECORD_FIELDS } from \"./fields.js\";\nimport type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types.js\";\nimport type { IRecordLockingLockEntryParams } from \"~/domain/abstractions/IRecordLockingLockEntry.js\";\n\nexport type IRecordLockingLockEntryVariables = IRecordLockingLockEntryParams;\n\nexport interface IRecordLockingLockEntryResponse {\n recordLocking: {\n lockEntry: {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n };\n };\n}\n\nexport const createLockGraphQL = () => {\n return gql`\n mutation RecordLockingLockEntry($id: ID!, $type: String!) {\n recordLocking {\n lockEntry(id: $id, type: $type) {\n data {\n ${LOCK_RECORD_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n `;\n};\n"],"names":["createLockGraphQL","gql","LOCK_RECORD_FIELDS","ERROR_FIELDS"],"mappings":";;AAgBO,MAAMA,oBAAoB,IACtBC,WAAG,CAAC;;;;;wBAKS,EAAEC,mBAAmB;;;wBAGrB,EAAEC,aAAa;;;;;IAKnC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import graphql_tag from "graphql-tag";
|
|
2
2
|
import { ERROR_FIELDS, LOCK_RECORD_FIELDS } from "./fields.js";
|
|
3
|
-
|
|
3
|
+
const UNLOCK_ENTRY_MUTATION = graphql_tag`
|
|
4
4
|
mutation RecordLockingUnlockEntry($id: ID!, $type: String!, $force: Boolean) {
|
|
5
5
|
recordLocking {
|
|
6
6
|
unlockEntry(id: $id, type: $type, force: $force) {
|
|
@@ -14,5 +14,6 @@ export const UNLOCK_ENTRY_MUTATION = gql`
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
`;
|
|
17
|
+
export { UNLOCK_ENTRY_MUTATION };
|
|
17
18
|
|
|
18
19
|
//# sourceMappingURL=unlockEntry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/graphql/unlockEntry.js","sources":["../../../src/domain/graphql/unlockEntry.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport { ERROR_FIELDS, LOCK_RECORD_FIELDS } from \"./fields.js\";\nimport type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types.js\";\nimport type { IRecordLockingUnlockEntryParams } from \"../abstractions/IRecordLockingUnlockEntry.js\";\n\nexport type IRecordLockingUnlockEntryVariables = IRecordLockingUnlockEntryParams;\n\nexport interface RecordLockingUnlockEntryResponse {\n recordLocking: {\n unlockEntry: {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n };\n };\n}\n\nexport const UNLOCK_ENTRY_MUTATION = gql`\n mutation RecordLockingUnlockEntry($id: ID!, $type: String!, $force: Boolean) {\n recordLocking {\n unlockEntry(id: $id, type: $type, force: $force) {\n data {\n ${LOCK_RECORD_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"names":["UNLOCK_ENTRY_MUTATION","gql","LOCK_RECORD_FIELDS","ERROR_FIELDS"],"mappings":";;AAgBO,MAAMA,wBAAwBC,WAAG,CAAC;;;;;oBAKrB,EAAEC,mBAAmB;;;oBAGrB,EAAEC,aAAa;;;;;AAKnC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import graphql_tag from "graphql-tag";
|
|
2
2
|
import { ERROR_FIELDS, LOCK_RECORD_FIELDS } from "./fields.js";
|
|
3
|
-
|
|
3
|
+
const UPDATE_ENTRY_LOCK = graphql_tag`
|
|
4
4
|
mutation RecordLockingUpdateEntryLock($id: ID!, $type: String!) {
|
|
5
5
|
recordLocking {
|
|
6
6
|
updateEntryLock(id: $id, type: $type) {
|
|
@@ -14,5 +14,6 @@ export const UPDATE_ENTRY_LOCK = gql`
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
`;
|
|
17
|
+
export { UPDATE_ENTRY_LOCK };
|
|
17
18
|
|
|
18
19
|
//# sourceMappingURL=updateEntryLock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/graphql/updateEntryLock.js","sources":["../../../src/domain/graphql/updateEntryLock.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport { ERROR_FIELDS, LOCK_RECORD_FIELDS } from \"./fields.js\";\nimport type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types.js\";\nimport type { IRecordLockingUpdateEntryLockExecuteParams } from \"~/domain/abstractions/IRecordLockingUpdateEntryLock.js\";\n\nexport type IRecordLockingUpdateEntryLockVariables = IRecordLockingUpdateEntryLockExecuteParams;\n\nexport interface IRecordLockingUpdateEntryLockResponse {\n recordLocking: {\n updateEntryLock: {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n };\n };\n}\n\nexport const UPDATE_ENTRY_LOCK = gql`\n mutation RecordLockingUpdateEntryLock($id: ID!, $type: String!) {\n recordLocking {\n updateEntryLock(id: $id, type: $type) {\n data {\n ${LOCK_RECORD_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"names":["UPDATE_ENTRY_LOCK","gql","LOCK_RECORD_FIELDS","ERROR_FIELDS"],"mappings":";;AAgBO,MAAMA,oBAAoBC,WAAG,CAAC;;;;;oBAKjB,EAAEC,mBAAmB;;;oBAGrB,EAAEC,aAAa;;;;;AAKnC,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { createPermissionSchema } from "@webiny/app-admin";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
const RECORD_LOCKING_PERMISSIONS_SCHEMA = createPermissionSchema({
|
|
3
|
+
prefix: "recordLocking",
|
|
4
|
+
fullAccess: {
|
|
5
|
+
canForceUnlock: true
|
|
6
|
+
}
|
|
7
7
|
});
|
|
8
|
+
export { RECORD_LOCKING_PERMISSIONS_SCHEMA };
|
|
8
9
|
|
|
9
10
|
//# sourceMappingURL=permissionsSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/permissionsSchema.js","sources":["../../src/domain/permissionsSchema.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/app-admin\";\n\nexport const RECORD_LOCKING_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"recordLocking\",\n fullAccess: { canForceUnlock: true }\n});\n"],"names":["RECORD_LOCKING_PERMISSIONS_SCHEMA","createPermissionSchema"],"mappings":";AAEO,MAAMA,oCAAoCC,uBAAuB;IACpE,QAAQ;IACR,YAAY;QAAE,gBAAgB;IAAK;AACvC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { RecordLockingClient } from "../RecordLockingClient.js";
|
|
2
2
|
import { ApolloClient } from "apollo-client";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
client
|
|
3
|
+
const createRecordLockingClient = (client)=>{
|
|
4
|
+
if (client instanceof ApolloClient) return new RecordLockingClient({
|
|
5
|
+
client
|
|
7
6
|
});
|
|
8
|
-
|
|
9
|
-
return client;
|
|
7
|
+
return client;
|
|
10
8
|
};
|
|
9
|
+
export { createRecordLockingClient };
|
|
11
10
|
|
|
12
11
|
//# sourceMappingURL=createRecordLockingClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/utils/createRecordLockingClient.js","sources":["../../../src/domain/utils/createRecordLockingClient.ts"],"sourcesContent":["import type { IRecordLockingClient } from \"~/domain/abstractions/IRecordLockingClient.js\";\nimport { RecordLockingClient } from \"~/domain/RecordLockingClient.js\";\nimport { ApolloClient } from \"apollo-client\";\n\nexport const createRecordLockingClient = (client: IRecordLockingClient | ApolloClient<any>) => {\n if (client instanceof ApolloClient) {\n return new RecordLockingClient({ client });\n }\n return client;\n};\n"],"names":["createRecordLockingClient","client","ApolloClient","RecordLockingClient"],"mappings":";;AAIO,MAAMA,4BAA4B,CAACC;IACtC,IAAIA,kBAAkBC,cAClB,OAAO,IAAIC,oBAAoB;QAAEF;IAAO;IAE5C,OAAOA;AACX"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const createRecordLockingError = (error)=>{
|
|
2
|
+
if (error instanceof Error) return {
|
|
3
|
+
message: error.message,
|
|
4
|
+
code: error.code || "UNKNOWN_ERROR",
|
|
5
|
+
data: error.data
|
|
6
|
+
};
|
|
3
7
|
return {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
8
|
+
message: error.message,
|
|
9
|
+
code: error.code,
|
|
10
|
+
data: error.data
|
|
7
11
|
};
|
|
8
|
-
}
|
|
9
|
-
return {
|
|
10
|
-
message: error.message,
|
|
11
|
-
code: error.code,
|
|
12
|
-
data: error.data
|
|
13
|
-
};
|
|
14
12
|
};
|
|
13
|
+
export { createRecordLockingError };
|
|
15
14
|
|
|
16
15
|
//# sourceMappingURL=createRecordLockingError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/utils/createRecordLockingError.js","sources":["../../../src/domain/utils/createRecordLockingError.ts"],"sourcesContent":["import type { IRecordLockingError } from \"~/types.js\";\n\nexport interface IError extends Error {\n code?: string;\n data?: any;\n}\n\nexport const createRecordLockingError = (\n error: IError | IRecordLockingError\n): IRecordLockingError => {\n if (error instanceof Error) {\n return {\n message: error.message,\n code: error.code || \"UNKNOWN_ERROR\",\n data: error.data\n };\n }\n return {\n message: error.message,\n code: error.code,\n data: error.data\n };\n};\n"],"names":["createRecordLockingError","error","Error"],"mappings":"AAOO,MAAMA,2BAA2B,CACpCC;IAEA,IAAIA,iBAAiBC,OACjB,OAAO;QACH,SAASD,MAAM,OAAO;QACtB,MAAMA,MAAM,IAAI,IAAI;QACpB,MAAMA,MAAM,IAAI;IACpB;IAEJ,OAAO;QACH,SAASA,MAAM,OAAO;QACtB,MAAMA,MAAM,IAAI;QAChB,MAAMA,MAAM,IAAI;IACpB;AACJ"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createPermissionsAbstraction } from "@webiny/app-admin/exports/admin/security.js";
|
|
2
2
|
import { RECORD_LOCKING_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
|
-
|
|
3
|
+
const RecordLockingPermissions = createPermissionsAbstraction(RECORD_LOCKING_PERMISSIONS_SCHEMA);
|
|
4
|
+
export { RecordLockingPermissions };
|
|
4
5
|
|
|
5
6
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/permissions/abstractions.js","sources":["../../../src/features/permissions/abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/app-admin/exports/admin/security.js\";\nimport type { Permissions } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { RECORD_LOCKING_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\n\nexport const RecordLockingPermissions = createPermissionsAbstraction(\n RECORD_LOCKING_PERMISSIONS_SCHEMA\n);\n\nexport namespace RecordLockingPermissions {\n export type Interface = Permissions<typeof RECORD_LOCKING_PERMISSIONS_SCHEMA>;\n}\n"],"names":["RecordLockingPermissions","createPermissionsAbstraction","RECORD_LOCKING_PERMISSIONS_SCHEMA"],"mappings":";;AAIO,MAAMA,2BAA2BC,6BACpCC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createPermissionsFeature } from "@webiny/app-admin/exports/admin/security.js";
|
|
2
2
|
import { RECORD_LOCKING_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
3
|
import { RecordLockingPermissions } from "./abstractions.js";
|
|
4
|
-
|
|
4
|
+
const RecordLockingPermissionsFeature = createPermissionsFeature(RECORD_LOCKING_PERMISSIONS_SCHEMA, RecordLockingPermissions);
|
|
5
|
+
export { RecordLockingPermissionsFeature };
|
|
5
6
|
|
|
6
7
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/permissions/feature.js","sources":["../../../src/features/permissions/feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { RECORD_LOCKING_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\nimport { RecordLockingPermissions } from \"./abstractions.js\";\n\nexport const RecordLockingPermissionsFeature = createPermissionsFeature(\n RECORD_LOCKING_PERMISSIONS_SCHEMA,\n RecordLockingPermissions\n);\n"],"names":["RecordLockingPermissionsFeature","createPermissionsFeature","RECORD_LOCKING_PERMISSIONS_SCHEMA","RecordLockingPermissions"],"mappings":";;;AAIO,MAAMA,kCAAkCC,yBAC3CC,mCACAC"}
|
package/hooks/index.js
CHANGED
package/hooks/usePermission.js
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
2
|
import { useIdentity } from "@webiny/app-admin";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
canForceUnlock
|
|
17
|
-
};
|
|
3
|
+
const usePermission = ()=>{
|
|
4
|
+
const { identity } = useIdentity();
|
|
5
|
+
const canForceUnlock = useMemo(()=>{
|
|
6
|
+
const hasFullAccess = !!identity.getPermission("recordLocking.*");
|
|
7
|
+
if (hasFullAccess) return true;
|
|
8
|
+
const permission = identity.getPermission("recordLocking");
|
|
9
|
+
return permission?.canForceUnlock === true;
|
|
10
|
+
}, [
|
|
11
|
+
identity
|
|
12
|
+
]);
|
|
13
|
+
return {
|
|
14
|
+
canForceUnlock
|
|
15
|
+
};
|
|
18
16
|
};
|
|
17
|
+
export { usePermission };
|
|
19
18
|
|
|
20
19
|
//# sourceMappingURL=usePermission.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"hooks/usePermission.js","sources":["../../src/hooks/usePermission.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useIdentity } from \"@webiny/app-admin\";\n\nexport const usePermission = () => {\n const { identity } = useIdentity();\n\n const canForceUnlock = useMemo(() => {\n const hasFullAccess = !!identity.getPermission(\"recordLocking.*\");\n if (hasFullAccess) {\n return true;\n }\n const permission = identity.getPermission(\"recordLocking\");\n return permission?.canForceUnlock === true;\n }, [identity]);\n\n return {\n canForceUnlock\n };\n};\n"],"names":["usePermission","identity","useIdentity","canForceUnlock","useMemo","hasFullAccess","permission"],"mappings":";;AAGO,MAAMA,gBAAgB;IACzB,MAAM,EAAEC,QAAQ,EAAE,GAAGC;IAErB,MAAMC,iBAAiBC,QAAQ;QAC3B,MAAMC,gBAAgB,CAAC,CAACJ,SAAS,aAAa,CAAC;QAC/C,IAAII,eACA,OAAO;QAEX,MAAMC,aAAaL,SAAS,aAAa,CAAC;QAC1C,OAAOK,YAAY,mBAAmB;IAC1C,GAAG;QAACL;KAAS;IAEb,OAAO;QACHE;IACJ;AACJ"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { WebinyError } from "@webiny/error";
|
|
2
2
|
import { useContext } from "react";
|
|
3
3
|
import { RecordLockingContext } from "../components/RecordLockingProvider.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
return context;
|
|
4
|
+
const useRecordLocking = ()=>{
|
|
5
|
+
const context = useContext(RecordLockingContext);
|
|
6
|
+
if (!context) throw new WebinyError("useRecordLocking must be used within a RecordLockingProvider.");
|
|
7
|
+
return context;
|
|
10
8
|
};
|
|
9
|
+
export { useRecordLocking };
|
|
11
10
|
|
|
12
11
|
//# sourceMappingURL=useRecordLocking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"hooks/useRecordLocking.js","sources":["../../src/hooks/useRecordLocking.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { useContext } from \"react\";\nimport { RecordLockingContext } from \"~/components/RecordLockingProvider.js\";\nimport type { IRecordLockingContext, IPossiblyRecordLockingRecord } from \"~/types.js\";\n\nexport const useRecordLocking = <\n T extends IPossiblyRecordLockingRecord = IPossiblyRecordLockingRecord\n>() => {\n const context = useContext(RecordLockingContext);\n if (!context) {\n throw new WebinyError(\"useRecordLocking must be used within a RecordLockingProvider.\");\n }\n return context as IRecordLockingContext<T>;\n};\n"],"names":["useRecordLocking","context","useContext","RecordLockingContext","WebinyError"],"mappings":";;;AAKO,MAAMA,mBAAmB;IAG5B,MAAMC,UAAUC,WAAWC;IAC3B,IAAI,CAACF,SACD,MAAM,IAAIG,YAAY;IAE1B,OAAOH;AACX"}
|
package/index.js
CHANGED
|
@@ -1,31 +1,25 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react from "react";
|
|
2
2
|
import { Provider } from "@webiny/app";
|
|
3
|
-
import { RegisterFeature } from "@webiny/app-admin";
|
|
4
|
-
import { RecordLockingProvider as
|
|
3
|
+
import { RegisterFeature, useWcp } from "@webiny/app-admin";
|
|
4
|
+
import { RecordLockingProvider as RecordLockingProvider_js_RecordLockingProvider } from "./components/RecordLockingProvider.js";
|
|
5
5
|
import { HeadlessCmsActionsAcoCell } from "./components/HeadlessCmsActionsAcoCell.js";
|
|
6
6
|
import { HeadlessCmsContentEntry } from "./components/HeadlessCmsContentEntry/index.js";
|
|
7
|
-
import { useWcp } from "@webiny/app-admin";
|
|
8
7
|
import { SecurityPermissions } from "./components/SecurityPermissions.js";
|
|
9
8
|
import { RecordLockingPermissionsFeature } from "./features/permissions/feature.js";
|
|
10
9
|
export * from "./components/RecordLockingProvider.js";
|
|
11
10
|
export * from "./hooks/index.js";
|
|
12
|
-
const RecordLockingHoc = Component
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RegisterFeature, {
|
|
25
|
-
feature: RecordLockingPermissionsFeature
|
|
26
|
-
}), /*#__PURE__*/React.createElement(SecurityPermissions, null), /*#__PURE__*/React.createElement(Provider, {
|
|
27
|
-
hoc: RecordLockingHoc
|
|
28
|
-
}), /*#__PURE__*/React.createElement(HeadlessCmsActionsAcoCell, null), /*#__PURE__*/React.createElement(HeadlessCmsContentEntry, null));
|
|
11
|
+
const RecordLockingHoc = (Component)=>function({ children }) {
|
|
12
|
+
return /*#__PURE__*/ react.createElement(Component, null, /*#__PURE__*/ react.createElement(RecordLockingProvider_js_RecordLockingProvider, null, children));
|
|
13
|
+
};
|
|
14
|
+
const RecordLocking = ()=>{
|
|
15
|
+
const wcp = useWcp();
|
|
16
|
+
if (!wcp.canUseRecordLocking()) return null;
|
|
17
|
+
return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
18
|
+
feature: RecordLockingPermissionsFeature
|
|
19
|
+
}), /*#__PURE__*/ react.createElement(SecurityPermissions, null), /*#__PURE__*/ react.createElement(Provider, {
|
|
20
|
+
hoc: RecordLockingHoc
|
|
21
|
+
}), /*#__PURE__*/ react.createElement(HeadlessCmsActionsAcoCell, null), /*#__PURE__*/ react.createElement(HeadlessCmsContentEntry, null));
|
|
29
22
|
};
|
|
23
|
+
export { RecordLocking };
|
|
30
24
|
|
|
31
25
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app\";\nimport { RegisterFeature } from \"@webiny/app-admin\";\nimport { RecordLockingProvider as RecordLockingProviderComponent } from \"~/components/RecordLockingProvider.js\";\nimport { HeadlessCmsActionsAcoCell } from \"~/components/HeadlessCmsActionsAcoCell.js\";\nimport { HeadlessCmsContentEntry } from \"~/components/HeadlessCmsContentEntry/index.js\";\nimport { useWcp } from \"@webiny/app-admin\";\nimport { SecurityPermissions } from \"~/components/SecurityPermissions.js\";\nimport { RecordLockingPermissionsFeature } from \"~/features/permissions/feature.js\";\n\nexport * from \"~/components/RecordLockingProvider.js\";\nexport * from \"~/hooks/index.js\";\n\nexport interface RecordLockingProviderProps {\n children: React.ReactNode;\n}\n\nconst RecordLockingHoc = (Component: React.ComponentType<RecordLockingProviderProps>) => {\n return function RecordLockingProvider({ children }: RecordLockingProviderProps) {\n return (\n <Component>\n <RecordLockingProviderComponent>{children}</RecordLockingProviderComponent>\n </Component>\n );\n };\n};\n\nexport const RecordLocking = () => {\n const wcp = useWcp();\n\n if (!wcp.canUseRecordLocking()) {\n return null;\n }\n\n return (\n <>\n <RegisterFeature feature={RecordLockingPermissionsFeature} />\n <SecurityPermissions />\n <Provider hoc={RecordLockingHoc} />\n <HeadlessCmsActionsAcoCell />\n <HeadlessCmsContentEntry />\n </>\n );\n};\n"],"names":["RecordLockingHoc","Component","children","RecordLockingProviderComponent","RecordLocking","wcp","useWcp","RegisterFeature","RecordLockingPermissionsFeature","SecurityPermissions","Provider","HeadlessCmsActionsAcoCell","HeadlessCmsContentEntry"],"mappings":";;;;;;;;;;AAiBA,MAAMA,mBAAmB,CAACC,YACf,SAA+B,EAAEC,QAAQ,EAA8B;QAC1E,OAAO,WAAP,GACI,oBAACD,WAAAA,MAAAA,WAAAA,GACG,oBAACE,gDAA8BA,MAAED;IAG7C;AAGG,MAAME,gBAAgB;IACzB,MAAMC,MAAMC;IAEZ,IAAI,CAACD,IAAI,mBAAmB,IACxB,OAAO;IAGX,OAAO,WAAP,GACI,wDACI,oBAACE,iBAAeA;QAAC,SAASC;sBAC1B,oBAACC,qBAAmBA,OAAAA,WAAAA,GACpB,oBAACC,UAAQA;QAAC,KAAKV;sBACf,oBAACW,2BAAyBA,OAAAA,WAAAA,GAC1B,oBAACC,yBAAuBA;AAGpC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-record-locking",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.4.0-beta.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./index.js",
|
|
@@ -18,15 +18,15 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@apollo/react-hooks": "3.1.5",
|
|
21
|
-
"@webiny/admin-ui": "6.
|
|
22
|
-
"@webiny/app": "6.
|
|
23
|
-
"@webiny/app-aco": "6.
|
|
24
|
-
"@webiny/app-admin": "6.
|
|
25
|
-
"@webiny/app-headless-cms": "6.
|
|
26
|
-
"@webiny/app-websockets": "6.
|
|
27
|
-
"@webiny/error": "6.
|
|
28
|
-
"@webiny/icons": "6.
|
|
29
|
-
"@webiny/utils": "6.
|
|
21
|
+
"@webiny/admin-ui": "6.4.0-beta.0",
|
|
22
|
+
"@webiny/app": "6.4.0-beta.0",
|
|
23
|
+
"@webiny/app-aco": "6.4.0-beta.0",
|
|
24
|
+
"@webiny/app-admin": "6.4.0-beta.0",
|
|
25
|
+
"@webiny/app-headless-cms": "6.4.0-beta.0",
|
|
26
|
+
"@webiny/app-websockets": "6.4.0-beta.0",
|
|
27
|
+
"@webiny/error": "6.4.0-beta.0",
|
|
28
|
+
"@webiny/icons": "6.4.0-beta.0",
|
|
29
|
+
"@webiny/utils": "6.4.0-beta.0",
|
|
30
30
|
"apollo-client": "2.6.10",
|
|
31
31
|
"apollo-link": "1.2.14",
|
|
32
32
|
"crypto-hash": "4.0.1",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"react-dom": "18.3.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@webiny/build-tools": "6.
|
|
38
|
+
"@webiny/build-tools": "6.4.0-beta.0",
|
|
39
39
|
"rimraf": "6.1.3",
|
|
40
40
|
"typescript": "6.0.3"
|
|
41
41
|
},
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"access": "public",
|
|
44
44
|
"directory": "dist"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "a545d7529828af07d08d49c3da1bcb967483b9ce"
|
|
47
47
|
}
|
package/types.js
CHANGED
package/utils/createCacheKey.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { sha1 } from "crypto-hash";
|
|
2
|
-
const createKey = input
|
|
3
|
-
|
|
4
|
-
return input;
|
|
5
|
-
}
|
|
6
|
-
return JSON.stringify(input);
|
|
2
|
+
const createKey = (input)=>{
|
|
3
|
+
if ("string" == typeof input) return input;
|
|
4
|
+
return JSON.stringify(input);
|
|
7
5
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
const createCacheKey = (input)=>{
|
|
7
|
+
const key = createKey(input);
|
|
8
|
+
return sha1(key, {
|
|
9
|
+
outputFormat: "hex"
|
|
10
|
+
});
|
|
13
11
|
};
|
|
12
|
+
export { createCacheKey };
|
|
14
13
|
|
|
15
14
|
//# sourceMappingURL=createCacheKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"utils/createCacheKey.js","sources":["../../src/utils/createCacheKey.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/app/types.js\";\nimport { sha1 } from \"crypto-hash\";\n\nexport type ICreateCacheKeyInput = string | GenericRecord | ICreateCacheKeyInput[];\n\nconst createKey = (input: ICreateCacheKeyInput): string => {\n if (typeof input === \"string\") {\n return input;\n }\n return JSON.stringify(input);\n};\n\nexport const createCacheKey = (input: ICreateCacheKeyInput): Promise<string> => {\n const key = createKey(input);\n\n return sha1(key, {\n outputFormat: \"hex\"\n });\n};\n"],"names":["createKey","input","JSON","createCacheKey","key","sha1"],"mappings":";AAKA,MAAMA,YAAY,CAACC;IACf,IAAI,AAAiB,YAAjB,OAAOA,OACP,OAAOA;IAEX,OAAOC,KAAK,SAAS,CAACD;AAC1B;AAEO,MAAME,iBAAiB,CAACF;IAC3B,MAAMG,MAAMJ,UAAUC;IAEtB,OAAOI,KAAKD,KAAK;QACb,cAAc;IAClB;AACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./HeadlessCmsContentEntry.js\";\n"],"mappings":"AAAA","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./LockedRecord.js\";\n"],"mappings":"AAAA","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["IRecordLocking.ts"],"sourcesContent":["import type {\n IFetchLockedEntryLockRecordParams,\n IFetchLockRecordParams,\n IFetchLockRecordResult,\n IIsRecordLockedParams,\n IPossiblyRecordLockingRecord,\n IRecordLockingError,\n IRecordLockingLockRecord,\n IRecordLockingRecord,\n IUnlockEntryParams,\n IUpdateEntryLockParams\n} from \"~/types.js\";\nimport type { IRecordLockingUnlockEntryResult } from \"./IRecordLockingUnlockEntry.js\";\n\nexport interface IRecordLockingUpdateEntryLockResult {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n}\n\nexport interface IRecordLocking<\n T extends IPossiblyRecordLockingRecord = IPossiblyRecordLockingRecord\n> {\n loading: boolean;\n records: IRecordLockingRecord[];\n setRecords(\n folderId: string,\n type: string,\n records: T[]\n ): Promise<IRecordLockingRecord[] | undefined>;\n isLockExpired(input: Date | string): boolean;\n isRecordLocked(record: IIsRecordLockedParams): boolean;\n getLockRecordEntry(id: string): IRecordLockingRecord | undefined;\n fetchLockRecord(params: IFetchLockRecordParams): Promise<IFetchLockRecordResult>;\n fetchLockedEntryLockRecord(\n params: IFetchLockedEntryLockRecordParams\n ): Promise<IRecordLockingLockRecord | null>;\n updateEntryLock(params: IUpdateEntryLockParams): Promise<IRecordLockingUpdateEntryLockResult>;\n /**\n * Removes entry lock from the state - this is not an API call.\n */\n removeEntryLock(params: IUnlockEntryParams): void;\n /**\n * Unlocks entry via an API call.\n */\n unlockEntry(\n params: IUnlockEntryParams,\n force?: boolean\n ): Promise<IRecordLockingUnlockEntryResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["IRecordLockingClient.ts"],"sourcesContent":["import type { ApolloQueryResult, QueryOptions, MutationOptions } from \"apollo-client\";\nimport type { FetchResult } from \"apollo-link\";\n\nexport interface IRecordLockingClient {\n query<T, R>(params: QueryOptions<R>): Promise<ApolloQueryResult<T>>;\n mutation<T, R>(options: MutationOptions<T, R>): Promise<FetchResult<T>>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["IRecordLockingGetLockRecord.ts"],"sourcesContent":["import type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types.js\";\n\nexport interface IRecordLockingGetLockRecordExecuteParams {\n id: string;\n type: string;\n}\n\nexport interface IRecordLockingGetLockRecordExecuteResult {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n}\n\nexport interface IRecordLockingGetLockRecord {\n execute(\n params: IRecordLockingGetLockRecordExecuteParams\n ): Promise<IRecordLockingGetLockRecordExecuteResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["IRecordLockingGetLockedEntryLockRecord.ts"],"sourcesContent":["import type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types.js\";\n\nexport interface IRecordLockingGetLockedEntryLockRecordExecuteParams {\n id: string;\n type: string;\n}\n\nexport interface IRecordLockingGetLockedEntryLockRecordExecuteResult {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n}\n\nexport interface IRecordLockingGetLockedEntryLockRecord {\n execute(\n params: IRecordLockingGetLockedEntryLockRecordExecuteParams\n ): Promise<IRecordLockingGetLockedEntryLockRecordExecuteResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["IRecordLockingIsEntryLocked.ts"],"sourcesContent":["export interface IRecordLockingIsEntryLockedParams {\n id: string;\n type: string;\n}\n\nexport type IRecordLockingIsEntryLockedResult = boolean;\n\nexport interface IRecordLockingIsEntryLocked {\n execute(params: IRecordLockingIsEntryLockedParams): Promise<IRecordLockingIsEntryLockedResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["IRecordLockingListLockRecords.ts"],"sourcesContent":["import type { IRecordLockingError, IRecordLockingLockRecord, IRecordLockingMeta } from \"~/types.js\";\n\nexport interface IRecordLockingListLockRecordsParamsWhere {\n id_in?: string[];\n type?: string;\n}\n\nexport interface IRecordLockingListLockRecordsParams {\n where?: IRecordLockingListLockRecordsParamsWhere;\n sort?: string[];\n limit?: number;\n after?: string;\n}\n\nexport interface IRecordLockingListLockRecordsResult {\n data: IRecordLockingLockRecord[] | null;\n error: IRecordLockingError | null;\n meta: IRecordLockingMeta | null;\n}\n\nexport interface IRecordLockingListLockRecords {\n execute(\n params: IRecordLockingListLockRecordsParams\n ): Promise<IRecordLockingListLockRecordsResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["IRecordLockingLockEntry.ts"],"sourcesContent":["import type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types.js\";\n\nexport interface IRecordLockingLockEntryParams {\n id: string;\n type: string;\n}\n\nexport interface IRecordLockingLockEntryResult {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n}\n\nexport interface IRecordLockingLockEntry {\n execute(params: IRecordLockingLockEntryParams): Promise<IRecordLockingLockEntryResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["IRecordLockingUnlockEntry.ts"],"sourcesContent":["import type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types.js\";\n\nexport interface IRecordLockingUnlockEntryParams {\n id: string;\n type: string;\n force?: boolean;\n}\n\nexport interface IRecordLockingUnlockEntryResult {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n}\n\nexport interface IRecordLockingUnlockEntry {\n execute(params: IRecordLockingUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["IRecordLockingUpdateEntryLock.ts"],"sourcesContent":["import type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types.js\";\n\nexport interface IRecordLockingUpdateEntryLockExecuteParams {\n id: string;\n type: string;\n}\nexport interface IRecordLockingUpdateEntryLockExecuteResult {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n}\n\nexport interface IRecordLockingUpdateEntryLock {\n execute(\n params: IRecordLockingUpdateEntryLockExecuteParams\n ): Promise<IRecordLockingUpdateEntryLockExecuteResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
package/hooks/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./useRecordLocking.js\";\nexport * from \"./usePermission.js\";\n"],"mappings":"AAAA;AACA","ignoreList":[]}
|
package/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { CmsContentEntry } from \"@webiny/app-headless-cms/types.js\";\nimport type { GenericRecord } from \"@webiny/app/types.js\";\nimport type { IRecordLockingUnlockEntryResult } from \"~/domain/abstractions/IRecordLockingUnlockEntry.js\";\nimport type { IRecordLockingUpdateEntryLockResult } from \"~/domain/abstractions/IRecordLocking.js\";\nimport { Identity } from \"@webiny/app-admin/domain/Identity.js\";\n\nexport interface IRecordLockingIdentity {\n id: string;\n displayName: string;\n type: string;\n}\n\nexport interface IRecordLockingRecordLocked {\n lockedBy: IRecordLockingIdentity;\n lockedOn: string;\n expiresOn: string;\n actions: IRecordLockingLockRecordAction[];\n}\n\nexport interface IRecordLockingCmsEntryValuesAction {\n type: string;\n message: string;\n createdBy: Identity;\n createdOn: string;\n}\n\nexport interface IRecordLockingCmsEntryValues {\n lockedBy: Identity;\n lockedOn: string;\n updatedOn: string;\n expiresOn: string;\n targetId: string;\n type: string;\n actions: IRecordLockingCmsEntryValuesAction;\n}\n\nexport interface IPossiblyRecordLockingRecord extends CmsContentEntry<IRecordLockingCmsEntryValues> {\n $selectable?: boolean;\n $type?: \"RECORD\";\n $lockingType?: string;\n $locked?: IRecordLockingRecordLocked | null;\n}\n\nexport interface IRecordLockingRecord extends IPossiblyRecordLockingRecord {\n $lockingType: string;\n}\n\nexport type IIsRecordLockedParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IUpdateEntryLockParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IUnlockEntryParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IFetchLockRecordParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IFetchLockedEntryLockRecordParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport interface IFetchLockRecordResult {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n}\n\nexport interface IRecordLockingContext<\n T extends IPossiblyRecordLockingRecord = IPossiblyRecordLockingRecord\n> {\n readonly loading: boolean;\n readonly records: IPossiblyRecordLockingRecord[];\n readonly error?: IRecordLockingError | null;\n setRecords(folderId: string, type: string, records: T[]): Promise<void>;\n updateEntryLock(params: IUpdateEntryLockParams): Promise<IRecordLockingUpdateEntryLockResult>;\n isRecordLocked(params?: IIsRecordLockedParams): boolean;\n getLockRecordEntry(id: string): IRecordLockingRecord | undefined;\n fetchLockRecord(params: IFetchLockRecordParams): Promise<IFetchLockRecordResult>;\n fetchLockedEntryLockRecord(\n params: IFetchLockedEntryLockRecordParams\n ): Promise<IRecordLockingLockRecord | null>;\n unlockEntry(params: IUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;\n removeEntryLock(params: IUnlockEntryParams): void;\n unlockEntryForce(params: IUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;\n isLockExpired(input: Date | string): boolean;\n}\n\nexport interface IRecordLockingLockRecordAction {\n type: string;\n message: string;\n createdBy: IRecordLockingIdentity;\n createdOn: string;\n}\n\nexport interface IRecordLockingLockRecord {\n id: string;\n lockedOn: string;\n expiresOn: string;\n lockedBy: IRecordLockingIdentity;\n targetId: string;\n type: string;\n actions: IRecordLockingLockRecordAction[];\n}\n\nexport interface IRecordLockingMeta {\n totalCount: number;\n cursor: string | null;\n hasMoreItems: boolean;\n}\n\nexport interface IRecordLockingError<T = GenericRecord> {\n message: string;\n code: string;\n data?: T;\n}\n\nexport interface RecordLockingSecurityPermission extends Identity.Permission {\n canForceUnlock?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|