m2m-components 7.1.9-alpha-1762845605139-91949a7.0 → 8.0.1-alpha-1764126097912-0137aaf.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/apps.d.mts +2 -1
  2. package/apps.d.ts +2 -1
  3. package/apps.js +28 -2
  4. package/apps.js.map +1 -1
  5. package/apps.mjs +7 -41
  6. package/apps.mjs.map +1 -1
  7. package/{chunk-TB4XCWDU.mjs → chunk-3QIUILX5.mjs} +47 -17
  8. package/chunk-3QIUILX5.mjs.map +1 -0
  9. package/{chunk-DOXG3SJR.mjs → chunk-7AZEHVZT.mjs} +2 -2
  10. package/{chunk-P7JOHMD5.mjs → chunk-7VHUBWOT.mjs} +19 -5
  11. package/chunk-7VHUBWOT.mjs.map +1 -0
  12. package/{chunk-F6OCIRVJ.mjs → chunk-BFCTE2XZ.mjs} +2 -2
  13. package/chunk-CP2PCNLU.mjs +63 -0
  14. package/chunk-CP2PCNLU.mjs.map +1 -0
  15. package/{chunk-KSRMCUT2.mjs → chunk-OU3IGV6H.mjs} +2 -2
  16. package/{chunk-V7F5BJ5W.mjs → chunk-QWW2VCZM.mjs} +5 -6
  17. package/chunk-QWW2VCZM.mjs.map +1 -0
  18. package/chunk-W5DAWJ2F.mjs +12 -0
  19. package/chunk-W5DAWJ2F.mjs.map +1 -0
  20. package/{chunk-H6LVVTPR.mjs → chunk-ZBZMUI2R.mjs} +18 -3
  21. package/chunk-ZBZMUI2R.mjs.map +1 -0
  22. package/domains.d.mts +9 -2
  23. package/domains.d.ts +9 -2
  24. package/domains.js +23 -2
  25. package/domains.js.map +1 -1
  26. package/domains.mjs +2 -1
  27. package/index.js +133 -19
  28. package/index.js.map +1 -1
  29. package/index.mjs +8 -6
  30. package/initM2mComponents.js +9 -5
  31. package/initM2mComponents.js.map +1 -1
  32. package/initM2mComponents.mjs +3 -2
  33. package/m2m-apps-menu.d.mts +1 -0
  34. package/m2m-apps-menu.d.ts +1 -0
  35. package/m2m-apps-menu.js +117 -17
  36. package/m2m-apps-menu.js.map +1 -1
  37. package/m2m-apps-menu.mjs +4 -2
  38. package/m2m-user-menu.d.mts +1 -0
  39. package/m2m-user-menu.d.ts +1 -0
  40. package/m2m-user-menu.js +37 -4
  41. package/m2m-user-menu.js.map +1 -1
  42. package/m2m-user-menu.mjs +5 -4
  43. package/package.json +2 -1
  44. package/storage/clearAuth.js.map +1 -1
  45. package/storage/clearAuth.mjs +3 -2
  46. package/storage/client.js +9 -5
  47. package/storage/client.js.map +1 -1
  48. package/storage/client.mjs +2 -1
  49. package/storage/getM2MStorageHubDomain.d.mts +3 -0
  50. package/storage/getM2MStorageHubDomain.d.ts +3 -0
  51. package/storage/getM2MStorageHubDomain.js +36 -0
  52. package/storage/getM2MStorageHubDomain.js.map +1 -0
  53. package/storage/getM2MStorageHubDomain.mjs +8 -0
  54. package/storage/getM2MStorageHubDomain.mjs.map +1 -0
  55. package/storage/refreshAuth.js.map +1 -1
  56. package/storage/refreshAuth.mjs +3 -2
  57. package/storage/useM2mAuth.js.map +1 -1
  58. package/storage/useM2mAuth.mjs +7 -6
  59. package/storage/useM2mAuth.mjs.map +1 -1
  60. package/chunk-H6LVVTPR.mjs.map +0 -1
  61. package/chunk-P7JOHMD5.mjs.map +0 -1
  62. package/chunk-TB4XCWDU.mjs.map +0 -1
  63. package/chunk-V7F5BJ5W.mjs.map +0 -1
  64. /package/{chunk-DOXG3SJR.mjs.map → chunk-7AZEHVZT.mjs.map} +0 -0
  65. /package/{chunk-F6OCIRVJ.mjs.map → chunk-BFCTE2XZ.mjs.map} +0 -0
  66. /package/{chunk-KSRMCUT2.mjs.map → chunk-OU3IGV6H.mjs.map} +0 -0
package/apps.d.mts CHANGED
@@ -11,5 +11,6 @@ interface AppLink {
11
11
  }
12
12
  type App = AppGroup | AppLink;
13
13
  declare const apps: App[];
14
+ declare const useApps: (signal?: AbortSignal) => Promise<App[]>;
14
15
 
15
- export { type AppLinkKey, apps };
16
+ export { type App, type AppLinkKey, apps, useApps };
package/apps.d.ts CHANGED
@@ -11,5 +11,6 @@ interface AppLink {
11
11
  }
12
12
  type App = AppGroup | AppLink;
13
13
  declare const apps: App[];
14
+ declare const useApps: (signal?: AbortSignal) => Promise<App[]>;
14
15
 
15
- export { type AppLinkKey, apps };
16
+ export { type App, type AppLinkKey, apps, useApps };
package/apps.js CHANGED
@@ -20,9 +20,20 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/apps.ts
21
21
  var apps_exports = {};
22
22
  __export(apps_exports, {
23
- apps: () => apps
23
+ apps: () => apps,
24
+ useApps: () => useApps
24
25
  });
25
26
  module.exports = __toCommonJS(apps_exports);
