@camstack/addon-auth 1.1.1 → 1.1.3

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 (21) hide show
  1. package/dist/{dist-JmuFs-U5.mjs → dist-mmJDfwXE.js} +335 -8
  2. package/dist/{dist-CXCR7sEk.js → dist-suALViLT.mjs} +276 -37
  3. package/dist/magic-link/auth-magic-link.addon.js +104 -30
  4. package/dist/magic-link/auth-magic-link.addon.mjs +104 -30
  5. package/dist/oidc/auth-oidc.addon.js +36 -8
  6. package/dist/oidc/auth-oidc.addon.mjs +36 -8
  7. package/dist/webauthn/_stub.js +568 -0
  8. package/dist/webauthn/_virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-Bg_T1-iY.mjs +156 -0
  9. package/dist/webauthn/_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-EnxrfqY5.mjs +26 -0
  10. package/dist/webauthn/_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CQ-aEQ9b.mjs +26 -0
  11. package/dist/webauthn/_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare__react__loadShare__.js-BIIa6vDX.mjs +26 -0
  12. package/dist/webauthn/_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-BL2etuqg.mjs +26 -0
  13. package/dist/webauthn/auth-webauthn.addon.js +141 -5
  14. package/dist/webauthn/auth-webauthn.addon.mjs +136 -37
  15. package/dist/webauthn/dist-CYZr2fwk.mjs +2726 -0
  16. package/dist/webauthn/hostInit-Boe91Eeg.mjs +129 -0
  17. package/dist/webauthn/remoteEntry.js +134 -0
  18. package/dist/webauthn/remoteEntry.ssr.js +33 -0
  19. package/dist/webauthn/virtualExposes-Ckj56FAf.mjs +27 -0
  20. package/dist/webauthn/virtual_mf-exposes-ssr___mfe_internal__addon_auth_webauthn_widgets__remoteEntry_js-C5AzEzK5.mjs +10 -0
  21. package/package.json +30 -5
