@necrolab/dashboard 0.4.54 → 0.4.55

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.
@@ -170,7 +170,6 @@ const scrapeMap = async (data) => {
170
170
  taskId: "SCRAPER-" + eventId,
171
171
  account: utils.pickAccount(),
172
172
  eventId: eventId,
173
- incapsulaBypass: true,
174
173
  hidden: true,
175
174
  presaleCode: presaleCode
176
175
  });
@@ -188,7 +187,6 @@ const checkStock = async (data) => {
188
187
  var taskObj = new TicketMaster({
189
188
  taskId: "SCRAPER-" + eventId,
190
189
  eventId: eventId,
191
- incapsulaBypass: true,
192
190
  hidden: true
193
191
  });
194
192
  taskObj.scrapeSeats();
@@ -197,7 +195,6 @@ const checkStock = async (data) => {
197
195
 
198
196
  async function createPresaleModeTasks(eventId, ticketQty) {
199
197
  const presaleModeSettings = {
200
- incapsulaBypass: false,
201
198
  agedAccount: false,
202
199
  manual: false,
203
200
  openCart: false,
@@ -1,22 +1,14 @@
1
1
  const users = [
2
2
  {
3
3
  event: "auth",
4
- botChannels: {
5
- splash: "-",
6
- carts: "-",
7
- checkouts: "-",
8
- declines: "-",
9
- stockChecker: "-",
10
- venueMaps: "-"
11
- },
12
4
  _id: "641a5292b561088b64fe390b",
13
5
  name: "Admin",
14
6
  password: "admin",
15
7
  profilePicture: "https://cdn.discordapp.com/avatars/435549216304267264/6cfd74ad7c5939a0bcbf218aa08be8cb.png",
16
8
  admin: true,
17
9
  proxyList: { checkout: "admin-proxies" },
18
- profileTags: ["Amex", "Citi", "Mercury", "Slash"],
19
- accountTags: ["admin"]
10
+ profileTags: ["Citi", "Mercury", "Slash"],
11
+ tags: ["admin"]
20
12
  }
21
13
  ];
22
14
 
@@ -7,7 +7,6 @@
7
7
  "quantity": 5,
8
8
  "manual": false,
9
9
  "doNotPay": false,
10
- "incapsulaBypass": false,
11
10
  "quickQueue": true,
12
11
  "loginAfterCart": false,
13
12
  "smartTimer": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@necrolab/dashboard",
3
- "version": "0.4.54",
3
+ "version": "0.4.55",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "build": "rm -rf dist && npx workbox-cli generateSW workbox-config.cjs && vite build",
@@ -6,26 +6,25 @@
6
6
  </template>
7
7
 
8
8
  <div>
9
- <div class="form-grid mt-7 mb-4">
10
- <div class="input-wrapper col-span-8 relative-positioned z-tooltip">
11
- <label class="label-override mb-2"
12
- >Account Tag
9
+ <div class="form-grid mb-4 mt-7">
10
+ <div class="input-wrapper relative-positioned z-tooltip col-span-8">
11
+ <label class="label-override mb-2">
12
+ Account Tag
13
13
  <TagIcon />
14
14
  </label>
15
15
  <Dropdown
16
- class="input-default dropdown p-4 w-full"
17
- :default="ui.profile.accountTags[0]"
18
- :options="ui.profile.accountTags"
16
+ class="input-default dropdown w-full p-4"
17
+ :default="ui.profile.tags[0]"
18
+ :options="ui.profile.tags"
19
19
  :onClick="(f) => (creatorConfig.tag = f)"
20
20
  :capitalize="true"
21
21
  :allowDefault="false"
22
- :chosen="creatorConfig.tag"
23
- />
22
+ :chosen="creatorConfig.tag" />
24
23
  </div>
25
24
 
26
25
  <div class="input-wrapper col-span-4">
27
- <label class="label-override mb-2"
28
- >Threads
26
+ <label class="label-override mb-2">
27
+ Threads
29
28
  <EditIcon />
30
29
  </label>
31
30
  <div :class="`input-default ${errors.includes('threads') ? 'error' : ''}`">
@@ -41,8 +40,8 @@
41
40
  </div>
42
41
  </div>
43
42
  <div class="input-wrapper col-span-8">
44
- <label class="label-override mb-2"
45
- >Email catchall
43
+ <label class="label-override mb-2">
44
+ Email catchall
46
45
  <MailIcon />
47
46
  </label>
48
47
  <div :class="`input-default ${errors.includes('catchall') ? 'error' : ''}`">
@@ -50,8 +49,8 @@
50
49
  </div>
51
50
  </div>
52
51
  <div class="input-wrapper col-span-4">
53
- <label class="label-override mb-2"
54
- >Catchall amount
52
+ <label class="label-override mb-2">
53
+ Catchall amount
55
54
  <BagIcon />
56
55
  </label>
57
56
  <div :class="`input-default ${errors.includes('number') ? 'error' : ''}`">
@@ -67,8 +66,8 @@
67
66
  </div>
68
67
  </div>
69
68
  <div class="input-wrapper col-span-12">
70
- <label class="label-override mb-2"
71
- >Emails
69
+ <label class="label-override mb-2">
70
+ Emails
72
71
  <MailIcon />
73
72
  </label>
74
73
  <div :class="`${errors.includes('emails') ? 'error-border' : ''}`">
@@ -77,16 +76,15 @@
77
76
  class="proxy-editor"
78
77
  spellcheck="false"
79
78
  style="max-height: 250px; min-height: 150px"
80
- placeholder="Enter emails here - One per line"
81
- ></textarea>
79
+ placeholder="Enter emails here - One per line"></textarea>
82
80
  </div>
83
81
  </div>
84
82
  </div>
85
83
  <button
86
- class="button-default hover:opacity-70 active:opacity-50 bg-dark-400 w-48 text-xs flex items-center justify-center gap-x-2 ml-auto mt-4"
87
- @click="done()"
88
- >
89
- Start <EditIcon />
84
+ class="button-default ml-auto mt-4 flex w-48 items-center justify-center gap-x-2 bg-dark-400 text-xs hover:opacity-70 active:opacity-50"
85
+ @click="done()">
86
+ Start
87
+ <EditIcon />
90
88
  </button>
91
89
  </div>
92
90
  </Modal>
@@ -147,7 +145,7 @@ const creatorConfig = ref({
147
145
  threads: 5,
148
146
  catchall: "",
149
147
  emails: "",
150
- tag: ui.profile.accountTags[0],
148
+ tag: ui.profile.tags[0],
151
149
  number: 0
152
150
  });
153
151
 
@@ -7,17 +7,17 @@
7
7
  </template>
8
8
 
9
9
  <div>
10
- <div class="grid grid-cols-12 gap-3 my-3">
10
+ <div class="my-3 grid grid-cols-12 gap-3">
11
11
  <!-- Profile tag -->
12
- <div class="input-wrapper col-span-4 relative-positioned z-tooltip">
12
+ <div class="input-wrapper relative-positioned z-tooltip col-span-4">
13
13
  <label class="label-override mb-2">
14
14
  Profile Tag
15
15
  <TagIcon />
16
16
  </label>
17
17
  <Dropdown
18
- :class="`input-default dropdown p-4 w-full ${errors.includes('profileTag') ? 'error' : ''}`"
19
- :default="ui.profile.accountTags[0]"
20
- :options="ui.profile.accountTags"
18
+ :class="`input-default dropdown w-full p-4 ${errors.includes('profileTag') ? 'error' : ''}`"
19
+ :default="ui.profile.tags[0]"
20
+ :options="ui.profile.tags"
21
21
  :onClick="(f) => (account.tag = f)"
22
22
  :capitalize="true"
23
23
  :allowDefault="false"
@@ -25,7 +25,7 @@
25
25
  </div>
26
26
 
27
27
  <!-- Email -->
28
- <div class="input-wrapper col-span-8 z-0">
28
+ <div class="input-wrapper z-0 col-span-8">
29
29
  <label class="label-override mb-2">
30
30
  Email
31
31
  <MailIcon />
@@ -48,7 +48,7 @@
48
48
  </div>
49
49
 
50
50
  <!-- Password -->
51
- <div class="input-wrapper col-span-12 z-0">
51
+ <div class="input-wrapper z-0 col-span-12">
52
52
  <label class="label-override mb-2">
53
53
  Password
54
54
  <KeyIcon />
@@ -67,7 +67,7 @@
67
67
  </div>
68
68
 
69
69
  <button
70
- class="button-default hover:opacity-70 active:opacity-50 bg-dark-400 w-48 text-xs flex items-center justify-center gap-x-2 ml-auto mt-4"
70
+ class="button-default ml-auto mt-4 flex w-48 items-center justify-center gap-x-2 bg-dark-400 text-xs hover:opacity-70 active:opacity-50"
71
71
  @click="done()">
72
72
  Save
73
73
  <EditIcon />
@@ -116,7 +116,7 @@ const ui = useUIStore();
116
116
  const account = ref({
117
117
  email: "",
118
118
  password: "",
119
- tag: ui.profile.accountTags[0]
119
+ tag: ui.profile.tags[0]
120
120
  });
121
121
 
122
122
  if (ui.currentlyEditing?.email) account.value = ui.currentlyEditing;
@@ -7,24 +7,25 @@
7
7
  </template>
8
8
 
9
9
  <div>
10
- <div class="grid grid-cols-12 gap-3 my-3">
10
+ <div class="my-3 grid grid-cols-12 gap-3">
11
11
  <!-- Profile tag -->
12
- <div class="input-wrapper col-span-4 z-dropdown">
13
- <label class="label-override mb-2">Profile Tag
12
+ <div class="input-wrapper z-dropdown col-span-4">
13
+ <label class="label-override mb-2">
14
+ Profile Tag
14
15
  <TagIcon />
15
16
  </label>
16
17
  <Dropdown
17
18
  :class="`input-default dropdown w-full ${errors.includes('profileTag') ? 'error' : ''}`"
18
- :default="ui.profile.accountTags[0]"
19
- :options="ui.profile.accountTags"
19
+ :default="ui.profile.tags[0]"
20
+ :options="ui.profile.tags"
20
21
  :onClick="(f) => (profile.tag = f)"
21
- :capitalize="true"
22
- />
22
+ :capitalize="true" />
23
23
  </div>
24
24
 
25
25
  <!-- Card Number -->
26
- <div class="input-wrapper col-span-8 z-0">
27
- <label class="label-override mb-2">Card Number
26
+ <div class="input-wrapper z-0 col-span-8">
27
+ <label class="label-override mb-2">
28
+ Card Number
28
29
  <CartIcon />
29
30
  </label>
30
31
  <div :class="`input-default ${errors.includes('cardNumber') ? 'error' : ''}`">
@@ -35,27 +36,27 @@
35
36
  maxlength="23"
36
37
  inputmode="numeric"
37
38
  @input="handleCreditCardUpdate"
38
- @focus="formatCardNumberDisplay"
39
- />
39
+ @focus="formatCardNumberDisplay" />
40
40
  </div>
41
41
  </div>
42
42
 
43
43
  <!-- Country chooser -->
44
44
  <div class="input-wrapper col-span-2">
45
- <label class="label-override mb-2">Country
45
+ <label class="label-override mb-2">
46
+ Country
46
47
  <SandclockIcon />
47
48
  </label>
48
49
  <ProfileCountryChooser
49
50
  class="h-8"
50
51
  :value="profile.country"
51
52
  :onClick="chooseCountry"
52
- :disabled="true"
53
- />
53
+ :disabled="true" />
54
54
  </div>
55
55
 
56
56
  <!-- Exp Year -->
57
57
  <div class="input-wrapper col-span-5">
58
- <label class="label-override mb-2 z-0">Expiry Year
58
+ <label class="label-override z-0 mb-2">
59
+ Expiry Year
59
60
  <TimerIcon />
60
61
  </label>
61
62
  <Dropdown
@@ -65,17 +66,17 @@
65
66
  profile.expYear && !profile?.expYear?.startsWith('20')
66
67
  ? '20' + profile.expYear
67
68
  : profile.expYear
68
- ? profile.expYear
69
- : undefined
69
+ ? profile.expYear
70
+ : undefined
70
71
  "
71
72
  :options="['2025', '2026', '2027', '2028', '2029', '2030', '2031']"
72
- :onClick="(f) => (profile.expYear = f)"
73
- />
73
+ :onClick="(f) => (profile.expYear = f)" />
74
74
  </div>
75
75
 
76
76
  <!-- Exp Month -->
77
- <div class="input-wrapper col-span-5 z-2">
78
- <label class="label-override mb-2">Expiry Month
77
+ <div class="input-wrapper z-2 col-span-5">
78
+ <label class="label-override mb-2">
79
+ Expiry Month
79
80
  <TimerIcon />
80
81
  </label>
81
82
  <Dropdown
@@ -83,13 +84,13 @@
83
84
  default="Expiry Month"
84
85
  :value="profile.expMonth ? profile.expMonth : undefined"
85
86
  :options="['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']"
86
- :onClick="(f) => (profile.expMonth = f)"
87
- />
87
+ :onClick="(f) => (profile.expMonth = f)" />
88
88
  </div>
89
89
 
90
90
  <!-- CVV -->
91
- <div class="input-wrapper col-span-6 md:col-span-4 z-0">
92
- <label class="label-override mb-2">CVV
91
+ <div class="input-wrapper z-0 col-span-6 md:col-span-4">
92
+ <label class="label-override mb-2">
93
+ CVV
93
94
  <ShieldIcon />
94
95
  </label>
95
96
  <div :class="`input-default ${errors.includes('cvv') ? 'error' : ''}`">
@@ -99,14 +100,14 @@
99
100
  max="9999"
100
101
  maxlength="4"
101
102
  minlength="3"
102
- v-model="profile.cvv"
103
- />
103
+ v-model="profile.cvv" />
104
104
  </div>
105
105
  </div>
106
106
 
107
107
  <!-- City -->
108
- <div class="input-wrapper col-span-6 md:col-span-4 z-0">
109
- <label class="label-override mb-2">City
108
+ <div class="input-wrapper z-0 col-span-6 md:col-span-4">
109
+ <label class="label-override mb-2">
110
+ City
110
111
  <StadiumIcon />
111
112
  </label>
112
113
  <div :class="`input-default ${errors.includes('city') ? 'error' : ''}`">
@@ -115,8 +116,9 @@
115
116
  </div>
116
117
 
117
118
  <!-- State -->
118
- <div class="input-wrapper col-span-6 md:col-span-4 z-1">
119
- <label class="label-override mb-2">State
119
+ <div class="input-wrapper z-1 col-span-6 md:col-span-4">
120
+ <label class="label-override mb-2">
121
+ State
120
122
  <SandclockIcon />
121
123
  </label>
122
124
  <div v-if="profile.country === 'US'" :class="`${errors.includes('state') ? 'error' : ''}`">
@@ -127,8 +129,7 @@
127
129
  :options="usStates"
128
130
  :allowDefault="false"
129
131
  rightAmount="right-2"
130
- :value="profile.state"
131
- />
132
+ :value="profile.state" />
132
133
  </div>
133
134
  <div v-else :class="`input-default ${errors.includes('state') ? 'error' : ''}`">
134
135
  <input disabled placeholder="N/A" value="" />
@@ -136,8 +137,9 @@
136
137
  </div>
137
138
 
138
139
  <!-- Zip -->
139
- <div class="input-wrapper col-span-6 md:col-span-4 z-0">
140
- <label class="label-override mb-2">Zip
140
+ <div class="input-wrapper z-0 col-span-6 md:col-span-4">
141
+ <label class="label-override mb-2">
142
+ Zip
141
143
  <KeyIcon />
142
144
  </label>
143
145
  <div :class="`input-default ${errors.includes('zipCode') ? 'error' : ''}`">
@@ -146,8 +148,9 @@
146
148
  </div>
147
149
 
148
150
  <!-- Address -->
149
- <div class="input-wrapper col-span-6 md:col-span-4 z-0">
150
- <label class="label-override mb-2">Address
151
+ <div class="input-wrapper z-0 col-span-6 md:col-span-4">
152
+ <label class="label-override mb-2">
153
+ Address
151
154
  <HandIcon />
152
155
  </label>
153
156
  <div :class="`input-default ${errors.includes('address') ? 'error' : ''}`">
@@ -156,15 +159,15 @@
156
159
  </div>
157
160
 
158
161
  <!-- Generate -->
159
- <div class="input-wrapper col-span-6 md:col-span-4 z-0">
160
- <label class="label-override mb-2"> Fake ID
162
+ <div class="input-wrapper z-0 col-span-6 md:col-span-4">
163
+ <label class="label-override mb-2">
164
+ Fake ID
161
165
  <WildcardIcon />
162
166
  </label>
163
- <div class="input-default mt-2 w-full h-10 flex items-center">
167
+ <div class="input-default mt-2 flex h-10 w-full items-center">
164
168
  <button
165
169
  @click="generate"
166
- class="text-white w-full text-xs flex items-center justify-center gap-2"
167
- >
170
+ class="flex w-full items-center justify-center gap-2 text-xs text-white">
168
171
  <svg
169
172
  xmlns="http://www.w3.org/2000/svg"
170
173
  width="14"
@@ -174,8 +177,7 @@
174
177
  stroke="currentColor"
175
178
  stroke-width="2"
176
179
  stroke-linecap="round"
177
- stroke-linejoin="round"
178
- >
180
+ stroke-linejoin="round">
179
181
  <rect x="3" y="4" width="18" height="16" rx="2" />
180
182
  <line x1="7" y1="2" x2="7" y2="6" />
181
183
  <line x1="17" y1="2" x2="17" y2="6" />
@@ -188,10 +190,10 @@
188
190
  </div>
189
191
 
190
192
  <button
191
- class="button-default hover:opacity-70 active:opacity-50 bg-dark-400 w-48 text-xs flex items-center justify-center gap-x-2 ml-auto mt-4"
192
- @click="done()"
193
- >
194
- Save <EditIcon />
193
+ class="button-default ml-auto mt-4 flex w-48 items-center justify-center gap-x-2 bg-dark-400 text-xs hover:opacity-70 active:opacity-50"
194
+ @click="done()">
195
+ Save
196
+ <EditIcon />
195
197
  </button>
196
198
  </Modal>
197
199
  </template>
@@ -218,7 +220,19 @@
218
220
  </style>
219
221
  <script setup>
220
222
  import Modal from "@/components/ui/Modal.vue";
221
- import { MailIcon, CartIcon, ShieldIcon, StadiumIcon, KeyIcon, HandIcon, ProfileIcon, SandclockIcon, TimerIcon, TagIcon, WildcardIcon } from "@/components/icons";
223
+ import {
224
+ MailIcon,
225
+ CartIcon,
226
+ ShieldIcon,
227
+ StadiumIcon,
228
+ KeyIcon,
229
+ HandIcon,
230
+ ProfileIcon,
231
+ SandclockIcon,
232
+ TimerIcon,
233
+ TagIcon,
234
+ WildcardIcon
235
+ } from "@/components/icons";
222
236
  import { EditIcon } from "@/components/icons";
223
237
  import ProfileCountryChooser from "@/components/Editors/Profile/ProfileCountryChooser.vue";
224
238
  import { useUIStore } from "@/stores/ui";
@@ -288,7 +302,7 @@ const profile = ref({
288
302
  cvv: "",
289
303
  cardNumber: "",
290
304
  city: "",
291
- tag: ui.profile.accountTags[0],
305
+ tag: ui.profile.tags[0],
292
306
  state: "",
293
307
  country: "US",
294
308
  zipCode: ""
@@ -1,16 +1,16 @@
1
1
  <template>
2
- <Modal class="overflow-y-scroll max-w-screen">
2
+ <Modal class="max-w-screen overflow-y-scroll">
3
3
  <template #header>
4
4
  Create Task
5
5
  <img src="@/assets/img/pencil.svg" class="ml-4" />
6
6
  </template>
7
7
 
8
8
  <!-- Task Form -->
9
- <div class="form-grid mt-4 mb-4">
9
+ <div class="form-grid mb-4 mt-4">
10
10
  <!-- Event ID -->
11
11
  <div class="input-wrapper">
12
- <label class="label-override mb-2"
13
- >Event ID
12
+ <label class="label-override mb-2">
13
+ Event ID
14
14
  <StadiumIcon />
15
15
  </label>
16
16
  <div class="input-default required">
@@ -19,8 +19,8 @@
19
19
  </div>
20
20
  <!-- Email -->
21
21
  <div class="input-wrapper">
22
- <label class="label-override mb-2"
23
- >Email
22
+ <label class="label-override mb-2">
23
+ Email
24
24
  <MailIcon />
25
25
  </label>
26
26
  <div class="input-default">
@@ -29,14 +29,13 @@
29
29
  v-model="task.email"
30
30
  autocomplete="off"
31
31
  data-form-type="other"
32
- name="axs_email_not_for_auth"
33
- />
32
+ name="axs_email_not_for_auth" />
34
33
  </div>
35
34
  </div>
36
35
  <!-- Proxy -->
37
36
  <div class="input-wrapper">
38
- <label class="label-override mb-2"
39
- >Proxy
37
+ <label class="label-override mb-2">
38
+ Proxy
40
39
  <CameraIcon />
41
40
  </label>
42
41
  <div class="input-default">
@@ -45,8 +44,8 @@
45
44
  </div>
46
45
  <!-- Presale Code -->
47
46
  <div class="input-wrapper">
48
- <label class="label-override mb-2"
49
- >Presale Code
47
+ <label class="label-override mb-2">
48
+ Presale Code
50
49
  <AwardIcon />
51
50
  </label>
52
51
  <div class="input-default">
@@ -55,8 +54,8 @@
55
54
  </div>
56
55
  <!-- Ticket Quantity -->
57
56
  <div class="input-wrapper">
58
- <label class="label-override mb-2"
59
- >Ticket Quantity
57
+ <label class="label-override mb-2">
58
+ Ticket Quantity
60
59
  <BagIcon />
61
60
  </label>
62
61
  <div class="input-default">
@@ -73,7 +72,10 @@
73
72
  </div>
74
73
  <!-- Ticket Quantity -->
75
74
  <div class="input-wrapper">
76
- <label class="label-override mb-2">Amount <span class="ml-2 h-[18px]">#</span></label>
75
+ <label class="label-override mb-2">
76
+ Amount
77
+ <span class="ml-2 h-[18px]">#</span>
78
+ </label>
77
79
  <div class="input-default">
78
80
  <input placeholder="20" min="1" type="number" pattern="\d*" v-model="task.taskQuantity" />
79
81
  <div class="input-incrementer">
@@ -88,27 +90,26 @@
88
90
  </div>
89
91
 
90
92
  <!-- Profile Tag(s) -->
91
- <div class="input-wrapper relative-positioned z-tooltip">
92
- <label class="label-override mb-2"
93
- >Profile Tag(s)
93
+ <div class="input-wrapper relative-positioned z-tooltip">
94
+ <label class="label-override mb-2">
95
+ Profile Tag(s)
94
96
  <TagIcon />
95
97
  </label>
96
98
  <MultiDropdown
97
- class="w-full will-change-auto input-default"
99
+ class="input-default w-full will-change-auto"
98
100
  :onSelect="(v) => (task.profileTags = v)"
99
101
  default="Any"
100
102
  :options="
101
103
  profileTagsOptions.map((opt) => {
102
104
  return { label: opt, value: opt };
103
105
  })
104
- "
105
- />
106
+ " />
106
107
  </div>
107
108
 
108
109
  <!-- Account Tag -->
109
- <div class="input-wrapper relative-positioned z-dropdown">
110
- <label class="label-override mb-2"
111
- >Account Tag
110
+ <div class="input-wrapper relative-positioned z-dropdown">
111
+ <label class="label-override mb-2">
112
+ Account Tag
112
113
  <ScannerIcon />
113
114
  </label>
114
115
 
@@ -119,20 +120,22 @@
119
120
  :options="accountTagOptions"
120
121
  :allowDefault="false"
121
122
  :capitalize="true"
122
- class="input-default dropdown p-4 w-full"
123
- />
123
+ class="input-default dropdown w-full p-4" />
124
124
  </div>
125
125
 
126
126
  <div class="input-wrapper">
127
- <label class="label-override mb-2">Start Offset (Minutes)<ShieldIcon /></label>
127
+ <label class="label-override mb-2">
128
+ Start Offset (Minutes)
129
+ <ShieldIcon />
130
+ </label>
128
131
  <div class="input-default">
129
132
  <input placeholder="120" type="number" pattern="\d*" v-model="task.startOffset" />
130
133
  </div>
131
134
  </div>
132
135
 
133
136
  <div class="input-wrapper">
134
- <label class="label-override mb-2"
135
- >Promo ID
137
+ <label class="label-override mb-2">
138
+ Promo ID
136
139
  <AwardIcon />
137
140
  </label>
138
141
  <div class="input-default">
@@ -140,9 +143,9 @@
140
143
  </div>
141
144
  </div>
142
145
  </div>
143
- <div class="border border-dark-650 mb-3" />
146
+ <div class="mb-3 border border-dark-650" />
144
147
  <!-- Task Switches -->
145
- <div class="grid grid-cols-4 gap-y-4 mb-4 justify-between task-switches">
148
+ <div class="task-switches mb-4 grid grid-cols-4 justify-between gap-y-4">
146
149
  <div class="switch-wrapper flex flex-col">
147
150
  <h4>
148
151
  <span class="hidden xs:block">Do Not Pay</span>
@@ -162,7 +165,8 @@
162
165
  <div class="switch-wrapper flex flex-col">
163
166
  <h4>
164
167
  <span class="hidden xs:block">Quick Queue</span>
165
- <span class="block xs:hidden">Quick Q.</span> <SkiIcon class="scale-90" />
168
+ <span class="block xs:hidden">Quick Q.</span>
169
+ <SkiIcon class="scale-90" />
166
170
  </h4>
167
171
  <Switch class="mx-auto" v-model="task.quickQueue" />
168
172
  </div>
@@ -176,7 +180,7 @@
176
180
  </div>
177
181
 
178
182
  <!-- Task prefab -->
179
- <div class="border border-dark-650 my-3" />
183
+ <div class="my-3 border border-dark-650" />
180
184
  <button class="btn-action mx-auto" @click="createTask">
181
185
  Create
182
186
  <EditIcon />
@@ -186,6 +190,7 @@
186
190
 
187
191
  <script setup>
188
192
  import { ref, watch } from "vue";
193
+ import { countries } from "@/stores/countries";
189
194
  import Modal from "@/components/ui/Modal.vue";
190
195
  import Switch from "@/components/ui/controls/atomic/Switch.vue";
191
196
  import {
@@ -211,11 +216,11 @@ import {
211
216
  import { useUIStore } from "@/stores/ui";
212
217
  import Dropdown from "@/components/ui/controls/atomic/Dropdown.vue";
213
218
  import MultiDropdown from "@/components/ui/controls/atomic/MultiDropdown.vue";
214
- import { isEU, removeDuplicates } from "@/stores/utils";
219
+ import { parseAxsEventUrl, removeDuplicates } from "@/stores/utils";
215
220
 
216
221
  const ui = useUIStore();
217
222
 
218
- const accountTagOptions = ref(ui.profile.accountTags);
223
+ const accountTagOptions = ref(ui.profile.tags);
219
224
  const defaultTags = ["Amex", "Visa", "Master"];
220
225
 
221
226
  const profileTagsOptions = ref(removeDuplicates(["Any", ...defaultTags, ...ui.profile.profileTags]));
@@ -268,12 +273,28 @@ watch(
268
273
  }
269
274
  );
270
275
 
271
- watch(() => task.value, () => (ui.modalData[`task_${ui.currentCountry.siteId}`] = task.value), { deep: true });
276
+ watch(
277
+ () => task.value,
278
+ () => (ui.modalData[`task_${ui.currentCountry.siteId}`] = task.value),
279
+ { deep: true }
280
+ );
272
281
 
273
282
  watch(
274
283
  () => task.value.eventId,
275
284
  (url) => {
276
285
  ui.logger.Info("URL changed", url);
286
+ if (!url.includes("https://")) return;
287
+ try {
288
+ const parsed = parseAxsEventUrl(url);
289
+ const country = countries.AXS.find((c) => c.siteId === parsed.siteId);
290
+ if (country) ui.setCurrentCountry(country, false, ui.currentModule);
291
+
292
+ task.value.eventId = parsed.eventId;
293
+ debugger;
294
+ if (parsed.promoId) task.value.promoId = parsed.promoId;
295
+ } catch (ex) {
296
+ ui.logger.Error("Could not parse url (2)", ex);
297
+ }
277
298
  }
278
299
  );
279
300
 
@@ -293,7 +314,7 @@ watch(
293
314
  .task-switches {
294
315
  h4 {
295
316
  color: #e1e1e4;
296
- @apply text-xs text-center flex items-center gap-x-2 mx-auto;
317
+ @apply mx-auto flex items-center gap-x-2 text-center text-xs;
297
318
  }
298
319
 
299
320
  .switch-wrapper {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <Modal class="overflow-y-scroll max-w-screen">
2
+ <Modal class="max-w-screen overflow-y-scroll">
3
3
  <template #header>
4
4
  <div class="flex-center gap-2">
5
5
  Create Task
@@ -8,25 +8,24 @@
8
8
  </template>
9
9
 
10
10
  <!-- Task Form -->
11
- <div class="grid-responsive-1-2 gap-responsive mt-4 mb-4">
11
+ <div class="grid-responsive-1-2 gap-responsive mb-4 mt-4">
12
12
  <!-- Event ID -->
13
13
  <div class="input-wrapper">
14
- <label class="label-override mb-2"
15
- >Event ID
14
+ <label class="label-override mb-2">
15
+ Event ID
16
16
  <StadiumIcon />
17
17
  </label>
18
18
  <div class="input-default required">
19
19
  <input
20
20
  :placeholder="!isEU(ui.currentCountry.siteId) ? '102PDA9125510GYU' : '529171'"
21
21
  v-model="task.eventId"
22
- required
23
- />
22
+ required />
24
23
  </div>
25
24
  </div>
26
25
  <!-- Email -->
27
26
  <div class="input-wrapper">
28
- <label class="label-override mb-2"
29
- >Email
27
+ <label class="label-override mb-2">
28
+ Email
30
29
  <MailIcon />
31
30
  </label>
32
31
  <div class="input-default">
@@ -35,14 +34,13 @@
35
34
  v-model="task.email"
36
35
  autocomplete="off"
37
36
  data-form-type="other"
38
- name="tm_email_disableautocomplete"
39
- />
37
+ name="tm_email_disableautocomplete" />
40
38
  </div>
41
39
  </div>
42
40
  <!-- Proxy -->
43
41
  <div class="input-wrapper">
44
- <label class="label-override mb-2"
45
- >Proxy
42
+ <label class="label-override mb-2">
43
+ Proxy
46
44
  <CameraIcon />
47
45
  </label>
48
46
  <div class="input-default">
@@ -51,8 +49,8 @@
51
49
  </div>
52
50
  <!-- Presale Code -->
53
51
  <div class="input-wrapper">
54
- <label class="label-override mb-2"
55
- >Presale Code
52
+ <label class="label-override mb-2">
53
+ Presale Code
56
54
  <AwardIcon />
57
55
  </label>
58
56
  <div class="input-default">
@@ -61,8 +59,8 @@
61
59
  </div>
62
60
  <!-- Ticket Quantity -->
63
61
  <div class="input-wrapper">
64
- <label class="label-override mb-2"
65
- >Ticket Quantity
62
+ <label class="label-override mb-2">
63
+ Ticket Quantity
66
64
  <BagIcon />
67
65
  </label>
68
66
  <div class="input-default">
@@ -79,7 +77,10 @@
79
77
  </div>
80
78
  <!-- Ticket Quantity -->
81
79
  <div class="input-wrapper">
82
- <label class="label-override mb-2">Amount <span class="ml-2 h-[18px]">#</span></label>
80
+ <label class="label-override mb-2">
81
+ Amount
82
+ <span class="ml-2 h-[18px]">#</span>
83
+ </label>
83
84
  <div class="input-default">
84
85
  <input placeholder="20" min="1" type="number" pattern="\d*" v-model="task.taskQuantity" />
85
86
  <div class="input-incrementer">
@@ -94,35 +95,37 @@
94
95
  </div>
95
96
 
96
97
  <!-- Profile Tag(s) -->
97
- <div class="input-wrapper relative-positioned z-tooltip">
98
- <label class="label-override mb-2"
99
- >Profile Tag(s)
98
+ <div class="input-wrapper relative-positioned z-tooltip">
99
+ <label class="label-override mb-2">
100
+ Profile Tag(s)
100
101
  <TagIcon />
101
102
  </label>
102
103
  <MultiDropdown
103
- class="w-full will-change-auto input-default"
104
+ class="input-default w-full will-change-auto"
104
105
  :onSelect="(v) => (task.profileTags = v)"
105
106
  default="Any"
106
107
  :options="
107
108
  profileTagsOptions.map((opt) => {
108
109
  return { label: opt, value: opt };
109
110
  })
110
- "
111
- />
111
+ " />
112
112
  </div>
113
113
 
114
114
  <!-- CL Origin -->
115
115
  <div v-if="isEU(ui.currentCountry.siteId)" class="input-wrapper">
116
- <label class="label-override mb-2">CL Origin<AwardIcon /></label>
116
+ <label class="label-override mb-2">
117
+ CL Origin
118
+ <AwardIcon />
119
+ </label>
117
120
  <div class="input-default">
118
121
  <input placeholder="ORIGIN2" type="text" v-model="task.clOrigin" maxlength="15" />
119
122
  </div>
120
123
  </div>
121
124
 
122
125
  <!-- Account Tag -->
123
- <div class="input-wrapper relative-positioned z-dropdown">
124
- <label class="label-override mb-2"
125
- >Account Tag
126
+ <div class="input-wrapper relative-positioned z-dropdown">
127
+ <label class="label-override mb-2">
128
+ Account Tag
126
129
  <ScannerIcon />
127
130
  </label>
128
131
 
@@ -133,12 +136,14 @@
133
136
  :options="accountTagOptions"
134
137
  :allowDefault="false"
135
138
  :capitalize="true"
136
- class="input-default dropdown p-4 w-full"
137
- />
139
+ class="input-default dropdown w-full p-4" />
138
140
  </div>
139
141
 
140
142
  <div class="input-wrapper">
141
- <label class="label-override mb-2">Start Offset (Minutes)<ShieldIcon /></label>
143
+ <label class="label-override mb-2">
144
+ Start Offset (Minutes)
145
+ <ShieldIcon />
146
+ </label>
142
147
  <div class="input-default">
143
148
  <input placeholder="120" type="number" pattern="\d*" v-model="task.startOffset" />
144
149
  </div>
@@ -146,8 +151,8 @@
146
151
 
147
152
  <div v-if="!isEU(ui.currentCountry.siteId)">
148
153
  <div class="input-wrapper">
149
- <label class="label-override mb-2"
150
- >Presale DID
154
+ <label class="label-override mb-2">
155
+ Presale DID
151
156
  <AwardIcon />
152
157
  </label>
153
158
  <div class="input-default">
@@ -156,12 +161,13 @@
156
161
  </div>
157
162
  </div>
158
163
  </div>
159
- <div class="border border-dark-650 mb-3" />
164
+ <div class="mb-3 border border-dark-650" />
160
165
  <!-- Task Switches -->
161
- <div v-if="!isEU(ui.currentCountry.siteId)" class="grid grid-cols-3 task-switches gap-y-1 justify-between">
162
- <div class="switch-wrapper flex flex-col mb-2">
166
+ <div v-if="!isEU(ui.currentCountry.siteId)" class="task-switches grid grid-cols-3 justify-between gap-y-1">
167
+ <div class="switch-wrapper mb-2 flex flex-col">
163
168
  <h4 class="text-responsive-sm">
164
- Aged <span class="hidden xs:block">Account</span>
169
+ Aged
170
+ <span class="hidden xs:block">Account</span>
165
171
  <SandclockIcon />
166
172
  </h4>
167
173
  <Switch class="mx-auto" v-model="task.agedAccount" />
@@ -181,7 +187,7 @@
181
187
  </h4>
182
188
  <Switch class="mx-auto" v-model="task.doNotPay" />
183
189
  </div>
184
- <div class="flex flex-col switch-wrapper">
190
+ <div class="switch-wrapper flex flex-col">
185
191
  <h4>
186
192
  <span class="hidden xs:block">Quick Queue</span>
187
193
  <span class="block xs:hidden">Quick Q.</span>
@@ -189,7 +195,7 @@
189
195
  </h4>
190
196
  <Switch class="mx-auto" v-model="task.quickQueue" />
191
197
  </div>
192
- <div class="flex flex-col switch-wrapper">
198
+ <div class="switch-wrapper flex flex-col">
193
199
  <h4>
194
200
  <span class="hidden xs:block">Login Later</span>
195
201
  <span class="block xs:hidden">Login Lat.</span>
@@ -198,7 +204,7 @@
198
204
  </h4>
199
205
  <Switch class="mx-auto" v-model="task.loginAfterCart" />
200
206
  </div>
201
- <div class="flex flex-col switch-wrapper">
207
+ <div class="switch-wrapper flex flex-col">
202
208
  <h4>
203
209
  <span class="hidden xs:block">Smart Timer</span>
204
210
  <span class="block xs:hidden">Timer</span>
@@ -208,28 +214,31 @@
208
214
  </div>
209
215
  <div class="switch-wrapper flex flex-col">
210
216
  <h4>
211
- <span class="hidden xs:block">Supports </span> OTP
212
- <MailIcon class="scale-90 h-[17px]" />
217
+ <span class="hidden xs:block">Supports</span>
218
+ OTP
219
+ <MailIcon class="h-[17px] scale-90" />
213
220
  </h4>
214
221
  <Switch class="mx-auto" v-model="task.otpAccount" />
215
222
  </div>
216
223
  <div class="switch-wrapper flex flex-col">
217
224
  <h4>
218
- Presale <span class="hidden xs:block"> Queue</span>
225
+ Presale
226
+ <span class="hidden xs:block">Queue</span>
219
227
  <AwardIcon class="scale-90" />
220
228
  </h4>
221
229
  <Switch class="mx-auto" v-model="task.presaleMode" />
222
230
  </div>
223
231
  <div class="switch-wrapper flex flex-col">
224
232
  <h4>
225
- Strict <span class="hidden xs:block"> Presale</span>
233
+ Strict
234
+ <span class="hidden xs:block">Presale</span>
226
235
  <AwardIcon class="scale-90" />
227
236
  </h4>
228
237
  <Switch class="mx-auto" v-model="task.presaleStrict" />
229
238
  </div>
230
239
  </div>
231
240
  <div v-if="isEU(ui.currentCountry.siteId)">
232
- <div class="grid grid-cols-4 gap-y-4 mb-4 justify-between task-switches">
241
+ <div class="task-switches mb-4 grid grid-cols-4 justify-between gap-y-4">
233
242
  <div class="switch-wrapper flex flex-col">
234
243
  <h4 class="text-xs">
235
244
  Manual
@@ -263,11 +272,12 @@
263
272
  </div>
264
273
  </div>
265
274
 
266
- <div class="grid grid-cols-4 gap-y-4 justify-between task-switches">
275
+ <div class="task-switches grid grid-cols-4 justify-between gap-y-4">
267
276
  <div class="switch-wrapper flex flex-col">
268
277
  <h4>
269
278
  <span class="hidden xs:block">Quick Queue</span>
270
- <span class="block xs:hidden">Quick Q.</span> <SkiIcon class="scale-90" />
279
+ <span class="block xs:hidden">Quick Q.</span>
280
+ <SkiIcon class="scale-90" />
271
281
  </h4>
272
282
  <Switch class="mx-auto" v-model="task.quickQueue" />
273
283
  </div>
@@ -275,13 +285,14 @@
275
285
  <div class="switch-wrapper flex flex-col">
276
286
  <h4>
277
287
  Supports OTP
278
- <MailIcon class="scale-90 h-[17px]" />
288
+ <MailIcon class="h-[17px] scale-90" />
279
289
  </h4>
280
290
  <Switch class="mx-auto" v-model="task.otpAccount" />
281
291
  </div>
282
292
  <div class="switch-wrapper flex flex-col">
283
293
  <h4>
284
- Aged <span class="hidden xs:block">Account</span>
294
+ Aged
295
+ <span class="hidden xs:block">Account</span>
285
296
  <SandclockIcon />
286
297
  </h4>
287
298
  <Switch class="mx-auto" v-model="task.agedAccount" />
@@ -290,7 +301,7 @@
290
301
  </div>
291
302
 
292
303
  <!-- Task prefab -->
293
- <div class="border border-dark-650 my-3" />
304
+ <div class="my-3 border border-dark-650" />
294
305
  <button class="btn-action mx-auto" @click="createTask">
295
306
  Create
296
307
  <EditIcon />
@@ -327,11 +338,11 @@ import { useUIStore } from "@/stores/ui";
327
338
  import { countries } from "@/stores/countries";
328
339
  import Dropdown from "@/components/ui/controls/atomic/Dropdown.vue";
329
340
  import MultiDropdown from "@/components/ui/controls/atomic/MultiDropdown.vue";
330
- import { isEU, parseEventUrl, removeDuplicates } from "@/stores/utils";
341
+ import { isEU, parseTmEventUrl, removeDuplicates } from "@/stores/utils";
331
342
 
332
343
  const ui = useUIStore();
333
344
 
334
- const accountTagOptions = ref(ui.profile.accountTags);
345
+ const accountTagOptions = ref(ui.profile.tags);
335
346
  const defaultTags = ["Amex", "Visa", "Master"];
336
347
 
337
348
  const profileTagsOptions = ref(removeDuplicates(["Any", ...defaultTags, ...ui.profile.profileTags]));
@@ -350,7 +361,6 @@ const baseTask = ref({
350
361
  proxy: "",
351
362
  manual: true,
352
363
  doNotPay: false,
353
- incapsulaBypass: false,
354
364
  quickQueue: false,
355
365
  loginAfterCart: false,
356
366
  smartTimer: false,
@@ -391,7 +401,11 @@ watch(
391
401
  }
392
402
  );
393
403
 
394
- watch(() => task.value, () => (ui.modalData[`task_${ui.currentCountry.siteId}`] = task.value), { deep: true });
404
+ watch(
405
+ () => task.value,
406
+ () => (ui.modalData[`task_${ui.currentCountry.siteId}`] = task.value),
407
+ { deep: true }
408
+ );
395
409
 
396
410
  watch(
397
411
  () => task.value.eventId,
@@ -410,10 +424,10 @@ watch(
410
424
  const country = countries.TM.find((c) => c.siteId === tmid);
411
425
  if (country) ui.setCurrentCountry(country, false, ui.currentModule);
412
426
 
413
- const { eventId, eventDid, clOrigin } = parseEventUrl(url);
414
- task.value.clOrigin = clOrigin;
415
- task.value.eventDid = eventDid;
427
+ const { eventId, eventDid, clOrigin } = parseTmEventUrl(url);
416
428
  task.value.eventId = eventId;
429
+ task.value.eventDid = eventDid;
430
+ task.value.clOrigin = clOrigin;
417
431
  } catch (ex) {
418
432
  ui.logger.Error("Could not parse url (2)", ex);
419
433
  }
@@ -3,8 +3,8 @@ const queueStats = false;
3
3
  export default {
4
4
  Profile: {
5
5
  name: "Admin",
6
- profileTags: ["Debug1", "Debug2", "Debug3"],
7
- accountTags: ["Debug4", "Debug5", "Debug6"],
6
+ tags: ["Set1", "Set2"],
7
+ profileTags: ["Revolut"],
8
8
  admin: true,
9
9
  proxyList: { checkout: "admin-proxies", queue: "admin-recaptcha" },
10
10
  profilePicture: "https://cdn.discordapp.com/avatars/435549216304267264/6cfd74ad7c5939a0bcbf218aa08be8cb.png"
@@ -22,7 +22,6 @@ export default {
22
22
  inQueue: queueStats,
23
23
  statusColor: "red",
24
24
  manual: false,
25
- incapsulaBypass: false,
26
25
  quickQueue: false,
27
26
  loginAfterCart: false,
28
27
  quantity: 8,
@@ -57,7 +56,6 @@ export default {
57
56
  status: "Waiting",
58
57
  statusColor: "white",
59
58
  manual: true,
60
- incapsulaBypass: false,
61
59
  quickQueue: false,
62
60
  loginAfterCart: true,
63
61
  quantity: 8,
@@ -91,7 +89,6 @@ export default {
91
89
  status: "Waiting for Stock",
92
90
  statusColor: "white",
93
91
  manual: false,
94
- incapsulaBypass: false,
95
92
  quickQueue: false,
96
93
  loginAfterCart: false,
97
94
  quantity: 8,
@@ -125,7 +122,6 @@ export default {
125
122
  status: "Waiting for Stock",
126
123
  statusColor: "white",
127
124
  manual: false,
128
- incapsulaBypass: false,
129
125
  quickQueue: false,
130
126
  loginAfterCart: false,
131
127
  quantity: 8,
@@ -159,7 +155,6 @@ export default {
159
155
  status: "Waiting for Stock",
160
156
  statusColor: "white",
161
157
  manual: false,
162
- incapsulaBypass: false,
163
158
  quickQueue: false,
164
159
  loginAfterCart: false,
165
160
  quantity: 8,
@@ -193,7 +188,6 @@ export default {
193
188
  status: "Waiting for Stock",
194
189
  statusColor: "white",
195
190
  manual: true,
196
- incapsulaBypass: false,
197
191
  quickQueue: false,
198
192
  loginAfterCart: true,
199
193
  quantity: 8,
@@ -227,7 +221,6 @@ export default {
227
221
  status: "Waiting for Stock",
228
222
  statusColor: "white",
229
223
  manual: false,
230
- incapsulaBypass: false,
231
224
  quickQueue: false,
232
225
  loginAfterCart: false,
233
226
  quantity: 8,
@@ -261,7 +254,6 @@ export default {
261
254
  status: "Waiting for Stock",
262
255
  statusColor: "white",
263
256
  manual: true,
264
- incapsulaBypass: false,
265
257
  quickQueue: false,
266
258
  loginAfterCart: true,
267
259
  quantity: 8,
@@ -295,7 +287,6 @@ export default {
295
287
  status: "Waiting for Stock",
296
288
  statusColor: "white",
297
289
  manual: false,
298
- incapsulaBypass: false,
299
290
  quickQueue: false,
300
291
  loginAfterCart: false,
301
292
  quantity: 8,
@@ -329,7 +320,6 @@ export default {
329
320
  status: queueStats ? "Waiting for Queue" : "Waiting for Stock",
330
321
  statusColor: "white",
331
322
  manual: false,
332
- incapsulaBypass: false,
333
323
  quickQueue: false,
334
324
  loginAfterCart: false,
335
325
  quantity: 8,
@@ -363,7 +353,6 @@ export default {
363
353
  status: "Error in Enqueue",
364
354
  statusColor: "red",
365
355
  manual: false,
366
- incapsulaBypass: false,
367
356
  quickQueue: false,
368
357
  loginAfterCart: false,
369
358
  quantity: 8,
@@ -397,7 +386,6 @@ export default {
397
386
  status: "Waiting for Stock",
398
387
  statusColor: "white",
399
388
  manual: false,
400
- incapsulaBypass: false,
401
389
  quickQueue: false,
402
390
  loginAfterCart: false,
403
391
  quantity: 8,
@@ -431,7 +419,6 @@ export default {
431
419
  status: "5500 users ahead - ETA: 4min",
432
420
  statusColor: "white",
433
421
  manual: false,
434
- incapsulaBypass: false,
435
422
  quickQueue: false,
436
423
  loginAfterCart: false,
437
424
  quantity: 8,
@@ -462,7 +449,6 @@ export default {
462
449
  status: "5000 users ahead - ETA: 3min",
463
450
  statusColor: "white",
464
451
  manual: false,
465
- incapsulaBypass: false,
466
452
  quickQueue: false,
467
453
  loginAfterCart: false,
468
454
  quantity: 8,
@@ -493,7 +479,6 @@ export default {
493
479
  status: "400 users ahead - ETA: less than 1 minute",
494
480
  statusColor: "white",
495
481
  manual: false,
496
- incapsulaBypass: false,
497
482
  quickQueue: false,
498
483
  loginAfterCart: false,
499
484
  quantity: 8,
@@ -524,7 +509,6 @@ export default {
524
509
  status: "400 users ahead - ETA: less than 1 minute",
525
510
  statusColor: "white",
526
511
  manual: false,
527
- incapsulaBypass: false,
528
512
  quickQueue: false,
529
513
  loginAfterCart: false,
530
514
  quantity: 8,
@@ -555,7 +539,6 @@ export default {
555
539
  status: "400 users ahead - ETA: less than 1 minute",
556
540
  statusColor: "white",
557
541
  manual: false,
558
- incapsulaBypass: false,
559
542
  quickQueue: false,
560
543
  loginAfterCart: false,
561
544
  quantity: 8,
@@ -586,7 +569,6 @@ export default {
586
569
  status: "400 users ahead - ETA: less than 1 minute",
587
570
  statusColor: "white",
588
571
  manual: false,
589
- incapsulaBypass: false,
590
572
  quickQueue: false,
591
573
  loginAfterCart: false,
592
574
  quantity: 8,
@@ -617,7 +599,6 @@ export default {
617
599
  status: "400 users ahead - ETA: less than 1 minute",
618
600
  statusColor: "white",
619
601
  manual: false,
620
- incapsulaBypass: false,
621
602
  quickQueue: false,
622
603
  loginAfterCart: false,
623
604
  quantity: 8,
@@ -648,7 +629,6 @@ export default {
648
629
  status: "Sleeping in queue",
649
630
  statusColor: "white",
650
631
  manual: false,
651
- incapsulaBypass: false,
652
632
  quickQueue: false,
653
633
  loginAfterCart: false,
654
634
  quantity: 8,
@@ -679,7 +659,6 @@ export default {
679
659
  status: "Sleeping in queue",
680
660
  statusColor: "white",
681
661
  manual: false,
682
- incapsulaBypass: false,
683
662
  quickQueue: false,
684
663
  loginAfterCart: false,
685
664
  quantity: 8,
@@ -723,7 +702,7 @@ export default {
723
702
  email: "aaa@bbb.com",
724
703
  password: "password123",
725
704
  enabled: true,
726
- tags: ["amex"],
705
+ tags: ["admin"],
727
706
  module: "TM"
728
707
  },
729
708
  {
@@ -731,7 +710,7 @@ export default {
731
710
  email: "aabb@ccc.com",
732
711
  password: "password123",
733
712
  enabled: true,
734
- tags: ["amex", "phone_mfa"],
713
+ tags: ["admin", "phone_mfa"],
735
714
  module: "TM"
736
715
  },
737
716
  {
package/src/stores/ui.js CHANGED
@@ -32,7 +32,7 @@ export const useUIStore = defineStore("ui", () => {
32
32
 
33
33
  const profile = ref({
34
34
  profileTags: [],
35
- accountTags: [],
35
+ tags: [],
36
36
  admin: false,
37
37
  name: ""
38
38
  });
@@ -361,7 +361,29 @@ const timeDifference = (date1, date2) => {
361
361
  return str;
362
362
  };
363
363
 
364
- const parseEventUrl = (url) => {
364
+ const parseAxsEventUrl = (url) => {
365
+ const HOST = "www.axs.com";
366
+
367
+ if (!url.startsWith("https://")) return { eventId: url };
368
+ if (!url.includes(`https://${HOST}`)) return {};
369
+
370
+ const siteMatch = url.match(new RegExp(`https://${HOST}(/uk)?`));
371
+ const eventMatch = url.match(/\/events\/(\d+)/);
372
+ const promoMatch = url.match(/\/promopage\/(\d+)/);
373
+
374
+ if (!siteMatch || !eventMatch) return {};
375
+
376
+ const siteId = siteMatch[1] === "/uk" ? "AXS_UK" : "AXS_US";
377
+ const eventId = eventMatch[1];
378
+ const promoId = promoMatch?.[1];
379
+
380
+ const result = { eventId, siteId };
381
+ if (promoId) result.promoId = promoId;
382
+
383
+ return result;
384
+ };
385
+
386
+ const parseTmEventUrl = (url) => {
365
387
  if (!url.includes("https://")) {
366
388
  return { eventId: url };
367
389
  }
@@ -542,7 +564,8 @@ export {
542
564
  generateStreetAddress,
543
565
  timeDifference,
544
566
  sortAlphaNum,
545
- parseEventUrl,
567
+ parseAxsEventUrl,
568
+ parseTmEventUrl,
546
569
  isEU,
547
570
  removeDuplicates,
548
571
  pickRandom,
@@ -16,7 +16,6 @@
16
16
  * @property {string} eventUrl
17
17
  * @property {string} eventVenue
18
18
  * @property {string} expirationTime
19
- * @property {boolean} incapsulaBypass
20
19
  * @property {boolean} isExpanded
21
20
  * @property {boolean} loginAfterCart
22
21
  * @property {boolean} manual
@@ -39,4 +38,4 @@
39
38
  * @property {string} taskId
40
39
  * @property {string} venueName
41
40
  * @property {string} _timeLeftString
42
- */
41
+ */