m2m-components 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/LitMenuBaseElement.js +11 -91
  2. package/LitMenuBaseElement.js.map +1 -1
  3. package/cjs/LitMenuBaseElement.js +225 -0
  4. package/cjs/LitMenuBaseElement.js.map +1 -0
  5. package/cjs/domains.js +25 -0
  6. package/cjs/domains.js.map +1 -0
  7. package/cjs/endpoints/m2m-notifications.js +19 -0
  8. package/cjs/endpoints/m2m-notifications.js.map +1 -0
  9. package/cjs/endpoints/m2m-notifications.v1.js +169 -0
  10. package/cjs/endpoints/m2m-notifications.v1.js.map +1 -0
  11. package/cjs/endpoints/m2m-users.js +19 -0
  12. package/cjs/endpoints/m2m-users.js.map +1 -0
  13. package/cjs/endpoints/m2m-users.v1.js +672 -0
  14. package/cjs/endpoints/m2m-users.v1.js.map +1 -0
  15. package/cjs/index.js +14 -0
  16. package/cjs/index.js.map +1 -0
  17. package/cjs/m2m-apps-menu.js +110 -0
  18. package/cjs/m2m-apps-menu.js.map +1 -0
  19. package/cjs/m2m-user-menu.js +113 -0
  20. package/cjs/m2m-user-menu.js.map +1 -0
  21. package/cjs/notification/NotificationProvider.js +100 -0
  22. package/cjs/notification/NotificationProvider.js.map +1 -0
  23. package/cjs/notification/ServiceIdProvider.js +41 -0
  24. package/cjs/notification/ServiceIdProvider.js.map +1 -0
  25. package/cjs/notification/api.js +63 -0
  26. package/cjs/notification/api.js.map +1 -0
  27. package/cjs/notification/domain.js +6 -0
  28. package/cjs/notification/domain.js.map +1 -0
  29. package/cjs/notification/index.js +58 -0
  30. package/cjs/notification/index.js.map +1 -0
  31. package/cjs/storage/client.js +110 -0
  32. package/cjs/storage/client.js.map +1 -0
  33. package/cjs/storage/hub.js +21 -0
  34. package/cjs/storage/hub.js.map +1 -0
  35. package/cjs/storage/lib/client.js +203 -0
  36. package/cjs/storage/lib/client.js.map +1 -0
  37. package/cjs/storage/lib/hub.js +126 -0
  38. package/cjs/storage/lib/hub.js.map +1 -0
  39. package/cjs/storage/useM2mAuth.js +101 -0
  40. package/cjs/storage/useM2mAuth.js.map +1 -0
  41. package/domains.d.ts +3 -0
  42. package/domains.js +9 -3
  43. package/domains.js.map +1 -1
  44. package/endpoints/m2m-notifications.js +1 -1
  45. package/endpoints/m2m-notifications.js.map +1 -1
  46. package/endpoints/m2m-notifications.v1.js +71 -49
  47. package/endpoints/m2m-notifications.v1.js.map +1 -1
  48. package/endpoints/m2m-users.js +1 -1
  49. package/endpoints/m2m-users.js.map +1 -1
  50. package/endpoints/m2m-users.v1.js +335 -228
  51. package/endpoints/m2m-users.v1.js.map +1 -1
  52. package/m2m-apps-menu.js +11 -39
  53. package/m2m-apps-menu.js.map +1 -1
  54. package/m2m-user-menu.js +11 -33
  55. package/m2m-user-menu.js.map +1 -1
  56. package/notification/NotificationProvider.js +25 -22
  57. package/notification/NotificationProvider.js.map +1 -1
  58. package/notification/ServiceIdProvider.js +9 -8
  59. package/notification/ServiceIdProvider.js.map +1 -1
  60. package/notification/api.js +66 -38
  61. package/notification/api.js.map +1 -1
  62. package/package.json +24 -6
  63. package/storage/client.d.ts.map +1 -1
  64. package/storage/client.js +69 -31
  65. package/storage/client.js.map +1 -1
  66. package/storage/hub.js +2 -2
  67. package/storage/hub.js.map +1 -1
  68. package/storage/lib/client.js +21 -13
  69. package/storage/lib/client.js.map +1 -1
  70. package/storage/lib/hub.js +23 -23
  71. package/storage/lib/hub.js.map +1 -1
  72. package/storage/useM2mAuth.js +50 -32
  73. package/storage/useM2mAuth.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/notification/ServiceIdProvider.tsx"],"names":["React","createContext","useMemo","ServiceIdContext","undefined","ServiceIdProvider","serviceId","children","state","useServiceId","context","useContext","Error"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,EAA+BC,OAA/B,QAA8C,OAA9C;AAMA,MAAMC,gBAAgB,gBAAGF,aAAa,CACpCG,SADoC,CAAtC;AAIA,OAAO,MAAMC,iBAAiB,GAAG,CAAC;AAChCC,EAAAA,SADgC;AAEhCC,EAAAA;AAFgC,CAAD,KAM3B;AACJ,QAAMC,KAAK,GAAGN,OAAO,CAAC,OAAO;AAAEI,IAAAA;AAAF,GAAP,CAAD,EAAwB,EAAxB,CAArB;AAEA,sBACE,oBAAC,gBAAD,CAAkB,QAAlB;AAA2B,IAAA,KAAK,EAAEE;AAAlC,KACGD,QADH,CADF;AAKD,CAdM;AAgBP,OAAO,MAAME,YAAY,GAAG,MAAM;AAChC,QAAMC,OAAO,GAAGV,KAAK,CAACW,UAAN,CAAiBR,gBAAjB,CAAhB;;AACA,MAAIO,OAAO,KAAKN,SAAhB,EAA2B;AACzB,UAAM,IAAIQ,KAAJ,CAAU,sDAAV,CAAN;AACD;;AACD,SAAOF,OAAO,CAACJ,SAAf;AACD,CANM","sourcesContent":["import React, { createContext, useMemo } from \"react\";\n\ninterface ServiceIdContextState {\n serviceId: string;\n}\n\nconst ServiceIdContext = createContext<ServiceIdContextState | undefined>(\n undefined\n);\n\nexport const ServiceIdProvider = ({\n serviceId,\n children,\n}: {\n serviceId: string;\n children: React.ReactNode;\n}) => {\n const state = useMemo(() => ({ serviceId }), []);\n\n return (\n <ServiceIdContext.Provider value={state}>\n {children}\n </ServiceIdContext.Provider>\n );\n};\n\nexport const useServiceId = () => {\n const context = React.useContext(ServiceIdContext);\n if (context === undefined) {\n throw new Error(\"useServiceId must be used within a ServiceIdProvider\");\n }\n return context.serviceId;\n};\n"],"file":"ServiceIdProvider.js"}
1
+ {"version":3,"sources":["../src/notification/ServiceIdProvider.tsx"],"names":["React","createContext","useMemo","ServiceIdContext","undefined","ServiceIdProvider","serviceId","children","state","useServiceId","context","useContext","Error"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,EAA+BC,OAA/B,QAA8C,OAA9C;AAMA,IAAMC,gBAAgB,gBAAGF,aAAa,CACpCG,SADoC,CAAtC;AAIA,OAAO,IAAMC,iBAAiB,GAAG,QAM3B;AAAA,MAN4B;AAChCC,IAAAA,SADgC;AAEhCC,IAAAA;AAFgC,GAM5B;AACJ,MAAMC,KAAK,GAAGN,OAAO,CAAC,OAAO;AAAEI,IAAAA;AAAF,GAAP,CAAD,EAAwB,EAAxB,CAArB;AAEA,sBACE,oBAAC,gBAAD,CAAkB,QAAlB;AAA2B,IAAA,KAAK,EAAEE;AAAlC,KACGD,QADH,CADF;AAKD,CAdM;AAgBP,OAAO,IAAME,YAAY,GAAG,MAAM;AAChC,MAAMC,OAAO,GAAGV,KAAK,CAACW,UAAN,CAAiBR,gBAAjB,CAAhB;;AACA,MAAIO,OAAO,KAAKN,SAAhB,EAA2B;AACzB,UAAM,IAAIQ,KAAJ,CAAU,sDAAV,CAAN;AACD;;AACD,SAAOF,OAAO,CAACJ,SAAf;AACD,CANM","sourcesContent":["import React, { createContext, useMemo } from \"react\";\n\ninterface ServiceIdContextState {\n serviceId: string;\n}\n\nconst ServiceIdContext = createContext<ServiceIdContextState | undefined>(\n undefined\n);\n\nexport const ServiceIdProvider = ({\n serviceId,\n children,\n}: {\n serviceId: string;\n children: React.ReactNode;\n}) => {\n const state = useMemo(() => ({ serviceId }), []);\n\n return (\n <ServiceIdContext.Provider value={state}>\n {children}\n </ServiceIdContext.Provider>\n );\n};\n\nexport const useServiceId = () => {\n const context = React.useContext(ServiceIdContext);\n if (context === undefined) {\n throw new Error(\"useServiceId must be used within a ServiceIdProvider\");\n }\n return context.serviceId;\n};\n"],"file":"ServiceIdProvider.js"}
@@ -1,46 +1,74 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
8
+
9
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
10
+
1
11
  import { fetcher } from "matsuri-hooks";
