@webiny/app-record-locking 6.3.0 → 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.
Files changed (101) hide show
  1. package/components/HeadlessCmsActionsAcoCell.js +29 -51
  2. package/components/HeadlessCmsActionsAcoCell.js.map +1 -1
  3. package/components/HeadlessCmsContentEntry/ContentEntryGuard.js +26 -34
  4. package/components/HeadlessCmsContentEntry/ContentEntryGuard.js.map +1 -1
  5. package/components/HeadlessCmsContentEntry/ContentEntryLocker.js +70 -89
  6. package/components/HeadlessCmsContentEntry/ContentEntryLocker.js.map +1 -1
  7. package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js +38 -62
  8. package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js.map +1 -1
  9. package/components/HeadlessCmsContentEntry/index.js +0 -2
  10. package/components/LockedRecord/LockedRecord.js +45 -57
  11. package/components/LockedRecord/LockedRecord.js.map +1 -1
  12. package/components/LockedRecord/LockedRecordForceUnlock.js +49 -63
  13. package/components/LockedRecord/LockedRecordForceUnlock.js.map +1 -1
  14. package/components/LockedRecord/index.js +0 -2
  15. package/components/RecordLockingProvider.js +103 -117
  16. package/components/RecordLockingProvider.js.map +1 -1
  17. package/components/SecurityPermissions.js +11 -14
  18. package/components/SecurityPermissions.js.map +1 -1
  19. package/components/decorators/UseContentEntriesListHookDecorator.js +18 -18
  20. package/components/decorators/UseContentEntriesListHookDecorator.js.map +1 -1
  21. package/components/decorators/UseRecordsDecorator.js +13 -22
  22. package/components/decorators/UseRecordsDecorator.js.map +1 -1
  23. package/components/decorators/UseSaveEntryDecorator.js +35 -49
  24. package/components/decorators/UseSaveEntryDecorator.js.map +1 -1
  25. package/domain/RecordLocking.js +229 -291
  26. package/domain/RecordLocking.js.map +1 -1
  27. package/domain/RecordLockingClient.js +17 -16
  28. package/domain/RecordLockingClient.js.map +1 -1
  29. package/domain/RecordLockingGetLockRecord.js +13 -15
  30. package/domain/RecordLockingGetLockRecord.js.map +1 -1
  31. package/domain/RecordLockingGetLockedEntryLockRecord.js +12 -13
  32. package/domain/RecordLockingGetLockedEntryLockRecord.js.map +1 -1
  33. package/domain/RecordLockingIsEntryLocked.js +15 -14
  34. package/domain/RecordLockingIsEntryLocked.js.map +1 -1
  35. package/domain/RecordLockingListLockRecords.js +18 -24
  36. package/domain/RecordLockingListLockRecords.js.map +1 -1
  37. package/domain/RecordLockingLockEntry.js +8 -9
  38. package/domain/RecordLockingLockEntry.js.map +1 -1
  39. package/domain/RecordLockingUnlockEntry.js +12 -13
  40. package/domain/RecordLockingUnlockEntry.js.map +1 -1
  41. package/domain/RecordLockingUpdateEntryLock.js +12 -13
  42. package/domain/RecordLockingUpdateEntryLock.js.map +1 -1
  43. package/domain/abstractions/IRecordLocking.js +0 -3
  44. package/domain/abstractions/IRecordLockingClient.js +0 -3
  45. package/domain/abstractions/IRecordLockingGetLockRecord.js +0 -3
  46. package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js +0 -3
  47. package/domain/abstractions/IRecordLockingIsEntryLocked.js +0 -3
  48. package/domain/abstractions/IRecordLockingListLockRecords.js +0 -3
  49. package/domain/abstractions/IRecordLockingLockEntry.js +0 -3
  50. package/domain/abstractions/IRecordLockingUnlockEntry.js +0 -3
  51. package/domain/abstractions/IRecordLockingUpdateEntryLock.js +0 -3
  52. package/domain/graphql/fields.js +3 -2
  53. package/domain/graphql/fields.js.map +1 -1
  54. package/domain/graphql/getLockRecord.js +3 -2
  55. package/domain/graphql/getLockRecord.js.map +1 -1
  56. package/domain/graphql/getLockedEntryLockRecord.js +3 -2
  57. package/domain/graphql/getLockedEntryLockRecord.js.map +1 -1
  58. package/domain/graphql/isEntryLocked.js +3 -2
  59. package/domain/graphql/isEntryLocked.js.map +1 -1
  60. package/domain/graphql/listLockRecords.js +4 -5
  61. package/domain/graphql/listLockRecords.js.map +1 -1
  62. package/domain/graphql/lockEntry.js +3 -4
  63. package/domain/graphql/lockEntry.js.map +1 -1
  64. package/domain/graphql/unlockEntry.js +3 -2
  65. package/domain/graphql/unlockEntry.js.map +1 -1
  66. package/domain/graphql/updateEntryLock.js +3 -2
  67. package/domain/graphql/updateEntryLock.js.map +1 -1
  68. package/domain/permissionsSchema.js +6 -5
  69. package/domain/permissionsSchema.js.map +1 -1
  70. package/domain/utils/createRecordLockingClient.js +5 -6
  71. package/domain/utils/createRecordLockingClient.js.map +1 -1
  72. package/domain/utils/createRecordLockingError.js +10 -11
  73. package/domain/utils/createRecordLockingError.js.map +1 -1
  74. package/features/permissions/abstractions.js +2 -1
  75. package/features/permissions/abstractions.js.map +1 -1
  76. package/features/permissions/feature.js +2 -1
  77. package/features/permissions/feature.js.map +1 -1
  78. package/hooks/index.js +0 -2
  79. package/hooks/usePermission.js +14 -15
  80. package/hooks/usePermission.js.map +1 -1
  81. package/hooks/useRecordLocking.js +5 -6
  82. package/hooks/useRecordLocking.js.map +1 -1
  83. package/index.js +15 -21
  84. package/index.js.map +1 -1
  85. package/package.json +12 -12
  86. package/types.js +0 -3
  87. package/utils/createCacheKey.js +9 -10
  88. package/utils/createCacheKey.js.map +1 -1
  89. package/components/HeadlessCmsContentEntry/index.js.map +0 -1
  90. package/components/LockedRecord/index.js.map +0 -1
  91. package/domain/abstractions/IRecordLocking.js.map +0 -1
  92. package/domain/abstractions/IRecordLockingClient.js.map +0 -1
  93. package/domain/abstractions/IRecordLockingGetLockRecord.js.map +0 -1
  94. package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js.map +0 -1
  95. package/domain/abstractions/IRecordLockingIsEntryLocked.js.map +0 -1
  96. package/domain/abstractions/IRecordLockingListLockRecords.js.map +0 -1
  97. package/domain/abstractions/IRecordLockingLockEntry.js.map +0 -1
  98. package/domain/abstractions/IRecordLockingUnlockEntry.js.map +0 -1
  99. package/domain/abstractions/IRecordLockingUpdateEntryLock.js.map +0 -1
  100. package/hooks/index.js.map +0 -1
  101. package/types.js.map +0 -1