@@ -0,0 +1,129 @@
1
+ //#region \0virtual:mf:__mfe_internal__addon_auth_webauthn_widgets__H_A_I__hostAutoInit__H_A_I__.js
2
+ var e = "__mf_module_cache__";
3
+ globalThis[e] ||= {
4
+ share: {},
5
+ remote: {}
6
+ }, globalThis[e].share ||= {}, globalThis[e].remote ||= {};
7
+ var t = globalThis[e], n;
8
+ async function r() {
9
+ return n ||= (async () => {
10
+ let e = await (await import("./remoteEntry.js")).init(), n = {
11
+ react: {
12
+ version: "19.2.7",
13
+ scope: "default",
14
+ shareConfig: {
15
+ singleton: !0,
16
+ requiredVersion: "*",
17
+ import: !1
18
+ }
19
+ },
20
+ "react-dom": {
21
+ version: "19.2.7",
22
+ scope: "default",
23
+ shareConfig: {
24
+ singleton: !0,
25
+ requiredVersion: "*",
26
+ import: !1
27
+ }
28
+ },
29
+ "react/jsx-runtime": {
30
+ version: "19.2.7",
31
+ scope: "default",
32
+ shareConfig: {
33
+ singleton: !0,
34
+ requiredVersion: "*",
35
+ import: !1
36
+ }
37
+ },
38
+ "@camstack/types": {
39
+ version: "1.1.36",
40
+ scope: "default",
41
+ shareConfig: {
42
+ singleton: !0,
43
+ requiredVersion: "*",
44
+ import: !1
45
+ }
46
+ },
47
+ "@camstack/sdk": {
48
+ version: "1.1.20",
49
+ scope: "default",
50
+ shareConfig: {
51
+ singleton: !0,
52
+ requiredVersion: "*",
53
+ import: !1
54
+ }
55
+ },
56
+ "@tanstack/react-query": {
57
+ version: "5.101.0",
58
+ scope: "default",
59
+ shareConfig: {
60
+ singleton: !0,
61
+ requiredVersion: "*",
62
+ import: !1
63
+ }
64
+ },
65
+ "@trpc/client": {
66
+ version: "11.18.0",
67
+ scope: "default",
68
+ shareConfig: {
69
+ singleton: !0,
70
+ requiredVersion: "*",
71
+ import: !1
72
+ }
73
+ },
74
+ "@trpc/react-query": {
75
+ version: "11.18.0",
76
+ scope: "default",
77
+ shareConfig: {
78
+ singleton: !0,
79
+ requiredVersion: "*",
80
+ import: !1
81
+ }
82
+ },
83
+ "@camstack/ui-library": {
84
+ version: "1.1.31",
85
+ scope: "default",
86
+ shareConfig: {
87
+ singleton: !0,
88
+ requiredVersion: "*",
89
+ import: !1
90
+ }
91
+ },
92
+ "react-dom/client": {
93
+ version: "19.2.7",
94
+ scope: "default",
95
+ shareConfig: {
96
+ singleton: !0,
97
+ requiredVersion: "*",
98
+ import: !1
99
+ }
100
+ }
101
+ }, r = (e, t, n, r) => {
102
+ let i = ((Array.isArray(r) ? r[0] : r) || "default") + ":";
103
+ return t || !n ? i + e : i + e + "@" + n;
104
+ }, i = (e) => {
105
+ let t = e;
106
+ for (let e = 0; e < 5; e++) {
107
+ let e = t?.default;
108
+ if (!e || typeof e != "object" || Object.keys(e).length === 0) break;
109
+ let n = Object.keys(t).filter((e) => e !== "default").map((e) => t[e]);
110
+ if (n.length > 0 && n.some((e) => e !== void 0)) break;
111
+ t = e;
112
+ }
113
+ return t;
114
+ };
115
+ for (let [a, o] of Object.entries(n)) {
116
+ let n = r(a, o.shareConfig?.singleton, o.version, o.scope);
117
+ t.share[n] === void 0 && await e.loadShare(a, { customShareInfo: { shareConfig: o.shareConfig } }).then((e) => {
118
+ let r = typeof e == "function" ? e() : e;
119
+ return Promise.resolve(r).then((e) => {
120
+ t.share[n] = i(e);
121
+ });
122
+ });
123
+ }
124
+ return await Promise.all([]), e;
125
+ })(), n;
126
+ }
127
+ n = r();
128
+ //#endregion
129
+ export { n as hostInitPromise, r as initHost };
@@ -0,0 +1,134 @@
1
+ import { t as e } from "./dist-CYZr2fwk.mjs";
2
+ //#region virtual:mf-REMOTE_ENTRY_ID:__mfe_internal__addon_auth_webauthn_widgets__remoteEntry_js
3
+ typeof __VUE_HMR_RUNTIME__ > "u" && (globalThis.__VUE_HMR_RUNTIME__ = {
4
+ createRecord() {},
5
+ rerender() {},
6
+ reload() {}
7
+ });
8
+ var t = "__mf_init__virtual:mf:__mfe_internal__addon_auth_webauthn_widgets__mf_v__runtimeInit__mf_v__.js__", n = globalThis[t];
9
+ if (!n) {
10
+ let e, r, i = new Promise((t, n) => {
11
+ e = t, r = n;
12
+ });
13
+ n = globalThis[t] = {
14
+ initPromise: i,
15
+ initResolve: e,
16
+ initReject: r
17
+ };
18
+ }
19
+ var r = n.initResolve, i = "__mf_module_cache__";
20
+ globalThis[i] ||= {
21
+ share: {},
22
+ remote: {}
23
+ }, globalThis[i].share ||= {}, globalThis[i].remote ||= {};
24
+ var a = globalThis[i], o = {}, s = "default", c = "addon_auth_webauthn_widgets", l, u;
25
+ async function d(e) {
26
+ for (let t = 0;; t++) try {
27
+ return await e();
28
+ } catch (e) {
29
+ throw e;
30
+ }
31
+ }
32
+ async function f() {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-Bg_T1-iY.mjs")).catch((e) => {
34
+ throw l = void 0, e;
35
+ }), l;
36
+ }
37
+ async function p() {
38
+ return u ||= d(() => import("./virtualExposes-Ckj56FAf.mjs")).then((e) => e.default ?? e).catch((e) => {
39
+ throw u = void 0, e;
40
+ }), u;
41
+ }
42
+ async function m(t = {}, n = []) {
43
+ let i = (e, t, n, r) => {
44
+ let i = ((Array.isArray(r) ? r[0] : r) || "default") + ":";
45
+ return t || !n ? i + e : i + e + "@" + n;
46
+ }, { usedShared: l, usedRemotes: u } = await f();
47
+ try {
48
+ let e = globalThis.__FEDERATION__?.__SHARE__;
49
+ if (e) {
50
+ let t = (e) => {
51
+ let t = e;
52
+ for (let e = 0; e < 5; e++) {
53
+ let e = t?.default;
54
+ if (!e || typeof e != "object" || Object.keys(e).length === 0) break;
55
+ let n = Object.keys(t).filter((e) => e !== "default").map((e) => t[e]);
56
+ if (n.length > 0 && n.some((e) => e !== void 0)) break;
57
+ t = e;
58
+ }
59
+ return t;
60
+ };
61
+ for (let [, n] of Object.entries(e)) {
62
+ let e = n?.default;
63
+ if (e) for (let [n, r] of Object.entries(e)) for (let [e, o] of Object.entries(r)) {
64
+ if (!o.lib) continue;
65
+ let r = i(n, o.shareConfig?.singleton, e, "default");
66
+ if (a.share[r] !== void 0) continue;
67
+ let s = typeof o.lib == "function" ? o.lib() : o.lib, c = t(await Promise.resolve(s));
68
+ a.share[r] = c;
69
+ let u = l?.[n];
70
+ if (o.shareConfig?.singleton && u) {
71
+ let e = i(n, u.shareConfig?.singleton, u.version, u.scope);
72
+ a.share[e] === void 0 && (a.share[e] = c);
73
+ }
74
+ }
75
+ }
76
+ }
77
+ } catch (e) {
78
+ console.error("[Module Federation] Failed to bridge external shared modules", e);
79
+ }
80
+ for (let [e, t] of Object.entries(l)) {
81
+ let n = i(e, t.shareConfig?.singleton, t.version, t.scope);
82
+ if (a.share[n] !== void 0) continue;
83
+ let r = i(e, !0, t.version, t.scope);
84
+ a.share[r] !== void 0 && (a.share[n] = a.share[r]);
85
+ }
86
+ let p = [], m = globalThis.window === void 0 ? await Promise.all([]) : [], h = e({
87
+ name: c,
88
+ remotes: u,
89
+ shared: l,
90
+ plugins: [...p, ...m],
91
+ shareStrategy: "version-first"
92
+ });
93
+ var g = o[s];
94
+ if (g ||= o[s] = { from: c }, !(n.indexOf(g) >= 0)) {
95
+ n.push(g), h.initShareScopeMap("default", t), r(h);
96
+ try {
97
+ await d(async () => {
98
+ await Promise.all(await h.initializeSharing("default", {
99
+ strategy: "version-first",
100
+ from: "build",
101
+ initScope: n
102
+ }));
103
+ });
104
+ } catch (e) {
105
+ console.error("[Module Federation]", e);
106
+ }
107
+ for (let [e, n] of Object.entries(l)) {
108
+ let r = i(e, n.shareConfig?.singleton, n.version, n.scope);
109
+ if (n.shareConfig?.import !== !1 || a.share[r] !== void 0) continue;
110
+ let o = (e) => {
111
+ let t = e;
112
+ for (let e = 0; e < 5; e++) {
113
+ let e = t?.default;
114
+ if (!e || typeof e != "object" || Object.keys(e).length === 0) break;
115
+ let n = Object.keys(t).filter((e) => e !== "default").map((e) => t[e]);
116
+ if (n.length > 0 && n.some((e) => e !== void 0)) break;
117
+ t = e;
118
+ }
119
+ return t;
120
+ }, s = t?.[e], c = s && s[Object.keys(s)[0]];
121
+ if (!c) continue;
122
+ let l = c.lib || (c.loading ? await c.loading : await c.get?.()), u = typeof l == "function" ? l() : l, d = await Promise.resolve(u);
123
+ a.share[r] = o(d);
124
+ }
125
+ return h;
126
+ }
127
+ }
128
+ async function h(e) {
129
+ let t = await p();
130
+ if (!(e in t)) throw Error(`[Module Federation] Module ${e} does not exist in container.`);
131
+ return t[e]().then((e) => () => e);
132
+ }
133
+ //#endregion
134
+ export { h as get, m as init };
@@ -0,0 +1,33 @@
1
+ import { init as e } from "@module-federation/runtime";
2
+ //#region virtual:mf-REMOTE_ENTRY_SSR_ID:__mfe_internal__addon_auth_webauthn_widgets__remoteEntry_js
3
+ var t;
4
+ async function n() {
5
+ return t ??= import("./virtual_mf-exposes-ssr___mfe_internal__addon_auth_webauthn_widgets__remoteEntry_js-C5AzEzK5.mjs").then((e) => e.default ?? e), t;
6
+ }
7
+ async function r(t = {}, n = []) {
8
+ let r = e({
9
+ name: "addon_auth_webauthn_widgets",
10
+ remotes: [],
11
+ shared: {}
12
+ }), i = { from: "addon_auth_webauthn_widgets" };
13
+ if (!(n.indexOf(i) >= 0)) {
14
+ n.push(i), r.initShareScopeMap("default", t);
15
+ try {
16
+ await Promise.all(await r.initializeSharing("default", {
17
+ strategy: "version-first",
18
+ from: "build",
19
+ initScope: n
20
+ }));
21
+ } catch (e) {
22
+ console.error("[Module Federation SSR]", e);
23
+ }
24
+ return r;
25
+ }
26
+ }
27
+ async function i(e) {
28
+ let t = await n();
29
+ if (!(e in t)) throw Error(`[Module Federation] Module ${e} does not exist in container.`);
30
+ return t[e]().then((e) => () => e);
31
+ }
32
+ //#endregion
33
+ export { i as get, r as init };
@@ -0,0 +1,27 @@
1
+ //#region virtual:mf-exposes:__mfe_internal__addon_auth_webauthn_widgets__remoteEntry_js
2
+ var e = {}, t = /* @__PURE__ */ new Set(), n = Promise.resolve();
3
+ async function r(e) {
4
+ let t = n.then(e, e);
5
+ return n = t.then(() => void 0, () => void 0), t;
6
+ }
7
+ async function i(n) {
8
+ if (typeof document > "u") return;
9
+ let r = e[n] || [];
10
+ await Promise.all(r.map((e) => {
11
+ let n = new URL(e, import.meta.url).href;
12
+ return t.has(n) || (t.add(n), document.querySelector(`link[rel="stylesheet"][data-mf-href="${n}"]`)) ? Promise.resolve() : new Promise((e, t) => {
13
+ let r = document.createElement("link");
14
+ r.rel = "stylesheet", r.href = n, r.setAttribute("data-mf-href", n), r.onload = () => e(), r.onerror = () => t(/* @__PURE__ */ Error(`[Module Federation] Failed to load CSS asset: ${n}`)), document.head.appendChild(r);
15
+ });
16
+ }));
17
+ }
18
+ var a = { "./widgets": async () => {
19
+ await i("./widgets");
20
+ let e = await r(() => import("./_stub.js")), t = {};
21
+ return Object.assign(t, e), Object.defineProperty(t, "__esModule", {
22
+ value: !0,
23
+ enumerable: !1
24
+ }), t;
25
+ } };
26
+ //#endregion
27
+ export { a as default };
@@ -0,0 +1,10 @@
1
+ //#region virtual:mf-exposes-ssr:__mfe_internal__addon_auth_webauthn_widgets__remoteEntry_js
2
+ var e = { "./widgets": async () => {
3
+ let e = await import("./_stub.js"), t = {};
4
+ return Object.assign(t, e), Object.defineProperty(t, "__esModule", {
5
+ value: !0,
6
+ enumerable: !1
7
+ }), t;
8
+ } };
9
+ //#endregion
10
+ export { e as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-auth",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "description": "CamStack authentication bundle — magic-link, OIDC, and WebAuthn/passkey. Multi-entry npm package shipping 3 addons under a single bundle; each addon keeps its own id, capabilities, and runner.",
5
5
  "keywords": [
6
6
  "camstack",
@@ -60,6 +60,9 @@
60
60
  },
61
61
  {
62
62
  "name": "addon-routes"
63
+ },
64
+ {
65
+ "name": "login-method"
63
66
  }
64
67
  ],