27
+
28
+ // src/storage/getM2MStorageHubDomain.ts
29
+ var getM2MStorageHubDomain = (env) => {
30
+ if (env === "production" || globalThis.M2M_COMPONENTS_ENV === "production") {
31
+ return "https://hub.m2msystems.cloud";
32
+ }
33
+ return "https://hub.dev.m2msystems.cloud";
34
+ };
35
+
36
+ // src/apps.ts
26
37
  var apps = [
27
38
  {
28
39
  label: "m2m Series",
@@ -61,8 +72,23 @@ var apps = [
61
72
  type: "link"
62
73
  }
63
74
  ];
75
+ var useApps = async (signal) => {
76
+ const env = globalThis.M2M_COMPONENTS_ENV === "production" ? "production" : "development";
77
+ try {
78
+ const domain = getM2MStorageHubDomain(env);
79
+ const response = await fetch(`${domain}/api/apps`, { signal });
80
+ if (!response.ok) {
81
+ throw new Error(`Failed to fetch apps: ${response.statusText}`);
82
+ }
83
+ const data = await response.json();
84
+ return data;
85
+ } catch {
86
+ return apps;
87
+ }
88
+ };
64
89
  // Annotate the CommonJS export names for ESM import in node:
65
90
  0 && (module.exports = {
66
- apps
91
+ apps,
92
+ useApps
67
93
  });
68
94
  //# sourceMappingURL=apps.js.map
package/apps.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/apps.ts"],"sourcesContent":["interface AppGroup {\n label: string;\n type: \"group\";\n children: App[];\n}\n\nexport type AppLinkKey =\n | \"core\"\n | \"checkin\"\n | \"systems\"\n | \"cleaning\"\n | \"users\"\n | \"sumyca\";\n\ninterface AppLink {\n label: string;\n type: \"link\";\n key: AppLinkKey;\n}\n\ntype App = AppGroup | AppLink;\n\nexport const apps: App[] = [\n {\n label: \"m2m Series\",\n type: \"group\",\n children: [\n {\n label: \"Core 施設管理\",\n type: \"link\",\n key: \"core\",\n },\n {\n label: \"Checkin ゲストチェックイン\",\n type: \"link\",\n key: \"checkin\",\n },\n {\n label: \"Systems Airbnb連携\",\n type: \"link\",\n key: \"systems\",\n },\n {\n label: \"Cleaning 清掃管理\",\n type: \"link\",\n key: \"cleaning\",\n },\n {\n label: \"Users アカウント管理\",\n type: \"link\",\n key: \"users\",\n },\n ],\n },\n {\n label: \"Sumyca マンスリープラットフォーム\",\n key: \"sumyca\",\n type: \"link\",\n },\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBO,IAAM,OAAc;AAAA,EACzB;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,MACR;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/apps.ts","../src/storage/getM2MStorageHubDomain.ts"],"sourcesContent":["import { getM2MStorageHubDomain } from \"./storage/getM2MStorageHubDomain\";\n\ninterface AppGroup {\n label: string;\n type: \"group\";\n children: App[];\n}\n\nexport type AppLinkKey =\n | \"core\"\n | \"checkin\"\n | \"systems\"\n | \"cleaning\"\n | \"users\"\n | \"sumyca\";\n\ninterface AppLink {\n label: string;\n type: \"link\";\n key: AppLinkKey;\n}\n\nexport type App = AppGroup | AppLink;\n\nexport const apps: App[] = [\n {\n label: \"m2m Series\",\n type: \"group\",\n children: [\n {\n label: \"Core 施設管理\",\n type: \"link\",\n key: \"core\",\n },\n {\n label: \"Checkin ゲストチェックイン\",\n type: \"link\",\n key: \"checkin\",\n },\n {\n label: \"Systems Airbnb連携\",\n type: \"link\",\n key: \"systems\",\n },\n {\n label: \"Cleaning 清掃管理\",\n type: \"link\",\n key: \"cleaning\",\n },\n {\n label: \"Users アカウント管理\",\n type: \"link\",\n key: \"users\",\n },\n ],\n },\n {\n label: \"Sumyca マンスリープラットフォーム\",\n key: \"sumyca\",\n type: \"link\",\n },\n];\n\nexport const useApps = async (signal?: AbortSignal): Promise<App[]> => {\n const env =\n globalThis.M2M_COMPONENTS_ENV === \"production\"\n ? \"production\"\n : \"development\";\n try {\n const domain = getM2MStorageHubDomain(env);\n const response = await fetch(`${domain}/api/apps`, { signal });\n if (!response.ok) {\n throw new Error(`Failed to fetch apps: ${response.statusText}`);\n }\n const data = (await response.json()) as App[];\n return data;\n } catch {\n return apps;\n }\n};\n","export const getM2MStorageHubDomain = (env?: \"production\" | \"development\") => {\n if (env === \"production\" || globalThis.M2M_COMPONENTS_ENV === \"production\") {\n return \"https://hub.m2msystems.cloud\";\n }\n return \"https://hub.dev.m2msystems.cloud\";\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,yBAAyB,CAAC,QAAuC;AAC5E,MAAI,QAAQ,gBAAgB,WAAW,uBAAuB,cAAc;AAC1E,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ADmBO,IAAM,OAAc;AAAA,EACzB;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,MACR;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AACF;AAEO,IAAM,UAAU,OAAO,WAAyC;AACrE,QAAM,MACJ,WAAW,uBAAuB,eAC9B,eACA;AACN,MAAI;AACF,UAAM,SAAS,uBAAuB,GAAG;AACzC,UAAM,WAAW,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,OAAO,CAAC;AAC7D,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI,MAAM,yBAAyB,SAAS,UAAU,EAAE;AAAA,IAChE;AACA,UAAM,OAAQ,MAAM,SAAS,KAAK;AAClC,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":[]}
package/apps.mjs CHANGED
@@ -1,45 +1,11 @@
1
+ import {
2
+ apps,
3
+ useApps
4
+ } from "./chunk-CP2PCNLU.mjs";
5
+ import "./chunk-W5DAWJ2F.mjs";
1
6
  import "./chunk-ZOXT4E27.mjs";
2
-
3
- // src/apps.ts
4
- var apps = [
5
- {
6
- label: "m2m Series",
7
- type: "group",
8
- children: [
9
- {
10
- label: "Core \u65BD\u8A2D\u7BA1\u7406",
11
- type: "link",
12
- key: "core"
13
- },
14
- {
15
- label: "Checkin \u30B2\u30B9\u30C8\u30C1\u30A7\u30C3\u30AF\u30A4\u30F3",
16
- type: "link",
17
- key: "checkin"
18
- },
19
- {
20
- label: "Systems Airbnb\u9023\u643A",
21
- type: "link",
22
- key: "systems"
23
- },
24
- {
25
- label: "Cleaning \u6E05\u6383\u7BA1\u7406",
26
- type: "link",
27
- key: "cleaning"
28
- },
29
- {
30
- label: "Users \u30A2\u30AB\u30A6\u30F3\u30C8\u7BA1\u7406",
31
- type: "link",
32
- key: "users"
33
- }
34
- ]
35
- },
36
- {
37
- label: "Sumyca \u30DE\u30F3\u30B9\u30EA\u30FC\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0",
38
- key: "sumyca",
39
- type: "link"
40
- }
41
- ];
42
7
  export {
43
- apps
8
+ apps,
9
+ useApps
44
10
  };
45
11
  //# sourceMappingURL=apps.mjs.map
package/apps.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/apps.ts"],"sourcesContent":["interface AppGroup {\n label: string;\n type: \"group\";\n children: App[];\n}\n\nexport type AppLinkKey =\n | \"core\"\n | \"checkin\"\n | \"systems\"\n | \"cleaning\"\n | \"users\"\n | \"sumyca\";\n\ninterface AppLink {\n label: string;\n type: \"link\";\n key: AppLinkKey;\n}\n\ntype App = AppGroup | AppLink;\n\nexport const apps: App[] = [\n {\n label: \"m2m Series\",\n type: \"group\",\n children: [\n {\n label: \"Core 施設管理\",\n type: \"link\",\n key: \"core\",\n },\n {\n label: \"Checkin ゲストチェックイン\",\n type: \"link\",\n key: \"checkin\",\n },\n {\n label: \"Systems Airbnb連携\",\n type: \"link\",\n key: \"systems\",\n },\n {\n label: \"Cleaning 清掃管理\",\n type: \"link\",\n key: \"cleaning\",\n },\n {\n label: \"Users アカウント管理\",\n type: \"link\",\n key: \"users\",\n },\n ],\n },\n {\n label: \"Sumyca マンスリープラットフォーム\",\n key: \"sumyca\",\n type: \"link\",\n },\n];\n"],"mappings":";;;AAsBO,IAAM,OAAc;AAAA,EACzB;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,MACR;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AACF;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,9 +1,12 @@
1
1
  import {
2
2
  MenuBaseElement
3
3
  } from "./chunk-5EK67DDX.mjs";
4
+ import {
5
+ useApps
6
+ } from "./chunk-CP2PCNLU.mjs";
4
7
  import {
5
8
  useDomains
6
- } from "./chunk-H6LVVTPR.mjs";
9
+ } from "./chunk-ZBZMUI2R.mjs";
7
10
  import {
8
11
  __decorateClass
9
12
  } from "./chunk-ZOXT4E27.mjs";
