@mittwald/ext-bridge 0.2.0-alpha.1000

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 (125) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/js/config/extractHostConfig.mjs +7 -0
  4. package/dist/js/config/extractHostConfig.mjs.map +1 -0
  5. package/dist/js/config/getConfig.mjs +9 -0
  6. package/dist/js/config/getConfig.mjs.map +1 -0
  7. package/dist/js/config/parse.mjs +14 -0
  8. package/dist/js/config/parse.mjs.map +1 -0
  9. package/dist/js/config/schemas.mjs +18 -0
  10. package/dist/js/config/schemas.mjs.map +1 -0
  11. package/dist/js/environment.mjs +6 -0
  12. package/dist/js/environment.mjs.map +1 -0
  13. package/dist/js/error.mjs +10 -0
  14. package/dist/js/error.mjs.map +1 -0
  15. package/dist/js/getExtBridge.mjs +10 -0
  16. package/dist/js/getExtBridge.mjs.map +1 -0
  17. package/dist/js/global-browser.mjs +17 -0
  18. package/dist/js/global-browser.mjs.map +1 -0
  19. package/dist/js/i18next.mjs +2 -0
  20. package/dist/js/i18next.mjs.map +1 -0
  21. package/dist/js/index-browser.mjs +8 -0
  22. package/dist/js/index-browser.mjs.map +1 -0
  23. package/dist/js/index-node.mjs +6 -0
  24. package/dist/js/index-node.mjs.map +1 -0
  25. package/dist/js/index.mjs +2 -0
  26. package/dist/js/index.mjs.map +1 -0
  27. package/dist/js/integrations/i18next/modules/remoteLanguageDetectorModule.mjs +18 -0
  28. package/dist/js/integrations/i18next/modules/remoteLanguageDetectorModule.mjs.map +1 -0
  29. package/dist/js/lib/assertBrowserEnv.mjs +13 -0
  30. package/dist/js/lib/assertBrowserEnv.mjs.map +1 -0
  31. package/dist/js/lib/controllablePromise.mjs +18 -0
  32. package/dist/js/lib/controllablePromise.mjs.map +1 -0
  33. package/dist/js/react/hooks/useConfig.mjs +8 -0
  34. package/dist/js/react/hooks/useConfig.mjs.map +1 -0
  35. package/dist/js/react/hooks/useExtBridge.mjs +9 -0
  36. package/dist/js/react/hooks/useExtBridge.mjs.map +1 -0
  37. package/dist/js/react/hooks/useLanguage.mjs +6 -0
  38. package/dist/js/react/hooks/useLanguage.mjs.map +1 -0
  39. package/dist/js/react.mjs +3 -0
  40. package/dist/js/react.mjs.map +1 -0
  41. package/dist/js/readiness.mjs +36 -0
  42. package/dist/js/readiness.mjs.map +1 -0
  43. package/dist/js/sessionToken/decode.mjs +29 -0
  44. package/dist/js/sessionToken/decode.mjs.map +1 -0
  45. package/dist/js/sessionToken/getAccessToken.mjs +15 -0
  46. package/dist/js/sessionToken/getAccessToken.mjs.map +1 -0
  47. package/dist/js/sessionToken/getSessionToken.mjs +9 -0
  48. package/dist/js/sessionToken/getSessionToken.mjs.map +1 -0
  49. package/dist/js/sessionToken/publicKeys/fetchPublicKey.mjs +17 -0
  50. package/dist/js/sessionToken/publicKeys/fetchPublicKey.mjs.map +1 -0
  51. package/dist/js/sessionToken/publicKeys/publicKeys.mjs +17 -0
  52. package/dist/js/sessionToken/publicKeys/publicKeys.mjs.map +1 -0
  53. package/dist/js/sessionToken/schemas.mjs +19 -0
  54. package/dist/js/sessionToken/schemas.mjs.map +1 -0
  55. package/dist/js/sessionToken/verify.mjs +13 -0
  56. package/dist/js/sessionToken/verify.mjs.map +1 -0
  57. package/dist/types/config/extractHostConfig.d.ts +4 -0
  58. package/dist/types/config/extractHostConfig.d.ts.map +1 -0
  59. package/dist/types/config/getConfig.d.ts +2 -0
  60. package/dist/types/config/getConfig.d.ts.map +1 -0
  61. package/dist/types/config/parse.d.ts +12 -0
  62. package/dist/types/config/parse.d.ts.map +1 -0
  63. package/dist/types/config/schemas.d.ts +12 -0
  64. package/dist/types/config/schemas.d.ts.map +1 -0
  65. package/dist/types/config/schemas.test-types.d.ts +2 -0
  66. package/dist/types/config/schemas.test-types.d.ts.map +1 -0
  67. package/dist/types/config/types.d.ts +6 -0
  68. package/dist/types/config/types.d.ts.map +1 -0
  69. package/dist/types/environment.d.ts +2 -0
  70. package/dist/types/environment.d.ts.map +1 -0
  71. package/dist/types/error.d.ts +4 -0
  72. package/dist/types/error.d.ts.map +1 -0
  73. package/dist/types/getExtBridge.d.ts +2 -0
  74. package/dist/types/getExtBridge.d.ts.map +1 -0
  75. package/dist/types/global-browser.d.ts +4 -0
  76. package/dist/types/global-browser.d.ts.map +1 -0
  77. package/dist/types/index-browser.d.ts +5 -0
  78. package/dist/types/index-browser.d.ts.map +1 -0
  79. package/dist/types/index-node.d.ts +3 -0
  80. package/dist/types/index-node.d.ts.map +1 -0
  81. package/dist/types/index.d.ts +2 -0
  82. package/dist/types/index.d.ts.map +1 -0
  83. package/dist/types/integrations/i18next/index.d.ts +2 -0
  84. package/dist/types/integrations/i18next/index.d.ts.map +1 -0
  85. package/dist/types/integrations/i18next/modules/remoteLanguageDetectorModule.d.ts +3 -0
  86. package/dist/types/integrations/i18next/modules/remoteLanguageDetectorModule.d.ts.map +1 -0
  87. package/dist/types/lib/assertBrowserEnv.d.ts +3 -0
  88. package/dist/types/lib/assertBrowserEnv.d.ts.map +1 -0
  89. package/dist/types/lib/controllablePromise.d.ts +2 -0
  90. package/dist/types/lib/controllablePromise.d.ts.map +1 -0
  91. package/dist/types/react/hooks/index.d.ts +3 -0
  92. package/dist/types/react/hooks/index.d.ts.map +1 -0
  93. package/dist/types/react/hooks/useConfig.d.ts +2 -0
  94. package/dist/types/react/hooks/useConfig.d.ts.map +1 -0
  95. package/dist/types/react/hooks/useExtBridge.d.ts +2 -0
  96. package/dist/types/react/hooks/useExtBridge.d.ts.map +1 -0
  97. package/dist/types/react/hooks/useLanguage.d.ts +2 -0
  98. package/dist/types/react/hooks/useLanguage.d.ts.map +1 -0
  99. package/dist/types/react/index.d.ts +2 -0
  100. package/dist/types/react/index.d.ts.map +1 -0
  101. package/dist/types/readiness.d.ts +5 -0
  102. package/dist/types/readiness.d.ts.map +1 -0
  103. package/dist/types/sessionToken/decode.d.ts +13 -0
  104. package/dist/types/sessionToken/decode.d.ts.map +1 -0
  105. package/dist/types/sessionToken/getAccessToken.d.ts +7 -0
  106. package/dist/types/sessionToken/getAccessToken.d.ts.map +1 -0
  107. package/dist/types/sessionToken/getSessionToken.d.ts +2 -0
  108. package/dist/types/sessionToken/getSessionToken.d.ts.map +1 -0
  109. package/dist/types/sessionToken/index.d.ts +4 -0
  110. package/dist/types/sessionToken/index.d.ts.map +1 -0
  111. package/dist/types/sessionToken/publicKeys/fetchPublicKey.d.ts +2 -0
  112. package/dist/types/sessionToken/publicKeys/fetchPublicKey.d.ts.map +1 -0
  113. package/dist/types/sessionToken/publicKeys/index.d.ts +2 -0
  114. package/dist/types/sessionToken/publicKeys/index.d.ts.map +1 -0
  115. package/dist/types/sessionToken/publicKeys/publicKeys.d.ts +2 -0
  116. package/dist/types/sessionToken/publicKeys/publicKeys.d.ts.map +1 -0
  117. package/dist/types/sessionToken/schemas.d.ts +22 -0
  118. package/dist/types/sessionToken/schemas.d.ts.map +1 -0
  119. package/dist/types/sessionToken/types.d.ts +6 -0
  120. package/dist/types/sessionToken/types.d.ts.map +1 -0
  121. package/dist/types/sessionToken/verify.d.ts +13 -0
  122. package/dist/types/sessionToken/verify.d.ts.map +1 -0
  123. package/dist/types/types.d.ts +17 -0
  124. package/dist/types/types.d.ts.map +1 -0
  125. package/package.json +83 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Mittwald CM Service GmbH & Co. KG and contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # @mittwald/ext-bridge
