m2m-components 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MenuBaseElement.d.ts +1 -1
- package/MenuBaseElement.js +1 -40
- package/MenuBaseElement.js.map +1 -1
- package/cjs/MenuBaseElement.js +0 -42
- package/cjs/MenuBaseElement.js.map +1 -1
- package/cjs/domains.js.map +1 -1
- package/cjs/endpoints/m2m-notifications.js +1 -4
- package/cjs/endpoints/m2m-notifications.js.map +1 -1
- package/cjs/endpoints/m2m-notifications.v1.js +5 -38
- package/cjs/endpoints/m2m-notifications.v1.js.map +1 -1
- package/cjs/endpoints/m2m-users.js +1 -4
- package/cjs/endpoints/m2m-users.js.map +1 -1
- package/cjs/endpoints/m2m-users.v1.js +28 -153
- package/cjs/endpoints/m2m-users.v1.js.map +1 -1
- package/cjs/index.js +0 -6
- package/cjs/index.js.map +1 -1
- package/cjs/initM2mComponents.js +0 -4
- package/cjs/initM2mComponents.js.map +1 -1
- package/cjs/m2m-apps-menu.js +0 -26
- package/cjs/m2m-apps-menu.js.map +1 -1
- package/cjs/m2m-user-menu.js +0 -30
- package/cjs/m2m-user-menu.js.map +1 -1
- package/cjs/notification/NotificationProvider.js +2 -18
- package/cjs/notification/NotificationProvider.js.map +1 -1
- package/cjs/notification/ServiceIdProvider.js +0 -11
- package/cjs/notification/ServiceIdProvider.js.map +1 -1
- package/cjs/notification/api.js +4 -12
- package/cjs/notification/api.js.map +1 -1
- package/cjs/notification/index.js +0 -8
- package/cjs/notification/index.js.map +1 -1
- package/cjs/storage/client.js +1 -18
- package/cjs/storage/client.js.map +1 -1
- package/cjs/storage/hub.js +0 -3
- package/cjs/storage/hub.js.map +1 -1
- package/cjs/storage/lib/client.js +3 -35
- package/cjs/storage/lib/client.js.map +1 -1
- package/cjs/storage/lib/hub.js +12 -25
- package/cjs/storage/lib/hub.js.map +1 -1
- package/cjs/storage/useM2mAuth.js +0 -24
- package/cjs/storage/useM2mAuth.js.map +1 -1
- package/domains.js.map +1 -1
- package/endpoints/m2m-notifications.js.map +1 -1
- package/endpoints/m2m-notifications.v1.js +5 -32
- package/endpoints/m2m-notifications.v1.js.map +1 -1
- package/endpoints/m2m-users.js.map +1 -1
- package/endpoints/m2m-users.v1.js +28 -132
- package/endpoints/m2m-users.v1.js.map +1 -1
- package/index.js.map +1 -1
- package/initM2mComponents.d.ts +1 -1
- package/initM2mComponents.js +0 -1
- package/initM2mComponents.js.map +1 -1
- package/m2m-apps-menu.d.ts +1 -1
- package/m2m-apps-menu.js +1 -23
- package/m2m-apps-menu.js.map +1 -1
- package/m2m-user-menu.d.ts +1 -1
- package/m2m-user-menu.js +1 -25
- package/m2m-user-menu.js.map +1 -1
- package/notification/NotificationProvider.js +2 -8
- package/notification/NotificationProvider.js.map +1 -1
- package/notification/ServiceIdProvider.js +0 -2
- package/notification/ServiceIdProvider.js.map +1 -1
- package/notification/api.js +3 -11
- package/notification/api.js.map +1 -1
- package/notification/domain.d.ts +1 -1
- package/notification/domain.d.ts.map +1 -1
- package/notification/index.js.map +1 -1
- package/package.json +20 -20
- package/storage/client.js +1 -23
- package/storage/client.js.map +1 -1
- package/storage/hub.js +0 -2
- package/storage/hub.js.map +1 -1
- package/storage/lib/client.js +3 -35
- package/storage/lib/client.js.map +1 -1
- package/storage/lib/hub.d.ts +1 -1
- package/storage/lib/hub.d.ts.map +1 -1
- package/storage/lib/hub.js +12 -23
- package/storage/lib/hub.js.map +1 -1
- package/storage/useM2mAuth.d.ts +1 -1
- package/storage/useM2mAuth.d.ts.map +1 -1
- package/storage/useM2mAuth.js +0 -12
- package/storage/useM2mAuth.js.map +1 -1
package/notification/api.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
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
2
|
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
|
|
6
|
-
|
|
3
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
5
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
6
|
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
7
|
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
|
-
|
|
11
8
|
import { fetcher } from "matsuri-hooks";
|
|
12
9
|
import { m2mNotifications_v1 } from "../endpoints/m2m-notifications.v1";
|
|
13
10
|
export var requestUpdateNotificationStatusToRead = /*#__PURE__*/function () {
|
|
@@ -22,7 +19,6 @@ export var requestUpdateNotificationStatusToRead = /*#__PURE__*/function () {
|
|
|
22
19
|
})
|
|
23
20
|
});
|
|
24
21
|
});
|
|
25
|
-
|
|
26
22
|
return function requestUpdateNotificationStatusToRead(_x, _x2) {
|
|
27
23
|
return _ref.apply(this, arguments);
|
|
28
24
|
};
|
|
@@ -39,12 +35,10 @@ export var requestSubscribe = /*#__PURE__*/function () {
|
|
|
39
35
|
status: "subscribed"
|
|
40
36
|
}))
|
|
41
37
|
});
|
|
42
|
-
|
|
43
38
|
if (error) {
|
|
44
39
|
console.error(error);
|
|
45
40
|
}
|
|
46
41
|
});
|
|
47
|
-
|
|
48
42
|
return function requestSubscribe(_x3, _x4, _x5) {
|
|
49
43
|
return _ref2.apply(this, arguments);
|
|
50
44
|
};
|
|
@@ -61,12 +55,10 @@ export var requestUnSubscribe = /*#__PURE__*/function () {
|
|
|
61
55
|
status: "denied"
|
|
62
56
|
}))
|
|
63
57
|
});
|
|
64
|
-
|
|
65
58
|
if (error) {
|
|
66
59
|
console.error(error);
|
|
67
60
|
}
|
|
68
61
|
});
|
|
69
|
-
|
|
70
62
|
return function requestUnSubscribe(_x6, _x7, _x8) {
|
|
71
63
|
return _ref3.apply(this, arguments);
|
|
72
64
|
};
|
package/notification/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","names":["fetcher","m2mNotifications_v1","requestUpdateNotificationStatusToRead","token","id","updateNotificationStatus","method","body","JSON","stringify","status","requestSubscribe","serviceId","input","error","saveSubscription","console","requestUnSubscribe"],"sources":["../src/notification/api.ts"],"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"],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.js","names":["fetcher","m2mNotifications_v1","requestUpdateNotificationStatusToRead","_ref","_asyncToGenerator","token","id","updateNotificationStatus","method","body","JSON","stringify","status","_x","_x2","apply","arguments","requestSubscribe","_ref2","serviceId","input","error","saveSubscription","_objectSpread","console","_x3","_x4","_x5","requestUnSubscribe","_ref3","_x6","_x7","_x8"],"sources":["../src/notification/api.ts"],"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"],"mappings":";;;;;;;AAAA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,mBAAmB,QAAQ,mCAAmC;AAGvE,OAAO,IAAMC,qCAAqC;EAAA,IAAAC,IAAA,GAAAC,iBAAA,CAAG,WACnDC,KAAa,EACbC,EAAU,EACP;IACH,MAAMN,OAAO,CACXC,mBAAmB,CAACM,wBAAwB,CAAC;MAC3CD;IACF,CAAC,CAAC,EACF;MACEE,MAAM,EAAE,KAAK;MACbH,KAAK;MACLI,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;QAAEC,MAAM,EAAE;MAAO,CAAC;IACzC,CAAC,CACF;EACH,CAAC;EAAA,gBAdYV,qCAAqCA,CAAAW,EAAA,EAAAC,GAAA;IAAA,OAAAX,IAAA,CAAAY,KAAA,OAAAC,SAAA;EAAA;AAAA,GAcjD;AAED,OAAO,IAAMC,gBAAgB;EAAA,IAAAC,KAAA,GAAAd,iBAAA,CAAG,WAC9BC,KAAa,EACbc,SAAiB,EACjBC,KAAsE,EACnE;IACH,IAAM;MAAEC;IAAM,CAAC,SAASrB,OAAO,CAACC,mBAAmB,CAACqB,gBAAgB,EAAE,EAAE;MACtEd,MAAM,EAAE,MAAM;MACdH,KAAK;MACLI,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAAY,aAAA,CAAAA,aAAA,KACfH,KAAK;QACRD,SAAS;QACTP,MAAM,EAAE;MAAY;IAExB,CAAC,CAAC;IACF,IAAIS,KAAK,EAAE;MACTG,OAAO,CAACH,KAAK,CAACA,KAAK,CAAC;IACtB;EACF,CAAC;EAAA,gBAjBYJ,gBAAgBA,CAAAQ,GAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAAT,KAAA,CAAAH,KAAA,OAAAC,SAAA;EAAA;AAAA,GAiB5B;AAED,OAAO,IAAMY,kBAAkB;EAAA,IAAAC,KAAA,GAAAzB,iBAAA,CAAG,WAChCC,KAAa,EACbc,SAAiB,EACjBC,KAAsE,EACnE;IACH,IAAM;MAAEC;IAAM,CAAC,SAASrB,OAAO,CAACC,mBAAmB,CAACqB,gBAAgB,EAAE,EAAE;MACtEd,MAAM,EAAE,MAAM;MACdH,KAAK;MACLI,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAAY,aAAA,CAAAA,aAAA,KACfH,KAAK;QACRD,SAAS;QACTP,MAAM,EAAE;MAAQ;IAEpB,CAAC,CAAC;IACF,IAAIS,KAAK,EAAE;MACTG,OAAO,CAACH,KAAK,CAACA,KAAK,CAAC;IACtB;EACF,CAAC;EAAA,gBAjBYO,kBAAkBA,CAAAE,GAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAAH,KAAA,CAAAd,KAAA,OAAAC,SAAA;EAAA;AAAA,GAiB9B"}
|
package/notification/domain.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface ResourceSubscription {
|
|
|
12
12
|
resourceSelectType: "specific" | "any";
|
|
13
13
|
resourceId: string;
|
|
14
14
|
}
|
|
15
|
-
export
|
|
15
|
+
export type SubscriptionStatus = "default" | "subscribed" | "denied";
|
|
16
16
|
export interface Subscription {
|
|
17
17
|
userId: string;
|
|
18
18
|
serviceId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../src/notification/domain.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,UAAU,GAAG,KAAK,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../src/notification/domain.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,UAAU,GAAG,KAAK,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,MAAM,EAAE,kBAAkB,CAAC;CAC5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/notification/index.ts"],"sourcesContent":["export * from \"./domain\";\nexport * from \"./api\";\nexport * from \"./ServiceIdProvider\";\nexport * from \"./NotificationProvider\";\n"],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/notification/index.ts"],"sourcesContent":["export * from \"./domain\";\nexport * from \"./api\";\nexport * from \"./ServiceIdProvider\";\nexport * from \"./NotificationProvider\";\n"],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,OAAO;AACrB,cAAc,qBAAqB;AACnC,cAAc,wBAAwB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "m2m-components",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"main": "cjs/index.js",
|
|
5
5
|
"module": "index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -86,25 +86,25 @@
|
|
|
86
86
|
"react": "^18.0.0"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
|
-
"@babel/cli": "^7.
|
|
90
|
-
"@babel/core": "^7.
|
|
89
|
+
"@babel/cli": "^7.21.0",
|
|
90
|
+
"@babel/core": "^7.21.0",
|
|
91
91
|
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
92
|
-
"@babel/plugin-proposal-decorators": "^7.
|
|
93
|
-
"@babel/preset-env": "^7.
|
|
92
|
+
"@babel/plugin-proposal-decorators": "^7.21.0",
|
|
93
|
+
"@babel/preset-env": "^7.20.2",
|
|
94
94
|
"@babel/preset-react": "^7.16.7",
|
|
95
|
-
"@babel/preset-typescript": "^7.
|
|
95
|
+
"@babel/preset-typescript": "^7.21.0",
|
|
96
96
|
"@mui/icons-material": "^5.8.4",
|
|
97
|
-
"@mui/material": "^5.
|
|
98
|
-
"@rollup/plugin-babel": "^5.3.
|
|
99
|
-
"@rollup/plugin-node-resolve": "^13.
|
|
100
|
-
"@rollup/plugin-typescript": "^8.3.
|
|
101
|
-
"@testing-library/jest-dom": "^5.16.
|
|
97
|
+
"@mui/material": "^5.11.12",
|
|
98
|
+
"@rollup/plugin-babel": "^5.3.1",
|
|
99
|
+
"@rollup/plugin-node-resolve": "^13.3.0",
|
|
100
|
+
"@rollup/plugin-typescript": "^8.3.4",
|
|
101
|
+
"@testing-library/jest-dom": "^5.16.5",
|
|
102
102
|
"@testing-library/react": "^13.3.0",
|
|
103
|
-
"@testing-library/react-hooks": "^8.0.
|
|
104
|
-
"@types/jest": "^27.
|
|
103
|
+
"@testing-library/react-hooks": "^8.0.1",
|
|
104
|
+
"@types/jest": "^27.5.2",
|
|
105
105
|
"@types/node": "^17.0.5",
|
|
106
|
-
"@types/react": "^18.0.
|
|
107
|
-
"@types/react-dom": "^18.0.
|
|
106
|
+
"@types/react": "^18.0.28",
|
|
107
|
+
"@types/react-dom": "^18.0.11",
|
|
108
108
|
"@typescript-eslint/eslint-plugin": "^5.9.1",
|
|
109
109
|
"@typescript-eslint/parser": "^5.9.1",
|
|
110
110
|
"concurrently": "^6.5.1",
|
|
@@ -112,16 +112,16 @@
|
|
|
112
112
|
"eslint": "^8.7.0",
|
|
113
113
|
"eslint-config-prettier": "^8.3.0",
|
|
114
114
|
"eslint-plugin-react": "^7.29.4",
|
|
115
|
-
"eslint-plugin-react-hooks": "^4.
|
|
115
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
116
116
|
"jest": "^27.5.1",
|
|
117
117
|
"matsuri-hooks": "^0.0.5",
|
|
118
118
|
"matsuri-ui": "^10.6.1",
|
|
119
119
|
"prettier": "^2.5.1",
|
|
120
120
|
"react": "^18.2.0",
|
|
121
121
|
"react-dom": "^18.2.0",
|
|
122
|
-
"rollup": "^2.67.
|
|
123
|
-
"ts-jest": "^27.1.
|
|
124
|
-
"typescript": "^4.
|
|
125
|
-
"vite": "^2.
|
|
122
|
+
"rollup": "^2.67.3",
|
|
123
|
+
"ts-jest": "^27.1.5",
|
|
124
|
+
"typescript": "^4.9.5",
|
|
125
|
+
"vite": "^2.9.15"
|
|
126
126
|
}
|
|
127
127
|
}
|
package/storage/client.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
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
2
|
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
|
-
|
|
5
3
|
import { StorageClient } from "./lib/client";
|
|
6
|
-
|
|
7
4
|
class M2mStorageClient extends StorageClient {}
|
|
8
|
-
|
|
9
5
|
var context = {};
|
|
6
|
+
|
|
10
7
|
/**
|
|
11
8
|
* Get the connected storage client.
|
|
12
9
|
* @param timeout
|
|
13
10
|
* @default 5000
|
|
14
11
|
*/
|
|
15
|
-
|
|
16
12
|
var getStorage = /*#__PURE__*/function () {
|
|
17
13
|
var _ref = _asyncToGenerator(function* () {
|
|
18
14
|
var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5000;
|
|
@@ -21,15 +17,12 @@ var getStorage = /*#__PURE__*/function () {
|
|
|
21
17
|
reject(new Error("Timeout: M2mStorageClient could not connect. Please call m2mStorageClient.init() before using m2mStorageClient."));
|
|
22
18
|
}, timeout);
|
|
23
19
|
var storage = context.storage;
|
|
24
|
-
|
|
25
20
|
if (storage) {
|
|
26
21
|
window.clearTimeout(rejectTimer);
|
|
27
22
|
resolve(storage);
|
|
28
23
|
}
|
|
29
|
-
|
|
30
24
|
var timer = window.setInterval(() => {
|
|
31
25
|
var storage = context.storage;
|
|
32
|
-
|
|
33
26
|
if (storage) {
|
|
34
27
|
window.clearTimeout(rejectTimer);
|
|
35
28
|
window.clearInterval(timer);
|
|
@@ -40,34 +33,27 @@ var getStorage = /*#__PURE__*/function () {
|
|
|
40
33
|
yield storage.onConnect();
|
|
41
34
|
return storage;
|
|
42
35
|
});
|
|
43
|
-
|
|
44
36
|
return function getStorage() {
|
|
45
37
|
return _ref.apply(this, arguments);
|
|
46
38
|
};
|
|
47
39
|
}();
|
|
48
|
-
|
|
49
40
|
var M2M_STORAGE_HUB_URL = "https://hub.m2msystems.cloud/";
|
|
50
41
|
var M2M_STORAGE_HUB_URL_DEV = "https://m2m-components-storage-hub-dev.netlify.app/";
|
|
51
|
-
|
|
52
42
|
var initStorageClient = options => {
|
|
53
43
|
if (context.storage) {
|
|
54
44
|
throw new Error("M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times.");
|
|
55
45
|
}
|
|
56
|
-
|
|
57
46
|
var storage = new M2mStorageClient((options === null || options === void 0 ? void 0 : options.env) === "production" ? M2M_STORAGE_HUB_URL : M2M_STORAGE_HUB_URL_DEV);
|
|
58
47
|
context.storage = storage;
|
|
59
48
|
};
|
|
60
|
-
|
|
61
49
|
export var m2mStorageClient = {
|
|
62
50
|
init: initStorageClient,
|
|
63
51
|
getStorage: getStorage
|
|
64
52
|
};
|
|
65
53
|
export var M2M_AUTH_TOKEN_KEY = "M2M_APP_AUTH_TOKEN";
|
|
66
|
-
|
|
67
54
|
var getAuthTokenCache = () => {
|
|
68
55
|
return window.localStorage.getItem(M2M_AUTH_TOKEN_KEY);
|
|
69
56
|
};
|
|
70
|
-
|
|
71
57
|
var getAuthToken = /*#__PURE__*/function () {
|
|
72
58
|
var _ref2 = _asyncToGenerator(function* () {
|
|
73
59
|
try {
|
|
@@ -79,16 +65,13 @@ var getAuthToken = /*#__PURE__*/function () {
|
|
|
79
65
|
return getAuthTokenCache();
|
|
80
66
|
}
|
|
81
67
|
});
|
|
82
|
-
|
|
83
68
|
return function getAuthToken() {
|
|
84
69
|
return _ref2.apply(this, arguments);
|
|
85
70
|
};
|
|
86
71
|
}();
|
|
87
|
-
|
|
88
72
|
var setAuthToken = /*#__PURE__*/function () {
|
|
89
73
|
var _ref3 = _asyncToGenerator(function* (token) {
|
|
90
74
|
window.localStorage.setItem(M2M_AUTH_TOKEN_KEY, token);
|
|
91
|
-
|
|
92
75
|
try {
|
|
93
76
|
var storage = yield getStorage();
|
|
94
77
|
yield storage.set(M2M_AUTH_TOKEN_KEY, token);
|
|
@@ -96,16 +79,13 @@ var setAuthToken = /*#__PURE__*/function () {
|
|
|
96
79
|
console.warn(error);
|
|
97
80
|
}
|
|
98
81
|
});
|
|
99
|
-
|
|
100
82
|
return function setAuthToken(_x) {
|
|
101
83
|
return _ref3.apply(this, arguments);
|
|
102
84
|
};
|
|
103
85
|
}();
|
|
104
|
-
|
|
105
86
|
var clearAuthToken = /*#__PURE__*/function () {
|
|
106
87
|
var _ref4 = _asyncToGenerator(function* () {
|
|
107
88
|
window.localStorage.removeItem(M2M_AUTH_TOKEN_KEY);
|
|
108
|
-
|
|
109
89
|
try {
|
|
110
90
|
var storage = yield getStorage();
|
|
111
91
|
yield storage.del(M2M_AUTH_TOKEN_KEY);
|
|
@@ -113,12 +93,10 @@ var clearAuthToken = /*#__PURE__*/function () {
|
|
|
113
93
|
console.warn(error);
|
|
114
94
|
}
|
|
115
95
|
});
|
|
116
|
-
|
|
117
96
|
return function clearAuthToken() {
|
|
118
97
|
return _ref4.apply(this, arguments);
|
|
119
98
|
};
|
|
120
99
|
}();
|
|
121
|
-
|
|
122
100
|
export var m2mAuthTokenApi = {
|
|
123
101
|
get: getAuthToken,
|
|
124
102
|
getCache: getAuthTokenCache,
|
package/storage/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["StorageClient","M2mStorageClient","context","getStorage","timeout","storage","Promise","resolve","reject","rejectTimer","window","setTimeout","Error","clearTimeout","timer","setInterval","clearInterval","onConnect","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"],"sources":["../src/storage/client.ts"],"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 = async (timeout = 5000) => {\n const storage = await 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 resolve(storage);\n }\n\n const timer = window.setInterval(() => {\n const storage = context.storage;\n if (storage) {\n window.clearTimeout(rejectTimer);\n window.clearInterval(timer);\n resolve(storage);\n }\n }, 200);\n });\n\n await storage.onConnect();\n\n return storage;\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"],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","names":["StorageClient","M2mStorageClient","context","getStorage","_ref","_asyncToGenerator","timeout","arguments","length","undefined","storage","Promise","resolve","reject","rejectTimer","window","setTimeout","Error","clearTimeout","timer","setInterval","clearInterval","onConnect","apply","M2M_STORAGE_HUB_URL","M2M_STORAGE_HUB_URL_DEV","initStorageClient","options","env","m2mStorageClient","init","M2M_AUTH_TOKEN_KEY","getAuthTokenCache","localStorage","getItem","getAuthToken","_ref2","autuToken","get","error","console","warn","setAuthToken","_ref3","token","setItem","set","_x","clearAuthToken","_ref4","removeItem","del","m2mAuthTokenApi","getCache","clear"],"sources":["../src/storage/client.ts"],"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 = async (timeout = 5000) => {\n const storage = await 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 resolve(storage);\n }\n\n const timer = window.setInterval(() => {\n const storage = context.storage;\n if (storage) {\n window.clearTimeout(rejectTimer);\n window.clearInterval(timer);\n resolve(storage);\n }\n }, 200);\n });\n\n await storage.onConnect();\n\n return storage;\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"],"mappings":"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"}
|
package/storage/hub.js
CHANGED
package/storage/hub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub.js","names":["init","initM2mStorageHub","permissions","m2mStorageHub"],"sources":["../src/storage/hub.ts"],"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"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"file":"hub.js","names":["init","initM2mStorageHub","permissions","m2mStorageHub"],"sources":["../src/storage/hub.ts"],"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"],"mappings":"AAAA,SAASA,IAAI,QAAQ,WAAW;AAMhC;AACA;AACA;AACA,IAAMC,iBAAiB,GAAIC,WAAmC,IAAK;EACjEF,IAAI,CAACE,WAAW,CAAC;AACnB,CAAC;AAED,OAAO,IAAMC,aAAa,GAAG;EAC3BH,IAAI,EAAEC;AACR,CAAC"}
|
package/storage/lib/client.js
CHANGED
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
var generateUUID = () => {
|
|
5
5
|
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
|
|
6
6
|
var r = Math.random() * 16 | 0,
|
|
7
|
-
|
|
7
|
+
v = c == "x" ? r : r & 0x3 | 0x8;
|
|
8
8
|
return v.toString(16);
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
|
|
12
11
|
export class StorageClient {
|
|
13
12
|
constructor(url, opts) {
|
|
14
13
|
this.id = void 0;
|
|
@@ -33,18 +32,15 @@ export class StorageClient {
|
|
|
33
32
|
var frame = this.createFrame(url);
|
|
34
33
|
this.hub = frame.contentWindow;
|
|
35
34
|
}
|
|
36
|
-
|
|
37
35
|
onConnect() {
|
|
38
36
|
if (this.connected) {
|
|
39
37
|
return Promise.resolve();
|
|
40
38
|
} else if (this.closed) {
|
|
41
39
|
return Promise.reject(new Error("StorageClient has closed."));
|
|
42
40
|
}
|
|
43
|
-
|
|
44
41
|
if (!this.requests.connect) {
|
|
45
42
|
this.requests.connect = [];
|
|
46
43
|
}
|
|
47
|
-
|
|
48
44
|
return new Promise((resolve, reject) => {
|
|
49
45
|
var timeout = setTimeout(function () {
|
|
50
46
|
reject(new Error("StorageClient could not connect."));
|
|
@@ -56,102 +52,78 @@ export class StorageClient {
|
|
|
56
52
|
});
|
|
57
53
|
});
|
|
58
54
|
}
|
|
59
|
-
|
|
60
55
|
set(key, value) {
|
|
61
56
|
return this.request("set", {
|
|
62
57
|
key: key,
|
|
63
58
|
value: value
|
|
64
59
|
});
|
|
65
60
|
}
|
|
66
|
-
|
|
67
61
|
get() {
|
|
68
62
|
for (var _len = arguments.length, keys = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
69
63
|
keys[_key] = arguments[_key];
|
|
70
64
|
}
|
|
71
|
-
|
|
72
65
|
return this.request("get", {
|
|
73
66
|
keys
|
|
74
67
|
});
|
|
75
68
|
}
|
|
76
|
-
|
|
77
69
|
del() {
|
|
78
70
|
for (var _len2 = arguments.length, keys = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
79
71
|
keys[_key2] = arguments[_key2];
|
|
80
72
|
}
|
|
81
|
-
|
|
82
73
|
return this.request("del", {
|
|
83
74
|
keys
|
|
84
75
|
});
|
|
85
76
|
}
|
|
86
|
-
|
|
87
77
|
clear() {
|
|
88
78
|
return this.request("clear");
|
|
89
79
|
}
|
|
90
|
-
|
|
91
80
|
getKeys() {
|
|
92
81
|
this.request("getKeys");
|
|
93
82
|
}
|
|
94
|
-
|
|
95
83
|
close() {
|
|
96
84
|
var frame = document.getElementById(this.frameId);
|
|
97
|
-
|
|
98
85
|
if (frame && frame.parentNode) {
|
|
99
86
|
frame.parentNode.removeChild(frame);
|
|
100
87
|
}
|
|
101
|
-
|
|
102
88
|
window.removeEventListener("message", this.listener, false);
|
|
103
89
|
this.connected = false;
|
|
104
90
|
this.closed = true;
|
|
105
91
|
}
|
|
106
|
-
|
|
107
92
|
listener(message) {
|
|
108
93
|
var i, error, response;
|
|
109
|
-
|
|
110
94
|
if (this.closed || !message.data || typeof message.data !== "string") {
|
|
111
95
|
return;
|
|
112
96
|
}
|
|
113
|
-
|
|
114
97
|
var origin = message.origin;
|
|
115
98
|
if (origin !== this.origin) return;
|
|
116
|
-
|
|
117
99
|
if (message.data === "cross-storage:unavailable") {
|
|
118
100
|
if (!this.closed) this.close();
|
|
119
101
|
if (!this.requests.connect) return;
|
|
120
102
|
error = new Error("Closing StorageClient. Could not access localStorage in StorageHub.");
|
|
121
|
-
|
|
122
103
|
for (i = 0; i < this.requests.connect.length; i++) {
|
|
123
104
|
this.requests.connect[i](error);
|
|
124
105
|
}
|
|
125
|
-
|
|
126
106
|
return;
|
|
127
107
|
}
|
|
128
|
-
|
|
129
108
|
if (message.data.indexOf("cross-storage:") !== -1 && !this.connected) {
|
|
130
109
|
this.connected = true;
|
|
131
110
|
if (!this.requests.connect) return;
|
|
132
|
-
|
|
133
111
|
for (i = 0; i < this.requests.connect.length; i++) {
|
|
134
112
|
this.requests.connect[i](error);
|
|
135
113
|
}
|
|
136
|
-
|
|
137
114
|
delete this.requests.connect;
|
|
138
115
|
}
|
|
139
|
-
|
|
140
116
|
if (message.data === "cross-storage:ready") return;
|
|
141
|
-
|
|
142
117
|
try {
|
|
143
118
|
response = JSON.parse(message.data);
|
|
144
119
|
} catch (e) {
|
|
145
120
|
return;
|
|
146
121
|
}
|
|
147
|
-
|
|
148
122
|
if (!response.id) return;
|
|
149
|
-
|
|
150
123
|
if (this.requests[response.id]) {
|
|
151
124
|
this.requests[response.id](response.error, response.result);
|
|
152
125
|
}
|
|
153
126
|
}
|
|
154
|
-
|
|
155
127
|
createFrame(url) {
|
|
156
128
|
var frame = window.document.createElement("iframe");
|
|
157
129
|
frame.id = this.frameId;
|
|
@@ -162,14 +134,13 @@ export class StorageClient {
|
|
|
162
134
|
window.document.body.appendChild(frame);
|
|
163
135
|
frame.src = url;
|
|
164
136
|
return frame;
|
|
165
|
-
}
|
|
166
|
-
|
|
137
|
+
}
|
|
167
138
|
|
|
139
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
168
140
|
request(method, params) {
|
|
169
141
|
if (this.closed) {
|
|
170
142
|
return Promise.reject(new Error("StorageClient has closed."));
|
|
171
143
|
}
|
|
172
|
-
|
|
173
144
|
this.count++;
|
|
174
145
|
var req = {
|
|
175
146
|
id: this.id + ":" + this.count,
|
|
@@ -182,14 +153,12 @@ export class StorageClient {
|
|
|
182
153
|
delete this.requests[req.id];
|
|
183
154
|
reject(new Error("Timeout: StorageClient could not perform " + req.method));
|
|
184
155
|
}, this.timeout);
|
|
185
|
-
|
|
186
156
|
this.requests[req.id] = (err, result) => {
|
|
187
157
|
clearTimeout(timeout);
|
|
188
158
|
delete this.requests[req.id];
|
|
189
159
|
if (err) return reject(new Error(err));
|
|
190
160
|
resolve(result);
|
|
191
161
|
};
|
|
192
|
-
|
|
193
162
|
if (this.hub) {
|
|
194
163
|
this.hub.postMessage(JSON.stringify(req), this.origin);
|
|
195
164
|
} else {
|
|
@@ -197,6 +166,5 @@ export class StorageClient {
|
|
|
197
166
|
}
|
|
198
167
|
});
|
|
199
168
|
}
|
|
200
|
-
|
|
201
169
|
}
|
|
202
170
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","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"],"sources":["../../src/storage/lib/client.ts"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","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","_len","arguments","length","keys","Array","_key","del","_len2","_key2","clear","getKeys","close","document","getElementById","parentNode","removeChild","removeEventListener","message","i","error","response","data","indexOf","JSON","parse","e","result","createElement","style","display","position","top","left","body","appendChild","src","method","params","req","postMessage","stringify"],"sources":["../../src/storage/lib/client.ts"],"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"],"mappings":"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"}
|
package/storage/lib/hub.d.ts
CHANGED
package/storage/lib/hub.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/storage/lib/hub.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/storage/lib/hub.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,KAAK,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAMD;;;GAGG;AACH,eAAO,MAAM,IAAI,gBAAiB,UAAU,EAAE,SAI7C,CAAC"}
|