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/client.js
CHANGED
|
@@ -1,106 +1,281 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
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);
|
|
6
20
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
// src/storage/client.ts
|
|
22
|
+
var client_exports = {};
|
|
23
|
+
__export(client_exports, {
|
|
24
|
+
M2M_AUTH_TOKEN_KEY: () => M2M_AUTH_TOKEN_KEY,
|
|
25
|
+
m2mAuthTokenApi: () => m2mAuthTokenApi,
|
|
26
|
+
m2mStorageClient: () => m2mStorageClient
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(client_exports);
|
|
29
|
+
|
|
30
|
+
// src/storage/lib/client.ts
|
|
31
|
+
var generateUUID = () => {
|
|
32
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
|
|
33
|
+
const r = Math.random() * 16 | 0, v = c == "x" ? r : r & 3 | 8;
|
|
34
|
+
return v.toString(16);
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
var StorageClient = class {
|
|
38
|
+
constructor(url, opts) {
|
|
39
|
+
opts = opts || {};
|
|
40
|
+
this.id = generateUUID();
|
|
41
|
+
this.frameId = opts.frameId || "CrossStorageClient-" + this.id;
|
|
42
|
+
this.origin = new URL(url).origin;
|
|
43
|
+
this.requests = {};
|
|
44
|
+
this.connected = false;
|
|
45
|
+
this.closed = false;
|
|
46
|
+
this.count = 0;
|
|
47
|
+
this.timeout = opts.timeout || 5e3;
|
|
48
|
+
window.addEventListener("message", this.listener.bind(this), false);
|
|
49
|
+
const frame = this.createFrame(url);
|
|
50
|
+
this.hub = frame.contentWindow;
|
|
51
|
+
}
|
|
52
|
+
onConnect() {
|
|
53
|
+
if (this.connected) {
|
|
54
|
+
return Promise.resolve();
|
|
55
|
+
} else if (this.closed) {
|
|
56
|
+
return Promise.reject(new Error("StorageClient has closed."));
|
|
57
|
+
}
|
|
58
|
+
if (!this.requests.connect) {
|
|
59
|
+
this.requests.connect = [];
|
|
60
|
+
}
|
|
61
|
+
return new Promise((resolve, reject) => {
|
|
62
|
+
const timeout = setTimeout(function() {
|
|
63
|
+
reject(new Error("StorageClient could not connect."));
|
|
64
|
+
}, this.timeout);
|
|
65
|
+
this.requests.connect.push((err) => {
|
|
66
|
+
clearTimeout(timeout);
|
|
67
|
+
if (err)
|
|
68
|
+
return reject(err);
|
|
69
|
+
resolve(void 0);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
set(key, value) {
|
|
74
|
+
return this.request("set", {
|
|
75
|
+
key,
|
|
76
|
+
value
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
get(...keys) {
|
|
80
|
+
return this.request("get", { keys });
|
|
81
|
+
}
|
|
82
|
+
del(...keys) {
|
|
83
|
+
return this.request("del", { keys });
|
|
84
|
+
}
|
|
85
|
+
clear() {
|
|
86
|
+
return this.request("clear");
|
|
87
|
+
}
|
|
88
|
+
getKeys() {
|
|
89
|
+
this.request("getKeys");
|
|
90
|
+
}
|
|
91
|
+
close() {
|
|
92
|
+
const frame = document.getElementById(this.frameId);
|
|
93
|
+
if (frame && frame.parentNode) {
|
|
94
|
+
frame.parentNode.removeChild(frame);
|
|
95
|
+
}
|
|
96
|
+
window.removeEventListener("message", this.listener, false);
|
|
97
|
+
this.connected = false;
|
|
98
|
+
this.closed = true;
|
|
99
|
+
}
|
|
100
|
+
listener(message) {
|
|
101
|
+
let i, error, response;
|
|
102
|
+
if (this.closed || !message.data || typeof message.data !== "string") {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const origin = message.origin;
|
|
106
|
+
if (origin !== this.origin)
|
|
107
|
+
return;
|
|
108
|
+
if (message.data === "cross-storage:unavailable") {
|
|
109
|
+
if (!this.closed)
|
|
110
|
+
this.close();
|
|
111
|
+
if (!this.requests.connect)
|
|
112
|
+
return;
|
|
113
|
+
error = new Error(
|
|
114
|
+
"Closing StorageClient. Could not access localStorage in StorageHub."
|
|
115
|
+
);
|
|
116
|
+
for (i = 0; i < this.requests.connect.length; i++) {
|
|
117
|
+
this.requests.connect[i](error);
|
|
118
|
+
}
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (message.data.indexOf("cross-storage:") !== -1 && !this.connected) {
|
|
122
|
+
this.connected = true;
|
|
123
|
+
if (!this.requests.connect)
|
|
124
|
+
return;
|
|
125
|
+
for (i = 0; i < this.requests.connect.length; i++) {
|
|
126
|
+
this.requests.connect[i](error);
|
|
127
|
+
}
|
|
128
|
+
delete this.requests.connect;
|
|
129
|
+
}
|
|
130
|
+
if (message.data === "cross-storage:ready")
|
|
131
|
+
return;
|
|
132
|
+
try {
|
|
133
|
+
response = JSON.parse(message.data);
|
|
134
|
+
} catch (e) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (!response.id)
|
|
138
|
+
return;
|
|
139
|
+
if (this.requests[response.id]) {
|
|
140
|
+
this.requests[response.id](response.error, response.result);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
createFrame(url) {
|
|
144
|
+
const frame = window.document.createElement("iframe");
|
|
145
|
+
frame.id = this.frameId;
|
|
146
|
+
frame.style.display = "none";
|
|
147
|
+
frame.style.position = "absolute";
|
|
148
|
+
frame.style.top = "-999px";
|
|
149
|
+
frame.style.left = "-999px";
|
|
150
|
+
window.document.body.appendChild(frame);
|
|
151
|
+
frame.src = url;
|
|
152
|
+
return frame;
|
|
153
|
+
}
|
|
154
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
155
|
+
request(method, params) {
|
|
156
|
+
if (this.closed) {
|
|
157
|
+
return Promise.reject(new Error("StorageClient has closed."));
|
|
158
|
+
}
|
|
159
|
+
this.count++;
|
|
160
|
+
const req = {
|
|
161
|
+
id: this.id + ":" + this.count,
|
|
162
|
+
method: "cross-storage:" + method,
|
|
163
|
+
params
|
|
164
|
+
};
|
|
165
|
+
return new Promise((resolve, reject) => {
|
|
166
|
+
const timeout = window.setTimeout(() => {
|
|
167
|
+
if (!this.requests[req.id])
|
|
168
|
+
return;
|
|
169
|
+
delete this.requests[req.id];
|
|
170
|
+
reject(
|
|
171
|
+
new Error("Timeout: StorageClient could not perform " + req.method)
|
|
172
|
+
);
|
|
173
|
+
}, this.timeout);
|
|
174
|
+
this.requests[req.id] = (err, result) => {
|
|
175
|
+
clearTimeout(timeout);
|
|
176
|
+
delete this.requests[req.id];
|
|
177
|
+
if (err)
|
|
178
|
+
return reject(new Error(err));
|
|
179
|
+
resolve(result);
|
|
180
|
+
};
|
|
181
|
+
if (this.hub) {
|
|
182
|
+
this.hub.postMessage(JSON.stringify(req), this.origin);
|
|
183
|
+
} else {
|
|
184
|
+
reject(new Error("Not found StorageHub."));
|
|
23
185
|
}
|
|
24
|
-
var timer = window.setInterval(() => {
|
|
25
|
-
var storage = context.storage;
|
|
26
|
-
if (storage) {
|
|
27
|
-
window.clearTimeout(rejectTimer);
|
|
28
|
-
window.clearInterval(timer);
|
|
29
|
-
resolve(storage);
|
|
30
|
-
}
|
|
31
|
-
}, 200);
|
|
32
186
|
});
|
|
33
|
-
|
|
34
|
-
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
// src/storage/client.ts
|
|
191
|
+
var M2mStorageClient = class extends StorageClient {
|
|
192
|
+
};
|
|
193
|
+
var context = {};
|
|
194
|
+
var getStorage = async (timeout = 5e3) => {
|
|
195
|
+
const storage = await new Promise((resolve, reject) => {
|
|
196
|
+
const rejectTimer = window.setTimeout(function() {
|
|
197
|
+
reject(
|
|
198
|
+
new Error(
|
|
199
|
+
"Timeout: M2mStorageClient could not connect. Please call m2mStorageClient.init() before using m2mStorageClient."
|
|
200
|
+
)
|
|
201
|
+
);
|
|
202
|
+
}, timeout);
|
|
203
|
+
const storage2 = context.storage;
|
|
204
|
+
if (storage2) {
|
|
205
|
+
window.clearTimeout(rejectTimer);
|
|
206
|
+
resolve(storage2);
|
|
207
|
+
}
|
|
208
|
+
const timer = window.setInterval(() => {
|
|
209
|
+
const storage3 = context.storage;
|
|
210
|
+
if (storage3) {
|
|
211
|
+
window.clearTimeout(rejectTimer);
|
|
212
|
+
window.clearInterval(timer);
|
|
213
|
+
resolve(storage3);
|
|
214
|
+
}
|
|
215
|
+
}, 200);
|
|
35
216
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}();
|
|
217
|
+
await storage.onConnect();
|
|
218
|
+
return storage;
|
|
219
|
+
};
|
|
40
220
|
var M2M_STORAGE_HUB_URL = "https://hub.m2msystems.cloud/";
|
|
41
221
|
var M2M_STORAGE_HUB_URL_DEV = "https://m2m-components-storage-hub-dev.netlify.app/";
|
|
42
|
-
var initStorageClient = options => {
|
|
222
|
+
var initStorageClient = (options) => {
|
|
43
223
|
if (context.storage) {
|
|
44
|
-
throw new Error(
|
|
224
|
+
throw new Error(
|
|
225
|
+
"M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times."
|
|
226
|
+
);
|
|
45
227
|
}
|
|
46
|
-
|
|
228
|
+
const storage = new M2mStorageClient(
|
|
229
|
+
(options == null ? void 0 : options.env) === "production" ? M2M_STORAGE_HUB_URL : M2M_STORAGE_HUB_URL_DEV
|
|
230
|
+
);
|
|
47
231
|
context.storage = storage;
|
|
48
232
|
};
|
|
49
|
-
|
|
233
|
+
var m2mStorageClient = {
|
|
50
234
|
init: initStorageClient,
|
|
51
|
-
getStorage
|
|
235
|
+
getStorage
|
|
52
236
|
};
|
|
53
|
-
|
|
237
|
+
var M2M_AUTH_TOKEN_KEY = "M2M_APP_AUTH_TOKEN";
|
|
54
238
|
var getAuthTokenCache = () => {
|
|
55
239
|
return window.localStorage.getItem(M2M_AUTH_TOKEN_KEY);
|
|
56
240
|
};
|
|
57
|
-
var getAuthToken =
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
var clearAuthToken = /*#__PURE__*/function () {
|
|
87
|
-
var _ref4 = _asyncToGenerator(function* () {
|
|
88
|
-
window.localStorage.removeItem(M2M_AUTH_TOKEN_KEY);
|
|
89
|
-
try {
|
|
90
|
-
var storage = yield getStorage();
|
|
91
|
-
yield storage.del(M2M_AUTH_TOKEN_KEY);
|
|
92
|
-
} catch (error) {
|
|
93
|
-
console.warn(error);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
return function clearAuthToken() {
|
|
97
|
-
return _ref4.apply(this, arguments);
|
|
98
|
-
};
|
|
99
|
-
}();
|
|
100
|
-
export var m2mAuthTokenApi = {
|
|
241
|
+
var getAuthToken = async () => {
|
|
242
|
+
try {
|
|
243
|
+
const storage = await getStorage();
|
|
244
|
+
const autuToken = await storage.get(M2M_AUTH_TOKEN_KEY);
|
|
245
|
+
return autuToken || getAuthTokenCache();
|
|
246
|
+
} catch (error) {
|
|
247
|
+
console.warn(error);
|
|
248
|
+
return getAuthTokenCache();
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
var setAuthToken = async (token) => {
|
|
252
|
+
window.localStorage.setItem(M2M_AUTH_TOKEN_KEY, token);
|
|
253
|
+
try {
|
|
254
|
+
const storage = await getStorage();
|
|
255
|
+
await storage.set(M2M_AUTH_TOKEN_KEY, token);
|
|
256
|
+
} catch (error) {
|
|
257
|
+
console.warn(error);
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
var clearAuthToken = async () => {
|
|
261
|
+
window.localStorage.removeItem(M2M_AUTH_TOKEN_KEY);
|
|
262
|
+
try {
|
|
263
|
+
const storage = await getStorage();
|
|
264
|
+
await storage.del(M2M_AUTH_TOKEN_KEY);
|
|
265
|
+
} catch (error) {
|
|
266
|
+
console.warn(error);
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
var m2mAuthTokenApi = {
|
|
101
270
|
get: getAuthToken,
|
|
102
271
|
getCache: getAuthTokenCache,
|
|
103
272
|
set: setAuthToken,
|
|
104
273
|
clear: clearAuthToken
|
|
105
274
|
};
|
|
275
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
276
|
+
0 && (module.exports = {
|
|
277
|
+
M2M_AUTH_TOKEN_KEY,
|
|
278
|
+
m2mAuthTokenApi,
|
|
279
|
+
m2mStorageClient
|
|
280
|
+
});
|
|
106
281
|
//# sourceMappingURL=client.js.map
|
package/storage/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
1
|
+
{"version":3,"sources":["../../src/storage/client.ts","../../src/storage/lib/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","/**\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":["storage"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import {
|
|
3
|
+
M2M_AUTH_TOKEN_KEY,
|
|
4
|
+
m2mAuthTokenApi,
|
|
5
|
+
m2mStorageClient
|
|
6
|
+
} from "../chunk-5FHEMJGG.mjs";
|
|
7
|
+
import "../chunk-UOPEIK22.mjs";
|
|
8
|
+
import "../chunk-JUBOAWNR.mjs";
|
|
9
|
+
export {
|
|
10
|
+
M2M_AUTH_TOKEN_KEY,
|
|
11
|
+
m2mAuthTokenApi,
|
|
12
|
+
m2mStorageClient
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=client.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/storage/hub.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { Permission } from './lib/hub.js';
|
|
2
|
+
|
|
3
|
+
interface M2mStoragePermission extends Permission {
|
|
3
4
|
}
|
|
4
|
-
|
|
5
|
+
declare const m2mStorageHub: {
|
|
5
6
|
init: (permissions: M2mStoragePermission[]) => void;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
|
|
9
|
+
export { M2mStoragePermission, m2mStorageHub };
|
package/storage/hub.js
CHANGED
|
@@ -1,14 +1,127 @@
|
|
|
1
|
-
|
|
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);
|
|
2
20
|
|
|
3
|
-
//
|
|
21
|
+
// src/storage/hub.ts
|
|
22
|
+
var hub_exports = {};
|
|
23
|
+
__export(hub_exports, {
|
|
24
|
+
m2mStorageHub: () => m2mStorageHub
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(hub_exports);
|
|
27
|
+
|
|
28
|
+
// src/storage/lib/hub.ts
|
|
29
|
+
var context = {};
|
|
30
|
+
var init = (permissions) => {
|
|
31
|
+
context.permissions = permissions;
|
|
32
|
+
window.addEventListener("message", listener, false);
|
|
33
|
+
window.parent.postMessage("cross-storage:ready", "*");
|
|
34
|
+
};
|
|
35
|
+
var permitted = (origin, method) => {
|
|
36
|
+
const available = ["get", "set", "del", "clear", "getKeys"];
|
|
37
|
+
if (!available.includes(method)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if (context.permissions === void 0) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
for (let i = 0; i < context.permissions.length; i++) {
|
|
44
|
+
const entry = context.permissions[i];
|
|
45
|
+
const match = entry.origin.test(origin);
|
|
46
|
+
if (match && entry.allow.includes(method)) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
};
|
|
52
|
+
var methods = {
|
|
53
|
+
get: (params) => {
|
|
54
|
+
const storage = window.localStorage;
|
|
55
|
+
const result = [];
|
|
56
|
+
for (let i = 0; i < params.keys.length; i++) {
|
|
57
|
+
const value = storage.getItem(params.keys[i]) || null;
|
|
58
|
+
result.push(value);
|
|
59
|
+
}
|
|
60
|
+
return result.length > 1 ? result : result[0];
|
|
61
|
+
},
|
|
62
|
+
set: (params) => {
|
|
63
|
+
window.localStorage.setItem(params.key, params.value);
|
|
64
|
+
},
|
|
65
|
+
del: (params) => {
|
|
66
|
+
for (var i = 0; i < params.keys.length; i++) {
|
|
67
|
+
window.localStorage.removeItem(params.keys[i]);
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
getKeys: () => {
|
|
71
|
+
const keys = [];
|
|
72
|
+
const length = window.localStorage.length;
|
|
73
|
+
for (let i = 0; i < length; i++) {
|
|
74
|
+
keys.push(window.localStorage.key(i));
|
|
75
|
+
}
|
|
76
|
+
return keys;
|
|
77
|
+
},
|
|
78
|
+
clear: () => {
|
|
79
|
+
window.localStorage.clear();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
var listener = (message) => {
|
|
83
|
+
const origin = message.origin === "null" ? "file://" : message.origin;
|
|
84
|
+
if (message.data === "cross-storage:poll") {
|
|
85
|
+
return window.parent.postMessage("cross-storage:ready", message.origin);
|
|
86
|
+
}
|
|
87
|
+
if (message.data === "cross-storage:ready")
|
|
88
|
+
return;
|
|
89
|
+
const request = JSON.parse(message.data);
|
|
90
|
+
if (!request || typeof request.method !== "string") {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const method = request.method.split("cross-storage:")[1];
|
|
94
|
+
let error = "";
|
|
95
|
+
let result = void 0;
|
|
96
|
+
if (!method) {
|
|
97
|
+
return;
|
|
98
|
+
} else if (!permitted(origin, method)) {
|
|
99
|
+
error = "Invalid permissions for " + method;
|
|
100
|
+
} else {
|
|
101
|
+
try {
|
|
102
|
+
result = methods[method](request.params);
|
|
103
|
+
} catch (err) {
|
|
104
|
+
error = err.message;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const response = JSON.stringify({
|
|
108
|
+
id: request.id,
|
|
109
|
+
error,
|
|
110
|
+
result
|
|
111
|
+
});
|
|
112
|
+
const targetOrigin = origin === "file://" ? "*" : origin;
|
|
113
|
+
window.parent.postMessage(response, targetOrigin);
|
|
114
|
+
};
|
|
4
115
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
var initM2mStorageHub = permissions => {
|
|
116
|
+
// src/storage/hub.ts
|
|
117
|
+
var initM2mStorageHub = (permissions) => {
|
|
9
118
|
init(permissions);
|
|
10
119
|
};
|
|
11
|
-
|
|
120
|
+
var m2mStorageHub = {
|
|
12
121
|
init: initM2mStorageHub
|
|
13
122
|
};
|
|
123
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
124
|
+
0 && (module.exports = {
|
|
125
|
+
m2mStorageHub
|
|
126
|
+
});
|
|
14
127
|
//# sourceMappingURL=hub.js.map
|
package/storage/hub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/storage/hub.ts","../../src/storage/lib/hub.ts"],"sourcesContent":["import { init } from \"./lib/hub\";\nimport type { Permission } from \"./lib/hub\";\n\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","/**\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":"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","names":[]}
|
package/storage/hub.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare class StorageClient {
|
|
2
|
+
id: string;
|
|
3
|
+
frameId: string;
|
|
4
|
+
origin: string;
|
|
5
|
+
requests: Record<string, any>;
|
|
6
|
+
connected: boolean;
|
|
7
|
+
closed: boolean;
|
|
8
|
+
count: number;
|
|
9
|
+
timeout: number;
|
|
10
|
+
hub: null | Window;
|
|
11
|
+
constructor(url: string, opts?: {
|
|
12
|
+
frameId?: string;
|
|
13
|
+
timeout?: number;
|
|
14
|
+
});
|
|
15
|
+
onConnect(): Promise<unknown>;
|
|
16
|
+
set(key: string, value: string): Promise<unknown>;
|
|
17
|
+
get(...keys: string[]): Promise<unknown>;
|
|
18
|
+
del(...keys: string[]): Promise<unknown>;
|
|
19
|
+
clear(): Promise<unknown>;
|
|
20
|
+
getKeys(): void;
|
|
21
|
+
close(): void;
|
|
22
|
+
private listener;
|
|
23
|
+
private createFrame;
|
|
24
|
+
private request;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { StorageClient };
|