@tapni/auth 1.0.5 → 1.0.6-4.dev

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 (78) hide show
  1. package/README.md +2 -0
  2. package/dist/.vite/manifest.json +16 -43
  3. package/dist/.well-known/assetlinks.json +10 -12
  4. package/dist/.well-known/microsoft-identity-association.json +5 -5
  5. package/dist/{Apps-DMds3Dv-.js → Apps-DRhdYq0_.js} +34 -34
  6. package/dist/Billing-DkXdzGvS.js +256 -0
  7. package/dist/CustomApp-Dw80xmqU.js +83 -0
  8. package/dist/QR-ByY4IUiV.js +41 -0
  9. package/dist/TapniAuth.es.js +1 -1
  10. package/dist/TapniAuth.umd.js +49 -23
  11. package/dist/{install-L-cxSovH.js → install-Cb6nCJn_.js} +6265 -4741
  12. package/dist/site.webmanifest +11 -1
  13. package/dist/style.css +1 -1
  14. package/dist/{web-IFGkBi0t.js → web-UrTMimK1.js} +2 -2
  15. package/package.json +66 -55
  16. package/src/.prettierrc.json +16 -0
  17. package/src/App.vue +326 -269
  18. package/src/eslint.config.js +15 -0
  19. package/src/index.js +4 -0
  20. package/src/install.js +9 -10
  21. package/src/main.js +54 -57
  22. package/src/mixins/apple.mixin.js +56 -54
  23. package/src/mixins/auth.mixin.js +3 -2
  24. package/src/mixins/global.mixin.js +3 -3
  25. package/src/mixins/google.mixin.js +53 -54
  26. package/src/mixins/microsoft.mixin.js +2 -5
  27. package/src/mixins/okta.mixin.js +1 -1
  28. package/src/mixins/qr-auth.mixin.js +111 -107
  29. package/src/mixins/saml.mixin.js +82 -45
  30. package/src/router/index.js +6 -6
  31. package/src/routes.js +1 -1
  32. package/src/services/Api.js +56 -58
  33. package/src/services/AuthService.js +7 -9
  34. package/src/services/CompanyService.js +10 -10
  35. package/src/services/DeviceService.js +3 -3
  36. package/src/services/UserService.js +48 -45
  37. package/src/services/UtilService.js +317 -225
  38. package/src/store/auth.js +485 -549
  39. package/src/store/constants.js +2 -2
  40. package/src/store/event-bus.js +22 -22
  41. package/src/store/locales/cn.js +476 -458
  42. package/src/store/locales/de.js +478 -517
  43. package/src/store/locales/en.js +454 -513
  44. package/src/store/locales/es.js +477 -524
  45. package/src/store/locales/fr.js +477 -516
  46. package/src/store/locales/it.js +477 -514
  47. package/src/store/locales/ja.js +488 -0
  48. package/src/store/locales/kr.js +477 -491
  49. package/src/store/locales/lang.js +51 -43
  50. package/src/store/locales/pt.js +488 -0
  51. package/src/store/locales/sr.js +477 -492
  52. package/src/store/locales/tr.js +477 -487
  53. package/src/store/store.js +6 -6
  54. package/src/views/Account.vue +36 -8
  55. package/src/views/Billing.vue +464 -34
  56. package/src/views/Callback.vue +36 -33
  57. package/src/views/General.vue +151 -185
  58. package/src/views/Login.vue +2 -25
  59. package/src/views/Register.vue +2 -12
  60. package/src/views/Reset.vue +132 -135
  61. package/src/views/Security.vue +13 -7
  62. package/src/views/Verify.vue +153 -151
  63. package/src/views/Welcome.vue +85 -71
  64. package/dist/Account-Cuz87g_8.js +0 -153
  65. package/dist/Billing-BXlQEuNy.js +0 -113
  66. package/dist/CustomApp-CLCMXmMO.js +0 -83
  67. package/dist/General-dW73bMoR.js +0 -479
  68. package/dist/QR-D6ZGcPM0.js +0 -41
  69. package/dist/index.css +0 -193
  70. package/dist/web-AXRKjAOB.js +0 -92
  71. package/src/components/DELETE_Language.vue +0 -168
  72. package/src/components/DELETE_LinkIcon.vue +0 -288
  73. package/src/components/DELETE_ModalOverlay.vue +0 -68
  74. package/src/components/DELETE_OTP.vue +0 -105
  75. package/src/components/DELETE_SSO.vue +0 -120
  76. package/src/components/DELETE_SSOPick.vue +0 -166
  77. package/src/mixins/DELETE_mfa-auth.mixin.js +0 -53
  78. package/src/mixins/facebook.mixin.js +0 -78
