@redhat-cloud-services/chrome 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/ChromeContext/ChromeContext.d.ts +9 -0
  2. package/ChromeContext/ChromeContext.js +15 -0
  3. package/ChromeContext/ChromeContext.js.map +1 -0
  4. package/ChromeContext/index.d.ts +2 -0
  5. package/ChromeContext/index.js +11 -0
  6. package/ChromeContext/index.js.map +1 -0
  7. package/ChromeContext/package.json +1 -0
  8. package/ChromeProvider/ChromeProvider.d.ts +3 -0
  9. package/ChromeProvider/ChromeProvider.js +66 -0
  10. package/ChromeProvider/ChromeProvider.js.map +1 -0
  11. package/ChromeProvider/chromeState.d.ts +14 -0
  12. package/ChromeProvider/chromeState.js +66 -0
  13. package/ChromeProvider/chromeState.js.map +1 -0
  14. package/ChromeProvider/chromeStateManager.d.ts +3 -0
  15. package/ChromeProvider/chromeStateManager.js +22 -0
  16. package/ChromeProvider/chromeStateManager.js.map +1 -0
  17. package/ChromeProvider/index.d.ts +3 -0
  18. package/ChromeProvider/index.js +13 -0
  19. package/ChromeProvider/index.js.map +1 -0
  20. package/ChromeProvider/package.json +1 -0
  21. package/README.md +9 -0
  22. package/esm/ChromeContext/ChromeContext.js +13 -0
  23. package/esm/ChromeContext/ChromeContext.js.map +1 -0
  24. package/esm/ChromeContext/index.js +3 -0
  25. package/esm/ChromeContext/index.js.map +1 -0
  26. package/esm/ChromeProvider/ChromeProvider.js +61 -0
  27. package/esm/ChromeProvider/ChromeProvider.js.map +1 -0
  28. package/esm/ChromeProvider/chromeState.js +63 -0
  29. package/esm/ChromeProvider/chromeState.js.map +1 -0
  30. package/esm/ChromeProvider/chromeStateManager.js +22 -0
  31. package/esm/ChromeProvider/chromeStateManager.js.map +1 -0
  32. package/esm/ChromeProvider/index.js +4 -0
  33. package/esm/ChromeProvider/index.js.map +1 -0
  34. package/esm/index.js +4 -0
  35. package/esm/index.js.map +1 -0
  36. package/esm/useLastVisited/index.js +3 -0
  37. package/esm/useLastVisited/index.js.map +1 -0
  38. package/esm/useLastVisited/useLastVisited.js +16 -0
  39. package/esm/useLastVisited/useLastVisited.js.map +1 -0
  40. package/esm/utils/fetch.js +28 -0
  41. package/esm/utils/fetch.js.map +1 -0
  42. package/esm/utils/generateSubscribtionId.js +5 -0
  43. package/esm/utils/generateSubscribtionId.js.map +1 -0
  44. package/index.d.ts +3 -0
  45. package/index.js +20 -0
  46. package/index.js.map +1 -0
  47. package/package.json +40 -0
  48. package/useLastVisited/index.d.ts +2 -0
  49. package/useLastVisited/index.js +11 -0
  50. package/useLastVisited/index.js.map +1 -0
  51. package/useLastVisited/package.json +1 -0
  52. package/useLastVisited/useLastVisited.d.ts +2 -0
  53. package/useLastVisited/useLastVisited.js +18 -0
  54. package/useLastVisited/useLastVisited.js.map +1 -0
  55. package/utils/fetch.d.ts +2 -0
  56. package/utils/fetch.js +33 -0
  57. package/utils/fetch.js.map +1 -0
  58. package/utils/generateSubscribtionId.d.ts +2 -0
  59. package/utils/generateSubscribtionId.js +7 -0
  60. package/utils/generateSubscribtionId.js.map +1 -0
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ declare const ChromeContext: import("react").Context<{
3
+ getState: () => import("../ChromeProvider/chromeState").ChromeContextState;
4
+ setLastVisited: (pages: string[]) => void;
5
+ subscribe: (event: import("../ChromeProvider/chromeState").UpdateEvents, onUpdate: () => void) => number;
6
+ unsubscribe: (id: number, event: import("../ChromeProvider/chromeState").UpdateEvents) => void;
7
+ update: (event: import("../ChromeProvider/chromeState").UpdateEvents, attributes: Partial<import("../ChromeProvider/chromeState").ChromeContextState>) => void;
8
+ }>;
9
+ export default ChromeContext;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ var ChromeContext = (0, react_1.createContext)({
5
+ update: function () { return undefined; },
6
+ setLastVisited: function () { return undefined; },
7
+ subscribe: function () { return 0; },
8
+ unsubscribe: function () { return undefined; },
9
+ getState: function () { return ({
10
+ lastVisitedPages: [],
11
+ subscribtions: {},
12
+ }); },
13
+ });
14
+ exports.default = ChromeContext;
15
+ //# sourceMappingURL=ChromeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChromeContext.js","sourceRoot":"","sources":["../src/ChromeContext/ChromeContext.ts"],"names":[],"mappings":";;AAAA,+BAAsC;AAGtC,IAAM,aAAa,GAAG,IAAA,qBAAa,EAAiC;IAClE,MAAM,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;IACvB,cAAc,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;IAC/B,SAAS,EAAE,cAAM,OAAA,CAAC,EAAD,CAAC;IAClB,WAAW,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;IAC5B,QAAQ,EAAE,cAAM,OAAA,CAAC;QACf,gBAAgB,EAAE,EAAE;QACpB,aAAa,EAAE,EAAE;KAClB,CAAC,EAHc,CAGd;CACH,CAAC,CAAC;AAEH,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from './ChromeContext';
2
+ export { default as ChromeContext } from './ChromeContext';
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ChromeContext = exports.default = void 0;
7
+ var ChromeContext_1 = require("./ChromeContext");
8
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(ChromeContext_1).default; } });
9
+ var ChromeContext_2 = require("./ChromeContext");
10
+ Object.defineProperty(exports, "ChromeContext", { enumerable: true, get: function () { return __importDefault(ChromeContext_2).default; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/ChromeContext/index.ts"],"names":[],"mappings":";;;;;;AAAA,iDAA0C;AAAjC,yHAAA,OAAO,OAAA;AAChB,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB"}
@@ -0,0 +1 @@
1
+ {"main":"index.js","module":"../esm/ChromeContext/index.js","typings":"index.d.ts"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ChromeProvider: React.FC;
3
+ export default ChromeProvider;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var jsx_runtime_1 = require("react/jsx-runtime");
18
+ var react_1 = require("react");
19
+ var react_router_dom_1 = require("react-router-dom");
20
+ var proxy_client_react_1 = require("@unleash/proxy-client-react");
21
+ var ChromeContext_1 = require("../ChromeContext");
22
+ var chromeState_1 = __importDefault(require("./chromeState"));
23
+ var fetch_1 = require("../utils/fetch");
24
+ var API_BASE = '/api/chrome-service/v1';
25
+ var LAST_VISITED_URL = "".concat(API_BASE, "/last-visited");
26
+ var getLastVisited = function () { return (0, fetch_1.get)(LAST_VISITED_URL); };
27
+ var useLastPageVisitedUploader = function (providerState, chromeBackendEnabled) {
28
+ var pathname = (0, react_router_dom_1.useLocation)().pathname;
29
+ (0, react_1.useEffect)(function () {
30
+ if (chromeBackendEnabled) {
31
+ (0, fetch_1.post)(LAST_VISITED_URL, {
32
+ pathname: pathname,
33
+ title: document.title,
34
+ }).then(function (data) { return providerState.setLastVisited(data); });
35
+ }
36
+ }, [pathname]);
37
+ };
38
+ var ChromeProvider = function (_a) {
39
+ var children = _a.children;
40
+ var chromeBackendEnabled = (0, proxy_client_react_1.useFlag)('platform.chrome.chrome-service');
41
+ var isMounted = (0, react_1.useRef)(false);
42
+ var _b = (0, react_1.useState)(false), initialRequest = _b[0], setInitialRequest = _b[1];
43
+ var providerState = (0, react_1.useRef)();
44
+ if (!providerState.current) {
45
+ providerState.current = (0, chromeState_1.default)();
46
+ }
47
+ useLastPageVisitedUploader(providerState.current, chromeBackendEnabled);
48
+ (0, react_1.useEffect)(function () {
49
+ isMounted.current = true;
50
+ if (chromeBackendEnabled && !initialRequest) {
51
+ getLastVisited().then(function (lastVisited) {
52
+ var _a;
53
+ if (isMounted.current) {
54
+ (_a = providerState.current) === null || _a === void 0 ? void 0 : _a.setLastVisited(lastVisited);
55
+ setInitialRequest(true);
56
+ }
57
+ });
58
+ }
59
+ return function () {
60
+ isMounted.current = false;
61
+ };
62
+ }, [chromeBackendEnabled]);
63
+ return (0, jsx_runtime_1.jsx)(ChromeContext_1.ChromeContext.Provider, __assign({ value: providerState.current }, { children: children }));
64
+ };
65
+ exports.default = ChromeProvider;
66
+ //# sourceMappingURL=ChromeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChromeProvider.js","sourceRoot":"","sources":["../src/ChromeProvider/ChromeProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BAA2D;AAC3D,qDAA+C;AAC/C,kEAAsD;AAEtD,kDAAiD;AACjD,8DAAwC;AACxC,wCAA2C;AAE3C,IAAM,QAAQ,GAAG,wBAAwB,CAAC;AAC1C,IAAM,gBAAgB,GAAG,UAAG,QAAQ,kBAAe,CAAC;AAEpD,IAAM,cAAc,GAAG,cAAM,OAAA,IAAA,WAAG,EAAW,gBAAgB,CAAC,EAA/B,CAA+B,CAAC;AAE7D,IAAM,0BAA0B,GAAG,UAAC,aAA6C,EAAE,oBAA8B;IACvG,IAAA,QAAQ,GAAK,IAAA,8BAAW,GAAE,SAAlB,CAAmB;IACnC,IAAA,iBAAS,EAAC;QACR,IAAI,oBAAoB,EAAE;YACxB,IAAA,YAAI,EAAgD,gBAAgB,EAAE;gBACpE,QAAQ,UAAA;gBACR,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,EAAlC,CAAkC,CAAC,CAAC;SACvD;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,IAAM,cAAc,GAAa,UAAC,EAAY;QAAV,QAAQ,cAAA;IAC1C,IAAM,oBAAoB,GAAG,IAAA,4BAAO,EAAC,gCAAgC,CAAC,CAAC;IACvE,IAAM,SAAS,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAC1B,IAAA,KAAsC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAApD,cAAc,QAAA,EAAE,iBAAiB,QAAmB,CAAC;IAC5D,IAAM,aAAa,GAAG,IAAA,cAAM,GAAkC,CAAC;IAC/D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;QAC1B,aAAa,CAAC,OAAO,GAAG,IAAA,qBAAW,GAAE,CAAC;KACvC;IAED,0BAA0B,CAAC,aAAa,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAExE,IAAA,iBAAS,EAAC;QACR,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,IAAI,oBAAoB,IAAI,CAAC,cAAc,EAAE;YAC3C,cAAc,EAAE,CAAC,IAAI,CAAC,UAAC,WAAW;;gBAChC,IAAI,SAAS,CAAC,OAAO,EAAE;oBACrB,MAAA,aAAa,CAAC,OAAO,0CAAE,cAAc,CAAC,WAAW,CAAC,CAAC;oBACnD,iBAAiB,CAAC,IAAI,CAAC,CAAC;iBACzB;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO;YACL,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,OAAO,uBAAC,6BAAa,CAAC,QAAQ,aAAC,KAAK,EAAE,aAAa,CAAC,OAAO,gBAAG,QAAQ,IAA0B,CAAC;AACnG,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare type ChromeContextState = {
2
+ lastVisitedPages: string[];
3
+ };
4
+ export declare enum UpdateEvents {
5
+ lastVisited = "lastVisited"
6
+ }
7
+ declare const chromeState: () => {
8
+ getState: () => ChromeContextState;
9
+ setLastVisited: (pages: string[]) => void;
10
+ subscribe: (event: UpdateEvents, onUpdate: () => void) => number;
11
+ unsubscribe: (id: number, event: UpdateEvents) => void;
12
+ update: (event: UpdateEvents, attributes: Partial<ChromeContextState>) => void;
13
+ };
14
+ export default chromeState;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.UpdateEvents = void 0;
15
+ var UpdateEvents;
16
+ (function (UpdateEvents) {
17
+ UpdateEvents["lastVisited"] = "lastVisited";
18
+ })(UpdateEvents = exports.UpdateEvents || (exports.UpdateEvents = {}));
19
+ var chromeState = function () {
20
+ var state = {
21
+ lastVisitedPages: [],
22
+ };
23
+ var subscribtions = {
24
+ lastVisited: [],
25
+ };
26
+ function subscribe(event, onUpdate) {
27
+ var id = subscribtions[event].length;
28
+ subscribtions[event].push({ onUpdate: onUpdate });
29
+ onUpdate();
30
+ return id;
31
+ }
32
+ function unsubscribe(id, event) {
33
+ if (id < subscribtions[event].length) {
34
+ subscribtions[event].splice(id, 1);
35
+ }
36
+ else {
37
+ console.error('Trying to unsubscribe client outside of the range!');
38
+ }
39
+ }
40
+ function update(event, attributes) {
41
+ state = __assign(__assign({}, state), attributes);
42
+ var updateSubscriptions = subscribtions[event];
43
+ if (updateSubscriptions.length === 0) {
44
+ return;
45
+ }
46
+ updateSubscriptions.forEach(function (_a) {
47
+ var onUpdate = _a.onUpdate;
48
+ onUpdate();
49
+ });
50
+ }
51
+ function setLastVisited(pages) {
52
+ update(UpdateEvents.lastVisited, { lastVisitedPages: pages });
53
+ }
54
+ function getState() {
55
+ return state;
56
+ }
57
+ return {
58
+ getState: getState,
59
+ setLastVisited: setLastVisited,
60
+ subscribe: subscribe,
61
+ unsubscribe: unsubscribe,
62
+ update: update,
63
+ };
64
+ };
65
+ exports.default = chromeState;
66
+ //# sourceMappingURL=chromeState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromeState.js","sourceRoot":"","sources":["../src/ChromeProvider/chromeState.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,IAAY,YAEX;AAFD,WAAY,YAAY;IACtB,2CAA2B,CAAA;AAC7B,CAAC,EAFW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAEvB;AAED,IAAM,WAAW,GAAG;IAClB,IAAI,KAAK,GAAuB;QAC9B,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,IAAM,aAAa,GAIf;QACF,WAAW,EAAE,EAAE;KAChB,CAAC;IAGF,SAAS,SAAS,CAAC,KAAmB,EAAE,QAAoB;QAE1D,IAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAEvC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;QAExC,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,SAAS,WAAW,CAAC,EAAU,EAAE,KAAmB;QAClD,IAAI,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;YACpC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACpC;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;SACrE;IACH,CAAC;IAGD,SAAS,MAAM,CAAC,KAAmB,EAAE,UAAuC;QAC1E,KAAK,yBACA,KAAK,GACL,UAAU,CACd,CAAC;QACF,IAAM,mBAAmB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,OAAO;SACR;QAGD,mBAAmB,CAAC,OAAO,CAAC,UAAC,EAAY;gBAAV,QAAQ,cAAA;YACrC,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,SAAS,cAAc,CAAC,KAAe;QACrC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,SAAS,QAAQ;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,OAAO;QACL,QAAQ,UAAA;QACR,cAAc,gBAAA;QACd,SAAS,WAAA;QACT,WAAW,aAAA;QACX,MAAM,QAAA;KACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const chromeState: () => {
2
+ lastVisitedPages: string[];
3
+ };
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var chromeState = function () {
14
+ var state = {
15
+ lastVisitedPages: [],
16
+ };
17
+ function setLastVisited(pages) {
18
+ state.lastVisitedPages = pages;
19
+ }
20
+ return __assign({}, state);
21
+ };
22
+ //# sourceMappingURL=chromeStateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromeStateManager.js","sourceRoot":"","sources":["../src/ChromeProvider/chromeStateManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAM,WAAW,GAAG;IAClB,IAAM,KAAK,GAEP;QACF,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,SAAS,cAAc,CAAC,KAAe;QACrC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,oBACK,KAAK,EACR;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default as ChromeProvider } from './ChromeProvider';
2
+ export { default } from './ChromeProvider';
3
+ export { ChromeContextState, UpdateEvents } from './chromeState';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UpdateEvents = exports.default = exports.ChromeProvider = void 0;
7
+ var ChromeProvider_1 = require("./ChromeProvider");
8
+ Object.defineProperty(exports, "ChromeProvider", { enumerable: true, get: function () { return __importDefault(ChromeProvider_1).default; } });
9
+ var ChromeProvider_2 = require("./ChromeProvider");
10
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(ChromeProvider_2).default; } });
11
+ var chromeState_1 = require("./chromeState");
12
+ Object.defineProperty(exports, "UpdateEvents", { enumerable: true, get: function () { return chromeState_1.UpdateEvents; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/ChromeProvider/index.ts"],"names":[],"mappings":";;;;;;AAAA,mDAA6D;AAApD,iIAAA,OAAO,OAAkB;AAClC,mDAA2C;AAAlC,0HAAA,OAAO,OAAA;AAChB,6CAAiE;AAApC,2GAAA,YAAY,OAAA"}
@@ -0,0 +1 @@
1
+ {"main":"index.js","module":"../esm/ChromeProvider/index.js","typings":"index.d.ts"}
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # Chrome package
2
+
3
+ This package is intended to be used as a public interface to all shared data or functions exposed by chrome to its modules
4
+
5
+ The package is currently in an experimental phase. Please do not use it.
6
+
7
+ ## Installation: TDB
8
+
9
+ ## Development: TDB
@@ -0,0 +1,13 @@
1
+ import { createContext } from 'react';
2
+ var ChromeContext = createContext({
3
+ update: function () { return undefined; },
4
+ setLastVisited: function () { return undefined; },
5
+ subscribe: function () { return 0; },
6
+ unsubscribe: function () { return undefined; },
7
+ getState: function () { return ({
8
+ lastVisitedPages: [],
9
+ subscribtions: {},
10
+ }); },
11
+ });
12
+ export default ChromeContext;
13
+ //# sourceMappingURL=ChromeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChromeContext.js","sourceRoot":"","sources":["../../src/ChromeContext/ChromeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,IAAM,aAAa,GAAG,aAAa,CAAiC;IAClE,MAAM,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;IACvB,cAAc,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;IAC/B,SAAS,EAAE,cAAM,OAAA,CAAC,EAAD,CAAC;IAClB,WAAW,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;IAC5B,QAAQ,EAAE,cAAM,OAAA,CAAC;QACf,gBAAgB,EAAE,EAAE;QACpB,aAAa,EAAE,EAAE;KAClB,CAAC,EAHc,CAGd;CACH,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default } from './ChromeContext';
2
+ export { default as ChromeContext } from './ChromeContext';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ChromeContext/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,61 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { useEffect, useRef, useState } from 'react';
14
+ import { useLocation } from 'react-router-dom';
15
+ import { useFlag } from '@unleash/proxy-client-react';
16
+ import { ChromeContext } from '../ChromeContext';
17
+ import chromeState from './chromeState';
18
+ import { get, post } from '../utils/fetch';
19
+ var API_BASE = '/api/chrome-service/v1';
20
+ var LAST_VISITED_URL = "".concat(API_BASE, "/last-visited");
21
+ var getLastVisited = function () { return get(LAST_VISITED_URL); };
22
+ var useLastPageVisitedUploader = function (providerState, chromeBackendEnabled) {
23
+ var pathname = useLocation().pathname;
24
+ useEffect(function () {
25
+ if (chromeBackendEnabled) {
26
+ post(LAST_VISITED_URL, {
27
+ pathname: pathname,
28
+ title: document.title,
29
+ }).then(function (data) { return providerState.setLastVisited(data); });
30
+ }
31
+ }, [pathname]);
32
+ };
33
+ var ChromeProvider = function (_a) {
34
+ var children = _a.children;
35
+ var chromeBackendEnabled = useFlag('platform.chrome.chrome-service');
36
+ var isMounted = useRef(false);
37
+ var _b = useState(false), initialRequest = _b[0], setInitialRequest = _b[1];
38
+ var providerState = useRef();
39
+ if (!providerState.current) {
40
+ providerState.current = chromeState();
41
+ }
42
+ useLastPageVisitedUploader(providerState.current, chromeBackendEnabled);
43
+ useEffect(function () {
44
+ isMounted.current = true;
45
+ if (chromeBackendEnabled && !initialRequest) {
46
+ getLastVisited().then(function (lastVisited) {
47
+ var _a;
48
+ if (isMounted.current) {
49
+ (_a = providerState.current) === null || _a === void 0 ? void 0 : _a.setLastVisited(lastVisited);
50
+ setInitialRequest(true);
51
+ }
52
+ });
53
+ }
54
+ return function () {
55
+ isMounted.current = false;
56
+ };
57
+ }, [chromeBackendEnabled]);
58
+ return _jsx(ChromeContext.Provider, __assign({ value: providerState.current }, { children: children }));
59
+ };
60
+ export default ChromeProvider;
61
+ //# sourceMappingURL=ChromeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChromeProvider.js","sourceRoot":"","sources":["../../src/ChromeProvider/ChromeProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,IAAM,QAAQ,GAAG,wBAAwB,CAAC;AAC1C,IAAM,gBAAgB,GAAG,UAAG,QAAQ,kBAAe,CAAC;AAEpD,IAAM,cAAc,GAAG,cAAM,OAAA,GAAG,CAAW,gBAAgB,CAAC,EAA/B,CAA+B,CAAC;AAE7D,IAAM,0BAA0B,GAAG,UAAC,aAA6C,EAAE,oBAA8B;IACvG,IAAA,QAAQ,GAAK,WAAW,EAAE,SAAlB,CAAmB;IACnC,SAAS,CAAC;QACR,IAAI,oBAAoB,EAAE;YACxB,IAAI,CAAgD,gBAAgB,EAAE;gBACpE,QAAQ,UAAA;gBACR,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,EAAlC,CAAkC,CAAC,CAAC;SACvD;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,IAAM,cAAc,GAAa,UAAC,EAAY;QAAV,QAAQ,cAAA;IAC1C,IAAM,oBAAoB,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;IACvE,IAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAA,KAAsC,QAAQ,CAAC,KAAK,CAAC,EAApD,cAAc,QAAA,EAAE,iBAAiB,QAAmB,CAAC;IAC5D,IAAM,aAAa,GAAG,MAAM,EAAkC,CAAC;IAC/D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;QAC1B,aAAa,CAAC,OAAO,GAAG,WAAW,EAAE,CAAC;KACvC;IAED,0BAA0B,CAAC,aAAa,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAExE,SAAS,CAAC;QACR,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,IAAI,oBAAoB,IAAI,CAAC,cAAc,EAAE;YAC3C,cAAc,EAAE,CAAC,IAAI,CAAC,UAAC,WAAW;;gBAChC,IAAI,SAAS,CAAC,OAAO,EAAE;oBACrB,MAAA,aAAa,CAAC,OAAO,0CAAE,cAAc,CAAC,WAAW,CAAC,CAAC;oBACnD,iBAAiB,CAAC,IAAI,CAAC,CAAC;iBACzB;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO;YACL,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,OAAO,KAAC,aAAa,CAAC,QAAQ,aAAC,KAAK,EAAE,aAAa,CAAC,OAAO,gBAAG,QAAQ,IAA0B,CAAC;AACnG,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,63 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ export var UpdateEvents;
13
+ (function (UpdateEvents) {
14
+ UpdateEvents["lastVisited"] = "lastVisited";
15
+ })(UpdateEvents || (UpdateEvents = {}));
16
+ var chromeState = function () {
17
+ var state = {
18
+ lastVisitedPages: [],
19
+ };
20
+ var subscribtions = {
21
+ lastVisited: [],
22
+ };
23
+ function subscribe(event, onUpdate) {
24
+ var id = subscribtions[event].length;
25
+ subscribtions[event].push({ onUpdate: onUpdate });
26
+ onUpdate();
27
+ return id;
28
+ }
29
+ function unsubscribe(id, event) {
30
+ if (id < subscribtions[event].length) {
31
+ subscribtions[event].splice(id, 1);
32
+ }
33
+ else {
34
+ console.error('Trying to unsubscribe client outside of the range!');
35
+ }
36
+ }
37
+ function update(event, attributes) {
38
+ state = __assign(__assign({}, state), attributes);
39
+ var updateSubscriptions = subscribtions[event];
40
+ if (updateSubscriptions.length === 0) {
41
+ return;
42
+ }
43
+ updateSubscriptions.forEach(function (_a) {
44
+ var onUpdate = _a.onUpdate;
45
+ onUpdate();
46
+ });
47
+ }
48
+ function setLastVisited(pages) {
49
+ update(UpdateEvents.lastVisited, { lastVisitedPages: pages });
50
+ }
51
+ function getState() {
52
+ return state;
53
+ }
54
+ return {
55
+ getState: getState,
56
+ setLastVisited: setLastVisited,
57
+ subscribe: subscribe,
58
+ unsubscribe: unsubscribe,
59
+ update: update,
60
+ };
61
+ };
62
+ export default chromeState;
63
+ //# sourceMappingURL=chromeState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromeState.js","sourceRoot":"","sources":["../../src/ChromeProvider/chromeState.ts"],"names":[],"mappings":";;;;;;;;;;;AAIA,MAAM,CAAN,IAAY,YAEX;AAFD,WAAY,YAAY;IACtB,2CAA2B,CAAA;AAC7B,CAAC,EAFW,YAAY,KAAZ,YAAY,QAEvB;AAED,IAAM,WAAW,GAAG;IAClB,IAAI,KAAK,GAAuB;QAC9B,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,IAAM,aAAa,GAIf;QACF,WAAW,EAAE,EAAE;KAChB,CAAC;IAGF,SAAS,SAAS,CAAC,KAAmB,EAAE,QAAoB;QAE1D,IAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAEvC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;QAExC,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,SAAS,WAAW,CAAC,EAAU,EAAE,KAAmB;QAClD,IAAI,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;YACpC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACpC;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;SACrE;IACH,CAAC;IAGD,SAAS,MAAM,CAAC,KAAmB,EAAE,UAAuC;QAC1E,KAAK,yBACA,KAAK,GACL,UAAU,CACd,CAAC;QACF,IAAM,mBAAmB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,OAAO;SACR;QAGD,mBAAmB,CAAC,OAAO,CAAC,UAAC,EAAY;gBAAV,QAAQ,cAAA;YACrC,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,SAAS,cAAc,CAAC,KAAe;QACrC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,SAAS,QAAQ;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,OAAO;QACL,QAAQ,UAAA;QACR,cAAc,gBAAA;QACd,SAAS,WAAA;QACT,WAAW,aAAA;QACX,MAAM,QAAA;KACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var chromeState = function () {
14
+ var state = {
15
+ lastVisitedPages: [],
16
+ };
17
+ function setLastVisited(pages) {
18
+ state.lastVisitedPages = pages;
19
+ }
20
+ return __assign({}, state);
21
+ };
22
+ //# sourceMappingURL=chromeStateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromeStateManager.js","sourceRoot":"","sources":["../../src/ChromeProvider/chromeStateManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAM,WAAW,GAAG;IAClB,IAAM,KAAK,GAEP;QACF,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,SAAS,cAAc,CAAC,KAAe;QACrC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,oBACK,KAAK,EACR;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { default as ChromeProvider } from './ChromeProvider';
2
+ export { default } from './ChromeProvider';
3
+ export { UpdateEvents } from './chromeState';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ChromeProvider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAsB,YAAY,EAAE,MAAM,eAAe,CAAC"}
package/esm/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from './ChromeProvider';
2
+ export * from './ChromeContext';
3
+ export * from './useLastVisited';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default } from './useLastVisited';
2
+ export { default as useLastVisited } from './useLastVisited';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/useLastVisited/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { useContext, useEffect, useReducer } from 'react';
2
+ import { ChromeContext } from '../ChromeContext';
3
+ import { UpdateEvents } from '../ChromeProvider';
4
+ var useLastVisited = function () {
5
+ var _a = useContext(ChromeContext), subscribe = _a.subscribe, unsubscribe = _a.unsubscribe, getState = _a.getState;
6
+ var _b = useReducer(function (count) { return count + 1; }, 0), forceRender = _b[1];
7
+ useEffect(function () {
8
+ var subsId = subscribe(UpdateEvents.lastVisited, forceRender);
9
+ return function () {
10
+ unsubscribe(subsId, UpdateEvents.lastVisited);
11
+ };
12
+ }, []);
13
+ return getState().lastVisitedPages;
14
+ };
15
+ export default useLastVisited;
16
+ //# sourceMappingURL=useLastVisited.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLastVisited.js","sourceRoot":"","sources":["../../src/useLastVisited/useLastVisited.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,IAAM,cAAc,GAAG;IACf,IAAA,KAAuC,UAAU,CAAC,aAAa,CAAC,EAA9D,SAAS,eAAA,EAAE,WAAW,iBAAA,EAAE,QAAQ,cAA8B,CAAC;IACjE,IAAA,KAAkB,UAAU,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,GAAG,CAAC,EAAT,CAAS,EAAE,CAAC,CAAC,EAAlD,WAAW,QAAuC,CAAC;IAE5D,SAAS,CAAC;QACR,IAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAChE,OAAO;YACL,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,QAAQ,EAAE,CAAC,gBAAgB,CAAC;AACrC,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,28 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ export function get(url, options) {
13
+ return fetch(url, __assign(__assign({}, options), { method: 'GET' }))
14
+ .then(function (res) { return res.json(); })
15
+ .then(function (_a) {
16
+ var data = _a.data;
17
+ return data;
18
+ });
19
+ }
20
+ export function post(url, data, options) {
21
+ return fetch(url, __assign(__assign({ credentials: 'include' }, options), { headers: __assign(__assign({}, options === null || options === void 0 ? void 0 : options.headers), { 'Content-Type': 'application/json' }), method: 'POST', body: JSON.stringify(data) }))
22
+ .then(function (res) { return res.json(); })
23
+ .then(function (_a) {
24
+ var data = _a.data;
25
+ return data;
26
+ });
27
+ }
28
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,MAAM,UAAU,GAAG,CAAI,GAAgB,EAAE,OAAqB;IAC5D,OAAO,KAAK,CAAC,GAAG,wBAAO,OAAO,KAAE,MAAM,EAAE,KAAK,IAAG;SAC7C,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC;SACzB,IAAI,CAAC,UAAC,EAAqB;YAAnB,IAAI,UAAA;QAAoB,OAAA,IAAI;IAAJ,CAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,IAAI,CAAyD,GAAgB,EAAE,IAAO,EAAE,OAAmC;IACzI,OAAO,KAAK,CAAC,GAAG,sBACd,WAAW,EAAE,SAAS,IACnB,OAAO,KACV,OAAO,wBACF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KACnB,cAAc,EAAE,kBAAkB,KAEpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAC1B;SACC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC;SACzB,IAAI,CAAI,UAAC,EAAQ;YAAN,IAAI,UAAA;QAAO,OAAA,IAAI;IAAJ,CAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,5 @@
1
+ var generateSubscribtionId = function () {
2
+ return "".concat(Date.now(), ":").concat(Math.random());
3
+ };
4
+ export default generateSubscribtionId;
5
+ //# sourceMappingURL=generateSubscribtionId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSubscribtionId.js","sourceRoot":"","sources":["../../src/utils/generateSubscribtionId.ts"],"names":[],"mappings":"AAAA,IAAM,sBAAsB,GAAG;IAC7B,OAAO,UAAG,IAAI,CAAC,GAAG,EAAE,cAAI,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;AAC1C,CAAC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
package/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './ChromeProvider';
2
+ export * from './ChromeContext';
3
+ export * from './useLastVisited';
package/index.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ChromeProvider"), exports);
18
+ __exportStar(require("./ChromeContext"), exports);
19
+ __exportStar(require("./useLastVisited"), exports);
20
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,kDAAgC;AAChC,mDAAiC"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@redhat-cloud-services/chrome",
3
+ "version": "0.0.2",
4
+ "description": "Chrome functions for RedHat Hybrid cloud console.",
5
+ "main": "index.js",
6
+ "typings": "index.d.ts",
7
+ "module": "esm/index.js",
8
+ "publishConfig": {
9
+ "access": "public"
10
+ },
11
+ "scripts": {
12
+ "build": "npm run build:js && npm run build:esm && npm run build:packages",
13
+ "build:packages": "node ../../scripts/build-packages.js --forceTypes",
14
+ "start": "concurrently \"npm run build:esm -- --watch\" \"npm run build:js -- --watch\" \"npm run build:packages\"",
15
+ "build:esm": "tsc --module es2015 --target es5",
16
+ "build:js": "tsc -p tsconfig.cjs.json"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/RedHatInsights/frontend-components.git"
21
+ },
22
+ "author": "",
23
+ "license": "Apache-2.0",
24
+ "bugs": {
25
+ "url": "https://github.com/RedHatInsights/frontend-components/issues"
26
+ },
27
+ "homepage": "https://github.com/RedHatInsights/frontend-components/tree/master/packages/chrome#readme",
28
+ "peerDependencies": {
29
+ "@unleash/proxy-client-react": "^3.5.0",
30
+ "react-router-dom": "^5.0.0 || ^6.0.0"
31
+ },
32
+ "dependencies": {
33
+ "react": "^17.0.2",
34
+ "react-dom": "^17.0.2"
35
+ },
36
+ "devDependencies": {
37
+ "@types/react": "^17.0.0"
38
+ },
39
+ "sideEffects": false
40
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './useLastVisited';
2
+ export { default as useLastVisited } from './useLastVisited';
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useLastVisited = exports.default = void 0;
7
+ var useLastVisited_1 = require("./useLastVisited");
8
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useLastVisited_1).default; } });
9
+ var useLastVisited_2 = require("./useLastVisited");
10
+ Object.defineProperty(exports, "useLastVisited", { enumerable: true, get: function () { return __importDefault(useLastVisited_2).default; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/useLastVisited/index.ts"],"names":[],"mappings":";;;;;;AAAA,mDAA2C;AAAlC,0HAAA,OAAO,OAAA;AAChB,mDAA6D;AAApD,iIAAA,OAAO,OAAkB"}
@@ -0,0 +1 @@
1
+ {"main":"index.js","module":"../esm/useLastVisited/index.js","typings":"index.d.ts"}
@@ -0,0 +1,2 @@
1
+ declare const useLastVisited: () => string[];
2
+ export default useLastVisited;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ var ChromeContext_1 = require("../ChromeContext");
5
+ var ChromeProvider_1 = require("../ChromeProvider");
6
+ var useLastVisited = function () {
7
+ var _a = (0, react_1.useContext)(ChromeContext_1.ChromeContext), subscribe = _a.subscribe, unsubscribe = _a.unsubscribe, getState = _a.getState;
8
+ var _b = (0, react_1.useReducer)(function (count) { return count + 1; }, 0), forceRender = _b[1];
9
+ (0, react_1.useEffect)(function () {
10
+ var subsId = subscribe(ChromeProvider_1.UpdateEvents.lastVisited, forceRender);
11
+ return function () {
12
+ unsubscribe(subsId, ChromeProvider_1.UpdateEvents.lastVisited);
13
+ };
14
+ }, []);
15
+ return getState().lastVisitedPages;
16
+ };
17
+ exports.default = useLastVisited;
18
+ //# sourceMappingURL=useLastVisited.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLastVisited.js","sourceRoot":"","sources":["../src/useLastVisited/useLastVisited.ts"],"names":[],"mappings":";;AAAA,+BAA0D;AAE1D,kDAAiD;AACjD,oDAAiD;AAEjD,IAAM,cAAc,GAAG;IACf,IAAA,KAAuC,IAAA,kBAAU,EAAC,6BAAa,CAAC,EAA9D,SAAS,eAAA,EAAE,WAAW,iBAAA,EAAE,QAAQ,cAA8B,CAAC;IACjE,IAAA,KAAkB,IAAA,kBAAU,EAAC,UAAC,KAAK,IAAK,OAAA,KAAK,GAAG,CAAC,EAAT,CAAS,EAAE,CAAC,CAAC,EAAlD,WAAW,QAAuC,CAAC;IAE5D,IAAA,iBAAS,EAAC;QACR,IAAM,MAAM,GAAG,SAAS,CAAC,6BAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAChE,OAAO;YACL,WAAW,CAAC,MAAM,EAAE,6BAAY,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,QAAQ,EAAE,CAAC,gBAAgB,CAAC;AACrC,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function get<T>(url: RequestInfo, options?: RequestInit): Promise<T>;
2
+ export declare function post<R, T extends Record<string, any> = Record<string, any>>(url: RequestInfo, data: T, options?: Omit<RequestInit, 'body'>): Promise<R>;
package/utils/fetch.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.post = exports.get = void 0;
15
+ function get(url, options) {
16
+ return fetch(url, __assign(__assign({}, options), { method: 'GET' }))
17
+ .then(function (res) { return res.json(); })
18
+ .then(function (_a) {
19
+ var data = _a.data;
20
+ return data;
21
+ });
22
+ }
23
+ exports.get = get;
24
+ function post(url, data, options) {
25
+ return fetch(url, __assign(__assign({ credentials: 'include' }, options), { headers: __assign(__assign({}, options === null || options === void 0 ? void 0 : options.headers), { 'Content-Type': 'application/json' }), method: 'POST', body: JSON.stringify(data) }))
26
+ .then(function (res) { return res.json(); })
27
+ .then(function (_a) {
28
+ var data = _a.data;
29
+ return data;
30
+ });
31
+ }
32
+ exports.post = post;
33
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/utils/fetch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,SAAgB,GAAG,CAAI,GAAgB,EAAE,OAAqB;IAC5D,OAAO,KAAK,CAAC,GAAG,wBAAO,OAAO,KAAE,MAAM,EAAE,KAAK,IAAG;SAC7C,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC;SACzB,IAAI,CAAC,UAAC,EAAqB;YAAnB,IAAI,UAAA;QAAoB,OAAA,IAAI;IAAJ,CAAI,CAAC,CAAC;AAC3C,CAAC;AAJD,kBAIC;AAED,SAAgB,IAAI,CAAyD,GAAgB,EAAE,IAAO,EAAE,OAAmC;IACzI,OAAO,KAAK,CAAC,GAAG,sBACd,WAAW,EAAE,SAAS,IACnB,OAAO,KACV,OAAO,wBACF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KACnB,cAAc,EAAE,kBAAkB,KAEpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAC1B;SACC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC;SACzB,IAAI,CAAI,UAAC,EAAQ;YAAN,IAAI,UAAA;QAAO,OAAA,IAAI;IAAJ,CAAI,CAAC,CAAC;AACjC,CAAC;AAbD,oBAaC"}
@@ -0,0 +1,2 @@
1
+ declare const generateSubscribtionId: () => string;
2
+ export default generateSubscribtionId;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var generateSubscribtionId = function () {
4
+ return "".concat(Date.now(), ":").concat(Math.random());
5
+ };
6
+ exports.default = generateSubscribtionId;
7
+ //# sourceMappingURL=generateSubscribtionId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSubscribtionId.js","sourceRoot":"","sources":["../src/utils/generateSubscribtionId.ts"],"names":[],"mappings":";;AAAA,IAAM,sBAAsB,GAAG;IAC7B,OAAO,UAAG,IAAI,CAAC,GAAG,EAAE,cAAI,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;AAC1C,CAAC,CAAC;AAEF,kBAAe,sBAAsB,CAAC"}