m2m-components 3.3.0 → 3.3.1-alpha-aef9a40.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.
- package/MenuBaseElement.d.mts +24 -0
- package/MenuBaseElement.d.ts +12 -8
- package/MenuBaseElement.js +177 -102
- package/MenuBaseElement.js.map +1 -1
- package/MenuBaseElement.mjs +9 -0
- package/MenuBaseElement.mjs.map +1 -0
- package/{cjs/storage/lib/hub.js → chunk-2X6HV5XJ.mjs} +21 -40
- package/chunk-2X6HV5XJ.mjs.map +1 -0
- package/chunk-3YQYBFME.mjs +102 -0
- package/chunk-3YQYBFME.mjs.map +1 -0
- package/chunk-5FHEMJGG.mjs +97 -0
- package/chunk-5FHEMJGG.mjs.map +1 -0
- package/{cjs/domains.js → chunk-B7STDXYN.mjs} +8 -8
- package/chunk-B7STDXYN.mjs.map +1 -0
- package/chunk-BFPL6AIR.mjs +74 -0
- package/chunk-BFPL6AIR.mjs.map +1 -0
- package/chunk-CB56CZRA.mjs +8491 -0
- package/chunk-CB56CZRA.mjs.map +1 -0
- package/chunk-CEBJL6ZD.mjs +22 -0
- package/chunk-CEBJL6ZD.mjs.map +1 -0
- package/{cjs/endpoints/matsuri-forms.v1.js → chunk-DYNNGZMQ.mjs} +94 -185
- package/chunk-DYNNGZMQ.mjs.map +1 -0
- package/chunk-FDRD4YS4.mjs +34 -0
- package/chunk-FDRD4YS4.mjs.map +1 -0
- package/{cjs/endpoints/m2m-users.v1.js → chunk-GMPQV5TL.mjs} +136 -267
- package/chunk-GMPQV5TL.mjs.map +1 -0
- package/chunk-H66U7VZB.mjs +9 -0
- package/chunk-H66U7VZB.mjs.map +1 -0
- package/chunk-IH72EYIB.mjs +9 -0
- package/chunk-IH72EYIB.mjs.map +1 -0
- package/chunk-IOZIVEOV.mjs +2 -0
- package/chunk-IOZIVEOV.mjs.map +1 -0
- package/{cjs/endpoints/m2m-notifications.v1.js → chunk-ISOF65DB.mjs} +42 -63
- package/chunk-ISOF65DB.mjs.map +1 -0
- package/chunk-JUBOAWNR.mjs +61 -0
- package/chunk-JUBOAWNR.mjs.map +1 -0
- package/chunk-LDSJ6KYP.mjs +28 -0
- package/chunk-LDSJ6KYP.mjs.map +1 -0
- package/chunk-LYVJL4T5.mjs +78 -0
- package/chunk-LYVJL4T5.mjs.map +1 -0
- package/chunk-M4ZBTA6A.mjs +19 -0
- package/chunk-M4ZBTA6A.mjs.map +1 -0
- package/chunk-NO6ZGO5P.mjs +17 -0
- package/chunk-NO6ZGO5P.mjs.map +1 -0
- package/chunk-UCJSCAN5.mjs +45 -0
- package/chunk-UCJSCAN5.mjs.map +1 -0
- package/chunk-UM6FAKR4.mjs +152 -0
- package/chunk-UM6FAKR4.mjs.map +1 -0
- package/{cjs/storage/lib/client.js → chunk-UOPEIK22.mjs} +45 -50
- package/chunk-UOPEIK22.mjs.map +1 -0
- package/chunk-V4ROE7DI.mjs +54 -0
- package/chunk-V4ROE7DI.mjs.map +1 -0
- package/chunk-VNCVFELM.mjs +83 -0
- package/chunk-VNCVFELM.mjs.map +1 -0
- package/chunk-YUHXVW6K.mjs +2 -0
- package/chunk-YUHXVW6K.mjs.map +1 -0
- package/domains.d.mts +11 -0
- package/domains.d.ts +3 -2
- package/domains.js +31 -1
- package/domains.js.map +1 -1
- package/domains.mjs +9 -0
- package/domains.mjs.map +1 -0
- package/endpoints/m2m-notifications.d.mts +7 -0
- package/endpoints/m2m-notifications.d.ts +5 -3
- package/endpoints/m2m-notifications.js +129 -4
- package/endpoints/m2m-notifications.js.map +1 -1
- package/endpoints/m2m-notifications.mjs +12 -0
- package/endpoints/m2m-notifications.mjs.map +1 -0
- package/endpoints/m2m-notifications.v1.d.mts +1 -0
- package/endpoints/m2m-notifications.v1.d.ts +1 -51
- package/endpoints/m2m-notifications.v1.js +95 -102
- package/endpoints/m2m-notifications.v1.js.map +1 -1
- package/endpoints/m2m-notifications.v1.mjs +23 -0
- package/endpoints/m2m-notifications.v1.mjs.map +1 -0
- package/endpoints/m2m-users.d.mts +7 -0
- package/endpoints/m2m-users.d.ts +5 -3
- package/endpoints/m2m-users.js +407 -4
- package/endpoints/m2m-users.js.map +1 -1
- package/endpoints/m2m-users.mjs +12 -0
- package/endpoints/m2m-users.mjs.map +1 -0
- package/endpoints/m2m-users.v1.d.mts +1 -0
- package/endpoints/m2m-users.v1.d.ts +1 -221
- package/endpoints/m2m-users.v1.js +327 -475
- package/endpoints/m2m-users.v1.js.map +1 -1
- package/endpoints/m2m-users.v1.mjs +69 -0
- package/endpoints/m2m-users.v1.mjs.map +1 -0
- package/endpoints/matsuri-forms.d.mts +7 -0
- package/endpoints/matsuri-forms.d.ts +5 -3
- package/endpoints/matsuri-forms.js +291 -4
- package/endpoints/matsuri-forms.js.map +1 -1
- package/endpoints/matsuri-forms.mjs +12 -0
- package/endpoints/matsuri-forms.mjs.map +1 -0
- package/endpoints/matsuri-forms.v1.d.mts +1 -0
- package/endpoints/matsuri-forms.v1.d.ts +1 -177
- package/endpoints/matsuri-forms.v1.js +231 -332
- package/endpoints/matsuri-forms.v1.js.map +1 -1
- package/endpoints/matsuri-forms.v1.mjs +49 -0
- package/endpoints/matsuri-forms.v1.mjs.map +1 -0
- package/feedback/MultipleTextQuestion.d.mts +6 -0
- package/feedback/MultipleTextQuestion.d.ts +6 -3
- package/feedback/MultipleTextQuestion.js +43 -10
- package/feedback/MultipleTextQuestion.js.map +1 -1
- package/feedback/MultipleTextQuestion.mjs +9 -0
- package/feedback/MultipleTextQuestion.mjs.map +1 -0
- package/feedback/SelectQuestion.d.mts +6 -0
- package/feedback/SelectQuestion.d.ts +6 -3
- package/feedback/SelectQuestion.js +55 -18
- package/feedback/SelectQuestion.js.map +1 -1
- package/feedback/SelectQuestion.mjs +9 -0
- package/feedback/SelectQuestion.mjs.map +1 -0
- package/feedback/getRandomId.d.mts +6 -0
- package/feedback/getRandomId.d.ts +3 -2
- package/feedback/getRandomId.js +31 -4
- package/feedback/getRandomId.js.map +1 -1
- package/feedback/getRandomId.mjs +9 -0
- package/feedback/getRandomId.mjs.map +1 -0
- package/feedback/index.d.mts +15 -0
- package/feedback/index.d.ts +7 -5
- package/feedback/index.js +8558 -166
- package/feedback/index.js.map +1 -1
- package/feedback/index.mjs +13 -0
- package/feedback/index.mjs.map +1 -0
- package/global.d.d.mts +4 -0
- package/global.d.d.ts +4 -0
- package/global.d.js +20 -0
- package/global.d.js.map +1 -0
- package/global.d.mjs +2 -0
- package/global.d.mjs.map +1 -0
- package/index.d.mts +6 -0
- package/index.d.ts +6 -9
- package/index.js +421 -8
- package/index.js.map +1 -1
- package/index.mjs +23 -0
- package/index.mjs.map +1 -0
- package/initM2mComponents.d.mts +7 -0
- package/initM2mComponents.d.ts +3 -6
- package/initM2mComponents.js +242 -3
- package/initM2mComponents.js.map +1 -1
- package/initM2mComponents.mjs +11 -0
- package/initM2mComponents.mjs.map +1 -0
- package/m2m-apps-menu.d.mts +16 -0
- package/m2m-apps-menu.d.ts +10 -5
- package/m2m-apps-menu.js +265 -43
- package/m2m-apps-menu.js.map +1 -1
- package/m2m-apps-menu.mjs +11 -0
- package/m2m-apps-menu.mjs.map +1 -0
- package/m2m-notifications.v1-0186835d.d.ts +73 -0
- package/m2m-user-menu.d.mts +17 -0
- package/m2m-user-menu.d.ts +10 -5
- package/m2m-user-menu.js +327 -53
- package/m2m-user-menu.js.map +1 -1
- package/m2m-user-menu.mjs +13 -0
- package/m2m-user-menu.mjs.map +1 -0
- package/m2m-users.v1-c78c72cf.d.ts +289 -0
- package/matsuri-forms.v1-0ffee104.d.ts +225 -0
- package/notification/NotificationProvider.d.mts +18 -0
- package/notification/NotificationProvider.d.ts +10 -7
- package/notification/NotificationProvider.js +185 -51
- package/notification/NotificationProvider.js.map +1 -1
- package/notification/NotificationProvider.mjs +15 -0
- package/notification/NotificationProvider.mjs.map +1 -0
- package/notification/ServiceIdProvider.d.mts +10 -0
- package/notification/ServiceIdProvider.d.ts +8 -5
- package/notification/ServiceIdProvider.js +56 -18
- package/notification/ServiceIdProvider.js.map +1 -1
- package/notification/ServiceIdProvider.mjs +11 -0
- package/notification/ServiceIdProvider.mjs.map +1 -0
- package/notification/api.d.mts +7 -0
- package/notification/api.d.ts +7 -5
- package/notification/api.js +157 -59
- package/notification/api.js.map +1 -1
- package/notification/api.mjs +14 -0
- package/notification/api.mjs.map +1 -0
- package/notification/domain.d.mts +24 -0
- package/notification/domain.d.ts +6 -5
- package/notification/domain.js +19 -1
- package/notification/domain.js.map +1 -1
- package/notification/domain.mjs +3 -0
- package/notification/domain.mjs.map +1 -0
- package/notification/index.d.mts +6 -0
- package/notification/index.d.ts +6 -5
- package/notification/index.js +271 -4
- package/notification/index.js.map +1 -1
- package/notification/index.mjs +30 -0
- package/notification/index.mjs.map +1 -0
- package/package.json +43 -103
- package/releases/m2m-releases-link.d.mts +11 -0
- package/releases/m2m-releases-link.d.ts +9 -5
- package/releases/m2m-releases-link.js +97 -54
- package/releases/m2m-releases-link.js.map +1 -1
- package/releases/m2m-releases-link.mjs +69 -0
- package/releases/m2m-releases-link.mjs.map +1 -0
- package/releases/t.d.mts +3 -0
- package/releases/t.d.ts +3 -2
- package/releases/t.js +31 -1
- package/releases/t.js.map +1 -1
- package/releases/t.mjs +9 -0
- package/releases/t.mjs.map +1 -0
- package/storage/client.d.mts +20 -0
- package/storage/client.d.ts +8 -6
- package/storage/client.js +260 -85
- package/storage/client.js.map +1 -1
- package/storage/client.mjs +14 -0
- package/storage/client.mjs.map +1 -0
- package/storage/hub.d.mts +9 -0
- package/storage/hub.d.ts +6 -4
- package/storage/hub.js +120 -7
- package/storage/hub.js.map +1 -1
- package/storage/hub.mjs +10 -0
- package/storage/hub.mjs.map +1 -0
- package/storage/lib/client.d.mts +27 -0
- package/storage/lib/client.d.ts +4 -5
- package/storage/lib/client.js +76 -57
- package/storage/lib/client.js.map +1 -1
- package/storage/lib/client.mjs +9 -0
- package/storage/lib/client.mjs.map +1 -0
- package/storage/lib/hub.d.mts +15 -0
- package/storage/lib/hub.d.ts +4 -4
- package/storage/lib/hub.js +57 -46
- package/storage/lib/hub.js.map +1 -1
- package/storage/lib/hub.mjs +9 -0
- package/storage/lib/hub.mjs.map +1 -0
- package/storage/useM2mAuth.d.mts +25 -0
- package/storage/useM2mAuth.d.ts +10 -8
- package/storage/useM2mAuth.js +184 -74
- package/storage/useM2mAuth.js.map +1 -1
- package/storage/useM2mAuth.mjs +14 -0
- package/storage/useM2mAuth.mjs.map +1 -0
- package/storage/useM2mAuth.test.d.mts +2 -0
- package/storage/useM2mAuth.test.d.ts +2 -0
- package/storage/useM2mAuth.test.js +60906 -0
- package/storage/useM2mAuth.test.js.map +1 -0
- package/storage/useM2mAuth.test.mjs +60682 -0
- package/storage/useM2mAuth.test.mjs.map +1 -0
- package/cjs/MenuBaseElement.js +0 -207
- package/cjs/MenuBaseElement.js.map +0 -1
- package/cjs/domains.js.map +0 -1
- package/cjs/endpoints/m2m-notifications.js +0 -15
- package/cjs/endpoints/m2m-notifications.js.map +0 -1
- package/cjs/endpoints/m2m-notifications.v1.js.map +0 -1
- package/cjs/endpoints/m2m-users.js +0 -15
- package/cjs/endpoints/m2m-users.js.map +0 -1
- package/cjs/endpoints/m2m-users.v1.js.map +0 -1
- package/cjs/endpoints/matsuri-forms.js +0 -15
- package/cjs/endpoints/matsuri-forms.js.map +0 -1
- package/cjs/endpoints/matsuri-forms.v1.js.map +0 -1
- package/cjs/feedback/MultipleTextQuestion.js +0 -19
- package/cjs/feedback/MultipleTextQuestion.js.map +0 -1
- package/cjs/feedback/SelectQuestion.js +0 -27
- package/cjs/feedback/SelectQuestion.js.map +0 -1
- package/cjs/feedback/getRandomId.js +0 -12
- package/cjs/feedback/getRandomId.js.map +0 -1
- package/cjs/feedback/index.js +0 -185
- package/cjs/feedback/index.js.map +0 -1
- package/cjs/index.js +0 -11
- package/cjs/index.js.map +0 -1
- package/cjs/initM2mComponents.js +0 -17
- package/cjs/initM2mComponents.js.map +0 -1
- package/cjs/m2m-apps-menu.js +0 -95
- package/cjs/m2m-apps-menu.js.map +0 -1
- package/cjs/m2m-user-menu.js +0 -91
- package/cjs/m2m-user-menu.js.map +0 -1
- package/cjs/notification/NotificationProvider.js +0 -84
- package/cjs/notification/NotificationProvider.js.map +0 -1
- package/cjs/notification/ServiceIdProvider.js +0 -33
- package/cjs/notification/ServiceIdProvider.js.map +0 -1
- package/cjs/notification/api.js +0 -55
- package/cjs/notification/api.js.map +0 -1
- package/cjs/notification/domain.js +0 -6
- package/cjs/notification/domain.js.map +0 -1
- package/cjs/notification/index.js +0 -50
- package/cjs/notification/index.js.map +0 -1
- package/cjs/releases/m2m-releases-link.js +0 -99
- package/cjs/releases/m2m-releases-link.js.map +0 -1
- package/cjs/releases/t.js +0 -8
- package/cjs/releases/t.js.map +0 -1
- package/cjs/storage/client.js +0 -89
- package/cjs/storage/client.js.map +0 -1
- package/cjs/storage/hub.js +0 -19
- package/cjs/storage/hub.js.map +0 -1
- package/cjs/storage/lib/client.js.map +0 -1
- package/cjs/storage/lib/hub.js.map +0 -1
- package/cjs/storage/useM2mAuth.js +0 -97
- package/cjs/storage/useM2mAuth.js.map +0 -1
- package/endpoints/m2m-notifications.d.ts.map +0 -1
- package/endpoints/m2m-notifications.v1.d.ts.map +0 -1
- package/endpoints/m2m-users.d.ts.map +0 -1
- package/endpoints/m2m-users.v1.d.ts.map +0 -1
- package/endpoints/matsuri-forms.d.ts.map +0 -1
- package/endpoints/matsuri-forms.v1.d.ts.map +0 -1
- package/feedback/MultipleTextQuestion.d.ts.map +0 -1
- package/feedback/SelectQuestion.d.ts.map +0 -1
- package/feedback/getRandomId.d.ts.map +0 -1
- package/feedback/index.d.ts.map +0 -1
- package/notification/NotificationProvider.d.ts.map +0 -1
- package/notification/ServiceIdProvider.d.ts.map +0 -1
- package/notification/api.d.ts.map +0 -1
- package/notification/domain.d.ts.map +0 -1
- package/notification/index.d.ts.map +0 -1
- package/releases/m2m-releases-link.d.ts.map +0 -1
- package/releases/t.d.ts.map +0 -1
- package/storage/client.d.ts.map +0 -1
- package/storage/hub.d.ts.map +0 -1
- package/storage/lib/client.d.ts.map +0 -1
- package/storage/lib/hub.d.ts.map +0 -1
- package/storage/useM2mAuth.d.ts.map +0 -1
package/storage/lib/client.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
declare class StorageClient {
|
|
2
2
|
id: string;
|
|
3
3
|
frameId: string;
|
|
4
4
|
origin: string;
|
|
5
|
-
requests:
|
|
6
|
-
[key: string]: any;
|
|
7
|
-
};
|
|
5
|
+
requests: Record<string, any>;
|
|
8
6
|
connected: boolean;
|
|
9
7
|
closed: boolean;
|
|
10
8
|
count: number;
|
|
@@ -25,4 +23,5 @@ export declare class StorageClient {
|
|
|
25
23
|
private createFrame;
|
|
26
24
|
private request;
|
|
27
25
|
}
|
|
28
|
-
|
|
26
|
+
|
|
27
|
+
export { StorageClient };
|
package/storage/lib/client.js
CHANGED
|
@@ -1,24 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
'use client'
|
|
2
|
+
"use strict";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/storage/lib/client.ts
|
|
22
|
+
var client_exports = {};
|
|
23
|
+
__export(client_exports, {
|
|
24
|
+
StorageClient: () => StorageClient
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(client_exports);
|
|
4
27
|
var generateUUID = () => {
|
|
5
|
-
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function
|
|
6
|
-
|
|
7
|
-
v = c == "x" ? r : r & 0x3 | 0x8;
|
|
28
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
|
|
29
|
+
const r = Math.random() * 16 | 0, v = c == "x" ? r : r & 3 | 8;
|
|
8
30
|
return v.toString(16);
|
|
9
31
|
});
|
|
10
32
|
};
|
|
11
|
-
|
|
33
|
+
var StorageClient = class {
|
|
12
34
|
constructor(url, opts) {
|
|
13
|
-
this.id = void 0;
|
|
14
|
-
this.frameId = void 0;
|
|
15
|
-
this.origin = void 0;
|
|
16
|
-
this.requests = void 0;
|
|
17
|
-
this.connected = void 0;
|
|
18
|
-
this.closed = void 0;
|
|
19
|
-
this.count = void 0;
|
|
20
|
-
this.timeout = void 0;
|
|
21
|
-
this.hub = void 0;
|
|
22
35
|
opts = opts || {};
|
|
23
36
|
this.id = generateUUID();
|
|
24
37
|
this.frameId = opts.frameId || "CrossStorageClient-" + this.id;
|
|
@@ -27,9 +40,9 @@ export class StorageClient {
|
|
|
27
40
|
this.connected = false;
|
|
28
41
|
this.closed = false;
|
|
29
42
|
this.count = 0;
|
|
30
|
-
this.timeout = opts.timeout ||
|
|
43
|
+
this.timeout = opts.timeout || 5e3;
|
|
31
44
|
window.addEventListener("message", this.listener.bind(this), false);
|
|
32
|
-
|
|
45
|
+
const frame = this.createFrame(url);
|
|
33
46
|
this.hub = frame.contentWindow;
|
|
34
47
|
}
|
|
35
48
|
onConnect() {
|
|
@@ -42,37 +55,28 @@ export class StorageClient {
|
|
|
42
55
|
this.requests.connect = [];
|
|
43
56
|
}
|
|
44
57
|
return new Promise((resolve, reject) => {
|
|
45
|
-
|
|
58
|
+
const timeout = setTimeout(function() {
|
|
46
59
|
reject(new Error("StorageClient could not connect."));
|
|
47
60
|
}, this.timeout);
|
|
48
|
-
this.requests.connect.push(err => {
|
|
61
|
+
this.requests.connect.push((err) => {
|
|
49
62
|
clearTimeout(timeout);
|
|
50
|
-
if (err)
|
|
51
|
-
|
|
63
|
+
if (err)
|
|
64
|
+
return reject(err);
|
|
65
|
+
resolve(void 0);
|
|
52
66
|
});
|
|
53
67
|
});
|
|
54
68
|
}
|
|
55
69
|
set(key, value) {
|
|
56
70
|
return this.request("set", {
|
|
57
|
-
key
|
|
58
|
-
value
|
|
71
|
+
key,
|
|
72
|
+
value
|
|
59
73
|
});
|
|
60
74
|
}
|
|
61
|
-
get() {
|
|
62
|
-
|
|
63
|
-
keys[_key] = arguments[_key];
|
|
64
|
-
}
|
|
65
|
-
return this.request("get", {
|
|
66
|
-
keys
|
|
67
|
-
});
|
|
75
|
+
get(...keys) {
|
|
76
|
+
return this.request("get", { keys });
|
|
68
77
|
}
|
|
69
|
-
del() {
|
|
70
|
-
|
|
71
|
-
keys[_key2] = arguments[_key2];
|
|
72
|
-
}
|
|
73
|
-
return this.request("del", {
|
|
74
|
-
keys
|
|
75
|
-
});
|
|
78
|
+
del(...keys) {
|
|
79
|
+
return this.request("del", { keys });
|
|
76
80
|
}
|
|
77
81
|
clear() {
|
|
78
82
|
return this.request("clear");
|
|
@@ -81,7 +85,7 @@ export class StorageClient {
|
|
|
81
85
|
this.request("getKeys");
|
|
82
86
|
}
|
|
83
87
|
close() {
|
|
84
|
-
|
|
88
|
+
const frame = document.getElementById(this.frameId);
|
|
85
89
|
if (frame && frame.parentNode) {
|
|
86
90
|
frame.parentNode.removeChild(frame);
|
|
87
91
|
}
|
|
@@ -90,16 +94,21 @@ export class StorageClient {
|
|
|
90
94
|
this.closed = true;
|
|
91
95
|
}
|
|
92
96
|
listener(message) {
|
|
93
|
-
|
|
97
|
+
let i, error, response;
|
|
94
98
|
if (this.closed || !message.data || typeof message.data !== "string") {
|
|
95
99
|
return;
|
|
96
100
|
}
|
|
97
|
-
|
|
98
|
-
if (origin !== this.origin)
|
|
101
|
+
const origin = message.origin;
|
|
102
|
+
if (origin !== this.origin)
|
|
103
|
+
return;
|
|
99
104
|
if (message.data === "cross-storage:unavailable") {
|
|
100
|
-
if (!this.closed)
|
|
101
|
-
|
|
102
|
-
|
|
105
|
+
if (!this.closed)
|
|
106
|
+
this.close();
|
|
107
|
+
if (!this.requests.connect)
|
|
108
|
+
return;
|
|
109
|
+
error = new Error(
|
|
110
|
+
"Closing StorageClient. Could not access localStorage in StorageHub."
|
|
111
|
+
);
|
|
103
112
|
for (i = 0; i < this.requests.connect.length; i++) {
|
|
104
113
|
this.requests.connect[i](error);
|
|
105
114
|
}
|
|
@@ -107,25 +116,28 @@ export class StorageClient {
|
|
|
107
116
|
}
|
|
108
117
|
if (message.data.indexOf("cross-storage:") !== -1 && !this.connected) {
|
|
109
118
|
this.connected = true;
|
|
110
|
-
if (!this.requests.connect)
|
|
119
|
+
if (!this.requests.connect)
|
|
120
|
+
return;
|
|
111
121
|
for (i = 0; i < this.requests.connect.length; i++) {
|
|
112
122
|
this.requests.connect[i](error);
|
|
113
123
|
}
|
|
114
124
|
delete this.requests.connect;
|
|
115
125
|
}
|
|
116
|
-
if (message.data === "cross-storage:ready")
|
|
126
|
+
if (message.data === "cross-storage:ready")
|
|
127
|
+
return;
|
|
117
128
|
try {
|
|
118
129
|
response = JSON.parse(message.data);
|
|
119
130
|
} catch (e) {
|
|
120
131
|
return;
|
|
121
132
|
}
|
|
122
|
-
if (!response.id)
|
|
133
|
+
if (!response.id)
|
|
134
|
+
return;
|
|
123
135
|
if (this.requests[response.id]) {
|
|
124
136
|
this.requests[response.id](response.error, response.result);
|
|
125
137
|
}
|
|
126
138
|
}
|
|
127
139
|
createFrame(url) {
|
|
128
|
-
|
|
140
|
+
const frame = window.document.createElement("iframe");
|
|
129
141
|
frame.id = this.frameId;
|
|
130
142
|
frame.style.display = "none";
|
|
131
143
|
frame.style.position = "absolute";
|
|
@@ -135,28 +147,31 @@ export class StorageClient {
|
|
|
135
147
|
frame.src = url;
|
|
136
148
|
return frame;
|
|
137
149
|
}
|
|
138
|
-
|
|
139
150
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
140
151
|
request(method, params) {
|
|
141
152
|
if (this.closed) {
|
|
142
153
|
return Promise.reject(new Error("StorageClient has closed."));
|
|
143
154
|
}
|
|
144
155
|
this.count++;
|
|
145
|
-
|
|
156
|
+
const req = {
|
|
146
157
|
id: this.id + ":" + this.count,
|
|
147
158
|
method: "cross-storage:" + method,
|
|
148
|
-
params
|
|
159
|
+
params
|
|
149
160
|
};
|
|
150
161
|
return new Promise((resolve, reject) => {
|
|
151
|
-
|
|
152
|
-
if (!this.requests[req.id])
|
|
162
|
+
const timeout = window.setTimeout(() => {
|
|
163
|
+
if (!this.requests[req.id])
|
|
164
|
+
return;
|
|
153
165
|
delete this.requests[req.id];
|
|
154
|
-
reject(
|
|
166
|
+
reject(
|
|
167
|
+
new Error("Timeout: StorageClient could not perform " + req.method)
|
|
168
|
+
);
|
|
155
169
|
}, this.timeout);
|
|
156
170
|
this.requests[req.id] = (err, result) => {
|
|
157
171
|
clearTimeout(timeout);
|
|
158
172
|
delete this.requests[req.id];
|
|
159
|
-
if (err)
|
|
173
|
+
if (err)
|
|
174
|
+
return reject(new Error(err));
|
|
160
175
|
resolve(result);
|
|
161
176
|
};
|
|
162
177
|
if (this.hub) {
|
|
@@ -166,5 +181,9 @@ export class StorageClient {
|
|
|
166
181
|
}
|
|
167
182
|
});
|
|
168
183
|
}
|
|
169
|
-
}
|
|
184
|
+
};
|
|
185
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
186
|
+
0 && (module.exports = {
|
|
187
|
+
StorageClient
|
|
188
|
+
});
|
|
170
189
|
//# 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","_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":"AAAA;AACA;AACA;AACA,IAAMA,YAAY,GAAGA,CAAA,KAAM;EACzB,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAE,UAAUC,CAAC,EAAE;IAC1E,IAAMC,CAAC,GAAIC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAI,CAAC;MAChCC,CAAC,GAAGJ,CAAC,IAAI,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAI,GAAG;IAEpC,OAAOG,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;EACvB,CAAC,CAAC;AACJ,CAAC;AACD,OAAO,MAAMC,aAAa,CAAC;EAazBC,WAAWA,CAACC,GAAW,EAAEC,IAA6C,EAAE;IAAA,KAZxEC,EAAE;IAAA,KACFC,OAAO;IAAA,KACPC,MAAM;IAAA,KACNC,QAAQ;IAAA,KAGRC,SAAS;IAAA,KACTC,MAAM;IAAA,KACNC,KAAK;IAAA,KACLC,OAAO;IAAA,KACPC,GAAG;IAGDT,IAAI,GAAGA,IAAI,IAAI,CAAC,CAAC;IAEjB,IAAI,CAACC,EAAE,GAAGZ,YAAY,CAAC,CAAC;IACxB,IAAI,CAACa,OAAO,GAAGF,IAAI,CAACE,OAAO,IAAI,qBAAqB,GAAG,IAAI,CAACD,EAAE;IAC9D,IAAI,CAACE,MAAM,GAAG,IAAIO,GAAG,CAACX,GAAG,CAAC,CAACI,MAAM;IACjC,IAAI,CAACC,QAAQ,GAAG,CAAC,CAAC;IAClB,IAAI,CAACC,SAAS,GAAG,KAAK;IACtB,IAAI,CAACC,MAAM,GAAG,KAAK;IACnB,IAAI,CAACC,KAAK,GAAG,CAAC;IACd,IAAI,CAACC,OAAO,GAAGR,IAAI,CAACQ,OAAO,IAAI,IAAI;IAEnCG,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAACC,QAAQ,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IAEnE,IAAMC,KAAK,GAAG,IAAI,CAACC,WAAW,CAACjB,GAAG,CAAC;IACnC,IAAI,CAACU,GAAG,GAAGM,KAAK,CAACE,aAAa;EAChC;EAEAC,SAASA,CAAA,EAAG;IACV,IAAI,IAAI,CAACb,SAAS,EAAE;MAClB,OAAOc,OAAO,CAACC,OAAO,CAAC,CAAC;IAC1B,CAAC,MAAM,IAAI,IAAI,CAACd,MAAM,EAAE;MACtB,OAAOa,OAAO,CAACE,MAAM,CAAC,IAAIC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/D;IAEA,IAAI,CAAC,IAAI,CAAClB,QAAQ,CAACmB,OAAO,EAAE;MAC1B,IAAI,CAACnB,QAAQ,CAACmB,OAAO,GAAG,EAAE;IAC5B;IAEA,OAAO,IAAIJ,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,IAAMb,OAAO,GAAGgB,UAAU,CAAC,YAAY;QACrCH,MAAM,CAAC,IAAIC,KAAK,CAAC,kCAAkC,CAAC,CAAC;MACvD,CAAC,EAAE,IAAI,CAACd,OAAO,CAAC;MAEhB,IAAI,CAACJ,QAAQ,CAACmB,OAAO,CAACE,IAAI,CAAEC,GAAW,IAAK;QAC1CC,YAAY,CAACnB,OAAO,CAAC;QACrB,IAAIkB,GAAG,EAAE,OAAOL,MAAM,CAACK,GAAG,CAAC;QAE3BN,OAAO,CAACQ,SAAS,CAAC;MACpB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEAC,GAAGA,CAACC,GAAW,EAAEC,KAAa,EAAE;IAC9B,OAAO,IAAI,CAACC,OAAO,CAAC,KAAK,EAAE;MACzBF,GAAG,EAAEA,GAAG;MACRC,KAAK,EAAEA;IACT,CAAC,CAAC;EACJ;EAEAE,GAAGA,CAAA,EAAoB;IAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAhBC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IACT,OAAO,IAAI,CAACP,OAAO,CAAC,KAAK,EAAE;MAAEK;IAAK,CAAC,CAAC;EACtC;EAEAG,GAAGA,CAAA,EAAoB;IAAA,SAAAC,KAAA,GAAAN,SAAA,CAAAC,MAAA,EAAhBC,IAAI,OAAAC,KAAA,CAAAG,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAJL,IAAI,CAAAK,KAAA,IAAAP,SAAA,CAAAO,KAAA;IAAA;IACT,OAAO,IAAI,CAACV,OAAO,CAAC,KAAK,EAAE;MAAEK;IAAK,CAAC,CAAC;EACtC;EAEAM,KAAKA,CAAA,EAAG;IACN,OAAO,IAAI,CAACX,OAAO,CAAC,OAAO,CAAC;EAC9B;EAEAY,OAAOA,CAAA,EAAG;IACR,IAAI,CAACZ,OAAO,CAAC,SAAS,CAAC;EACzB;EAEAa,KAAKA,CAAA,EAAG;IACN,IAAM9B,KAAK,GAAG+B,QAAQ,CAACC,cAAc,CAAC,IAAI,CAAC7C,OAAO,CAAC;IACnD,IAAIa,KAAK,IAAIA,KAAK,CAACiC,UAAU,EAAE;MAC7BjC,KAAK,CAACiC,UAAU,CAACC,WAAW,CAAClC,KAAK,CAAC;IACrC;IAEAJ,MAAM,CAACuC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACrC,QAAQ,EAAE,KAAK,CAAC;IAE3D,IAAI,CAACR,SAAS,GAAG,KAAK;IACtB,IAAI,CAACC,MAAM,GAAG,IAAI;EACpB;EAEQO,QAAQA,CAACsC,OAAqB,EAAE;IACtC,IAAIC,CAAC,EAAEC,KAAK,EAAEC,QAAQ;IAEtB,IAAI,IAAI,CAAChD,MAAM,IAAI,CAAC6C,OAAO,CAACI,IAAI,IAAI,OAAOJ,OAAO,CAACI,IAAI,KAAK,QAAQ,EAAE;MACpE;IACF;IAEA,IAAMpD,MAAM,GAAGgD,OAAO,CAAChD,MAAM;IAE7B,IAAIA,MAAM,KAAK,IAAI,CAACA,MAAM,EAAE;IAE5B,IAAIgD,OAAO,CAACI,IAAI,KAAK,2BAA2B,EAAE;MAChD,IAAI,CAAC,IAAI,CAACjD,MAAM,EAAE,IAAI,CAACuC,KAAK,CAAC,CAAC;MAC9B,IAAI,CAAC,IAAI,CAACzC,QAAQ,CAACmB,OAAO,EAAE;MAE5B8B,KAAK,GAAG,IAAI/B,KAAK,CACf,qEACF,CAAC;MACD,KAAK8B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAChD,QAAQ,CAACmB,OAAO,CAACa,MAAM,EAAEgB,CAAC,EAAE,EAAE;QACjD,IAAI,CAAChD,QAAQ,CAACmB,OAAO,CAAC6B,CAAC,CAAC,CAACC,KAAK,CAAC;MACjC;MAEA;IACF;IAEA,IAAIF,OAAO,CAACI,IAAI,CAACC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAACnD,SAAS,EAAE;MACpE,IAAI,CAACA,SAAS,GAAG,IAAI;MACrB,IAAI,CAAC,IAAI,CAACD,QAAQ,CAACmB,OAAO,EAAE;MAE5B,KAAK6B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAChD,QAAQ,CAACmB,OAAO,CAACa,MAAM,EAAEgB,CAAC,EAAE,EAAE;QACjD,IAAI,CAAChD,QAAQ,CAACmB,OAAO,CAAC6B,CAAC,CAAC,CAACC,KAAK,CAAC;MACjC;MACA,OAAO,IAAI,CAACjD,QAAQ,CAACmB,OAAO;IAC9B;IAEA,IAAI4B,OAAO,CAACI,IAAI,KAAK,qBAAqB,EAAE;IAE5C,IAAI;MACFD,QAAQ,GAAGG,IAAI,CAACC,KAAK,CAACP,OAAO,CAACI,IAAI,CAAC;IACrC,CAAC,CAAC,OAAOI,CAAC,EAAE;MACV;IACF;IAEA,IAAI,CAACL,QAAQ,CAACrD,EAAE,EAAE;IAElB,IAAI,IAAI,CAACG,QAAQ,CAACkD,QAAQ,CAACrD,EAAE,CAAC,EAAE;MAC9B,IAAI,CAACG,QAAQ,CAACkD,QAAQ,CAACrD,EAAE,CAAC,CAACqD,QAAQ,CAACD,KAAK,EAAEC,QAAQ,CAACM,MAAM,CAAC;IAC7D;EACF;EAEQ5C,WAAWA,CAACjB,GAAW,EAAE;IAC/B,IAAMgB,KAAK,GAAGJ,MAAM,CAACmC,QAAQ,CAACe,aAAa,CAAC,QAAQ,CAAC;IACrD9C,KAAK,CAACd,EAAE,GAAG,IAAI,CAACC,OAAO;IAEvBa,KAAK,CAAC+C,KAAK,CAACC,OAAO,GAAG,MAAM;IAC5BhD,KAAK,CAAC+C,KAAK,CAACE,QAAQ,GAAG,UAAU;IACjCjD,KAAK,CAAC+C,KAAK,CAACG,GAAG,GAAG,QAAQ;IAC1BlD,KAAK,CAAC+C,KAAK,CAACI,IAAI,GAAG,QAAQ;IAE3BvD,MAAM,CAACmC,QAAQ,CAACqB,IAAI,CAACC,WAAW,CAACrD,KAAK,CAAC;IACvCA,KAAK,CAACsD,GAAG,GAAGtE,GAAG;IAEf,OAAOgB,KAAK;EACd;;EAEA;EACQiB,OAAOA,CAACsC,MAAc,EAAEC,MAAW,EAAE;IAC3C,IAAI,IAAI,CAACjE,MAAM,EAAE;MACf,OAAOa,OAAO,CAACE,MAAM,CAAC,IAAIC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/D;IAEA,IAAI,CAACf,KAAK,EAAE;IAEZ,IAAMiE,GAAG,GAAG;MACVvE,EAAE,EAAE,IAAI,CAACA,EAAE,GAAG,GAAG,GAAG,IAAI,CAACM,KAAK;MAC9B+D,MAAM,EAAE,gBAAgB,GAAGA,MAAM;MACjCC,MAAM,EAAEA;IACV,CAAC;IAED,OAAO,IAAIpD,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,IAAMb,OAAO,GAAGG,MAAM,CAACa,UAAU,CAAC,MAAM;QACtC,IAAI,CAAC,IAAI,CAACpB,QAAQ,CAACoE,GAAG,CAACvE,EAAE,CAAC,EAAE;QAE5B,OAAO,IAAI,CAACG,QAAQ,CAACoE,GAAG,CAACvE,EAAE,CAAC;QAC5BoB,MAAM,CACJ,IAAIC,KAAK,CAAC,2CAA2C,GAAGkD,GAAG,CAACF,MAAM,CACpE,CAAC;MACH,CAAC,EAAE,IAAI,CAAC9D,OAAO,CAAC;MAEhB,IAAI,CAACJ,QAAQ,CAACoE,GAAG,CAACvE,EAAE,CAAC,GAAG,CAACyB,GAAW,EAAEkC,MAAc,KAAK;QACvDjC,YAAY,CAACnB,OAAO,CAAC;QACrB,OAAO,IAAI,CAACJ,QAAQ,CAACoE,GAAG,CAACvE,EAAE,CAAC;QAC5B,IAAIyB,GAAG,EAAE,OAAOL,MAAM,CAAC,IAAIC,KAAK,CAACI,GAAG,CAAC,CAAC;QACtCN,OAAO,CAACwC,MAAM,CAAC;MACjB,CAAC;MAED,IAAI,IAAI,CAACnD,GAAG,EAAE;QACZ,IAAI,CAACA,GAAG,CAACgE,WAAW,CAAChB,IAAI,CAACiB,SAAS,CAACF,GAAG,CAAC,EAAE,IAAI,CAACrE,MAAM,CAAC;MACxD,CAAC,MAAM;QACLkB,MAAM,CAAC,IAAIC,KAAK,CAAC,uBAAuB,CAAC,CAAC;MAC5C;IACF,CAAC,CAAC;EACJ;AACF"}
|
|
1
|
+
{"version":3,"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: Record<string, any>;\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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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* この実装はcross-storageほぼそのままです。
|
|
3
|
+
*/
|
|
4
|
+
type Method = "get" | "set" | "del" | "getKeys" | "clear";
|
|
5
|
+
interface Permission {
|
|
6
|
+
origin: RegExp;
|
|
7
|
+
allow: Method[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Do not use this directly. This specifications are subject to significant change.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
declare const init: (permissions: Permission[]) => void;
|
|
14
|
+
|
|
15
|
+
export { Permission, init };
|
package/storage/lib/hub.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* この実装はcross-storageほぼそのままです。
|
|
3
3
|
*/
|
|
4
4
|
type Method = "get" | "set" | "del" | "getKeys" | "clear";
|
|
5
|
-
|
|
5
|
+
interface Permission {
|
|
6
6
|
origin: RegExp;
|
|
7
7
|
allow: Method[];
|
|
8
8
|
}
|
|
@@ -10,6 +10,6 @@ export interface Permission {
|
|
|
10
10
|
* Do not use this directly. This specifications are subject to significant change.
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
declare const init: (permissions: Permission[]) => void;
|
|
14
|
+
|
|
15
|
+
export { Permission, init };
|
package/storage/lib/hub.js
CHANGED
|
@@ -1,29 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
'use client'
|
|
2
|
+
"use strict";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
4
20
|
|
|
21
|
+
// src/storage/lib/hub.ts
|
|
22
|
+
var hub_exports = {};
|
|
23
|
+
__export(hub_exports, {
|
|
24
|
+
init: () => init
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(hub_exports);
|
|
5
27
|
var context = {};
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Do not use this directly. This specifications are subject to significant change.
|
|
9
|
-
* @internal
|
|
10
|
-
*/
|
|
11
|
-
export var init = permissions => {
|
|
28
|
+
var init = (permissions) => {
|
|
12
29
|
context.permissions = permissions;
|
|
13
30
|
window.addEventListener("message", listener, false);
|
|
14
31
|
window.parent.postMessage("cross-storage:ready", "*");
|
|
15
32
|
};
|
|
16
33
|
var permitted = (origin, method) => {
|
|
17
|
-
|
|
34
|
+
const available = ["get", "set", "del", "clear", "getKeys"];
|
|
18
35
|
if (!available.includes(method)) {
|
|
19
36
|
return false;
|
|
20
37
|
}
|
|
21
|
-
if (context.permissions ===
|
|
38
|
+
if (context.permissions === void 0) {
|
|
22
39
|
return false;
|
|
23
40
|
}
|
|
24
|
-
for (
|
|
25
|
-
|
|
26
|
-
|
|
41
|
+
for (let i = 0; i < context.permissions.length; i++) {
|
|
42
|
+
const entry = context.permissions[i];
|
|
43
|
+
const match = entry.origin.test(origin);
|
|
27
44
|
if (match && entry.allow.includes(method)) {
|
|
28
45
|
return true;
|
|
29
46
|
}
|
|
@@ -31,29 +48,27 @@ var permitted = (origin, method) => {
|
|
|
31
48
|
return false;
|
|
32
49
|
};
|
|
33
50
|
var methods = {
|
|
34
|
-
get: params => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
for (
|
|
38
|
-
|
|
51
|
+
get: (params) => {
|
|
52
|
+
const storage = window.localStorage;
|
|
53
|
+
const result = [];
|
|
54
|
+
for (let i = 0; i < params.keys.length; i++) {
|
|
55
|
+
const value = storage.getItem(params.keys[i]) || null;
|
|
39
56
|
result.push(value);
|
|
40
57
|
}
|
|
41
|
-
// Todo: このパターン好きじゃない
|
|
42
58
|
return result.length > 1 ? result : result[0];
|
|
43
59
|
},
|
|
44
|
-
set: params => {
|
|
60
|
+
set: (params) => {
|
|
45
61
|
window.localStorage.setItem(params.key, params.value);
|
|
46
62
|
},
|
|
47
|
-
del: params => {
|
|
48
|
-
// eslint-disable-next-line no-var
|
|
63
|
+
del: (params) => {
|
|
49
64
|
for (var i = 0; i < params.keys.length; i++) {
|
|
50
65
|
window.localStorage.removeItem(params.keys[i]);
|
|
51
66
|
}
|
|
52
67
|
},
|
|
53
68
|
getKeys: () => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
for (
|
|
69
|
+
const keys = [];
|
|
70
|
+
const length = window.localStorage.length;
|
|
71
|
+
for (let i = 0; i < length; i++) {
|
|
57
72
|
keys.push(window.localStorage.key(i));
|
|
58
73
|
}
|
|
59
74
|
return keys;
|
|
@@ -62,26 +77,20 @@ var methods = {
|
|
|
62
77
|
window.localStorage.clear();
|
|
63
78
|
}
|
|
64
79
|
};
|
|
65
|
-
var listener = message => {
|
|
66
|
-
|
|
67
|
-
var origin = message.origin === "null" ? "file://" : message.origin;
|
|
68
|
-
|
|
69
|
-
// Handle polling for a ready message
|
|
80
|
+
var listener = (message) => {
|
|
81
|
+
const origin = message.origin === "null" ? "file://" : message.origin;
|
|
70
82
|
if (message.data === "cross-storage:poll") {
|
|
71
83
|
return window.parent.postMessage("cross-storage:ready", message.origin);
|
|
72
84
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var request = JSON.parse(message.data);
|
|
77
|
-
|
|
78
|
-
// Check whether request.method is a string
|
|
85
|
+
if (message.data === "cross-storage:ready")
|
|
86
|
+
return;
|
|
87
|
+
const request = JSON.parse(message.data);
|
|
79
88
|
if (!request || typeof request.method !== "string") {
|
|
80
89
|
return;
|
|
81
90
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
91
|
+
const method = request.method.split("cross-storage:")[1];
|
|
92
|
+
let error = "";
|
|
93
|
+
let result = void 0;
|
|
85
94
|
if (!method) {
|
|
86
95
|
return;
|
|
87
96
|
} else if (!permitted(origin, method)) {
|
|
@@ -93,14 +102,16 @@ var listener = message => {
|
|
|
93
102
|
error = err.message;
|
|
94
103
|
}
|
|
95
104
|
}
|
|
96
|
-
|
|
105
|
+
const response = JSON.stringify({
|
|
97
106
|
id: request.id,
|
|
98
|
-
error
|
|
99
|
-
result
|
|
107
|
+
error,
|
|
108
|
+
result
|
|
100
109
|
});
|
|
101
|
-
|
|
102
|
-
// postMessage requires that the target origin be set to "*" for "file://"
|
|
103
|
-
var targetOrigin = origin === "file://" ? "*" : origin;
|
|
110
|
+
const targetOrigin = origin === "file://" ? "*" : origin;
|
|
104
111
|
window.parent.postMessage(response, targetOrigin);
|
|
105
112
|
};
|
|
113
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
114
|
+
0 && (module.exports = {
|
|
115
|
+
init
|
|
116
|
+
});
|
|
106
117
|
//# sourceMappingURL=hub.js.map
|
package/storage/lib/hub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/storage/lib/hub.ts"],"sourcesContent":["/**\n * この実装はcross-storageほぼそのままです。\n */\ntype Method = \"get\" | \"set\" | \"del\" | \"getKeys\" | \"clear\";\n\nexport interface Permission {\n origin: RegExp;\n allow: Method[];\n}\n\nconst context: {\n permissions?: Permission[];\n} = {};\n\n/**\n * Do not use this directly. This specifications are subject to significant change.\n * @internal\n */\nexport const init = (permissions: Permission[]) => {\n context.permissions = permissions;\n window.addEventListener(\"message\", listener, false);\n window.parent.postMessage(\"cross-storage:ready\", \"*\");\n};\n\nconst permitted = (origin: string, method: Method) => {\n const available = [\"get\", \"set\", \"del\", \"clear\", \"getKeys\"];\n if (!available.includes(method)) {\n return false;\n }\n\n if (context.permissions === undefined) {\n return false;\n }\n\n for (let i = 0; i < context.permissions.length; i++) {\n const entry = context.permissions[i];\n const match = entry.origin.test(origin);\n if (match && entry.allow.includes(method)) {\n return true;\n }\n }\n return false;\n};\n\nconst methods: {\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key in Method]: Function;\n} = {\n get: (params: { keys: string[] }) => {\n const storage = window.localStorage;\n const result = [];\n for (let i = 0; i < params.keys.length; i++) {\n const value = storage.getItem(params.keys[i]) || null;\n result.push(value);\n }\n // Todo: このパターン好きじゃない\n return result.length > 1 ? result : result[0];\n },\n set: (params: { key: string; value: string }) => {\n window.localStorage.setItem(params.key, params.value);\n },\n del: (params: { keys: string[] }) => {\n // eslint-disable-next-line no-var\n for (var i = 0; i < params.keys.length; i++) {\n window.localStorage.removeItem(params.keys[i]);\n }\n },\n getKeys: () => {\n const keys = [];\n const length = window.localStorage.length;\n\n for (let i = 0; i < length; i++) {\n keys.push(window.localStorage.key(i));\n }\n\n return keys;\n },\n clear: () => {\n window.localStorage.clear();\n },\n};\n\ninterface Message {\n origin: string;\n data: string;\n}\n\nconst listener = (message: Message) => {\n // postMessage returns the string \"null\" as the origin for \"file://\"\n const origin = message.origin === \"null\" ? \"file://\" : message.origin;\n\n // Handle polling for a ready message\n if (message.data === \"cross-storage:poll\") {\n return window.parent.postMessage(\"cross-storage:ready\", message.origin);\n }\n\n // Ignore the ready message when viewing the hub directly\n if (message.data === \"cross-storage:ready\") return;\n\n const request: {\n id: string;\n method?: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n params: Object;\n } = JSON.parse(message.data);\n\n // Check whether request.method is a string\n if (!request || typeof request.method !== \"string\") {\n return;\n }\n\n const method = request.method.split(\"cross-storage:\")[1] as Method;\n\n let error = \"\";\n let result: string | undefined = undefined;\n\n if (!method) {\n return;\n } else if (!permitted(origin, method)) {\n error = \"Invalid permissions for \" + method;\n } else {\n try {\n result = methods[method](request.params);\n } catch (err) {\n error = (err as Error).message;\n }\n }\n\n const response = JSON.stringify({\n id: request.id,\n error: error,\n result: result,\n });\n\n // postMessage requires that the target origin be set to \"*\" for \"file://\"\n const targetOrigin = origin === \"file://\" ? \"*\" : origin;\n\n window.parent.postMessage(response, targetOrigin);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,IAAM,UAEF,CAAC;AAME,IAAM,OAAO,CAAC,gBAA8B;AACjD,UAAQ,cAAc;AACtB,SAAO,iBAAiB,WAAW,UAAU,KAAK;AAClD,SAAO,OAAO,YAAY,uBAAuB,GAAG;AACtD;AAEA,IAAM,YAAY,CAAC,QAAgB,WAAmB;AACpD,QAAM,YAAY,CAAC,OAAO,OAAO,OAAO,SAAS,SAAS;AAC1D,MAAI,CAAC,UAAU,SAAS,MAAM,GAAG;AAC/B,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,gBAAgB,QAAW;AACrC,WAAO;AAAA,EACT;AAEA,WAAS,IAAI,GAAG,IAAI,QAAQ,YAAY,QAAQ,KAAK;AACnD,UAAM,QAAQ,QAAQ,YAAY,CAAC;AACnC,UAAM,QAAQ,MAAM,OAAO,KAAK,MAAM;AACtC,QAAI,SAAS,MAAM,MAAM,SAAS,MAAM,GAAG;AACzC,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,UAGF;AAAA,EACF,KAAK,CAAC,WAA+B;AACnC,UAAM,UAAU,OAAO;AACvB,UAAM,SAAS,CAAC;AAChB,aAAS,IAAI,GAAG,IAAI,OAAO,KAAK,QAAQ,KAAK;AAC3C,YAAM,QAAQ,QAAQ,QAAQ,OAAO,KAAK,CAAC,CAAC,KAAK;AACjD,aAAO,KAAK,KAAK;AAAA,IACnB;AAEA,WAAO,OAAO,SAAS,IAAI,SAAS,OAAO,CAAC;AAAA,EAC9C;AAAA,EACA,KAAK,CAAC,WAA2C;AAC/C,WAAO,aAAa,QAAQ,OAAO,KAAK,OAAO,KAAK;AAAA,EACtD;AAAA,EACA,KAAK,CAAC,WAA+B;AAEnC,aAAS,IAAI,GAAG,IAAI,OAAO,KAAK,QAAQ,KAAK;AAC3C,aAAO,aAAa,WAAW,OAAO,KAAK,CAAC,CAAC;AAAA,IAC/C;AAAA,EACF;AAAA,EACA,SAAS,MAAM;AACb,UAAM,OAAO,CAAC;AACd,UAAM,SAAS,OAAO,aAAa;AAEnC,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC/B,WAAK,KAAK,OAAO,aAAa,IAAI,CAAC,CAAC;AAAA,IACtC;AAEA,WAAO;AAAA,EACT;AAAA,EACA,OAAO,MAAM;AACX,WAAO,aAAa,MAAM;AAAA,EAC5B;AACF;AAOA,IAAM,WAAW,CAAC,YAAqB;AAErC,QAAM,SAAS,QAAQ,WAAW,SAAS,YAAY,QAAQ;AAG/D,MAAI,QAAQ,SAAS,sBAAsB;AACzC,WAAO,OAAO,OAAO,YAAY,uBAAuB,QAAQ,MAAM;AAAA,EACxE;AAGA,MAAI,QAAQ,SAAS;AAAuB;AAE5C,QAAM,UAKF,KAAK,MAAM,QAAQ,IAAI;AAG3B,MAAI,CAAC,WAAW,OAAO,QAAQ,WAAW,UAAU;AAClD;AAAA,EACF;AAEA,QAAM,SAAS,QAAQ,OAAO,MAAM,gBAAgB,EAAE,CAAC;AAEvD,MAAI,QAAQ;AACZ,MAAI,SAA6B;AAEjC,MAAI,CAAC,QAAQ;AACX;AAAA,EACF,WAAW,CAAC,UAAU,QAAQ,MAAM,GAAG;AACrC,YAAQ,6BAA6B;AAAA,EACvC,OAAO;AACL,QAAI;AACF,eAAS,QAAQ,MAAM,EAAE,QAAQ,MAAM;AAAA,IACzC,SAAS,KAAK;AACZ,cAAS,IAAc;AAAA,IACzB;AAAA,EACF;AAEA,QAAM,WAAW,KAAK,UAAU;AAAA,IAC9B,IAAI,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,EACF,CAAC;AAGD,QAAM,eAAe,WAAW,YAAY,MAAM;AAElD,SAAO,OAAO,YAAY,UAAU,YAAY;AAClD;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
interface LoginInput {
|
|
5
|
+
email: string;
|
|
6
|
+
password: string;
|
|
7
|
+
}
|
|
8
|
+
interface AuthenticationState {
|
|
9
|
+
token: string;
|
|
10
|
+
authenticated: boolean;
|
|
11
|
+
login: (input: LoginInput) => Promise<{
|
|
12
|
+
token?: string;
|
|
13
|
+
error?: Error;
|
|
14
|
+
}>;
|
|
15
|
+
logout: () => void;
|
|
16
|
+
updateToken: (token: string) => Promise<{
|
|
17
|
+
error?: Error;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
20
|
+
declare const M2mAuthenticationProvider: ({ children, }: {
|
|
21
|
+
children: React.ReactNode;
|
|
22
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
23
|
+
declare const useAuth: () => AuthenticationState;
|
|
24
|
+
|
|
25
|
+
export { M2mAuthenticationProvider, useAuth };
|
package/storage/useM2mAuth.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
2
4
|
interface LoginInput {
|
|
3
5
|
email: string;
|
|
4
6
|
password: string;
|
|
5
7
|
}
|
|
6
|
-
|
|
8
|
+
interface AuthenticationState {
|
|
7
9
|
token: string;
|
|
8
10
|
authenticated: boolean;
|
|
9
11
|
login: (input: LoginInput) => Promise<{
|
|
@@ -14,10 +16,10 @@ type AuthenticationState = {
|
|
|
14
16
|
updateToken: (token: string) => Promise<{
|
|
15
17
|
error?: Error;
|
|
16
18
|
}>;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
+
}
|
|
20
|
+
declare const M2mAuthenticationProvider: ({ children, }: {
|
|
19
21
|
children: React.ReactNode;
|
|
20
|
-
}) =>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
23
|
+
declare const useAuth: () => AuthenticationState;
|
|
24
|
+
|
|
25
|
+
export { M2mAuthenticationProvider, useAuth };
|