@@ -1,155 +1,152 @@
1
1
  <template>
2
- <form v-if="!passwordChange" class="page-login content-boxed content-boxed-padding" @submit.prevent="resetEmail" autocomplete="on">
3
- <h3 class="bold no-bottom center-text" style="margin-top: 63px;">{{ssoLang[this.appLanguage].reset_password}}</h3>
4
- <p class="half-bottom small-top center-text color-black"></p>
5
- <div class="page-login-field half-top color-black">
6
- <i style="padding-top: 10px; margin-left: 10px;">
7
- <img src="https://cdn.tapni.co/icons/mail.png" class="responsive-image" style="width: 80%;">
8
- </i>
9
- <input id="emailInput" v-model="email" @keydown.space.prevent type="email" :placeholder="ssoLang[this.appLanguage].email" required>
10
- <em></em>
11
- </div>
12
- <button type="submit" class="button black-button google-button bg-tapni-grey button-90 button-center uppercase bold full-top">
13
- <span v-if="!submitted" class="uppercase">{{ssoLang[this.appLanguage].reset_password}}</span>
14
- <span v-else class="button--loading button__loader"></span>
15
- </button>
16
- <div class="decoration decoration-lines-thin no-bottom half-top"></div>
17
- <p class="close-text center-text half-top color-black">
18
- <span v-html="ssoLang[this.appLanguage].reset_password_p1"></span><a :href="'mailto:support@tapni.com?subject=' + ssoLang[this.appLanguage].password_reset_t"> support@tapni.com</a>
19
- </p>
20
- <div class="decoration decoration-lines-thin no-bottom half-top"></div>
2
+ <form v-if="!passwordChange" class="page-login content-boxed content-boxed-padding" @submit.prevent="resetEmail" autocomplete="on">
3
+ <h3 class="bold no-bottom center-text text-[22px]" style="margin-top: 63px">{{ ssoLang[this.appLanguage].reset_password }}</h3>
4
+ <p class="half-bottom small-top center-text color-black"></p>
5
+ <div class="page-login-field half-top color-black">
6
+ <i style="padding-top: 10px; margin-left: 10px">
7
+ <img src="https://cdn.tapni.co/icons/mail.png" class="responsive-image" style="width: 80%" />
8
+ </i>
9
+ <input id="emailInput" v-model="email" @keydown.space.prevent type="email" :placeholder="ssoLang[this.appLanguage].email" required />
10
+ <em></em>
11
+ </div>
12
+ <button type="submit" class="button black-button google-button bg-tapni-grey button-90 button-center uppercase bold full-top">
13
+ <span v-if="!submitted" class="uppercase">{{ ssoLang[this.appLanguage].reset_password }}</span>
14
+ <span v-else class="button--loading button__loader"></span>
15
+ </button>
16
+ <div class="decoration decoration-lines-thin no-bottom half-top"></div>
17
+ <p class="close-text center-text half-top color-black"><span v-html="ssoLang[this.appLanguage].reset_password_p1"></span><a :href="'mailto:support@tapni.com?subject=' + ssoLang[this.appLanguage].password_reset_t"> support@tapni.com</a></p>
18
+ <div class="decoration decoration-lines-thin no-bottom half-top"></div>
21
19
 