@@ -1,7 +1,6 @@
1
- import gql from "graphql-tag";
1
+ import graphql_tag from "graphql-tag";
2
2
  import { ERROR_FIELDS, LOCK_RECORD_FIELDS } from "./fields.js";
3
- export const createLockGraphQL = () => {
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,"names":["gql","ERROR_FIELDS","LOCK_RECORD_FIELDS","createLockGraphQL"],"sources":["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"],"mappings":"AAAA,OAAOA,GAAG,MAAM,aAAa;AAC7B,SAASC,YAAY,EAAEC,kBAAkB;AAezC,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACnC,OAAOH,GAAG;AACd;AACA;AACA;AACA;AACA,0BAA0BE,kBAAkB;AAC5C;AACA;AACA,0BAA0BD,YAAY;AACtC;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC","ignoreList":[]}
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 gql from "graphql-tag";
1
+ import graphql_tag from "graphql-tag";
2
2
  import { ERROR_FIELDS, LOCK_RECORD_FIELDS } from "./fields.js";
3
- export const UNLOCK_ENTRY_MUTATION = gql`
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,"names":["gql","ERROR_FIELDS","LOCK_RECORD_FIELDS","UNLOCK_ENTRY_MUTATION"],"sources":["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"],"mappings":"AAAA,OAAOA,GAAG,MAAM,aAAa;AAC7B,SAASC,YAAY,EAAEC,kBAAkB;AAezC,OAAO,MAAMC,qBAAqB,GAAGH,GAAG;AACxC;AACA;AACA;AACA;AACA,sBAAsBE,kBAAkB;AACxC;AACA;AACA,sBAAsBD,YAAY;AAClC;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
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 gql from "graphql-tag";
1
+ import graphql_tag from "graphql-tag";
2
2
  import { ERROR_FIELDS, LOCK_RECORD_FIELDS } from "./fields.js";
3
- export const UPDATE_ENTRY_LOCK = gql`
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,"names":["gql","ERROR_FIELDS","LOCK_RECORD_FIELDS","UPDATE_ENTRY_LOCK"],"sources":["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"],"mappings":"AAAA,OAAOA,GAAG,MAAM,aAAa;AAC7B,SAASC,YAAY,EAAEC,kBAAkB;AAezC,OAAO,MAAMC,iBAAiB,GAAGH,GAAG;AACpC;AACA;AACA;AACA;AACA,sBAAsBE,kBAAkB;AACxC;AACA;AACA,sBAAsBD,YAAY;AAClC;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
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
- export const RECORD_LOCKING_PERMISSIONS_SCHEMA = createPermissionSchema({
3
- prefix: "recordLocking",
4
- fullAccess: {
5
- canForceUnlock: true
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,"names":["createPermissionSchema","RECORD_LOCKING_PERMISSIONS_SCHEMA","prefix","fullAccess","canForceUnlock"],"sources":["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"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,mBAAmB;AAE1D,OAAO,MAAMC,iCAAiC,GAAGD,sBAAsB,CAAC;EACpEE,MAAM,EAAE,eAAe;EACvBC,UAAU,EAAE;IAAEC,cAAc,EAAE;EAAK;AACvC,CAAC,CAAC","ignoreList":[]}
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
- export const createRecordLockingClient = client => {
4
- if (client instanceof ApolloClient) {
5
- return new RecordLockingClient({
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,"names":["RecordLockingClient","ApolloClient","createRecordLockingClient","client"],"sources":["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"],"mappings":"AACA,SAASA,mBAAmB;AAC5B,SAASC,YAAY,QAAQ,eAAe;AAE5C,OAAO,MAAMC,yBAAyB,GAAIC,MAAgD,IAAK;EAC3F,IAAIA,MAAM,YAAYF,YAAY,EAAE;IAChC,OAAO,IAAID,mBAAmB,CAAC;MAAEG;IAAO,CAAC,CAAC;EAC9C;EACA,OAAOA,MAAM;AACjB,CAAC","ignoreList":[]}
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
- export const createRecordLockingError = error => {
2
- if (error instanceof Error) {
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
- message: error.message,
5
- code: error.code || "UNKNOWN_ERROR",
6
- data: error.data
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,"names":["createRecordLockingError","error","Error","message","code","data"],"sources":["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"],"mappings":"AAOA,OAAO,MAAMA,wBAAwB,GACjCC,KAAmC,IACb;EACtB,IAAIA,KAAK,YAAYC,KAAK,EAAE;IACxB,OAAO;MACHC,OAAO,EAAEF,KAAK,CAACE,OAAO;MACtBC,IAAI,EAAEH,KAAK,CAACG,IAAI,IAAI,eAAe;MACnCC,IAAI,EAAEJ,KAAK,CAACI;IAChB,CAAC;EACL;EACA,OAAO;IACHF,OAAO,EAAEF,KAAK,CAACE,OAAO;IACtBC,IAAI,EAAEH,KAAK,CAACG,IAAI;IAChBC,IAAI,EAAEJ,KAAK,CAACI;EAChB,CAAC;AACL,CAAC","ignoreList":[]}
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
- export const RecordLockingPermissions = createPermissionsAbstraction(RECORD_LOCKING_PERMISSIONS_SCHEMA);
3
+ const RecordLockingPermissions = createPermissionsAbstraction(RECORD_LOCKING_PERMISSIONS_SCHEMA);
4
+ export { RecordLockingPermissions };
4
5
 
5
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createPermissionsAbstraction","RECORD_LOCKING_PERMISSIONS_SCHEMA","RecordLockingPermissions"],"sources":["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"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,6CAA6C;AAE1F,SAASC,iCAAiC;AAE1C,OAAO,MAAMC,wBAAwB,GAAGF,4BAA4B,CAChEC,iCACJ,CAAC","ignoreList":[]}
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
- export const RecordLockingPermissionsFeature = createPermissionsFeature(RECORD_LOCKING_PERMISSIONS_SCHEMA, RecordLockingPermissions);
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,"names":["createPermissionsFeature","RECORD_LOCKING_PERMISSIONS_SCHEMA","RecordLockingPermissions","RecordLockingPermissionsFeature"],"sources":["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"],"mappings":"AAAA,SAASA,wBAAwB,QAAQ,6CAA6C;AACtF,SAASC,iCAAiC;AAC1C,SAASC,wBAAwB;AAEjC,OAAO,MAAMC,+BAA+B,GAAGH,wBAAwB,CACnEC,iCAAiC,EACjCC,wBACJ,CAAC","ignoreList":[]}
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
@@ -1,4 +1,2 @@
1
1
  export * from "./useRecordLocking.js";
2
2
  export * from "./usePermission.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -1,20 +1,19 @@
1
1
  import { useMemo } from "react";
2
2
  import { useIdentity } from "@webiny/app-admin";
3
- export const usePermission = () => {
4
- const {
5
- identity
6
- } = useIdentity();
7
- const canForceUnlock = useMemo(() => {
8
- const hasFullAccess = !!identity.getPermission("recordLocking.*");
9
- if (hasFullAccess) {
10
- return true;
11
- }
12
- const permission = identity.getPermission("recordLocking");
13
- return permission?.canForceUnlock === true;
14
- }, [identity]);
15
- return {
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,"names":["useMemo","useIdentity","usePermission","identity","canForceUnlock","hasFullAccess","getPermission","permission"],"sources":["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"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,WAAW,QAAQ,mBAAmB;AAE/C,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC/B,MAAM;IAAEC;EAAS,CAAC,GAAGF,WAAW,CAAC,CAAC;EAElC,MAAMG,cAAc,GAAGJ,OAAO,CAAC,MAAM;IACjC,MAAMK,aAAa,GAAG,CAAC,CAACF,QAAQ,CAACG,aAAa,CAAC,iBAAiB,CAAC;IACjE,IAAID,aAAa,EAAE;MACf,OAAO,IAAI;IACf;IACA,MAAME,UAAU,GAAGJ,QAAQ,CAACG,aAAa,CAAC,eAAe,CAAC;IAC1D,OAAOC,UAAU,EAAEH,cAAc,KAAK,IAAI;EAC9C,CAAC,EAAE,CAACD,QAAQ,CAAC,CAAC;EAEd,OAAO;IACHC;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
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
- export const useRecordLocking = () => {
5
- const context = useContext(RecordLockingContext);
6
- if (!context) {
7
- throw new WebinyError("useRecordLocking must be used within a RecordLockingProvider.");
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,"names":["WebinyError","useContext","RecordLockingContext","useRecordLocking","context"],"sources":["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"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAC3C,SAASC,UAAU,QAAQ,OAAO;AAClC,SAASC,oBAAoB;AAG7B,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAEzB;EACH,MAAMC,OAAO,GAAGH,UAAU,CAACC,oBAAoB,CAAC;EAChD,IAAI,CAACE,OAAO,EAAE;IACV,MAAM,IAAIJ,WAAW,CAAC,+DAA+D,CAAC;EAC1F;EACA,OAAOI,OAAO;AAClB,CAAC","ignoreList":[]}
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 React from "react";
1
+ import react from "react";
2
2
  import { Provider } from "@webiny/app";
3
- import { RegisterFeature } from "@webiny/app-admin";
4
- import { RecordLockingProvider as RecordLockingProviderComponent } from "./components/RecordLockingProvider.js";
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
- return function RecordLockingProvider({
14
- children
15
- }) {
16
- return /*#__PURE__*/React.createElement(Component, null, /*#__PURE__*/React.createElement(RecordLockingProviderComponent, null, children));
17
- };
18
- };
19
- export const RecordLocking = () => {
20
- const wcp = useWcp();
21
- if (!wcp.canUseRecordLocking()) {
22
- return null;
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,"names":["React","Provider","RegisterFeature","RecordLockingProvider","RecordLockingProviderComponent","HeadlessCmsActionsAcoCell","HeadlessCmsContentEntry","useWcp","SecurityPermissions","RecordLockingPermissionsFeature","RecordLockingHoc","Component","children","createElement","RecordLocking","wcp","canUseRecordLocking","Fragment","feature","hoc"],"sources":["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"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,qBAAqB,IAAIC,8BAA8B;AAChE,SAASC,yBAAyB;AAClC,SAASC,uBAAuB;AAChC,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,mBAAmB;AAC5B,SAASC,+BAA+B;AAExC;AACA;AAMA,MAAMC,gBAAgB,GAAIC,SAA0D,IAAK;EACrF,OAAO,SAASR,qBAAqBA,CAAC;IAAES;EAAqC,CAAC,EAAE;IAC5E,oBACIZ,KAAA,CAAAa,aAAA,CAACF,SAAS,qBACNX,KAAA,CAAAa,aAAA,CAACT,8BAA8B,QAAEQ,QAAyC,CACnE,CAAC;EAEpB,CAAC;AACL,CAAC;AAED,OAAO,MAAME,aAAa,GAAGA,CAAA,KAAM;EAC/B,MAAMC,GAAG,GAAGR,MAAM,CAAC,CAAC;EAEpB,IAAI,CAACQ,GAAG,CAACC,mBAAmB,CAAC,CAAC,EAAE;IAC5B,OAAO,IAAI;EACf;EAEA,oBACIhB,KAAA,CAAAa,aAAA,CAAAb,KAAA,CAAAiB,QAAA,qBACIjB,KAAA,CAAAa,aAAA,CAACX,eAAe;IAACgB,OAAO,EAAET;EAAgC,CAAE,CAAC,eAC7DT,KAAA,CAAAa,aAAA,CAACL,mBAAmB,MAAE,CAAC,eACvBR,KAAA,CAAAa,aAAA,CAACZ,QAAQ;IAACkB,GAAG,EAAET;EAAiB,CAAE,CAAC,eACnCV,KAAA,CAAAa,aAAA,CAACR,yBAAyB,MAAE,CAAC,eAC7BL,KAAA,CAAAa,aAAA,CAACP,uBAAuB,MAAE,CAC5B,CAAC;AAEX,CAAC","ignoreList":[]}
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.0",
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.3.0",
22
- "@webiny/app": "6.3.0",
23
- "@webiny/app-aco": "6.3.0",
24
- "@webiny/app-admin": "6.3.0",
25
- "@webiny/app-headless-cms": "6.3.0",
26
- "@webiny/app-websockets": "6.3.0",
27
- "@webiny/error": "6.3.0",
28
- "@webiny/icons": "6.3.0",
29
- "@webiny/utils": "6.3.0",
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.3.0",
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": "7cefe15431dbd65504e1f58147dc9e55bcbfa693"
46
+ "gitHead": "a545d7529828af07d08d49c3da1bcb967483b9ce"
47
47
  }
package/types.js CHANGED
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=types.js.map
@@ -1,15 +1,14 @@
1
1
  import { sha1 } from "crypto-hash";
2
- const createKey = input => {
3
- if (typeof input === "string") {
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
- export const createCacheKey = input => {
9
- const key = createKey(input);
10
- return sha1(key, {
11
- outputFormat: "hex"
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,"names":["sha1","createKey","input","JSON","stringify","createCacheKey","key","outputFormat"],"sources":["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"],"mappings":"AACA,SAASA,IAAI,QAAQ,aAAa;AAIlC,MAAMC,SAAS,GAAIC,KAA2B,IAAa;EACvD,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3B,OAAOA,KAAK;EAChB;EACA,OAAOC,IAAI,CAACC,SAAS,CAACF,KAAK,CAAC;AAChC,CAAC;AAED,OAAO,MAAMG,cAAc,GAAIH,KAA2B,IAAsB;EAC5E,MAAMI,GAAG,GAAGL,SAAS,CAACC,KAAK,CAAC;EAE5B,OAAOF,IAAI,CAACM,GAAG,EAAE;IACbC,YAAY,EAAE;EAClB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
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":[]}
@@ -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":[]}