@dragonmastery/dragoncore-vue 0.0.30 → 0.0.31

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 (119) hide show
  1. package/dist/{ConsentFlowStep-DsVhXa91.js → ConsentRequired-Bhkxu0rv.js} +119 -11
  2. package/dist/ConsentRequired-Bhkxu0rv.js.map +1 -0
  3. package/dist/{CreateTeamForm-5V_ks5Ie.js → CreateTeamForm-BHgTTHAk.js} +2 -2
  4. package/dist/{CreateTeamForm-B7MsOsiV.js → CreateTeamForm-bpLbK18g.js} +2 -2
  5. package/dist/{CreateTeamForm-B7MsOsiV.js.map → CreateTeamForm-bpLbK18g.js.map} +1 -1
  6. package/dist/{CreateUserPage-DNi45YF4.js → CreateUserPage-C9uOeYDJ.js} +1 -1
  7. package/dist/{CreateUserPage-1WiLNGr_.js → CreateUserPage-CqKcY7_X.js} +1 -1
  8. package/dist/{CreateUserPage-1WiLNGr_.js.map → CreateUserPage-CqKcY7_X.js.map} +1 -1
  9. package/dist/{CreditBalanceDashboard-CoIEyZWh.js → CreditBalanceDashboard-BEsOr0Rw.js} +2 -2
  10. package/dist/{CreditBalanceDashboard-CoIEyZWh.js.map → CreditBalanceDashboard-BEsOr0Rw.js.map} +1 -1
  11. package/dist/{CreditBalanceDashboard-D_TsFlTp.js → CreditBalanceDashboard-DZQqekKa.js} +4 -4
  12. package/dist/{CreditManagement-CdkqQM7F.js → CreditManagement-ByFH6IHV.js} +4 -4
  13. package/dist/{CreditManagement-CCyU_yja.js → CreditManagement-DiVSMbWZ.js} +2 -2
  14. package/dist/{CreditManagement-CCyU_yja.js.map → CreditManagement-DiVSMbWZ.js.map} +1 -1
  15. package/dist/{CreditTransactionHistory-UPg9uDNy.js → CreditTransactionHistory-mcacl2xG.js} +2 -2
  16. package/dist/{CreditTransactionHistory-UPg9uDNy.js.map → CreditTransactionHistory-mcacl2xG.js.map} +1 -1
  17. package/dist/{CustomerCreateSupportTicketForm-CiTTUqtW.js → CustomerCreateSupportTicketForm-CroUyX15.js} +3 -3
  18. package/dist/{CustomerCreateSupportTicketForm-DFH1JtlA.js → CustomerCreateSupportTicketForm-IefplMnK.js} +2 -2
  19. package/dist/{CustomerCreateSupportTicketForm-DFH1JtlA.js.map → CustomerCreateSupportTicketForm-IefplMnK.js.map} +1 -1
  20. package/dist/{CustomerSupportTicketDetailPage-DAwiE2t6.js → CustomerSupportTicketDetailPage-Dengb4Zx.js} +2 -2
  21. package/dist/{CustomerSupportTicketDetailPage-DAwiE2t6.js.map → CustomerSupportTicketDetailPage-Dengb4Zx.js.map} +1 -1
  22. package/dist/{CustomerSupportTicketList-CKZl8jxx.js → CustomerSupportTicketList-CpOaBgNr.js} +30 -30
  23. package/dist/{CustomerSupportTicketSuccess-BJO2xsQR.js → CustomerSupportTicketSuccess-BPUwEn4h.js} +3 -3
  24. package/dist/{CustomerSupportTicketSuccess-BEhFZgtn.js → CustomerSupportTicketSuccess-RQskseXP.js} +2 -2
  25. package/dist/{CustomerSupportTicketSuccess-BEhFZgtn.js.map → CustomerSupportTicketSuccess-RQskseXP.js.map} +1 -1
  26. package/dist/{DefaultReferralTeamPage-D3UIrIZK.js → DefaultReferralTeamPage-Be7-RI3s.js} +1 -1
  27. package/dist/{DefaultReferralTeamPage-D3UIrIZK.js.map → DefaultReferralTeamPage-Be7-RI3s.js.map} +1 -1
  28. package/dist/{EditTeamForm-Bf4rSgQg.js → EditTeamForm-KX2cNn24.js} +2 -2
  29. package/dist/{EditTeamForm-C1_-p3lZ.js → EditTeamForm-RBO99ocN.js} +2 -2
  30. package/dist/{EditTeamForm-C1_-p3lZ.js.map → EditTeamForm-RBO99ocN.js.map} +1 -1
  31. package/dist/{EditUserPage-CQgp-08o.js → EditUserPage-AcRFhChk.js} +1 -1
  32. package/dist/{EditUserPage-CwsO8naT.js → EditUserPage-DGuV8pzp.js} +1 -1
  33. package/dist/{EditUserPage-CwsO8naT.js.map → EditUserPage-DGuV8pzp.js.map} +1 -1
  34. package/dist/{ForgotPassword-Dd-E3_o1.js → ForgotPassword-DZ-d8rWX.js} +2 -2
  35. package/dist/{ForgotPassword-Dd-E3_o1.js.map → ForgotPassword-DZ-d8rWX.js.map} +1 -1
  36. package/dist/{ForgotPassword-BhmO5Lfd.js → ForgotPassword-LnjRUIY7.js} +1 -1
  37. package/dist/{LoginForm-CFADKiln.js → LoginForm-D-gfB2hS.js} +1 -1
  38. package/dist/{LoginForm-CSMHsZrq.js → LoginForm-DEgTB9RF.js} +2 -2
  39. package/dist/{LoginForm-CSMHsZrq.js.map → LoginForm-DEgTB9RF.js.map} +1 -1
  40. package/dist/{Logout-Bdktl4NZ.js → Logout-Bb2xe5BM.js} +2 -2
  41. package/dist/{Logout-Bdktl4NZ.js.map → Logout-Bb2xe5BM.js.map} +1 -1
  42. package/dist/{Logout-CmKJK14I.js → Logout-Ctq-a1GS.js} +1 -1
  43. package/dist/{MfaSetup-BtfQXhLn.js → MfaSetup-6E6apXWC.js} +2 -2
  44. package/dist/{MfaSetup-Bjc3v0hs.js → MfaSetup-m080C6iX.js} +3 -3
  45. package/dist/{MfaSetup-Bjc3v0hs.js.map → MfaSetup-m080C6iX.js.map} +1 -1
  46. package/dist/{MfaVerify-SUfSRf4m.js → MfaVerify-C95WB9v2.js} +2 -2
  47. package/dist/{MfaVerify-uJlPz8xg.js → MfaVerify-D8Ch-8hN.js} +3 -3
  48. package/dist/{MfaVerify-uJlPz8xg.js.map → MfaVerify-D8Ch-8hN.js.map} +1 -1
  49. package/dist/{ResetPassword-Dz2N3pH4.js → ResetPassword-9DFz-Qt3.js} +1 -1
  50. package/dist/{ResetPassword-CyizBRob.js → ResetPassword-DflPd8Qg.js} +2 -2
  51. package/dist/{ResetPassword-CyizBRob.js.map → ResetPassword-DflPd8Qg.js.map} +1 -1
  52. package/dist/{SavedFiltersPage-Cz01ZeHx.js → SavedFiltersPage-ey8wOr0T.js} +31 -31
  53. package/dist/{SavedFiltersPage-Cz01ZeHx.js.map → SavedFiltersPage-ey8wOr0T.js.map} +1 -1
  54. package/dist/Signup-C052ykf5.js +9 -0
  55. package/dist/{Signup-CkhRQErA.js → Signup-KuiKHB4h.js} +22 -30
  56. package/dist/Signup-KuiKHB4h.js.map +1 -0
  57. package/dist/{SignupRequirementsPage-33z--rhH.js → SignupRequirementsPage-CwnsnQKb.js} +1 -1
  58. package/dist/{SignupRequirementsPage-33z--rhH.js.map → SignupRequirementsPage-CwnsnQKb.js.map} +1 -1
  59. package/dist/{StaffCreateSupportTicketForm-BtR-Aowv.js → StaffCreateSupportTicketForm-75Bo0jdz.js} +2 -2
  60. package/dist/{StaffCreateSupportTicketForm-BtR-Aowv.js.map → StaffCreateSupportTicketForm-75Bo0jdz.js.map} +1 -1
  61. package/dist/{StaffCreateSupportTicketForm-D7ctCaXe.js → StaffCreateSupportTicketForm-DYEddYii.js} +3 -3
  62. package/dist/{StaffSupportTicketDetailPage-LqnNfU34.js → StaffSupportTicketDetailPage-6VyPNdw7.js} +2 -2
  63. package/dist/{StaffSupportTicketDetailPage-LqnNfU34.js.map → StaffSupportTicketDetailPage-6VyPNdw7.js.map} +1 -1
  64. package/dist/{StaffSupportTicketList-GyzlONKe.js → StaffSupportTicketList-CxV6u2gF.js} +30 -30
  65. package/dist/{StaffSupportTicketSuccess-B3N-RMoT.js → StaffSupportTicketSuccess-BYoBXx1i.js} +2 -2
  66. package/dist/{StaffSupportTicketSuccess-B3N-RMoT.js.map → StaffSupportTicketSuccess-BYoBXx1i.js.map} +1 -1
  67. package/dist/{StaffSupportTicketSuccess-DvonYilY.js → StaffSupportTicketSuccess-FfnJXc_k.js} +3 -3
  68. package/dist/{SupportStaffPage-geoITTqt.js → SupportStaffPage-CLxWU628.js} +1 -1
  69. package/dist/{SupportStaffPage-geoITTqt.js.map → SupportStaffPage-CLxWU628.js.map} +1 -1
  70. package/dist/{SupportTicketMaintenancePage-CEKi8xQB.js → SupportTicketMaintenancePage-B07avInx.js} +1 -1
  71. package/dist/{SupportTicketMaintenancePage-CEKi8xQB.js.map → SupportTicketMaintenancePage-B07avInx.js.map} +1 -1
  72. package/dist/{TeamAttachmentsTab-ChP4DaUP.js → TeamAttachmentsTab-D0DOmdnr.js} +30 -30
  73. package/dist/{TeamList-_SsqJicG.js → TeamList-DXQj_Omo.js} +2 -2
  74. package/dist/{TeamList-_SsqJicG.js.map → TeamList-DXQj_Omo.js.map} +1 -1
  75. package/dist/{TeamList-cp8Pa2xg.js → TeamList-hmP44hfw.js} +2 -2
  76. package/dist/{TeamParent-BUnqP-dr.js → TeamParent-6JhqsYaO.js} +2 -2
  77. package/dist/{TeamParent-BUnqP-dr.js.map → TeamParent-6JhqsYaO.js.map} +1 -1
  78. package/dist/{TeamParent-BseZ6Zoi.js → TeamParent-BI9ItLoY.js} +2 -2
  79. package/dist/{TimelineNoteInput-BBZv3X4p.js → TimelineNoteInput-P3ycD18j.js} +1 -1
  80. package/dist/{TimelineNoteInput-BBZv3X4p.js.map → TimelineNoteInput-P3ycD18j.js.map} +1 -1
  81. package/dist/UserListPage-9jhUu3TH.js +5 -0
  82. package/dist/{UserListPage-CDMSZpXK.js → UserListPage-DelzxCID.js} +1 -1
  83. package/dist/{UserListPage-CDMSZpXK.js.map → UserListPage-DelzxCID.js.map} +1 -1
  84. package/dist/{VerifyEmail-CWUhRA1o.js → VerifyEmail-Cy2s4yP0.js} +3 -3
  85. package/dist/{VerifyEmail-CWUhRA1o.js.map → VerifyEmail-Cy2s4yP0.js.map} +1 -1
  86. package/dist/{VerifyEmail-CLDngljq.js → VerifyEmail-DBKMZJMx.js} +2 -2
  87. package/dist/{ViewTeam-ttqX2In8.js → ViewTeam-ByZdYEJG.js} +2 -2
  88. package/dist/{ViewTeam-ttqX2In8.js.map → ViewTeam-ByZdYEJG.js.map} +1 -1
  89. package/dist/{ViewTeam-rLNxVgS2.js → ViewTeam-DEOe7wqT.js} +2 -2
  90. package/dist/{customerSupportTicketRoutes-C-DKBy5g.js → customerSupportTicketRoutes-DvfXGaSC.js} +6 -6
  91. package/dist/{customerSupportTicketRoutes-C-DKBy5g.js.map → customerSupportTicketRoutes-DvfXGaSC.js.map} +1 -1
  92. package/dist/index.d.ts +889 -894
  93. package/dist/index.js +31 -32
  94. package/dist/{mfaSchema-C6PatIbY.js → mfaSchema-Ukqzdyck.js} +1 -1
  95. package/dist/{mfaSchema-C6PatIbY.js.map → mfaSchema-Ukqzdyck.js.map} +1 -1
  96. package/dist/{saved_filter-C2N9l_a9.js → saved_filter-erjEgsdK.js} +2 -2
  97. package/dist/{saved_filter-C2N9l_a9.js.map → saved_filter-erjEgsdK.js.map} +1 -1
  98. package/dist/{src-C8B9TJiH.js → src-DSF_hIBe.js} +23 -56
  99. package/dist/src-DSF_hIBe.js.map +1 -0
  100. package/dist/{staffSupportTicketRoutes-CyMecWpC.js → staffSupportTicketRoutes-73ceKhL-.js} +6 -6
  101. package/dist/{staffSupportTicketRoutes-CyMecWpC.js.map → staffSupportTicketRoutes-73ceKhL-.js.map} +1 -1
  102. package/dist/{teamRoutes-CFDsHPkd.js → teamRoutes-CSBq1DNq.js} +7 -7
  103. package/dist/{teamRoutes-CFDsHPkd.js.map → teamRoutes-CSBq1DNq.js.map} +1 -1
  104. package/dist/{useEmailVerificationChannel-QuMSgzzM.js → useEmailVerificationChannel-C76Gnyi1.js} +2 -2
  105. package/dist/{useEmailVerificationChannel-QuMSgzzM.js.map → useEmailVerificationChannel-C76Gnyi1.js.map} +1 -1
  106. package/dist/{useReturnUrl-B5V3SJf5.js → useReturnUrl-DnezAxBA.js} +2 -10
  107. package/dist/{useReturnUrl-B5V3SJf5.js.map → useReturnUrl-DnezAxBA.js.map} +1 -1
  108. package/package.json +2 -2
  109. package/dist/ConsentFlowStep-DsVhXa91.js.map +0 -1
  110. package/dist/ConsentRequired-B3eLxJgx.js +0 -114
  111. package/dist/ConsentRequired-B3eLxJgx.js.map +0 -1
  112. package/dist/Signup-CkhRQErA.js.map +0 -1
  113. package/dist/Signup-cOvXCtJj.js +0 -9
  114. package/dist/SignupConsentFlow-CKMFsnf5.js +0 -223
  115. package/dist/SignupConsentFlow-CKMFsnf5.js.map +0 -1
  116. package/dist/UserListPage-BABli3QG.js +0 -5
  117. package/dist/signupConsentStorage-pWSoHuhO.js +0 -35
  118. package/dist/signupConsentStorage-pWSoHuhO.js.map +0 -1
  119. package/dist/src-C8B9TJiH.js.map +0 -1