65
68
  "protected": true
@@ -80,6 +83,9 @@
80
83
  },
81
84
  {
82
85
  "name": "addon-routes"
86
+ },
87
+ {
88
+ "name": "login-method"
83
89
  }
84
90
  ],
85
91
  "protected": true
@@ -96,10 +102,13 @@
96
102
  "icon": "assets/webauthn/icon.svg",
97
103
  "capabilities": [
98
104
  {
99
- "name": "auth-provider"
105
+ "name": "user-passkeys"
100
106
  },
101
107
  {
102
- "name": "user-passkeys"
108
+ "name": "addon-widgets-source"
109
+ },
110
+ {
111
+ "name": "login-method"
103
112
  }
104
113
  ],
105
114
  "protected": true
@@ -107,21 +116,37 @@
107
116
  ]
108
117
  },
109
118
  "scripts": {
110
- "build": "vite build",
119
+ "build": "vite build && vite build --config vite.widgets.config.ts",
120
+ "build:server": "vite build",
121
+ "build:widgets": "vite build --config vite.widgets.config.ts",
111
122
  "typecheck": "tsc --noEmit",
112
123
  "test": "vitest run --passWithNoTests",
113
124
  "validate": "tsx ../../scripts/validate-addon.ts .",
114
125
  "publish": "npm publish --access public"
115
126
  },
116
127
  "peerDependencies": {
117
- "@camstack/types": "*"
128
+ "@camstack/types": "*",
129
+ "react": ">=18",
130
+ "react-dom": ">=18"
118
131
  },
119
132
  "dependencies": {
133
+ "@simplewebauthn/browser": "11.0.0",
120
134
  "@simplewebauthn/server": "11.0.0",
135
+ "@simplewebauthn/types": "11.0.0",
121
136
  "jose": "^6.2.3"
122
137
  },
123
138
  "devDependencies": {
139
+ "@camstack/sdk": "*",
124
140
  "@camstack/types": "*",
141
+ "@camstack/ui-library": "*",
142
+ "@module-federation/vite": "^1.16.9",
143
+ "@tanstack/react-query": "^5.90.0",
144
+ "@types/react": "^19.0.0",
145
+ "@types/react-dom": "^19.0.0",
146
+ "@vitejs/plugin-react": "^6.0.2",
147
+ "lucide-react": "^0.511.0",
148
+ "react": "^19.0.0",
149
+ "react-dom": "^19.0.0",
125
150
  "tsx": "^4.0.0",
126
151
  "typescript": "~6.0.3",
127
152
  "vite": "^8.0.11",