22
- <div class="page-login-links">
23
- <router-link class="create float-right" to="/verify">{{ssoLang[this.appLanguage].verify_account}}</router-link>
24
- <router-link class="forgot float-left" to="/login">{{ssoLang[this.appLanguage].sign_in}}</router-link>
25
- <div class="clear"></div>
26
- </div>
27
- </form>
28
- <form v-else class="page-login content-boxed content-boxed-padding" @submit.prevent="changePw">
29
- <h3 class="bold no-bottom center-text" style="margin-top: 63px;">{{ssoLang[this.appLanguage].password_change}}</h3>
30
- <p class="half-bottom small-top center-text color-black">{{ssoLang[this.appLanguage].password_new}}</p>
31
- <div class="page-login-field half-top">
32
- <i style="padding-top: 15px">
33
- <img src="https://cdn.tapni.co/icons/padlock.png" class="responsive-image" style="width: 50%;">
34
- </i>
35
- <input v-model="password" :type="revealPassword ? 'text' : 'password'" :placeholder="ssoLang[this.appLanguage].password" required>
36
- <em @click="revealPassword = !revealPassword">
37
- <img v-show="!revealPassword" src="https://cdn.tapni.co/icons/reveal-password.png" class="responsive-image password-reveal-icon">
38
- <img v-show="revealPassword" src="https://cdn.tapni.co/icons/hide-password.png" class="responsive-image password-reveal-icon">
39
- </em>
40
- </div>
41
- <div class="page-login-field half-top">
42
- <i style="padding-top: 15px">
43
- <img src="https://cdn.tapni.co/icons/padlock.png" class="responsive-image" style="width: 50%;">
44
- </i>
45
- <input v-model="passwordRepeat" :type="revealPassword2 ? 'text' : 'password'" :placeholder="ssoLang[this.appLanguage].password_repeat" required>
46
- <em @click="revealPassword2 = !revealPassword2">
47
- <img v-show="!revealPassword2" src="https://cdn.tapni.co/icons/reveal-password.png" class="responsive-image password-reveal-icon">
48
- <img v-show="revealPassword2" src="https://cdn.tapni.co/icons/hide-password.png" class="responsive-image password-reveal-icon">
49
- </em>
50
- </div>
51
- <button type="submit" class="button black-button google-button bg-tapni-grey button-90 button-center uppercase bold full-top">
52
- <span v-if="!submitted" class="uppercase">{{ssoLang[this.appLanguage].password_change}}</span>
53
- <span v-else class="button--loading button__loader"></span>
54
- </button>
20
+ <div class="page-login-links">
21
+ <router-link class="create float-right" to="/verify">{{ ssoLang[this.appLanguage].verify_account }}</router-link>
22
+ <router-link class="forgot float-left" to="/login">{{ ssoLang[this.appLanguage].sign_in }}</router-link>
23
+ <div class="clear"></div>
24
+ </div>
25
+ </form>
26
+ <form v-else class="page-login content-boxed content-boxed-padding" @submit.prevent="changePw">
27
+ <h3 class="bold no-bottom center-text" style="margin-top: 63px">{{ ssoLang[this.appLanguage].password_change }}</h3>
28
+ <p class="half-bottom small-top center-text color-black">{{ ssoLang[this.appLanguage].password_new }}</p>
29
+ <div class="page-login-field half-top">
30
+ <i style="padding-top: 15px">
31
+ <img src="https://cdn.tapni.co/icons/padlock.png" class="responsive-image" style="width: 50%" />
32
+ </i>
33
+ <input v-model="password" :type="revealPassword ? 'text' : 'password'" :placeholder="ssoLang[this.appLanguage].password" required />
34
+ <em @click="revealPassword = !revealPassword">
35
+ <img v-show="!revealPassword" src="https://cdn.tapni.co/icons/reveal-password.png" class="responsive-image password-reveal-icon" />
36
+ <img v-show="revealPassword" src="https://cdn.tapni.co/icons/hide-password.png" class="responsive-image password-reveal-icon" />
37
+ </em>
38
+ </div>
39
+ <div class="page-login-field half-top">
40
+ <i style="padding-top: 15px">
41
+ <img src="https://cdn.tapni.co/icons/padlock.png" class="responsive-image" style="width: 50%" />
42
+ </i>
43
+ <input v-model="passwordRepeat" :type="revealPassword2 ? 'text' : 'password'" :placeholder="ssoLang[this.appLanguage].password_repeat" required />
44
+ <em @click="revealPassword2 = !revealPassword2">
45
+ <img v-show="!revealPassword2" src="https://cdn.tapni.co/icons/reveal-password.png" class="responsive-image password-reveal-icon" />
46
+ <img v-show="revealPassword2" src="https://cdn.tapni.co/icons/hide-password.png" class="responsive-image password-reveal-icon" />
47
+ </em>
48
+ </div>
49
+ <button type="submit" class="button black-button google-button bg-tapni-grey button-90 button-center uppercase bold full-top">
50
+ <span v-if="!submitted" class="uppercase">{{ ssoLang[this.appLanguage].password_change }}</span>
51
+ <span v-else class="button--loading button__loader"></span>
52
+ </button>
55
53
 