2
+
3
+ This package is part of
4
+ [Flow – mittwald design system](https://flow.mittwald.de/). See the homepage for
5
+ more details.
@@ -0,0 +1,7 @@
1
+ const extractHostConfig = (config) => ({
2
+ language: config.language,
3
+ theme: config.theme
4
+ });
5
+
6
+ export { extractHostConfig };
7
+ //# sourceMappingURL=extractHostConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractHostConfig.mjs","sources":["../../../src/config/extractHostConfig.ts"],"sourcesContent":["import type { HostConfig } from \"@mittwald/flow-core\";\nimport type { ExtBridgeConfigInput } from \"./types\";\n\nexport const extractHostConfig = (\n config: ExtBridgeConfigInput,\n): HostConfig => ({\n language: config.language,\n theme: config.theme,\n});\n"],"names":[],"mappings":"AAGO,MAAM,iBAAA,GAAoB,CAC/B,MAAA,MACgB;AAAA,EAChB,UAAU,MAAA,CAAO,QAAA;AAAA,EACjB,OAAO,MAAA,CAAO;AAChB,CAAA;;;;"}
@@ -0,0 +1,9 @@
1
+ import { getExtBridge } from '../getExtBridge.mjs';
2
+
3
+ const getConfig = async () => {
4
+ const extBridge = await getExtBridge();
5
+ return extBridge.config;
6
+ };
7
+
8
+ export { getConfig };
9
+ //# sourceMappingURL=getConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConfig.mjs","sources":["../../../src/config/getConfig.ts"],"sourcesContent":["import { getExtBridge } from \"@/getExtBridge\";\n\nexport const getConfig = async () => {\n const extBridge = await getExtBridge();\n return extBridge.config;\n};\n"],"names":[],"mappings":";;AAEO,MAAM,YAAY,YAAY;AACnC,EAAA,MAAM,SAAA,GAAY,MAAM,YAAA,EAAa;AACrC,EAAA,OAAO,SAAA,CAAU,MAAA;AACnB;;;;"}
@@ -0,0 +1,14 @@
1
+ import { config } from './schemas.mjs';
2
+ import { ExtBridgeError } from '../error.mjs';
3
+ import z from 'zod';
4
+
5
+ const parseConfig = (something) => {
6
+ const parsed = config.catchall(z.string().optional().nullable()).safeParse(something);
7
+ if (parsed.error) {
8
+ throw new ExtBridgeError("Invalid config: " + parsed.error.message);
9
+ }
10
+ return parsed.data;
11
+ };
12
+
13
+ export { parseConfig };
14
+ //# sourceMappingURL=parse.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.mjs","sources":["../../../src/config/parse.ts"],"sourcesContent":["import { config } from \"@/config/schemas\";\nimport { ExtBridgeError } from \"@/error\";\nimport z from \"zod\";\n\nexport const parseConfig = (something: unknown) => {\n const parsed = config\n .catchall(z.string().optional().nullable())\n .safeParse(something);\n if (parsed.error) {\n throw new ExtBridgeError(\"Invalid config: \" + parsed.error.message);\n }\n return parsed.data;\n};\n"],"names":[],"mappings":";;;;AAIO,MAAM,WAAA,GAAc,CAAC,SAAA,KAAuB;AACjD,EAAA,MAAM,MAAA,GAAS,MAAA,CACZ,QAAA,CAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CAAE,QAAA,EAAU,CAAA,CACzC,SAAA,CAAU,SAAS,CAAA;AACtB,EAAA,IAAI,OAAO,KAAA,EAAO;AAChB,IAAA,MAAM,IAAI,cAAA,CAAe,kBAAA,GAAqB,MAAA,CAAO,MAAM,OAAO,CAAA;AAAA,EACpE;AACA,EAAA,OAAO,MAAA,CAAO,IAAA;AAChB;;;;"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+
3
+ const baseConfig = z.object({
4
+ sessionId: z.string(),
5
+ userId: z.string(),
6
+ extensionId: z.string(),
7
+ extensionInstanceId: z.string(),
8
+ variantKey: z.string().optional().nullable()
9
+ });
10
+ const contextParameters = z.object({
11
+ appInstallationId: z.string().optional(),
12
+ projectId: z.string().optional(),
13
+ customerId: z.string().optional()
14
+ });
15
+ const config = baseConfig.extend(contextParameters.shape);
16
+
17
+ export { config };
18
+ //# sourceMappingURL=schemas.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.mjs","sources":["../../../src/config/schemas.ts"],"sourcesContent":["import { z } from \"zod\";\n\n/**\n * Breaking Change warning: Do not remove/rename/modify existing properties in\n * the config schema, as they might be used by existing extensions.\n */\nconst baseConfig = z.object({\n sessionId: z.string(),\n userId: z.string(),\n extensionId: z.string(),\n extensionInstanceId: z.string(),\n variantKey: z.string().optional().nullable(),\n});\n\n/**\n * Breaking Change warning: Do not remove/rename/modify existing properties in\n * the config schema, as they might be used by existing extensions.\n */\nconst contextParameters = z.object({\n appInstallationId: z.string().optional(),\n projectId: z.string().optional(),\n customerId: z.string().optional(),\n});\n\nexport const config = baseConfig.extend(contextParameters.shape);\n"],"names":[],"mappings":";;AAMA,MAAM,UAAA,GAAa,EAAE,MAAA,CAAO;AAAA,EAC1B,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,EACpB,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,EACjB,WAAA,EAAa,EAAE,MAAA,EAAO;AAAA,EACtB,mBAAA,EAAqB,EAAE,MAAA,EAAO;AAAA,EAC9B,YAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA;AACpC,CAAC,CAAA;AAMD,MAAM,iBAAA,GAAoB,EAAE,MAAA,CAAO;AAAA,EACjC,iBAAA,EAAmB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACvC,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC,CAAA;AAEM,MAAM,MAAA,GAAS,UAAA,CAAW,MAAA,CAAO,iBAAA,CAAkB,KAAK;;;;"}
@@ -0,0 +1,6 @@
1
+ import { env } from 'std-env';
2
+
3
+ const MW_EXT_API_URL = env["MW_EXT_API_URL"] ?? "https://api.mittwald.de";
4
+
5
+ export { MW_EXT_API_URL };
6
+ //# sourceMappingURL=environment.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.mjs","sources":["../../src/environment.ts"],"sourcesContent":["import { env } from \"std-env\";\n\n/** @internal */\nexport const MW_EXT_API_URL =\n env[\"MW_EXT_API_URL\"] ?? \"https://api.mittwald.de\";\n"],"names":[],"mappings":";;AAGO,MAAM,cAAA,GACX,GAAA,CAAI,gBAAgB,CAAA,IAAK;;;;"}
@@ -0,0 +1,10 @@
1
+ class ExtBridgeError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.message = message;
5
+ }
6
+ }
7
+ ExtBridgeError.prototype.name = "ExtBridgeError";
8
+
9
+ export { ExtBridgeError };
10
+ //# sourceMappingURL=error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.mjs","sources":["../../src/error.ts"],"sourcesContent":["export class ExtBridgeError extends Error {\n constructor(message: string) {\n super(message);\n this.message = message;\n }\n}\n\nExtBridgeError.prototype.name = \"ExtBridgeError\";\n"],"names":[],"mappings":"AAAO,MAAM,uBAAuB,KAAA,CAAM;AAAA,EACxC,YAAY,OAAA,EAAiB;AAC3B,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AACF;AAEA,cAAA,CAAe,UAAU,IAAA,GAAO,gBAAA;;;;"}
@@ -0,0 +1,10 @@
1
+ import { initExtBridge } from './global-browser.mjs';
2
+
3
+ const getExtBridge = async () => {
4
+ initExtBridge();
5
+ await globalThis.mwExtBridge.readiness.isReady();
6
+ return globalThis.mwExtBridge;
7
+ };
8
+
9
+ export { getExtBridge };
10
+ //# sourceMappingURL=getExtBridge.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExtBridge.mjs","sources":["../../src/getExtBridge.ts"],"sourcesContent":["import { initExtBridge } from \"@/global-browser\";\n\nexport const getExtBridge = async () => {\n initExtBridge();\n await globalThis.mwExtBridge.readiness.isReady();\n return globalThis.mwExtBridge;\n};\n"],"names":[],"mappings":";;AAEO,MAAM,eAAe,YAAY;AACtC,EAAA,aAAA,EAAc;AACd,EAAA,MAAM,UAAA,CAAW,WAAA,CAAY,SAAA,CAAU,OAAA,EAAQ;AAC/C,EAAA,OAAO,UAAA,CAAW,WAAA;AACpB;;;;"}
@@ -0,0 +1,17 @@
1
+ import { readinessApi } from './readiness.mjs';
2
+
3
+ const isAlreadyDefined = typeof globalThis.mwExtBridge !== "undefined";
4
+ if (isAlreadyDefined) {
5
+ console.warn(
6
+ "mwExtBridge is already defined. The @mittwald/ext-bridge package is probably installed multiple times."
7
+ );
8
+ }
9
+ const mwExtBridge = {
10
+ readiness: readinessApi
11
+ };
12
+ function initExtBridge() {
13
+ globalThis.mwExtBridge = mwExtBridge;
14
+ }
15
+
16
+ export { initExtBridge, mwExtBridge };
17
+ //# sourceMappingURL=global-browser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-browser.mjs","sources":["../../src/global-browser.ts"],"sourcesContent":["import { readinessApi } from \"@/readiness\";\nimport type { ExtBridge } from \"@/types\";\n\nconst isAlreadyDefined = typeof globalThis.mwExtBridge !== \"undefined\";\n\nif (isAlreadyDefined) {\n console.warn(\n \"mwExtBridge is already defined. The @mittwald/ext-bridge package is probably installed multiple times.\",\n );\n}\n\nexport const mwExtBridge = {\n readiness: readinessApi,\n} as ExtBridge;\n\nexport function initExtBridge(): void {\n globalThis.mwExtBridge = mwExtBridge;\n}\n"],"names":[],"mappings":";;AAGA,MAAM,gBAAA,GAAmB,OAAO,UAAA,CAAW,WAAA,KAAgB,WAAA;AAE3D,IAAI,gBAAA,EAAkB;AACpB,EAAA,OAAA,CAAQ,IAAA;AAAA,IACN;AAAA,GACF;AACF;AAEO,MAAM,WAAA,GAAc;AAAA,EACzB,SAAA,EAAW;AACb;AAEO,SAAS,aAAA,GAAsB;AACpC,EAAA,UAAA,CAAW,WAAA,GAAc,WAAA;AAC3B;;;;"}
@@ -0,0 +1,2 @@
1
+ export { remoteLanguageDetectorModule } from './integrations/i18next/modules/remoteLanguageDetectorModule.mjs';
2
+ //# sourceMappingURL=i18next.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18next.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { initExtBridge } from './global-browser.mjs';
2
+ export { getConfig } from './config/getConfig.mjs';
3
+ export { getSessionToken } from './sessionToken/getSessionToken.mjs';
4
+
5
+ initExtBridge();
6
+
7
+ export { initExtBridge };
8
+ //# sourceMappingURL=index-browser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-browser.mjs","sources":["../../src/index-browser.ts"],"sourcesContent":["import { initExtBridge } from \"@/global-browser\";\n\ninitExtBridge();\n\nexport { initExtBridge };\n\nexport { getConfig } from \"@/config/getConfig\";\nexport { getSessionToken } from \"@/sessionToken/getSessionToken\";\n"],"names":[],"mappings":";;;;AAEA,aAAA,EAAc;;;;"}
@@ -0,0 +1,6 @@
1
+ import './error.mjs';
2
+ import './sessionToken/schemas.mjs';
3
+ import 'jose';
4
+ export { verify } from './sessionToken/verify.mjs';
5
+ export { getAccessToken } from './sessionToken/getAccessToken.mjs';
6
+ //# sourceMappingURL=index-node.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-node.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import '../../../index-browser.mjs';
2
+ import { isBrowser } from '../../../lib/assertBrowserEnv.mjs';
3
+ import 'i18next';
4
+ import { getConfig } from '../../../config/getConfig.mjs';
5
+
6
+ const remoteLanguageDetectorModule = () => ({
7
+ type: "languageDetector",
8
+ async: true,
9
+ detect: async () => {
10
+ if (isBrowser) {
11
+ const config = await getConfig();
12
+ return config.language;
13
+ }
14
+ }
15
+ });
16
+
17
+ export { remoteLanguageDetectorModule };
18
+ //# sourceMappingURL=remoteLanguageDetectorModule.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remoteLanguageDetectorModule.mjs","sources":["../../../../../src/integrations/i18next/modules/remoteLanguageDetectorModule.ts"],"sourcesContent":["import { getConfig } from \"@/index-browser\";\nimport { isBrowser } from \"@/lib/assertBrowserEnv\";\nimport { type LanguageDetectorAsyncModule } from \"i18next\";\n\nexport const remoteLanguageDetectorModule =\n (): LanguageDetectorAsyncModule => ({\n type: \"languageDetector\",\n async: true,\n detect: async () => {\n if (isBrowser) {\n const config = await getConfig();\n return config.language;\n }\n },\n });\n"],"names":[],"mappings":";;;;;AAIO,MAAM,+BACX,OAAoC;AAAA,EAClC,IAAA,EAAM,kBAAA;AAAA,EACN,KAAA,EAAO,IAAA;AAAA,EACP,QAAQ,YAAY;AAClB,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,MAAM,MAAA,GAAS,MAAM,SAAA,EAAU;AAC/B,MAAA,OAAO,MAAA,CAAO,QAAA;AAAA,IAChB;AAAA,EACF;AACF,CAAA;;;;"}
@@ -0,0 +1,13 @@
1
+ import { ExtBridgeError } from '../error.mjs';
2
+
3
+ const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
4
+ const assertBrowserEnv = () => {
5
+ if (!isBrowser) {
6
+ throw new ExtBridgeError(
7
+ "Ext Bridge can only be used in a browser environment. To opt-out from SSR you can use <BrowserOnly> from '@mittwald/flow-remote-react-components'."
8
+ );
9
+ }
10
+ };
11
+
12
+ export { assertBrowserEnv, isBrowser };
13
+ //# sourceMappingURL=assertBrowserEnv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertBrowserEnv.mjs","sources":["../../../src/lib/assertBrowserEnv.ts"],"sourcesContent":["import { ExtBridgeError } from \"@/error\";\n\nexport const isBrowser: boolean =\n typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n\nexport const assertBrowserEnv = () => {\n if (!isBrowser) {\n throw new ExtBridgeError(\n \"Ext Bridge can only be used in a browser environment. To opt-out from SSR you can use <BrowserOnly> from '@mittwald/flow-remote-react-components'.\",\n );\n }\n};\n"],"names":[],"mappings":";;AAEO,MAAM,YACX,OAAO,MAAA,KAAW,WAAA,IAAe,OAAO,OAAO,QAAA,KAAa;AAEvD,MAAM,mBAAmB,MAAM;AACpC,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,MAAM,IAAI,cAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;;;;"}
@@ -0,0 +1,18 @@
1
+ import { ExtBridgeError } from '../error.mjs';
2
+
3
+ const controllablePromise = () => {
4
+ let resolve = () => {
5
+ throw new ExtBridgeError("Unexpected call of resolve()");
6
+ };
7
+ let reject = () => {
8
+ throw new ExtBridgeError("Unexpected call of reject()");
9
+ };
10
+ const promise = new Promise((res, rej) => {
11
+ resolve = res;
12
+ reject = rej;
13
+ });
14
+ return [promise, resolve, reject];
15
+ };
16
+
17
+ export { controllablePromise };
18
+ //# sourceMappingURL=controllablePromise.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controllablePromise.mjs","sources":["../../../src/lib/controllablePromise.ts"],"sourcesContent":["import { ExtBridgeError } from \"@/error\";\n\nexport const controllablePromise = () => {\n let resolve = (): void => {\n throw new ExtBridgeError(\"Unexpected call of resolve()\");\n };\n\n let reject: (error: unknown) => void = () => {\n throw new ExtBridgeError(\"Unexpected call of reject()\");\n };\n\n const promise = new Promise<void>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return [promise, resolve, reject] as const;\n};\n"],"names":[],"mappings":";;AAEO,MAAM,sBAAsB,MAAM;AACvC,EAAA,IAAI,UAAU,MAAY;AACxB,IAAA,MAAM,IAAI,eAAe,8BAA8B,CAAA;AAAA,EACzD,CAAA;AAEA,EAAA,IAAI,SAAmC,MAAM;AAC3C,IAAA,MAAM,IAAI,eAAe,6BAA6B,CAAA;AAAA,EACxD,CAAA;AAEA,EAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAc,CAAC,KAAK,GAAA,KAAQ;AAC9C,IAAA,OAAA,GAAU,GAAA;AACV,IAAA,MAAA,GAAS,GAAA;AAAA,EACX,CAAC,CAAA;AAED,EAAA,OAAO,CAAC,OAAA,EAAS,OAAA,EAAS,MAAM,CAAA;AAClC;;;;"}
@@ -0,0 +1,8 @@
1
+ import { useExtBridge } from './useExtBridge.mjs';
2
+
3
+ const useConfig = () => {
4
+ return useExtBridge().config;
5
+ };
6
+
7
+ export { useConfig };
8
+ //# sourceMappingURL=useConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfig.mjs","sources":["../../../../src/react/hooks/useConfig.ts"],"sourcesContent":["import { useExtBridge } from \"@/react/hooks/useExtBridge\";\n\nexport const useConfig = () => {\n return useExtBridge().config;\n};\n"],"names":[],"mappings":";;AAEO,MAAM,YAAY,MAAM;AAC7B,EAAA,OAAO,cAAa,CAAE,MAAA;AACxB;;;;"}
@@ -0,0 +1,9 @@
1
+ import { getExtBridge } from '../../getExtBridge.mjs';
2
+ import { usePromise } from '@mittwald/react-use-promise';
3
+
4
+ const useExtBridge = () => {
5
+ return usePromise(getExtBridge, []);
6
+ };
7
+
8
+ export { useExtBridge };
9
+ //# sourceMappingURL=useExtBridge.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useExtBridge.mjs","sources":["../../../../src/react/hooks/useExtBridge.ts"],"sourcesContent":["import { getExtBridge } from \"@/getExtBridge\";\nimport { usePromise } from \"@mittwald/react-use-promise\";\n\nexport const useExtBridge = () => {\n return usePromise(getExtBridge, []);\n};\n"],"names":[],"mappings":";;;AAGO,MAAM,eAAe,MAAM;AAChC,EAAA,OAAO,UAAA,CAAW,YAAA,EAAc,EAAE,CAAA;AACpC;;;;"}
@@ -0,0 +1,6 @@
1
+ import { useConfig } from './useConfig.mjs';
2
+
3
+ const useLanguage = () => useConfig().language;
4
+
5
+ export { useLanguage };
6
+ //# sourceMappingURL=useLanguage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLanguage.mjs","sources":["../../../../src/react/hooks/useLanguage.ts"],"sourcesContent":["import { useConfig } from \"./useConfig\";\n\nexport const useLanguage = () => useConfig().language;\n"],"names":[],"mappings":";;AAEO,MAAM,WAAA,GAAc,MAAM,SAAA,EAAU,CAAE;;;;"}
@@ -0,0 +1,3 @@
1
+ export { useConfig } from './react/hooks/useConfig.mjs';
2
+ export { useLanguage } from './react/hooks/useLanguage.mjs';
3
+ //# sourceMappingURL=react.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,36 @@
1
+ import { parseConfig } from './config/parse.mjs';
2
+ import { ExtBridgeError } from './error.mjs';
3
+ import { assertBrowserEnv } from './lib/assertBrowserEnv.mjs';
4
+ import { controllablePromise } from './lib/controllablePromise.mjs';
5
+ import { extractHostConfig } from './config/extractHostConfig.mjs';
6
+
7
+ const timeoutMs = 7500;
8
+ const [readiness, resolveReadiness] = controllablePromise();
9
+ const [timoutPromise, , rejectOnTimeout] = controllablePromise();
10
+ const startTimeout = () => {
11
+ setTimeout(() => {
12
+ rejectOnTimeout(
13
+ new ExtBridgeError(`Ext Bridge not ready after ${timeoutMs}ms`)
14
+ );
15
+ }, timeoutMs);
16
+ return timoutPromise;
17
+ };
18
+ const readinessApi = {
19
+ isReady: async () => {
20
+ assertBrowserEnv();
21
+ await Promise.race([readiness, startTimeout()]);
22
+ },
23
+ setIsReady: async () => {
24
+ const config = await mwExtBridge.connection.getConfig();
25
+ const parsedConfig = parseConfig(config);
26
+ const hostConfig = extractHostConfig(config);
27
+ mwExtBridge.config = {
28
+ ...parsedConfig,
29
+ ...hostConfig
30
+ };
31
+ resolveReadiness();
32
+ }
33
+ };
34
+
35
+ export { readinessApi };
36
+ //# sourceMappingURL=readiness.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.mjs","sources":["../../src/readiness.ts"],"sourcesContent":["import { parseConfig } from \"@/config/parse\";\nimport { ExtBridgeError } from \"@/error\";\nimport { assertBrowserEnv } from \"@/lib/assertBrowserEnv\";\nimport { controllablePromise } from \"@/lib/controllablePromise\";\nimport { extractHostConfig } from \"./config/extractHostConfig\";\n\nconst timeoutMs = 7500;\n\nconst [readiness, resolveReadiness] = controllablePromise();\nconst [timoutPromise, , rejectOnTimeout] = controllablePromise();\n\nconst startTimeout = () => {\n setTimeout(() => {\n rejectOnTimeout(\n new ExtBridgeError(`Ext Bridge not ready after ${timeoutMs}ms`),\n );\n }, timeoutMs);\n return timoutPromise;\n};\n\nexport const readinessApi = {\n isReady: async () => {\n assertBrowserEnv();\n await Promise.race([readiness, startTimeout()]);\n },\n setIsReady: async () => {\n const config = await mwExtBridge.connection.getConfig();\n\n const parsedConfig = parseConfig(config);\n const hostConfig = extractHostConfig(config);\n mwExtBridge.config = {\n ...parsedConfig,\n ...hostConfig,\n };\n\n resolveReadiness();\n },\n} as const;\n"],"names":[],"mappings":";;;;;;AAMA,MAAM,SAAA,GAAY,IAAA;AAElB,MAAM,CAAC,SAAA,EAAW,gBAAgB,CAAA,GAAI,mBAAA,EAAoB;AAC1D,MAAM,CAAC,aAAA,IAAiB,eAAe,IAAI,mBAAA,EAAoB;AAE/D,MAAM,eAAe,MAAM;AACzB,EAAA,UAAA,CAAW,MAAM;AACf,IAAA,eAAA;AAAA,MACE,IAAI,cAAA,CAAe,CAAA,2BAAA,EAA8B,SAAS,CAAA,EAAA,CAAI;AAAA,KAChE;AAAA,EACF,GAAG,SAAS,CAAA;AACZ,EAAA,OAAO,aAAA;AACT,CAAA;AAEO,MAAM,YAAA,GAAe;AAAA,EAC1B,SAAS,YAAY;AACnB,IAAA,gBAAA,EAAiB;AACjB,IAAA,MAAM,QAAQ,IAAA,CAAK,CAAC,SAAA,EAAW,YAAA,EAAc,CAAC,CAAA;AAAA,EAChD,CAAA;AAAA,EACA,YAAY,YAAY;AACtB,IAAA,MAAM,MAAA,GAAS,MAAM,WAAA,CAAY,UAAA,CAAW,SAAA,EAAU;AAEtD,IAAA,MAAM,YAAA,GAAe,YAAY,MAAM,CAAA;AACvC,IAAA,MAAM,UAAA,GAAa,kBAAkB,MAAM,CAAA;AAC3C,IAAA,WAAA,CAAY,MAAA,GAAS;AAAA,MACnB,GAAG,YAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,gBAAA,EAAiB;AAAA,EACnB;AACF;;;;"}
@@ -0,0 +1,29 @@
1
+ import { ExtBridgeError } from '../error.mjs';
2
+ import { sessionTokenPayload } from './schemas.mjs';
3
+ import { decodeJwt } from 'jose';
4
+
5
+ const decode = (jwt) => {
6
+ const {
7
+ sub,
8
+ aud: ignoredAud,
9
+ exp: ignoredExp,
10
+ iat: ignoredIat,
11
+ iss: ignoredIss,
12
+ jti: ignoredJti,
13
+ nbf: ignoredNbf,
14
+ ...rest
15
+ } = decodeJwt(jwt);
16
+ const parsed = sessionTokenPayload.safeParse({
17
+ userId: sub,
18
+ ...rest
19
+ });
20
+ if (parsed.error) {
21
+ throw new ExtBridgeError(
22
+ "Session token payload invalid: " + parsed.error.message
23
+ );
24
+ }
25
+ return parsed.data;
26
+ };
27
+
28
+ export { decode };
29
+ //# sourceMappingURL=decode.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.mjs","sources":["../../../src/sessionToken/decode.ts"],"sourcesContent":["import { ExtBridgeError } from \"@/error\";\nimport { sessionTokenPayload } from \"@/sessionToken/schemas\";\nimport type { SessionTokenPayload } from \"@/sessionToken/types\";\nimport { decodeJwt } from \"jose\";\n\ntype JwtPayloadType = Omit<SessionTokenPayload, \"userId\">;\n\nexport const decode = (jwt: string) => {\n const {\n sub,\n aud: ignoredAud,\n exp: ignoredExp,\n iat: ignoredIat,\n iss: ignoredIss,\n jti: ignoredJti,\n nbf: ignoredNbf,\n ...rest\n } = decodeJwt<JwtPayloadType>(jwt);\n\n const parsed = sessionTokenPayload.safeParse({\n userId: sub,\n ...rest,\n });\n\n if (parsed.error) {\n throw new ExtBridgeError(\n \"Session token payload invalid: \" + parsed.error.message,\n );\n }\n\n return parsed.data;\n};\n"],"names":[],"mappings":";;;;AAOO,MAAM,MAAA,GAAS,CAAC,GAAA,KAAgB;AACrC,EAAA,MAAM;AAAA,IACJ,GAAA;AAAA,IACA,GAAA,EAAK,UAAA;AAAA,IACL,GAAA,EAAK,UAAA;AAAA,IACL,GAAA,EAAK,UAAA;AAAA,IACL,GAAA,EAAK,UAAA;AAAA,IACL,GAAA,EAAK,UAAA;AAAA,IACL,GAAA,EAAK,UAAA;AAAA,IACL,GAAG;AAAA,GACL,GAAI,UAA0B,GAAG,CAAA;AAEjC,EAAA,MAAM,MAAA,GAAS,oBAAoB,SAAA,CAAU;AAAA,IAC3C,MAAA,EAAQ,GAAA;AAAA,IACR,GAAG;AAAA,GACJ,CAAA;AAED,EAAA,IAAI,OAAO,KAAA,EAAO;AAChB,IAAA,MAAM,IAAI,cAAA;AAAA,MACR,iCAAA,GAAoC,OAAO,KAAA,CAAM;AAAA,KACnD;AAAA,EACF;AAEA,EAAA,OAAO,MAAA,CAAO,IAAA;AAChB;;;;"}
@@ -0,0 +1,15 @@
1
+ import { MW_EXT_API_URL } from '../environment.mjs';
2
+ import axios from 'axios';
3
+
4
+ const getAccessToken = async (sessionToken, extensionSecret) => {
5
+ const response = await axios({
6
+ url: `${MW_EXT_API_URL}/v2/authenticate-session-token`,
7
+ data: { sessionToken, extensionSecret },
8
+ validateStatus: (status) => status === 201,
9
+ method: "POST"
10
+ });
11
+ return response.data;
12
+ };
13
+
14
+ export { getAccessToken };
15
+ //# sourceMappingURL=getAccessToken.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccessToken.mjs","sources":["../../../src/sessionToken/getAccessToken.ts"],"sourcesContent":["import { MW_EXT_API_URL } from \"@/environment\";\nimport axios from \"axios\";\n\ninterface ApiResponse {\n expiry: string;\n publicToken: string;\n}\n\nexport const getAccessToken = async (\n sessionToken: string,\n extensionSecret: string,\n) => {\n const response = await axios<ApiResponse>({\n url: `${MW_EXT_API_URL}/v2/authenticate-session-token`,\n data: { sessionToken, extensionSecret },\n validateStatus: (status) => status === 201,\n method: \"POST\",\n });\n return response.data;\n};\n"],"names":[],"mappings":";;;AAQO,MAAM,cAAA,GAAiB,OAC5B,YAAA,EACA,eAAA,KACG;AACH,EAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAmB;AAAA,IACxC,GAAA,EAAK,GAAG,cAAc,CAAA,8BAAA,CAAA;AAAA,IACtB,IAAA,EAAM,EAAE,YAAA,EAAc,eAAA,EAAgB;AAAA,IACtC,cAAA,EAAgB,CAAC,MAAA,KAAW,MAAA,KAAW,GAAA;AAAA,IACvC,MAAA,EAAQ;AAAA,GACT,CAAA;AACD,EAAA,OAAO,QAAA,CAAS,IAAA;AAClB;;;;"}
@@ -0,0 +1,9 @@
1
+ import { getExtBridge } from '../getExtBridge.mjs';
2
+
3
+ const getSessionToken = async () => {
4
+ const bridge = await getExtBridge();
5
+ return bridge.connection.getSessionToken();
6
+ };
7
+
8
+ export { getSessionToken };
9
+ //# sourceMappingURL=getSessionToken.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSessionToken.mjs","sources":["../../../src/sessionToken/getSessionToken.ts"],"sourcesContent":["import { getExtBridge } from \"@/getExtBridge\";\n\nexport const getSessionToken = async () => {\n const bridge = await getExtBridge();\n return bridge.connection.getSessionToken();\n};\n"],"names":[],"mappings":";;AAEO,MAAM,kBAAkB,YAAY;AACzC,EAAA,MAAM,MAAA,GAAS,MAAM,YAAA,EAAa;AAClC,EAAA,OAAO,MAAA,CAAO,WAAW,eAAA,EAAgB;AAC3C;;;;"}
@@ -0,0 +1,17 @@
1
+ import { MW_EXT_API_URL } from '../../environment.mjs';
2
+ import axios from 'axios';
3
+
4
+ const fetchPublicKey = async (serial) => {
5
+ const response = await axios({
6
+ url: `${MW_EXT_API_URL}/v2/public-keys/${serial}`,
7
+ validateStatus: (status) => status === 200,
8
+ params: {
9
+ format: "spki",
10
+ purpose: "session_token"
11
+ }
12
+ });
13
+ return response.data.key;
14
+ };
15
+
16
+ export { fetchPublicKey };
17
+ //# sourceMappingURL=fetchPublicKey.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchPublicKey.mjs","sources":["../../../../src/sessionToken/publicKeys/fetchPublicKey.ts"],"sourcesContent":["import { MW_EXT_API_URL } from \"@/environment\";\nimport axios from \"axios\";\n\ninterface ApiResponse {\n algorithm: string;\n key: string;\n serial: string;\n}\n\nexport const fetchPublicKey = async (serial: string) => {\n const response = await axios<ApiResponse>({\n url: `${MW_EXT_API_URL}/v2/public-keys/${serial}`,\n validateStatus: (status) => status === 200,\n params: {\n format: \"spki\",\n purpose: \"session_token\",\n },\n });\n return response.data.key;\n};\n"],"names":[],"mappings":";;;AASO,MAAM,cAAA,GAAiB,OAAO,MAAA,KAAmB;AACtD,EAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAmB;AAAA,IACxC,GAAA,EAAK,CAAA,EAAG,cAAc,CAAA,gBAAA,EAAmB,MAAM,CAAA,CAAA;AAAA,IAC/C,cAAA,EAAgB,CAAC,MAAA,KAAW,MAAA,KAAW,GAAA;AAAA,IACvC,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA,EAAS;AAAA;AACX,GACD,CAAA;AACD,EAAA,OAAO,SAAS,IAAA,CAAK,GAAA;AACvB;;;;"}
@@ -0,0 +1,17 @@
1
+ import { fetchPublicKey } from './fetchPublicKey.mjs';
2
+ import { importSPKI } from 'jose';
3
+
4
+ const cache = /* @__PURE__ */ new Map();
5
+ const getPublicKey = async (serial) => {
6
+ const cached = cache.get(serial);
7
+ if (cached) {
8
+ return cached;
9
+ }
10
+ const publicKeyFromApi = await fetchPublicKey(serial);
11
+ const cryptoKey = await importSPKI(publicKeyFromApi, "Ed25519");
12
+ cache.set(serial, cryptoKey);
13
+ return cryptoKey;
14
+ };
15
+
16
+ export { getPublicKey };
17
+ //# sourceMappingURL=publicKeys.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicKeys.mjs","sources":["../../../../src/sessionToken/publicKeys/publicKeys.ts"],"sourcesContent":["import { fetchPublicKey } from \"@/sessionToken/publicKeys/fetchPublicKey\";\nimport { importSPKI } from \"jose\";\n\nconst cache = new Map<string, CryptoKey>();\n\nexport const getPublicKey = async (serial: string): Promise<CryptoKey> => {\n const cached = cache.get(serial);\n if (cached) {\n return cached;\n }\n\n const publicKeyFromApi = await fetchPublicKey(serial);\n const cryptoKey = await importSPKI(publicKeyFromApi, \"Ed25519\");\n\n cache.set(serial, cryptoKey);\n return cryptoKey;\n};\n"],"names":[],"mappings":";;;AAGA,MAAM,KAAA,uBAAY,GAAA,EAAuB;AAElC,MAAM,YAAA,GAAe,OAAO,MAAA,KAAuC;AACxE,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,GAAA,CAAI,MAAM,CAAA;AAC/B,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,gBAAA,GAAmB,MAAM,cAAA,CAAe,MAAM,CAAA;AACpD,EAAA,MAAM,SAAA,GAAY,MAAM,UAAA,CAAW,gBAAA,EAAkB,SAAS,CAAA;AAE9D,EAAA,KAAA,CAAM,GAAA,CAAI,QAAQ,SAAS,CAAA;AAC3B,EAAA,OAAO,SAAA;AACT;;;;"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+
3
+ const extensionScopes = z.string().array();
4
+ const extensionContext = z.enum(["project", "customer"]);
5
+ const sessionTokenPayload = z.object({
6
+ sessionId: z.string(),
7
+ userId: z.string(),
8
+ extensionId: z.string(),
9
+ extensionInstanceId: z.string(),
10
+ contextId: z.string(),
11
+ context: extensionContext,
12
+ scopes: extensionScopes,
13
+ authenticatableWithoutSecret: z.boolean(),
14
+ publicKeySerial: z.string(),
15
+ variantKey: z.string().optional().nullable()
16
+ });
17
+
18
+ export { extensionContext, extensionScopes, sessionTokenPayload };
19
+ //# sourceMappingURL=schemas.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.mjs","sources":["../../../src/sessionToken/schemas.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const extensionScopes = z.string().array();\nexport const extensionContext = z.enum([\"project\", \"customer\"]);\n\nexport const sessionTokenPayload = z.object({\n sessionId: z.string(),\n userId: z.string(),\n extensionId: z.string(),\n extensionInstanceId: z.string(),\n contextId: z.string(),\n context: extensionContext,\n scopes: extensionScopes,\n authenticatableWithoutSecret: z.boolean(),\n publicKeySerial: z.string(),\n variantKey: z.string().optional().nullable(),\n});\n"],"names":[],"mappings":";;AAEO,MAAM,eAAA,GAAkB,CAAA,CAAE,MAAA,EAAO,CAAE,KAAA;AACnC,MAAM,mBAAmB,CAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,UAAU,CAAC;AAEvD,MAAM,mBAAA,GAAsB,EAAE,MAAA,CAAO;AAAA,EAC1C,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,EACpB,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,EACjB,WAAA,EAAa,EAAE,MAAA,EAAO;AAAA,EACtB,mBAAA,EAAqB,EAAE,MAAA,EAAO;AAAA,EAC9B,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,EACpB,OAAA,EAAS,gBAAA;AAAA,EACT,MAAA,EAAQ,eAAA;AAAA,EACR,4BAAA,EAA8B,EAAE,OAAA,EAAQ;AAAA,EACxC,eAAA,EAAiB,EAAE,MAAA,EAAO;AAAA,EAC1B,YAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA;AACpC,CAAC;;;;"}
@@ -0,0 +1,13 @@
1
+ import { decode } from './decode.mjs';
2
+ import { getPublicKey } from './publicKeys/publicKeys.mjs';
3
+ import { jwtVerify } from 'jose';
4
+
5
+ const verify = async (sessionToken) => {
6
+ const decoded = decode(sessionToken);
7
+ const publicKey = await getPublicKey(decoded.publicKeySerial);
8
+ await jwtVerify(sessionToken, publicKey);
9
+ return decoded;
10
+ };
11
+
12
+ export { verify };
13
+ //# sourceMappingURL=verify.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.mjs","sources":["../../../src/sessionToken/verify.ts"],"sourcesContent":["import { decode } from \"@/sessionToken/decode\";\nimport { getPublicKey } from \"@/sessionToken/publicKeys\";\nimport { jwtVerify } from \"jose\";\n\nexport const verify = async (sessionToken: string) => {\n const decoded = decode(sessionToken);\n const publicKey = await getPublicKey(decoded.publicKeySerial);\n await jwtVerify(sessionToken, publicKey);\n return decoded;\n};\n"],"names":[],"mappings":";;;;AAIO,MAAM,MAAA,GAAS,OAAO,YAAA,KAAyB;AACpD,EAAA,MAAM,OAAA,GAAU,OAAO,YAAY,CAAA;AACnC,EAAA,MAAM,SAAA,GAAY,MAAM,YAAA,CAAa,OAAA,CAAQ,eAAe,CAAA;AAC5D,EAAA,MAAM,SAAA,CAAU,cAAc,SAAS,CAAA;AACvC,EAAA,OAAO,OAAA;AACT;;;;"}
@@ -0,0 +1,4 @@
1
+ import { HostConfig } from '@mittwald/flow-core';
2
+ import { ExtBridgeConfigInput } from './types';
3
+ export declare const extractHostConfig: (config: ExtBridgeConfigInput) => HostConfig;
4
+ //# sourceMappingURL=extractHostConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractHostConfig.d.ts","sourceRoot":"","sources":["../../../src/config/extractHostConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,oBAAoB,KAC3B,UAGD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const getConfig: () => Promise<import('./types').ExtBridgeConfig>;
2
+ //# sourceMappingURL=getConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConfig.d.ts","sourceRoot":"","sources":["../../../src/config/getConfig.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,kDAGrB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const parseConfig: (something: unknown) => {
2
+ [x: string]: string | null | undefined;
3
+ sessionId: string;
4
+ userId: string;
5
+ extensionId: string;
6
+ extensionInstanceId: string;
7
+ variantKey?: string | null | undefined;
8
+ appInstallationId?: string | undefined;
9
+ projectId?: string | undefined;
10
+ customerId?: string | undefined;
11
+ };
12
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/config/parse.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,GAAI,WAAW,OAAO;;;;;;;;;;CAQ7C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ export declare const config: z.ZodObject<{
3
+ sessionId: z.ZodString;
4
+ userId: z.ZodString;
5
+ extensionId: z.ZodString;
6
+ extensionInstanceId: z.ZodString;
7
+ variantKey: z.ZodNullable<z.ZodOptional<z.ZodString>>;
8
+ appInstallationId: z.ZodOptional<z.ZodString>;
9
+ projectId: z.ZodOptional<z.ZodString>;
10
+ customerId: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strip>;
12
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/config/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,eAAO,MAAM,MAAM;;;;;;;;;iBAA6C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schemas.test-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.test-types.d.ts","sourceRoot":"","sources":["../../../src/config/schemas.test-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { config } from './schemas';
2
+ import { z } from 'zod';
3
+ import { HostConfig } from '@mittwald/flow-core';
4
+ export type ExtBridgeConfig = z.infer<typeof config> & HostConfig;
5
+ export type ExtBridgeConfigInput = z.input<typeof config> & HostConfig;
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,GAAG,UAAU,CAAC;AAClE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,GAAG,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/environment.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare class ExtBridgeError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B"}
@@ -0,0 +1,2 @@
1
+ export declare const getExtBridge: () => Promise<import('./types').ExtBridge>;
2
+ //# sourceMappingURL=getExtBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExtBridge.d.ts","sourceRoot":"","sources":["../../src/getExtBridge.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,4CAIxB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ExtBridge } from './types';
2
+ export declare const mwExtBridge: ExtBridge;
3
+ export declare function initExtBridge(): void;
4
+ //# sourceMappingURL=global-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-browser.d.ts","sourceRoot":"","sources":["../../src/global-browser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAUzC,eAAO,MAAM,WAAW,EAEnB,SAAS,CAAC;AAEf,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
@@ -0,0 +1,5 @@
1
+ import { initExtBridge } from './global-browser';
2
+ export { initExtBridge };
3
+ export { getConfig } from './config/getConfig';
4
+ export { getSessionToken } from './sessionToken/getSessionToken';
5
+ //# sourceMappingURL=index-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-browser.d.ts","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { verify } from './sessionToken';
2
+ export { getAccessToken } from './sessionToken/getAccessToken';
3
+ //# sourceMappingURL=index-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-node.d.ts","sourceRoot":"","sources":["../../src/index-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './modules/remoteLanguageDetectorModule';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/integrations/i18next/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { LanguageDetectorAsyncModule } from 'i18next';
2
+ export declare const remoteLanguageDetectorModule: () => LanguageDetectorAsyncModule;
3
+ //# sourceMappingURL=remoteLanguageDetectorModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remoteLanguageDetectorModule.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/i18next/modules/remoteLanguageDetectorModule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAE3D,eAAO,MAAM,4BAA4B,QACnC,2BASF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const isBrowser: boolean;
2
+ export declare const assertBrowserEnv: () => void;
3
+ //# sourceMappingURL=assertBrowserEnv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertBrowserEnv.d.ts","sourceRoot":"","sources":["../../../src/lib/assertBrowserEnv.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,EAAE,OACiD,CAAC;AAE1E,eAAO,MAAM,gBAAgB,YAM5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const controllablePromise: () => readonly [Promise<void>, () => void, (error: unknown) => void];
2
+ //# sourceMappingURL=controllablePromise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controllablePromise.d.ts","sourceRoot":"","sources":["../../../src/lib/controllablePromise.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,uCACZ,IAAI,UAIF,OAAO,KAAK,IAAI,CAUrC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './useConfig';
2
+ export * from './useLanguage';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useConfig: () => import('../..').ExtBridgeConfig;
2
+ //# sourceMappingURL=useConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfig.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useConfig.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,uCAErB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useExtBridge: () => import('../..').ExtBridge;
2
+ //# sourceMappingURL=useExtBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useExtBridge.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useExtBridge.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,iCAExB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useLanguage: () => string;
2
+ //# sourceMappingURL=useLanguage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLanguage.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useLanguage.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,cAA6B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './hooks';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const readinessApi: {
2
+ readonly isReady: () => Promise<void>;
3
+ readonly setIsReady: () => Promise<void>;
4
+ };
5
+ //# sourceMappingURL=readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/readiness.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,YAAY;;;CAiBf,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const decode: (jwt: string) => {
2
+ sessionId: string;
3
+ userId: string;
4
+ extensionId: string;
5
+ extensionInstanceId: string;
6
+ contextId: string;
7
+ context: "project" | "customer";
8
+ scopes: string[];
9
+ authenticatableWithoutSecret: boolean;
10
+ publicKeySerial: string;
11
+ variantKey?: string | null | undefined;
12
+ };
13
+ //# sourceMappingURL=decode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/sessionToken/decode.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM;;;;;;;;;;;CAwBjC,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface ApiResponse {
2
+ expiry: string;
3
+ publicToken: string;
4
+ }
5
+ export declare const getAccessToken: (sessionToken: string, extensionSecret: string) => Promise<ApiResponse>;
6
+ export {};
7
+ //# sourceMappingURL=getAccessToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccessToken.d.ts","sourceRoot":"","sources":["../../../src/sessionToken/getAccessToken.ts"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,GACzB,cAAc,MAAM,EACpB,iBAAiB,MAAM,yBASxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const getSessionToken: () => Promise<string>;
2
+ //# sourceMappingURL=getSessionToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSessionToken.d.ts","sourceRoot":"","sources":["../../../src/sessionToken/getSessionToken.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,uBAG3B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { decode } from './decode';
2
+ export * from './types';
3
+ export { verify } from './verify';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sessionToken/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const fetchPublicKey: (serial: string) => Promise<string>;
2
+ //# sourceMappingURL=fetchPublicKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchPublicKey.d.ts","sourceRoot":"","sources":["../../../../src/sessionToken/publicKeys/fetchPublicKey.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,GAAU,QAAQ,MAAM,oBAUlD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './publicKeys';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sessionToken/publicKeys/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const getPublicKey: (serial: string) => Promise<CryptoKey>;
2
+ //# sourceMappingURL=publicKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicKeys.d.ts","sourceRoot":"","sources":["../../../../src/sessionToken/publicKeys/publicKeys.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,SAAS,CAWpE,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ export declare const extensionScopes: z.ZodArray<z.ZodString>;
3
+ export declare const extensionContext: z.ZodEnum<{
4
+ project: "project";
5
+ customer: "customer";
6
+ }>;
7
+ export declare const sessionTokenPayload: z.ZodObject<{
8
+ sessionId: z.ZodString;
9
+ userId: z.ZodString;
10
+ extensionId: z.ZodString;
11
+ extensionInstanceId: z.ZodString;
12
+ contextId: z.ZodString;
13
+ context: z.ZodEnum<{
14
+ project: "project";
15
+ customer: "customer";
16
+ }>;
17
+ scopes: z.ZodArray<z.ZodString>;
18
+ authenticatableWithoutSecret: z.ZodBoolean;
19
+ publicKeySerial: z.ZodString;
20
+ variantKey: z.ZodNullable<z.ZodOptional<z.ZodString>>;
21
+ }, z.core.$strip>;
22
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/sessionToken/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,yBAAqB,CAAC;AAClD,eAAO,MAAM,gBAAgB;;;EAAkC,CAAC;AAEhE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAW9B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { extensionContext, extensionScopes, sessionTokenPayload } from './schemas';
2
+ import { z } from 'zod';
3
+ export type ExtensionScopes = z.infer<typeof extensionScopes>;
4
+ export type ExtensionContext = z.infer<typeof extensionContext>;
5
+ export type SessionTokenPayload = z.infer<typeof sessionTokenPayload>;
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sessionToken/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAChE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const verify: (sessionToken: string) => Promise<{
2
+ sessionId: string;
3
+ userId: string;
4
+ extensionId: string;
5
+ extensionInstanceId: string;
6
+ contextId: string;
7
+ context: "project" | "customer";
8
+ scopes: string[];
9
+ authenticatableWithoutSecret: boolean;
10
+ publicKeySerial: string;
11
+ variantKey?: string | null | undefined;
12
+ }>;
13
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/sessionToken/verify.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM,GAAU,cAAc,MAAM;;;;;;;;;;;EAKhD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { ExtBridgeConfig, ExtBridgeConfigInput } from './config/types';
2
+ import { readinessApi } from './readiness';
3
+ export type { ExtBridgeConfig, ExtBridgeConfigInput } from './config/types';
4
+ type ReadinessApi = typeof readinessApi;
5
+ export interface ExtBridgeConnectionApi {
6
+ getSessionToken: () => Promise<string>;
7
+ getConfig: () => Promise<ExtBridgeConfigInput>;
8
+ }
9
+ export interface ExtBridge {
10
+ readiness: ReadinessApi;
11
+ connection: ExtBridgeConnectionApi;
12
+ config: ExtBridgeConfig;
13
+ }
14
+ declare global {
15
+ var mwExtBridge: ExtBridge;
16
+ }
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,KAAK,YAAY,GAAG,OAAO,YAAY,CAAC;AAExC,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,SAAS,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,YAAY,CAAC;IACxB,UAAU,EAAE,sBAAsB,CAAC;IACnC,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,WAAW,EAAE,SAAS,CAAC;CAC5B"}
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "@mittwald/ext-bridge",
3
+ "version": "0.2.0-alpha.1000",
4
+ "type": "module",
5
+ "description": "Bridge for mStudio embedded frontend extensions",
6
+ "homepage": "https://flow.mittwald.de",
7
+ "repository": "https://github.com/mittwald/flow",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/types/index.d.ts"
11
+ },
12
+ "./node": {
13
+ "types": "./dist/types/index-node.d.ts",
14
+ "node": "./dist/js/index-node.mjs"
15
+ },
16
+ "./browser": {
17
+ "types": "./dist/types/index-browser.d.ts",
18
+ "default": "./dist/js/index-browser.mjs"
19
+ },
20
+ "./react": {
21
+ "types": "./dist/types/react/index.d.ts",
22
+ "default": "./dist/js/react.mjs"
23
+ },
24
+ "./i18next": {
25
+ "types": "./dist/types/integrations/i18next/index.d.ts",
26
+ "default": "./dist/js/i18next.mjs"
27
+ }
28
+ },
29
+ "files": [
30
+ "dist"
31
+ ],
32
+ "engines": {
33
+ "node": ">=24.0.0"
34
+ },
35
+ "scripts": {
36
+ "build": "vite build --config vite.build.config.ts",
37
+ "clean": "rimraf dist",
38
+ "test:compile": "tsc --noEmit"
39
+ },
40
+ "dependencies": {
41
+ "@mittwald/react-use-promise": "~4.2.2",
42
+ "axios": "^1.18.1",
43
+ "jose": "^6.2.3",
44
+ "std-env": "^4.1.0",
45
+ "zod": "^4.4.3"
46
+ },
47
+ "devDependencies": {
48
+ "@mittwald/flow-core": "workspace:*",
49
+ "@mittwald/typescript-config": "workspace:*",
50
+ "@types/node": "^25.9.3",
51
+ "@types/react": "^19.2",
52
+ "@types/react-dom": "^19.2",
53
+ "nx": "^22.7.5",
54
+ "prettier": "^3.8.4",
55
+ "react": "^19.2.0",
56
+ "react-dom": "^19.2.0",
57
+ "rimraf": "^6.1.3",
58
+ "rollup-preserve-directives": "^1.1.3",
59
+ "typescript": "^6.0.3",
60
+ "vite": "7.3.6",
61
+ "vite-plugin-checker": "^0.14.1",
62
+ "vite-plugin-dts": "^5.0.3",
63
+ "vite-plugin-externalize-deps": "^0.10.0",
64
+ "vitest": "^4.1.10"
65
+ },
66
+ "peerDependencies": {
67
+ "i18next": "^26.0.0",
68
+ "react": "^19.2.0",
69
+ "react-dom": "^19.2.0"
70
+ },
71
+ "peerDependenciesMeta": {
72
+ "react": {
73
+ "optional": true
74
+ },
75
+ "react-dom": {
76
+ "optional": true
77
+ },
78
+ "i18next": {
79
+ "optional": true
80
+ }
81
+ },
82
+ "gitHead": "f1c99726006518901e9a77538147ad44a0a12ab1"
83
+ }