2
12
  import { m2mNotifications_v1 } from "../endpoints/m2m-notifications.v1";
3
- export const requestUpdateNotificationStatusToRead = async (token, id) => {
4
- await fetcher(m2mNotifications_v1.updateNotificationStatus({
5
- id
6
- }), {
7
- method: "PUT",
8
- token,
9
- body: JSON.stringify({
10
- status: "read"
11
- })
13
+ export var requestUpdateNotificationStatusToRead = /*#__PURE__*/function () {
14
+ var _ref = _asyncToGenerator(function* (token, id) {
15
+ yield fetcher(m2mNotifications_v1.updateNotificationStatus({
16
+ id
17
+ }), {
18
+ method: "PUT",
19
+ token,
20
+ body: JSON.stringify({
21
+ status: "read"
22
+ })
23
+ });
12
24
  });
13
- };
14
- export const requestSubscribe = async (token, serviceId, input) => {
15
- const {
16
- error
17
- } = await fetcher(m2mNotifications_v1.saveSubscription(), {
18
- method: "POST",
19
- token,
20
- body: JSON.stringify({ ...input,
21
- serviceId,
22
- status: "subscribed"
23
- })
25
+
26
+ return function requestUpdateNotificationStatusToRead(_x, _x2) {
27
+ return _ref.apply(this, arguments);
28
+ };
29
+ }();
30
+ export var requestSubscribe = /*#__PURE__*/function () {
31
+ var _ref2 = _asyncToGenerator(function* (token, serviceId, input) {
32
+ var {
33
+ error
34
+ } = yield fetcher(m2mNotifications_v1.saveSubscription(), {
35
+ method: "POST",
36
+ token,
37
+ body: JSON.stringify(_objectSpread(_objectSpread({}, input), {}, {
38
+ serviceId,
39
+ status: "subscribed"
40
+ }))
41
+ });
42
+
43
+ if (error) {
44
+ console.error(error);
45
+ }
24
46
  });
25
47
 
26
- if (error) {
27
- console.error(error);
28
- }
29
- };
30
- export const requestUnSubscribe = async (token, serviceId, input) => {
31
- const {
32
- error
33
- } = await fetcher(m2mNotifications_v1.saveSubscription(), {
34
- method: "POST",
35
- token,
36
- body: JSON.stringify({ ...input,
37
- serviceId,
38
- status: "denied"
39
- })
48
+ return function requestSubscribe(_x3, _x4, _x5) {
49
+ return _ref2.apply(this, arguments);
50
+ };
51
+ }();
52
+ export var requestUnSubscribe = /*#__PURE__*/function () {
53
+ var _ref3 = _asyncToGenerator(function* (token, serviceId, input) {
54
+ var {
55
+ error
56
+ } = yield fetcher(m2mNotifications_v1.saveSubscription(), {
57
+ method: "POST",
58
+ token,
59
+ body: JSON.stringify(_objectSpread(_objectSpread({}, input), {}, {
60
+ serviceId,
61
+ status: "denied"
62
+ }))
63
+ });
64
+
65
+ if (error) {
66
+ console.error(error);
67
+ }
40
68
  });
41
69
 
42
- if (error) {
43
- console.error(error);
44
- }
45
- };
70
+ return function requestUnSubscribe(_x6, _x7, _x8) {
71
+ return _ref3.apply(this, arguments);
72
+ };
73
+ }();
46
74
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/notification/api.ts"],"names":["fetcher","m2mNotifications_v1","requestUpdateNotificationStatusToRead","token","id","updateNotificationStatus","method","body","JSON","stringify","status","requestSubscribe","serviceId","input","error","saveSubscription","console","requestUnSubscribe"],"mappings":"AAAA,SAASA,OAAT,QAAwB,eAAxB;AACA,SAASC,mBAAT,QAAoC,mCAApC;AAGA,OAAO,MAAMC,qCAAqC,GAAG,OACnDC,KADmD,EAEnDC,EAFmD,KAGhD;AACH,QAAMJ,OAAO,CACXC,mBAAmB,CAACI,wBAApB,CAA6C;AAC3CD,IAAAA;AAD2C,GAA7C,CADW,EAIX;AACEE,IAAAA,MAAM,EAAE,KADV;AAEEH,IAAAA,KAFF;AAGEI,IAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAe;AAAEC,MAAAA,MAAM,EAAE;AAAV,KAAf;AAHR,GAJW,CAAb;AAUD,CAdM;AAgBP,OAAO,MAAMC,gBAAgB,GAAG,OAC9BR,KAD8B,EAE9BS,SAF8B,EAG9BC,KAH8B,KAI3B;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAY,MAAMd,OAAO,CAACC,mBAAmB,CAACc,gBAApB,EAAD,EAAyC;AACtET,IAAAA,MAAM,EAAE,MAD8D;AAEtEH,IAAAA,KAFsE;AAGtEI,IAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAe,EACnB,GAAGI,KADgB;AAEnBD,MAAAA,SAFmB;AAGnBF,MAAAA,MAAM,EAAE;AAHW,KAAf;AAHgE,GAAzC,CAA/B;;AASA,MAAII,KAAJ,EAAW;AACTE,IAAAA,OAAO,CAACF,KAAR,CAAcA,KAAd;AACD;AACF,CAjBM;AAmBP,OAAO,MAAMG,kBAAkB,GAAG,OAChCd,KADgC,EAEhCS,SAFgC,EAGhCC,KAHgC,KAI7B;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAY,MAAMd,OAAO,CAACC,mBAAmB,CAACc,gBAApB,EAAD,EAAyC;AACtET,IAAAA,MAAM,EAAE,MAD8D;AAEtEH,IAAAA,KAFsE;AAGtEI,IAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAe,EACnB,GAAGI,KADgB;AAEnBD,MAAAA,SAFmB;AAGnBF,MAAAA,MAAM,EAAE;AAHW,KAAf;AAHgE,GAAzC,CAA/B;;AASA,MAAII,KAAJ,EAAW;AACTE,IAAAA,OAAO,CAACF,KAAR,CAAcA,KAAd;AACD;AACF,CAjBM","sourcesContent":["import { fetcher } from \"matsuri-hooks\";\nimport { m2mNotifications_v1 } from \"../endpoints/m2m-notifications.v1\";\nimport { Subscription } from \"./domain\";\n\nexport const requestUpdateNotificationStatusToRead = async (\n token: string,\n id: string\n) => {\n await fetcher(\n m2mNotifications_v1.updateNotificationStatus({\n id,\n }),\n {\n method: \"PUT\",\n token,\n body: JSON.stringify({ status: \"read\" }),\n }\n );\n};\n\nexport const requestSubscribe = async (\n token: string,\n serviceId: string,\n input: Pick<Subscription, \"notificationType\" | \"resourceSubscription\">\n) => {\n const { error } = await fetcher(m2mNotifications_v1.saveSubscription(), {\n method: \"POST\",\n token,\n body: JSON.stringify({\n ...input,\n serviceId,\n status: \"subscribed\",\n }),\n });\n if (error) {\n console.error(error);\n }\n};\n\nexport const requestUnSubscribe = async (\n token: string,\n serviceId: string,\n input: Pick<Subscription, \"notificationType\" | \"resourceSubscription\">\n) => {\n const { error } = await fetcher(m2mNotifications_v1.saveSubscription(), {\n method: \"POST\",\n token,\n body: JSON.stringify({\n ...input,\n serviceId,\n status: \"denied\",\n }),\n });\n if (error) {\n console.error(error);\n }\n};\n"],"file":"api.js"}
1
+ {"version":3,"sources":["../src/notification/api.ts"],"names":["fetcher","m2mNotifications_v1","requestUpdateNotificationStatusToRead","token","id","updateNotificationStatus","method","body","JSON","stringify","status","requestSubscribe","serviceId","input","error","saveSubscription","console","requestUnSubscribe"],"mappings":";;;;;;;;;;AAAA,SAASA,OAAT,QAAwB,eAAxB;AACA,SAASC,mBAAT,QAAoC,mCAApC;AAGA,OAAO,IAAMC,qCAAqC;AAAA,+BAAG,WACnDC,KADmD,EAEnDC,EAFmD,EAGhD;AACH,UAAMJ,OAAO,CACXC,mBAAmB,CAACI,wBAApB,CAA6C;AAC3CD,MAAAA;AAD2C,KAA7C,CADW,EAIX;AACEE,MAAAA,MAAM,EAAE,KADV;AAEEH,MAAAA,KAFF;AAGEI,MAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAe;AAAEC,QAAAA,MAAM,EAAE;AAAV,OAAf;AAHR,KAJW,CAAb;AAUD,GAdiD;;AAAA,kBAArCR,qCAAqC;AAAA;AAAA;AAAA,GAA3C;AAgBP,OAAO,IAAMS,gBAAgB;AAAA,gCAAG,WAC9BR,KAD8B,EAE9BS,SAF8B,EAG9BC,KAH8B,EAI3B;AACH,QAAM;AAAEC,MAAAA;AAAF,cAAkBd,OAAO,CAACC,mBAAmB,CAACc,gBAApB,EAAD,EAAyC;AACtET,MAAAA,MAAM,EAAE,MAD8D;AAEtEH,MAAAA,KAFsE;AAGtEI,MAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,iCACDI,KADC;AAEJD,QAAAA,SAFI;AAGJF,QAAAA,MAAM,EAAE;AAHJ;AAHgE,KAAzC,CAA/B;;AASA,QAAII,KAAJ,EAAW;AACTE,MAAAA,OAAO,CAACF,KAAR,CAAcA,KAAd;AACD;AACF,GAjB4B;;AAAA,kBAAhBH,gBAAgB;AAAA;AAAA;AAAA,GAAtB;AAmBP,OAAO,IAAMM,kBAAkB;AAAA,gCAAG,WAChCd,KADgC,EAEhCS,SAFgC,EAGhCC,KAHgC,EAI7B;AACH,QAAM;AAAEC,MAAAA;AAAF,cAAkBd,OAAO,CAACC,mBAAmB,CAACc,gBAApB,EAAD,EAAyC;AACtET,MAAAA,MAAM,EAAE,MAD8D;AAEtEH,MAAAA,KAFsE;AAGtEI,MAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,iCACDI,KADC;AAEJD,QAAAA,SAFI;AAGJF,QAAAA,MAAM,EAAE;AAHJ;AAHgE,KAAzC,CAA/B;;AASA,QAAII,KAAJ,EAAW;AACTE,MAAAA,OAAO,CAACF,KAAR,CAAcA,KAAd;AACD;AACF,GAjB8B;;AAAA,kBAAlBG,kBAAkB;AAAA;AAAA;AAAA,GAAxB","sourcesContent":["import { fetcher } from \"matsuri-hooks\";\nimport { m2mNotifications_v1 } from \"../endpoints/m2m-notifications.v1\";\nimport { Subscription } from \"./domain\";\n\nexport const requestUpdateNotificationStatusToRead = async (\n token: string,\n id: string\n) => {\n await fetcher(\n m2mNotifications_v1.updateNotificationStatus({\n id,\n }),\n {\n method: \"PUT\",\n token,\n body: JSON.stringify({ status: \"read\" }),\n }\n );\n};\n\nexport const requestSubscribe = async (\n token: string,\n serviceId: string,\n input: Pick<Subscription, \"notificationType\" | \"resourceSubscription\">\n) => {\n const { error } = await fetcher(m2mNotifications_v1.saveSubscription(), {\n method: \"POST\",\n token,\n body: JSON.stringify({\n ...input,\n serviceId,\n status: \"subscribed\",\n }),\n });\n if (error) {\n console.error(error);\n }\n};\n\nexport const requestUnSubscribe = async (\n token: string,\n serviceId: string,\n input: Pick<Subscription, \"notificationType\" | \"resourceSubscription\">\n) => {\n const { error } = await fetcher(m2mNotifications_v1.saveSubscription(), {\n method: \"POST\",\n token,\n body: JSON.stringify({\n ...input,\n serviceId,\n status: \"denied\",\n }),\n });\n if (error) {\n console.error(error);\n }\n};\n"],"file":"api.js"}
package/package.json CHANGED
@@ -1,32 +1,40 @@
1
1
  {
2
2
  "name": "m2m-components",
3
- "version": "0.2.0",
4
- "main": "index.js",
3
+ "version": "0.4.0",
4
+ "main": "cjs/index.js",
5
5
  "module": "index.js",
6
6
  "typings": "index.d.ts",
7
7
  "exports": {
8
8
  ".": {
9
+ "require": "./cjs/index.js",
9
10
  "default": "./index.js"
10
11
  },
11
12
  "./m2m-apps-menu": {
13
+ "require": "./cjs/m2m-apps-menu.js",
12
14
  "default": "./m2m-apps-menu.js"
13
15
  },
14
16
  "./m2m-user-menu": {
17
+ "require": "./cjs/m2m-user-menu.js",
15
18
  "default": "./m2m-user-menu.js"
16
19
  },
17
20
  "./domains": {
21
+ "require": "./cjs/domains.js",
18
22
  "default": "./domains.js"
19
23
  },
20
24
  "./storage/client": {
25
+ "require": "./cjs/storage/client.js",
21
26
  "default": "./storage/client.js"
22
27
  },
23
28
  "./storage/hub": {
29
+ "require": "./cjs/storage/hub.js",
24
30
  "default": "./storage/hub.js"
25
31
  },
26
32
  "./storage/useM2mAuth": {
33
+ "require": "./cjs/storage/useM2mAuth.js",
27
34
  "default": "./storage/useM2mAuth.js"
28
35
  },
29
36
  "./notification": {
37
+ "require": "./cjs/notification/index.js",
30
38
  "default": "./notification/index.js"
31
39
  }
32
40
  },
@@ -39,7 +47,8 @@
39
47
  "/notification/",
40
48
  "/storage/",
41
49
  "/endpoints/",
42
- "/jsx.d.ts"
50
+ "/jsx.d.ts",
51
+ "/cjs/"
43
52
  ],
44
53
  "targets": {
45
54
  "module": false,
@@ -51,15 +60,17 @@
51
60
  "build-app:clients": "vite build website/clients/ --out-dir ../../build -c vite.config.clients.ts -m development",
52
61
  "build-app:hub": "vite build website/hub/ --out-dir ../../build",
53
62
  "build-app:hub:dev": "vite build website/hub/ --out-dir ../../build -m development",
54
- "clean": "rm -rf {m2m-apps-menu,m2m-user-menu,LitMenuBaseElement,domains,index}.{d.ts.map,d.ts,js.map,js} storage/ notification/ endpoints/",
63
+ "clean": "rm -rf {m2m-apps-menu,m2m-user-menu,LitMenuBaseElement,domains,index}.{d.ts.map,d.ts,js.map,js} storage/ notification/ endpoints/ cjs/",
55
64
  "build": "concurrently yarn:build:*",
56
65
  "build:esm": "NODE_ENV=production BABEL_ENV=esm babel src --extensions .ts,.tsx -d ./ --source-maps",
57
- "build:types": "tsc -p tsconfig.json --emitDeclarationOnly --declaration --declarationDir ./",
66
+ "build:cjs": "NODE_ENV=production BABEL_ENV=cjs babel src --extensions .ts,.tsx -d ./cjs --source-maps",
67
+ "build:types": "tsc -p tsconfig.build.json --emitDeclarationOnly --declaration --declarationDir ./",
58
68
  "lint": "eslint .",
59
69
  "postlint": "prettier --check .",
60
70
  "format": "eslint . --fix",
61
71
  "postformat": "prettier --write .",
62
- "typecheck": "tsc -p . --noEmit"
72
+ "typecheck": "tsc -p . --noEmit",
73
+ "test": "jest"
63
74
  },
64
75
  "dependencies": {
65
76
  "lit": "^2.0.2",
@@ -78,6 +89,10 @@
78
89
  "@rollup/plugin-babel": "^5.3.0",
79
90
  "@rollup/plugin-node-resolve": "^13.1.3",
80
91
  "@rollup/plugin-typescript": "^8.3.0",
92
+ "@testing-library/jest-dom": "^5.16.4",
93
+ "@testing-library/react": "^12.1.2",
94
+ "@testing-library/react-hooks": "^8.0.0",
95
+ "@types/jest": "^27.4.1",
81
96
  "@types/node": "^17.0.5",
82
97
  "@typescript-eslint/eslint-plugin": "^5.9.1",
83
98
  "@typescript-eslint/parser": "^5.9.1",
@@ -87,8 +102,11 @@
87
102
  "eslint-config-prettier": "^8.3.0",
88
103
  "eslint-plugin-react": "^7.29.4",
89
104
  "eslint-plugin-react-hooks": "^4.3.0",
105
+ "jest": "^27.5.1",
90
106
  "prettier": "^2.5.1",
107
+ "react-dom": "^17.0.2",
91
108
  "rollup": "^2.67.1",
109
+ "ts-jest": "^27.1.4",
92
110
  "typescript": "^4.5.4",
93
111
  "vite": "^2.7.9"
94
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/storage/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,cAAM,gBAAiB,SAAQ,aAAa;CAAG;AAE/C,YAAY,EAAE,gBAAgB,EAAE,CAAC;AA8DjC,eAAO,MAAM,gBAAgB;;;;;CAG5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAwBvD,eAAO,MAAM,eAAe;;;iBAZO,MAAM;;CAiBxC,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/storage/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,cAAM,gBAAiB,SAAQ,aAAa;CAAG;AAE/C,YAAY,EAAE,gBAAgB,EAAE,CAAC;AA8DjC,eAAO,MAAM,gBAAgB;;;;;CAG5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAqCvD,eAAO,MAAM,eAAe;;;iBApBO,MAAM;;CAyBxC,CAAC"}
package/storage/client.js CHANGED
@@ -1,20 +1,25 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
2
+
3
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
4
+
1
5
  import { StorageClient } from "./lib/client";
2
6
 
3
7
  class M2mStorageClient extends StorageClient {}
4
8
 
5
- const context = {};
9
+ var context = {};
6
10
  /**
7
11
  * Get the connected storage client.
8
12
  * @param timeout
9
13
  * @default 5000
10
14
  */
11
15
 
12
- const getStorage = (timeout = 5000) => {
16
+ var getStorage = function getStorage() {
17
+ var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5000;
13
18
  return new Promise((resolve, reject) => {
14
- const rejectTimer = window.setTimeout(function () {
19
+ var rejectTimer = window.setTimeout(function () {
15
20
  reject(new Error("Timeout: M2mStorageClient could not connect. Please call m2mStorageClient.init() before using m2mStorageClient."));
16
21
  }, timeout);
17
- const storage = context.storage;
22
+ var storage = context.storage;
18
23
 
19
24
  if (storage) {
20
25
  window.clearTimeout(rejectTimer);
@@ -23,60 +28,93 @@ const getStorage = (timeout = 5000) => {
23
28
  });
24
29
  }
25
30
 
26
- const timer = window.setInterval(async () => {
27
- const storage = context.storage;
31
+ var timer = window.setInterval( /*#__PURE__*/_asyncToGenerator(function* () {
32
+ var storage = context.storage;
28
33
 
29
34
  if (storage) {
30
35
  window.clearTimeout(rejectTimer);
31
- await storage.onConnect();
36
+ yield storage.onConnect();
32
37
  window.clearInterval(timer);
33
38
  resolve(storage);
34
39
  }
35
- }, 200);
40
+ }), 200);
36
41
  });
37
42
  };
38
43
 
39
- const M2M_STORAGE_HUB_URL = "https://hub.m2msystems.cloud/";
40
- const M2M_STORAGE_HUB_URL_DEV = "https://m2m-components-storage-hub-dev.netlify.app/";
44
+ var M2M_STORAGE_HUB_URL = "https://hub.m2msystems.cloud/";
45
+ var M2M_STORAGE_HUB_URL_DEV = "https://m2m-components-storage-hub-dev.netlify.app/";
41
46
 
42
- const initStorageClient = options => {
47
+ var initStorageClient = options => {
43
48
  if (context.storage) {
44
49
  throw new Error("M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times.");
45
50
  }
46
51
 
47
- const storage = new M2mStorageClient(options?.env === "production" ? M2M_STORAGE_HUB_URL : M2M_STORAGE_HUB_URL_DEV);
52
+ var storage = new M2mStorageClient((options === null || options === void 0 ? void 0 : options.env) === "production" ? M2M_STORAGE_HUB_URL : M2M_STORAGE_HUB_URL_DEV);
48
53
  context.storage = storage;
49
54
  };
50
55
 
51
- export const m2mStorageClient = {
56
+ export var m2mStorageClient = {
52
57
  init: initStorageClient,
53
58
  getStorage: getStorage
54
59
  };
55
- export const M2M_AUTH_TOKEN_KEY = "M2M_APP_AUTH_TOKEN";
60
+ export var M2M_AUTH_TOKEN_KEY = "M2M_APP_AUTH_TOKEN";
56
61
 
57
- const getAuthTokenCache = () => {
62
+ var getAuthTokenCache = () => {
58
63
  return window.localStorage.getItem(M2M_AUTH_TOKEN_KEY);
59
64
  };
60
65
 
61
- const getAuthToken = async () => {
62
- const storage = await getStorage();
63
- const autuToken = await storage.get(M2M_AUTH_TOKEN_KEY);
64
- return autuToken || getAuthTokenCache();
65
- };
66
+ var getAuthToken = /*#__PURE__*/function () {
67
+ var _ref2 = _asyncToGenerator(function* () {
68
+ try {
69
+ var storage = yield getStorage();
70
+ var autuToken = yield storage.get(M2M_AUTH_TOKEN_KEY);
71
+ return autuToken || getAuthTokenCache();
72
+ } catch (error) {
73
+ console.warn(error);
74
+ return getAuthTokenCache();
75
+ }
76
+ });
66
77
 
67
- const setAuthToken = async token => {
68
- const storage = await getStorage();
69
- window.localStorage.setItem(M2M_AUTH_TOKEN_KEY, token);
70
- await storage.set(M2M_AUTH_TOKEN_KEY, token);
71
- };
78
+ return function getAuthToken() {
79
+ return _ref2.apply(this, arguments);
80
+ };
81
+ }();
72
82
 
73
- const clearAuthToken = async () => {
74
- const storage = await getStorage();
75
- window.localStorage.removeItem(M2M_AUTH_TOKEN_KEY);
76
- await storage.del(M2M_AUTH_TOKEN_KEY);
77
- };
83
+ var setAuthToken = /*#__PURE__*/function () {
84
+ var _ref3 = _asyncToGenerator(function* (token) {
85
+ window.localStorage.setItem(M2M_AUTH_TOKEN_KEY, token);
86
+
87
+ try {
88
+ var storage = yield getStorage();
89
+ yield storage.set(M2M_AUTH_TOKEN_KEY, token);
90
+ } catch (error) {
91
+ console.warn(error);
92
+ }
93
+ });
94
+
95
+ return function setAuthToken(_x) {
96
+ return _ref3.apply(this, arguments);
97
+ };
98
+ }();
99
+
100
+ var clearAuthToken = /*#__PURE__*/function () {
101
+ var _ref4 = _asyncToGenerator(function* () {
102
+ window.localStorage.removeItem(M2M_AUTH_TOKEN_KEY);
103
+
104
+ try {
105
+ var storage = yield getStorage();
106
+ yield storage.del(M2M_AUTH_TOKEN_KEY);
107
+ } catch (error) {
108
+ console.warn(error);
109
+ }
110
+ });
111
+
112
+ return function clearAuthToken() {
113
+ return _ref4.apply(this, arguments);
114
+ };
115
+ }();
78
116
 
79
- export const m2mAuthTokenApi = {
117
+ export var m2mAuthTokenApi = {
80
118
  get: getAuthToken,
81
119
  getCache: getAuthTokenCache,
82
120
  set: setAuthToken,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/storage/client.ts"],"names":["StorageClient","M2mStorageClient","context","getStorage","timeout","Promise","resolve","reject","rejectTimer","window","setTimeout","Error","storage","clearTimeout","onConnect","then","timer","setInterval","clearInterval","M2M_STORAGE_HUB_URL","M2M_STORAGE_HUB_URL_DEV","initStorageClient","options","env","m2mStorageClient","init","M2M_AUTH_TOKEN_KEY","getAuthTokenCache","localStorage","getItem","getAuthToken","autuToken","get","setAuthToken","token","setItem","set","clearAuthToken","removeItem","del","m2mAuthTokenApi","getCache","clear"],"mappings":"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","sourcesContent":["import { StorageClient } from \"./lib/client\";\n\nclass M2mStorageClient extends StorageClient {}\n\nexport type { M2mStorageClient };\n\nconst context: {\n storage?: M2mStorageClient;\n} = {};\n\n/**\n * Get the connected storage client.\n * @param timeout\n * @default 5000\n */\nconst getStorage = (timeout = 5000) => {\n return new Promise<M2mStorageClient>((resolve, reject) => {\n const rejectTimer = window.setTimeout(function () {\n reject(\n new Error(\n \"Timeout: M2mStorageClient could not connect. Please call m2mStorageClient.init() before using m2mStorageClient.\"\n )\n );\n }, timeout);\n\n const storage = context.storage;\n if (storage) {\n window.clearTimeout(rejectTimer);\n storage.onConnect().then(() => {\n resolve(storage);\n });\n }\n\n const timer = window.setInterval(async () => {\n const storage = context.storage;\n if (storage) {\n window.clearTimeout(rejectTimer);\n await storage.onConnect();\n window.clearInterval(timer);\n resolve(storage);\n }\n }, 200);\n });\n};\n\nconst M2M_STORAGE_HUB_URL = \"https://hub.m2msystems.cloud/\";\n\nconst M2M_STORAGE_HUB_URL_DEV =\n \"https://m2m-components-storage-hub-dev.netlify.app/\";\n\nconst initStorageClient = (options?: {\n env?: \"development\" | \"production\";\n}) => {\n if (context.storage) {\n throw new Error(\n \"M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times.\"\n );\n }\n const storage = new M2mStorageClient(\n options?.env === \"production\"\n ? M2M_STORAGE_HUB_URL\n : M2M_STORAGE_HUB_URL_DEV\n );\n context.storage = storage;\n};\n\nexport const m2mStorageClient = {\n init: initStorageClient,\n getStorage: getStorage,\n};\n\nexport const M2M_AUTH_TOKEN_KEY = \"M2M_APP_AUTH_TOKEN\";\n\nconst getAuthTokenCache = () => {\n return window.localStorage.getItem(M2M_AUTH_TOKEN_KEY);\n};\n\nconst getAuthToken = async () => {\n const storage = await getStorage();\n const autuToken = (await storage.get(M2M_AUTH_TOKEN_KEY)) as string;\n return autuToken || getAuthTokenCache();\n};\n\nconst setAuthToken = async (token: string) => {\n const storage = await getStorage();\n window.localStorage.setItem(M2M_AUTH_TOKEN_KEY, token);\n await storage.set(M2M_AUTH_TOKEN_KEY, token);\n};\n\nconst clearAuthToken = async () => {\n const storage = await getStorage();\n window.localStorage.removeItem(M2M_AUTH_TOKEN_KEY);\n await storage.del(M2M_AUTH_TOKEN_KEY);\n};\n\nexport const m2mAuthTokenApi = {\n get: getAuthToken,\n getCache: getAuthTokenCache,\n set: setAuthToken,\n clear: clearAuthToken,\n};\n"],"file":"client.js"}
1
+ {"version":3,"sources":["../src/storage/client.ts"],"names":["StorageClient","M2mStorageClient","context","getStorage","timeout","Promise","resolve","reject","rejectTimer","window","setTimeout","Error","storage","clearTimeout","onConnect","then","timer","setInterval","clearInterval","M2M_STORAGE_HUB_URL","M2M_STORAGE_HUB_URL_DEV","initStorageClient","options","env","m2mStorageClient","init","M2M_AUTH_TOKEN_KEY","getAuthTokenCache","localStorage","getItem","getAuthToken","autuToken","get","error","console","warn","setAuthToken","token","setItem","set","clearAuthToken","removeItem","del","m2mAuthTokenApi","getCache","clear"],"mappings":"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","sourcesContent":["import { StorageClient } from \"./lib/client\";\n\nclass M2mStorageClient extends StorageClient {}\n\nexport type { M2mStorageClient };\n\nconst context: {\n storage?: M2mStorageClient;\n} = {};\n\n/**\n * Get the connected storage client.\n * @param timeout\n * @default 5000\n */\nconst getStorage = (timeout = 5000) => {\n return new Promise<M2mStorageClient>((resolve, reject) => {\n const rejectTimer = window.setTimeout(function () {\n reject(\n new Error(\n \"Timeout: M2mStorageClient could not connect. Please call m2mStorageClient.init() before using m2mStorageClient.\"\n )\n );\n }, timeout);\n\n const storage = context.storage;\n if (storage) {\n window.clearTimeout(rejectTimer);\n storage.onConnect().then(() => {\n resolve(storage);\n });\n }\n\n const timer = window.setInterval(async () => {\n const storage = context.storage;\n if (storage) {\n window.clearTimeout(rejectTimer);\n await storage.onConnect();\n window.clearInterval(timer);\n resolve(storage);\n }\n }, 200);\n });\n};\n\nconst M2M_STORAGE_HUB_URL = \"https://hub.m2msystems.cloud/\";\n\nconst M2M_STORAGE_HUB_URL_DEV =\n \"https://m2m-components-storage-hub-dev.netlify.app/\";\n\nconst initStorageClient = (options?: {\n env?: \"development\" | \"production\";\n}) => {\n if (context.storage) {\n throw new Error(\n \"M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times.\"\n );\n }\n const storage = new M2mStorageClient(\n options?.env === \"production\"\n ? M2M_STORAGE_HUB_URL\n : M2M_STORAGE_HUB_URL_DEV\n );\n context.storage = storage;\n};\n\nexport const m2mStorageClient = {\n init: initStorageClient,\n getStorage: getStorage,\n};\n\nexport const M2M_AUTH_TOKEN_KEY = \"M2M_APP_AUTH_TOKEN\";\n\nconst getAuthTokenCache = () => {\n return window.localStorage.getItem(M2M_AUTH_TOKEN_KEY);\n};\n\nconst getAuthToken = async () => {\n try {\n const storage = await getStorage();\n const autuToken = (await storage.get(M2M_AUTH_TOKEN_KEY)) as string;\n return autuToken || getAuthTokenCache();\n } catch (error) {\n console.warn(error);\n return getAuthTokenCache();\n }\n};\n\nconst setAuthToken = async (token: string) => {\n window.localStorage.setItem(M2M_AUTH_TOKEN_KEY, token);\n try {\n const storage = await getStorage();\n await storage.set(M2M_AUTH_TOKEN_KEY, token);\n } catch (error) {\n console.warn(error);\n }\n};\n\nconst clearAuthToken = async () => {\n window.localStorage.removeItem(M2M_AUTH_TOKEN_KEY);\n try {\n const storage = await getStorage();\n await storage.del(M2M_AUTH_TOKEN_KEY);\n } catch (error) {\n console.warn(error);\n }\n};\n\nexport const m2mAuthTokenApi = {\n get: getAuthToken,\n getCache: getAuthTokenCache,\n set: setAuthToken,\n clear: clearAuthToken,\n};\n"],"file":"client.js"}
package/storage/hub.js CHANGED
@@ -3,11 +3,11 @@ import { init } from "./lib/hub";
3
3
  /**
4
4
  * Init the hub.
5
5
  */
6
- const initM2mStorageHub = permissions => {
6
+ var initM2mStorageHub = permissions => {
7
7
  init(permissions);
8
8
  };
9
9
 
10
- export const m2mStorageHub = {
10
+ export var m2mStorageHub = {
11
11
  init: initM2mStorageHub
12
12
  };
13
13
  //# sourceMappingURL=hub.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/storage/hub.ts"],"names":["init","initM2mStorageHub","permissions","m2mStorageHub"],"mappings":"AAAA,SAASA,IAAT,QAAqB,WAArB;;AAMA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAIC,WAAD,IAAyC;AACjEF,EAAAA,IAAI,CAACE,WAAD,CAAJ;AACD,CAFD;;AAIA,OAAO,MAAMC,aAAa,GAAG;AAC3BH,EAAAA,IAAI,EAAEC;AADqB,CAAtB","sourcesContent":["import { init } from \"./lib/hub\";\nimport type { Permission } from \"./lib/hub\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface M2mStoragePermission extends Permission {}\n\n/**\n * Init the hub.\n */\nconst initM2mStorageHub = (permissions: M2mStoragePermission[]) => {\n init(permissions);\n};\n\nexport const m2mStorageHub = {\n init: initM2mStorageHub,\n};\n"],"file":"hub.js"}
1
+ {"version":3,"sources":["../src/storage/hub.ts"],"names":["init","initM2mStorageHub","permissions","m2mStorageHub"],"mappings":"AAAA,SAASA,IAAT,QAAqB,WAArB;;AAMA;AACA;AACA;AACA,IAAMC,iBAAiB,GAAIC,WAAD,IAAyC;AACjEF,EAAAA,IAAI,CAACE,WAAD,CAAJ;AACD,CAFD;;AAIA,OAAO,IAAMC,aAAa,GAAG;AAC3BH,EAAAA,IAAI,EAAEC;AADqB,CAAtB","sourcesContent":["import { init } from \"./lib/hub\";\nimport type { Permission } from \"./lib/hub\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface M2mStoragePermission extends Permission {}\n\n/**\n * Init the hub.\n */\nconst initM2mStorageHub = (permissions: M2mStoragePermission[]) => {\n init(permissions);\n};\n\nexport const m2mStorageHub = {\n init: initM2mStorageHub,\n};\n"],"file":"hub.js"}
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * この実装はcross-storageほぼそのままです。
3
3
  */
4
- const generateUUID = () => {
4
+ var generateUUID = () => {
5
5
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
6
- const r = Math.random() * 16 | 0,
7
- v = c == "x" ? r : r & 0x3 | 0x8;
6
+ var r = Math.random() * 16 | 0,
7
+ v = c == "x" ? r : r & 0x3 | 0x8;
8
8
  return v.toString(16);
9
9
  });
10
10
  };
@@ -30,7 +30,7 @@ export class StorageClient {
30
30
  this.count = 0;
31
31
  this.timeout = opts.timeout || 5000;
32
32
  window.addEventListener("message", this.listener.bind(this), false);
33
- const frame = this.createFrame(url);
33
+ var frame = this.createFrame(url);
34
34
  this.hub = frame.contentWindow;
35
35
  }
36
36
 
@@ -46,7 +46,7 @@ export class StorageClient {
46
46
  }
47
47
 
48
48
  return new Promise((resolve, reject) => {
49
- const timeout = setTimeout(function () {
49
+ var timeout = setTimeout(function () {
50
50
  reject(new Error("StorageClient could not connect."));
51
51
  }, this.timeout);
52
52
  this.requests.connect.push(err => {
@@ -64,13 +64,21 @@ export class StorageClient {
64
64
  });
65
65
  }
66
66
 
67
- get(...keys) {
67
+ get() {
68
+ for (var _len = arguments.length, keys = new Array(_len), _key = 0; _key < _len; _key++) {
69
+ keys[_key] = arguments[_key];
70
+ }
71
+
68
72
  return this.request("get", {
69
73
  keys
70
74
  });
71
75
  }
72
76
 
73
- del(...keys) {
77
+ del() {
78
+ for (var _len2 = arguments.length, keys = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
79
+ keys[_key2] = arguments[_key2];
80
+ }
81
+
74
82
  return this.request("del", {
75
83
  keys
76
84
  });
@@ -85,7 +93,7 @@ export class StorageClient {
85
93
  }
86
94
 
87
95
  close() {
88
- const frame = document.getElementById(this.frameId);
96
+ var frame = document.getElementById(this.frameId);
89
97
 
90
98
  if (frame && frame.parentNode) {
91
99
  frame.parentNode.removeChild(frame);
@@ -97,13 +105,13 @@ export class StorageClient {
97
105
  }
98
106
 
99
107
  listener(message) {
100
- let i, error, response;
108
+ var i, error, response;
101
109
 
102
110
  if (this.closed || !message.data || typeof message.data !== "string") {
103
111
  return;
104
112
  }
105
113
 
106
- const origin = message.origin;
114
+ var origin = message.origin;
107
115
  if (origin !== this.origin) return;
108
116
 
109
117
  if (message.data === "cross-storage:unavailable") {
@@ -145,7 +153,7 @@ export class StorageClient {
145
153
  }
146
154
 
147
155
  createFrame(url) {
148
- const frame = window.document.createElement("iframe");
156
+ var frame = window.document.createElement("iframe");
149
157
  frame.id = this.frameId;
150
158
  frame.style.display = "none";
151
159
  frame.style.position = "absolute";
@@ -163,13 +171,13 @@ export class StorageClient {
163
171
  }
164
172
 
165
173
  this.count++;
166
- const req = {
174
+ var req = {
167
175
  id: this.id + ":" + this.count,
168
176
  method: "cross-storage:" + method,
169
177
  params: params
170
178
  };
171
179
  return new Promise((resolve, reject) => {
172
- const timeout = window.setTimeout(() => {
180
+ var timeout = window.setTimeout(() => {
173
181
  if (!this.requests[req.id]) return;
174
182
  delete this.requests[req.id];
175
183
  reject(new Error("Timeout: StorageClient could not perform " + req.method));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/storage/lib/client.ts"],"names":["generateUUID","replace","c","r","Math","random","v","toString","StorageClient","constructor","url","opts","id","frameId","origin","requests","connected","closed","count","timeout","hub","URL","window","addEventListener","listener","bind","frame","createFrame","contentWindow","onConnect","Promise","resolve","reject","Error","connect","setTimeout","push","err","clearTimeout","undefined","set","key","value","request","get","keys","del","clear","getKeys","close","document","getElementById","parentNode","removeChild","removeEventListener","message","i","error","response","data","length","indexOf","JSON","parse","e","result","createElement","style","display","position","top","left","body","appendChild","src","method","params","req","postMessage","stringify"],"mappings":"AAAA;AACA;AACA;AACA,MAAMA,YAAY,GAAG,MAAM;AACzB,SAAO,uCAAuCC,OAAvC,CAA+C,OAA/C,EAAwD,UAAUC,CAAV,EAAa;AAC1E,UAAMC,CAAC,GAAIC,IAAI,CAACC,MAAL,KAAgB,EAAjB,GAAuB,CAAjC;AAAA,UACEC,CAAC,GAAGJ,CAAC,IAAI,GAAL,GAAWC,CAAX,GAAgBA,CAAC,GAAG,GAAL,GAAY,GADjC;AAGA,WAAOG,CAAC,CAACC,QAAF,CAAW,EAAX,CAAP;AACD,GALM,CAAP;AAMD,CAPD;;AAQA,OAAO,MAAMC,aAAN,CAAoB;AAazBC,EAAAA,WAAW,CAACC,GAAD,EAAcC,IAAd,EAA6D;AAAA,SAZxEC,EAYwE;AAAA,SAXxEC,OAWwE;AAAA,SAVxEC,MAUwE;AAAA,SATxEC,QASwE;AAAA,SANxEC,SAMwE;AAAA,SALxEC,MAKwE;AAAA,SAJxEC,KAIwE;AAAA,SAHxEC,OAGwE;AAAA,SAFxEC,GAEwE;AACtET,IAAAA,IAAI,GAAGA,IAAI,IAAI,EAAf;AAEA,SAAKC,EAAL,GAAUZ,YAAY,EAAtB;AACA,SAAKa,OAAL,GAAeF,IAAI,CAACE,OAAL,IAAgB,wBAAwB,KAAKD,EAA5D;AACA,SAAKE,MAAL,GAAc,IAAIO,GAAJ,CAAQX,GAAR,EAAaI,MAA3B;AACA,SAAKC,QAAL,GAAgB,EAAhB;AACA,SAAKC,SAAL,GAAiB,KAAjB;AACA,SAAKC,MAAL,GAAc,KAAd;AACA,SAAKC,KAAL,GAAa,CAAb;AACA,SAAKC,OAAL,GAAeR,IAAI,CAACQ,OAAL,IAAgB,IAA/B;AAEAG,IAAAA,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmC,KAAKC,QAAL,CAAcC,IAAd,CAAmB,IAAnB,CAAnC,EAA6D,KAA7D;AAEA,UAAMC,KAAK,GAAG,KAAKC,WAAL,CAAiBjB,GAAjB,CAAd;AACA,SAAKU,GAAL,GAAWM,KAAK,CAACE,aAAjB;AACD;;AAEDC,EAAAA,SAAS,GAAG;AACV,QAAI,KAAKb,SAAT,EAAoB;AAClB,aAAOc,OAAO,CAACC,OAAR,EAAP;AACD,KAFD,MAEO,IAAI,KAAKd,MAAT,EAAiB;AACtB,aAAOa,OAAO,CAACE,MAAR,CAAe,IAAIC,KAAJ,CAAU,2BAAV,CAAf,CAAP;AACD;;AAED,QAAI,CAAC,KAAKlB,QAAL,CAAcmB,OAAnB,EAA4B;AAC1B,WAAKnB,QAAL,CAAcmB,OAAd,GAAwB,EAAxB;AACD;;AAED,WAAO,IAAIJ,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtC,YAAMb,OAAO,GAAGgB,UAAU,CAAC,YAAY;AACrCH,QAAAA,MAAM,CAAC,IAAIC,KAAJ,CAAU,kCAAV,CAAD,CAAN;AACD,OAFyB,EAEvB,KAAKd,OAFkB,CAA1B;AAIA,WAAKJ,QAAL,CAAcmB,OAAd,CAAsBE,IAAtB,CAA4BC,GAAD,IAAiB;AAC1CC,QAAAA,YAAY,CAACnB,OAAD,CAAZ;AACA,YAAIkB,GAAJ,EAAS,OAAOL,MAAM,CAACK,GAAD,CAAb;AAETN,QAAAA,OAAO,CAACQ,SAAD,CAAP;AACD,OALD;AAMD,KAXM,CAAP;AAYD;;AAEDC,EAAAA,GAAG,CAACC,GAAD,EAAcC,KAAd,EAA6B;AAC9B,WAAO,KAAKC,OAAL,CAAa,KAAb,EAAoB;AACzBF,MAAAA,GAAG,EAAEA,GADoB;AAEzBC,MAAAA,KAAK,EAAEA;AAFkB,KAApB,CAAP;AAID;;AAEDE,EAAAA,GAAG,CAAC,GAAGC,IAAJ,EAAoB;AACrB,WAAO,KAAKF,OAAL,CAAa,KAAb,EAAoB;AAAEE,MAAAA;AAAF,KAApB,CAAP;AACD;;AAEDC,EAAAA,GAAG,CAAC,GAAGD,IAAJ,EAAoB;AACrB,WAAO,KAAKF,OAAL,CAAa,KAAb,EAAoB;AAAEE,MAAAA;AAAF,KAApB,CAAP;AACD;;AAEDE,EAAAA,KAAK,GAAG;AACN,WAAO,KAAKJ,OAAL,CAAa,OAAb,CAAP;AACD;;AAEDK,EAAAA,OAAO,GAAG;AACR,SAAKL,OAAL,CAAa,SAAb;AACD;;AAEDM,EAAAA,KAAK,GAAG;AACN,UAAMvB,KAAK,GAAGwB,QAAQ,CAACC,cAAT,CAAwB,KAAKtC,OAA7B,CAAd;;AACA,QAAIa,KAAK,IAAIA,KAAK,CAAC0B,UAAnB,EAA+B;AAC7B1B,MAAAA,KAAK,CAAC0B,UAAN,CAAiBC,WAAjB,CAA6B3B,KAA7B;AACD;;AAEDJ,IAAAA,MAAM,CAACgC,mBAAP,CAA2B,SAA3B,EAAsC,KAAK9B,QAA3C,EAAqD,KAArD;AAEA,SAAKR,SAAL,GAAiB,KAAjB;AACA,SAAKC,MAAL,GAAc,IAAd;AACD;;AAEOO,EAAAA,QAAQ,CAAC+B,OAAD,EAAwB;AACtC,QAAIC,CAAJ,EAAOC,KAAP,EAAcC,QAAd;;AAEA,QAAI,KAAKzC,MAAL,IAAe,CAACsC,OAAO,CAACI,IAAxB,IAAgC,OAAOJ,OAAO,CAACI,IAAf,KAAwB,QAA5D,EAAsE;AACpE;AACD;;AAED,UAAM7C,MAAM,GAAGyC,OAAO,CAACzC,MAAvB;AAEA,QAAIA,MAAM,KAAK,KAAKA,MAApB,EAA4B;;AAE5B,QAAIyC,OAAO,CAACI,IAAR,KAAiB,2BAArB,EAAkD;AAChD,UAAI,CAAC,KAAK1C,MAAV,EAAkB,KAAKgC,KAAL;AAClB,UAAI,CAAC,KAAKlC,QAAL,CAAcmB,OAAnB,EAA4B;AAE5BuB,MAAAA,KAAK,GAAG,IAAIxB,KAAJ,CACN,qEADM,CAAR;;AAGA,WAAKuB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKzC,QAAL,CAAcmB,OAAd,CAAsB0B,MAAtC,EAA8CJ,CAAC,EAA/C,EAAmD;AACjD,aAAKzC,QAAL,CAAcmB,OAAd,CAAsBsB,CAAtB,EAAyBC,KAAzB;AACD;;AAED;AACD;;AAED,QAAIF,OAAO,CAACI,IAAR,CAAaE,OAAb,CAAqB,gBAArB,MAA2C,CAAC,CAA5C,IAAiD,CAAC,KAAK7C,SAA3D,EAAsE;AACpE,WAAKA,SAAL,GAAiB,IAAjB;AACA,UAAI,CAAC,KAAKD,QAAL,CAAcmB,OAAnB,EAA4B;;AAE5B,WAAKsB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKzC,QAAL,CAAcmB,OAAd,CAAsB0B,MAAtC,EAA8CJ,CAAC,EAA/C,EAAmD;AACjD,aAAKzC,QAAL,CAAcmB,OAAd,CAAsBsB,CAAtB,EAAyBC,KAAzB;AACD;;AACD,aAAO,KAAK1C,QAAL,CAAcmB,OAArB;AACD;;AAED,QAAIqB,OAAO,CAACI,IAAR,KAAiB,qBAArB,EAA4C;;AAE5C,QAAI;AACFD,MAAAA,QAAQ,GAAGI,IAAI,CAACC,KAAL,CAAWR,OAAO,CAACI,IAAnB,CAAX;AACD,KAFD,CAEE,OAAOK,CAAP,EAAU;AACV;AACD;;AAED,QAAI,CAACN,QAAQ,CAAC9C,EAAd,EAAkB;;AAElB,QAAI,KAAKG,QAAL,CAAc2C,QAAQ,CAAC9C,EAAvB,CAAJ,EAAgC;AAC9B,WAAKG,QAAL,CAAc2C,QAAQ,CAAC9C,EAAvB,EAA2B8C,QAAQ,CAACD,KAApC,EAA2CC,QAAQ,CAACO,MAApD;AACD;AACF;;AAEOtC,EAAAA,WAAW,CAACjB,GAAD,EAAc;AAC/B,UAAMgB,KAAK,GAAGJ,MAAM,CAAC4B,QAAP,CAAgBgB,aAAhB,CAA8B,QAA9B,CAAd;AACAxC,IAAAA,KAAK,CAACd,EAAN,GAAW,KAAKC,OAAhB;AAEAa,IAAAA,KAAK,CAACyC,KAAN,CAAYC,OAAZ,GAAsB,MAAtB;AACA1C,IAAAA,KAAK,CAACyC,KAAN,CAAYE,QAAZ,GAAuB,UAAvB;AACA3C,IAAAA,KAAK,CAACyC,KAAN,CAAYG,GAAZ,GAAkB,QAAlB;AACA5C,IAAAA,KAAK,CAACyC,KAAN,CAAYI,IAAZ,GAAmB,QAAnB;AAEAjD,IAAAA,MAAM,CAAC4B,QAAP,CAAgBsB,IAAhB,CAAqBC,WAArB,CAAiC/C,KAAjC;AACAA,IAAAA,KAAK,CAACgD,GAAN,GAAYhE,GAAZ;AAEA,WAAOgB,KAAP;AACD,GA1JwB,CA4JzB;;;AACQiB,EAAAA,OAAO,CAACgC,MAAD,EAAiBC,MAAjB,EAA8B;AAC3C,QAAI,KAAK3D,MAAT,EAAiB;AACf,aAAOa,OAAO,CAACE,MAAR,CAAe,IAAIC,KAAJ,CAAU,2BAAV,CAAf,CAAP;AACD;;AAED,SAAKf,KAAL;AAEA,UAAM2D,GAAG,GAAG;AACVjE,MAAAA,EAAE,EAAE,KAAKA,EAAL,GAAU,GAAV,GAAgB,KAAKM,KADf;AAEVyD,MAAAA,MAAM,EAAE,mBAAmBA,MAFjB;AAGVC,MAAAA,MAAM,EAAEA;AAHE,KAAZ;AAMA,WAAO,IAAI9C,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtC,YAAMb,OAAO,GAAGG,MAAM,CAACa,UAAP,CAAkB,MAAM;AACtC,YAAI,CAAC,KAAKpB,QAAL,CAAc8D,GAAG,CAACjE,EAAlB,CAAL,EAA4B;AAE5B,eAAO,KAAKG,QAAL,CAAc8D,GAAG,CAACjE,EAAlB,CAAP;AACAoB,QAAAA,MAAM,CACJ,IAAIC,KAAJ,CAAU,8CAA8C4C,GAAG,CAACF,MAA5D,CADI,CAAN;AAGD,OAPe,EAOb,KAAKxD,OAPQ,CAAhB;;AASA,WAAKJ,QAAL,CAAc8D,GAAG,CAACjE,EAAlB,IAAwB,CAACyB,GAAD,EAAc4B,MAAd,KAAiC;AACvD3B,QAAAA,YAAY,CAACnB,OAAD,CAAZ;AACA,eAAO,KAAKJ,QAAL,CAAc8D,GAAG,CAACjE,EAAlB,CAAP;AACA,YAAIyB,GAAJ,EAAS,OAAOL,MAAM,CAAC,IAAIC,KAAJ,CAAUI,GAAV,CAAD,CAAb;AACTN,QAAAA,OAAO,CAACkC,MAAD,CAAP;AACD,OALD;;AAOA,UAAI,KAAK7C,GAAT,EAAc;AACZ,aAAKA,GAAL,CAAS0D,WAAT,CAAqBhB,IAAI,CAACiB,SAAL,CAAeF,GAAf,CAArB,EAA0C,KAAK/D,MAA/C;AACD,OAFD,MAEO;AACLkB,QAAAA,MAAM,CAAC,IAAIC,KAAJ,CAAU,uBAAV,CAAD,CAAN;AACD;AACF,KAtBM,CAAP;AAuBD;;AAjMwB","sourcesContent":["/**\n * この実装はcross-storageほぼそのままです。\n */\nconst generateUUID = () => {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n\n return v.toString(16);\n });\n};\nexport class StorageClient {\n id: string;\n frameId: string;\n origin: string;\n requests: {\n [key: string]: any;\n };\n connected: boolean;\n closed: boolean;\n count: number;\n timeout: number;\n hub: null | Window;\n\n constructor(url: string, opts?: { frameId?: string; timeout?: number }) {\n opts = opts || {};\n\n this.id = generateUUID();\n this.frameId = opts.frameId || \"CrossStorageClient-\" + this.id;\n this.origin = new URL(url).origin;\n this.requests = {};\n this.connected = false;\n this.closed = false;\n this.count = 0;\n this.timeout = opts.timeout || 5000;\n\n window.addEventListener(\"message\", this.listener.bind(this), false);\n\n const frame = this.createFrame(url);\n this.hub = frame.contentWindow;\n }\n\n onConnect() {\n if (this.connected) {\n return Promise.resolve();\n } else if (this.closed) {\n return Promise.reject(new Error(\"StorageClient has closed.\"));\n }\n\n if (!this.requests.connect) {\n this.requests.connect = [];\n }\n\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(function () {\n reject(new Error(\"StorageClient could not connect.\"));\n }, this.timeout);\n\n this.requests.connect.push((err: string) => {\n clearTimeout(timeout);\n if (err) return reject(err);\n\n resolve(undefined);\n });\n });\n }\n\n set(key: string, value: string) {\n return this.request(\"set\", {\n key: key,\n value: value,\n });\n }\n\n get(...keys: string[]) {\n return this.request(\"get\", { keys });\n }\n\n del(...keys: string[]) {\n return this.request(\"del\", { keys });\n }\n\n clear() {\n return this.request(\"clear\");\n }\n\n getKeys() {\n this.request(\"getKeys\");\n }\n\n close() {\n const frame = document.getElementById(this.frameId);\n if (frame && frame.parentNode) {\n frame.parentNode.removeChild(frame);\n }\n\n window.removeEventListener(\"message\", this.listener, false);\n\n this.connected = false;\n this.closed = true;\n }\n\n private listener(message: MessageEvent) {\n let i, error, response;\n\n if (this.closed || !message.data || typeof message.data !== \"string\") {\n return;\n }\n\n const origin = message.origin;\n\n if (origin !== this.origin) return;\n\n if (message.data === \"cross-storage:unavailable\") {\n if (!this.closed) this.close();\n if (!this.requests.connect) return;\n\n error = new Error(\n \"Closing StorageClient. Could not access localStorage in StorageHub.\"\n );\n for (i = 0; i < this.requests.connect.length; i++) {\n this.requests.connect[i](error);\n }\n\n return;\n }\n\n if (message.data.indexOf(\"cross-storage:\") !== -1 && !this.connected) {\n this.connected = true;\n if (!this.requests.connect) return;\n\n for (i = 0; i < this.requests.connect.length; i++) {\n this.requests.connect[i](error);\n }\n delete this.requests.connect;\n }\n\n if (message.data === \"cross-storage:ready\") return;\n\n try {\n response = JSON.parse(message.data);\n } catch (e) {\n return;\n }\n\n if (!response.id) return;\n\n if (this.requests[response.id]) {\n this.requests[response.id](response.error, response.result);\n }\n }\n\n private createFrame(url: string) {\n const frame = window.document.createElement(\"iframe\");\n frame.id = this.frameId;\n\n frame.style.display = \"none\";\n frame.style.position = \"absolute\";\n frame.style.top = \"-999px\";\n frame.style.left = \"-999px\";\n\n window.document.body.appendChild(frame);\n frame.src = url;\n\n return frame;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n private request(method: string, params?: {}) {\n if (this.closed) {\n return Promise.reject(new Error(\"StorageClient has closed.\"));\n }\n\n this.count++;\n\n const req = {\n id: this.id + \":\" + this.count,\n method: \"cross-storage:\" + method,\n params: params,\n };\n\n return new Promise((resolve, reject) => {\n const timeout = window.setTimeout(() => {\n if (!this.requests[req.id]) return;\n\n delete this.requests[req.id];\n reject(\n new Error(\"Timeout: StorageClient could not perform \" + req.method)\n );\n }, this.timeout);\n\n this.requests[req.id] = (err: string, result: string) => {\n clearTimeout(timeout);\n delete this.requests[req.id];\n if (err) return reject(new Error(err));\n resolve(result);\n };\n\n if (this.hub) {\n this.hub.postMessage(JSON.stringify(req), this.origin);\n } else {\n reject(new Error(\"Not found StorageHub.\"));\n }\n });\n }\n}\n"],"file":"client.js"}
1
+ {"version":3,"sources":["../../src/storage/lib/client.ts"],"names":["generateUUID","replace","c","r","Math","random","v","toString","StorageClient","constructor","url","opts","id","frameId","origin","requests","connected","closed","count","timeout","hub","URL","window","addEventListener","listener","bind","frame","createFrame","contentWindow","onConnect","Promise","resolve","reject","Error","connect","setTimeout","push","err","clearTimeout","undefined","set","key","value","request","get","keys","del","clear","getKeys","close","document","getElementById","parentNode","removeChild","removeEventListener","message","i","error","response","data","length","indexOf","JSON","parse","e","result","createElement","style","display","position","top","left","body","appendChild","src","method","params","req","postMessage","stringify"],"mappings":"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","sourcesContent":["/**\n * この実装はcross-storageほぼそのままです。\n */\nconst generateUUID = () => {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n\n return v.toString(16);\n });\n};\nexport class StorageClient {\n id: string;\n frameId: string;\n origin: string;\n requests: {\n [key: string]: any;\n };\n connected: boolean;\n closed: boolean;\n count: number;\n timeout: number;\n hub: null | Window;\n\n constructor(url: string, opts?: { frameId?: string; timeout?: number }) {\n opts = opts || {};\n\n this.id = generateUUID();\n this.frameId = opts.frameId || \"CrossStorageClient-\" + this.id;\n this.origin = new URL(url).origin;\n this.requests = {};\n this.connected = false;\n this.closed = false;\n this.count = 0;\n this.timeout = opts.timeout || 5000;\n\n window.addEventListener(\"message\", this.listener.bind(this), false);\n\n const frame = this.createFrame(url);\n this.hub = frame.contentWindow;\n }\n\n onConnect() {\n if (this.connected) {\n return Promise.resolve();\n } else if (this.closed) {\n return Promise.reject(new Error(\"StorageClient has closed.\"));\n }\n\n if (!this.requests.connect) {\n this.requests.connect = [];\n }\n\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(function () {\n reject(new Error(\"StorageClient could not connect.\"));\n }, this.timeout);\n\n this.requests.connect.push((err: string) => {\n clearTimeout(timeout);\n if (err) return reject(err);\n\n resolve(undefined);\n });\n });\n }\n\n set(key: string, value: string) {\n return this.request(\"set\", {\n key: key,\n value: value,\n });\n }\n\n get(...keys: string[]) {\n return this.request(\"get\", { keys });\n }\n\n del(...keys: string[]) {\n return this.request(\"del\", { keys });\n }\n\n clear() {\n return this.request(\"clear\");\n }\n\n getKeys() {\n this.request(\"getKeys\");\n }\n\n close() {\n const frame = document.getElementById(this.frameId);\n if (frame && frame.parentNode) {\n frame.parentNode.removeChild(frame);\n }\n\n window.removeEventListener(\"message\", this.listener, false);\n\n this.connected = false;\n this.closed = true;\n }\n\n private listener(message: MessageEvent) {\n let i, error, response;\n\n if (this.closed || !message.data || typeof message.data !== \"string\") {\n return;\n }\n\n const origin = message.origin;\n\n if (origin !== this.origin) return;\n\n if (message.data === \"cross-storage:unavailable\") {\n if (!this.closed) this.close();\n if (!this.requests.connect) return;\n\n error = new Error(\n \"Closing StorageClient. Could not access localStorage in StorageHub.\"\n );\n for (i = 0; i < this.requests.connect.length; i++) {\n this.requests.connect[i](error);\n }\n\n return;\n }\n\n if (message.data.indexOf(\"cross-storage:\") !== -1 && !this.connected) {\n this.connected = true;\n if (!this.requests.connect) return;\n\n for (i = 0; i < this.requests.connect.length; i++) {\n this.requests.connect[i](error);\n }\n delete this.requests.connect;\n }\n\n if (message.data === \"cross-storage:ready\") return;\n\n try {\n response = JSON.parse(message.data);\n } catch (e) {\n return;\n }\n\n if (!response.id) return;\n\n if (this.requests[response.id]) {\n this.requests[response.id](response.error, response.result);\n }\n }\n\n private createFrame(url: string) {\n const frame = window.document.createElement(\"iframe\");\n frame.id = this.frameId;\n\n frame.style.display = \"none\";\n frame.style.position = \"absolute\";\n frame.style.top = \"-999px\";\n frame.style.left = \"-999px\";\n\n window.document.body.appendChild(frame);\n frame.src = url;\n\n return frame;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n private request(method: string, params?: {}) {\n if (this.closed) {\n return Promise.reject(new Error(\"StorageClient has closed.\"));\n }\n\n this.count++;\n\n const req = {\n id: this.id + \":\" + this.count,\n method: \"cross-storage:\" + method,\n params: params,\n };\n\n return new Promise((resolve, reject) => {\n const timeout = window.setTimeout(() => {\n if (!this.requests[req.id]) return;\n\n delete this.requests[req.id];\n reject(\n new Error(\"Timeout: StorageClient could not perform \" + req.method)\n );\n }, this.timeout);\n\n this.requests[req.id] = (err: string, result: string) => {\n clearTimeout(timeout);\n delete this.requests[req.id];\n if (err) return reject(new Error(err));\n resolve(result);\n };\n\n if (this.hub) {\n this.hub.postMessage(JSON.stringify(req), this.origin);\n } else {\n reject(new Error(\"Not found StorageHub.\"));\n }\n });\n }\n}\n"],"file":"client.js"}