56
- <div class="decoration decoration-lines-thin no-bottom half-top"></div>
57
- <p class="close-text center-text half-top color-black">
58
- <span v-html="ssoLang[this.appLanguage].reset_password_p2"></span> <a :href="'mailto:support@tapni.com?subject=' + ssoLang[this.appLanguage].password_reset_t"> support@tapni.com</a>
59
- </p>
60
- </form>
54
+ <div class="decoration decoration-lines-thin no-bottom half-top"></div>
55
+ <p class="close-text center-text half-top color-black"><span v-html="ssoLang[this.appLanguage].reset_password_p2"></span> <a :href="'mailto:support@tapni.com?subject=' + ssoLang[this.appLanguage].password_reset_t"> support@tapni.com</a></p>
56
+ </form>
61
57
  </template>
62
58
 
63
59
  <script>
64
- import AuthMixin from "../mixins/auth.mixin";
65
- import {EventBus} from "../store/event-bus";
60
+ import AuthMixin from '../mixins/auth.mixin';
61
+ import { EventBus } from '../store/event-bus';
66
62
 
67
63
  export default {
68
- name: 'AuthReset',
69
- mixins: [AuthMixin],
70
- data () {
71
- return {
72
- loading: true,
73
- submitted: false,
74
- passwordChange: false,
75
- email: '',
76
- password: '',
77
- passwordRepeat: '',
78
- code: '',
79
- captcha: '',
80
- revealPassword: false,
81
- revealPassword2: false,
82
- }
83
- },
84
- mounted () {
85
- if (this.$storex.verifyEmail) {
86
- this.email = this.$storex.verifyEmail
87
- }
88
- if (this.$route.query.c) {
89
- this.code = this.$route.query.c;
90
- this.passwordChange = true
91
- }
92
- if (this.$route.query.e) {
93
- this.email = this.$route.query.e
94
- }
95
- EventBus.$emit('ssoEvent', {name: 'setLoading', data: false})
96
- },
97
- methods: {
98
- async resetEmail() {
99
- // if (this.captcha === '') return this.errorHandler({ message: 'Please select recaptcha' });
64
+ name: 'AuthReset',
65
+ mixins: [AuthMixin],
66
+ data() {
67
+ return {
68
+ loading: true,
69
+ submitted: false,
70
+ passwordChange: false,
71
+ email: '',
72
+ password: '',
73
+ passwordRepeat: '',
74
+ code: '',
75
+ captcha: '',
76
+ revealPassword: false,
77
+ revealPassword2: false
78
+ };
79
+ },
80
+ mounted() {
81
+ if (this.$storex.verifyEmail) {
82
+ this.email = this.$storex.verifyEmail;
83
+ }
84
+ if (this.$route.query.c) {
85
+ this.code = this.$route.query.c;
86
+ this.passwordChange = true;
87
+ }
88
+ if (this.$route.query.e) {
89
+ this.email = this.$route.query.e;
90
+ }
91
+ EventBus.$emit('ssoEvent', { name: 'setLoading', data: false });
92
+ },
93
+ methods: {
94
+ async resetEmail() {
95
+ // if (this.captcha === '') return this.errorHandler({ message: 'Please select recaptcha' });
100
96
 
101
- if (this.submitted) return
102
- this.submitted = true
97
+ if (this.submitted) return;
98
+ this.submitted = true;
103
99
 
104
- this.email = this.email.trim()
100
+ this.email = this.email.trim();
105
101
 
106
- let data = {
107
- email: this.email,
108
- captchaToken: await this.getCaptchaToken('password_reset')
109
- };
102
+ let data = {
103
+ email: this.email,
104
+ captchaToken: await this.getCaptchaToken('password_reset')
105
+ };
110
106
 
111
- await this.reset(data)
112
- this.submitted = false
113
- await this.$router.push('/verify?e=' + this.email + '#reset')
107
+ await this.reset(data);
108
+ this.submitted = false;
109
+ await this.$router.push('/verify?e=' + this.email + '#reset');
110
+ },
111
+ async changePw() {
112
+ // if (this.captcha === '') return this._vm.errorHandler({ message: 'Please select recaptcha' });
113
+ if (this.code.length !== 6) return this.errorSnack(this.ssoLang[this.appLanguage].invalid_code);
114
+ if (this.password !== this.passwordRepeat) return this.errorSnack(this.ssoLang[this.appLanguage].password_not_match);
114
115
 
115
- },
116
- async changePw() {
117
- // if (this.captcha === '') return this._vm.errorHandler({ message: 'Please select recaptcha' });
118
- if (this.code.length !== 6) return this.errorSnack(this.ssoLang[this.appLanguage].invalid_code);
119
- if (this.password !== this.passwordRepeat) return this.errorSnack(this.ssoLang[this.appLanguage].password_not_match);
116
+ if (this.submitted) return;
117
+ this.submitted = true;
120
118
 
121
- if (this.submitted) return
122
- this.submitted = true
119
+ this.email = this.email.trim();
120
+ this.code = this.code.trim();
123
121
 
124
- this.email = this.email.trim()
125
- this.code = this.code.trim()
122
+ let data = {
123
+ email: this.email,
124
+ code: this.code,
125
+ password: this.password,
126
+ passwordRepeat: this.passwordRepeat,
127
+ captchaToken: await this.getCaptchaToken('password_reset')
128
+ };
126
129
 
127
- let data = {
128
- email: this.email,
129
- code: this.code,
130
- password: this.password,
131
- passwordRepeat: this.passwordRepeat,
132
- captchaToken: await this.getCaptchaToken('password_reset')
133
- };
134
-
135
- let success = await this.changePassword(data)
136
- this.submitted = false
137
- if (success === true) {
138
- this.$router.push('/login');
139
- this.successSnack(this.ssoLang[this.appLanguage].password_reseted_success);
140
- }
141
- },
142
- },
143
- watch: {
144
- email(nv) { this.$storex.verifyEmail = nv }
145
- }
146
- }
130
+ let success = await this.changePassword(data);
131
+ this.submitted = false;
132
+ if (success === true) {
133
+ this.$router.push('/login');
134
+ this.successSnack(this.ssoLang[this.appLanguage].password_reseted_success);
135
+ }
136
+ }
137
+ },
138
+ watch: {
139
+ email(nv) {
140
+ this.$storex.verifyEmail = nv;
141
+ }
142
+ }
143
+ };
147
144
  </script>