@@ -1,223 +0,0 @@
1
- import { d as useEnv, o as useUserSessionStore } from "./useRpcAuth-CJtq1dqM.js";
2
- import "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
3
- import "./useQueryCache-alzaRWEb.js";
4
- import { t as useMutation } from "./useMutation-BLNuJoYl.js";
5
- import { t as AppLink_default } from "./AppLink-FcNGKgvG.js";
6
- import { i as setEmailVerificationReturnUrl, o as withReturnUrl, r as getValidReturnUrl } from "./useReturnUrl-B5V3SJf5.js";
7
- import { i as SIGNUP_EXTENSIBILITY_KEYS, n as getSignupConsentFlowData, t as clearSignupConsentFlowData } from "./signupConsentStorage-pWSoHuhO.js";
8
- import "./ExternalLinkIcon-BKVV5Gjm.js";
9
- import { t as ConsentFlowStep_default } from "./ConsentFlowStep-DsVhXa91.js";
10
- import { computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, nextTick, openBlock, ref, toDisplayString, withCtx } from "vue";
11
- import { useRoute, useRouter } from "vue-router";
12
- import { toast } from "vue3-toastify";
13
-
14
- //#region src/slices/auth/features/signup_consents/SignupConsentFlow.vue
15
- const _hoisted_1 = { class: "w-full max-w-md mx-auto mb-8 sm:mb-10 bg-base-200 px-3 py-4 sm:px-6 sm:py-6 rounded-xl shadow-md container min-w-0" };
16
- const _hoisted_2 = {
17
- key: 0,
18
- class: "text-center"
19
- };
20
- const _hoisted_3 = {
21
- key: 1,
22
- class: "text-center"
23
- };
24
- const _hoisted_4 = {
25
- key: 2,
26
- class: "space-y-6"
27
- };
28
- const _hoisted_5 = ["disabled"];
29
- const _sfc_main = /* @__PURE__ */ defineComponent({
30
- __name: "SignupConsentFlow",
31
- setup(__props) {
32
- const sessionStore = useUserSessionStore();
33
- const router = useRouter();
34
- const route = useRoute();
35
- const { emailVerificationMode } = useEnv();
36
- const getSignupMetadata = inject(SIGNUP_EXTENSIBILITY_KEYS.getSignupMetadata);
37
- const returnUrl = computed(() => route.query.returnUrl);
38
- const signupLink = computed(() => withReturnUrl("/auth/signup", returnUrl.value));
39
- const token = computed(() => route.query.token ?? "");
40
- const storedData = ref(null);
41
- const loading = ref(true);
42
- const consents = computed(() => {
43
- const t = token.value;
44
- const data = storedData.value;
45
- if (!t || !data || data.token !== t) return [];
46
- return data.consents;
47
- });
48
- const { mutate: fetchConsentsForToken } = useMutation((api, _t) => api.users.getSignupConsentsForToken(), {
49
- skipAuthCheck: true,
50
- credentials: "include",
51
- customAuthToken: (t) => t
52
- });
53
- async function loadConsents() {
54
- loading.value = true;
55
- const t = token.value;
56
- if (!t) {
57
- loading.value = false;
58
- return;
59
- }
60
- const data = getSignupConsentFlowData();
61
- if (data && data.token === t) {
62
- storedData.value = data;
63
- loading.value = false;
64
- return;
65
- }
66
- try {
67
- const reqs = await fetchConsentsForToken(t);
68
- if (reqs && Array.isArray(reqs) && reqs.length > 0) storedData.value = {
69
- token: t,
70
- consents: reqs,
71
- metadata: getSignupMetadata?.() ?? {}
72
- };
73
- } catch {}
74
- loading.value = false;
75
- }
76
- loadConsents();
77
- const currentStep = ref(1);
78
- const totalSteps = computed(() => consents.value.length);
79
- const currentConfig = computed(() => consents.value[currentStep.value - 1] ?? null);
80
- const declining = ref(false);
81
- const goingBack = ref(false);
82
- const submitting = ref(false);
83
- const submitError = ref(null);
84
- function getErrorMessage(error) {
85
- if (error instanceof Error && error.message) return error.message;
86
- if (error && typeof error === "object" && "message" in error && typeof error.message === "string") return error.message;
87
- return "Registration failed. Please try again.";
88
- }
89
- const { mutate: signupCompleteMutate } = useMutation((api, input) => api.users.signupComplete({
90
- acceptances: input.acceptances,
91
- metadata: input.metadata
92
- }), {
93
- skipAuthCheck: true,
94
- credentials: "include",
95
- customAuthToken: (input) => input.token
96
- });
97
- async function handleAccept() {
98
- if (!currentConfig.value || !token.value || !consents.value.length) return;
99
- submitError.value = null;
100
- const acceptancesSoFar = {};
101
- for (let i = 0; i < currentStep.value; i++) {
102
- const c = consents.value[i];
103
- if (c) acceptancesSoFar[c.type] = true;
104
- }
105
- if (currentStep.value >= totalSteps.value) {
106
- submitting.value = true;
107
- try {
108
- await completeSignup(acceptancesSoFar);
109
- } catch (err) {
110
- submitError.value = getErrorMessage(err);
111
- } finally {
112
- submitting.value = false;
113
- }
114
- return;
115
- }
116
- currentStep.value++;
117
- nextTick();
118
- }
119
- async function completeSignup(acceptances) {
120
- const t = token.value;
121
- const data = storedData.value;
122
- if (!t) return;
123
- const metadata = data?.metadata ?? getSignupMetadata?.() ?? {};
124
- const session = await signupCompleteMutate({
125
- token: t,
126
- acceptances,
127
- metadata: Object.keys(metadata).length > 0 ? metadata : void 0
128
- });
129
- if (!session?.access_token || !session?.user_details_token) throw new Error("Signup failed");
130
- clearSignupConsentFlowData();
131
- sessionStore.setSession(session.user_details_token);
132
- sessionStore.setAccessToken(session.access_token);
133
- if (emailVerificationMode !== "disabled") {
134
- if (emailVerificationMode === "strict") setEmailVerificationReturnUrl(getValidReturnUrl(route, "/"));
135
- window.scrollTo(0, 0);
136
- const verifyPath = withReturnUrl("/auth/verify-email", returnUrl.value);
137
- await router.push(verifyPath);
138
- return;
139
- }
140
- window.scrollTo(0, 0);
141
- const defaultRedirect = getValidReturnUrl(route, "/");
142
- await router.push(defaultRedirect);
143
- toast.success("Registration successful! You are now logged in.");
144
- }
145
- async function handleDecline() {
146
- declining.value = true;
147
- try {
148
- clearSignupConsentFlowData();
149
- const signupPath = withReturnUrl("/auth/signup", returnUrl.value);
150
- await router.push({
151
- path: signupPath,
152
- query: {
153
- ...route.query,
154
- declined: "1"
155
- }
156
- });
157
- } finally {
158
- declining.value = false;
159
- }
160
- }
161
- async function goBackToSignup() {
162
- goingBack.value = true;
163
- try {
164
- clearSignupConsentFlowData();
165
- const signupPath = withReturnUrl("/auth/signup", returnUrl.value);
166
- const { declined: _d, token: _t, ...rest } = route.query;
167
- await router.push({
168
- path: signupPath,
169
- query: rest
170
- });
171
- } finally {
172
- goingBack.value = false;
173
- }
174
- }
175
- return (_ctx, _cache) => {
176
- return openBlock(), createElementBlock("div", _hoisted_1, [loading.value ? (openBlock(), createElementBlock("div", _hoisted_2, [..._cache[0] || (_cache[0] = [createElementVNode("p", { class: "text-base-content/80" }, "Loading...", -1)])])) : !token.value || !consents.value.length ? (openBlock(), createElementBlock("div", _hoisted_3, [_cache[2] || (_cache[2] = createElementVNode("p", { class: "text-base-content/80" }, "Invalid or expired signup link. Please start over.", -1)), createVNode(AppLink_default, {
177
- to: signupLink.value,
178
- class: "btn btn-primary btn-sm mt-4"
179
- }, {
180
- default: withCtx(() => [..._cache[1] || (_cache[1] = [createTextVNode("Back to sign up", -1)])]),
181
- _: 1
182
- }, 8, ["to"])])) : currentConfig.value ? (openBlock(), createElementBlock("div", _hoisted_4, [createVNode(ConsentFlowStep_default, {
183
- config: currentConfig.value,
184
- "current-step": currentStep.value,
185
- "total-steps": totalSteps.value,
186
- submitting: submitting.value,
187
- "submit-error": submitError.value,
188
- declining: declining.value,
189
- "accept-label": "Accept and continue",
190
- "submit-accept-label": "Submitting...",
191
- "decline-label": "Decline",
192
- "decline-submitting-label": "Returning...",
193
- "intro-text": "Please read the full document before accepting. Scroll to the bottom when you've finished reading. You can decline at any time; if you decline, your account will not be created and you will return to sign up.",
194
- onAccept: handleAccept,
195
- onDecline: handleDecline
196
- }, {
197
- "error-recovery": withCtx(() => [
198
- createElementVNode("span", null, toDisplayString(submitError.value), 1),
199
- _cache[3] || (_cache[3] = createElementVNode("p", { class: "text-sm opacity-90" }, " You can try again below or go back to sign up. ", -1)),
200
- createElementVNode("button", {
201
- type: "button",
202
- class: "btn btn-ghost btn-sm mt-1",
203
- disabled: goingBack.value || submitting.value,
204
- onClick: goBackToSignup
205
- }, toDisplayString(goingBack.value ? "Returning..." : "Back to sign up"), 9, _hoisted_5)
206
- ]),
207
- _: 1
208
- }, 8, [
209
- "config",
210
- "current-step",
211
- "total-steps",
212
- "submitting",
213
- "submit-error",
214
- "declining"
215
- ])])) : createCommentVNode("v-if", true)]);
216
- };
217
- }
218
- });
219
- var SignupConsentFlow_default = _sfc_main;
220
-
221
- //#endregion
222
- export { SignupConsentFlow_default as default };
223
- //# sourceMappingURL=SignupConsentFlow-CKMFsnf5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SignupConsentFlow-CKMFsnf5.js","names":["acceptancesSoFar: Record<string, boolean>"],"sources":["../src/slices/auth/features/signup_consents/SignupConsentFlow.vue"],"sourcesContent":["<template>\n <div class=\"w-full max-w-md mx-auto mb-8 sm:mb-10 bg-base-200 px-3 py-4 sm:px-6 sm:py-6 rounded-xl shadow-md container min-w-0\">\n <div v-if=\"loading\" class=\"text-center\">\n <p class=\"text-base-content/80\">Loading...</p>\n </div>\n\n <div v-else-if=\"!token || !consents.length\" class=\"text-center\">\n <p class=\"text-base-content/80\">Invalid or expired signup link. Please start over.</p>\n <AppLink :to=\"signupLink\" class=\"btn btn-primary btn-sm mt-4\">Back to sign up</AppLink>\n </div>\n\n <div v-else-if=\"currentConfig\" class=\"space-y-6\">\n <ConsentFlowStep\n :config=\"currentConfig\"\n :current-step=\"currentStep\"\n :total-steps=\"totalSteps\"\n :submitting=\"submitting\"\n :submit-error=\"submitError\"\n :declining=\"declining\"\n accept-label=\"Accept and continue\"\n submit-accept-label=\"Submitting...\"\n decline-label=\"Decline\"\n decline-submitting-label=\"Returning...\"\n intro-text=\"Please read the full document before accepting. Scroll to the bottom when you've finished reading. You can decline at any time; if you decline, your account will not be created and you will return to sign up.\"\n @accept=\"handleAccept\"\n @decline=\"handleDecline\"\n >\n <template #error-recovery>\n <span>{{ submitError }}</span>\n <p class=\"text-sm opacity-90\">\n You can try again below or go back to sign up.\n </p>\n <button\n type=\"button\"\n class=\"btn btn-ghost btn-sm mt-1\"\n :disabled=\"goingBack || submitting\"\n @click=\"goBackToSignup\"\n >\n {{ goingBack ? 'Returning...' : 'Back to sign up' }}\n </button>\n </template>\n </ConsentFlowStep>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppLink from '../../../../components/AppLink.vue';\nimport ConsentFlowStep from '../shared/ConsentFlowStep.vue';\nimport type { SignupConsentFlowData } from '../../signupConsentStorage';\nimport {\n clearSignupConsentFlowData,\n getSignupConsentFlowData,\n} from '../../signupConsentStorage';\nimport { SIGNUP_EXTENSIBILITY_KEYS } from '../../signupExtensibilityKeys';\nimport { computed, inject, nextTick, ref } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { toast } from 'vue3-toastify';\nimport { useEnv } from '../../../../composables/useEnv';\nimport { useMutation } from '../../../../composables/useMutation';\nimport { useUserSessionStore } from '../../../../composables/useUserSessionStore';\nimport {\n getValidReturnUrl,\n setEmailVerificationReturnUrl,\n withReturnUrl,\n} from '../../../../utils/useReturnUrl';\n\nconst sessionStore = useUserSessionStore();\nconst router = useRouter();\nconst route = useRoute();\nconst { emailVerificationMode } = useEnv();\nconst getSignupMetadata = inject(SIGNUP_EXTENSIBILITY_KEYS.getSignupMetadata);\n\nconst returnUrl = computed(() => route.query.returnUrl as string | undefined);\nconst signupLink = computed(() => withReturnUrl('/auth/signup', returnUrl.value));\n\nconst token = computed(() => (route.query.token as string) ?? '');\nconst storedData = ref<SignupConsentFlowData | null>(null);\nconst loading = ref(true);\n\n// Load consents from sessionStorage (must match token from URL)\nconst consents = computed(() => {\n const t = token.value;\n const data = storedData.value;\n if (!t || !data || data.token !== t) return [];\n return data.consents;\n});\n\n// Fallback: if no stored data, fetch consents with token (e.g. user opened link in new tab)\nconst { mutate: fetchConsentsForToken } = useMutation(\n (api, _t: string) => api.users.getSignupConsentsForToken(),\n {\n skipAuthCheck: true,\n credentials: 'include',\n customAuthToken: (t) => t,\n },\n);\n\nasync function loadConsents() {\n loading.value = true;\n const t = token.value;\n if (!t) {\n loading.value = false;\n return;\n }\n const data = getSignupConsentFlowData();\n if (data && data.token === t) {\n storedData.value = data;\n loading.value = false;\n return;\n }\n try {\n const reqs = await fetchConsentsForToken(t);\n if (reqs && Array.isArray(reqs) && reqs.length > 0) {\n storedData.value = {\n token: t,\n consents: reqs,\n metadata: getSignupMetadata?.() ?? {},\n };\n }\n } catch {\n // Token invalid/expired - consents stay empty, user sees \"Invalid or expired\" message\n }\n loading.value = false;\n}\n\nloadConsents();\n\nconst currentStep = ref(1);\nconst totalSteps = computed(() => consents.value.length);\nconst currentConfig = computed(\n () => consents.value[currentStep.value - 1] ?? null,\n);\n\nconst declining = ref(false);\nconst goingBack = ref(false);\nconst submitting = ref(false);\nconst submitError = ref<string | null>(null);\n\nfunction getErrorMessage(error: unknown): string {\n if (error instanceof Error && error.message) return error.message;\n if (error && typeof error === 'object' && 'message' in error && typeof (error as { message: unknown }).message === 'string') {\n return (error as { message: string }).message;\n }\n return 'Registration failed. Please try again.';\n}\n\nconst { mutate: signupCompleteMutate } = useMutation(\n (api, input: {\n token: string;\n acceptances: Record<string, boolean>;\n metadata?: Record<string, unknown>;\n }) =>\n api.users.signupComplete({\n acceptances: input.acceptances,\n metadata: input.metadata,\n }),\n {\n skipAuthCheck: true,\n credentials: 'include',\n customAuthToken: (input) => input.token,\n },\n);\n\nasync function handleAccept() {\n const config = currentConfig.value;\n if (!config || !token.value || !consents.value.length) return;\n\n submitError.value = null;\n\n const acceptancesSoFar: Record<string, boolean> = {};\n for (let i = 0; i < currentStep.value; i++) {\n const c = consents.value[i];\n if (c) acceptancesSoFar[c.type] = true;\n }\n\n if (currentStep.value >= totalSteps.value) {\n submitting.value = true;\n try {\n await completeSignup(acceptancesSoFar);\n } catch (err) {\n submitError.value = getErrorMessage(err);\n } finally {\n submitting.value = false;\n }\n return;\n }\n\n currentStep.value++;\n nextTick();\n}\n\nasync function completeSignup(acceptances: Record<string, boolean>) {\n const t = token.value;\n const data = storedData.value;\n if (!t) return;\n\n const metadata = data?.metadata ?? getSignupMetadata?.() ?? {};\n const session = await signupCompleteMutate({\n token: t,\n acceptances,\n metadata: Object.keys(metadata).length > 0 ? metadata : undefined,\n });\n if (!session?.access_token || !session?.user_details_token) {\n throw new Error('Signup failed');\n }\n\n clearSignupConsentFlowData();\n\n sessionStore.setSession(session.user_details_token);\n sessionStore.setAccessToken(session.access_token);\n\n if (emailVerificationMode !== 'disabled') {\n if (emailVerificationMode === 'strict') {\n const targetUrl = getValidReturnUrl(route, '/');\n setEmailVerificationReturnUrl(targetUrl);\n }\n window.scrollTo(0, 0);\n const verifyPath = withReturnUrl('/auth/verify-email', returnUrl.value);\n await router.push(verifyPath);\n return;\n }\n\n window.scrollTo(0, 0);\n const defaultRedirect = getValidReturnUrl(route, '/');\n await router.push(defaultRedirect);\n toast.success('Registration successful! You are now logged in.');\n}\n\nasync function handleDecline() {\n declining.value = true;\n try {\n clearSignupConsentFlowData();\n const signupPath = withReturnUrl('/auth/signup', returnUrl.value);\n await router.push({ path: signupPath, query: { ...route.query, declined: '1' } });\n } finally {\n declining.value = false;\n }\n}\n\nasync function goBackToSignup() {\n goingBack.value = true;\n try {\n clearSignupConsentFlowData();\n const signupPath = withReturnUrl('/auth/signup', returnUrl.value);\n const { declined: _d, token: _t, ...rest } = route.query;\n await router.push({ path: signupPath, query: rest });\n } finally {\n goingBack.value = false;\n }\n}\n</script>\n"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import "./useRpcAuth-CJtq1dqM.js";
2
- import "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
3
- import { t as UserListPage_default } from "./UserListPage-CDMSZpXK.js";
4
-
5
- export { UserListPage_default as default };
@@ -1,35 +0,0 @@
1
- //#region src/slices/auth/signupExtensibilityKeys.ts
2
- /** Injection keys for signup extensibility. Consumer can provide these to supply metadata/headers from their app. */
3
- const SIGNUP_EXTENSIBILITY_KEYS = {
4
- getSignupMetadata: Symbol("getSignupMetadata"),
5
- getSignupHeaders: Symbol("getSignupHeaders")
6
- };
7
-
8
- //#endregion
9
- //#region src/slices/auth/signupConsentStorage.ts
10
- const STORAGE_KEY = "dragoncore-signup-consent-flow";
11
- function setSignupConsentFlowData(data) {
12
- try {
13
- sessionStorage.setItem(STORAGE_KEY, JSON.stringify(data));
14
- } catch {}
15
- }
16
- function getSignupConsentFlowData() {
17
- try {
18
- const raw = sessionStorage.getItem(STORAGE_KEY);
19
- if (!raw) return null;
20
- const parsed = JSON.parse(raw);
21
- if (!parsed?.token || !Array.isArray(parsed.consents)) return null;
22
- return parsed;
23
- } catch {
24
- return null;
25
- }
26
- }
27
- function clearSignupConsentFlowData() {
28
- try {
29
- sessionStorage.removeItem(STORAGE_KEY);
30
- } catch {}
31
- }
32
-
33
- //#endregion
34
- export { SIGNUP_EXTENSIBILITY_KEYS as i, getSignupConsentFlowData as n, setSignupConsentFlowData as r, clearSignupConsentFlowData as t };
35
- //# sourceMappingURL=signupConsentStorage-pWSoHuhO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signupConsentStorage-pWSoHuhO.js","names":[],"sources":["../src/slices/auth/signupExtensibilityKeys.ts","../src/slices/auth/signupConsentStorage.ts"],"sourcesContent":["import type { InjectionKey } from 'vue';\n\n/** Injection keys for signup extensibility. Consumer can provide these to supply metadata/headers from their app. */\nexport const SIGNUP_EXTENSIBILITY_KEYS = {\n /** Returns metadata to merge into signupInitiate payload (e.g. { referral_tag: route.query.ref }). */\n getSignupMetadata: Symbol('getSignupMetadata') as InjectionKey<\n () => Record<string, unknown>\n >,\n /** Returns headers to send with signup requests (e.g. { 'X-Referral-Tag': route.query.ref }). */\n getSignupHeaders: Symbol('getSignupHeaders') as InjectionKey<\n () => Record<string, string>\n >,\n};\n","import type { SignupRequirementsDto } from '@dragonmastery/dragoncore-shared';\n\nconst STORAGE_KEY = 'dragoncore-signup-consent-flow';\n\nexport interface SignupConsentFlowData {\n token: string;\n consents: SignupRequirementsDto;\n /** Metadata from signupInitiate, persisted for signupComplete (e.g. referral_tag). */\n metadata?: Record<string, unknown>;\n}\n\nexport function setSignupConsentFlowData(data: SignupConsentFlowData): void {\n try {\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(data));\n } catch {\n // Ignore storage errors\n }\n}\n\nexport function getSignupConsentFlowData(): SignupConsentFlowData | null {\n try {\n const raw = sessionStorage.getItem(STORAGE_KEY);\n if (!raw) return null;\n const parsed = JSON.parse(raw) as SignupConsentFlowData;\n if (!parsed?.token || !Array.isArray(parsed.consents)) return null;\n return parsed;\n } catch {\n return null;\n }\n}\n\nexport function clearSignupConsentFlowData(): void {\n try {\n sessionStorage.removeItem(STORAGE_KEY);\n } catch {\n // Ignore\n }\n}\n"],"mappings":";;AAGA,MAAa,4BAA4B;CAEvC,mBAAmB,OAAO,oBAAoB;CAI9C,kBAAkB,OAAO,mBAAmB;CAG7C;;;;ACVD,MAAM,cAAc;AASpB,SAAgB,yBAAyB,MAAmC;AAC1E,KAAI;AACF,iBAAe,QAAQ,aAAa,KAAK,UAAU,KAAK,CAAC;SACnD;;AAKV,SAAgB,2BAAyD;AACvE,KAAI;EACF,MAAM,MAAM,eAAe,QAAQ,YAAY;AAC/C,MAAI,CAAC,IAAK,QAAO;EACjB,MAAM,SAAS,KAAK,MAAM,IAAI;AAC9B,MAAI,CAAC,QAAQ,SAAS,CAAC,MAAM,QAAQ,OAAO,SAAS,CAAE,QAAO;AAC9D,SAAO;SACD;AACN,SAAO;;;AAIX,SAAgB,6BAAmC;AACjD,KAAI;AACF,iBAAe,WAAW,YAAY;SAChC"}