@@ -12,10 +15,22 @@ import {
12
15
  import { customElement } from "lit/decorators.js";
13
16
  import { html } from "lit";
14
17
  import { ref } from "lit/directives/ref.js";
18
+ import { Task } from "@lit/task";
15
19
  var M2MAppsMenu = class extends MenuBaseElement {
20
+ constructor() {
21
+ super(...arguments);
22
+ this._dataTask = new Task(this, {
23
+ task: async (_, { signal }) => {
24
+ const apps = await useApps(signal);
25
+ const domains = await useDomains(signal);
26
+ return { apps, domains };
27
+ },
28
+ args: () => []
29
+ });
30
+ }
16
31
  render() {
17
32
  var _a;
18
- const domains = useDomains();
33
+ const isHidden = this.expanded === false || this.expanded === void 0;
19
34
  const additionalItems = (_a = this.additinalItems) == null ? void 0 : _a.map((item) => {
20
35
  return html`
21
36
  <li>
@@ -23,7 +38,6 @@ var M2MAppsMenu = class extends MenuBaseElement {
23
38
  </li>
24
39
  `;
25
40
  });
26
- const isHidden = this.expanded === false || this.expanded === void 0;
27
41
  return html`<nav>
28
42
  <button
29
43
  type="button"
@@ -49,19 +63,35 @@ var M2MAppsMenu = class extends MenuBaseElement {
49
63
  aria-hidden=${isHidden}
50
64
  class="navigation-drawer"
51
65
  >
52
- <li>
53
- <span>m2m Series</span>
54
- <ul>
55
- <li><a href="${domains.core}">Core 施設管理</a></li>
56
- <li><a href="${domains.checkin}">Checkin ゲストチェックイン</a></li>
57
- <li><a href="${domains.systems}">Systems Airbnb連携</a></li>
58
- <li><a href="${domains.cleaning}">Cleaning 清掃管理</a></li>
59
- <li><a href="${domains.users}">Users アカウント管理</a></li>
60
- </ul>
61
- </li>
62
- <li>
63
- <a href="${domains.sumyca}">Sumyca マンスリープラットフォーム</a>
64
- </li>
66
+ ${this._dataTask.render({
67
+ pending: () => html`<li><a disabled href="#">Loading...</a></li>`,
68
+ complete: ({ apps, domains }) => {
69
+ return apps.map((app) => {
70
+ return app.type === "group" ? html`
71
+ <li>
72
+ <span>${app.label}</span>
73
+ <ul>
74
+ ${app.children.map((child) => {
75
+ if (child.type === "link") {
76
+ return html`
77
+ <li>
78
+ <a href="${domains[child.key]}"
79
+ >${child.label}</a
80
+ >
81
+ </li>
82
+ `;
83
+ }
84
+ })}
85
+ </ul>
86
+ </li>
87
+ ` : html`
88
+ <li>
89
+ <a href="${domains[app.key]}">${app.label}</a>
90
+ </li>
91
+ `;
92
+ });
93
+ }
94
+ })}
65
95
  ${additionalItems}
66
96
  </ul>
67
97
  </nav>`;
@@ -74,4 +104,4 @@ M2MAppsMenu = __decorateClass([
74
104
  export {
75
105
  M2MAppsMenu
76
106
  };
77
- //# sourceMappingURL=chunk-TB4XCWDU.mjs.map
107
+ //# sourceMappingURL=chunk-3QIUILX5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/m2m-apps-menu.ts"],"sourcesContent":["import { customElement } from \"lit/decorators.js\";\nimport { html } from \"lit\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { Task } from \"@lit/task\";\nimport { MenuBaseElement, MenuBaseElementProps } from \"./MenuBaseElement\";\nimport { useDomains } from \"./domains\";\nimport { useApps } from \"./apps\";\n\nexport type M2MAppsMenuProps = MenuBaseElementProps;\n\n@customElement(\"m2m-apps-menu\")\nexport class M2MAppsMenu extends MenuBaseElement {\n private _dataTask = new Task(this, {\n task: async (_: unknown, { signal }) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const apps = await useApps(signal);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const domains = await useDomains(signal);\n return { apps, domains };\n },\n args: () => [],\n });\n\n render() {\n const isHidden = this.expanded === false || this.expanded === undefined;\n\n const additionalItems = this.additinalItems?.map((item) => {\n return html`\n <li>\n <a href=\"${item.href}\">${item.label}</a>\n </li>\n `;\n });\n\n return html`<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-apps-menu__navigation-drawer\"\n aria-expanded=${this.expanded}\n @click=${this.handleToggleDrawer}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"38px\"\n height=\"38px\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z\"\n />\n </svg>\n </button>\n <ul\n ${ref(this.listRef)}\n id=\"m2m-apps-menu__navigation-drawer\"\n aria-hidden=${isHidden}\n class=\"navigation-drawer\"\n >\n ${this._dataTask.render({\n pending: () => html`<li><a disabled href=\"#\">Loading...</a></li>`,\n complete: ({ apps, domains }) => {\n return apps.map((app) => {\n return app.type === \"group\"\n ? html`\n <li>\n <span>${app.label}</span>\n <ul>\n ${app.children.map((child) => {\n // 2段ネストはサポートしない\n if (child.type === \"link\") {\n return html`\n <li>\n <a href=\"${domains[child.key]}\"\n >${child.label}</a\n >\n </li>\n `;\n }\n })}\n </ul>\n </li>\n `\n : html`\n <li>\n <a href=\"${domains[app.key]}\">${app.label}</a>\n </li>\n `;\n });\n },\n })}\n ${additionalItems}\n </ul>\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"m2m-apps-menu\": M2MAppsMenu;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AACrB,SAAS,WAAW;AACpB,SAAS,YAAY;AAQd,IAAM,cAAN,cAA0B,gBAAgB;AAAA,EAA1C;AAAA;AACL,SAAQ,YAAY,IAAI,KAAK,MAAM;AAAA,MACjC,MAAM,OAAO,GAAY,EAAE,OAAO,MAAM;AAEtC,cAAM,OAAO,MAAM,QAAQ,MAAM;AAEjC,cAAM,UAAU,MAAM,WAAW,MAAM;AACvC,eAAO,EAAE,MAAM,QAAQ;AAAA,MACzB;AAAA,MACA,MAAM,MAAM,CAAC;AAAA,IACf,CAAC;AAAA;AAAA,EAED,SAAS;AAvBX;AAwBI,UAAM,WAAW,KAAK,aAAa,SAAS,KAAK,aAAa;AAE9D,UAAM,mBAAkB,UAAK,mBAAL,mBAAqB,IAAI,CAAC,SAAS;AACzD,aAAO;AAAA;AAAA,qBAEQ,KAAK,IAAI,KAAK,KAAK,KAAK;AAAA;AAAA;AAAA,IAGzC;AAEA,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKa,KAAK,QAAQ;AAAA,iBACpB,KAAK,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAc9B,IAAI,KAAK,OAAO,CAAC;AAAA;AAAA,sBAEL,QAAQ;AAAA;AAAA;AAAA,UAGpB,KAAK,UAAU,OAAO;AAAA,MACtB,SAAS,MAAM;AAAA,MACf,UAAU,CAAC,EAAE,MAAM,QAAQ,MAAM;AAC/B,eAAO,KAAK,IAAI,CAAC,QAAQ;AACvB,iBAAO,IAAI,SAAS,UAChB;AAAA;AAAA,8BAEY,IAAI,KAAK;AAAA;AAAA,0BAEb,IAAI,SAAS,IAAI,CAAC,UAAU;AAE5B,gBAAI,MAAM,SAAS,QAAQ;AACzB,qBAAO;AAAA;AAAA,2CAEQ,QAAQ,MAAM,GAAG,CAAC;AAAA,qCACxB,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA,YAItB;AAAA,UACF,CAAC,CAAC;AAAA;AAAA;AAAA,sBAIR;AAAA;AAAA,iCAEe,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,KAAK;AAAA;AAAA;AAAA,QAGnD,CAAC;AAAA,MACH;AAAA,IACF,CAAC,CAAC;AAAA,UACA,eAAe;AAAA;AAAA;AAAA,EAGvB;AACF;AApFa,cAAN;AAAA,EADN,cAAc,eAAe;AAAA,GACjB;","names":[]}
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-IGOSAWM6.mjs";
10
10
  import {
11
11
  m2mAuthTokenApi
12
- } from "./chunk-V7F5BJ5W.mjs";
12
+ } from "./chunk-QWW2VCZM.mjs";
13
13
 
14
14
  // src/storage/refreshAuth.tsx
15
15
  var refreshAuth = async () => {
@@ -35,4 +35,4 @@ var refreshAuth = async () => {
35
35
  export {
36
36
  refreshAuth
37
37
  };
38
- //# sourceMappingURL=chunk-DOXG3SJR.mjs.map
38
+ //# sourceMappingURL=chunk-7AZEHVZT.mjs.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  clearAuth
3
- } from "./chunk-F6OCIRVJ.mjs";
3
+ } from "./chunk-BFCTE2XZ.mjs";
4
4
  import {
5
5
  MenuBaseElement
6
6
  } from "./chunk-5EK67DDX.mjs";
7
7
  import {
8
8
  useDomains
9
- } from "./chunk-H6LVVTPR.mjs";
9
+ } from "./chunk-ZBZMUI2R.mjs";
10
10
  import {
11
11
  __decorateClass
12
12
  } from "./chunk-ZOXT4E27.mjs";
@@ -15,6 +15,7 @@ import {
15
15
  import { customElement } from "lit/decorators.js";
16
16
  import { html } from "lit";
17
17
  import { ref } from "lit/directives/ref.js";
18
+ import { Task } from "@lit/task";
18
19
  var M2MUserMenu = class extends MenuBaseElement {
19
20
  constructor() {
20
21
  super(...arguments);
@@ -22,10 +23,16 @@ var M2MUserMenu = class extends MenuBaseElement {
22
23
  await clearAuth();
23
24
  window.location.reload();
24
25
  };
26
+ this._usersUrlTask = new Task(this, {
27
+ task: async (_, { signal }) => {
28
+ const domains = await useDomains(signal);
29
+ return domains.users;
30
+ },
31
+ args: () => []
32
+ });
25
33
  }
26
34
  render() {
27
35
  var _a;
28
- const domains = useDomains();
29
36
  const additionalItems = (_a = this.additinalItems) == null ? void 0 : _a.map((item) => {
30
37
  return html`
31
38
  <li>
@@ -55,7 +62,14 @@ var M2MUserMenu = class extends MenuBaseElement {
55
62
  aria-hidden=${isHidden}
56
63
  class="navigation-drawer"
57
64
  >
58
- <li><a href="${domains.users}">アカウント情報</a></li>
65
+ <li>
66
+ ${this._usersUrlTask.render({
67
+ pending: () => html`<a disabled href="#">Loading...</a>`,
68
+ complete: (usersUrl) => {
69
+ return html`<a href="${usersUrl}">アカウント情報</a>`;
70
+ }
71
+ })}
72
+ </li>
59
73
  <li @click=${this.handleLogout}>
60
74
  <button type="button">ログアウト</button>
61
75
  </li>
@@ -71,4 +85,4 @@ M2MUserMenu = __decorateClass([
71
85
  export {
72
86
  M2MUserMenu
73
87
  };
74
- //# sourceMappingURL=chunk-P7JOHMD5.mjs.map
88
+ //# sourceMappingURL=chunk-7VHUBWOT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/m2m-user-menu.ts"],"sourcesContent":["import { customElement } from \"lit/decorators.js\";\nimport { html } from \"lit\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { Task } from \"@lit/task\";\nimport { clearAuth } from \"./storage/clearAuth\";\nimport { MenuBaseElement, MenuBaseElementProps } from \"./MenuBaseElement\";\nimport { useDomains } from \"./domains\";\n\nexport type M2MUserMenuProps = MenuBaseElementProps;\n\n@customElement(\"m2m-user-menu\")\nexport class M2MUserMenu extends MenuBaseElement {\n handleLogout = async () => {\n await clearAuth();\n window.location.reload();\n };\n private _usersUrlTask = new Task(this, {\n task: async (_: unknown, { signal }) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const domains = await useDomains(signal);\n return domains.users;\n },\n args: () => [],\n });\n\n render() {\n const additionalItems = this.additinalItems?.map((item) => {\n return html`\n <li>\n <a href=\"${item.href}\">${item.label}</a>\n </li>\n `;\n });\n const isHidden = this.expanded === false || this.expanded === undefined;\n return html`<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-user-menu__navigation-drawer\"\n aria-expanded=${this.expanded}\n @click=${this.handleToggleDrawer}\n >\n <svg viewBox=\"0 0 24 24\" width=\"38px\" height=\"38px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z\"\n />\n </svg>\n </button>\n <ul\n ${ref(this.listRef)}\n id=\"m2m-user-menu__navigation-drawer\"\n aria-hidden=${isHidden}\n class=\"navigation-drawer\"\n >\n <li>\n ${this._usersUrlTask.render({\n pending: () => html`<a disabled href=\"#\">Loading...</a>`,\n complete: (usersUrl) => {\n return html`<a href=\"${usersUrl}\">アカウント情報</a>`;\n },\n })}\n </li>\n <li @click=${this.handleLogout}>\n <button type=\"button\">ログアウト</button>\n </li>\n ${additionalItems}\n </ul>\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"m2m-user-menu\": M2MUserMenu;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AACrB,SAAS,WAAW;AACpB,SAAS,YAAY;AAQd,IAAM,cAAN,cAA0B,gBAAgB;AAAA,EAA1C;AAAA;AACL,wBAAe,YAAY;AACzB,YAAM,UAAU;AAChB,aAAO,SAAS,OAAO;AAAA,IACzB;AACA,SAAQ,gBAAgB,IAAI,KAAK,MAAM;AAAA,MACrC,MAAM,OAAO,GAAY,EAAE,OAAO,MAAM;AAEtC,cAAM,UAAU,MAAM,WAAW,MAAM;AACvC,eAAO,QAAQ;AAAA,MACjB;AAAA,MACA,MAAM,MAAM,CAAC;AAAA,IACf,CAAC;AAAA;AAAA,EAED,SAAS;AAzBX;AA0BI,UAAM,mBAAkB,UAAK,mBAAL,mBAAqB,IAAI,CAAC,SAAS;AACzD,aAAO;AAAA;AAAA,qBAEQ,KAAK,IAAI,KAAK,KAAK,KAAK;AAAA;AAAA;AAAA,IAGzC;AACA,UAAM,WAAW,KAAK,aAAa,SAAS,KAAK,aAAa;AAC9D,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKa,KAAK,QAAQ;AAAA,iBACpB,KAAK,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAU9B,IAAI,KAAK,OAAO,CAAC;AAAA;AAAA,sBAEL,QAAQ;AAAA;AAAA;AAAA;AAAA,YAIlB,KAAK,cAAc,OAAO;AAAA,MAC1B,SAAS,MAAM;AAAA,MACf,UAAU,CAAC,aAAa;AACtB,eAAO,gBAAgB,QAAQ;AAAA,MACjC;AAAA,IACF,CAAC,CAAC;AAAA;AAAA,qBAES,KAAK,YAAY;AAAA;AAAA;AAAA,UAG5B,eAAe;AAAA;AAAA;AAAA,EAGvB;AACF;AA3Da,cAAN;AAAA,EADN,cAAc,eAAe;AAAA,GACjB;","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IGOSAWM6.mjs";
4
4
  import {
5
5
  m2mAuthTokenApi
6
- } from "./chunk-V7F5BJ5W.mjs";
6
+ } from "./chunk-QWW2VCZM.mjs";
7
7
 
8
8
  // src/storage/clearAuth.tsx
9
9
  var clearAuth = async () => {
@@ -14,4 +14,4 @@ var clearAuth = async () => {
14
14
  export {
15
15
  clearAuth
16
16
  };
17
- //# sourceMappingURL=chunk-F6OCIRVJ.mjs.map
17
+ //# sourceMappingURL=chunk-BFCTE2XZ.mjs.map
@@ -0,0 +1,63 @@
1
+ import {
2
+ getM2MStorageHubDomain
3
+ } from "./chunk-W5DAWJ2F.mjs";
4
+
5
+ // src/apps.ts
6
+ var apps = [
7
+ {
8
+ label: "m2m Series",
9
+ type: "group",
10
+ children: [
11
+ {
12
+ label: "Core \u65BD\u8A2D\u7BA1\u7406",
13
+ type: "link",
14
+ key: "core"
15
+ },
16
+ {
17
+ label: "Checkin \u30B2\u30B9\u30C8\u30C1\u30A7\u30C3\u30AF\u30A4\u30F3",
18
+ type: "link",
19
+ key: "checkin"
20
+ },
21
+ {
22
+ label: "Systems Airbnb\u9023\u643A",
23
+ type: "link",
24
+ key: "systems"
25
+ },
26
+ {
27
+ label: "Cleaning \u6E05\u6383\u7BA1\u7406",
28
+ type: "link",
29
+ key: "cleaning"
30
+ },
31
+ {
32
+ label: "Users \u30A2\u30AB\u30A6\u30F3\u30C8\u7BA1\u7406",
33
+ type: "link",
34
+ key: "users"
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ label: "Sumyca \u30DE\u30F3\u30B9\u30EA\u30FC\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0",
40
+ key: "sumyca",
41
+ type: "link"
42
+ }
43
+ ];
44
+ var useApps = async (signal) => {
45
+ const env = globalThis.M2M_COMPONENTS_ENV === "production" ? "production" : "development";
46
+ try {
47
+ const domain = getM2MStorageHubDomain(env);
48
+ const response = await fetch(`${domain}/api/apps`, { signal });
49
+ if (!response.ok) {
50
+ throw new Error(`Failed to fetch apps: ${response.statusText}`);
51
+ }
52
+ const data = await response.json();
53
+ return data;
54
+ } catch {
55
+ return apps;
56
+ }
57
+ };
58
+
59
+ export {
60
+ apps,
61
+ useApps
62
+ };
63
+ //# sourceMappingURL=chunk-CP2PCNLU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/apps.ts"],"sourcesContent":["import { getM2MStorageHubDomain } from \"./storage/getM2MStorageHubDomain\";\n\ninterface AppGroup {\n label: string;\n type: \"group\";\n children: App[];\n}\n\nexport type AppLinkKey =\n | \"core\"\n | \"checkin\"\n | \"systems\"\n | \"cleaning\"\n | \"users\"\n | \"sumyca\";\n\ninterface AppLink {\n label: string;\n type: \"link\";\n key: AppLinkKey;\n}\n\nexport type App = AppGroup | AppLink;\n\nexport const apps: App[] = [\n {\n label: \"m2m Series\",\n type: \"group\",\n children: [\n {\n label: \"Core 施設管理\",\n type: \"link\",\n key: \"core\",\n },\n {\n label: \"Checkin ゲストチェックイン\",\n type: \"link\",\n key: \"checkin\",\n },\n {\n label: \"Systems Airbnb連携\",\n type: \"link\",\n key: \"systems\",\n },\n {\n label: \"Cleaning 清掃管理\",\n type: \"link\",\n key: \"cleaning\",\n },\n {\n label: \"Users アカウント管理\",\n type: \"link\",\n key: \"users\",\n },\n ],\n },\n {\n label: \"Sumyca マンスリープラットフォーム\",\n key: \"sumyca\",\n type: \"link\",\n },\n];\n\nexport const useApps = async (signal?: AbortSignal): Promise<App[]> => {\n const env =\n globalThis.M2M_COMPONENTS_ENV === \"production\"\n ? \"production\"\n : \"development\";\n try {\n const domain = getM2MStorageHubDomain(env);\n const response = await fetch(`${domain}/api/apps`, { signal });\n if (!response.ok) {\n throw new Error(`Failed to fetch apps: ${response.statusText}`);\n }\n const data = (await response.json()) as App[];\n return data;\n } catch {\n return apps;\n }\n};\n"],"mappings":";;;;;AAwBO,IAAM,OAAc;AAAA,EACzB;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,MACR;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AACF;AAEO,IAAM,UAAU,OAAO,WAAyC;AACrE,QAAM,MACJ,WAAW,uBAAuB,eAC9B,eACA;AACN,MAAI;AACF,UAAM,SAAS,uBAAuB,GAAG;AACzC,UAAM,WAAW,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,OAAO,CAAC;AAC7D,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI,MAAM,yBAAyB,SAAS,UAAU,EAAE;AAAA,IAChE;AACA,UAAM,OAAQ,MAAM,SAAS,KAAK;AAClC,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  m2mStorageClient
3
- } from "./chunk-V7F5BJ5W.mjs";
3
+ } from "./chunk-QWW2VCZM.mjs";
4
4
 
5
5
  // src/initM2mComponents.ts
6
6
  var initM2mComponents = (args) => {
@@ -14,4 +14,4 @@ var initM2mComponents = (args) => {
14
14
  export {
15
15
  initM2mComponents
16
16
  };
17
- //# sourceMappingURL=chunk-KSRMCUT2.mjs.map
17
+ //# sourceMappingURL=chunk-OU3IGV6H.mjs.map
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  StorageClient
3
3
  } from "./chunk-R73ITKF5.mjs";
4
+ import {
5
+ getM2MStorageHubDomain
6
+ } from "./chunk-W5DAWJ2F.mjs";
4
7
 
5
8
  // src/storage/client.ts
6
9
  var M2mStorageClient = class extends StorageClient {
@@ -31,17 +34,13 @@ var getStorage = async (timeout = 5e3) => {
31
34
  await storage.onConnect();
32
35
  return storage;
33
36
  };
34
- var M2M_STORAGE_HUB_URL = "https://hub.m2msystems.cloud/";
35
- var M2M_STORAGE_HUB_URL_DEV = "https://m2m-components-git-feat-1296-matsuri-technologies.vercel.app/";
36
37
  var initStorageClient = (options) => {
37
38
  if (globalThis.M2M_STORAGE) {
38
39
  throw new Error(
39
40
  "M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times."
40
41
  );
41
42
  }
42
- const storage = new M2mStorageClient(
43
- (options == null ? void 0 : options.env) === "production" ? M2M_STORAGE_HUB_URL : M2M_STORAGE_HUB_URL_DEV
44
- );
43
+ const storage = new M2mStorageClient(getM2MStorageHubDomain(options == null ? void 0 : options.env));
45
44
  globalThis.M2M_STORAGE = storage;
46
45
  };
47
46
  var m2mStorageClient = {
@@ -92,4 +91,4 @@ export {
92
91
  M2M_AUTH_TOKEN_KEY,
93
92
  m2mAuthTokenApi
94
93
  };
95
- //# sourceMappingURL=chunk-V7F5BJ5W.mjs.map
94
+ //# sourceMappingURL=chunk-QWW2VCZM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/storage/client.ts"],"sourcesContent":["import { getM2MStorageHubDomain } from \"./getM2MStorageHubDomain\";\nimport { StorageClient } from \"./lib/client\";\n\nclass M2mStorageClient extends StorageClient {}\n\nexport type { M2mStorageClient };\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 = globalThis.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 = globalThis.M2M_STORAGE;\n if (storage) {\n globalThis.clearTimeout(rejectTimer);\n resolve(storage);\n }\n\n const timer = globalThis.setInterval(() => {\n const storage = globalThis.M2M_STORAGE;\n if (storage) {\n globalThis.clearTimeout(rejectTimer);\n globalThis.clearInterval(timer);\n resolve(storage);\n }\n }, 200);\n });\n\n await storage.onConnect();\n\n return storage;\n};\n\nconst initStorageClient = (options?: {\n env?: \"development\" | \"production\";\n}) => {\n if (globalThis.M2M_STORAGE) {\n throw new Error(\n \"M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times.\",\n );\n }\n const storage = new M2mStorageClient(getM2MStorageHubDomain(options?.env));\n globalThis.M2M_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 globalThis.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 !== null && autuToken !== undefined && autuToken.length > 0\n ? autuToken\n : getAuthTokenCache();\n } catch (error) {\n console.warn(error);\n return getAuthTokenCache();\n }\n};\n\nconst setAuthToken = async (token: string) => {\n globalThis.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 globalThis.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":";;;;;;;;AAGA,IAAM,mBAAN,cAA+B,cAAc;AAAC;AAS9C,IAAM,aAAa,OAAO,UAAU,QAAS;AAC3C,QAAM,UAAU,MAAM,IAAI,QAA0B,CAAC,SAAS,WAAW;AACvE,UAAM,cAAc,WAAW,WAAW,WAAY;AACpD;AAAA,QACE,IAAI;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,GAAG,OAAO;AAEV,UAAMA,WAAU,WAAW;AAC3B,QAAIA,UAAS;AACX,iBAAW,aAAa,WAAW;AACnC,cAAQA,QAAO;AAAA,IACjB;AAEA,UAAM,QAAQ,WAAW,YAAY,MAAM;AACzC,YAAMA,WAAU,WAAW;AAC3B,UAAIA,UAAS;AACX,mBAAW,aAAa,WAAW;AACnC,mBAAW,cAAc,KAAK;AAC9B,gBAAQA,QAAO;AAAA,MACjB;AAAA,IACF,GAAG,GAAG;AAAA,EACR,CAAC;AAED,QAAM,QAAQ,UAAU;AAExB,SAAO;AACT;AAEA,IAAM,oBAAoB,CAAC,YAErB;AACJ,MAAI,WAAW,aAAa;AAC1B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,IAAI,iBAAiB,uBAAuB,mCAAS,GAAG,CAAC;AACzE,aAAW,cAAc;AAC3B;AAEO,IAAM,mBAAmB;AAAA,EAC9B,MAAM;AAAA,EACN;AACF;AAEO,IAAM,qBAAqB;AAElC,IAAM,oBAAoB,MAAM;AAC9B,SAAO,WAAW,aAAa,QAAQ,kBAAkB;AAC3D;AAEA,IAAM,eAAe,YAAY;AAC/B,MAAI;AACF,UAAM,UAAU,MAAM,WAAW;AACjC,UAAM,YAAa,MAAM,QAAQ,IAAI,kBAAkB;AACvD,WAAO,cAAc,QAAQ,cAAc,UAAa,UAAU,SAAS,IACvE,YACA,kBAAkB;AAAA,EACxB,SAAS,OAAO;AACd,YAAQ,KAAK,KAAK;AAClB,WAAO,kBAAkB;AAAA,EAC3B;AACF;AAEA,IAAM,eAAe,OAAO,UAAkB;AAC5C,aAAW,aAAa,QAAQ,oBAAoB,KAAK;AACzD,MAAI;AACF,UAAM,UAAU,MAAM,WAAW;AACjC,UAAM,QAAQ,IAAI,oBAAoB,KAAK;AAAA,EAC7C,SAAS,OAAO;AACd,YAAQ,KAAK,KAAK;AAAA,EACpB;AACF;AAEA,IAAM,iBAAiB,YAAY;AACjC,aAAW,aAAa,WAAW,kBAAkB;AACrD,MAAI;AACF,UAAM,UAAU,MAAM,WAAW;AACjC,UAAM,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,OAAO;AACd,YAAQ,KAAK,KAAK;AAAA,EACpB;AACF;AAEO,IAAM,kBAAkB;AAAA,EAC7B,KAAK;AAAA,EACL,UAAU;AAAA,EACV,KAAK;AAAA,EACL,OAAO;AACT;","names":["storage"]}
@@ -0,0 +1,12 @@
1
+ // src/storage/getM2MStorageHubDomain.ts
2
+ var getM2MStorageHubDomain = (env) => {
3
+ if (env === "production" || globalThis.M2M_COMPONENTS_ENV === "production") {
4
+ return "https://hub.m2msystems.cloud";
5
+ }
6
+ return "https://hub.dev.m2msystems.cloud";
7
+ };
8
+
9
+ export {
10
+ getM2MStorageHubDomain
11
+ };
12
+ //# sourceMappingURL=chunk-W5DAWJ2F.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/storage/getM2MStorageHubDomain.ts"],"sourcesContent":["export const getM2MStorageHubDomain = (env?: \"production\" | \"development\") => {\n if (env === \"production\" || globalThis.M2M_COMPONENTS_ENV === \"production\") {\n return \"https://hub.m2msystems.cloud\";\n }\n return \"https://hub.dev.m2msystems.cloud\";\n};\n"],"mappings":";AAAO,IAAM,yBAAyB,CAAC,QAAuC;AAC5E,MAAI,QAAQ,gBAAgB,WAAW,uBAAuB,cAAc;AAC1E,WAAO;AAAA,EACT;AACA,SAAO;AACT;","names":[]}
@@ -1,3 +1,7 @@
1
+ import {
2
+ getM2MStorageHubDomain
3
+ } from "./chunk-W5DAWJ2F.mjs";
4
+
1
5
  // src/domains.ts
2
6
  var developmentDomains = {
3
7
  core: "https://core.dev.m2msystems.cloud",
@@ -15,8 +19,19 @@ var productionDomains = {
15
19
  checkin: "https://manage.checkin.m2msystems.cloud",
16
20
  systems: "https://m2msystems.cloud/"
17
21
  };
18
- var useDomains = () => {
19
- return globalThis.M2M_COMPONENTS_ENV === "production" ? productionDomains : developmentDomains;
22
+ var useDomains = async (signal) => {
23
+ const env = globalThis.M2M_COMPONENTS_ENV === "production" ? "production" : "development";
24
+ try {
25
+ const domain = getM2MStorageHubDomain(env);
26
+ const response = await fetch(`${domain}/api/domains/${env}`, { signal });
27
+ if (!response.ok) {
28
+ throw new Error(`Failed to fetch domains: ${response.statusText}`);
29
+ }
30
+ const data = await response.json();
31
+ return data;
32
+ } catch {
33
+ return globalThis.M2M_COMPONENTS_ENV === "production" ? productionDomains : developmentDomains;
34
+ }
20
35
  };
21
36
 
22
37
  export {
@@ -24,4 +39,4 @@ export {
24
39
  productionDomains,
25
40
  useDomains
26
41
  };
27
- //# sourceMappingURL=chunk-H6LVVTPR.mjs.map
42
+ //# sourceMappingURL=chunk-ZBZMUI2R.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/domains.ts"],"sourcesContent":["import { getM2MStorageHubDomain } from \"./storage/getM2MStorageHubDomain\";\nimport { type AppLinkKey } from \"./apps\";\n\nexport type DomainRecord = Record<AppLinkKey, string>;\n\nexport const developmentDomains: DomainRecord = {\n core: \"https://core.dev.m2msystems.cloud\",\n sumyca: \"https://manage.dev.sumyca.com\",\n cleaning: \"https://manager-cleaning.dev.m2msystems.cloud\",\n users: \"https://manage-users.dev.m2msystems.cloud\",\n checkin: \"https://manage.checkin.dev.m2msystems.cloud\",\n systems: \"https://dev.m2msystems.cloud\",\n};\n\nexport const productionDomains: DomainRecord = {\n core: \"https://core.m2msystems.cloud\",\n sumyca: \"https://manage.sumyca.com\",\n cleaning: \"https://manager-cleaning.m2msystems.cloud\",\n users: \"https://manage-users.m2msystems.cloud\",\n checkin: \"https://manage.checkin.m2msystems.cloud\",\n systems: \"https://m2msystems.cloud/\",\n};\n\n/**\n * 可能なら最新のドメインを取得し、取得出来なければリリース時のドメインを返す。\n * Q. なぜgetDomainsではなくuseDomainsなのか\n * A. M2M_COMPONENTS_ENVが設定される前に、この関数が呼び出されると常にdevelopmentになってしまうため、\n * Reactを利用するケースを考えるとコンポーネントのレンダリング時などに呼んでもらう必要がある。\n * React hookのような命名にしておくことで、Linterによってこれを強制できる。\n */\nexport const useDomains = async (\n signal?: AbortSignal,\n): Promise<DomainRecord> => {\n const env =\n globalThis.M2M_COMPONENTS_ENV === \"production\"\n ? \"production\"\n : \"development\";\n try {\n const domain = getM2MStorageHubDomain(env);\n const response = await fetch(`${domain}/api/domains/${env}`, { signal });\n if (!response.ok) {\n throw new Error(`Failed to fetch domains: ${response.statusText}`);\n }\n const data = (await response.json()) as DomainRecord;\n return data;\n } catch {\n return globalThis.M2M_COMPONENTS_ENV === \"production\"\n ? productionDomains\n : developmentDomains;\n }\n};\n"],"mappings":";;;;;AAKO,IAAM,qBAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX;AAEO,IAAM,oBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX;AASO,IAAM,aAAa,OACxB,WAC0B;AAC1B,QAAM,MACJ,WAAW,uBAAuB,eAC9B,eACA;AACN,MAAI;AACF,UAAM,SAAS,uBAAuB,GAAG;AACzC,UAAM,WAAW,MAAM,MAAM,GAAG,MAAM,gBAAgB,GAAG,IAAI,EAAE,OAAO,CAAC;AACvE,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI,MAAM,4BAA4B,SAAS,UAAU,EAAE;AAAA,IACnE;AACA,UAAM,OAAQ,MAAM,SAAS,KAAK;AAClC,WAAO;AAAA,EACT,QAAQ;AACN,WAAO,WAAW,uBAAuB,eACrC,oBACA;AAAA,EACN;AACF;","names":[]}
package/domains.d.mts CHANGED
@@ -3,6 +3,13 @@ import { AppLinkKey } from './apps.mjs';
3
3
  type DomainRecord = Record<AppLinkKey, string>;
4
4
  declare const developmentDomains: DomainRecord;
5
5
  declare const productionDomains: DomainRecord;
6
- declare const useDomains: () => DomainRecord;
6
+ /**
7
+ * 可能なら最新のドメインを取得し、取得出来なければリリース時のドメインを返す。
8
+ * Q. なぜgetDomainsではなくuseDomainsなのか
9
+ * A. M2M_COMPONENTS_ENVが設定される前に、この関数が呼び出されると常にdevelopmentになってしまうため、
10
+ * Reactを利用するケースを考えるとコンポーネントのレンダリング時などに呼んでもらう必要がある。
11
+ * React hookのような命名にしておくことで、Linterによってこれを強制できる。
12
+ */
13
+ declare const useDomains: (signal?: AbortSignal) => Promise<DomainRecord>;
7
14
 
8
- export { developmentDomains, productionDomains, useDomains };
15
+ export { type DomainRecord, developmentDomains, productionDomains, useDomains };
package/domains.d.ts CHANGED
@@ -3,6 +3,13 @@ import { AppLinkKey } from './apps.js';
3
3
  type DomainRecord = Record<AppLinkKey, string>;
4
4
  declare const developmentDomains: DomainRecord;
5
5
  declare const productionDomains: DomainRecord;
6
- declare const useDomains: () => DomainRecord;
6
+ /**
7
+ * 可能なら最新のドメインを取得し、取得出来なければリリース時のドメインを返す。
8
+ * Q. なぜgetDomainsではなくuseDomainsなのか
9
+ * A. M2M_COMPONENTS_ENVが設定される前に、この関数が呼び出されると常にdevelopmentになってしまうため、
10
+ * Reactを利用するケースを考えるとコンポーネントのレンダリング時などに呼んでもらう必要がある。
11
+ * React hookのような命名にしておくことで、Linterによってこれを強制できる。
12
+ */
13
+ declare const useDomains: (signal?: AbortSignal) => Promise<DomainRecord>;
7
14
 
8
- export { developmentDomains, productionDomains, useDomains };
15
+ export { type DomainRecord, developmentDomains, productionDomains, useDomains };
package/domains.js CHANGED
@@ -25,6 +25,16 @@ __export(domains_exports, {
25
25
  useDomains: () => useDomains
26
26
  });
27
27
  module.exports = __toCommonJS(domains_exports);
28
+
29
+ // src/storage/getM2MStorageHubDomain.ts
30
+ var getM2MStorageHubDomain = (env) => {
31
+ if (env === "production" || globalThis.M2M_COMPONENTS_ENV === "production") {
32
+ return "https://hub.m2msystems.cloud";
33
+ }
34
+ return "https://hub.dev.m2msystems.cloud";
35
+ };
36
+
37
+ // src/domains.ts
28
38
  var developmentDomains = {
29
39
  core: "https://core.dev.m2msystems.cloud",
30
40
  sumyca: "https://manage.dev.sumyca.com",
@@ -41,8 +51,19 @@ var productionDomains = {
41
51
  checkin: "https://manage.checkin.m2msystems.cloud",
42
52
  systems: "https://m2msystems.cloud/"
43
53
  };
44
- var useDomains = () => {
45
- return globalThis.M2M_COMPONENTS_ENV === "production" ? productionDomains : developmentDomains;
54
+ var useDomains = async (signal) => {
55
+ const env = globalThis.M2M_COMPONENTS_ENV === "production" ? "production" : "development";
56
+ try {
57
+ const domain = getM2MStorageHubDomain(env);
58
+ const response = await fetch(`${domain}/api/domains/${env}`, { signal });
59
+ if (!response.ok) {
60
+ throw new Error(`Failed to fetch domains: ${response.statusText}`);
61
+ }
62
+ const data = await response.json();
63
+ return data;
64
+ } catch {
65
+ return globalThis.M2M_COMPONENTS_ENV === "production" ? productionDomains : developmentDomains;
66
+ }
46
67
  };
47
68
  // Annotate the CommonJS export names for ESM import in node:
48
69
  0 && (module.exports = {
package/domains.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/domains.ts"],"sourcesContent":["import { type AppLinkKey } from \"./apps\";\n\ntype DomainRecord = Record<AppLinkKey, string>;\n\nexport const developmentDomains: DomainRecord = {\n core: \"https://core.dev.m2msystems.cloud\",\n sumyca: \"https://manage.dev.sumyca.com\",\n cleaning: \"https://manager-cleaning.dev.m2msystems.cloud\",\n users: \"https://manage-users.dev.m2msystems.cloud\",\n checkin: \"https://manage.checkin.dev.m2msystems.cloud\",\n systems: \"https://dev.m2msystems.cloud\",\n};\n\nexport const productionDomains: DomainRecord = {\n core: \"https://core.m2msystems.cloud\",\n sumyca: \"https://manage.sumyca.com\",\n cleaning: \"https://manager-cleaning.m2msystems.cloud\",\n users: \"https://manage-users.m2msystems.cloud\",\n checkin: \"https://manage.checkin.m2msystems.cloud\",\n systems: \"https://m2msystems.cloud/\",\n};\n\nexport const useDomains = () => {\n return globalThis.M2M_COMPONENTS_ENV === \"production\"\n ? productionDomains\n : developmentDomains;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,IAAM,qBAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX;AAEO,IAAM,oBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX;AAEO,IAAM,aAAa,MAAM;AAC9B,SAAO,WAAW,uBAAuB,eACrC,oBACA;AACN;","names":[]}
1
+ {"version":3,"sources":["../src/domains.ts","../src/storage/getM2MStorageHubDomain.ts"],"sourcesContent":["import { getM2MStorageHubDomain } from \"./storage/getM2MStorageHubDomain\";\nimport { type AppLinkKey } from \"./apps\";\n\nexport type DomainRecord = Record<AppLinkKey, string>;\n\nexport const developmentDomains: DomainRecord = {\n core: \"https://core.dev.m2msystems.cloud\",\n sumyca: \"https://manage.dev.sumyca.com\",\n cleaning: \"https://manager-cleaning.dev.m2msystems.cloud\",\n users: \"https://manage-users.dev.m2msystems.cloud\",\n checkin: \"https://manage.checkin.dev.m2msystems.cloud\",\n systems: \"https://dev.m2msystems.cloud\",\n};\n\nexport const productionDomains: DomainRecord = {\n core: \"https://core.m2msystems.cloud\",\n sumyca: \"https://manage.sumyca.com\",\n cleaning: \"https://manager-cleaning.m2msystems.cloud\",\n users: \"https://manage-users.m2msystems.cloud\",\n checkin: \"https://manage.checkin.m2msystems.cloud\",\n systems: \"https://m2msystems.cloud/\",\n};\n\n/**\n * 可能なら最新のドメインを取得し、取得出来なければリリース時のドメインを返す。\n * Q. なぜgetDomainsではなくuseDomainsなのか\n * A. M2M_COMPONENTS_ENVが設定される前に、この関数が呼び出されると常にdevelopmentになってしまうため、\n * Reactを利用するケースを考えるとコンポーネントのレンダリング時などに呼んでもらう必要がある。\n * React hookのような命名にしておくことで、Linterによってこれを強制できる。\n */\nexport const useDomains = async (\n signal?: AbortSignal,\n): Promise<DomainRecord> => {\n const env =\n globalThis.M2M_COMPONENTS_ENV === \"production\"\n ? \"production\"\n : \"development\";\n try {\n const domain = getM2MStorageHubDomain(env);\n const response = await fetch(`${domain}/api/domains/${env}`, { signal });\n if (!response.ok) {\n throw new Error(`Failed to fetch domains: ${response.statusText}`);\n }\n const data = (await response.json()) as DomainRecord;\n return data;\n } catch {\n return globalThis.M2M_COMPONENTS_ENV === \"production\"\n ? productionDomains\n : developmentDomains;\n }\n};\n","export const getM2MStorageHubDomain = (env?: \"production\" | \"development\") => {\n if (env === \"production\" || globalThis.M2M_COMPONENTS_ENV === \"production\") {\n return \"https://hub.m2msystems.cloud\";\n }\n return \"https://hub.dev.m2msystems.cloud\";\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,yBAAyB,CAAC,QAAuC;AAC5E,MAAI,QAAQ,gBAAgB,WAAW,uBAAuB,cAAc;AAC1E,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ADAO,IAAM,qBAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX;AAEO,IAAM,oBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX;AASO,IAAM,aAAa,OACxB,WAC0B;AAC1B,QAAM,MACJ,WAAW,uBAAuB,eAC9B,eACA;AACN,MAAI;AACF,UAAM,SAAS,uBAAuB,GAAG;AACzC,UAAM,WAAW,MAAM,MAAM,GAAG,MAAM,gBAAgB,GAAG,IAAI,EAAE,OAAO,CAAC;AACvE,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI,MAAM,4BAA4B,SAAS,UAAU,EAAE;AAAA,IACnE;AACA,UAAM,OAAQ,MAAM,SAAS,KAAK;AAClC,WAAO;AAAA,EACT,QAAQ;AACN,WAAO,WAAW,uBAAuB,eACrC,oBACA;AAAA,EACN;AACF;","names":[]}