148
145
 
149
146
  <style scoped>
150
- #emailInput {
151
- text-align: center;
152
- padding-right: 15%;
153
- font-size: 17px;
154
- }
147
+ #emailInput {
148
+ text-align: center;
149
+ padding-right: 15%;
150
+ font-size: 17px;
151
+ }
155
152
  </style>
@@ -7,7 +7,16 @@
7
7
  </a>
8
8
  <div class="subheaderContainer full-top">
9
9
  <!-- Back Button -->
10
- <router-link v-if="!isModal" to="/account" class="button gray-button pointer left-button">
10
+ <div v-if="isModal" class="pointer left-button" @click="$emit('update:viewProp', 'AuthAccount')">
11
+ <img
12
+ :src="getIcon('arrow-gray-right.svg')"
13
+ height="20"
14
+ width="20"
15
+ class="btn-icon"
16
+ style="rotate: 180deg;"
17
+ />
18
+ </div>
19
+ <router-link v-else to="/account" class="button gray-button pointer left-button">
11
20
  <img
12
21
  :src="getIcon('arrow-gray-right.svg')"
13
22
  height="20"
@@ -104,8 +113,8 @@
104
113
  <img class="transition-icon" :class="{ 'rotate-icon': !!changePassword }" :src="getIcon('arrow-gray-down.svg')" />
105
114
  </div>
106
115
  </div>
107
- <form v-show="changePassword" class="center-text half-top">
108
- <form @submit.prevent="submitChangePassword">
116
+
117
+ <form @submit.prevent="submitChangePassword" v-show="changePassword" class="center-text half-top">
109
118
  <input type="password" v-model="currentPassword" :placeholder="ssoLang[appLanguage].password_current_p"
110
119
  class="edit-input h-40 lh-40" required minlength="8" style="width: 100%"/>
111
120
  <p class="small-text small-top-padding small-bottom">{{ssoLang[appLanguage].password_current}}</p>
@@ -131,9 +140,7 @@
131
140
  <router-link to="/reset" exact class="color-black">{{ssoLang[appLanguage].by_clicking_here}}</router-link>
132
141
  </p>
133
142
  </form>
134
- </form>
135
-
136
-
143
+
137
144
  <!-- Delete Account -->
138
145
  <div class="settingRow full-top" @click="accountDelete = !accountDelete">
139
146
  <div class="firstRow">
@@ -235,7 +242,6 @@ export default {
235
242
  }
236
243
  },
237
244
  generateOTPQrCode() {
238
- console.log('Generating QR code');
239
245
  const user = this.account.email;
240
246
 
241
247
  if (this.account.mfaEnabled) {