@webiny/app-record-locking 0.0.0-unstable.eb196ccd2f → 0.0.0-unstable.f6dc066313
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/README.md +8 -9
- package/components/HeadlessCmsActionsAcoCell.js +4 -4
- package/components/HeadlessCmsActionsAcoCell.js.map +1 -1
- package/components/HeadlessCmsContentEntry/ContentEntryGuard.d.ts +1 -1
- package/components/HeadlessCmsContentEntry/ContentEntryGuard.js +6 -4
- package/components/HeadlessCmsContentEntry/ContentEntryGuard.js.map +1 -1
- package/components/HeadlessCmsContentEntry/ContentEntryLocker.d.ts +2 -2
- package/components/HeadlessCmsContentEntry/ContentEntryLocker.js +4 -11
- package/components/HeadlessCmsContentEntry/ContentEntryLocker.js.map +1 -1
- package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js +4 -5
- package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js.map +1 -1
- package/components/HeadlessCmsContentEntry/index.d.ts +1 -1
- package/components/HeadlessCmsContentEntry/index.js +1 -1
- package/components/HeadlessCmsContentEntry/index.js.map +1 -1
- package/components/LockedRecord/LockedRecord.d.ts +1 -1
- package/components/LockedRecord/LockedRecord.js +9 -9
- package/components/LockedRecord/LockedRecord.js.map +1 -1
- package/components/LockedRecord/LockedRecordForceUnlock.d.ts +1 -1
- package/components/LockedRecord/LockedRecordForceUnlock.js +5 -9
- package/components/LockedRecord/LockedRecordForceUnlock.js.map +1 -1
- package/components/LockedRecord/index.d.ts +1 -1
- package/components/LockedRecord/index.js +1 -1
- package/components/LockedRecord/index.js.map +1 -1
- package/components/RecordLockingProvider.d.ts +1 -1
- package/components/RecordLockingProvider.js +1 -1
- package/components/RecordLockingProvider.js.map +1 -1
- package/components/SecurityPermissions.d.ts +2 -0
- package/components/SecurityPermissions.js +22 -0
- package/components/SecurityPermissions.js.map +1 -0
- package/components/decorators/UseContentEntriesListHookDecorator.d.ts +1 -2
- package/components/decorators/UseContentEntriesListHookDecorator.js +4 -2
- package/components/decorators/UseContentEntriesListHookDecorator.js.map +1 -1
- package/components/decorators/UseRecordsDecorator.d.ts +1 -2
- package/components/decorators/UseSaveEntryDecorator.d.ts +1 -2
- package/components/decorators/UseSaveEntryDecorator.js +1 -1
- package/components/decorators/UseSaveEntryDecorator.js.map +1 -1
- package/domain/RecordLocking.d.ts +9 -9
- package/domain/RecordLocking.js +12 -11
- package/domain/RecordLocking.js.map +1 -1
- package/domain/RecordLockingClient.d.ts +1 -1
- package/domain/RecordLockingClient.js.map +1 -1
- package/domain/RecordLockingGetLockRecord.d.ts +2 -2
- package/domain/RecordLockingGetLockRecord.js +1 -1
- package/domain/RecordLockingGetLockRecord.js.map +1 -1
- package/domain/RecordLockingGetLockedEntryLockRecord.d.ts +2 -2
- package/domain/RecordLockingGetLockedEntryLockRecord.js +1 -1
- package/domain/RecordLockingGetLockedEntryLockRecord.js.map +1 -1
- package/domain/RecordLockingIsEntryLocked.d.ts +2 -2
- package/domain/RecordLockingIsEntryLocked.js +1 -1
- package/domain/RecordLockingIsEntryLocked.js.map +1 -1
- package/domain/RecordLockingListLockRecords.d.ts +2 -2
- package/domain/RecordLockingListLockRecords.js +2 -2
- package/domain/RecordLockingListLockRecords.js.map +1 -1
- package/domain/RecordLockingLockEntry.d.ts +2 -2
- package/domain/RecordLockingLockEntry.js +0 -2
- package/domain/RecordLockingLockEntry.js.map +1 -1
- package/domain/RecordLockingUnlockEntry.d.ts +2 -2
- package/domain/RecordLockingUnlockEntry.js +1 -1
- package/domain/RecordLockingUnlockEntry.js.map +1 -1
- package/domain/RecordLockingUpdateEntryLock.d.ts +2 -2
- package/domain/RecordLockingUpdateEntryLock.js +1 -1
- package/domain/RecordLockingUpdateEntryLock.js.map +1 -1
- package/domain/abstractions/IRecordLocking.d.ts +2 -2
- package/domain/abstractions/IRecordLocking.js.map +1 -1
- package/domain/abstractions/IRecordLockingGetLockRecord.d.ts +1 -1
- package/domain/abstractions/IRecordLockingGetLockRecord.js.map +1 -1
- package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.d.ts +1 -1
- package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js.map +1 -1
- package/domain/abstractions/IRecordLockingListLockRecords.d.ts +1 -1
- package/domain/abstractions/IRecordLockingListLockRecords.js.map +1 -1
- package/domain/abstractions/IRecordLockingLockEntry.d.ts +1 -1
- package/domain/abstractions/IRecordLockingLockEntry.js.map +1 -1
- package/domain/abstractions/IRecordLockingUnlockEntry.d.ts +1 -1
- package/domain/abstractions/IRecordLockingUnlockEntry.js.map +1 -1
- package/domain/abstractions/IRecordLockingUpdateEntryLock.d.ts +1 -1
- package/domain/abstractions/IRecordLockingUpdateEntryLock.js.map +1 -1
- package/domain/graphql/getLockRecord.d.ts +2 -2
- package/domain/graphql/getLockRecord.js +1 -1
- package/domain/graphql/getLockRecord.js.map +1 -1
- package/domain/graphql/getLockedEntryLockRecord.d.ts +2 -2
- package/domain/graphql/getLockedEntryLockRecord.js +1 -1
- package/domain/graphql/getLockedEntryLockRecord.js.map +1 -1
- package/domain/graphql/isEntryLocked.d.ts +2 -2
- package/domain/graphql/isEntryLocked.js +1 -1
- package/domain/graphql/isEntryLocked.js.map +1 -1
- package/domain/graphql/listLockRecords.d.ts +2 -2
- package/domain/graphql/listLockRecords.js +1 -1
- package/domain/graphql/listLockRecords.js.map +1 -1
- package/domain/graphql/lockEntry.d.ts +2 -2
- package/domain/graphql/lockEntry.js +1 -1
- package/domain/graphql/lockEntry.js.map +1 -1
- package/domain/graphql/unlockEntry.d.ts +2 -2
- package/domain/graphql/unlockEntry.js +1 -1
- package/domain/graphql/unlockEntry.js.map +1 -1
- package/domain/graphql/updateEntryLock.d.ts +2 -2
- package/domain/graphql/updateEntryLock.js +1 -1
- package/domain/graphql/updateEntryLock.js.map +1 -1
- package/domain/utils/createRecordLockingClient.d.ts +1 -1
- package/domain/utils/createRecordLockingClient.js +1 -1
- package/domain/utils/createRecordLockingClient.js.map +1 -1
- package/domain/utils/createRecordLockingError.d.ts +1 -1
- package/domain/utils/createRecordLockingError.js.map +1 -1
- package/hooks/index.d.ts +2 -2
- package/hooks/index.js +2 -2
- package/hooks/index.js.map +1 -1
- package/hooks/usePermission.js +7 -8
- package/hooks/usePermission.js.map +1 -1
- package/hooks/useRecordLocking.d.ts +1 -1
- package/hooks/useRecordLocking.js +1 -1
- package/hooks/useRecordLocking.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.js +8 -10
- package/index.js.map +1 -1
- package/package.json +16 -24
- package/types.d.ts +24 -7
- package/types.js.map +1 -1
- package/utils/createCacheKey.d.ts +1 -1
- package/utils/createCacheKey.js.map +1 -1
- package/components/permissionRenderer/RecordLockingPermissions.d.ts +0 -7
- package/components/permissionRenderer/RecordLockingPermissions.js +0 -71
- package/components/permissionRenderer/RecordLockingPermissions.js.map +0 -1
- package/components/permissionRenderer/index.d.ts +0 -2
- package/components/permissionRenderer/index.js +0 -21
- package/components/permissionRenderer/index.js.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AdminConfig } from "@webiny/app-admin";
|
|
3
|
+
import { ReactComponent as LockIcon } from "@webiny/icons/lock.svg";
|
|
4
|
+
const {
|
|
5
|
+
Security
|
|
6
|
+
} = AdminConfig;
|
|
7
|
+
export const SecurityPermissions = () => {
|
|
8
|
+
return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(Security.Permissions, {
|
|
9
|
+
name: "record-locking",
|
|
10
|
+
title: "Record Locking",
|
|
11
|
+
description: "Manage Record Locking permissions.",
|
|
12
|
+
icon: /*#__PURE__*/React.createElement(LockIcon, null),
|
|
13
|
+
schema: {
|
|
14
|
+
prefix: "recordLocking",
|
|
15
|
+
fullAccess: {
|
|
16
|
+
canForceUnlock: true
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=SecurityPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","AdminConfig","ReactComponent","LockIcon","Security","SecurityPermissions","createElement","Permissions","name","title","description","icon","schema","prefix","fullAccess","canForceUnlock"],"sources":["SecurityPermissions.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { ReactComponent as LockIcon } from \"@webiny/icons/lock.svg\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermissions = () => {\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"record-locking\"\n title=\"Record Locking\"\n description=\"Manage Record Locking permissions.\"\n icon={<LockIcon />}\n schema={{\n prefix: \"recordLocking\",\n fullAccess: { canForceUnlock: true }\n }}\n />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,cAAc,IAAIC,QAAQ,QAAQ,wBAAwB;AAEnE,MAAM;EAAEC;AAAS,CAAC,GAAGH,WAAW;AAEhC,OAAO,MAAMI,mBAAmB,GAAGA,CAAA,KAAM;EACrC,oBACIL,KAAA,CAAAM,aAAA,CAACL,WAAW,qBACRD,KAAA,CAAAM,aAAA,CAACF,QAAQ,CAACG,WAAW;IACjBC,IAAI,EAAC,gBAAgB;IACrBC,KAAK,EAAC,gBAAgB;IACtBC,WAAW,EAAC,oCAAoC;IAChDC,IAAI,eAAEX,KAAA,CAAAM,aAAA,CAACH,QAAQ,MAAE,CAAE;IACnBS,MAAM,EAAE;MACJC,MAAM,EAAE,eAAe;MACvBC,UAAU,EAAE;QAAEC,cAAc,EAAE;MAAK;IACvC;EAAE,CACL,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const UseContentEntriesListHookDecorator: () => import("react").JSX.Element;
|
|
1
|
+
export declare const UseContentEntriesListHookDecorator: () => React.JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
import { ContentEntryListConfig } from "@webiny/app-headless-cms";
|
|
3
|
-
import { useRecordLocking } from "../../hooks";
|
|
3
|
+
import { useRecordLocking } from "../../hooks/index.js";
|
|
4
4
|
export const UseContentEntriesListHookDecorator = ContentEntryListConfig.ContentEntries.useContentEntriesList.createDecorator(originalHook => {
|
|
5
5
|
return function RecordLockingUseContentEntriesList() {
|
|
6
6
|
const value = originalHook();
|
|
@@ -9,7 +9,9 @@ export const UseContentEntriesListHookDecorator = ContentEntryListConfig.Content
|
|
|
9
9
|
if (!value.records) {
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
|
-
recordLocking.setRecords(value.folderId, value.modelId,
|
|
12
|
+
recordLocking.setRecords(value.folderId, value.modelId,
|
|
13
|
+
// TODO determine if this is correct
|
|
14
|
+
value.records);
|
|
13
15
|
}, [value.folderId, value.modelId, value.records, recordLocking]);
|
|
14
16
|
return {
|
|
15
17
|
...value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","ContentEntryListConfig","useRecordLocking","UseContentEntriesListHookDecorator","ContentEntries","useContentEntriesList","createDecorator","originalHook","RecordLockingUseContentEntriesList","value","recordLocking","records","setRecords","folderId","modelId"],"sources":["UseContentEntriesListHookDecorator.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms\";\nimport { useRecordLocking } from \"~/hooks\";\n\nexport const UseContentEntriesListHookDecorator =\n ContentEntryListConfig.ContentEntries.useContentEntriesList.createDecorator(originalHook => {\n return function RecordLockingUseContentEntriesList() {\n const value = originalHook();\n const recordLocking = useRecordLocking();\n\n useEffect(() => {\n if (!value.records) {\n return;\n }\n recordLocking.setRecords(value.folderId
|
|
1
|
+
{"version":3,"names":["useEffect","ContentEntryListConfig","useRecordLocking","UseContentEntriesListHookDecorator","ContentEntries","useContentEntriesList","createDecorator","originalHook","RecordLockingUseContentEntriesList","value","recordLocking","records","setRecords","folderId","modelId"],"sources":["UseContentEntriesListHookDecorator.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms\";\nimport { useRecordLocking } from \"~/hooks/index.js\";\nimport type { IPossiblyRecordLockingRecord } from \"~/types.js\";\n\nexport const UseContentEntriesListHookDecorator =\n ContentEntryListConfig.ContentEntries.useContentEntriesList.createDecorator(originalHook => {\n return function RecordLockingUseContentEntriesList() {\n const value = originalHook();\n const recordLocking = useRecordLocking();\n\n useEffect(() => {\n if (!value.records) {\n return;\n }\n recordLocking.setRecords(\n value.folderId,\n value.modelId,\n // TODO determine if this is correct\n value.records as IPossiblyRecordLockingRecord[]\n );\n }, [value.folderId, value.modelId, value.records, recordLocking]);\n\n return {\n ...value,\n records: recordLocking.records\n };\n };\n });\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,sBAAsB,QAAQ,0BAA0B;AACjE,SAASC,gBAAgB;AAGzB,OAAO,MAAMC,kCAAkC,GAC3CF,sBAAsB,CAACG,cAAc,CAACC,qBAAqB,CAACC,eAAe,CAACC,YAAY,IAAI;EACxF,OAAO,SAASC,kCAAkCA,CAAA,EAAG;IACjD,MAAMC,KAAK,GAAGF,YAAY,CAAC,CAAC;IAC5B,MAAMG,aAAa,GAAGR,gBAAgB,CAAC,CAAC;IAExCF,SAAS,CAAC,MAAM;MACZ,IAAI,CAACS,KAAK,CAACE,OAAO,EAAE;QAChB;MACJ;MACAD,aAAa,CAACE,UAAU,CACpBH,KAAK,CAACI,QAAQ,EACdJ,KAAK,CAACK,OAAO;MACb;MACAL,KAAK,CAACE,OACV,CAAC;IACL,CAAC,EAAE,CAACF,KAAK,CAACI,QAAQ,EAAEJ,KAAK,CAACK,OAAO,EAAEL,KAAK,CAACE,OAAO,EAAED,aAAa,CAAC,CAAC;IAEjE,OAAO;MACH,GAAGD,KAAK;MACRE,OAAO,EAAED,aAAa,CAACC;IAC3B,CAAC;EACL,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
/**
|
|
3
2
|
* When record locking mechanism is checking for records equality, it compares record `id` and `savedOn`.
|
|
4
3
|
* When you're updating ACO cache, you're just passing the new content entry value(s), and sometimes you might
|
|
@@ -6,4 +5,4 @@
|
|
|
6
5
|
*
|
|
7
6
|
* This decorator ensures that calls to `updateRecordInCache` always include a `savedOn` timestamp.
|
|
8
7
|
*/
|
|
9
|
-
export declare const UseRecordsDecorator: () =>
|
|
8
|
+
export declare const UseRecordsDecorator: () => React.JSX.Element;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const UseSaveEntryDecorator: () => import("react").JSX.Element;
|
|
1
|
+
export declare const UseSaveEntryDecorator: () => React.JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
|
-
import { useRecordLocking } from "../../hooks";
|
|
2
|
+
import { useRecordLocking } from "../../hooks/index.js";
|
|
3
3
|
import { ContentEntryEditorConfig, useModel } from "@webiny/app-headless-cms";
|
|
4
4
|
import { useSnackbar } from "@webiny/app-admin";
|
|
5
5
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useRecordLocking","ContentEntryEditorConfig","useModel","useSnackbar","ContentEntry","ContentEntryForm","UseSaveEntryDecorator","useContentEntryForm","createDecorator","originalHook","useRecordLockingUseSave","hook","fetchLockedEntryLockRecord","updateEntryLock","showSnackbar","model","entry","saveEntry","params","id","result","$lockingType","modelId","lockedBy","displayName","saveResult"],"sources":["UseSaveEntryDecorator.tsx"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useRecordLocking } from \"~/hooks\";\nimport { ContentEntryEditorConfig, useModel } from \"@webiny/app-headless-cms\";\nimport { useSnackbar } from \"@webiny/app-admin\";\n\nconst {\n ContentEntry: { ContentEntryForm }\n} = ContentEntryEditorConfig;\n\ntype SaveEntry = ReturnType<typeof ContentEntryForm.useContentEntryForm>[\"saveEntry\"];\n\nexport const UseSaveEntryDecorator = ContentEntryForm.useContentEntryForm.createDecorator(\n originalHook => {\n return function useRecordLockingUseSave() {\n const hook = originalHook();\n const { fetchLockedEntryLockRecord, updateEntryLock } = useRecordLocking();\n const { showSnackbar } = useSnackbar();\n const { model } = useModel();\n\n const { entry } = hook;\n\n const saveEntry: SaveEntry = useCallback(\n async (...params) => {\n if (!entry.id) {\n return hook.saveEntry(...params);\n }\n\n const result = await fetchLockedEntryLockRecord({\n id: entry.id,\n $lockingType: model.modelId\n });\n\n if (result?.lockedBy) {\n const lockedBy = result.lockedBy;\n showSnackbar(\n `It seems that the entry is locked by ${\n lockedBy.displayName || lockedBy.id\n }. You can't save your changes.`\n );\n return null;\n }\n\n const saveResult = await hook.saveEntry(...params);\n if (saveResult) {\n await updateEntryLock({\n id: saveResult.id,\n $lockingType: model.modelId\n });\n }\n\n return saveResult;\n },\n [entry?.id, model.modelId, updateEntryLock]\n );\n\n return {\n ...hook,\n saveEntry\n };\n };\n }\n);\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,gBAAgB;AACzB,SAASC,wBAAwB,EAAEC,QAAQ,QAAQ,0BAA0B;AAC7E,SAASC,WAAW,QAAQ,mBAAmB;AAE/C,MAAM;EACFC,YAAY,EAAE;IAAEC;EAAiB;AACrC,CAAC,GAAGJ,wBAAwB;AAI5B,OAAO,MAAMK,qBAAqB,GAAGD,gBAAgB,CAACE,mBAAmB,CAACC,eAAe,CACrFC,YAAY,IAAI;EACZ,OAAO,SAASC,uBAAuBA,CAAA,EAAG;IACtC,MAAMC,IAAI,GAAGF,YAAY,CAAC,CAAC;IAC3B,MAAM;MAAEG,0BAA0B;MAAEC;IAAgB,CAAC,GAAGb,gBAAgB,CAAC,CAAC;IAC1E,MAAM;MAAEc;IAAa,CAAC,GAAGX,WAAW,CAAC,CAAC;IACtC,MAAM;MAAEY;IAAM,CAAC,GAAGb,QAAQ,CAAC,CAAC;IAE5B,MAAM;MAAEc;IAAM,CAAC,GAAGL,IAAI;IAEtB,MAAMM,SAAoB,GAAGlB,WAAW,CACpC,OAAO,GAAGmB,MAAM,KAAK;MACjB,IAAI,CAACF,KAAK,CAACG,EAAE,EAAE;QACX,OAAOR,IAAI,CAACM,SAAS,CAAC,GAAGC,MAAM,CAAC;MACpC;MAEA,MAAME,MAAM,GAAG,MAAMR,0BAA0B,CAAC;QAC5CO,EAAE,EAAEH,KAAK,CAACG,EAAE;QACZE,YAAY,EAAEN,KAAK,CAACO;MACxB,CAAC,CAAC;MAEF,IAAIF,MAAM,EAAEG,QAAQ,EAAE;QAClB,MAAMA,QAAQ,GAAGH,MAAM,CAACG,QAAQ;QAChCT,YAAY,CACR,wCACIS,QAAQ,CAACC,WAAW,IAAID,QAAQ,CAACJ,EAAE,gCAE3C,CAAC;QACD,OAAO,IAAI;MACf;MAEA,MAAMM,UAAU,GAAG,MAAMd,IAAI,CAACM,SAAS,CAAC,GAAGC,MAAM,CAAC;MAClD,IAAIO,UAAU,EAAE;QACZ,MAAMZ,eAAe,CAAC;UAClBM,EAAE,EAAEM,UAAU,CAACN,EAAE;UACjBE,YAAY,EAAEN,KAAK,CAACO;QACxB,CAAC,CAAC;MACN;MAEA,OAAOG,UAAU;IACrB,CAAC,EACD,CAACT,KAAK,EAAEG,EAAE,EAAEJ,KAAK,CAACO,OAAO,EAAET,eAAe,CAC9C,CAAC;IAED,OAAO;MACH,GAAGF,IAAI;MACPM;IACJ,CAAC;EACL,CAAC;AACL,CACJ,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useRecordLocking","ContentEntryEditorConfig","useModel","useSnackbar","ContentEntry","ContentEntryForm","UseSaveEntryDecorator","useContentEntryForm","createDecorator","originalHook","useRecordLockingUseSave","hook","fetchLockedEntryLockRecord","updateEntryLock","showSnackbar","model","entry","saveEntry","params","id","result","$lockingType","modelId","lockedBy","displayName","saveResult"],"sources":["UseSaveEntryDecorator.tsx"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useRecordLocking } from \"~/hooks/index.js\";\nimport { ContentEntryEditorConfig, useModel } from \"@webiny/app-headless-cms\";\nimport { useSnackbar } from \"@webiny/app-admin\";\n\nconst {\n ContentEntry: { ContentEntryForm }\n} = ContentEntryEditorConfig;\n\ntype SaveEntry = ReturnType<typeof ContentEntryForm.useContentEntryForm>[\"saveEntry\"];\n\nexport const UseSaveEntryDecorator = ContentEntryForm.useContentEntryForm.createDecorator(\n originalHook => {\n return function useRecordLockingUseSave() {\n const hook = originalHook();\n const { fetchLockedEntryLockRecord, updateEntryLock } = useRecordLocking();\n const { showSnackbar } = useSnackbar();\n const { model } = useModel();\n\n const { entry } = hook;\n\n const saveEntry: SaveEntry = useCallback(\n async (...params) => {\n if (!entry.id) {\n return hook.saveEntry(...params);\n }\n\n const result = await fetchLockedEntryLockRecord({\n id: entry.id,\n $lockingType: model.modelId\n });\n\n if (result?.lockedBy) {\n const lockedBy = result.lockedBy;\n showSnackbar(\n `It seems that the entry is locked by ${\n lockedBy.displayName || lockedBy.id\n }. You can't save your changes.`\n );\n return null;\n }\n\n const saveResult = await hook.saveEntry(...params);\n if (saveResult) {\n await updateEntryLock({\n id: saveResult.id,\n $lockingType: model.modelId\n });\n }\n\n return saveResult;\n },\n [entry?.id, model.modelId, updateEntryLock]\n );\n\n return {\n ...hook,\n saveEntry\n };\n };\n }\n);\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,gBAAgB;AACzB,SAASC,wBAAwB,EAAEC,QAAQ,QAAQ,0BAA0B;AAC7E,SAASC,WAAW,QAAQ,mBAAmB;AAE/C,MAAM;EACFC,YAAY,EAAE;IAAEC;EAAiB;AACrC,CAAC,GAAGJ,wBAAwB;AAI5B,OAAO,MAAMK,qBAAqB,GAAGD,gBAAgB,CAACE,mBAAmB,CAACC,eAAe,CACrFC,YAAY,IAAI;EACZ,OAAO,SAASC,uBAAuBA,CAAA,EAAG;IACtC,MAAMC,IAAI,GAAGF,YAAY,CAAC,CAAC;IAC3B,MAAM;MAAEG,0BAA0B;MAAEC;IAAgB,CAAC,GAAGb,gBAAgB,CAAC,CAAC;IAC1E,MAAM;MAAEc;IAAa,CAAC,GAAGX,WAAW,CAAC,CAAC;IACtC,MAAM;MAAEY;IAAM,CAAC,GAAGb,QAAQ,CAAC,CAAC;IAE5B,MAAM;MAAEc;IAAM,CAAC,GAAGL,IAAI;IAEtB,MAAMM,SAAoB,GAAGlB,WAAW,CACpC,OAAO,GAAGmB,MAAM,KAAK;MACjB,IAAI,CAACF,KAAK,CAACG,EAAE,EAAE;QACX,OAAOR,IAAI,CAACM,SAAS,CAAC,GAAGC,MAAM,CAAC;MACpC;MAEA,MAAME,MAAM,GAAG,MAAMR,0BAA0B,CAAC;QAC5CO,EAAE,EAAEH,KAAK,CAACG,EAAE;QACZE,YAAY,EAAEN,KAAK,CAACO;MACxB,CAAC,CAAC;MAEF,IAAIF,MAAM,EAAEG,QAAQ,EAAE;QAClB,MAAMA,QAAQ,GAAGH,MAAM,CAACG,QAAQ;QAChCT,YAAY,CACR,wCACIS,QAAQ,CAACC,WAAW,IAAID,QAAQ,CAACJ,EAAE,gCAE3C,CAAC;QACD,OAAO,IAAI;MACf;MAEA,MAAMM,UAAU,GAAG,MAAMd,IAAI,CAACM,SAAS,CAAC,GAAGC,MAAM,CAAC;MAClD,IAAIO,UAAU,EAAE;QACZ,MAAMZ,eAAe,CAAC;UAClBM,EAAE,EAAEM,UAAU,CAACN,EAAE;UACjBE,YAAY,EAAEN,KAAK,CAACO;QACxB,CAAC,CAAC;MACN;MAEA,OAAOG,UAAU;IACrB,CAAC,EACD,CAACT,KAAK,EAAEG,EAAE,EAAEJ,KAAK,CAACO,OAAO,EAAET,eAAe,CAC9C,CAAC;IAED,OAAO;MACH,GAAGF,IAAI;MACPM;IACJ,CAAC;EACL,CAAC;AACL,CACJ,CAAC","ignoreList":[]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { IRecordLocking } from "./abstractions/IRecordLocking";
|
|
1
|
+
import type { IRecordLocking } from "./abstractions/IRecordLocking.js";
|
|
2
2
|
import type { ApolloClient } from "apollo-client";
|
|
3
|
-
import type { IRecordLockingGetLockRecord } from "./abstractions/IRecordLockingGetLockRecord";
|
|
4
|
-
import type { IRecordLockingIsEntryLocked } from "./abstractions/IRecordLockingIsEntryLocked";
|
|
5
|
-
import type { IRecordLockingListLockRecords } from "./abstractions/IRecordLockingListLockRecords";
|
|
6
|
-
import type { IRecordLockingLockEntry } from "./abstractions/IRecordLockingLockEntry";
|
|
7
|
-
import type { IRecordLockingUnlockEntry } from "./abstractions/IRecordLockingUnlockEntry";
|
|
8
|
-
import type { IRecordLockingError, IRecordLockingRecord } from "../types";
|
|
9
|
-
import type { IRecordLockingUpdateEntryLock } from "
|
|
10
|
-
import type { IRecordLockingGetLockedEntryLockRecord } from "./abstractions/IRecordLockingGetLockedEntryLockRecord";
|
|
3
|
+
import type { IRecordLockingGetLockRecord } from "./abstractions/IRecordLockingGetLockRecord.js";
|
|
4
|
+
import type { IRecordLockingIsEntryLocked } from "./abstractions/IRecordLockingIsEntryLocked.js";
|
|
5
|
+
import type { IRecordLockingListLockRecords } from "./abstractions/IRecordLockingListLockRecords.js";
|
|
6
|
+
import type { IRecordLockingLockEntry } from "./abstractions/IRecordLockingLockEntry.js";
|
|
7
|
+
import type { IRecordLockingUnlockEntry } from "./abstractions/IRecordLockingUnlockEntry.js";
|
|
8
|
+
import type { IRecordLockingError, IRecordLockingRecord } from "../types.js";
|
|
9
|
+
import type { IRecordLockingUpdateEntryLock } from "../domain/abstractions/IRecordLockingUpdateEntryLock.js";
|
|
10
|
+
import type { IRecordLockingGetLockedEntryLockRecord } from "./abstractions/IRecordLockingGetLockedEntryLockRecord.js";
|
|
11
11
|
export interface ICreateRecordLockingParams {
|
|
12
12
|
client: ApolloClient<any>;
|
|
13
13
|
setLoading: (loading: boolean) => void;
|
package/domain/RecordLocking.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { RecordLockingGetLockRecord } from "./RecordLockingGetLockRecord";
|
|
2
|
-
import { RecordLockingIsEntryLocked } from "./RecordLockingIsEntryLocked";
|
|
3
|
-
import { RecordLockingListLockRecords } from "./RecordLockingListLockRecords";
|
|
4
|
-
import { RecordLockingLockEntry } from "./RecordLockingLockEntry";
|
|
5
|
-
import { RecordLockingUnlockEntry } from "./RecordLockingUnlockEntry";
|
|
6
|
-
import { RecordLockingClient } from "./RecordLockingClient";
|
|
7
|
-
import { createRecordLockingError } from "./utils/createRecordLockingError";
|
|
8
|
-
import { parseIdentifier } from "@webiny/utils/parseIdentifier";
|
|
9
|
-
import { createCacheKey } from "../utils/createCacheKey";
|
|
10
|
-
import { RecordLockingUpdateEntryLock } from "./RecordLockingUpdateEntryLock";
|
|
11
|
-
import { RecordLockingGetLockedEntryLockRecord } from "./RecordLockingGetLockedEntryLockRecord";
|
|
1
|
+
import { RecordLockingGetLockRecord } from "./RecordLockingGetLockRecord.js";
|
|
2
|
+
import { RecordLockingIsEntryLocked } from "./RecordLockingIsEntryLocked.js";
|
|
3
|
+
import { RecordLockingListLockRecords } from "./RecordLockingListLockRecords.js";
|
|
4
|
+
import { RecordLockingLockEntry } from "./RecordLockingLockEntry.js";
|
|
5
|
+
import { RecordLockingUnlockEntry } from "./RecordLockingUnlockEntry.js";
|
|
6
|
+
import { RecordLockingClient } from "./RecordLockingClient.js";
|
|
7
|
+
import { createRecordLockingError } from "./utils/createRecordLockingError.js";
|
|
8
|
+
import { parseIdentifier } from "@webiny/utils/parseIdentifier.js";
|
|
9
|
+
import { createCacheKey } from "../utils/createCacheKey.js";
|
|
10
|
+
import { RecordLockingUpdateEntryLock } from "./RecordLockingUpdateEntryLock.js";
|
|
11
|
+
import { RecordLockingGetLockedEntryLockRecord } from "./RecordLockingGetLockedEntryLockRecord.js";
|
|
12
12
|
class RecordLocking {
|
|
13
13
|
loading = false;
|
|
14
14
|
records = [];
|
|
@@ -32,6 +32,7 @@ class RecordLocking {
|
|
|
32
32
|
} = parseIdentifier(record.id);
|
|
33
33
|
return {
|
|
34
34
|
...record,
|
|
35
|
+
$type: "RECORD",
|
|
35
36
|
$lockingType: type,
|
|
36
37
|
$locked: record.$locked,
|
|
37
38
|
$selectable: record.$locked ? false : record.$selectable,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RecordLockingGetLockRecord","RecordLockingIsEntryLocked","RecordLockingListLockRecords","RecordLockingLockEntry","RecordLockingUnlockEntry","RecordLockingClient","createRecordLockingError","parseIdentifier","createCacheKey","RecordLockingUpdateEntryLock","RecordLockingGetLockedEntryLockRecord","RecordLocking","loading","records","onErrorCb","constructor","params","_setLoading","setLoading","_getLockRecord","getLockRecord","_getLockedEntryLockRecord","getLockedEntryLockRecord","_listLockRecords","listLockRecords","_unlockEntry","unlockEntry","_updateEntryLock","updateEntryLock","setRecords","folderId","type","result","fetchAndAssignRecords","undefined","map","record","id","entryId","$lockingType","$locked","$selectable","fetchLockRecord","execute","data","error","ex","fetchLockedEntryLockRecord","getLockRecordEntry","find","isRecordLocked","r","expiresOn","isExpired","isLockExpired","triggerOnError","removeEntryLock","index","findIndex","force","onError","cb","setIsLoading","input","Date","length","assignedIdList","assignRecords","where","id_in","limit","console","message","code","lockedBy","lockedOn","actions","keys","cacheKey","currentRecordsCacheKey","currentRecordType","currentFolderId","reduce","collection","push","$type","createRecordLocking","config","client","isEntryLocked","lockEntry"],"sources":["RecordLocking.ts"],"sourcesContent":["import type {\n IRecordLocking,\n IRecordLockingUpdateEntryLockResult\n} from \"./abstractions/IRecordLocking\";\nimport type { ApolloClient } from \"apollo-client\";\nimport { RecordLockingGetLockRecord } from \"./RecordLockingGetLockRecord\";\nimport { RecordLockingIsEntryLocked } from \"./RecordLockingIsEntryLocked\";\nimport { RecordLockingListLockRecords } from \"./RecordLockingListLockRecords\";\nimport { RecordLockingLockEntry } from \"./RecordLockingLockEntry\";\nimport { RecordLockingUnlockEntry } from \"./RecordLockingUnlockEntry\";\nimport { RecordLockingClient } from \"./RecordLockingClient\";\nimport type { IRecordLockingGetLockRecord } from \"./abstractions/IRecordLockingGetLockRecord\";\nimport type { IRecordLockingIsEntryLocked } from \"./abstractions/IRecordLockingIsEntryLocked\";\nimport type {\n IRecordLockingListLockRecords,\n IRecordLockingListLockRecordsResult\n} from \"./abstractions/IRecordLockingListLockRecords\";\nimport type { IRecordLockingLockEntry } from \"./abstractions/IRecordLockingLockEntry\";\nimport type {\n IRecordLockingUnlockEntry,\n IRecordLockingUnlockEntryResult\n} from \"./abstractions/IRecordLockingUnlockEntry\";\nimport type {\n IFetchLockedEntryLockRecordParams,\n IFetchLockRecordParams,\n IFetchLockRecordResult,\n IIsRecordLockedParams,\n IPossiblyRecordLockingRecord,\n IRecordLockingError,\n IRecordLockingLockRecord,\n IRecordLockingRecord,\n IUnlockEntryParams,\n IUpdateEntryLockParams\n} from \"~/types\";\nimport { createRecordLockingError } from \"./utils/createRecordLockingError\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier\";\nimport { createCacheKey } from \"~/utils/createCacheKey\";\nimport { RecordLockingUpdateEntryLock } from \"~/domain/RecordLockingUpdateEntryLock\";\nimport type { IRecordLockingUpdateEntryLock } from \"~/domain/abstractions/IRecordLockingUpdateEntryLock\";\nimport { RecordLockingGetLockedEntryLockRecord } from \"~/domain/RecordLockingGetLockedEntryLockRecord\";\nimport type { IRecordLockingGetLockedEntryLockRecord } from \"./abstractions/IRecordLockingGetLockedEntryLockRecord\";\n\nexport interface ICreateRecordLockingParams {\n client: ApolloClient<any>;\n setLoading: (loading: boolean) => void;\n}\n\nexport interface IRecordLockingParams {\n setLoading: (loading: boolean) => void;\n getLockRecord: IRecordLockingGetLockRecord;\n getLockedEntryLockRecord: IRecordLockingGetLockedEntryLockRecord;\n isEntryLocked: IRecordLockingIsEntryLocked;\n listLockRecords: IRecordLockingListLockRecords;\n lockEntry: IRecordLockingLockEntry;\n unlockEntry: IRecordLockingUnlockEntry;\n updateEntryLock: IRecordLockingUpdateEntryLock;\n}\n\nexport interface IOnErrorCb {\n (error: IRecordLockingError): void;\n}\n\nclass RecordLocking<T extends IPossiblyRecordLockingRecord = IPossiblyRecordLockingRecord>\n implements IRecordLocking<T>\n{\n private currentRecordType?: string;\n private currentFolderId?: string;\n private currentRecordsCacheKey?: string;\n private readonly _setLoading: (loading: boolean) => void;\n public loading = false;\n public records: IRecordLockingRecord[] = [];\n private readonly _getLockRecord: IRecordLockingGetLockRecord;\n private readonly _getLockedEntryLockRecord: IRecordLockingGetLockedEntryLockRecord;\n private readonly _listLockRecords: IRecordLockingListLockRecords;\n private readonly _unlockEntry: IRecordLockingUnlockEntry;\n private readonly _updateEntryLock: IRecordLockingUpdateEntryLock;\n\n private onErrorCb: IOnErrorCb | null = null;\n\n public constructor(params: IRecordLockingParams) {\n this._setLoading = params.setLoading;\n this._getLockRecord = params.getLockRecord;\n this._getLockedEntryLockRecord = params.getLockedEntryLockRecord;\n this._listLockRecords = params.listLockRecords;\n this._unlockEntry = params.unlockEntry;\n this._updateEntryLock = params.updateEntryLock;\n }\n\n public async setRecords(\n folderId: string,\n type: string,\n records: T[]\n ): Promise<IRecordLockingRecord[] | undefined> {\n const result = await this.fetchAndAssignRecords(folderId, type, records);\n if (!result) {\n return undefined;\n }\n\n return result.map(record => {\n const { id: entryId } = parseIdentifier(record.id);\n return {\n ...record,\n $lockingType: type,\n $locked: record.$locked,\n $selectable: record.$locked ? false : record.$selectable,\n entryId\n };\n });\n }\n\n public async fetchLockRecord(params: IFetchLockRecordParams): Promise<IFetchLockRecordResult> {\n const { id, $lockingType } = params;\n\n const { id: entryId } = parseIdentifier(id);\n\n try {\n const result = await this._getLockRecord.execute({\n id: entryId,\n type: $lockingType\n });\n\n return {\n data: result.data,\n error: result.error\n };\n } catch (ex) {\n return {\n data: null,\n error: ex\n };\n }\n }\n\n public async fetchLockedEntryLockRecord(\n params: IFetchLockedEntryLockRecordParams\n ): Promise<IRecordLockingLockRecord | null> {\n const { id, $lockingType } = params;\n\n const { id: entryId } = parseIdentifier(id);\n const result = await this._getLockedEntryLockRecord.execute({\n id: entryId,\n type: $lockingType\n });\n return result.data;\n }\n\n public getLockRecordEntry(id: string): IRecordLockingRecord | undefined {\n return this.records.find(record => {\n const { id: entryId } = parseIdentifier(id);\n return record.entryId === entryId;\n });\n }\n\n public isRecordLocked(record: IIsRecordLockedParams): boolean {\n const result = this.records.find(r => {\n const { id: entryId } = parseIdentifier(record.id);\n\n return r.entryId === entryId && !!r.$locked && r.$lockingType === record.$lockingType;\n });\n if (!result?.$locked?.expiresOn) {\n return false;\n }\n const isExpired = this.isLockExpired(result.$locked.expiresOn);\n return !isExpired;\n }\n\n public async updateEntryLock(\n params: IUpdateEntryLockParams\n ): Promise<IRecordLockingUpdateEntryLockResult> {\n try {\n return await this._updateEntryLock.execute({\n id: params.id,\n type: params.$lockingType\n });\n } catch (ex) {\n this.triggerOnError(ex);\n return {\n data: null,\n error: ex\n };\n }\n }\n\n public removeEntryLock(params: IUnlockEntryParams): void {\n const index = this.records.findIndex(record => {\n return record.entryId === params.id && record.$lockingType === params.$lockingType;\n });\n if (index === -1) {\n return;\n }\n this.records[index] = {\n ...this.records[index],\n $locked: null,\n $selectable: true\n };\n }\n\n public async unlockEntry(\n params: IUnlockEntryParams,\n force?: boolean\n ): Promise<IRecordLockingUnlockEntryResult> {\n try {\n const result = await this._unlockEntry.execute({\n id: params.id,\n type: params.$lockingType,\n force\n });\n\n const id = result.data?.id;\n if (!id) {\n return result;\n }\n this.removeEntryLock({\n ...params\n });\n return result;\n } catch (ex) {\n this.triggerOnError(ex);\n return {\n data: null,\n error: ex\n };\n }\n }\n\n public onError(cb: IOnErrorCb): void {\n this.onErrorCb = cb;\n }\n\n public triggerOnError(error: IRecordLockingError): void {\n this.setIsLoading(false);\n if (!this.onErrorCb) {\n return;\n }\n this.onErrorCb(error);\n }\n\n public isLockExpired(input: Date | string): boolean {\n const expiresOn = new Date(input);\n return expiresOn <= new Date();\n }\n\n private setIsLoading(loading: boolean): void {\n this._setLoading(loading);\n this.loading = loading;\n }\n\n private async fetchAndAssignRecords(\n folderId: string,\n type: string,\n records: T[]\n ): Promise<IPossiblyRecordLockingRecord[] | undefined> {\n if (records.length === 0) {\n return;\n } else if (this.loading) {\n return;\n }\n const assignedIdList = await this.assignRecords(folderId, type, records);\n if (assignedIdList.length === 0) {\n return;\n }\n this.setIsLoading(true);\n let result: IRecordLockingListLockRecordsResult;\n try {\n result = await this._listLockRecords.execute({\n where: {\n id_in: assignedIdList,\n type\n },\n limit: 10000\n });\n } catch (ex) {\n console.error(ex);\n this.triggerOnError(ex);\n return;\n } finally {\n this.setIsLoading(false);\n }\n if (result.error) {\n this.triggerOnError(result.error);\n return;\n } else if (!result.data) {\n this.triggerOnError(\n createRecordLockingError({\n message: `There is no data in the result and there is no error. Please check the network tab for more info.`,\n code: \"NO_DATA_IN_RESULT\"\n })\n );\n return;\n } else if (result.data.length === 0) {\n return;\n }\n\n for (const record of result.data) {\n const index = this.records.findIndex(r => {\n const { id: entryId } = parseIdentifier(record.id);\n return r.entryId === entryId;\n });\n if (index < 0) {\n console.error(`There is no record with id ${record.id} in the records array.`);\n continue;\n }\n this.records[index] = {\n ...this.records[index],\n $locked: {\n lockedBy: record.lockedBy,\n expiresOn: record.expiresOn,\n lockedOn: record.lockedOn,\n actions: record.actions\n }\n };\n }\n\n return this.records;\n }\n /**\n * Assign records and return the assigned ID list.\n */\n private async assignRecords(folderId: string, type: string, records: T[]): Promise<string[]> {\n /**\n * First we check the record keys against ones in the local cache.\n */\n const keys = records.map(record => {\n if (record.entryId) {\n return record.entryId;\n }\n const { id: entryId } = parseIdentifier(record.id);\n return entryId;\n });\n const cacheKey = await createCacheKey(keys);\n if (this.currentRecordsCacheKey === cacheKey) {\n return [];\n }\n this.currentRecordsCacheKey = cacheKey;\n\n /**\n * Reset records if new type is not as same as the old type / folderId.\n */\n if (this.currentRecordType !== type || this.currentFolderId !== folderId) {\n this.records = [];\n this.currentRecordType = type;\n this.currentFolderId = folderId;\n }\n\n return records.reduce<string[]>((collection, record) => {\n const { id: entryId } = parseIdentifier(record.id);\n const index = this.records.findIndex(r => r.entryId === entryId);\n if (index >= 0) {\n return collection;\n }\n this.records.push({\n ...record,\n entryId,\n $lockingType: type,\n $locked: undefined\n });\n if (record.$type !== \"RECORD\") {\n return collection;\n }\n collection.push(entryId);\n return collection;\n }, []);\n }\n}\n\nexport const createRecordLocking = <T extends IRecordLockingRecord>(\n config: ICreateRecordLockingParams\n): IRecordLocking => {\n const client = new RecordLockingClient({\n client: config.client\n });\n\n const getLockRecord = new RecordLockingGetLockRecord({\n client\n });\n\n const getLockedEntryLockRecord = new RecordLockingGetLockedEntryLockRecord({\n client\n });\n\n const isEntryLocked = new RecordLockingIsEntryLocked({\n client\n });\n\n const listLockRecords = new RecordLockingListLockRecords({\n client\n });\n\n const lockEntry = new RecordLockingLockEntry({\n client\n });\n\n const unlockEntry = new RecordLockingUnlockEntry({\n client\n });\n\n const updateEntryLock = new RecordLockingUpdateEntryLock({\n client\n });\n\n return new RecordLocking<T>({\n setLoading: config.setLoading,\n getLockRecord,\n getLockedEntryLockRecord,\n isEntryLocked,\n listLockRecords,\n updateEntryLock,\n lockEntry,\n unlockEntry\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["RecordLockingGetLockRecord","RecordLockingIsEntryLocked","RecordLockingListLockRecords","RecordLockingLockEntry","RecordLockingUnlockEntry","RecordLockingClient","createRecordLockingError","parseIdentifier","createCacheKey","RecordLockingUpdateEntryLock","RecordLockingGetLockedEntryLockRecord","RecordLocking","loading","records","onErrorCb","constructor","params","_setLoading","setLoading","_getLockRecord","getLockRecord","_getLockedEntryLockRecord","getLockedEntryLockRecord","_listLockRecords","listLockRecords","_unlockEntry","unlockEntry","_updateEntryLock","updateEntryLock","setRecords","folderId","type","result","fetchAndAssignRecords","undefined","map","record","id","entryId","$type","$lockingType","$locked","$selectable","fetchLockRecord","execute","data","error","ex","fetchLockedEntryLockRecord","getLockRecordEntry","find","isRecordLocked","r","expiresOn","isExpired","isLockExpired","triggerOnError","removeEntryLock","index","findIndex","force","onError","cb","setIsLoading","input","Date","length","assignedIdList","assignRecords","where","id_in","limit","console","message","code","lockedBy","lockedOn","actions","keys","cacheKey","currentRecordsCacheKey","currentRecordType","currentFolderId","reduce","collection","push","createRecordLocking","config","client","isEntryLocked","lockEntry"],"sources":["RecordLocking.ts"],"sourcesContent":["import type {\n IRecordLocking,\n IRecordLockingUpdateEntryLockResult\n} from \"./abstractions/IRecordLocking.js\";\nimport type { ApolloClient } from \"apollo-client\";\nimport { RecordLockingGetLockRecord } from \"./RecordLockingGetLockRecord.js\";\nimport { RecordLockingIsEntryLocked } from \"./RecordLockingIsEntryLocked.js\";\nimport { RecordLockingListLockRecords } from \"./RecordLockingListLockRecords.js\";\nimport { RecordLockingLockEntry } from \"./RecordLockingLockEntry.js\";\nimport { RecordLockingUnlockEntry } from \"./RecordLockingUnlockEntry.js\";\nimport { RecordLockingClient } from \"./RecordLockingClient.js\";\nimport type { IRecordLockingGetLockRecord } from \"./abstractions/IRecordLockingGetLockRecord.js\";\nimport type { IRecordLockingIsEntryLocked } from \"./abstractions/IRecordLockingIsEntryLocked.js\";\nimport type {\n IRecordLockingListLockRecords,\n IRecordLockingListLockRecordsResult\n} from \"./abstractions/IRecordLockingListLockRecords.js\";\nimport type { IRecordLockingLockEntry } from \"./abstractions/IRecordLockingLockEntry.js\";\nimport type {\n IRecordLockingUnlockEntry,\n IRecordLockingUnlockEntryResult\n} from \"./abstractions/IRecordLockingUnlockEntry.js\";\nimport 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 { createRecordLockingError } from \"./utils/createRecordLockingError.js\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { createCacheKey } from \"~/utils/createCacheKey.js\";\nimport { RecordLockingUpdateEntryLock } from \"~/domain/RecordLockingUpdateEntryLock.js\";\nimport type { IRecordLockingUpdateEntryLock } from \"~/domain/abstractions/IRecordLockingUpdateEntryLock.js\";\nimport { RecordLockingGetLockedEntryLockRecord } from \"~/domain/RecordLockingGetLockedEntryLockRecord.js\";\nimport type { IRecordLockingGetLockedEntryLockRecord } from \"./abstractions/IRecordLockingGetLockedEntryLockRecord.js\";\n\nexport interface ICreateRecordLockingParams {\n client: ApolloClient<any>;\n setLoading: (loading: boolean) => void;\n}\n\nexport interface IRecordLockingParams {\n setLoading: (loading: boolean) => void;\n getLockRecord: IRecordLockingGetLockRecord;\n getLockedEntryLockRecord: IRecordLockingGetLockedEntryLockRecord;\n isEntryLocked: IRecordLockingIsEntryLocked;\n listLockRecords: IRecordLockingListLockRecords;\n lockEntry: IRecordLockingLockEntry;\n unlockEntry: IRecordLockingUnlockEntry;\n updateEntryLock: IRecordLockingUpdateEntryLock;\n}\n\nexport interface IOnErrorCb {\n (error: IRecordLockingError): void;\n}\n\nclass RecordLocking<T extends IPossiblyRecordLockingRecord = IPossiblyRecordLockingRecord>\n implements IRecordLocking<T>\n{\n private currentRecordType?: string;\n private currentFolderId?: string;\n private currentRecordsCacheKey?: string;\n private readonly _setLoading: (loading: boolean) => void;\n public loading = false;\n public records: IRecordLockingRecord[] = [];\n private readonly _getLockRecord: IRecordLockingGetLockRecord;\n private readonly _getLockedEntryLockRecord: IRecordLockingGetLockedEntryLockRecord;\n private readonly _listLockRecords: IRecordLockingListLockRecords;\n private readonly _unlockEntry: IRecordLockingUnlockEntry;\n private readonly _updateEntryLock: IRecordLockingUpdateEntryLock;\n\n private onErrorCb: IOnErrorCb | null = null;\n\n public constructor(params: IRecordLockingParams) {\n this._setLoading = params.setLoading;\n this._getLockRecord = params.getLockRecord;\n this._getLockedEntryLockRecord = params.getLockedEntryLockRecord;\n this._listLockRecords = params.listLockRecords;\n this._unlockEntry = params.unlockEntry;\n this._updateEntryLock = params.updateEntryLock;\n }\n\n public async setRecords(\n folderId: string,\n type: string,\n records: T[]\n ): Promise<IRecordLockingRecord[] | undefined> {\n const result = await this.fetchAndAssignRecords(folderId, type, records);\n if (!result) {\n return undefined;\n }\n\n return result.map(record => {\n const { id: entryId } = parseIdentifier(record.id);\n return {\n ...record,\n $type: \"RECORD\",\n $lockingType: type,\n $locked: record.$locked,\n $selectable: record.$locked ? false : record.$selectable,\n entryId\n };\n });\n }\n\n public async fetchLockRecord(params: IFetchLockRecordParams): Promise<IFetchLockRecordResult> {\n const { id, $lockingType } = params;\n\n const { id: entryId } = parseIdentifier(id);\n\n try {\n const result = await this._getLockRecord.execute({\n id: entryId,\n type: $lockingType\n });\n\n return {\n data: result.data,\n error: result.error\n };\n } catch (ex) {\n return {\n data: null,\n error: ex\n };\n }\n }\n\n public async fetchLockedEntryLockRecord(\n params: IFetchLockedEntryLockRecordParams\n ): Promise<IRecordLockingLockRecord | null> {\n const { id, $lockingType } = params;\n\n const { id: entryId } = parseIdentifier(id);\n const result = await this._getLockedEntryLockRecord.execute({\n id: entryId,\n type: $lockingType\n });\n return result.data;\n }\n\n public getLockRecordEntry(id: string): IRecordLockingRecord | undefined {\n return this.records.find(record => {\n const { id: entryId } = parseIdentifier(id);\n return record.entryId === entryId;\n });\n }\n\n public isRecordLocked(record: IIsRecordLockedParams): boolean {\n const result = this.records.find(r => {\n const { id: entryId } = parseIdentifier(record.id);\n\n return r.entryId === entryId && !!r.$locked && r.$lockingType === record.$lockingType;\n });\n if (!result?.$locked?.expiresOn) {\n return false;\n }\n const isExpired = this.isLockExpired(result.$locked.expiresOn);\n return !isExpired;\n }\n\n public async updateEntryLock(\n params: IUpdateEntryLockParams\n ): Promise<IRecordLockingUpdateEntryLockResult> {\n try {\n return await this._updateEntryLock.execute({\n id: params.id,\n type: params.$lockingType\n });\n } catch (ex) {\n this.triggerOnError(ex);\n return {\n data: null,\n error: ex\n };\n }\n }\n\n public removeEntryLock(params: IUnlockEntryParams): void {\n const index = this.records.findIndex(record => {\n return record.entryId === params.id && record.$lockingType === params.$lockingType;\n });\n if (index === -1) {\n return;\n }\n this.records[index] = {\n ...this.records[index],\n $locked: null,\n $selectable: true\n };\n }\n\n public async unlockEntry(\n params: IUnlockEntryParams,\n force?: boolean\n ): Promise<IRecordLockingUnlockEntryResult> {\n try {\n const result = await this._unlockEntry.execute({\n id: params.id,\n type: params.$lockingType,\n force\n });\n\n const id = result.data?.id;\n if (!id) {\n return result;\n }\n this.removeEntryLock({\n ...params\n });\n return result;\n } catch (ex) {\n this.triggerOnError(ex);\n return {\n data: null,\n error: ex\n };\n }\n }\n\n public onError(cb: IOnErrorCb): void {\n this.onErrorCb = cb;\n }\n\n public triggerOnError(error: IRecordLockingError): void {\n this.setIsLoading(false);\n if (!this.onErrorCb) {\n return;\n }\n this.onErrorCb(error);\n }\n\n public isLockExpired(input: Date | string): boolean {\n const expiresOn = new Date(input);\n return expiresOn <= new Date();\n }\n\n private setIsLoading(loading: boolean): void {\n this._setLoading(loading);\n this.loading = loading;\n }\n\n private async fetchAndAssignRecords(\n folderId: string,\n type: string,\n records: T[]\n ): Promise<IPossiblyRecordLockingRecord[] | undefined> {\n if (records.length === 0) {\n return;\n } else if (this.loading) {\n return;\n }\n const assignedIdList = await this.assignRecords(folderId, type, records);\n if (assignedIdList.length === 0) {\n return;\n }\n this.setIsLoading(true);\n let result: IRecordLockingListLockRecordsResult;\n try {\n result = await this._listLockRecords.execute({\n where: {\n id_in: assignedIdList,\n type\n },\n limit: 10000\n });\n } catch (ex) {\n console.error(ex);\n this.triggerOnError(ex);\n return;\n } finally {\n this.setIsLoading(false);\n }\n if (result.error) {\n this.triggerOnError(result.error);\n return;\n } else if (!result.data) {\n this.triggerOnError(\n createRecordLockingError({\n message: `There is no data in the result and there is no error. Please check the network tab for more info.`,\n code: \"NO_DATA_IN_RESULT\"\n })\n );\n return;\n } else if (result.data.length === 0) {\n return;\n }\n\n for (const record of result.data) {\n const index = this.records.findIndex(r => {\n const { id: entryId } = parseIdentifier(record.id);\n return r.entryId === entryId;\n });\n if (index < 0) {\n console.error(`There is no record with id ${record.id} in the records array.`);\n continue;\n }\n this.records[index] = {\n ...this.records[index],\n $locked: {\n lockedBy: record.lockedBy,\n expiresOn: record.expiresOn,\n lockedOn: record.lockedOn,\n actions: record.actions\n }\n };\n }\n\n return this.records;\n }\n /**\n * Assign records and return the assigned ID list.\n */\n private async assignRecords(folderId: string, type: string, records: T[]): Promise<string[]> {\n /**\n * First we check the record keys against ones in the local cache.\n */\n const keys = records.map(record => {\n if (record.entryId) {\n return record.entryId;\n }\n const { id: entryId } = parseIdentifier(record.id);\n return entryId;\n });\n const cacheKey = await createCacheKey(keys);\n if (this.currentRecordsCacheKey === cacheKey) {\n return [];\n }\n this.currentRecordsCacheKey = cacheKey;\n\n /**\n * Reset records if new type is not as same as the old type / folderId.\n */\n if (this.currentRecordType !== type || this.currentFolderId !== folderId) {\n this.records = [];\n this.currentRecordType = type;\n this.currentFolderId = folderId;\n }\n\n return records.reduce<string[]>((collection, record) => {\n const { id: entryId } = parseIdentifier(record.id);\n const index = this.records.findIndex(r => r.entryId === entryId);\n if (index >= 0) {\n return collection;\n }\n this.records.push({\n ...record,\n entryId,\n $lockingType: type,\n $locked: undefined\n });\n if (record.$type !== \"RECORD\") {\n return collection;\n }\n collection.push(entryId);\n return collection;\n }, []);\n }\n}\n\nexport const createRecordLocking = <T extends IRecordLockingRecord>(\n config: ICreateRecordLockingParams\n): IRecordLocking => {\n const client = new RecordLockingClient({\n client: config.client\n });\n\n const getLockRecord = new RecordLockingGetLockRecord({\n client\n });\n\n const getLockedEntryLockRecord = new RecordLockingGetLockedEntryLockRecord({\n client\n });\n\n const isEntryLocked = new RecordLockingIsEntryLocked({\n client\n });\n\n const listLockRecords = new RecordLockingListLockRecords({\n client\n });\n\n const lockEntry = new RecordLockingLockEntry({\n client\n });\n\n const unlockEntry = new RecordLockingUnlockEntry({\n client\n });\n\n const updateEntryLock = new RecordLockingUpdateEntryLock({\n client\n });\n\n return new RecordLocking<T>({\n setLoading: config.setLoading,\n getLockRecord,\n getLockedEntryLockRecord,\n isEntryLocked,\n listLockRecords,\n updateEntryLock,\n lockEntry,\n unlockEntry\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ApolloClient, ApolloQueryResult, MutationOptions, QueryOptions } from "apollo-client";
|
|
2
2
|
import type { FetchResult } from "apollo-link";
|
|
3
|
-
import type { IRecordLockingClient } from "
|
|
3
|
+
import type { IRecordLockingClient } from "../domain/abstractions/IRecordLockingClient.js";
|
|
4
4
|
export interface IRecordLockingClientParams {
|
|
5
5
|
client: ApolloClient<any>;
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RecordLockingClient","constructor","params","client","query","fetchPolicy","mutation","options","mutate"],"sources":["RecordLockingClient.ts"],"sourcesContent":["import type { ApolloClient, ApolloQueryResult, MutationOptions, QueryOptions } from \"apollo-client\";\nimport type { FetchResult } from \"apollo-link\";\nimport type { IRecordLockingClient } from \"~/domain/abstractions/IRecordLockingClient\";\n\nexport interface IRecordLockingClientParams {\n client: ApolloClient<any>;\n}\n\nexport class RecordLockingClient implements IRecordLockingClient {\n private readonly client: ApolloClient<any>;\n\n public constructor(params: IRecordLockingClientParams) {\n this.client = params.client;\n }\n\n public async query<T, R>(params: QueryOptions<R>): Promise<ApolloQueryResult<T>> {\n return this.client.query<T, R>({\n ...params,\n fetchPolicy: \"network-only\"\n });\n }\n\n public async mutation<T, R>(options: MutationOptions<T, R>): Promise<FetchResult<T>> {\n return this.client.mutate<T, R>({\n ...options,\n fetchPolicy: \"no-cache\"\n });\n }\n}\n"],"mappings":"AAQA,OAAO,MAAMA,mBAAmB,CAAiC;EAGtDC,WAAWA,CAACC,MAAkC,EAAE;IACnD,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,KAAKA,CAAOF,MAAuB,EAAiC;IAC7E,OAAO,IAAI,CAACC,MAAM,CAACC,KAAK,CAAO;MAC3B,GAAGF,MAAM;MACTG,WAAW,EAAE;IACjB,CAAC,CAAC;EACN;EAEA,MAAaC,QAAQA,CAAOC,OAA8B,EAA2B;IACjF,OAAO,IAAI,CAACJ,MAAM,CAACK,MAAM,CAAO;MAC5B,GAAGD,OAAO;MACVF,WAAW,EAAE;IACjB,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["RecordLockingClient","constructor","params","client","query","fetchPolicy","mutation","options","mutate"],"sources":["RecordLockingClient.ts"],"sourcesContent":["import type { ApolloClient, ApolloQueryResult, MutationOptions, QueryOptions } from \"apollo-client\";\nimport type { FetchResult } from \"apollo-link\";\nimport type { IRecordLockingClient } from \"~/domain/abstractions/IRecordLockingClient.js\";\n\nexport interface IRecordLockingClientParams {\n client: ApolloClient<any>;\n}\n\nexport class RecordLockingClient implements IRecordLockingClient {\n private readonly client: ApolloClient<any>;\n\n public constructor(params: IRecordLockingClientParams) {\n this.client = params.client;\n }\n\n public async query<T, R>(params: QueryOptions<R>): Promise<ApolloQueryResult<T>> {\n return this.client.query<T, R>({\n ...params,\n fetchPolicy: \"network-only\"\n });\n }\n\n public async mutation<T, R>(options: MutationOptions<T, R>): Promise<FetchResult<T>> {\n return this.client.mutate<T, R>({\n ...options,\n fetchPolicy: \"no-cache\"\n });\n }\n}\n"],"mappings":"AAQA,OAAO,MAAMA,mBAAmB,CAAiC;EAGtDC,WAAWA,CAACC,MAAkC,EAAE;IACnD,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,KAAKA,CAAOF,MAAuB,EAAiC;IAC7E,OAAO,IAAI,CAACC,MAAM,CAACC,KAAK,CAAO;MAC3B,GAAGF,MAAM;MACTG,WAAW,EAAE;IACjB,CAAC,CAAC;EACN;EAEA,MAAaC,QAAQA,CAAOC,OAA8B,EAA2B;IACjF,OAAO,IAAI,CAACJ,MAAM,CAACK,MAAM,CAAO;MAC5B,GAAGD,OAAO;MACVF,WAAW,EAAE;IACjB,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IRecordLockingGetLockRecord, IRecordLockingGetLockRecordExecuteParams, IRecordLockingGetLockRecordExecuteResult } from "
|
|
2
|
-
import type { IRecordLockingClient } from "
|
|
1
|
+
import type { IRecordLockingGetLockRecord, IRecordLockingGetLockRecordExecuteParams, IRecordLockingGetLockRecordExecuteResult } from "../domain/abstractions/IRecordLockingGetLockRecord.js";
|
|
2
|
+
import type { IRecordLockingClient } from "../domain/abstractions/IRecordLockingClient.js";
|
|
3
3
|
interface Params {
|
|
4
4
|
client: IRecordLockingClient;
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GET_LOCK_RECORD_QUERY","WebinyError","RecordLockingGetLockRecord","constructor","params","client","execute","result","query","variables","data","recordLocking","getLockRecord","error"],"sources":["RecordLockingGetLockRecord.ts"],"sourcesContent":["import type {\n IRecordLockingGetLockRecord,\n IRecordLockingGetLockRecordExecuteParams,\n IRecordLockingGetLockRecordExecuteResult\n} from \"~/domain/abstractions/IRecordLockingGetLockRecord\";\nimport type { IRecordLockingClient } from \"~/domain/abstractions/IRecordLockingClient\";\nimport type {\n IRecordLockingGetLockRecordResponse,\n IRecordLockingGetLockRecordVariables\n} from \"~/domain/graphql/getLockRecord\";\nimport { GET_LOCK_RECORD_QUERY } from \"~/domain/graphql/getLockRecord\";\nimport { WebinyError } from \"@webiny/error\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingGetLockRecord implements IRecordLockingGetLockRecord {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n public async execute(\n params: IRecordLockingGetLockRecordExecuteParams\n ): Promise<IRecordLockingGetLockRecordExecuteResult> {\n const result = await this.client.query<\n IRecordLockingGetLockRecordResponse,\n IRecordLockingGetLockRecordVariables\n >({\n query: GET_LOCK_RECORD_QUERY,\n variables: params\n });\n if (result.data.recordLocking.getLockRecord.error) {\n throw new WebinyError(result.data.recordLocking.getLockRecord.error);\n } else if (!result.data.recordLocking.getLockRecord.data) {\n throw new WebinyError(\"No data returned from server.\");\n }\n return result.data.recordLocking.getLockRecord;\n }\n}\n"],"mappings":"AAUA,SAASA,qBAAqB;AAC9B,SAASC,WAAW,QAAQ,eAAe;AAM3C,OAAO,MAAMC,0BAA0B,CAAwC;EAGpEC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EACA,MAAaC,OAAOA,CAChBF,MAAgD,EACC;IACjD,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACF,MAAM,CAACG,KAAK,CAGpC;MACEA,KAAK,EAAER,qBAAqB;MAC5BS,SAAS,EAAEL;IACf,CAAC,CAAC;IACF,IAAIG,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,aAAa,CAACC,KAAK,EAAE;MAC/C,MAAM,IAAIZ,WAAW,CAACM,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,aAAa,CAACC,KAAK,CAAC;IACxE,CAAC,MAAM,IAAI,CAACN,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,aAAa,CAACF,IAAI,EAAE;MACtD,MAAM,IAAIT,WAAW,CAAC,+BAA+B,CAAC;IAC1D;IACA,OAAOM,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,aAAa;EAClD;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["GET_LOCK_RECORD_QUERY","WebinyError","RecordLockingGetLockRecord","constructor","params","client","execute","result","query","variables","data","recordLocking","getLockRecord","error"],"sources":["RecordLockingGetLockRecord.ts"],"sourcesContent":["import type {\n IRecordLockingGetLockRecord,\n IRecordLockingGetLockRecordExecuteParams,\n IRecordLockingGetLockRecordExecuteResult\n} from \"~/domain/abstractions/IRecordLockingGetLockRecord.js\";\nimport type { IRecordLockingClient } from \"~/domain/abstractions/IRecordLockingClient.js\";\nimport type {\n IRecordLockingGetLockRecordResponse,\n IRecordLockingGetLockRecordVariables\n} from \"~/domain/graphql/getLockRecord.js\";\nimport { GET_LOCK_RECORD_QUERY } from \"~/domain/graphql/getLockRecord.js\";\nimport { WebinyError } from \"@webiny/error\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingGetLockRecord implements IRecordLockingGetLockRecord {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n public async execute(\n params: IRecordLockingGetLockRecordExecuteParams\n ): Promise<IRecordLockingGetLockRecordExecuteResult> {\n const result = await this.client.query<\n IRecordLockingGetLockRecordResponse,\n IRecordLockingGetLockRecordVariables\n >({\n query: GET_LOCK_RECORD_QUERY,\n variables: params\n });\n if (result.data.recordLocking.getLockRecord.error) {\n throw new WebinyError(result.data.recordLocking.getLockRecord.error);\n } else if (!result.data.recordLocking.getLockRecord.data) {\n throw new WebinyError(\"No data returned from server.\");\n }\n return result.data.recordLocking.getLockRecord;\n }\n}\n"],"mappings":"AAUA,SAASA,qBAAqB;AAC9B,SAASC,WAAW,QAAQ,eAAe;AAM3C,OAAO,MAAMC,0BAA0B,CAAwC;EAGpEC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EACA,MAAaC,OAAOA,CAChBF,MAAgD,EACC;IACjD,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACF,MAAM,CAACG,KAAK,CAGpC;MACEA,KAAK,EAAER,qBAAqB;MAC5BS,SAAS,EAAEL;IACf,CAAC,CAAC;IACF,IAAIG,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,aAAa,CAACC,KAAK,EAAE;MAC/C,MAAM,IAAIZ,WAAW,CAACM,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,aAAa,CAACC,KAAK,CAAC;IACxE,CAAC,MAAM,IAAI,CAACN,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,aAAa,CAACF,IAAI,EAAE;MACtD,MAAM,IAAIT,WAAW,CAAC,+BAA+B,CAAC;IAC1D;IACA,OAAOM,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,aAAa;EAClD;AACJ","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IRecordLockingClient } from "
|
|
2
|
-
import type { IRecordLockingGetLockedEntryLockRecord, IRecordLockingGetLockedEntryLockRecordExecuteParams, IRecordLockingGetLockedEntryLockRecordExecuteResult } from "
|
|
1
|
+
import type { IRecordLockingClient } from "../domain/abstractions/IRecordLockingClient.js";
|
|
2
|
+
import type { IRecordLockingGetLockedEntryLockRecord, IRecordLockingGetLockedEntryLockRecordExecuteParams, IRecordLockingGetLockedEntryLockRecordExecuteResult } from "../domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js";
|
|
3
3
|
interface Params {
|
|
4
4
|
client: IRecordLockingClient;
|
|
5
5
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GET_LOCKED_ENTRY_LOCK_RECORD_QUERY } from "./graphql/getLockedEntryLockRecord";
|
|
1
|
+
import { GET_LOCKED_ENTRY_LOCK_RECORD_QUERY } from "./graphql/getLockedEntryLockRecord.js";
|
|
2
2
|
import { WebinyError } from "@webiny/error";
|
|
3
3
|
export class RecordLockingGetLockedEntryLockRecord {
|
|
4
4
|
constructor(params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GET_LOCKED_ENTRY_LOCK_RECORD_QUERY","WebinyError","RecordLockingGetLockedEntryLockRecord","constructor","params","client","execute","result","query","variables","data","recordLocking","getLockedEntryLockRecord","error"],"sources":["RecordLockingGetLockedEntryLockRecord.ts"],"sourcesContent":["import type { IRecordLockingClient } from \"~/domain/abstractions/IRecordLockingClient\";\nimport type {\n IRecordLockingGetLockedEntryLockRecordResponse,\n IRecordLockingGetLockedEntryLockRecordVariables\n} from \"~/domain/graphql/getLockedEntryLockRecord\";\nimport { GET_LOCKED_ENTRY_LOCK_RECORD_QUERY } from \"~/domain/graphql/getLockedEntryLockRecord\";\nimport { WebinyError } from \"@webiny/error\";\nimport type {\n IRecordLockingGetLockedEntryLockRecord,\n IRecordLockingGetLockedEntryLockRecordExecuteParams,\n IRecordLockingGetLockedEntryLockRecordExecuteResult\n} from \"~/domain/abstractions/IRecordLockingGetLockedEntryLockRecord\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingGetLockedEntryLockRecord\n implements IRecordLockingGetLockedEntryLockRecord\n{\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n public async execute(\n params: IRecordLockingGetLockedEntryLockRecordExecuteParams\n ): Promise<IRecordLockingGetLockedEntryLockRecordExecuteResult> {\n const result = await this.client.query<\n IRecordLockingGetLockedEntryLockRecordResponse,\n IRecordLockingGetLockedEntryLockRecordVariables\n >({\n query: GET_LOCKED_ENTRY_LOCK_RECORD_QUERY,\n variables: params\n });\n if (result.data.recordLocking.getLockedEntryLockRecord.error) {\n throw new WebinyError(result.data.recordLocking.getLockedEntryLockRecord.error);\n }\n return result.data.recordLocking.getLockedEntryLockRecord;\n }\n}\n"],"mappings":"AAKA,SAASA,kCAAkC;AAC3C,SAASC,WAAW,QAAQ,eAAe;AAW3C,OAAO,MAAMC,qCAAqC,CAElD;EAGWC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EACA,MAAaC,OAAOA,CAChBF,MAA2D,EACC;IAC5D,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACF,MAAM,CAACG,KAAK,CAGpC;MACEA,KAAK,EAAER,kCAAkC;MACzCS,SAAS,EAAEL;IACf,CAAC,CAAC;IACF,IAAIG,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,wBAAwB,CAACC,KAAK,EAAE;MAC1D,MAAM,IAAIZ,WAAW,CAACM,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,wBAAwB,CAACC,KAAK,CAAC;IACnF;IACA,OAAON,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,wBAAwB;EAC7D;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["GET_LOCKED_ENTRY_LOCK_RECORD_QUERY","WebinyError","RecordLockingGetLockedEntryLockRecord","constructor","params","client","execute","result","query","variables","data","recordLocking","getLockedEntryLockRecord","error"],"sources":["RecordLockingGetLockedEntryLockRecord.ts"],"sourcesContent":["import type { IRecordLockingClient } from \"~/domain/abstractions/IRecordLockingClient.js\";\nimport type {\n IRecordLockingGetLockedEntryLockRecordResponse,\n IRecordLockingGetLockedEntryLockRecordVariables\n} from \"~/domain/graphql/getLockedEntryLockRecord.js\";\nimport { GET_LOCKED_ENTRY_LOCK_RECORD_QUERY } from \"~/domain/graphql/getLockedEntryLockRecord.js\";\nimport { WebinyError } from \"@webiny/error\";\nimport type {\n IRecordLockingGetLockedEntryLockRecord,\n IRecordLockingGetLockedEntryLockRecordExecuteParams,\n IRecordLockingGetLockedEntryLockRecordExecuteResult\n} from \"~/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingGetLockedEntryLockRecord\n implements IRecordLockingGetLockedEntryLockRecord\n{\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n public async execute(\n params: IRecordLockingGetLockedEntryLockRecordExecuteParams\n ): Promise<IRecordLockingGetLockedEntryLockRecordExecuteResult> {\n const result = await this.client.query<\n IRecordLockingGetLockedEntryLockRecordResponse,\n IRecordLockingGetLockedEntryLockRecordVariables\n >({\n query: GET_LOCKED_ENTRY_LOCK_RECORD_QUERY,\n variables: params\n });\n if (result.data.recordLocking.getLockedEntryLockRecord.error) {\n throw new WebinyError(result.data.recordLocking.getLockedEntryLockRecord.error);\n }\n return result.data.recordLocking.getLockedEntryLockRecord;\n }\n}\n"],"mappings":"AAKA,SAASA,kCAAkC;AAC3C,SAASC,WAAW,QAAQ,eAAe;AAW3C,OAAO,MAAMC,qCAAqC,CAElD;EAGWC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EACA,MAAaC,OAAOA,CAChBF,MAA2D,EACC;IAC5D,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACF,MAAM,CAACG,KAAK,CAGpC;MACEA,KAAK,EAAER,kCAAkC;MACzCS,SAAS,EAAEL;IACf,CAAC,CAAC;IACF,IAAIG,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,wBAAwB,CAACC,KAAK,EAAE;MAC1D,MAAM,IAAIZ,WAAW,CAACM,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,wBAAwB,CAACC,KAAK,CAAC;IACnF;IACA,OAAON,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,wBAAwB;EAC7D;AACJ","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IRecordLockingIsEntryLocked, IRecordLockingIsEntryLockedParams, IRecordLockingIsEntryLockedResult } from "
|
|
2
|
-
import type { IRecordLockingClient } from "./abstractions/IRecordLockingClient";
|
|
1
|
+
import type { IRecordLockingIsEntryLocked, IRecordLockingIsEntryLockedParams, IRecordLockingIsEntryLockedResult } from "../domain/abstractions/IRecordLockingIsEntryLocked.js";
|
|
2
|
+
import type { IRecordLockingClient } from "./abstractions/IRecordLockingClient.js";
|
|
3
3
|
interface Params {
|
|
4
4
|
client: IRecordLockingClient;
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IS_ENTRY_LOCKED_QUERY","RecordLockingIsEntryLocked","constructor","params","client","execute","result","query","variables","data","recordLocking","isEntryLocked"],"sources":["RecordLockingIsEntryLocked.ts"],"sourcesContent":["import type {\n IRecordLockingIsEntryLocked,\n IRecordLockingIsEntryLockedParams,\n IRecordLockingIsEntryLockedResult\n} from \"~/domain/abstractions/IRecordLockingIsEntryLocked\";\nimport type { IRecordLockingClient } from \"./abstractions/IRecordLockingClient\";\nimport type {\n IRecordLockingIsEntryLockedResponse,\n IRecordLockingIsEntryLockedVariables\n} from \"~/domain/graphql/isEntryLocked\";\nimport { IS_ENTRY_LOCKED_QUERY } from \"~/domain/graphql/isEntryLocked\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingIsEntryLocked implements IRecordLockingIsEntryLocked {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n public async execute(\n params: IRecordLockingIsEntryLockedParams\n ): Promise<IRecordLockingIsEntryLockedResult> {\n try {\n const result = await this.client.query<\n IRecordLockingIsEntryLockedResponse,\n IRecordLockingIsEntryLockedVariables\n >({\n query: IS_ENTRY_LOCKED_QUERY,\n variables: params\n });\n return !!result.data.recordLocking.isEntryLocked.data;\n } catch {\n return false;\n }\n }\n}\n"],"mappings":"AAUA,SAASA,qBAAqB;AAM9B,OAAO,MAAMC,0BAA0B,CAAwC;EAGpEC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EACA,MAAaC,OAAOA,CAChBF,MAAyC,EACC;IAC1C,IAAI;MACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACF,MAAM,CAACG,KAAK,CAGpC;QACEA,KAAK,EAAEP,qBAAqB;QAC5BQ,SAAS,EAAEL;MACf,CAAC,CAAC;MACF,OAAO,CAAC,CAACG,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,aAAa,CAACF,IAAI;IACzD,CAAC,CAAC,MAAM;MACJ,OAAO,KAAK;IAChB;EACJ;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["IS_ENTRY_LOCKED_QUERY","RecordLockingIsEntryLocked","constructor","params","client","execute","result","query","variables","data","recordLocking","isEntryLocked"],"sources":["RecordLockingIsEntryLocked.ts"],"sourcesContent":["import type {\n IRecordLockingIsEntryLocked,\n IRecordLockingIsEntryLockedParams,\n IRecordLockingIsEntryLockedResult\n} from \"~/domain/abstractions/IRecordLockingIsEntryLocked.js\";\nimport type { IRecordLockingClient } from \"./abstractions/IRecordLockingClient.js\";\nimport type {\n IRecordLockingIsEntryLockedResponse,\n IRecordLockingIsEntryLockedVariables\n} from \"~/domain/graphql/isEntryLocked.js\";\nimport { IS_ENTRY_LOCKED_QUERY } from \"~/domain/graphql/isEntryLocked.js\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingIsEntryLocked implements IRecordLockingIsEntryLocked {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n public async execute(\n params: IRecordLockingIsEntryLockedParams\n ): Promise<IRecordLockingIsEntryLockedResult> {\n try {\n const result = await this.client.query<\n IRecordLockingIsEntryLockedResponse,\n IRecordLockingIsEntryLockedVariables\n >({\n query: IS_ENTRY_LOCKED_QUERY,\n variables: params\n });\n return !!result.data.recordLocking.isEntryLocked.data;\n } catch {\n return false;\n }\n }\n}\n"],"mappings":"AAUA,SAASA,qBAAqB;AAM9B,OAAO,MAAMC,0BAA0B,CAAwC;EAGpEC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EACA,MAAaC,OAAOA,CAChBF,MAAyC,EACC;IAC1C,IAAI;MACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACF,MAAM,CAACG,KAAK,CAGpC;QACEA,KAAK,EAAEP,qBAAqB;QAC5BQ,SAAS,EAAEL;MACf,CAAC,CAAC;MACF,OAAO,CAAC,CAACG,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,aAAa,CAACF,IAAI;IACzD,CAAC,CAAC,MAAM;MACJ,OAAO,KAAK;IAChB;EACJ;AACJ","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ApolloClient } from "apollo-client";
|
|
2
|
-
import type { IRecordLockingListLockRecords, IRecordLockingListLockRecordsParams, IRecordLockingListLockRecordsResult } from "./abstractions/IRecordLockingListLockRecords";
|
|
3
|
-
import type { IRecordLockingClient } from "./abstractions/IRecordLockingClient";
|
|
2
|
+
import type { IRecordLockingListLockRecords, IRecordLockingListLockRecordsParams, IRecordLockingListLockRecordsResult } from "./abstractions/IRecordLockingListLockRecords.js";
|
|
3
|
+
import type { IRecordLockingClient } from "./abstractions/IRecordLockingClient.js";
|
|
4
4
|
interface Params {
|
|
5
5
|
client: IRecordLockingClient | ApolloClient<any>;
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WebinyError } from "@webiny/error";
|
|
2
|
-
import { createRecordLockingClient } from "./utils/createRecordLockingClient";
|
|
3
|
-
import { LIST_LOCK_RECORDS } from "./graphql/listLockRecords";
|
|
2
|
+
import { createRecordLockingClient } from "./utils/createRecordLockingClient.js";
|
|
3
|
+
import { LIST_LOCK_RECORDS } from "./graphql/listLockRecords.js";
|
|
4
4
|
export class RecordLockingListLockRecords {
|
|
5
5
|
constructor(params) {
|
|
6
6
|
this.client = createRecordLockingClient(params.client);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebinyError","createRecordLockingClient","LIST_LOCK_RECORDS","RecordLockingListLockRecords","constructor","params","client","execute","where","sort","limit","after","result","query","variables","data","recordLocking","listLockRecords"],"sources":["RecordLockingListLockRecords.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type { ApolloClient } from \"apollo-client\";\nimport type {\n IRecordLockingListLockRecords,\n IRecordLockingListLockRecordsParams,\n IRecordLockingListLockRecordsResult\n} from \"./abstractions/IRecordLockingListLockRecords\";\nimport type { IRecordLockingClient } from \"./abstractions/IRecordLockingClient\";\nimport { createRecordLockingClient } from \"./utils/createRecordLockingClient\";\nimport type {\n IRecordLockingListLockedRecordsResponse,\n IRecordLockingListLockedRecordsVariables\n} from \"~/domain/graphql/listLockRecords\";\nimport { LIST_LOCK_RECORDS } from \"~/domain/graphql/listLockRecords\";\n\ninterface Params {\n client: IRecordLockingClient | ApolloClient<any>;\n}\n\nexport class RecordLockingListLockRecords implements IRecordLockingListLockRecords {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = createRecordLockingClient(params.client);\n }\n public async execute(\n params: IRecordLockingListLockRecordsParams\n ): Promise<IRecordLockingListLockRecordsResult> {\n const { where, sort, limit, after } = params;\n\n const result = await this.client.query<\n IRecordLockingListLockedRecordsResponse,\n IRecordLockingListLockedRecordsVariables\n >({\n query: LIST_LOCK_RECORDS,\n variables: {\n where,\n sort,\n limit,\n after\n }\n });\n if (!result.data?.recordLocking?.listLockRecords) {\n throw new WebinyError(\"No data returned from server.\");\n }\n return result.data.recordLocking.listLockRecords;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAQ3C,SAASC,yBAAyB;AAKlC,SAASC,iBAAiB;AAM1B,OAAO,MAAMC,4BAA4B,CAA0C;EAGxEC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGL,yBAAyB,CAACI,MAAM,CAACC,MAAM,CAAC;EAC1D;EACA,MAAaC,OAAOA,CAChBF,MAA2C,EACC;IAC5C,MAAM;MAAEG,KAAK;MAAEC,IAAI;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAGN,MAAM;IAE5C,MAAMO,MAAM,GAAG,MAAM,IAAI,CAACN,MAAM,CAACO,KAAK,CAGpC;MACEA,KAAK,EAAEX,iBAAiB;MACxBY,SAAS,EAAE;QACPN,KAAK;QACLC,IAAI;QACJC,KAAK;QACLC;MACJ;IACJ,CAAC,CAAC;IACF,IAAI,CAACC,MAAM,CAACG,IAAI,EAAEC,aAAa,EAAEC,eAAe,EAAE;MAC9C,MAAM,IAAIjB,WAAW,CAAC,+BAA+B,CAAC;IAC1D;IACA,OAAOY,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,eAAe;EACpD;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["WebinyError","createRecordLockingClient","LIST_LOCK_RECORDS","RecordLockingListLockRecords","constructor","params","client","execute","where","sort","limit","after","result","query","variables","data","recordLocking","listLockRecords"],"sources":["RecordLockingListLockRecords.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type { ApolloClient } from \"apollo-client\";\nimport type {\n IRecordLockingListLockRecords,\n IRecordLockingListLockRecordsParams,\n IRecordLockingListLockRecordsResult\n} from \"./abstractions/IRecordLockingListLockRecords.js\";\nimport type { IRecordLockingClient } from \"./abstractions/IRecordLockingClient.js\";\nimport { createRecordLockingClient } from \"./utils/createRecordLockingClient.js\";\nimport type {\n IRecordLockingListLockedRecordsResponse,\n IRecordLockingListLockedRecordsVariables\n} from \"~/domain/graphql/listLockRecords.js\";\nimport { LIST_LOCK_RECORDS } from \"~/domain/graphql/listLockRecords.js\";\n\ninterface Params {\n client: IRecordLockingClient | ApolloClient<any>;\n}\n\nexport class RecordLockingListLockRecords implements IRecordLockingListLockRecords {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = createRecordLockingClient(params.client);\n }\n public async execute(\n params: IRecordLockingListLockRecordsParams\n ): Promise<IRecordLockingListLockRecordsResult> {\n const { where, sort, limit, after } = params;\n\n const result = await this.client.query<\n IRecordLockingListLockedRecordsResponse,\n IRecordLockingListLockedRecordsVariables\n >({\n query: LIST_LOCK_RECORDS,\n variables: {\n where,\n sort,\n limit,\n after\n }\n });\n if (!result.data?.recordLocking?.listLockRecords) {\n throw new WebinyError(\"No data returned from server.\");\n }\n return result.data.recordLocking.listLockRecords;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAQ3C,SAASC,yBAAyB;AAKlC,SAASC,iBAAiB;AAM1B,OAAO,MAAMC,4BAA4B,CAA0C;EAGxEC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGL,yBAAyB,CAACI,MAAM,CAACC,MAAM,CAAC;EAC1D;EACA,MAAaC,OAAOA,CAChBF,MAA2C,EACC;IAC5C,MAAM;MAAEG,KAAK;MAAEC,IAAI;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAGN,MAAM;IAE5C,MAAMO,MAAM,GAAG,MAAM,IAAI,CAACN,MAAM,CAACO,KAAK,CAGpC;MACEA,KAAK,EAAEX,iBAAiB;MACxBY,SAAS,EAAE;QACPN,KAAK;QACLC,IAAI;QACJC,KAAK;QACLC;MACJ;IACJ,CAAC,CAAC;IACF,IAAI,CAACC,MAAM,CAACG,IAAI,EAAEC,aAAa,EAAEC,eAAe,EAAE;MAC9C,MAAM,IAAIjB,WAAW,CAAC,+BAA+B,CAAC;IAC1D;IACA,OAAOY,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,eAAe;EACpD;AACJ","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IRecordLockingLockEntry, IRecordLockingLockEntryParams, IRecordLockingLockEntryResult } from "
|
|
2
|
-
import type { IRecordLockingClient } from "./abstractions/IRecordLockingClient";
|
|
1
|
+
import type { IRecordLockingLockEntry, IRecordLockingLockEntryParams, IRecordLockingLockEntryResult } from "../domain/abstractions/IRecordLockingLockEntry.js";
|
|
2
|
+
import type { IRecordLockingClient } from "./abstractions/IRecordLockingClient.js";
|
|
3
3
|
interface Params {
|
|
4
4
|
client: IRecordLockingClient;
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebinyError","RecordLockingLockEntry","constructor","params","client","execute"],"sources":["RecordLockingLockEntry.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type {\n IRecordLockingLockEntry,\n IRecordLockingLockEntryParams,\n IRecordLockingLockEntryResult\n} from \"~/domain/abstractions/IRecordLockingLockEntry\";\nimport type { IRecordLockingClient } from \"./abstractions/IRecordLockingClient\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingLockEntry implements IRecordLockingLockEntry {\n
|
|
1
|
+
{"version":3,"names":["WebinyError","RecordLockingLockEntry","constructor","params","client","execute"],"sources":["RecordLockingLockEntry.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type {\n IRecordLockingLockEntry,\n IRecordLockingLockEntryParams,\n IRecordLockingLockEntryResult\n} from \"~/domain/abstractions/IRecordLockingLockEntry.js\";\nimport type { IRecordLockingClient } from \"./abstractions/IRecordLockingClient.js\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingLockEntry implements IRecordLockingLockEntry {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n public async execute(\n // eslint-disable-next-line\n params: IRecordLockingLockEntryParams\n ): Promise<IRecordLockingLockEntryResult> {\n throw new WebinyError(\"Method not implemented.\");\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAY3C,OAAO,MAAMC,sBAAsB,CAAoC;EAG5DC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EACA,MAAaC,OAAOA;EAChB;EACAF,MAAqC,EACC;IACtC,MAAM,IAAIH,WAAW,CAAC,yBAAyB,CAAC;EACpD;AACJ","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IRecordLockingUnlockEntry, IRecordLockingUnlockEntryParams, IRecordLockingUnlockEntryResult } from "
|
|
2
|
-
import type { IRecordLockingClient } from "./abstractions/IRecordLockingClient";
|
|
1
|
+
import type { IRecordLockingUnlockEntry, IRecordLockingUnlockEntryParams, IRecordLockingUnlockEntryResult } from "../domain/abstractions/IRecordLockingUnlockEntry.js";
|
|
2
|
+
import type { IRecordLockingClient } from "./abstractions/IRecordLockingClient.js";
|
|
3
3
|
interface Params {
|
|
4
4
|
client: IRecordLockingClient;
|
|
5
5
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WebinyError } from "@webiny/error";
|
|
2
|
-
import { UNLOCK_ENTRY_MUTATION } from "./graphql/unlockEntry";
|
|
2
|
+
import { UNLOCK_ENTRY_MUTATION } from "./graphql/unlockEntry.js";
|
|
3
3
|
export class RecordLockingUnlockEntry {
|
|
4
4
|
constructor(params) {
|
|
5
5
|
this.client = params.client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebinyError","UNLOCK_ENTRY_MUTATION","RecordLockingUnlockEntry","constructor","params","client","execute","result","mutation","variables","data","recordLocking","unlockEntry"],"sources":["RecordLockingUnlockEntry.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type {\n IRecordLockingUnlockEntry,\n IRecordLockingUnlockEntryParams,\n IRecordLockingUnlockEntryResult\n} from \"~/domain/abstractions/IRecordLockingUnlockEntry\";\nimport type { IRecordLockingClient } from \"./abstractions/IRecordLockingClient\";\nimport type {\n RecordLockingUnlockEntryResponse,\n IRecordLockingUnlockEntryVariables\n} from \"~/domain/graphql/unlockEntry\";\nimport { UNLOCK_ENTRY_MUTATION } from \"~/domain/graphql/unlockEntry\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingUnlockEntry implements IRecordLockingUnlockEntry {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n public async execute(\n params: IRecordLockingUnlockEntryParams\n ): Promise<IRecordLockingUnlockEntryResult> {\n const result = await this.client.mutation<\n RecordLockingUnlockEntryResponse,\n IRecordLockingUnlockEntryVariables\n >({\n mutation: UNLOCK_ENTRY_MUTATION,\n variables: params\n });\n if (!result.data?.recordLocking?.unlockEntry) {\n throw new WebinyError(\"No data returned from server.\");\n }\n return result.data.recordLocking.unlockEntry;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAW3C,SAASC,qBAAqB;AAM9B,OAAO,MAAMC,wBAAwB,CAAsC;EAGhEC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EACA,MAAaC,OAAOA,CAChBF,MAAuC,EACC;IACxC,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACF,MAAM,CAACG,QAAQ,CAGvC;MACEA,QAAQ,EAAEP,qBAAqB;MAC/BQ,SAAS,EAAEL;IACf,CAAC,CAAC;IACF,IAAI,CAACG,MAAM,CAACG,IAAI,EAAEC,aAAa,EAAEC,WAAW,EAAE;MAC1C,MAAM,IAAIZ,WAAW,CAAC,+BAA+B,CAAC;IAC1D;IACA,OAAOO,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,WAAW;EAChD;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["WebinyError","UNLOCK_ENTRY_MUTATION","RecordLockingUnlockEntry","constructor","params","client","execute","result","mutation","variables","data","recordLocking","unlockEntry"],"sources":["RecordLockingUnlockEntry.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type {\n IRecordLockingUnlockEntry,\n IRecordLockingUnlockEntryParams,\n IRecordLockingUnlockEntryResult\n} from \"~/domain/abstractions/IRecordLockingUnlockEntry.js\";\nimport type { IRecordLockingClient } from \"./abstractions/IRecordLockingClient.js\";\nimport type {\n RecordLockingUnlockEntryResponse,\n IRecordLockingUnlockEntryVariables\n} from \"~/domain/graphql/unlockEntry.js\";\nimport { UNLOCK_ENTRY_MUTATION } from \"~/domain/graphql/unlockEntry.js\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingUnlockEntry implements IRecordLockingUnlockEntry {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n public async execute(\n params: IRecordLockingUnlockEntryParams\n ): Promise<IRecordLockingUnlockEntryResult> {\n const result = await this.client.mutation<\n RecordLockingUnlockEntryResponse,\n IRecordLockingUnlockEntryVariables\n >({\n mutation: UNLOCK_ENTRY_MUTATION,\n variables: params\n });\n if (!result.data?.recordLocking?.unlockEntry) {\n throw new WebinyError(\"No data returned from server.\");\n }\n return result.data.recordLocking.unlockEntry;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAW3C,SAASC,qBAAqB;AAM9B,OAAO,MAAMC,wBAAwB,CAAsC;EAGhEC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EACA,MAAaC,OAAOA,CAChBF,MAAuC,EACC;IACxC,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACF,MAAM,CAACG,QAAQ,CAGvC;MACEA,QAAQ,EAAEP,qBAAqB;MAC/BQ,SAAS,EAAEL;IACf,CAAC,CAAC;IACF,IAAI,CAACG,MAAM,CAACG,IAAI,EAAEC,aAAa,EAAEC,WAAW,EAAE;MAC1C,MAAM,IAAIZ,WAAW,CAAC,+BAA+B,CAAC;IAC1D;IACA,OAAOO,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,WAAW;EAChD;AACJ","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IRecordLockingUpdateEntryLock, IRecordLockingUpdateEntryLockExecuteParams, IRecordLockingUpdateEntryLockExecuteResult } from "
|
|
2
|
-
import type { IRecordLockingClient } from "
|
|
1
|
+
import type { IRecordLockingUpdateEntryLock, IRecordLockingUpdateEntryLockExecuteParams, IRecordLockingUpdateEntryLockExecuteResult } from "../domain/abstractions/IRecordLockingUpdateEntryLock.js";
|
|
2
|
+
import type { IRecordLockingClient } from "../domain/abstractions/IRecordLockingClient.js";
|
|
3
3
|
interface Params {
|
|
4
4
|
client: IRecordLockingClient;
|
|
5
5
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WebinyError } from "@webiny/error";
|
|
2
|
-
import { UPDATE_ENTRY_LOCK } from "./graphql/updateEntryLock";
|
|
2
|
+
import { UPDATE_ENTRY_LOCK } from "./graphql/updateEntryLock.js";
|
|
3
3
|
export class RecordLockingUpdateEntryLock {
|
|
4
4
|
constructor(params) {
|
|
5
5
|
this.client = params.client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebinyError","UPDATE_ENTRY_LOCK","RecordLockingUpdateEntryLock","constructor","params","client","execute","result","mutation","variables","data","recordLocking","updateEntryLock"],"sources":["RecordLockingUpdateEntryLock.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type {\n IRecordLockingUpdateEntryLock,\n IRecordLockingUpdateEntryLockExecuteParams,\n IRecordLockingUpdateEntryLockExecuteResult\n} from \"~/domain/abstractions/IRecordLockingUpdateEntryLock\";\nimport type { IRecordLockingClient } from \"~/domain/abstractions/IRecordLockingClient\";\nimport type {\n IRecordLockingUpdateEntryLockResponse,\n IRecordLockingUpdateEntryLockVariables\n} from \"~/domain/graphql/updateEntryLock\";\nimport { UPDATE_ENTRY_LOCK } from \"~/domain/graphql/updateEntryLock\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingUpdateEntryLock implements IRecordLockingUpdateEntryLock {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n\n public async execute(\n params: IRecordLockingUpdateEntryLockExecuteParams\n ): Promise<IRecordLockingUpdateEntryLockExecuteResult> {\n const result = await this.client.mutation<\n IRecordLockingUpdateEntryLockResponse,\n IRecordLockingUpdateEntryLockVariables\n >({\n mutation: UPDATE_ENTRY_LOCK,\n variables: params\n });\n if (!result.data?.recordLocking?.updateEntryLock) {\n throw new WebinyError(\"No data returned from server.\");\n }\n return result.data.recordLocking.updateEntryLock;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAW3C,SAASC,iBAAiB;AAM1B,OAAO,MAAMC,4BAA4B,CAA0C;EAGxEC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,OAAOA,CAChBF,MAAkD,EACC;IACnD,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACF,MAAM,CAACG,QAAQ,CAGvC;MACEA,QAAQ,EAAEP,iBAAiB;MAC3BQ,SAAS,EAAEL;IACf,CAAC,CAAC;IACF,IAAI,CAACG,MAAM,CAACG,IAAI,EAAEC,aAAa,EAAEC,eAAe,EAAE;MAC9C,MAAM,IAAIZ,WAAW,CAAC,+BAA+B,CAAC;IAC1D;IACA,OAAOO,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,eAAe;EACpD;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["WebinyError","UPDATE_ENTRY_LOCK","RecordLockingUpdateEntryLock","constructor","params","client","execute","result","mutation","variables","data","recordLocking","updateEntryLock"],"sources":["RecordLockingUpdateEntryLock.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type {\n IRecordLockingUpdateEntryLock,\n IRecordLockingUpdateEntryLockExecuteParams,\n IRecordLockingUpdateEntryLockExecuteResult\n} from \"~/domain/abstractions/IRecordLockingUpdateEntryLock.js\";\nimport type { IRecordLockingClient } from \"~/domain/abstractions/IRecordLockingClient.js\";\nimport type {\n IRecordLockingUpdateEntryLockResponse,\n IRecordLockingUpdateEntryLockVariables\n} from \"~/domain/graphql/updateEntryLock.js\";\nimport { UPDATE_ENTRY_LOCK } from \"~/domain/graphql/updateEntryLock.js\";\n\ninterface Params {\n client: IRecordLockingClient;\n}\n\nexport class RecordLockingUpdateEntryLock implements IRecordLockingUpdateEntryLock {\n private readonly client: IRecordLockingClient;\n\n public constructor(params: Params) {\n this.client = params.client;\n }\n\n public async execute(\n params: IRecordLockingUpdateEntryLockExecuteParams\n ): Promise<IRecordLockingUpdateEntryLockExecuteResult> {\n const result = await this.client.mutation<\n IRecordLockingUpdateEntryLockResponse,\n IRecordLockingUpdateEntryLockVariables\n >({\n mutation: UPDATE_ENTRY_LOCK,\n variables: params\n });\n if (!result.data?.recordLocking?.updateEntryLock) {\n throw new WebinyError(\"No data returned from server.\");\n }\n return result.data.recordLocking.updateEntryLock;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAW3C,SAASC,iBAAiB;AAM1B,OAAO,MAAMC,4BAA4B,CAA0C;EAGxEC,WAAWA,CAACC,MAAc,EAAE;IAC/B,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,OAAOA,CAChBF,MAAkD,EACC;IACnD,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACF,MAAM,CAACG,QAAQ,CAGvC;MACEA,QAAQ,EAAEP,iBAAiB;MAC3BQ,SAAS,EAAEL;IACf,CAAC,CAAC;IACF,IAAI,CAACG,MAAM,CAACG,IAAI,EAAEC,aAAa,EAAEC,eAAe,EAAE;MAC9C,MAAM,IAAIZ,WAAW,CAAC,+BAA+B,CAAC;IAC1D;IACA,OAAOO,MAAM,CAACG,IAAI,CAACC,aAAa,CAACC,eAAe;EACpD;AACJ","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IFetchLockedEntryLockRecordParams, IFetchLockRecordParams, IFetchLockRecordResult, IIsRecordLockedParams, IPossiblyRecordLockingRecord, IRecordLockingError, IRecordLockingLockRecord, IRecordLockingRecord, IUnlockEntryParams, IUpdateEntryLockParams } from "../../types";
|
|
2
|
-
import type { IRecordLockingUnlockEntryResult } from "./IRecordLockingUnlockEntry";
|
|
1
|
+
import type { IFetchLockedEntryLockRecordParams, IFetchLockRecordParams, IFetchLockRecordResult, IIsRecordLockedParams, IPossiblyRecordLockingRecord, IRecordLockingError, IRecordLockingLockRecord, IRecordLockingRecord, IUnlockEntryParams, IUpdateEntryLockParams } from "../../types.js";
|
|
2
|
+
import type { IRecordLockingUnlockEntryResult } from "./IRecordLockingUnlockEntry.js";
|
|
3
3
|
export interface IRecordLockingUpdateEntryLockResult {
|
|
4
4
|
data: IRecordLockingLockRecord | null;
|
|
5
5
|
error: IRecordLockingError | null;
|
|
@@ -1 +1 @@
|
|
|
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\";\nimport type { IRecordLockingUnlockEntryResult } from \"./IRecordLockingUnlockEntry\";\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
|
+
{"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 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["IRecordLockingGetLockRecord.ts"],"sourcesContent":["import type { IRecordLockingError, IRecordLockingLockRecord } from \"~/types\";\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
|
+
{"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":[]}
|