@webiny/app-record-locking 5.40.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +12 -0
- package/components/HeadlessCmsActionsAcoCell.d.ts +2 -0
- package/components/HeadlessCmsActionsAcoCell.js +70 -0
- package/components/HeadlessCmsActionsAcoCell.js.map +1 -0
- package/components/HeadlessCmsContentEntry/ContentEntryGuard.d.ts +5 -0
- package/components/HeadlessCmsContentEntry/ContentEntryGuard.js +88 -0
- package/components/HeadlessCmsContentEntry/ContentEntryGuard.js.map +1 -0
- package/components/HeadlessCmsContentEntry/ContentEntryLocker.d.ts +14 -0
- package/components/HeadlessCmsContentEntry/ContentEntryLocker.js +108 -0
- package/components/HeadlessCmsContentEntry/ContentEntryLocker.js.map +1 -0
- package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.d.ts +2 -0
- package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js +63 -0
- package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js.map +1 -0
- package/components/HeadlessCmsContentEntry/index.d.ts +1 -0
- package/components/HeadlessCmsContentEntry/index.js +18 -0
- package/components/HeadlessCmsContentEntry/index.js.map +1 -0
- package/components/LockedRecord/LockedRecord.d.ts +6 -0
- package/components/LockedRecord/LockedRecord.js +161 -0
- package/components/LockedRecord/LockedRecord.js.map +1 -0
- package/components/LockedRecord/LockedRecordForceUnlock.d.ts +9 -0
- package/components/LockedRecord/LockedRecordForceUnlock.js +117 -0
- package/components/LockedRecord/LockedRecordForceUnlock.js.map +1 -0
- package/components/LockedRecord/index.d.ts +1 -0
- package/components/LockedRecord/index.js +18 -0
- package/components/LockedRecord/index.js.map +1 -0
- package/components/RecordLockingProvider.d.ts +7 -0
- package/components/RecordLockingProvider.js +130 -0
- package/components/RecordLockingProvider.js.map +1 -0
- package/components/assets/lock.svg +13 -0
- package/components/decorators/UseContentEntriesListHookDecorator.d.ts +2 -0
- package/components/decorators/UseContentEntriesListHookDecorator.js +28 -0
- package/components/decorators/UseContentEntriesListHookDecorator.js.map +1 -0
- package/components/decorators/UseSaveEntryDecorator.d.ts +2 -0
- package/components/decorators/UseSaveEntryDecorator.js +55 -0
- package/components/decorators/UseSaveEntryDecorator.js.map +1 -0
- package/domain/RecordLocking.d.ts +32 -0
- package/domain/RecordLocking.js +379 -0
- package/domain/RecordLocking.js.map +1 -0
- package/domain/RecordLockingClient.d.ts +12 -0
- package/domain/RecordLockingClient.js +33 -0
- package/domain/RecordLockingClient.js.map +1 -0
- package/domain/RecordLockingGetLockRecord.d.ts +11 -0
- package/domain/RecordLockingGetLockRecord.js +34 -0
- package/domain/RecordLockingGetLockRecord.js.map +1 -0
- package/domain/RecordLockingGetLockedEntryLockRecord.d.ts +11 -0
- package/domain/RecordLockingGetLockedEntryLockRecord.js +32 -0
- package/domain/RecordLockingGetLockedEntryLockRecord.js.map +1 -0
- package/domain/RecordLockingIsEntryLocked.d.ts +11 -0
- package/domain/RecordLockingIsEntryLocked.js +32 -0
- package/domain/RecordLockingIsEntryLocked.js.map +1 -0
- package/domain/RecordLockingListLockRecords.d.ts +12 -0
- package/domain/RecordLockingListLockRecords.js +42 -0
- package/domain/RecordLockingListLockRecords.js.map +1 -0
- package/domain/RecordLockingLockEntry.d.ts +11 -0
- package/domain/RecordLockingLockEntry.js +28 -0
- package/domain/RecordLockingLockEntry.js.map +1 -0
- package/domain/RecordLockingUnlockEntry.d.ts +11 -0
- package/domain/RecordLockingUnlockEntry.js +32 -0
- package/domain/RecordLockingUnlockEntry.js.map +1 -0
- package/domain/RecordLockingUnlockEntryRequest.d.ts +11 -0
- package/domain/RecordLockingUnlockEntryRequest.js +28 -0
- package/domain/RecordLockingUnlockEntryRequest.js.map +1 -0
- package/domain/RecordLockingUpdateEntryLock.d.ts +11 -0
- package/domain/RecordLockingUpdateEntryLock.js +32 -0
- package/domain/RecordLockingUpdateEntryLock.js.map +1 -0
- package/domain/abstractions/IRecordLocking.d.ts +19 -0
- package/domain/abstractions/IRecordLocking.js +7 -0
- package/domain/abstractions/IRecordLocking.js.map +1 -0
- package/domain/abstractions/IRecordLockingClient.d.ts +6 -0
- package/domain/abstractions/IRecordLockingClient.js +7 -0
- package/domain/abstractions/IRecordLockingClient.js.map +1 -0
- package/domain/abstractions/IRecordLockingGetLockRecord.d.ts +12 -0
- package/domain/abstractions/IRecordLockingGetLockRecord.js +7 -0
- package/domain/abstractions/IRecordLockingGetLockRecord.js.map +1 -0
- package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.d.ts +12 -0
- package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js +7 -0
- package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js.map +1 -0
- package/domain/abstractions/IRecordLockingIsEntryLocked.d.ts +8 -0
- package/domain/abstractions/IRecordLockingIsEntryLocked.js +7 -0
- package/domain/abstractions/IRecordLockingIsEntryLocked.js.map +1 -0
- package/domain/abstractions/IRecordLockingListLockRecords.d.ts +19 -0
- package/domain/abstractions/IRecordLockingListLockRecords.js +7 -0
- package/domain/abstractions/IRecordLockingListLockRecords.js.map +1 -0
- package/domain/abstractions/IRecordLockingLockEntry.d.ts +12 -0
- package/domain/abstractions/IRecordLockingLockEntry.js +7 -0
- package/domain/abstractions/IRecordLockingLockEntry.js.map +1 -0
- package/domain/abstractions/IRecordLockingUnlockEntry.d.ts +13 -0
- package/domain/abstractions/IRecordLockingUnlockEntry.js +7 -0
- package/domain/abstractions/IRecordLockingUnlockEntry.js.map +1 -0
- package/domain/abstractions/IRecordLockingUnlockEntryRequest.d.ts +12 -0
- package/domain/abstractions/IRecordLockingUnlockEntryRequest.js +7 -0
- package/domain/abstractions/IRecordLockingUnlockEntryRequest.js.map +1 -0
- package/domain/abstractions/IRecordLockingUpdateEntryLock.d.ts +12 -0
- package/domain/abstractions/IRecordLockingUpdateEntryLock.js +7 -0
- package/domain/abstractions/IRecordLockingUpdateEntryLock.js.map +1 -0
- package/domain/graphql/fields.d.ts +2 -0
- package/domain/graphql/fields.js +10 -0
- package/domain/graphql/fields.js.map +1 -0
- package/domain/graphql/getLockRecord.d.ts +12 -0
- package/domain/graphql/getLockRecord.js +14 -0
- package/domain/graphql/getLockRecord.js.map +1 -0
- package/domain/graphql/getLockedEntryLockRecord.d.ts +12 -0
- package/domain/graphql/getLockedEntryLockRecord.js +14 -0
- package/domain/graphql/getLockedEntryLockRecord.js.map +1 -0
- package/domain/graphql/isEntryLocked.d.ts +12 -0
- package/domain/graphql/isEntryLocked.js +14 -0
- package/domain/graphql/isEntryLocked.js.map +1 -0
- package/domain/graphql/listLockRecords.d.ts +17 -0
- package/domain/graphql/listLockRecords.js +17 -0
- package/domain/graphql/listLockRecords.js.map +1 -0
- package/domain/graphql/lockEntry.d.ts +12 -0
- package/domain/graphql/lockEntry.js +16 -0
- package/domain/graphql/lockEntry.js.map +1 -0
- package/domain/graphql/unlockEntry.d.ts +12 -0
- package/domain/graphql/unlockEntry.js +14 -0
- package/domain/graphql/unlockEntry.js.map +1 -0
- package/domain/graphql/unlockEntryRequest.d.ts +12 -0
- package/domain/graphql/unlockEntryRequest.js +16 -0
- package/domain/graphql/unlockEntryRequest.js.map +1 -0
- package/domain/graphql/updateEntryLock.d.ts +12 -0
- package/domain/graphql/updateEntryLock.js +14 -0
- package/domain/graphql/updateEntryLock.js.map +1 -0
- package/domain/utils/createRecordLockingClient.d.ts +3 -0
- package/domain/utils/createRecordLockingClient.js +18 -0
- package/domain/utils/createRecordLockingClient.js.map +1 -0
- package/domain/utils/createRecordLockingError.d.ts +6 -0
- package/domain/utils/createRecordLockingError.js +22 -0
- package/domain/utils/createRecordLockingError.js.map +1 -0
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +29 -0
- package/hooks/index.js.map +1 -0
- package/hooks/usePermission.d.ts +3 -0
- package/hooks/usePermission.js +21 -0
- package/hooks/usePermission.js.map +1 -0
- package/hooks/useRecordLocking.d.ts +2 -0
- package/hooks/useRecordLocking.js +18 -0
- package/hooks/useRecordLocking.js.map +1 -0
- package/index.d.ts +7 -0
- package/index.js +57 -0
- package/index.js.map +1 -0
- package/package.json +58 -0
- package/types.d.ts +72 -0
- package/types.js +7 -0
- package/types.js.map +1 -0
- package/utils/createCacheKey.d.ts +3 -0
- package/utils/createCacheKey.js +21 -0
- package/utils/createCacheKey.js.map +1 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useRecordLocking = void 0;
|
|
7
|
+
var _error = require("@webiny/error");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _RecordLockingProvider = require("../components/RecordLockingProvider");
|
|
10
|
+
var useRecordLocking = exports.useRecordLocking = function useRecordLocking() {
|
|
11
|
+
var context = (0, _react.useContext)(_RecordLockingProvider.RecordLockingContext);
|
|
12
|
+
if (!context) {
|
|
13
|
+
throw new _error.WebinyError("useRecordLocking must be used within a RecordLockingProvider.");
|
|
14
|
+
}
|
|
15
|
+
return context;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=useRecordLocking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","require","_react","_RecordLockingProvider","useRecordLocking","exports","context","useContext","RecordLockingContext","WebinyError"],"sources":["useRecordLocking.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { useContext } from \"react\";\nimport { RecordLockingContext } from \"~/components/RecordLockingProvider\";\nimport { IRecordLockingContext, IPossiblyRecordLockingRecord } from \"~/types\";\n\nexport const useRecordLocking = <\n T extends IPossiblyRecordLockingRecord = IPossiblyRecordLockingRecord\n>() => {\n const context = useContext(RecordLockingContext);\n if (!context) {\n throw new WebinyError(\"useRecordLocking must be used within a RecordLockingProvider.\");\n }\n return context as IRecordLockingContext<T>;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AAGO,IAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAA,EAEtB;EACH,IAAME,OAAO,GAAG,IAAAC,iBAAU,EAACC,2CAAoB,CAAC;EAChD,IAAI,CAACF,OAAO,EAAE;IACV,MAAM,IAAIG,kBAAW,CAAC,+DAA+D,CAAC;EAC1F;EACA,OAAOH,OAAO;AAClB,CAAC","ignoreList":[]}
|
package/index.d.ts
ADDED
package/index.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
var _exportNames = {
|
|
8
|
+
RecordLocking: true
|
|
9
|
+
};
|
|
10
|
+
exports.RecordLocking = void 0;
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _app = require("@webiny/app");
|
|
13
|
+
var _RecordLockingProvider = require("./components/RecordLockingProvider");
|
|
14
|
+
Object.keys(_RecordLockingProvider).forEach(function (key) {
|
|
15
|
+
if (key === "default" || key === "__esModule") return;
|
|
16
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
17
|
+
if (key in exports && exports[key] === _RecordLockingProvider[key]) return;
|
|
18
|
+
Object.defineProperty(exports, key, {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _RecordLockingProvider[key];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
var _HeadlessCmsActionsAcoCell = require("./components/HeadlessCmsActionsAcoCell");
|
|
26
|
+
var _HeadlessCmsContentEntry = require("./components/HeadlessCmsContentEntry");
|
|
27
|
+
var _appWcp = require("@webiny/app-wcp");
|
|
28
|
+
var _hooks = require("./hooks");
|
|
29
|
+
Object.keys(_hooks).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
32
|
+
if (key in exports && exports[key] === _hooks[key]) return;
|
|
33
|
+
Object.defineProperty(exports, key, {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function get() {
|
|
36
|
+
return _hooks[key];
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
var RecordLockingHoc = function RecordLockingHoc(Component) {
|
|
41
|
+
return function RecordLockingProvider(_ref) {
|
|
42
|
+
var children = _ref.children;
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(Component, null, /*#__PURE__*/_react.default.createElement(_RecordLockingProvider.RecordLockingProvider, null, children));
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
var RecordLocking = exports.RecordLocking = function RecordLocking() {
|
|
47
|
+
var _useWcp = (0, _appWcp.useWcp)(),
|
|
48
|
+
canUseRecordLocking = _useWcp.canUseRecordLocking;
|
|
49
|
+
if (!canUseRecordLocking()) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_app.Provider, {
|
|
53
|
+
hoc: RecordLockingHoc
|
|
54
|
+
}), /*#__PURE__*/_react.default.createElement(_HeadlessCmsActionsAcoCell.HeadlessCmsActionsAcoCell, null), /*#__PURE__*/_react.default.createElement(_HeadlessCmsContentEntry.HeadlessCmsContentEntry, null));
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_app","_RecordLockingProvider","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_HeadlessCmsActionsAcoCell","_HeadlessCmsContentEntry","_appWcp","_hooks","RecordLockingHoc","Component","RecordLockingProvider","_ref","children","default","createElement","RecordLocking","_useWcp","useWcp","canUseRecordLocking","Fragment","Provider","hoc","HeadlessCmsActionsAcoCell","HeadlessCmsContentEntry"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app\";\nimport { RecordLockingProvider as RecordLockingProviderComponent } from \"~/components/RecordLockingProvider\";\nimport { HeadlessCmsActionsAcoCell } from \"~/components/HeadlessCmsActionsAcoCell\";\nimport { HeadlessCmsContentEntry } from \"~/components/HeadlessCmsContentEntry\";\nimport { useWcp } from \"@webiny/app-wcp\";\n\nexport * from \"~/components/RecordLockingProvider\";\nexport * from \"~/hooks\";\n\nexport interface RecordLockingProviderProps {\n children: React.ReactNode;\n}\n\nconst RecordLockingHoc = (Component: React.ComponentType<RecordLockingProviderProps>) => {\n return function RecordLockingProvider({ children }: RecordLockingProviderProps) {\n return (\n <Component>\n <RecordLockingProviderComponent>{children}</RecordLockingProviderComponent>\n </Component>\n );\n };\n};\n\nexport const RecordLocking = () => {\n const { canUseRecordLocking } = useWcp();\n\n if (!canUseRecordLocking()) {\n return null;\n }\n\n return (\n <>\n <Provider hoc={RecordLockingHoc} />\n <HeadlessCmsActionsAcoCell />\n <HeadlessCmsContentEntry />\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AAKAG,MAAA,CAAAC,IAAA,CAAAF,sBAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,sBAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAZ,sBAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAJA,IAAAS,0BAAA,GAAAf,OAAA;AACA,IAAAgB,wBAAA,GAAAhB,OAAA;AACA,IAAAiB,OAAA,GAAAjB,OAAA;AAGA,IAAAkB,MAAA,GAAAlB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAc,MAAA,EAAAb,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAY,MAAA,CAAAZ,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAI,MAAA,CAAAZ,GAAA;IAAA;EAAA;AAAA;AAMA,IAAMa,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,SAA0D,EAAK;EACrF,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAA2C;IAAA,IAAxCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAC5C,oBACIzB,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAACL,SAAS,qBACNtB,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAACvB,sBAAA,CAAAmB,qBAA8B,QAAEE,QAAyC,CACnE,CAAC;EAEpB,CAAC;AACL,CAAC;AAEM,IAAMG,aAAa,GAAAf,OAAA,CAAAe,aAAA,GAAG,SAAhBA,aAAaA,CAAA,EAAS;EAC/B,IAAAC,OAAA,GAAgC,IAAAC,cAAM,EAAC,CAAC;IAAhCC,mBAAmB,GAAAF,OAAA,CAAnBE,mBAAmB;EAE3B,IAAI,CAACA,mBAAmB,CAAC,CAAC,EAAE;IACxB,OAAO,IAAI;EACf;EAEA,oBACI/B,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAAA3B,MAAA,CAAA0B,OAAA,CAAAM,QAAA,qBACIhC,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAACxB,IAAA,CAAA8B,QAAQ;IAACC,GAAG,EAAEb;EAAiB,CAAE,CAAC,eACnCrB,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAACV,0BAAA,CAAAkB,yBAAyB,MAAE,CAAC,eAC7BnC,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAACT,wBAAA,CAAAkB,uBAAuB,MAAE,CAC5B,CAAC;AAEX,CAAC","ignoreList":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@webiny/app-record-locking",
|
|
3
|
+
"version": "5.40.0-beta.3",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/webiny/webiny-js.git"
|
|
8
|
+
},
|
|
9
|
+
"contributors": [
|
|
10
|
+
"Pavel Denisjuk <pavel@webiny.com>",
|
|
11
|
+
"Sven Al Hamad <sven@webiny.com>",
|
|
12
|
+
"Adrian Smijulj <adrian@webiny.com>"
|
|
13
|
+
],
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@apollo/react-hooks": "3.1.5",
|
|
17
|
+
"@emotion/styled": "11.10.6",
|
|
18
|
+
"@material-design-icons/svg": "0.14.13",
|
|
19
|
+
"@webiny/app": "5.40.0-beta.3",
|
|
20
|
+
"@webiny/app-admin": "5.40.0-beta.3",
|
|
21
|
+
"@webiny/app-headless-cms": "5.40.0-beta.3",
|
|
22
|
+
"@webiny/app-security": "5.40.0-beta.3",
|
|
23
|
+
"@webiny/app-wcp": "5.40.0-beta.3",
|
|
24
|
+
"@webiny/app-websockets": "5.40.0-beta.3",
|
|
25
|
+
"@webiny/error": "5.40.0-beta.3",
|
|
26
|
+
"@webiny/react-router": "5.40.0-beta.3",
|
|
27
|
+
"@webiny/ui": "5.40.0-beta.3",
|
|
28
|
+
"@webiny/utils": "5.40.0-beta.3",
|
|
29
|
+
"apollo-client": "2.6.10",
|
|
30
|
+
"apollo-link": "1.2.14",
|
|
31
|
+
"crypto-hash": "3.0.0",
|
|
32
|
+
"emotion": "10.0.27",
|
|
33
|
+
"graphql-tag": "2.12.6",
|
|
34
|
+
"react": "18.2.0",
|
|
35
|
+
"react-dom": "18.2.0"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@babel/cli": "7.24.1",
|
|
39
|
+
"@babel/core": "7.24.3",
|
|
40
|
+
"@babel/preset-env": "7.24.3",
|
|
41
|
+
"@babel/preset-react": "7.24.1",
|
|
42
|
+
"@babel/preset-typescript": "7.24.1",
|
|
43
|
+
"@webiny/cli": "5.40.0-beta.3",
|
|
44
|
+
"@webiny/project-utils": "5.40.0-beta.3",
|
|
45
|
+
"rimraf": "5.0.5",
|
|
46
|
+
"ttypescript": "1.5.15",
|
|
47
|
+
"typescript": "4.7.4"
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public",
|
|
51
|
+
"directory": "dist"
|
|
52
|
+
},
|
|
53
|
+
"scripts": {
|
|
54
|
+
"build": "yarn webiny run build",
|
|
55
|
+
"watch": "yarn webiny run watch"
|
|
56
|
+
},
|
|
57
|
+
"gitHead": "638d8b84063906cd1aa979ed6e0487ad26fbcf2f"
|
|
58
|
+
}
|
package/types.d.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { EntryTableItem } from "@webiny/app-headless-cms/types";
|
|
2
|
+
import { GenericRecord } from "@webiny/app/types";
|
|
3
|
+
import { IRecordLockingUnlockEntryResult } from "./domain/abstractions/IRecordLockingUnlockEntry";
|
|
4
|
+
export interface IRecordLockingIdentity {
|
|
5
|
+
id: string;
|
|
6
|
+
displayName: string;
|
|
7
|
+
type: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IRecordLockingRecordLocked {
|
|
10
|
+
lockedBy: IRecordLockingIdentity;
|
|
11
|
+
lockedOn: string;
|
|
12
|
+
expiresOn: string;
|
|
13
|
+
actions: IRecordLockingLockRecordAction[];
|
|
14
|
+
}
|
|
15
|
+
export interface IPossiblyRecordLockingRecord extends EntryTableItem {
|
|
16
|
+
$lockingType?: string;
|
|
17
|
+
entryId: string;
|
|
18
|
+
$locked?: IRecordLockingRecordLocked | null;
|
|
19
|
+
}
|
|
20
|
+
export interface IRecordLockingRecord extends IPossiblyRecordLockingRecord {
|
|
21
|
+
entryId: string;
|
|
22
|
+
$lockingType: string;
|
|
23
|
+
}
|
|
24
|
+
export declare type IIsRecordLockedParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
|
|
25
|
+
export declare type IUpdateEntryLockParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
|
|
26
|
+
export declare type IUnlockEntryParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
|
|
27
|
+
export declare type IFetchLockRecordParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
|
|
28
|
+
export declare type IFetchLockedEntryLockRecordParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
|
|
29
|
+
export interface IFetchLockRecordResult {
|
|
30
|
+
data: IRecordLockingLockRecord | null;
|
|
31
|
+
error: IRecordLockingError | null;
|
|
32
|
+
}
|
|
33
|
+
export interface IRecordLockingContext<T extends IPossiblyRecordLockingRecord = IPossiblyRecordLockingRecord> {
|
|
34
|
+
readonly loading: boolean;
|
|
35
|
+
readonly records: IPossiblyRecordLockingRecord[];
|
|
36
|
+
readonly error?: IRecordLockingError | null;
|
|
37
|
+
setRecords(folderId: string, type: string, records: T[]): Promise<void>;
|
|
38
|
+
updateEntryLock(params: IUpdateEntryLockParams): Promise<void>;
|
|
39
|
+
isRecordLocked(params?: IIsRecordLockedParams): boolean;
|
|
40
|
+
getLockRecordEntry(id: string): IRecordLockingRecord | undefined;
|
|
41
|
+
fetchLockRecord(params: IFetchLockRecordParams): Promise<IFetchLockRecordResult>;
|
|
42
|
+
fetchLockedEntryLockRecord(params: IFetchLockedEntryLockRecordParams): Promise<IRecordLockingLockRecord | null>;
|
|
43
|
+
unlockEntry(params: IUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;
|
|
44
|
+
removeEntryLock(params: IUnlockEntryParams): void;
|
|
45
|
+
unlockEntryForce(params: IUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;
|
|
46
|
+
isLockExpired(input: Date | string): boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface IRecordLockingLockRecordAction {
|
|
49
|
+
type: string;
|
|
50
|
+
message: string;
|
|
51
|
+
createdBy: IRecordLockingIdentity;
|
|
52
|
+
createdOn: string;
|
|
53
|
+
}
|
|
54
|
+
export interface IRecordLockingLockRecord {
|
|
55
|
+
id: string;
|
|
56
|
+
lockedOn: string;
|
|
57
|
+
expiresOn: string;
|
|
58
|
+
lockedBy: IRecordLockingIdentity;
|
|
59
|
+
targetId: string;
|
|
60
|
+
type: string;
|
|
61
|
+
actions: IRecordLockingLockRecordAction[];
|
|
62
|
+
}
|
|
63
|
+
export interface IRecordLockingMeta {
|
|
64
|
+
totalCount: number;
|
|
65
|
+
cursor: string | null;
|
|
66
|
+
hasMoreItems: boolean;
|
|
67
|
+
}
|
|
68
|
+
export interface IRecordLockingError<T = GenericRecord> {
|
|
69
|
+
message: string;
|
|
70
|
+
code: string;
|
|
71
|
+
data?: T;
|
|
72
|
+
}
|
package/types.js
ADDED
package/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { EntryTableItem } from \"@webiny/app-headless-cms/types\";\nimport { GenericRecord } from \"@webiny/app/types\";\nimport { IRecordLockingUnlockEntryResult } from \"~/domain/abstractions/IRecordLockingUnlockEntry\";\n\nexport interface IRecordLockingIdentity {\n id: string;\n displayName: string;\n type: string;\n}\n\nexport interface IRecordLockingRecordLocked {\n lockedBy: IRecordLockingIdentity;\n lockedOn: string;\n expiresOn: string;\n actions: IRecordLockingLockRecordAction[];\n}\n\nexport interface IPossiblyRecordLockingRecord extends EntryTableItem {\n $lockingType?: string;\n entryId: string;\n $locked?: IRecordLockingRecordLocked | null;\n}\n\nexport interface IRecordLockingRecord extends IPossiblyRecordLockingRecord {\n entryId: string;\n $lockingType: string;\n}\n\nexport type IIsRecordLockedParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IUpdateEntryLockParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IUnlockEntryParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IFetchLockRecordParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IFetchLockedEntryLockRecordParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport interface IFetchLockRecordResult {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n}\n\nexport interface IRecordLockingContext<\n T extends IPossiblyRecordLockingRecord = IPossiblyRecordLockingRecord\n> {\n readonly loading: boolean;\n readonly records: IPossiblyRecordLockingRecord[];\n readonly error?: IRecordLockingError | null;\n setRecords(folderId: string, type: string, records: T[]): Promise<void>;\n updateEntryLock(params: IUpdateEntryLockParams): Promise<void>;\n isRecordLocked(params?: IIsRecordLockedParams): boolean;\n getLockRecordEntry(id: string): IRecordLockingRecord | undefined;\n fetchLockRecord(params: IFetchLockRecordParams): Promise<IFetchLockRecordResult>;\n fetchLockedEntryLockRecord(\n params: IFetchLockedEntryLockRecordParams\n ): Promise<IRecordLockingLockRecord | null>;\n unlockEntry(params: IUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;\n removeEntryLock(params: IUnlockEntryParams): void;\n unlockEntryForce(params: IUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;\n isLockExpired(input: Date | string): boolean;\n}\n\nexport interface IRecordLockingLockRecordAction {\n type: string;\n message: string;\n createdBy: IRecordLockingIdentity;\n createdOn: string;\n}\n\nexport interface IRecordLockingLockRecord {\n id: string;\n lockedOn: string;\n expiresOn: string;\n lockedBy: IRecordLockingIdentity;\n targetId: string;\n type: string;\n actions: IRecordLockingLockRecordAction[];\n}\n\nexport interface IRecordLockingMeta {\n totalCount: number;\n cursor: string | null;\n hasMoreItems: boolean;\n}\n\nexport interface IRecordLockingError<T = GenericRecord> {\n message: string;\n code: string;\n data?: T;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createCacheKey = void 0;
|
|
7
|
+
var _cryptoHash = require("crypto-hash");
|
|
8
|
+
var createKey = function createKey(input) {
|
|
9
|
+
if (typeof input === "string") {
|
|
10
|
+
return input;
|
|
11
|
+
}
|
|
12
|
+
return JSON.stringify(input);
|
|
13
|
+
};
|
|
14
|
+
var createCacheKey = exports.createCacheKey = function createCacheKey(input) {
|
|
15
|
+
var key = createKey(input);
|
|
16
|
+
return (0, _cryptoHash.sha1)(key, {
|
|
17
|
+
outputFormat: "hex"
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=createCacheKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_cryptoHash","require","createKey","input","JSON","stringify","createCacheKey","exports","key","sha1","outputFormat"],"sources":["createCacheKey.ts"],"sourcesContent":["import { GenericRecord } from \"@webiny/app/types\";\nimport { sha1 } from \"crypto-hash\";\n\nexport type ICreateCacheKeyInput = string | GenericRecord | ICreateCacheKeyInput[];\n\nconst createKey = (input: ICreateCacheKeyInput): string => {\n if (typeof input === \"string\") {\n return input;\n }\n return JSON.stringify(input);\n};\n\nexport const createCacheKey = (input: ICreateCacheKeyInput): Promise<string> => {\n const key = createKey(input);\n\n return sha1(key, {\n outputFormat: \"hex\"\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAIA,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAIC,KAA2B,EAAa;EACvD,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3B,OAAOA,KAAK;EAChB;EACA,OAAOC,IAAI,CAACC,SAAS,CAACF,KAAK,CAAC;AAChC,CAAC;AAEM,IAAMG,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAIH,KAA2B,EAAsB;EAC5E,IAAMK,GAAG,GAAGN,SAAS,CAACC,KAAK,CAAC;EAE5B,OAAO,IAAAM,gBAAI,EAACD,GAAG,EAAE;IACbE,YAAY,EAAE;EAClB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|