santoid-sdk 4.0.0 → 5.0.0

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.
@@ -0,0 +1,286 @@
1
+ 18:07:43.629 INFO Scanner configuration file: /opt/sonar-scanner/conf/sonar-scanner.properties
2
+ 18:07:43.634 INFO Project root configuration file: NONE
3
+ 18:07:43.654 INFO SonarScanner CLI 6.2.1.4610
4
+ 18:07:43.656 INFO Java 17.0.12 Amazon.com Inc. (64-bit)
5
+ 18:07:43.657 INFO Linux 6.1.79 amd64
6
+ 18:07:43.659 INFO SONAR_SCANNER_OPTS=-Xmx2048m
7
+ 18:07:43.701 INFO User cache: /opt/sonar-scanner/.sonar/cache
8
+ 18:07:44.525 INFO JRE provisioning: os[linux], arch[x86_64]
9
+ 18:07:49.444 INFO Communicating with SonarCloud
10
+ 18:07:49.943 INFO Starting SonarScanner Engine...
11
+ 18:07:49.947 INFO Java 17.0.11 Eclipse Adoptium (64-bit)
12
+ 18:07:51.372 INFO Load global settings
13
+ 18:07:51.918 INFO Load global settings (done) | time=547ms
14
+ 18:07:51.925 INFO Server id: 1BD809FA-AWHW8ct9-T_TB3XqouNu
15
+ 18:07:52.320 INFO Loading required plugins
16
+ 18:07:52.321 INFO Load plugins index
17
+ 18:07:52.486 INFO Load plugins index (done) | time=165ms
18
+ 18:07:52.488 INFO Load/download plugins
19
+ 18:07:53.905 INFO Load/download plugins (done) | time=1419ms
20
+ 18:07:54.418 INFO Found an active CI vendor: 'Bitbucket Pipelines'
21
+ 18:07:54.546 INFO Detected project key 'santodigital_santoid-sdk-javascript' from 'Bitbucket Cloud Pipelines'
22
+ 18:07:54.547 INFO Detected organization key 'santodigital' from 'Bitbucket Cloud Pipelines'
23
+ 18:07:54.550 INFO Load project settings for component key: 'santodigital_santoid-sdk-javascript'
24
+ 18:07:54.677 INFO Load project settings for component key: 'santodigital_santoid-sdk-javascript' (done) | time=128ms
25
+ 18:07:54.683 INFO Process project properties
26
+ 18:07:54.698 INFO Project key: santodigital_santoid-sdk-javascript
27
+ 18:07:54.699 INFO Base dir: /opt/atlassian/pipelines/agent/build
28
+ 18:07:54.699 INFO Working dir: /opt/atlassian/pipelines/agent/build/.scannerwork
29
+ 18:07:54.707 INFO Load project branches
30
+ 18:07:54.880 INFO Load project branches (done) | time=173ms
31
+ 18:07:54.884 INFO Check ALM binding of project 'santodigital_santoid-sdk-javascript'
32
+ 18:07:54.992 INFO Detected project binding: BOUND
33
+ 18:07:54.993 INFO Check ALM binding of project 'santodigital_santoid-sdk-javascript' (done) | time=108ms
34
+ 18:07:54.995 INFO Load project pull requests
35
+ 18:07:55.177 INFO Load project pull requests (done) | time=181ms
36
+ 18:07:55.181 INFO Load branch configuration
37
+ 18:07:55.184 INFO Detected analysis for branch 'master'
38
+ 18:07:55.185 INFO Auto-configuring branch master
39
+ 18:07:55.186 INFO Load branch configuration (done) | time=5ms
40
+ 18:07:55.195 INFO Load quality profiles
41
+ 18:07:55.444 INFO Load quality profiles (done) | time=249ms
42
+ 18:07:55.452 INFO Load active rules
43
+ 18:08:01.874 INFO Load active rules (done) | time=6422ms
44
+ 18:08:02.024 INFO Organization key: santodigital
45
+ 18:08:02.038 INFO Branch name: master, type: long-lived
46
+ 18:08:02.047 INFO Preprocessing files...
47
+ 18:08:02.231 INFO 1 language detected in 40 preprocessed files
48
+ 18:08:02.233 INFO 0 files ignored because of inclusion/exclusion patterns
49
+ 18:08:02.234 INFO 0 files ignored because of scm ignore settings
50
+ 18:08:02.263 INFO Loading plugins for detected languages
51
+ 18:08:02.266 INFO Load/download plugins
52
+ 18:08:03.479 INFO Load/download plugins (done) | time=1215ms
53
+ 18:08:03.708 INFO Load project repositories
54
+ 18:08:03.839 INFO Load project repositories (done) | time=130ms
55
+ 18:08:03.850 INFO Indexing files...
56
+ 18:08:03.850 INFO Project configuration:
57
+ 18:08:03.850 INFO Excluded sources: **/build-wrapper-dump.json, __tests__/**/*.test.ts
58
+ 18:08:03.850 INFO Included tests: __tests__/**/*.test.ts
59
+ 18:08:03.916 INFO 40 files indexed
60
+ 18:08:03.923 INFO Quality profile for ts: Sonar way
61
+ 18:08:03.924 INFO ------------- Run sensors on module santodigital_santoid-sdk-javascript
62
+ 18:08:04.002 INFO Load metrics repository
63
+ 18:08:04.125 INFO Load metrics repository (done) | time=123ms
64
+ 18:08:04.131 INFO Sensor cache enabled
65
+ 18:08:04.424 INFO Load sensor cache
66
+ 18:08:06.192 INFO Load sensor cache (96 KB) | time=1769ms
67
+ 18:08:07.114 INFO Sensor JaCoCo XML Report Importer [jacoco]
68
+ 18:08:07.116 INFO 'sonar.coverage.jacoco.xmlReportPaths' is not defined. Using default locations: target/site/jacoco/jacoco.xml,target/site/jacoco-it/jacoco.xml,build/reports/jacoco/test/jacocoTestReport.xml
69
+ 18:08:07.116 INFO No report imported, no coverage information will be imported by JaCoCo XML Report Importer
70
+ 18:08:07.117 INFO Sensor JaCoCo XML Report Importer [jacoco] (done) | time=2ms
71
+ 18:08:07.118 INFO Sensor Java Config Sensor [iac]
72
+ 18:08:07.158 INFO 0 source files to be analyzed
73
+ 18:08:07.170 INFO 0/0 source files have been analyzed
74
+ 18:08:07.173 INFO Sensor Java Config Sensor [iac] (done) | time=55ms
75
+ 18:08:07.174 INFO Sensor JavaScript/TypeScript analysis [javascript]
76
+ 18:08:07.434 INFO Detected os: Linux arch: amd64 alpine: false. Platform: LINUX_X64
77
+ 18:08:07.435 INFO Deploy location /opt/sonar-scanner/.sonar/js/node-runtime, tagetRuntime: /opt/sonar-scanner/.sonar/js/node-runtime/node, version: /opt/sonar-scanner/.sonar/js/node-runtime/version.txt
78
+ 18:08:11.587 INFO Using embedded Node.js runtime.
79
+ 18:08:11.587 INFO Using Node.js executable: '/opt/sonar-scanner/.sonar/js/node-runtime/node'.
80
+ 18:08:14.039 INFO Memory configuration: OS (10191 MB), Node.js (2096 MB).
81
+ 18:08:16.975 WARN Access to the multi-values/property set property 'sonar.javascript.file.suffixes' should be made using 'getStringArray' method. The SonarQube plugin using this property should be updated.
82
+ 18:08:16.976 WARN Access to the multi-values/property set property 'sonar.typescript.file.suffixes' should be made using 'getStringArray' method. The SonarQube plugin using this property should be updated.
83
+ 18:08:17.021 INFO Found 1 tsconfig.json file(s): [/opt/atlassian/pipelines/agent/build/tsconfig.json]
84
+ 18:08:17.022 INFO Creating TypeScript program
85
+ 18:08:17.023 INFO TypeScript configuration file /opt/atlassian/pipelines/agent/build/tsconfig.json
86
+ 18:08:17.024 INFO 40 source files to be analyzed
87
+ 18:08:18.065 INFO Starting analysis with current program
88
+ 18:08:22.906 INFO Analyzed 40 file(s) with current program
89
+ 18:08:22.918 INFO 40/40 source files have been analyzed
90
+ 18:08:22.919 INFO Hit the cache for 0 out of 40
91
+ 18:08:22.922 INFO Miss the cache for 40 out of 40: ANALYSIS_MODE_INELIGIBLE [40/40]
92
+ 18:08:22.922 INFO Sensor JavaScript/TypeScript analysis [javascript] (done) | time=15748ms
93
+ 18:08:22.922 INFO Sensor CSS Rules [javascript]
94
+ 18:08:22.923 INFO No CSS, PHP, HTML or VueJS files are found in the project. CSS analysis is skipped.
95
+ 18:08:22.923 INFO Sensor CSS Rules [javascript] (done) | time=1ms
96
+ 18:08:22.923 INFO Sensor JavaScript/TypeScript Coverage [javascript]
97
+ 18:08:22.924 INFO Analysing [/opt/atlassian/pipelines/agent/build/coverage/lcov.info]
98
+ 18:08:22.947 INFO Sensor JavaScript/TypeScript Coverage [javascript] (done) | time=23ms
99
+ 18:08:22.947 INFO Sensor IaC Docker Sensor [iac]
100
+ 18:08:23.080 INFO 0 source files to be analyzed
101
+ 18:08:23.081 INFO 0/0 source files have been analyzed
102
+ 18:08:23.081 INFO Sensor IaC Docker Sensor [iac] (done) | time=133ms
103
+ 18:08:23.081 INFO Sensor Serverless configuration file sensor [security]
104
+ 18:08:23.083 INFO 0 Serverless function entries were found in the project
105
+ 18:08:23.087 INFO 0 Serverless function handlers were kept as entrypoints
106
+ 18:08:23.087 INFO Sensor Serverless configuration file sensor [security] (done) | time=6ms
107
+ 18:08:23.088 INFO Sensor AWS SAM template file sensor [security]
108
+ 18:08:23.089 INFO Sensor AWS SAM template file sensor [security] (done) | time=1ms
109
+ 18:08:23.089 INFO Sensor AWS SAM Inline template file sensor [security]
110
+ 18:08:23.091 INFO Sensor AWS SAM Inline template file sensor [security] (done) | time=1ms
111
+ 18:08:23.091 INFO Sensor EnterpriseTextAndSecretsSensor [textenterprise]
112
+ 18:08:23.091 INFO Available processors: 4
113
+ 18:08:23.092 INFO Using 4 threads for analysis.
114
+ 18:08:23.913 INFO Using git CLI to retrieve untracked files
115
+ 18:08:23.918 WARN Analyzing only language associated files, make sure to run the analysis inside a git repository to make use of inclusions specified via "sonar.text.inclusions"
116
+ 18:08:23.944 INFO 40 source files to be analyzed
117
+ 18:08:24.377 INFO 40/40 source files have been analyzed
118
+ 18:08:24.379 INFO Sensor EnterpriseTextAndSecretsSensor [textenterprise] (done) | time=1287ms
119
+ 18:08:24.379 INFO Sensor JavaSecuritySensor [security]
120
+ 18:08:24.388 INFO Enabled taint analysis rules: S2076, S2078, S2083, S2091, S2631, S3649, S5131, S5135, S5144, S5145, S5146, S5147, S5334, S5496, S5883, S6096, S6173, S6287, S6350, S6384, S6390, S6398, S6399, S6547, S6549, S7044
121
+ 18:08:24.389 INFO Load type hierarchy and UCFGs: Starting
122
+ 18:08:24.389 INFO Load type hierarchy: Starting
123
+ 18:08:24.389 INFO Reading type hierarchy from: /opt/atlassian/pipelines/agent/build/.scannerwork/ucfg2/java
124
+ 18:08:24.389 INFO Read 0 type definitions
125
+ 18:08:24.392 INFO Load type hierarchy: Time spent was 00:00:00.002
126
+ 18:08:24.392 INFO Load UCFGs: Starting
127
+ 18:08:24.393 INFO Load UCFGs: Time spent was 00:00:00.000
128
+ 18:08:24.394 INFO Load type hierarchy and UCFGs: Time spent was 00:00:00.003
129
+ 18:08:24.394 INFO No UCFGs have been included for analysis.
130
+ 18:08:24.407 INFO java security sensor: Time spent was 00:00:00.024
131
+ 18:08:24.410 INFO java security sensor: Begin: 2025-02-19T18:08:24.382816327Z, End: 2025-02-19T18:08:24.407064805Z, Duration: 00:00:00.024
132
+ Load type hierarchy and UCFGs: Begin: 2025-02-19T18:08:24.388807975Z, End: 2025-02-19T18:08:24.392498435Z, Duration: 00:00:00.003
133
+ Load type hierarchy: Begin: 2025-02-19T18:08:24.388931381Z, End: 2025-02-19T18:08:24.391374442Z, Duration: 00:00:00.002
134
+ Load UCFGs: Begin: 2025-02-19T18:08:24.392196780Z, End: 2025-02-19T18:08:24.392315142Z, Duration: 00:00:00.000
135
+ 18:08:24.410 INFO java security sensor peak memory: 224 MB
136
+ 18:08:24.411 INFO Sensor JavaSecuritySensor [security] (done) | time=31ms
137
+ 18:08:24.411 INFO Sensor CSharpSecuritySensor [security]
138
+ 18:08:24.412 INFO Enabled taint analysis rules: S2076, S2078, S2083, S2091, S2631, S3649, S5131, S5135, S5144, S5145, S5146, S5147, S5334, S5883, S6096, S6173, S6287, S6350, S6399, S6547, S6549, S6639, S6641, S6680, S6776, S7044
139
+ 18:08:24.412 INFO Load type hierarchy and UCFGs: Starting
140
+ 18:08:24.412 INFO Load type hierarchy: Starting
141
+ 18:08:24.413 INFO Reading type hierarchy from: /opt/atlassian/pipelines/agent/build/ucfg2/cs
142
+ 18:08:24.413 INFO Read 0 type definitions
143
+ 18:08:24.413 INFO Load type hierarchy: Time spent was 00:00:00.000
144
+ 18:08:24.413 INFO Load UCFGs: Starting
145
+ 18:08:24.414 INFO Load UCFGs: Time spent was 00:00:00.000
146
+ 18:08:24.414 INFO Load type hierarchy and UCFGs: Time spent was 00:00:00.001
147
+ 18:08:24.414 INFO No UCFGs have been included for analysis.
148
+ 18:08:24.415 INFO csharp security sensor: Time spent was 00:00:00.003
149
+ 18:08:24.416 INFO csharp security sensor: Begin: 2025-02-19T18:08:24.411054821Z, End: 2025-02-19T18:08:24.414938348Z, Duration: 00:00:00.003
150
+ Load type hierarchy and UCFGs: Begin: 2025-02-19T18:08:24.412258716Z, End: 2025-02-19T18:08:24.413955166Z, Duration: 00:00:00.001
151
+ Load type hierarchy: Begin: 2025-02-19T18:08:24.412294742Z, End: 2025-02-19T18:08:24.412638182Z, Duration: 00:00:00.000
152
+ Load UCFGs: Begin: 2025-02-19T18:08:24.413191013Z, End: 2025-02-19T18:08:24.413578499Z, Duration: 00:00:00.000
153
+ 18:08:24.416 INFO csharp security sensor peak memory: 224 MB
154
+ 18:08:24.416 INFO Sensor CSharpSecuritySensor [security] (done) | time=6ms
155
+ 18:08:24.428 INFO Sensor PhpSecuritySensor [security]
156
+ 18:08:24.429 INFO Enabled taint analysis rules: S2076, S2078, S2083, S2091, S2631, S3649, S5131, S5135, S5144, S5145, S5146, S5334, S5335, S5883, S6173, S6287, S6350, S7044
157
+ 18:08:24.429 INFO Load type hierarchy and UCFGs: Starting
158
+ 18:08:24.429 INFO Load type hierarchy: Starting
159
+ 18:08:24.430 INFO Reading type hierarchy from: /opt/atlassian/pipelines/agent/build/.scannerwork/ucfg2/php
160
+ 18:08:24.430 INFO Read 0 type definitions
161
+ 18:08:24.432 INFO Load type hierarchy: Time spent was 00:00:00.000
162
+ 18:08:24.432 INFO Load UCFGs: Starting
163
+ 18:08:24.432 INFO Load UCFGs: Time spent was 00:00:00.000
164
+ 18:08:24.432 INFO Load type hierarchy and UCFGs: Time spent was 00:00:00.003
165
+ 18:08:24.432 INFO No UCFGs have been included for analysis.
166
+ 18:08:24.433 INFO php security sensor: Time spent was 00:00:00.005
167
+ 18:08:24.435 INFO php security sensor: Begin: 2025-02-19T18:08:24.428230433Z, End: 2025-02-19T18:08:24.433476691Z, Duration: 00:00:00.005
168
+ Load type hierarchy and UCFGs: Begin: 2025-02-19T18:08:24.429032710Z, End: 2025-02-19T18:08:24.432049660Z, Duration: 00:00:00.003
169
+ Load type hierarchy: Begin: 2025-02-19T18:08:24.429076120Z, End: 2025-02-19T18:08:24.429308153Z, Duration: 00:00:00.000
170
+ Load UCFGs: Begin: 2025-02-19T18:08:24.431766968Z, End: 2025-02-19T18:08:24.431848372Z, Duration: 00:00:00.000
171
+ 18:08:24.435 INFO php security sensor peak memory: 224 MB
172
+ 18:08:24.435 INFO Sensor PhpSecuritySensor [security] (done) | time=6ms
173
+ 18:08:24.435 INFO Sensor PythonSecuritySensor [security]
174
+ 18:08:24.436 INFO Enabled taint analysis rules: S2076, S2078, S2083, S2091, S2631, S3649, S5131, S5135, S5144, S5145, S5146, S5147, S5334, S5496, S6287, S6350, S6639, S6680, S6776, S6839, S7044
175
+ 18:08:24.436 INFO Load type hierarchy and UCFGs: Starting
176
+ 18:08:24.436 INFO Load type hierarchy: Starting
177
+ 18:08:24.437 INFO Reading type hierarchy from: /opt/atlassian/pipelines/agent/build/.scannerwork/ucfg2/python
178
+ 18:08:24.437 INFO Read 0 type definitions
179
+ 18:08:24.437 INFO Load type hierarchy: Time spent was 00:00:00.000
180
+ 18:08:24.437 INFO Load UCFGs: Starting
181
+ 18:08:24.437 INFO Load UCFGs: Time spent was 00:00:00.000
182
+ 18:08:24.438 INFO Load type hierarchy and UCFGs: Time spent was 00:00:00.001
183
+ 18:08:24.438 INFO No UCFGs have been included for analysis.
184
+ 18:08:24.439 INFO python security sensor: Time spent was 00:00:00.003
185
+ 18:08:24.440 INFO python security sensor: Begin: 2025-02-19T18:08:24.435481769Z, End: 2025-02-19T18:08:24.438752981Z, Duration: 00:00:00.003
186
+ Load type hierarchy and UCFGs: Begin: 2025-02-19T18:08:24.436327552Z, End: 2025-02-19T18:08:24.437417356Z, Duration: 00:00:00.001
187
+ Load type hierarchy: Begin: 2025-02-19T18:08:24.436453663Z, End: 2025-02-19T18:08:24.436727778Z, Duration: 00:00:00.000
188
+ Load UCFGs: Begin: 2025-02-19T18:08:24.436963310Z, End: 2025-02-19T18:08:24.437039081Z, Duration: 00:00:00.000
189
+ 18:08:24.440 INFO python security sensor peak memory: 224 MB
190
+ 18:08:24.440 INFO Sensor PythonSecuritySensor [security] (done) | time=4ms
191
+ 18:08:24.440 INFO Sensor JsSecuritySensor [security]
192
+ 18:08:24.442 INFO Enabled taint analysis rules: S2076, S2083, S2631, S3649, S5131, S5144, S5146, S5147, S5334, S5696, S5883, S6096, S6105, S6287, S6350
193
+ 18:08:24.442 INFO Load type hierarchy and UCFGs: Starting
194
+ 18:08:24.442 INFO Load type hierarchy: Starting
195
+ 18:08:24.442 INFO Reading type hierarchy from: /opt/atlassian/pipelines/agent/build/.scannerwork/ucfg2/js
196
+ 18:08:24.444 INFO Read 0 type definitions
197
+ 18:08:24.444 INFO Load type hierarchy: Time spent was 00:00:00.002
198
+ 18:08:24.445 INFO Load UCFGs: Starting
199
+ 18:08:24.445 INFO Reading UCFGs from: /opt/atlassian/pipelines/agent/build/.scannerwork/ucfg2/js
200
+ 18:08:24.744 INFO Load UCFGs: Time spent was 00:00:00.299
201
+ 18:08:24.745 INFO Load type hierarchy and UCFGs: Time spent was 00:00:00.302
202
+ 18:08:24.746 INFO Analyzing 157 UCFGs to detect vulnerabilities.
203
+ 18:08:24.747 INFO Check cache: Starting
204
+ 18:08:24.747 INFO Load cache: Starting
205
+ 18:08:24.747 INFO Load cache: Time spent was 00:00:00.000
206
+ 18:08:24.747 INFO Check cache: Time spent was 00:00:00.000
207
+ 18:08:24.748 INFO Create runtime call graph: Starting
208
+ 18:08:24.748 INFO Variable Type Analysis #1: Starting
209
+ 18:08:24.750 INFO Create runtime type propagation graph: Starting
210
+ 18:08:24.777 INFO Create runtime type propagation graph: Time spent was 00:00:00.026
211
+ 18:08:24.777 INFO Run SCC (Tarjan) on 881 nodes: Starting
212
+ 18:08:24.782 INFO Run SCC (Tarjan) on 881 nodes: Time spent was 00:00:00.004
213
+ 18:08:24.783 INFO Tarjan found 881 strongly connected components
214
+ 18:08:24.783 INFO Propagate runtime types to strongly connected components: Starting
215
+ 18:08:24.791 INFO Propagate runtime types to strongly connected components: Time spent was 00:00:00.008
216
+ 18:08:24.792 INFO Variable Type Analysis #1: Time spent was 00:00:00.043
217
+ 18:08:24.793 INFO Variable Type Analysis #2: Starting
218
+ 18:08:24.794 INFO Create runtime type propagation graph: Starting
219
+ 18:08:24.810 INFO Create runtime type propagation graph: Time spent was 00:00:00.016
220
+ 18:08:24.811 INFO Run SCC (Tarjan) on 881 nodes: Starting
221
+ 18:08:24.813 INFO Run SCC (Tarjan) on 881 nodes: Time spent was 00:00:00.002
222
+ 18:08:24.815 INFO Tarjan found 881 strongly connected components
223
+ 18:08:24.815 INFO Propagate runtime types to strongly connected components: Starting
224
+ 18:08:24.817 INFO Propagate runtime types to strongly connected components: Time spent was 00:00:00.003
225
+ 18:08:24.819 INFO Variable Type Analysis #2: Time spent was 00:00:00.024
226
+ 18:08:24.820 INFO Create runtime call graph: Time spent was 00:00:00.073
227
+ 18:08:24.820 INFO Load config: Starting
228
+ 18:08:24.928 INFO Load config: Time spent was 00:00:00.107
229
+ 18:08:24.928 INFO Compute entry points: Starting
230
+ 18:08:25.021 INFO Compute entry points: Time spent was 00:00:00.093
231
+ 18:08:25.022 INFO All rules entry points : 28
232
+ 18:08:25.023 INFO Slice call graph: Starting
233
+ 18:08:25.024 INFO Slice call graph: Time spent was 00:00:00.000
234
+ 18:08:25.024 INFO Live variable analysis: Starting
235
+ 18:08:25.100 INFO Live variable analysis: Time spent was 00:00:00.077
236
+ 18:08:25.101 INFO Taint analysis for js: Starting
237
+ 18:08:26.133 INFO 0 / 157 UCFGs simulated, memory usage: 107 MB
238
+ 18:08:26.263 INFO 28 / 157 UCFGs simulated, memory usage: 122 MB
239
+ 18:08:26.264 INFO Taint analysis for js: Time spent was 00:00:01.163
240
+ 18:08:26.264 INFO Report issues: Starting
241
+ 18:08:26.268 INFO Report issues: Time spent was 00:00:00.003
242
+ 18:08:26.269 INFO Store cache: Starting
243
+ 18:08:26.271 INFO Store cache: Time spent was 00:00:00.001
244
+ 18:08:26.273 INFO js security sensor: Time spent was 00:00:01.832
245
+ 18:08:26.274 INFO js security sensor: Begin: 2025-02-19T18:08:24.440686053Z, End: 2025-02-19T18:08:26.272726248Z, Duration: 00:00:01.832
246
+ Load type hierarchy and UCFGs: Begin: 2025-02-19T18:08:24.441909067Z, End: 2025-02-19T18:08:24.744156569Z, Duration: 00:00:00.302
247
+ Load type hierarchy: Begin: 2025-02-19T18:08:24.441940718Z, End: 2025-02-19T18:08:24.444361761Z, Duration: 00:00:00.002
248
+ Load UCFGs: Begin: 2025-02-19T18:08:24.444538505Z, End: 2025-02-19T18:08:24.743767562Z, Duration: 00:00:00.299
249
+ Check cache: Begin: 2025-02-19T18:08:24.744412318Z, End: 2025-02-19T18:08:24.745071348Z, Duration: 00:00:00.000
250
+ Load cache: Begin: 2025-02-19T18:08:24.744472731Z, End: 2025-02-19T18:08:24.744535371Z, Duration: 00:00:00.000
251
+ Create runtime call graph: Begin: 2025-02-19T18:08:24.745335104Z, End: 2025-02-19T18:08:24.818991079Z, Duration: 00:00:00.073
252
+ Variable Type Analysis #1: Begin: 2025-02-19T18:08:24.747062596Z, End: 2025-02-19T18:08:24.790900607Z, Duration: 00:00:00.043
253
+ Create runtime type propagation graph: Begin: 2025-02-19T18:08:24.750082587Z, End: 2025-02-19T18:08:24.776159340Z, Duration: 00:00:00.026
254
+ Run SCC (Tarjan) on 881 nodes: Begin: 2025-02-19T18:08:24.776878991Z, End: 2025-02-19T18:08:24.781606398Z, Duration: 00:00:00.004
255
+ Propagate runtime types to strongly connected components: Begin: 2025-02-19T18:08:24.782075847Z, End: 2025-02-19T18:08:24.790569617Z, Duration: 00:00:00.008
256
+ Variable Type Analysis #2: Begin: 2025-02-19T18:08:24.793168735Z, End: 2025-02-19T18:08:24.817350389Z, Duration: 00:00:00.024
257
+ Create runtime type propagation graph: Begin: 2025-02-19T18:08:24.793270347Z, End: 2025-02-19T18:08:24.809712805Z, Duration: 00:00:00.016
258
+ Run SCC (Tarjan) on 881 nodes: Begin: 2025-02-19T18:08:24.810117370Z, End: 2025-02-19T18:08:24.812700851Z, Duration: 00:00:00.002
259
+ Propagate runtime types to strongly connected components: Begin: 2025-02-19T18:08:24.813103954Z, End: 2025-02-19T18:08:24.817016189Z, Duration: 00:00:00.003
260
+ Load config: Begin: 2025-02-19T18:08:24.819222156Z, End: 2025-02-19T18:08:24.927118950Z, Duration: 00:00:00.107
261
+ Compute entry points: Begin: 2025-02-19T18:08:24.927449568Z, End: 2025-02-19T18:08:25.021007107Z, Duration: 00:00:00.093
262
+ Slice call graph: Begin: 2025-02-19T18:08:25.021446146Z, End: 2025-02-19T18:08:25.021478801Z, Duration: 00:00:00.000
263
+ Live variable analysis: Begin: 2025-02-19T18:08:25.021638503Z, End: 2025-02-19T18:08:25.099345446Z, Duration: 00:00:00.077
264
+ Taint analysis for js: Begin: 2025-02-19T18:08:25.100042355Z, End: 2025-02-19T18:08:26.263853177Z, Duration: 00:00:01.163
265
+ Report issues: Begin: 2025-02-19T18:08:26.264389475Z, End: 2025-02-19T18:08:26.267808640Z, Duration: 00:00:00.003
266
+ Store cache: Begin: 2025-02-19T18:08:26.269455720Z, End: 2025-02-19T18:08:26.271260650Z, Duration: 00:00:00.001
267
+ 18:08:26.276 INFO js security sensor peak memory: 235 MB
268
+ 18:08:26.288 INFO Sensor JsSecuritySensor [security] (done) | time=1847ms
269
+ 18:08:26.292 INFO ------------- Run sensors on project
270
+ 18:08:26.504 INFO Sensor Zero Coverage Sensor
271
+ 18:08:26.506 INFO Sensor Zero Coverage Sensor (done) | time=2ms
272
+ 18:08:26.529 INFO CPD Executor 7 files had no CPD blocks
273
+ 18:08:26.530 INFO CPD Executor Calculating CPD for 20 files
274
+ 18:08:26.580 INFO CPD Executor CPD calculation finished (done) | time=44ms
275
+ 18:08:26.787 INFO Analysis report generated in 201ms, dir size=404 KB
276
+ 18:08:27.022 INFO Analysis report compressed in 235ms, zip size=143 KB
277
+ 18:08:27.610 INFO Analysis report uploaded in 586ms
278
+ 18:08:27.613 INFO ANALYSIS SUCCESSFUL, you can find the results at: https://sonarcloud.io/dashboard?id=santodigital_santoid-sdk-javascript&branch=master
279
+ 18:08:27.613 INFO Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
280
+ 18:08:27.614 INFO More about the report processing at https://sonarcloud.io/api/ce/task?id=AZUfZZr7Wki3S8Zw-QMc
281
+ 18:08:28.605 INFO Sensor cache published successfully
282
+ 18:08:28.615 INFO Time spent writing ucfgs 106ms
283
+ 18:08:28.693 INFO Analysis total time: 34.603 s
284
+ 18:08:28.694 INFO SonarScanner Engine completed successfully
285
+ 18:08:29.037 INFO EXECUTION SUCCESS
286
+ 18:08:29.039 INFO Total time: 45.414s
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## Versão 5.0.0
4
+
5
+ ### Mudanças
6
+ - Adicionada rota assíncrona para o método **startDocumentUpload** da função **uploadIdentificationDocument**. Após a requisição, o método aguarda internamente a finalização do processamento dos resultados antes de entregá-los.
7
+ - Mudança do payload do campo **results** do objeto **typification** do resultado da função **uploadIdentificationDocument**. O novo formato está específicado na interface **ITypificationResult**.
8
+
3
9
  ## Versão 4.0.0
4
10
 
5
11
  ### Mudanças
package/README.md CHANGED
@@ -329,23 +329,28 @@ Em que:
329
329
  type TResultStatuses = 'success' | 'error' | null
330
330
 
331
331
  interface ITypificationResult {
332
- n_documents: number
333
-
334
- predictOCR: Array<{
332
+ count: number
333
+ customerRequestId: string
334
+ domain: string
335
+ error: object
336
+ executionDatetime: string
337
+ requestId: string
338
+ requestType: string
339
+ service: string
340
+ status: string
341
+ track: string
342
+
343
+ documents: Array<{
335
344
  typification: {
336
- document_type: string
337
- ocr_success: boolean
338
- typification_score: number
345
+ id: string
346
+ score: number
339
347
  }
340
348
 
341
- ocr_error?: boolean | null
342
-
343
- ocr_message?: {
344
- template: string
345
- labels: any
346
- } | null
349
+ error?: {
350
+ message: string
351
+ }
347
352
 
348
- ocr_extraction: {
353
+ ocr: {
349
354
  template: string
350
355
 
351
356
  labels: Array<{
@@ -356,12 +361,28 @@ interface ITypificationResult {
356
361
  bottomRight: number[]
357
362
  topLeft: number[]
358
363
 
359
- dataField?: string
360
- dataFieldValue?: boolean
361
-
362
- ocr?: string | null
363
- ocr_score?: number
364
- cropBase64?: string | null
364
+ label: string | null
365
+
366
+ text: string | null
367
+ ocr_score: number | null
368
+ crop: string | null
369
+ ocrInterpretive?: boolean | string | null
370
+ ocrList?: Array<{
371
+ x: number
372
+ y: number
373
+ w: number
374
+ h: number
375
+ bottomRight: number[]
376
+ topLeft: number[]
377
+
378
+ dataField?: string
379
+ dataFieldValue?: boolean
380
+
381
+ label: string | null
382
+ ocr?: string | null
383
+ ocr_score?: number
384
+ cropBase64?: string | null
385
+ }> | null
365
386
 
366
387
  serpro_query?: {
367
388
  serpro_data: any
@@ -372,11 +393,16 @@ interface ITypificationResult {
372
393
  status_code: number
373
394
  message: string
374
395
  }
375
- }
396
+ } | null
376
397
 
377
- validation?: Record<string, number | boolean>
398
+ validation: {
399
+ type: string | null
400
+ value: number | string | boolean
401
+ } | null
402
+
403
+ validationSerpro?: Record<string, number | boolean>
378
404
  }> | null
379
- } | boolean
405
+ } | null
380
406
  }>
381
407
  }
382
408
 
@@ -1,21 +1,46 @@
1
1
  import { AbstractService } from './AbstractService';
2
2
  export declare class TypificationService<TFileType> extends AbstractService {
3
- predict(imageFile: TFileType): Promise<ITypificationResult>;
3
+ predict(imageFile: TFileType, customerRequestId: string): Promise<ITypificationPredict>;
4
+ get(requestId: string): Promise<any>;
5
+ }
6
+ export interface ITypificationPredict {
7
+ createdAt: string;
8
+ message: string;
9
+ requestId: string;
10
+ }
11
+ export interface ITypificationGet {
12
+ createdAt: string;
13
+ delivered: boolean;
14
+ domain: string;
15
+ id: string;
16
+ requestType: string;
17
+ sourceURI: string;
18
+ status: string;
19
+ executionDeadline: number;
20
+ validationDuration: number;
21
+ track: string;
22
+ fileURL?: string;
4
23
  }
5
24
  export interface ITypificationResult {
6
- n_documents: number;
7
- predictOCR: Array<{
25
+ count: number;
26
+ customerRequestId: string;
27
+ domain: string;
28
+ error: object;
29
+ executionDatetime: string;
30
+ requestId: string;
31
+ requestType: string;
32
+ service: string;
33
+ status: string;
34
+ track: string;
35
+ documents: Array<{
8
36
  typification: {
9
- document_type: string;
10
- ocr_success: boolean;
11
- typification_score: number;
37
+ id: string;
38
+ score: number;
12
39
  };
13
- ocr_error?: boolean | null;
14
- ocr_message?: {
15
- template: string;
16
- labels: any;
17
- } | null;
18
- ocr_extraction: {
40
+ error?: {
41
+ message: string;
42
+ };
43
+ ocr: {
19
44
  template: string;
20
45
  labels: Array<{
21
46
  x: number;
@@ -24,11 +49,12 @@ export interface ITypificationResult {
24
49
  h: number;
25
50
  bottomRight: number[];
26
51
  topLeft: number[];
27
- dataField?: string;
28
- dataFieldValue?: boolean;
29
- ocr?: string | null;
30
- ocr_score?: number;
31
- cropBase64?: string | null;
52
+ label: string | null;
53
+ text: string | null;
54
+ ocr_score: number | null;
55
+ crop: string | null;
56
+ ocrInterpretive?: boolean | string | null;
57
+ ocrList: IOcrListResult[] | null;
32
58
  serpro_query?: {
33
59
  serpro_data: any;
34
60
  search_logs: {
@@ -38,9 +64,27 @@ export interface ITypificationResult {
38
64
  status_code: number;
39
65
  message: string;
40
66
  };
41
- };
42
- validation?: Record<string, number | boolean>;
67
+ } | null;
68
+ validation: {
69
+ type: string | null;
70
+ value: number | string | boolean;
71
+ } | null;
72
+ validationSerpro?: Record<string, number | boolean>;
43
73
  }> | null;
44
74
  } | boolean;
45
75
  }>;
46
76
  }
77
+ export interface IOcrListResult {
78
+ x: number;
79
+ y: number;
80
+ w: number;
81
+ h: number;
82
+ bottomRight: number[];
83
+ topLeft: number[];
84
+ dataField?: string;
85
+ dataFieldValue?: boolean;
86
+ label: string | null;
87
+ ocr?: string | null;
88
+ ocr_score?: number;
89
+ cropBase64?: string | null;
90
+ }
@@ -4,16 +4,28 @@ exports.TypificationService = void 0;
4
4
  const AbstractService_1 = require("./AbstractService");
5
5
  const index_1 = require("../utils/index");
6
6
  class TypificationService extends AbstractService_1.AbstractService {
7
- async predict(imageFile) {
7
+ async predict(imageFile, customerRequestId) {
8
8
  const requestFn = async () => {
9
9
  const formData = new this.serviceOptions.FormDataClass();
10
- formData.append('track', this.options.track);
11
10
  formData.append('imageFile', imageFile, 'imageFile.jpg');
11
+ formData.append('track', this.options.track);
12
+ formData.append('customerRequestId', customerRequestId);
13
+ formData.append('deliveryFront', true);
12
14
  const response = await this.request({ contentType: 'multipart/form-data' })
13
- .post('/api/v3/typification/predict', formData);
15
+ .post('/api/v1/typification-async/predict', formData);
14
16
  return response.data;
15
17
  };
16
18
  return await (0, index_1.retryAsyncFunctionXTimes)(requestFn);
17
19
  }
20
+ async get(requestId) {
21
+ const request = await this.request().get(`/api/v1/tracks/${this.options.track}/typification-async/` + requestId);
22
+ const { data } = request;
23
+ if ((data === null || data === void 0 ? void 0 : data.status) === 'processed' && data.fileURL) {
24
+ const response = await fetch(data.fileURL);
25
+ const results = await response.json();
26
+ return results;
27
+ }
28
+ return null;
29
+ }
18
30
  }
19
31
  exports.TypificationService = TypificationService;
package/browser/index.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("SantoiDSDK",[],t):"object"==typeof exports?exports.SantoiDSDK=t():e.SantoiDSDK=t()}(this,(()=>(()=>{"use strict";var e={373:function(e,t,n){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractService=void 0;const r=o(n(218)),s=n(661);t.AbstractService=class{constructor(e,t){this.options=e,this.serviceOptions=t}request(e){var t,n,{contentType:o="application/json",authToken:i=this.options.token,baseUrl:a=(null!==(t=this.options.customApiUrl)&&void 0!==t?t:s.API_GATEWAY_URL)}=void 0===e?{}:e;const c={baseURL:a,headers:{"Content-Type":o,Authorization:`Bearer ${i}`}};let l=this.options.domain;if(!this.options.domain&&this.options.token){const e=this.serviceOptions.tryDecodeJwt(this.options.token);l=null===(n=null==e?void 0:e.claims)||void 0===n?void 0:n.domain}return c.headers&&(l&&(c.headers.Domain=l),this.options.useBillingAccounts&&(c.headers.clientCredentials=!0)),r.default.create(c)}}},605:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FaceMatchService=void 0;const o=n(373),r=n(951);class s extends o.AbstractService{async faceMatch(e,t){return await(0,r.retryAsyncFunctionXTimes)((async()=>{const n=new this.serviceOptions.FormDataClass;return n.append("track",this.options.track),n.append("firstImage",e,"firstImage.jpg"),n.append("secondImage",t,"secondImage.jpg"),(await this.request({contentType:"multipart/form-data"}).post("/api/v1/facematch/pair",n,{params:{sensitive_data_compliance:!0}})).data}))}}t.FaceMatchService=s},144:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypificationService=void 0;const o=n(373),r=n(951);class s extends o.AbstractService{async predict(e){return await(0,r.retryAsyncFunctionXTimes)((async()=>{const t=new this.serviceOptions.FormDataClass;return t.append("track",this.options.track),t.append("imageFile",e,"imageFile.jpg"),(await this.request({contentType:"multipart/form-data"}).post("/api/v3/typification/predict",t)).data}))}}t.TypificationService=s},122:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.insertUploadIdentificationDocument=void 0;const o=n(661);t.insertUploadIdentificationDocument=function(e,t){var n,r,s;const i=t?document.querySelector(t):document.body;if(!i)throw new Error("Cannot find target element");const a=document.createElement("iframe");a.style.overflow="hidden",a.style.border="0",a.setAttribute("width",null!==(n=e.width)&&void 0!==n?n:"100%"),a.setAttribute("height",null!==(r=e.height)&&void 0!==r?r:"550px"),a.setAttribute("scrolling","no");let c=`${null!==(s=e.customAppUrl)&&void 0!==s?s:o.APPLICATION_URL}/share/domains/${e.domain}/tracks/${e.track}/flow/${e.flow}/embedded`;e.token&&(c+=`?accessToken=${e.token}`),a.setAttribute("src",c),i.appendChild(a)}},42:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LivenessDetectionService=void 0;const o=n(551),r=n(620),s=n(951),i=n(661);t.LivenessDetectionService=class{constructor(e,t){this.frameGetControls={},this.currentStep="front",this.pauseSendingFramesToWebSocket=!1,this.websocketClosedBySDK=!1,this.validationSuccess=!1,this.canSendNextBytes=!0,this.endCalled=!1,this.cancelSendingFramesToWebsocket=void 0,this.successFrames={front:void 0,right:void 0,left:void 0,up:void 0,bottom:void 0},this.options=e,this.abstractWebSocket=t}async onWebSocketMessage(e){var t,n,r,i,a,c,l,u;const d=e.data,p=JSON.parse(d);return(null==p?void 0:p.validation)&&this.currentStep&&(this.successFrames[this.currentStep]=this.lastSentBytes),(null==p?void 0:p.next_step)&&!p.error&&(this.currentStep=p.next_step,await(null===(n=(t=this.options).onNextStep)||void 0===n?void 0:n.call(t,p.next_step)),await(null===(i=(r=this.options)[`on${(0,s.capitalizeFirstLetter)(p.next_step)}Step`])||void 0===i?void 0:i.call(r))),p&&(this.canSendNextBytes=!!(null==p?void 0:p.can_send_next_bytes)),(null==p?void 0:p.success)&&(this.successFrames.bottom=this.lastSentBytes,this.validationSuccess=!0,await(null===(c=(a=this.options).onSuccess)||void 0===c?void 0:c.call(a,{livenessId:p.livenessId,successFrames:this.successFrames})),await this.stopLivenessDetection()),(null==p?void 0:p.error)&&await(null===(u=(l=this.options).onError)||void 0===u?void 0:u.call(l,new o.SDKError({message:"Wrong position",code:o.ELivenessDetectionErrorCodes.WRONG_POSITION}))),p}async stopLivenessDetection(){var e,t,n,o,r;await(0,s.waitFor)((()=>!!this.cancelSendingFramesToWebsocket)),null===(e=this.cancelSendingFramesToWebsocket)||void 0===e||e.call(this),await(null===(n=(t=this.frameGetControls).stopGettingFrames)||void 0===n?void 0:n.call(t)),this.abstractWebSocket.disconnectFromWebSocket(),this.endCalled||(await(null===(r=(o=this.options).onEnd)||void 0===r?void 0:r.call(o)),this.endCalled=!0),this.websocketClosedBySDK=!0}async sendFramesToWebSocket(){var e,t;try{if(this.canSendNextBytes&&!this.pauseSendingFramesToWebSocket){const n=await(null===(t=(e=this.frameGetControls).getNextFrame)||void 0===t?void 0:t.call(e));n&&(this.abstractWebSocket.send(n),this.lastSentBytes=n,this.canSendNextBytes=!1)}}catch(e){await this.stopLivenessDetection()}}async onConnect(){var e,t,n,o,a,c,l,u,d,p;try{if(this.options.getNextFrame)this.frameGetControls.startGettingFrames=this.options.startGettingFrames,this.frameGetControls.getNextFrame=this.options.getNextFrame,this.frameGetControls.stopGettingFrames=this.options.stopGettingFrames,this.frameGetControls.videoStream=await(null===(t=(e=this.options).startGettingFrames)||void 0===t?void 0:t.call(e));else{const e=await(0,r.getDefaultFrameControls)();this.frameGetControls.startGettingFrames=e.startGettingFrames,this.frameGetControls.getNextFrame=e.getNextFrame,this.frameGetControls.stopGettingFrames=e.stopGettingFrames,this.frameGetControls.videoStream=await(null===(o=(n=this.frameGetControls).startGettingFrames)||void 0===o?void 0:o.call(n))}await(null===(c=(a=this.options).onStart)||void 0===c?void 0:c.call(a,{videoStream:this.getVideoStream()})),await(null===(u=(l=this.options).onNextStep)||void 0===u?void 0:u.call(l,"front")),await(null===(p=(d=this.options).onFrontStep)||void 0===p?void 0:p.call(d)),this.cancelSendingFramesToWebsocket=(0,s.callAsyncFunctionEveryXSeconds)((async()=>{await this.sendFramesToWebSocket()}),i.SEND_FRAMES_INTERVAL_MS)}catch(e){await this.onError()}}async onError(){var e,t;this.validationSuccess||(await(null===(t=(e=this.options).onError)||void 0===t?void 0:t.call(e,new o.SDKError({message:"Internal Error",code:o.EDefaultErrorCodes.INTERNAL_ERROR}))),await this.stopLivenessDetection())}resumeGettingFrames(){this.pauseSendingFramesToWebSocket=!1}pauseGettingFrames(){this.pauseSendingFramesToWebSocket=!0}getVideoStream(){var e;return null===(e=this.frameGetControls)||void 0===e?void 0:e.videoStream}}},234:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.livenessDetection=void 0;const o=n(42),r=n(551),s=n(706),i=n(616);t.livenessDetection=function(e){var t;try{const n=new s.AbstractWebSocket({WebSocketClass:null!==(t=e.CustomWebSocketClass)&&void 0!==t?t:WebSocket,decodeJwt:i.decodeJwt},e);n.startConnection();const r=new o.LivenessDetectionService(e,n);return n.waitForWebSocketConnection().then((()=>{r.onConnect()})).catch((()=>{r.onError()})),n.addListener("message",(e=>{r.onWebSocketMessage(e)})),n.addListener("error",(()=>{r.onError()})),n.addListener("close",(()=>{r.onError()})),{getVideoStream:()=>r.getVideoStream(),stopLivenessDetection:async()=>{await r.stopLivenessDetection()},resumeGettingFrames:()=>{r.resumeGettingFrames()},pauseGettingFrames:()=>{r.pauseGettingFrames()}}}catch(e){throw new r.SDKError({message:"Error while starting SDK",code:r.EDefaultErrorCodes.INITIALIZATION_ERROR})}}},171:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UploadIdentificationDocumentService=void 0;const o=n(144),r=n(605),s=n(551),i=n(616);t.UploadIdentificationDocumentService=class{constructor(e,t){this.results={uploadedDocument:null,typification:{status:null,results:null,loading:!1,error:null},liveness:{status:null,results:null,loading:!1,error:null},faceMatch:{status:null,results:null,loading:!1,error:null}},this.options=e,this.internalOptions=t,this.typificationService=new o.TypificationService(e,{FormDataClass:FormData,tryDecodeJwt:i.tryDecodeJwt}),this.faceMatchService=new r.FaceMatchService(e,{FormDataClass:FormData,tryDecodeJwt:i.tryDecodeJwt})}getResults(){return this.results}async updateResults(e){var t,n,o,r,s,i;this.results=Object.assign(Object.assign({},this.results),e),await(null===(n=(t=this.options).onUpdate)||void 0===n?void 0:n.call(t,this.results)),e.faceMatch||this.tryStartFaceMatch(),Object.entries(this.results).every((([e,t])=>"uploadedDocument"===e||!!t.results))&&(await(null===(r=(o=this.options).onSuccess)||void 0===r?void 0:r.call(o,this.results)),await(null===(i=(s=this.options).onEnd)||void 0===i?void 0:i.call(s)))}updateUploadedDocument(e){this.results.uploadedDocument=e}async startDocumentUpload(e){var t,n;try{this.updateResults({typification:{status:null,results:null,loading:!0,error:null}}),this.updateUploadedDocument(e);const t=await this.typificationService.predict(e);this.updateResults({typification:{status:"success",results:t,loading:!1,error:null}})}catch(e){const o=new s.SDKError({message:"Error during document upload/analysis",code:s.EUploadIdentificationDocumentErrorCodes.DOCUMENT_ANALYSIS_ERROR,details:e});await(null===(n=(t=this.options).onError)||void 0===n?void 0:n.call(t,o)),this.updateResults({typification:{status:"error",results:null,loading:!1,error:o}})}}startLivenessDetection(e){var t,n;const o=Object.assign(Object.assign({},this.options.livenessDetectionOptions),e);this.updateResults({liveness:{results:null,status:null,loading:!0,error:null}});try{return this.internalOptions.livenessDetection(Object.assign(Object.assign({domain:this.options.domain,customId:this.options.customId,customWebSocketUrl:this.options.customWebSocketUrl,token:this.options.token,track:this.options.track},o),{onSuccess:async e=>{var t;await(null===(t=null==o?void 0:o.onSuccess)||void 0===t?void 0:t.call(o,e)),this.updateResults({liveness:{status:"success",results:e,loading:!1,error:null}})},onError:async e=>{var t,n,r;await(null===(t=null==o?void 0:o.onError)||void 0===t?void 0:t.call(o,e)),await(null===(r=(n=this.options).onError)||void 0===r?void 0:r.call(n,e)),this.updateResults({liveness:{status:"error",results:null,loading:"wrong-position"===(null==e?void 0:e.code),error:null!=e?e:null}})}}))}catch(e){const o=new s.SDKError({message:"Error during liveness detection",code:s.EUploadIdentificationDocumentErrorCodes.LIVENESS_DETECTION_ERROR,details:e});null===(n=(t=this.options).onError)||void 0===n||n.call(t,o),this.updateResults({liveness:{status:"error",results:null,loading:!1,error:o}})}}async startFaceMatch(e,t){var n,o;try{this.updateResults({faceMatch:{status:null,results:null,loading:!0,error:null}});const n=await this.faceMatchService.faceMatch(e,t);this.updateResults({faceMatch:{results:n,status:"success",loading:!1,error:null}})}catch(e){const t=new s.SDKError({message:"Error when comparing the face with the document",code:s.EUploadIdentificationDocumentErrorCodes.FACE_MATCH_ERROR,details:e});await(null===(o=(n=this.options).onError)||void 0===o?void 0:o.call(n,t)),this.updateResults({faceMatch:{results:null,status:"error",loading:!1,error:t}})}}async tryStartFaceMatch(){var e,t,n;!this.results.uploadedDocument||!(null===(e=this.results.liveness.results)||void 0===e?void 0:e.successFrames.front)||this.results.faceMatch.loading||this.results.liveness.loading||this.results.typification.loading?await(null===(n=(t=this.options).onError)||void 0===n?void 0:n.call(t,new s.SDKError({message:"Unavailable faces",code:s.EUploadIdentificationDocumentErrorCodes.FACE_MATCH_UNAVAILABLE_FACES_ERROR}))):await this.startFaceMatch(this.results.uploadedDocument,this.results.liveness.results.successFrames.front)}startAll(e,t){this.startDocumentUpload(e),this.startLivenessDetection(t)}}},604:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.uploadIdentificationDocument=void 0;const o=n(171),r=n(234);t.uploadIdentificationDocument=function(e){const t=new o.UploadIdentificationDocumentService(e,{livenessDetection:r.livenessDetection});return{startDocumentUpload:async(...e)=>{await t.startDocumentUpload(...e)},startLivenessDetection:(...e)=>t.startLivenessDetection(...e),startFaceComparison:async(...e)=>{await t.tryStartFaceMatch(...e)},startAll:(...e)=>{t.startAll(...e)},getResults:(...e)=>t.getResults(...e)}}},620:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getDefaultFrameControls=void 0,t.getDefaultFrameControls=async function(){let e,t,n,o;return{startGettingFrames:async function(){return e&&t&&n||(e=await navigator.mediaDevices.getUserMedia({video:!0}),t=document.createElement("video"),t.setAttribute("autoplay","true"),t.style.transform="scale(-1, 1)",t.style.position="absolute",t.style.left="99999px",document.body.appendChild(t),t.srcObject=e,n=document.createElement("canvas"),o=n.getContext("2d")),e},getNextFrame:async function(){if(n&&t)return n.width=t.videoWidth,n.height=t.videoHeight,null==o||o.drawImage(t,0,0,n.width,n.height),await new Promise(((e,t)=>{n?n.toBlob((t=>{e(t)})):e(null)}));throw new Error("Cannot found video element")},stopGettingFrames:function(){t&&(document.body.removeChild(t),t=void 0),n&&(n=void 0),o&&(o=void 0),e&&(null==e||e.getTracks().forEach((e=>{e.stop()})),e=void 0)}}}},616:(e,t)=>{function n(e){const t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(window.atob(t).split("").map((e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2))).join(""));return JSON.parse(n)}Object.defineProperty(t,"__esModule",{value:!0}),t.tryDecodeJwt=t.decodeJwt=void 0,t.decodeJwt=n,t.tryDecodeJwt=function(e){try{return n(e)}catch(e){return null}}},661:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_RETRY_TIME_STEP=t.DEFAULT_NUMBER_OF_RETRIES=t.SEND_FRAMES_INTERVAL_MS=t.APPLICATION_URL=t.API_GATEWAY_URL=t.WEBSOCKET_BASE_URL=void 0,t.WEBSOCKET_BASE_URL="wss://santoid-liveness-w4ynos5dlq-ue.a.run.app/api/v1/liveness/ws",t.API_GATEWAY_URL="https://api.santoid.com.br",t.APPLICATION_URL="https://app.santoid.com.br",t.SEND_FRAMES_INTERVAL_MS=100,t.DEFAULT_NUMBER_OF_RETRIES=5,t.DEFAULT_RETRY_TIME_STEP=1e3},551:(e,t)=>{var n,o,r;Object.defineProperty(t,"__esModule",{value:!0}),t.SDKError=t.EUploadIdentificationDocumentErrorCodes=t.ELivenessDetectionErrorCodes=t.EDefaultErrorCodes=void 0,function(e){e.INITIALIZATION_ERROR="initialization-error",e.INTERNAL_ERROR="internal-error"}(n||(t.EDefaultErrorCodes=n={})),function(e){e.WRONG_POSITION="liveness-detection/wrong-position"}(o||(t.ELivenessDetectionErrorCodes=o={})),function(e){e.FACE_MATCH_ERROR="upload-identification-document/face-match-error",e.FACE_MATCH_UNAVAILABLE_FACES_ERROR="upload-identification-document/face-match-unavailable-faces-error",e.DOCUMENT_ANALYSIS_ERROR="upload-identification-document/document-analysis-error",e.LIVENESS_DETECTION_ERROR="upload-identification-document/liveness-detection-error"}(r||(t.EUploadIdentificationDocumentErrorCodes=r={}));class s extends Error{constructor({message:e,code:t,details:n}){super(e),this.code=t,this.details=n}}t.SDKError=s},951:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.retryAsyncFunctionXTimes=t.callAsyncFunctionEveryXSeconds=t.waitFor=t.wait=t.capitalizeFirstLetter=void 0;const o=n(218),r=n(661);async function s(e){await new Promise((t=>{e()?t():setTimeout((()=>{s(e).then(t)}),500)}))}function i(e){var t;return e instanceof o.AxiosError&&(503===(null===(t=e.response)||void 0===t?void 0:t.status)||"Network Error"===e.message)}t.capitalizeFirstLetter=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},t.wait=async e=>{await new Promise((t=>{setTimeout(t,e)}))},t.waitFor=s,t.callAsyncFunctionEveryXSeconds=function e(t,n,o={stop:!1}){const r={timerEnd:!1};return setTimeout((()=>{r.timerEnd=!0}),n),t().then((async()=>{await s((()=>r.timerEnd)),o.stop||e(t,n,o)})),function(){o.stop=!0}},t.retryAsyncFunctionXTimes=async function e(n,o=i,s=r.DEFAULT_NUMBER_OF_RETRIES,a=1e3,c=r.DEFAULT_RETRY_TIME_STEP){try{return await n()}catch(r){if(o(r)&&s>0)return await(0,t.wait)(a),await e(n,o,s-1,a+c,c);throw r}}},706:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractWebSocket=void 0;const o=n(661);t.AbstractWebSocket=class{constructor(e,t){this.classOptions=e,this.sdkOptions=t}startConnection(){var e,t;const n=this.classOptions.decodeJwt(this.sdkOptions.token),r={x_endpoint_api_userinfo:this.sdkOptions.token,domain:null!==(e=this.sdkOptions.domain)&&void 0!==e?e:n.claims.domain,track:this.sdkOptions.track};this.sdkOptions.customId&&(r.customerRequestId=this.sdkOptions.customId),this.sdkOptions.useBillingAccounts&&(r.clientCredentials=!0);const s=Object.entries(r).map((e=>e.join("="))).join("&");this.websocket=new this.classOptions.WebSocketClass(`${null!==(t=this.sdkOptions.customWebSocketUrl)&&void 0!==t?t:o.WEBSOCKET_BASE_URL}?${s}`)}async waitForWebSocketConnection(){if(await new Promise((e=>{const t=setInterval((()=>{[3,1].includes(this.websocket.readyState)&&(clearInterval(t),e())}),5)})),3===this.websocket.readyState)throw new Error("Cannot connect to server")}disconnectFromWebSocket(){var e,t;[2,3].includes(this.websocket.readyState)||null===(t=(e=this.websocket).close)||void 0===t||t.call(e)}get readyState(){return this.websocket.readyState}addListener(e,t){var n,o;this.websocket.on?this.websocket.on(e,t):null===(o=(n=this.websocket).addEventListener)||void 0===o||o.call(n,e,t)}send(e){this.websocket.send(e)}}},218:(e,t,n)=>{function o(e,t){return function(){return e.apply(t,arguments)}}const{toString:r}=Object.prototype,{getPrototypeOf:s}=Object,i=(a=Object.create(null),e=>{const t=r.call(e);return a[t]||(a[t]=t.slice(8,-1).toLowerCase())});var a;const c=e=>(e=e.toLowerCase(),t=>i(t)===e),l=e=>t=>typeof t===e,{isArray:u}=Array,d=l("undefined"),p=c("ArrayBuffer"),f=l("string"),h=l("function"),m=l("number"),v=e=>null!==e&&"object"==typeof e,y=e=>{if("object"!==i(e))return!1;const t=s(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},g=c("Date"),E=c("File"),b=c("Blob"),w=c("FileList"),S=c("URLSearchParams");function O(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let o,r;if("object"!=typeof e&&(e=[e]),u(e))for(o=0,r=e.length;o<r;o++)t.call(null,e[o],o,e);else{const r=n?Object.getOwnPropertyNames(e):Object.keys(e),s=r.length;let i;for(o=0;o<s;o++)i=r[o],t.call(null,e[i],i,e)}}function R(e,t){t=t.toLowerCase();const n=Object.keys(e);let o,r=n.length;for(;r-- >0;)if(o=n[r],t===o.toLowerCase())return o;return null}const A="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:n.g,T=e=>!d(e)&&e!==A,_=(C="undefined"!=typeof Uint8Array&&s(Uint8Array),e=>C&&e instanceof C);var C;const D=c("HTMLFormElement"),F=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),N=c("RegExp"),j=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),o={};O(n,((n,r)=>{let s;!1!==(s=t(n,r,e))&&(o[r]=s||n)})),Object.defineProperties(e,o)},k="abcdefghijklmnopqrstuvwxyz",L="0123456789",U={DIGIT:L,ALPHA:k,ALPHA_DIGIT:k+k.toUpperCase()+L},x=c("AsyncFunction");var P={isArray:u,isArrayBuffer:p,isBuffer:function(e){return null!==e&&!d(e)&&null!==e.constructor&&!d(e.constructor)&&h(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||h(e.append)&&("formdata"===(t=i(e))||"object"===t&&h(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&p(e.buffer),t},isString:f,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:v,isPlainObject:y,isUndefined:d,isDate:g,isFile:E,isBlob:b,isRegExp:N,isFunction:h,isStream:e=>v(e)&&h(e.pipe),isURLSearchParams:S,isTypedArray:_,isFileList:w,forEach:O,merge:function e(){const{caseless:t}=T(this)&&this||{},n={},o=(o,r)=>{const s=t&&R(n,r)||r;y(n[s])&&y(o)?n[s]=e(n[s],o):y(o)?n[s]=e({},o):u(o)?n[s]=o.slice():n[s]=o};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&O(arguments[e],o);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(O(t,((t,r)=>{n&&h(t)?e[r]=o(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,o)=>{e.prototype=Object.create(t.prototype,o),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,o)=>{let r,i,a;const c={};if(t=t||{},null==e)return t;do{for(r=Object.getOwnPropertyNames(e),i=r.length;i-- >0;)a=r[i],o&&!o(a,e,t)||c[a]||(t[a]=e[a],c[a]=!0);e=!1!==n&&s(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:i,kindOfTest:c,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const o=e.indexOf(t,n);return-1!==o&&o===n},toArray:e=>{if(!e)return null;if(u(e))return e;let t=e.length;if(!m(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let o;for(;(o=n.next())&&!o.done;){const n=o.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const o=[];for(;null!==(n=e.exec(t));)o.push(n);return o},isHTMLForm:D,hasOwnProperty:F,hasOwnProp:F,reduceDescriptors:j,freezeMethods:e=>{j(e,((t,n)=>{if(h(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const o=e[n];h(o)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},o=e=>{e.forEach((e=>{n[e]=!0}))};return u(e)?o(e):o(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:R,global:A,isContextDefined:T,ALPHABET:U,generateString:(e=16,t=U.ALPHA_DIGIT)=>{let n="";const{length:o}=t;for(;e--;)n+=t[Math.random()*o|0];return n},isSpecCompliantForm:function(e){return!!(e&&h(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,o)=>{if(v(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[o]=e;const r=u(e)?[]:{};return O(e,((e,t)=>{const s=n(e,o+1);!d(s)&&(r[t]=s)})),t[o]=void 0,r}}return e};return n(e,0)},isAsyncFn:x,isThenable:e=>e&&(v(e)||h(e))&&h(e.then)&&h(e.catch)};function I(e,t,n,o,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),o&&(this.request=o),r&&(this.response=r)}P.inherits(I,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:P.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const B=I.prototype,M={};function W(e){return P.isPlainObject(e)||P.isArray(e)}function G(e){return P.endsWith(e,"[]")?e.slice(0,-2):e}function q(e,t,n){return e?e.concat(t).map((function(e,t){return e=G(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{M[e]={value:e}})),Object.defineProperties(I,M),Object.defineProperty(B,"isAxiosError",{value:!0}),I.from=(e,t,n,o,r,s)=>{const i=Object.create(B);return P.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),I.call(i,e.message,t,n,o,r),i.cause=e,i.name=e.name,s&&Object.assign(i,s),i};const J=P.toFlatObject(P,{},null,(function(e){return/^is[A-Z]/.test(e)}));function K(e,t,n){if(!P.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const o=(n=P.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!P.isUndefined(t[e])}))).metaTokens,r=n.visitor||l,s=n.dots,i=n.indexes,a=(n.Blob||"undefined"!=typeof Blob&&Blob)&&P.isSpecCompliantForm(t);if(!P.isFunction(r))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(P.isDate(e))return e.toISOString();if(!a&&P.isBlob(e))throw new I("Blob is not supported. Use a Buffer instead.");return P.isArrayBuffer(e)||P.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function l(e,n,r){let a=e;if(e&&!r&&"object"==typeof e)if(P.endsWith(n,"{}"))n=o?n:n.slice(0,-2),e=JSON.stringify(e);else if(P.isArray(e)&&function(e){return P.isArray(e)&&!e.some(W)}(e)||(P.isFileList(e)||P.endsWith(n,"[]"))&&(a=P.toArray(e)))return n=G(n),a.forEach((function(e,o){!P.isUndefined(e)&&null!==e&&t.append(!0===i?q([n],o,s):null===i?n:n+"[]",c(e))})),!1;return!!W(e)||(t.append(q(r,n,s),c(e)),!1)}const u=[],d=Object.assign(J,{defaultVisitor:l,convertValue:c,isVisitable:W});if(!P.isObject(e))throw new TypeError("data must be an object");return function e(n,o){if(!P.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+o.join("."));u.push(n),P.forEach(n,(function(n,s){!0===(!(P.isUndefined(n)||null===n)&&r.call(t,n,P.isString(s)?s.trim():s,o,d))&&e(n,o?o.concat(s):[s])})),u.pop()}}(e),t}function z(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function H(e,t){this._pairs=[],e&&K(e,this,t)}const V=H.prototype;function $(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function X(e,t,n){if(!t)return e;const o=n&&n.encode||$,r=n&&n.serialize;let s;if(s=r?r(t,n):P.isURLSearchParams(t)?t.toString():new H(t,n).toString(o),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}V.append=function(e,t){this._pairs.push([e,t])},V.toString=function(e){const t=e?function(t){return e.call(this,t,z)}:z;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Y=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){P.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},Z={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Q={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:H,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},isStandardBrowserEnv:(()=>{let e;return("undefined"==typeof navigator||"ReactNative"!==(e=navigator.product)&&"NativeScript"!==e&&"NS"!==e)&&"undefined"!=typeof window&&"undefined"!=typeof document})(),isStandardBrowserWebWorkerEnv:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,protocols:["http","https","file","blob","url","data"]};function ee(e){function t(e,n,o,r){let s=e[r++];const i=Number.isFinite(+s),a=r>=e.length;return s=!s&&P.isArray(o)?o.length:s,a?(P.hasOwnProp(o,s)?o[s]=[o[s],n]:o[s]=n,!i):(o[s]&&P.isObject(o[s])||(o[s]=[]),t(e,n,o[s],r)&&P.isArray(o[s])&&(o[s]=function(e){const t={},n=Object.keys(e);let o;const r=n.length;let s;for(o=0;o<r;o++)s=n[o],t[s]=e[s];return t}(o[s])),!i)}if(P.isFormData(e)&&P.isFunction(e.entries)){const n={};return P.forEachEntry(e,((e,o)=>{t(function(e){return P.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),o,n,0)})),n}return null}const te={transitional:Z,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",o=n.indexOf("application/json")>-1,r=P.isObject(e);if(r&&P.isHTMLForm(e)&&(e=new FormData(e)),P.isFormData(e))return o&&o?JSON.stringify(ee(e)):e;if(P.isArrayBuffer(e)||P.isBuffer(e)||P.isStream(e)||P.isFile(e)||P.isBlob(e))return e;if(P.isArrayBufferView(e))return e.buffer;if(P.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(r){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return K(e,new Q.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,o){return Q.isNode&&P.isBuffer(e)?(this.append(t,e.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((s=P.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return K(s?{"files[]":e}:e,t&&new t,this.formSerializer)}}return r||o?(t.setContentType("application/json",!1),function(e,t,n){if(P.isString(e))try{return(0,JSON.parse)(e),P.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||te.transitional,n=t&&t.forcedJSONParsing,o="json"===this.responseType;if(e&&P.isString(e)&&(n&&!this.responseType||o)){const n=!(t&&t.silentJSONParsing)&&o;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw I.from(e,I.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Q.classes.FormData,Blob:Q.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};P.forEach(["delete","get","head","post","put","patch"],(e=>{te.headers[e]={}}));var ne=te;const oe=P.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),re=Symbol("internals");function se(e){return e&&String(e).trim().toLowerCase()}function ie(e){return!1===e||null==e?e:P.isArray(e)?e.map(ie):String(e)}function ae(e,t,n,o,r){return P.isFunction(o)?o.call(this,t,n):(r&&(t=n),P.isString(t)?P.isString(o)?-1!==t.indexOf(o):P.isRegExp(o)?o.test(t):void 0:void 0)}class ce{constructor(e){e&&this.set(e)}set(e,t,n){const o=this;function r(e,t,n){const r=se(t);if(!r)throw new Error("header name must be a non-empty string");const s=P.findKey(o,r);(!s||void 0===o[s]||!0===n||void 0===n&&!1!==o[s])&&(o[s||t]=ie(e))}const s=(e,t)=>P.forEach(e,((e,n)=>r(e,n,t)));return P.isPlainObject(e)||e instanceof this.constructor?s(e,t):P.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?s((e=>{const t={};let n,o,r;return e&&e.split("\n").forEach((function(e){r=e.indexOf(":"),n=e.substring(0,r).trim().toLowerCase(),o=e.substring(r+1).trim(),!n||t[n]&&oe[n]||("set-cookie"===n?t[n]?t[n].push(o):t[n]=[o]:t[n]=t[n]?t[n]+", "+o:o)})),t})(e),t):null!=e&&r(t,e,n),this}get(e,t){if(e=se(e)){const n=P.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let o;for(;o=n.exec(e);)t[o[1]]=o[2];return t}(e);if(P.isFunction(t))return t.call(this,e,n);if(P.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=se(e)){const n=P.findKey(this,e);return!(!n||void 0===this[n]||t&&!ae(0,this[n],n,t))}return!1}delete(e,t){const n=this;let o=!1;function r(e){if(e=se(e)){const r=P.findKey(n,e);!r||t&&!ae(0,n[r],r,t)||(delete n[r],o=!0)}}return P.isArray(e)?e.forEach(r):r(e),o}clear(e){const t=Object.keys(this);let n=t.length,o=!1;for(;n--;){const r=t[n];e&&!ae(0,this[r],r,e,!0)||(delete this[r],o=!0)}return o}normalize(e){const t=this,n={};return P.forEach(this,((o,r)=>{const s=P.findKey(n,r);if(s)return t[s]=ie(o),void delete t[r];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(r):String(r).trim();i!==r&&delete t[r],t[i]=ie(o),n[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return P.forEach(this,((n,o)=>{null!=n&&!1!==n&&(t[o]=e&&P.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[re]=this[re]={accessors:{}}).accessors,n=this.prototype;function o(e){const o=se(e);t[o]||(function(e,t){const n=P.toCamelCase(" "+t);["get","set","has"].forEach((o=>{Object.defineProperty(e,o+n,{value:function(e,n,r){return this[o].call(this,t,e,n,r)},configurable:!0})}))}(n,e),t[o]=!0)}return P.isArray(e)?e.forEach(o):o(e),this}}ce.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),P.reduceDescriptors(ce.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),P.freezeMethods(ce);var le=ce;function ue(e,t){const n=this||ne,o=t||n,r=le.from(o.headers);let s=o.data;return P.forEach(e,(function(e){s=e.call(n,s,r.normalize(),t?t.status:void 0)})),r.normalize(),s}function de(e){return!(!e||!e.__CANCEL__)}function pe(e,t,n){I.call(this,null==e?"canceled":e,I.ERR_CANCELED,t,n),this.name="CanceledError"}P.inherits(pe,I,{__CANCEL__:!0});var fe=Q.isStandardBrowserEnv?{write:function(e,t,n,o,r,s){const i=[];i.push(e+"="+encodeURIComponent(t)),P.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),P.isString(o)&&i.push("path="+o),P.isString(r)&&i.push("domain="+r),!0===s&&i.push("secure"),document.cookie=i.join("; ")},read:function(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function he(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var me=Q.isStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function o(n){let o=n;return e&&(t.setAttribute("href",o),o=t.href),t.setAttribute("href",o),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=o(window.location.href),function(e){const t=P.isString(e)?o(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};function ve(e,t){let n=0;const o=function(e,t){e=e||10;const n=new Array(e),o=new Array(e);let r,s=0,i=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),l=o[i];r||(r=c),n[s]=a,o[s]=c;let u=i,d=0;for(;u!==s;)d+=n[u++],u%=e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),c-r<t)return;const p=l&&c-l;return p?Math.round(1e3*d/p):void 0}}(50,250);return r=>{const s=r.loaded,i=r.lengthComputable?r.total:void 0,a=s-n,c=o(a);n=s;const l={loaded:s,total:i,progress:i?s/i:void 0,bytes:a,rate:c||void 0,estimated:c&&i&&s<=i?(i-s)/c:void 0,event:r};l[t?"download":"upload"]=!0,e(l)}}const ye={http:null,xhr:"undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let o=e.data;const r=le.from(e.headers).normalize(),s=e.responseType;let i,a;function c(){e.cancelToken&&e.cancelToken.unsubscribe(i),e.signal&&e.signal.removeEventListener("abort",i)}P.isFormData(o)&&(Q.isStandardBrowserEnv||Q.isStandardBrowserWebWorkerEnv?r.setContentType(!1):r.getContentType(/^\s*multipart\/form-data/)?P.isString(a=r.getContentType())&&r.setContentType(a.replace(/^\s*(multipart\/form-data);+/,"$1")):r.setContentType("multipart/form-data"));let l=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";r.set("Authorization","Basic "+btoa(t+":"+n))}const u=he(e.baseURL,e.url);function d(){if(!l)return;const o=le.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(e,t,n){const o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(new I("Request failed with status code "+n.status,[I.ERR_BAD_REQUEST,I.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),c()}),(function(e){n(e),c()}),{data:s&&"text"!==s&&"json"!==s?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:o,config:e,request:l}),l=null}if(l.open(e.method.toUpperCase(),X(u,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,"onloadend"in l?l.onloadend=d:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(d)},l.onabort=function(){l&&(n(new I("Request aborted",I.ECONNABORTED,e,l)),l=null)},l.onerror=function(){n(new I("Network Error",I.ERR_NETWORK,e,l)),l=null},l.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const o=e.transitional||Z;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new I(t,o.clarifyTimeoutError?I.ETIMEDOUT:I.ECONNABORTED,e,l)),l=null},Q.isStandardBrowserEnv){const t=(e.withCredentials||me(u))&&e.xsrfCookieName&&fe.read(e.xsrfCookieName);t&&r.set(e.xsrfHeaderName,t)}void 0===o&&r.setContentType(null),"setRequestHeader"in l&&P.forEach(r.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),P.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),s&&"json"!==s&&(l.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",ve(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",ve(e.onUploadProgress)),(e.cancelToken||e.signal)&&(i=t=>{l&&(n(!t||t.type?new pe(null,e,l):t),l.abort(),l=null)},e.cancelToken&&e.cancelToken.subscribe(i),e.signal&&(e.signal.aborted?i():e.signal.addEventListener("abort",i)));const p=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(u);p&&-1===Q.protocols.indexOf(p)?n(new I("Unsupported protocol "+p+":",I.ERR_BAD_REQUEST,e)):l.send(o||null)}))}};P.forEach(ye,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const ge=e=>`- ${e}`,Ee=e=>P.isFunction(e)||null===e||!1===e;var be=e=>{e=P.isArray(e)?e:[e];const{length:t}=e;let n,o;const r={};for(let s=0;s<t;s++){let t;if(n=e[s],o=n,!Ee(n)&&(o=ye[(t=String(n)).toLowerCase()],void 0===o))throw new I(`Unknown adapter '${t}'`);if(o)break;r[t||"#"+s]=o}if(!o){const e=Object.entries(r).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new I("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(ge).join("\n"):" "+ge(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return o};function we(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new pe(null,e)}function Se(e){return we(e),e.headers=le.from(e.headers),e.data=ue.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),be(e.adapter||ne.adapter)(e).then((function(t){return we(e),t.data=ue.call(e,e.transformResponse,t),t.headers=le.from(t.headers),t}),(function(t){return de(t)||(we(e),t&&t.response&&(t.response.data=ue.call(e,e.transformResponse,t.response),t.response.headers=le.from(t.response.headers))),Promise.reject(t)}))}const Oe=e=>e instanceof le?e.toJSON():e;function Re(e,t){t=t||{};const n={};function o(e,t,n){return P.isPlainObject(e)&&P.isPlainObject(t)?P.merge.call({caseless:n},e,t):P.isPlainObject(t)?P.merge({},t):P.isArray(t)?t.slice():t}function r(e,t,n){return P.isUndefined(t)?P.isUndefined(e)?void 0:o(void 0,e,n):o(e,t,n)}function s(e,t){if(!P.isUndefined(t))return o(void 0,t)}function i(e,t){return P.isUndefined(t)?P.isUndefined(e)?void 0:o(void 0,e):o(void 0,t)}function a(n,r,s){return s in t?o(n,r):s in e?o(void 0,n):void 0}const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(e,t)=>r(Oe(e),Oe(t),!0)};return P.forEach(Object.keys(Object.assign({},e,t)),(function(o){const s=c[o]||r,i=s(e[o],t[o],o);P.isUndefined(i)&&s!==a||(n[o]=i)})),n}const Ae={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Ae[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const Te={};Ae.transitional=function(e,t,n){function o(e,t){return"[Axios v1.5.1] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,r,s)=>{if(!1===e)throw new I(o(r," has been removed"+(t?" in "+t:"")),I.ERR_DEPRECATED);return t&&!Te[r]&&(Te[r]=!0,console.warn(o(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,s)}};var _e={assertOptions:function(e,t,n){if("object"!=typeof e)throw new I("options must be an object",I.ERR_BAD_OPTION_VALUE);const o=Object.keys(e);let r=o.length;for(;r-- >0;){const s=o[r],i=t[s];if(i){const t=e[s],n=void 0===t||i(t,s,e);if(!0!==n)throw new I("option "+s+" must be "+n,I.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new I("Unknown option "+s,I.ERR_BAD_OPTION)}},validators:Ae};const Ce=_e.validators;class De{constructor(e){this.defaults=e,this.interceptors={request:new Y,response:new Y}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Re(this.defaults,t);const{transitional:n,paramsSerializer:o,headers:r}=t;void 0!==n&&_e.assertOptions(n,{silentJSONParsing:Ce.transitional(Ce.boolean),forcedJSONParsing:Ce.transitional(Ce.boolean),clarifyTimeoutError:Ce.transitional(Ce.boolean)},!1),null!=o&&(P.isFunction(o)?t.paramsSerializer={serialize:o}:_e.assertOptions(o,{encode:Ce.function,serialize:Ce.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=r&&P.merge(r.common,r[t.method]);r&&P.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete r[e]})),t.headers=le.concat(s,r);const i=[];let a=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const c=[];let l;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let u,d=0;if(!a){const e=[Se.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,c),u=e.length,l=Promise.resolve(t);d<u;)l=l.then(e[d++],e[d++]);return l}u=i.length;let p=t;for(d=0;d<u;){const e=i[d++],t=i[d++];try{p=e(p)}catch(e){t.call(this,e);break}}try{l=Se.call(this,p)}catch(e){return Promise.reject(e)}for(d=0,u=c.length;d<u;)l=l.then(c[d++],c[d++]);return l}getUri(e){return X(he((e=Re(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}P.forEach(["delete","get","head","options"],(function(e){De.prototype[e]=function(t,n){return this.request(Re(n||{},{method:e,url:t,data:(n||{}).data}))}})),P.forEach(["post","put","patch"],(function(e){function t(t){return function(n,o,r){return this.request(Re(r||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:o}))}}De.prototype[e]=t(),De.prototype[e+"Form"]=t(!0)}));var Fe=De;class Ne{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const o=new Promise((e=>{n.subscribe(e),t=e})).then(e);return o.cancel=function(){n.unsubscribe(t)},o},e((function(e,o,r){n.reason||(n.reason=new pe(e,o,r),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Ne((function(t){e=t})),cancel:e}}}var je=Ne;const ke={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ke).forEach((([e,t])=>{ke[t]=e}));var Le=ke;const Ue=function e(t){const n=new Fe(t),r=o(Fe.prototype.request,n);return P.extend(r,Fe.prototype,n,{allOwnKeys:!0}),P.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Re(t,n))},r}(ne);Ue.Axios=Fe,Ue.CanceledError=pe,Ue.CancelToken=je,Ue.isCancel=de,Ue.VERSION="1.5.1",Ue.toFormData=K,Ue.AxiosError=I,Ue.Cancel=Ue.CanceledError,Ue.all=function(e){return Promise.all(e)},Ue.spread=function(e){return function(t){return e.apply(null,t)}},Ue.isAxiosError=function(e){return P.isObject(e)&&!0===e.isAxiosError},Ue.mergeConfig=Re,Ue.AxiosHeaders=le,Ue.formToJSON=e=>ee(P.isHTMLForm(e)?new FormData(e):e),Ue.getAdapter=be,Ue.HttpStatusCode=Le,Ue.default=Ue,e.exports=Ue}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var s=t[o]={exports:{}};return e[o].call(s.exports,s,s.exports,n),s.exports}n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}();var o={};return(()=>{var e=o;const t=n(234),r=n(604),s=n(122);class i{}i.livenessDetection=t.livenessDetection,i.uploadIdentificationDocument=r.uploadIdentificationDocument,i.insertUploadIdentificationDocument=s.insertUploadIdentificationDocument,e.default=i})(),o.default})()));
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("SantoiDSDK",[],e):"object"==typeof exports?exports.SantoiDSDK=e():t.SantoiDSDK=e()}(this,(()=>(()=>{var t={373:function(t,e,n){"use strict";var o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractService=void 0;const r=o(n(218)),s=n(661);e.AbstractService=class{constructor(t,e){this.options=t,this.serviceOptions=e}request(t){var e,n,{contentType:o="application/json",authToken:i=this.options.token,baseUrl:a=(null!==(e=this.options.customApiUrl)&&void 0!==e?e:s.API_GATEWAY_URL)}=void 0===t?{}:t;const c={baseURL:a,headers:{"Content-Type":o,Authorization:`Bearer ${i}`}};let l=this.options.domain;if(!this.options.domain&&this.options.token){const t=this.serviceOptions.tryDecodeJwt(this.options.token);l=null===(n=null==t?void 0:t.claims)||void 0===n?void 0:n.domain}return c.headers&&(l&&(c.headers.Domain=l),this.options.useBillingAccounts&&(c.headers.clientCredentials=!0)),r.default.create(c)}}},605:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FaceMatchService=void 0;const o=n(373),r=n(951);class s extends o.AbstractService{async faceMatch(t,e){return await(0,r.retryAsyncFunctionXTimes)((async()=>{const n=new this.serviceOptions.FormDataClass;return n.append("track",this.options.track),n.append("firstImage",t,"firstImage.jpg"),n.append("secondImage",e,"secondImage.jpg"),(await this.request({contentType:"multipart/form-data"}).post("/api/v1/facematch/pair",n,{params:{sensitive_data_compliance:!0}})).data}))}}e.FaceMatchService=s},144:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TypificationService=void 0;const o=n(373),r=n(951);class s extends o.AbstractService{async predict(t,e){return await(0,r.retryAsyncFunctionXTimes)((async()=>{const n=new this.serviceOptions.FormDataClass;return n.append("imageFile",t,"imageFile.jpg"),n.append("track",this.options.track),n.append("customerRequestId",e),n.append("deliveryFront",!0),(await this.request({contentType:"multipart/form-data"}).post("/api/v1/typification-async/predict",n)).data}))}async get(t){const e=await this.request().get(`/api/v1/tracks/${this.options.track}/typification-async/`+t),{data:n}=e;if("processed"===(null==n?void 0:n.status)&&n.fileURL){const t=await fetch(n.fileURL);return await t.json()}return null}}e.TypificationService=s},122:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.insertUploadIdentificationDocument=void 0;const o=n(661);e.insertUploadIdentificationDocument=function(t,e){var n,r,s;const i=e?document.querySelector(e):document.body;if(!i)throw new Error("Cannot find target element");const a=document.createElement("iframe");a.style.overflow="hidden",a.style.border="0",a.setAttribute("width",null!==(n=t.width)&&void 0!==n?n:"100%"),a.setAttribute("height",null!==(r=t.height)&&void 0!==r?r:"550px"),a.setAttribute("scrolling","no"),a.setAttribute("allow","camera; microphone; clipboard-read; clipboard-write");let c=`${null!==(s=t.customAppUrl)&&void 0!==s?s:o.APPLICATION_URL}/share/domains/${t.domain}/tracks/${t.track}/flow/${t.flow}/embedded`;t.token&&(c+=`?accessToken=${t.token}`),a.setAttribute("src",c),i.appendChild(a)}},42:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LivenessDetectionService=void 0;const o=n(551),r=n(620),s=n(951),i=n(661);e.LivenessDetectionService=class{constructor(t,e){this.frameGetControls={},this.currentStep="front",this.pauseSendingFramesToWebSocket=!1,this.websocketClosedBySDK=!1,this.validationSuccess=!1,this.canSendNextBytes=!0,this.endCalled=!1,this.cancelSendingFramesToWebsocket=void 0,this.successFrames={front:void 0,right:void 0,left:void 0,up:void 0,bottom:void 0},this.options=t,this.abstractWebSocket=e}async onWebSocketMessage(t){var e,n,r,i,a,c,l,u;const d=t.data,p=JSON.parse(d);return(null==p?void 0:p.validation)&&this.currentStep&&(this.successFrames[this.currentStep]=this.lastSentBytes),(null==p?void 0:p.next_step)&&!p.error&&(this.currentStep=p.next_step,await(null===(n=(e=this.options).onNextStep)||void 0===n?void 0:n.call(e,p.next_step)),await(null===(i=(r=this.options)[`on${(0,s.capitalizeFirstLetter)(p.next_step)}Step`])||void 0===i?void 0:i.call(r))),p&&(this.canSendNextBytes=!!(null==p?void 0:p.can_send_next_bytes)),(null==p?void 0:p.success)&&(this.successFrames.bottom=this.lastSentBytes,this.validationSuccess=!0,await(null===(c=(a=this.options).onSuccess)||void 0===c?void 0:c.call(a,{livenessId:p.livenessId,successFrames:this.successFrames})),await this.stopLivenessDetection()),(null==p?void 0:p.error)&&await(null===(u=(l=this.options).onError)||void 0===u?void 0:u.call(l,new o.SDKError({message:"Wrong position",code:o.ELivenessDetectionErrorCodes.WRONG_POSITION}))),p}async stopLivenessDetection(){var t,e,n,o,r;await(0,s.waitFor)((()=>!!this.cancelSendingFramesToWebsocket)),null===(t=this.cancelSendingFramesToWebsocket)||void 0===t||t.call(this),await(null===(n=(e=this.frameGetControls).stopGettingFrames)||void 0===n?void 0:n.call(e)),this.abstractWebSocket.disconnectFromWebSocket(),this.endCalled||(await(null===(r=(o=this.options).onEnd)||void 0===r?void 0:r.call(o)),this.endCalled=!0),this.websocketClosedBySDK=!0}async sendFramesToWebSocket(){var t,e;try{if(this.canSendNextBytes&&!this.pauseSendingFramesToWebSocket){const n=await(null===(e=(t=this.frameGetControls).getNextFrame)||void 0===e?void 0:e.call(t));n&&(this.abstractWebSocket.send(n),this.lastSentBytes=n,this.canSendNextBytes=!1)}}catch(t){await this.stopLivenessDetection()}}async onConnect(){var t,e,n,o,a,c,l,u,d,p;try{if(this.options.getNextFrame)this.frameGetControls.startGettingFrames=this.options.startGettingFrames,this.frameGetControls.getNextFrame=this.options.getNextFrame,this.frameGetControls.stopGettingFrames=this.options.stopGettingFrames,this.frameGetControls.videoStream=await(null===(e=(t=this.options).startGettingFrames)||void 0===e?void 0:e.call(t));else{const t=await(0,r.getDefaultFrameControls)();this.frameGetControls.startGettingFrames=t.startGettingFrames,this.frameGetControls.getNextFrame=t.getNextFrame,this.frameGetControls.stopGettingFrames=t.stopGettingFrames,this.frameGetControls.videoStream=await(null===(o=(n=this.frameGetControls).startGettingFrames)||void 0===o?void 0:o.call(n))}await(null===(c=(a=this.options).onStart)||void 0===c?void 0:c.call(a,{videoStream:this.getVideoStream()})),await(null===(u=(l=this.options).onNextStep)||void 0===u?void 0:u.call(l,"front")),await(null===(p=(d=this.options).onFrontStep)||void 0===p?void 0:p.call(d)),this.cancelSendingFramesToWebsocket=(0,s.callAsyncFunctionEveryXSeconds)((async()=>{await this.sendFramesToWebSocket()}),i.SEND_FRAMES_INTERVAL_MS)}catch(t){await this.onError()}}async onError(){var t,e;this.validationSuccess||(await(null===(e=(t=this.options).onError)||void 0===e?void 0:e.call(t,new o.SDKError({message:"Internal Error",code:o.EDefaultErrorCodes.INTERNAL_ERROR}))),await this.stopLivenessDetection())}resumeGettingFrames(){this.pauseSendingFramesToWebSocket=!1}pauseGettingFrames(){this.pauseSendingFramesToWebSocket=!0}getVideoStream(){var t;return null===(t=this.frameGetControls)||void 0===t?void 0:t.videoStream}}},234:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.livenessDetection=void 0;const o=n(42),r=n(551),s=n(706),i=n(616);e.livenessDetection=function(t){var e;try{const n=new s.AbstractWebSocket({WebSocketClass:null!==(e=t.CustomWebSocketClass)&&void 0!==e?e:WebSocket,decodeJwt:i.decodeJwt},t);n.startConnection();const r=new o.LivenessDetectionService(t,n);return n.waitForWebSocketConnection().then((()=>{r.onConnect()})).catch((()=>{r.onError()})),n.addListener("message",(t=>{r.onWebSocketMessage(t)})),n.addListener("error",(()=>{r.onError()})),n.addListener("close",(()=>{r.onError()})),{getVideoStream:()=>r.getVideoStream(),stopLivenessDetection:async()=>{await r.stopLivenessDetection()},resumeGettingFrames:()=>{r.resumeGettingFrames()},pauseGettingFrames:()=>{r.pauseGettingFrames()}}}catch(t){throw new r.SDKError({message:"Error while starting SDK",code:r.EDefaultErrorCodes.INITIALIZATION_ERROR})}}},171:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UploadIdentificationDocumentService=void 0;const o=n(144),r=n(605),s=n(551),i=n(877),a=n(616);e.UploadIdentificationDocumentService=class{constructor(t,e){this.results={uploadedDocument:null,typification:{status:null,results:null,loading:!1,error:null},liveness:{status:null,results:null,loading:!1,error:null},faceMatch:{status:null,results:null,loading:!1,error:null}},this.options=t,this.internalOptions=e,this.typificationService=new o.TypificationService(t,{FormDataClass:FormData,tryDecodeJwt:a.tryDecodeJwt}),this.faceMatchService=new r.FaceMatchService(t,{FormDataClass:FormData,tryDecodeJwt:a.tryDecodeJwt})}getResults(){return this.results}async updateResults(t){var e,n,o,r,s,i;this.results=Object.assign(Object.assign({},this.results),t),await(null===(n=(e=this.options).onUpdate)||void 0===n?void 0:n.call(e,this.results)),t.faceMatch||this.tryStartFaceMatch(),Object.entries(this.results).every((([t,e])=>"uploadedDocument"===t||!!e.results))&&(await(null===(r=(o=this.options).onSuccess)||void 0===r?void 0:r.call(o,this.results)),await(null===(i=(s=this.options).onEnd)||void 0===i?void 0:i.call(s)))}updateUploadedDocument(t){this.results.uploadedDocument=t}async waitForResults(t){return await new Promise(((e,n)=>{const o=setInterval((async()=>{try{const n=await this.typificationService.get(t);n&&(clearInterval(o),e(n))}catch(t){clearInterval(o),n(new Error(t))}}),5e3)}))}async startDocumentUpload(t){var e,n;try{this.updateResults({typification:{status:null,results:null,loading:!0,error:null}}),this.updateUploadedDocument(t);const{requestId:e}=await this.typificationService.predict(t,`sdk-typification-${(0,i.v4)()}`),n=await this.waitForResults(e);this.updateResults({typification:{status:"success",results:n,loading:!1,error:null}})}catch(t){const o=new s.SDKError({message:"Error during document upload/analysis",code:s.EUploadIdentificationDocumentErrorCodes.DOCUMENT_ANALYSIS_ERROR,details:t});await(null===(n=(e=this.options).onError)||void 0===n?void 0:n.call(e,o)),this.updateResults({typification:{status:"error",results:null,loading:!1,error:o}})}}startLivenessDetection(t){var e,n;const o=Object.assign(Object.assign({},this.options.livenessDetectionOptions),t);this.updateResults({liveness:{results:null,status:null,loading:!0,error:null}});try{return this.internalOptions.livenessDetection(Object.assign(Object.assign({domain:this.options.domain,customId:this.options.customId,customWebSocketUrl:this.options.customWebSocketUrl,token:this.options.token,track:this.options.track},o),{onSuccess:async t=>{var e;await(null===(e=null==o?void 0:o.onSuccess)||void 0===e?void 0:e.call(o,t)),this.updateResults({liveness:{status:"success",results:t,loading:!1,error:null}})},onError:async t=>{var e,n,r;await(null===(e=null==o?void 0:o.onError)||void 0===e?void 0:e.call(o,t)),await(null===(r=(n=this.options).onError)||void 0===r?void 0:r.call(n,t)),this.updateResults({liveness:{status:"error",results:null,loading:"wrong-position"===(null==t?void 0:t.code),error:null!=t?t:null}})}}))}catch(t){const o=new s.SDKError({message:"Error during liveness detection",code:s.EUploadIdentificationDocumentErrorCodes.LIVENESS_DETECTION_ERROR,details:t});null===(n=(e=this.options).onError)||void 0===n||n.call(e,o),this.updateResults({liveness:{status:"error",results:null,loading:!1,error:o}})}}async startFaceMatch(t,e){var n,o;try{this.updateResults({faceMatch:{status:null,results:null,loading:!0,error:null}});const n=await this.faceMatchService.faceMatch(t,e);this.updateResults({faceMatch:{results:n,status:"success",loading:!1,error:null}})}catch(t){const e=new s.SDKError({message:"Error when comparing the face with the document",code:s.EUploadIdentificationDocumentErrorCodes.FACE_MATCH_ERROR,details:t});await(null===(o=(n=this.options).onError)||void 0===o?void 0:o.call(n,e)),this.updateResults({faceMatch:{results:null,status:"error",loading:!1,error:e}})}}async tryStartFaceMatch(){var t,e,n;!this.results.uploadedDocument||!(null===(t=this.results.liveness.results)||void 0===t?void 0:t.successFrames.front)||this.results.faceMatch.loading||this.results.liveness.loading||this.results.typification.loading?await(null===(n=(e=this.options).onError)||void 0===n?void 0:n.call(e,new s.SDKError({message:"Unavailable faces",code:s.EUploadIdentificationDocumentErrorCodes.FACE_MATCH_UNAVAILABLE_FACES_ERROR}))):await this.startFaceMatch(this.results.uploadedDocument,this.results.liveness.results.successFrames.front)}startAll(t,e){this.startDocumentUpload(t),this.startLivenessDetection(e)}}},604:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.uploadIdentificationDocument=void 0;const o=n(171),r=n(234);e.uploadIdentificationDocument=function(t){const e=new o.UploadIdentificationDocumentService(t,{livenessDetection:r.livenessDetection});return{startDocumentUpload:async(...t)=>{await e.startDocumentUpload(...t)},startLivenessDetection:(...t)=>e.startLivenessDetection(...t),startFaceComparison:async(...t)=>{await e.tryStartFaceMatch(...t)},startAll:(...t)=>{e.startAll(...t)},getResults:(...t)=>e.getResults(...t)}}},620:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getDefaultFrameControls=void 0,e.getDefaultFrameControls=async function(){let t,e,n,o;return{startGettingFrames:async function(){return t&&e&&n||(t=await navigator.mediaDevices.getUserMedia({video:!0}),e=document.createElement("video"),e.setAttribute("autoplay","true"),e.style.transform="scale(-1, 1)",e.style.position="absolute",e.style.left="99999px",document.body.appendChild(e),e.srcObject=t,n=document.createElement("canvas"),o=n.getContext("2d")),t},getNextFrame:async function(){if(n&&e)return n.width=e.videoWidth,n.height=e.videoHeight,null==o||o.drawImage(e,0,0,n.width,n.height),await new Promise(((t,e)=>{n?n.toBlob((e=>{t(e)})):t(null)}));throw new Error("Cannot found video element")},stopGettingFrames:function(){e&&(document.body.removeChild(e),e=void 0),n&&(n=void 0),o&&(o=void 0),t&&(null==t||t.getTracks().forEach((t=>{t.stop()})),t=void 0)}}}},616:(t,e)=>{"use strict";function n(t){const e=t.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(window.atob(e).split("").map((t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2))).join(""));return JSON.parse(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.tryDecodeJwt=e.decodeJwt=void 0,e.decodeJwt=n,e.tryDecodeJwt=function(t){try{return n(t)}catch(t){return null}}},661:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DEFAULT_RETRY_TIME_STEP=e.DEFAULT_NUMBER_OF_RETRIES=e.SEND_FRAMES_INTERVAL_MS=e.APPLICATION_URL=e.API_GATEWAY_URL=e.WEBSOCKET_BASE_URL=void 0,e.WEBSOCKET_BASE_URL="wss://santoid-liveness-w4ynos5dlq-ue.a.run.app/api/v1/liveness/ws",e.API_GATEWAY_URL="https://api.santoid.com.br",e.APPLICATION_URL="https://app.santoid.com.br",e.SEND_FRAMES_INTERVAL_MS=100,e.DEFAULT_NUMBER_OF_RETRIES=5,e.DEFAULT_RETRY_TIME_STEP=1e3},551:(t,e)=>{"use strict";var n,o,r;Object.defineProperty(e,"__esModule",{value:!0}),e.SDKError=e.EUploadIdentificationDocumentErrorCodes=e.ELivenessDetectionErrorCodes=e.EDefaultErrorCodes=void 0,function(t){t.INITIALIZATION_ERROR="initialization-error",t.INTERNAL_ERROR="internal-error"}(n||(e.EDefaultErrorCodes=n={})),function(t){t.WRONG_POSITION="liveness-detection/wrong-position"}(o||(e.ELivenessDetectionErrorCodes=o={})),function(t){t.FACE_MATCH_ERROR="upload-identification-document/face-match-error",t.FACE_MATCH_UNAVAILABLE_FACES_ERROR="upload-identification-document/face-match-unavailable-faces-error",t.DOCUMENT_ANALYSIS_ERROR="upload-identification-document/document-analysis-error",t.LIVENESS_DETECTION_ERROR="upload-identification-document/liveness-detection-error"}(r||(e.EUploadIdentificationDocumentErrorCodes=r={}));class s extends Error{constructor({message:t,code:e,details:n}){super(t),this.code=e,this.details=n}}e.SDKError=s},951:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.retryAsyncFunctionXTimes=e.callAsyncFunctionEveryXSeconds=e.waitFor=e.wait=e.capitalizeFirstLetter=void 0;const o=n(218),r=n(661);async function s(t){await new Promise((e=>{t()?e():setTimeout((()=>{s(t).then(e)}),500)}))}function i(t){var e;return t instanceof o.AxiosError&&(503===(null===(e=t.response)||void 0===e?void 0:e.status)||"Network Error"===t.message)}e.capitalizeFirstLetter=function(t){return t.charAt(0).toUpperCase()+t.slice(1)},e.wait=async t=>{await new Promise((e=>{setTimeout(e,t)}))},e.waitFor=s,e.callAsyncFunctionEveryXSeconds=function t(e,n,o={stop:!1}){const r={timerEnd:!1};return setTimeout((()=>{r.timerEnd=!0}),n),e().then((async()=>{await s((()=>r.timerEnd)),o.stop||t(e,n,o)})),function(){o.stop=!0}},e.retryAsyncFunctionXTimes=async function t(n,o=i,s=r.DEFAULT_NUMBER_OF_RETRIES,a=1e3,c=r.DEFAULT_RETRY_TIME_STEP){try{return await n()}catch(r){if(o(r)&&s>0)return await(0,e.wait)(a),await t(n,o,s-1,a+c,c);throw r}}},706:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractWebSocket=void 0;const o=n(661);e.AbstractWebSocket=class{constructor(t,e){this.classOptions=t,this.sdkOptions=e}startConnection(){var t,e;const n=this.classOptions.decodeJwt(this.sdkOptions.token),r={x_endpoint_api_userinfo:this.sdkOptions.token,domain:null!==(t=this.sdkOptions.domain)&&void 0!==t?t:n.claims.domain,track:this.sdkOptions.track};this.sdkOptions.customId&&(r.customerRequestId=this.sdkOptions.customId),this.sdkOptions.useBillingAccounts&&(r.clientCredentials=!0);const s=Object.entries(r).map((t=>t.join("="))).join("&");this.websocket=new this.classOptions.WebSocketClass(`${null!==(e=this.sdkOptions.customWebSocketUrl)&&void 0!==e?e:o.WEBSOCKET_BASE_URL}?${s}`)}async waitForWebSocketConnection(){if(await new Promise((t=>{const e=setInterval((()=>{[3,1].includes(this.websocket.readyState)&&(clearInterval(e),t())}),5)})),3===this.websocket.readyState)throw new Error("Cannot connect to server")}disconnectFromWebSocket(){var t,e;[2,3].includes(this.websocket.readyState)||null===(e=(t=this.websocket).close)||void 0===e||e.call(t)}get readyState(){return this.websocket.readyState}addListener(t,e){var n,o;this.websocket.on?this.websocket.on(t,e):null===(o=(n=this.websocket).addEventListener)||void 0===o||o.call(n,t,e)}send(t){this.websocket.send(t)}}},877:(t,e,n)=>{var o=n(570),r=n(358),s=r;s.v1=o,s.v4=r,t.exports=s},327:t=>{for(var e=[],n=0;n<256;++n)e[n]=(n+256).toString(16).substr(1);t.exports=function(t,n){var o=n||0,r=e;return[r[t[o++]],r[t[o++]],r[t[o++]],r[t[o++]],"-",r[t[o++]],r[t[o++]],"-",r[t[o++]],r[t[o++]],"-",r[t[o++]],r[t[o++]],"-",r[t[o++]],r[t[o++]],r[t[o++]],r[t[o++]],r[t[o++]],r[t[o++]]].join("")}},217:t=>{var e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(e){var n=new Uint8Array(16);t.exports=function(){return e(n),n}}else{var o=new Array(16);t.exports=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),o[e]=t>>>((3&e)<<3)&255;return o}}},570:(t,e,n)=>{var o,r,s=n(217),i=n(327),a=0,c=0;t.exports=function(t,e,n){var l=e&&n||0,u=e||[],d=(t=t||{}).node||o,p=void 0!==t.clockseq?t.clockseq:r;if(null==d||null==p){var f=s();null==d&&(d=o=[1|f[0],f[1],f[2],f[3],f[4],f[5]]),null==p&&(p=r=16383&(f[6]<<8|f[7]))}var h=void 0!==t.msecs?t.msecs:(new Date).getTime(),m=void 0!==t.nsecs?t.nsecs:c+1,v=h-a+(m-c)/1e4;if(v<0&&void 0===t.clockseq&&(p=p+1&16383),(v<0||h>a)&&void 0===t.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");a=h,c=m,r=p;var y=(1e4*(268435455&(h+=122192928e5))+m)%4294967296;u[l++]=y>>>24&255,u[l++]=y>>>16&255,u[l++]=y>>>8&255,u[l++]=255&y;var g=h/4294967296*1e4&268435455;u[l++]=g>>>8&255,u[l++]=255&g,u[l++]=g>>>24&15|16,u[l++]=g>>>16&255,u[l++]=p>>>8|128,u[l++]=255&p;for(var E=0;E<6;++E)u[l+E]=d[E];return e||i(u)}},358:(t,e,n)=>{var o=n(217),r=n(327);t.exports=function(t,e,n){var s=e&&n||0;"string"==typeof t&&(e="binary"===t?new Array(16):null,t=null);var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e)for(var a=0;a<16;++a)e[s+a]=i[a];return e||r(i)}},218:(t,e,n)=>{"use strict";function o(t,e){return function(){return t.apply(e,arguments)}}const{toString:r}=Object.prototype,{getPrototypeOf:s}=Object,i=(a=Object.create(null),t=>{const e=r.call(t);return a[e]||(a[e]=e.slice(8,-1).toLowerCase())});var a;const c=t=>(t=t.toLowerCase(),e=>i(e)===t),l=t=>e=>typeof e===t,{isArray:u}=Array,d=l("undefined"),p=c("ArrayBuffer"),f=l("string"),h=l("function"),m=l("number"),v=t=>null!==t&&"object"==typeof t,y=t=>{if("object"!==i(t))return!1;const e=s(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},g=c("Date"),E=c("File"),w=c("Blob"),b=c("FileList"),S=c("URLSearchParams");function O(t,e,{allOwnKeys:n=!1}={}){if(null==t)return;let o,r;if("object"!=typeof t&&(t=[t]),u(t))for(o=0,r=t.length;o<r;o++)e.call(null,t[o],o,t);else{const r=n?Object.getOwnPropertyNames(t):Object.keys(t),s=r.length;let i;for(o=0;o<s;o++)i=r[o],e.call(null,t[i],i,t)}}function R(t,e){e=e.toLowerCase();const n=Object.keys(t);let o,r=n.length;for(;r-- >0;)if(o=n[r],e===o.toLowerCase())return o;return null}const A="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:n.g,T=t=>!d(t)&&t!==A,_=(C="undefined"!=typeof Uint8Array&&s(Uint8Array),t=>C&&t instanceof C);var C;const D=c("HTMLFormElement"),F=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),N=c("RegExp"),k=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),o={};O(n,((n,r)=>{let s;!1!==(s=e(n,r,t))&&(o[r]=s||n)})),Object.defineProperties(t,o)},j="abcdefghijklmnopqrstuvwxyz",U="0123456789",L={DIGIT:U,ALPHA:j,ALPHA_DIGIT:j+j.toUpperCase()+U},x=c("AsyncFunction");var P={isArray:u,isArrayBuffer:p,isBuffer:function(t){return null!==t&&!d(t)&&null!==t.constructor&&!d(t.constructor)&&h(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:t=>{let e;return t&&("function"==typeof FormData&&t instanceof FormData||h(t.append)&&("formdata"===(e=i(t))||"object"===e&&h(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){let e;return e="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&p(t.buffer),e},isString:f,isNumber:m,isBoolean:t=>!0===t||!1===t,isObject:v,isPlainObject:y,isUndefined:d,isDate:g,isFile:E,isBlob:w,isRegExp:N,isFunction:h,isStream:t=>v(t)&&h(t.pipe),isURLSearchParams:S,isTypedArray:_,isFileList:b,forEach:O,merge:function t(){const{caseless:e}=T(this)&&this||{},n={},o=(o,r)=>{const s=e&&R(n,r)||r;y(n[s])&&y(o)?n[s]=t(n[s],o):y(o)?n[s]=t({},o):u(o)?n[s]=o.slice():n[s]=o};for(let t=0,e=arguments.length;t<e;t++)arguments[t]&&O(arguments[t],o);return n},extend:(t,e,n,{allOwnKeys:r}={})=>(O(e,((e,r)=>{n&&h(e)?t[r]=o(e,n):t[r]=e}),{allOwnKeys:r}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,e,n,o)=>{t.prototype=Object.create(e.prototype,o),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:(t,e,n,o)=>{let r,i,a;const c={};if(e=e||{},null==t)return e;do{for(r=Object.getOwnPropertyNames(t),i=r.length;i-- >0;)a=r[i],o&&!o(a,t,e)||c[a]||(e[a]=t[a],c[a]=!0);t=!1!==n&&s(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:i,kindOfTest:c,endsWith:(t,e,n)=>{t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;const o=t.indexOf(e,n);return-1!==o&&o===n},toArray:t=>{if(!t)return null;if(u(t))return t;let e=t.length;if(!m(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},forEachEntry:(t,e)=>{const n=(t&&t[Symbol.iterator]).call(t);let o;for(;(o=n.next())&&!o.done;){const n=o.value;e.call(t,n[0],n[1])}},matchAll:(t,e)=>{let n;const o=[];for(;null!==(n=t.exec(e));)o.push(n);return o},isHTMLForm:D,hasOwnProperty:F,hasOwnProp:F,reduceDescriptors:k,freezeMethods:t=>{k(t,((e,n)=>{if(h(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const o=t[n];h(o)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(t,e)=>{const n={},o=t=>{t.forEach((t=>{n[t]=!0}))};return u(t)?o(t):o(String(t).split(e)),n},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(t,e)=>(t=+t,Number.isFinite(t)?t:e),findKey:R,global:A,isContextDefined:T,ALPHABET:L,generateString:(t=16,e=L.ALPHA_DIGIT)=>{let n="";const{length:o}=e;for(;t--;)n+=e[Math.random()*o|0];return n},isSpecCompliantForm:function(t){return!!(t&&h(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:t=>{const e=new Array(10),n=(t,o)=>{if(v(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[o]=t;const r=u(t)?[]:{};return O(t,((t,e)=>{const s=n(t,o+1);!d(s)&&(r[e]=s)})),e[o]=void 0,r}}return t};return n(t,0)},isAsyncFn:x,isThenable:t=>t&&(v(t)||h(t))&&h(t.then)&&h(t.catch)};function I(t,e,n,o,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),o&&(this.request=o),r&&(this.response=r)}P.inherits(I,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:P.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const B=I.prototype,M={};function W(t){return P.isPlainObject(t)||P.isArray(t)}function G(t){return P.endsWith(t,"[]")?t.slice(0,-2):t}function q(t,e,n){return t?t.concat(e).map((function(t,e){return t=G(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((t=>{M[t]={value:t}})),Object.defineProperties(I,M),Object.defineProperty(B,"isAxiosError",{value:!0}),I.from=(t,e,n,o,r,s)=>{const i=Object.create(B);return P.toFlatObject(t,i,(function(t){return t!==Error.prototype}),(t=>"isAxiosError"!==t)),I.call(i,t.message,e,n,o,r),i.cause=t,i.name=t.name,s&&Object.assign(i,s),i};const J=P.toFlatObject(P,{},null,(function(t){return/^is[A-Z]/.test(t)}));function K(t,e,n){if(!P.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;const o=(n=P.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!P.isUndefined(e[t])}))).metaTokens,r=n.visitor||l,s=n.dots,i=n.indexes,a=(n.Blob||"undefined"!=typeof Blob&&Blob)&&P.isSpecCompliantForm(e);if(!P.isFunction(r))throw new TypeError("visitor must be a function");function c(t){if(null===t)return"";if(P.isDate(t))return t.toISOString();if(!a&&P.isBlob(t))throw new I("Blob is not supported. Use a Buffer instead.");return P.isArrayBuffer(t)||P.isTypedArray(t)?a&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function l(t,n,r){let a=t;if(t&&!r&&"object"==typeof t)if(P.endsWith(n,"{}"))n=o?n:n.slice(0,-2),t=JSON.stringify(t);else if(P.isArray(t)&&function(t){return P.isArray(t)&&!t.some(W)}(t)||(P.isFileList(t)||P.endsWith(n,"[]"))&&(a=P.toArray(t)))return n=G(n),a.forEach((function(t,o){!P.isUndefined(t)&&null!==t&&e.append(!0===i?q([n],o,s):null===i?n:n+"[]",c(t))})),!1;return!!W(t)||(e.append(q(r,n,s),c(t)),!1)}const u=[],d=Object.assign(J,{defaultVisitor:l,convertValue:c,isVisitable:W});if(!P.isObject(t))throw new TypeError("data must be an object");return function t(n,o){if(!P.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+o.join("."));u.push(n),P.forEach(n,(function(n,s){!0===(!(P.isUndefined(n)||null===n)&&r.call(e,n,P.isString(s)?s.trim():s,o,d))&&t(n,o?o.concat(s):[s])})),u.pop()}}(t),e}function z(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function V(t,e){this._pairs=[],t&&K(t,this,e)}const H=V.prototype;function $(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function X(t,e,n){if(!e)return t;const o=n&&n.encode||$,r=n&&n.serialize;let s;if(s=r?r(e,n):P.isURLSearchParams(e)?e.toString():new V(e,n).toString(o),s){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+s}return t}H.append=function(t,e){this._pairs.push([t,e])},H.toString=function(t){const e=t?function(e){return t.call(this,e,z)}:z;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var Y=class{constructor(){this.handlers=[]}use(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){P.forEach(this.handlers,(function(e){null!==e&&t(e)}))}},Z={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Q={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:V,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},isStandardBrowserEnv:(()=>{let t;return("undefined"==typeof navigator||"ReactNative"!==(t=navigator.product)&&"NativeScript"!==t&&"NS"!==t)&&"undefined"!=typeof window&&"undefined"!=typeof document})(),isStandardBrowserWebWorkerEnv:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,protocols:["http","https","file","blob","url","data"]};function tt(t){function e(t,n,o,r){let s=t[r++];const i=Number.isFinite(+s),a=r>=t.length;return s=!s&&P.isArray(o)?o.length:s,a?(P.hasOwnProp(o,s)?o[s]=[o[s],n]:o[s]=n,!i):(o[s]&&P.isObject(o[s])||(o[s]=[]),e(t,n,o[s],r)&&P.isArray(o[s])&&(o[s]=function(t){const e={},n=Object.keys(t);let o;const r=n.length;let s;for(o=0;o<r;o++)s=n[o],e[s]=t[s];return e}(o[s])),!i)}if(P.isFormData(t)&&P.isFunction(t.entries)){const n={};return P.forEachEntry(t,((t,o)=>{e(function(t){return P.matchAll(/\w+|\[(\w*)]/g,t).map((t=>"[]"===t[0]?"":t[1]||t[0]))}(t),o,n,0)})),n}return null}const et={transitional:Z,adapter:["xhr","http"],transformRequest:[function(t,e){const n=e.getContentType()||"",o=n.indexOf("application/json")>-1,r=P.isObject(t);if(r&&P.isHTMLForm(t)&&(t=new FormData(t)),P.isFormData(t))return o&&o?JSON.stringify(tt(t)):t;if(P.isArrayBuffer(t)||P.isBuffer(t)||P.isStream(t)||P.isFile(t)||P.isBlob(t))return t;if(P.isArrayBufferView(t))return t.buffer;if(P.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(r){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return K(t,new Q.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,o){return Q.isNode&&P.isBuffer(t)?(this.append(e,t.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((s=P.isFileList(t))||n.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return K(s?{"files[]":t}:t,e&&new e,this.formSerializer)}}return r||o?(e.setContentType("application/json",!1),function(t,e,n){if(P.isString(t))try{return(0,JSON.parse)(t),P.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){const e=this.transitional||et.transitional,n=e&&e.forcedJSONParsing,o="json"===this.responseType;if(t&&P.isString(t)&&(n&&!this.responseType||o)){const n=!(e&&e.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(t){if(n){if("SyntaxError"===t.name)throw I.from(t,I.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Q.classes.FormData,Blob:Q.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};P.forEach(["delete","get","head","post","put","patch"],(t=>{et.headers[t]={}}));var nt=et;const ot=P.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),rt=Symbol("internals");function st(t){return t&&String(t).trim().toLowerCase()}function it(t){return!1===t||null==t?t:P.isArray(t)?t.map(it):String(t)}function at(t,e,n,o,r){return P.isFunction(o)?o.call(this,e,n):(r&&(e=n),P.isString(e)?P.isString(o)?-1!==e.indexOf(o):P.isRegExp(o)?o.test(e):void 0:void 0)}class ct{constructor(t){t&&this.set(t)}set(t,e,n){const o=this;function r(t,e,n){const r=st(e);if(!r)throw new Error("header name must be a non-empty string");const s=P.findKey(o,r);(!s||void 0===o[s]||!0===n||void 0===n&&!1!==o[s])&&(o[s||e]=it(t))}const s=(t,e)=>P.forEach(t,((t,n)=>r(t,n,e)));return P.isPlainObject(t)||t instanceof this.constructor?s(t,e):P.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim())?s((t=>{const e={};let n,o,r;return t&&t.split("\n").forEach((function(t){r=t.indexOf(":"),n=t.substring(0,r).trim().toLowerCase(),o=t.substring(r+1).trim(),!n||e[n]&&ot[n]||("set-cookie"===n?e[n]?e[n].push(o):e[n]=[o]:e[n]=e[n]?e[n]+", "+o:o)})),e})(t),e):null!=t&&r(e,t,n),this}get(t,e){if(t=st(t)){const n=P.findKey(this,t);if(n){const t=this[n];if(!e)return t;if(!0===e)return function(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let o;for(;o=n.exec(t);)e[o[1]]=o[2];return e}(t);if(P.isFunction(e))return e.call(this,t,n);if(P.isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=st(t)){const n=P.findKey(this,t);return!(!n||void 0===this[n]||e&&!at(0,this[n],n,e))}return!1}delete(t,e){const n=this;let o=!1;function r(t){if(t=st(t)){const r=P.findKey(n,t);!r||e&&!at(0,n[r],r,e)||(delete n[r],o=!0)}}return P.isArray(t)?t.forEach(r):r(t),o}clear(t){const e=Object.keys(this);let n=e.length,o=!1;for(;n--;){const r=e[n];t&&!at(0,this[r],r,t,!0)||(delete this[r],o=!0)}return o}normalize(t){const e=this,n={};return P.forEach(this,((o,r)=>{const s=P.findKey(n,r);if(s)return e[s]=it(o),void delete e[r];const i=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,n)=>e.toUpperCase()+n))}(r):String(r).trim();i!==r&&delete e[r],e[i]=it(o),n[i]=!0})),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return P.forEach(this,((n,o)=>{null!=n&&!1!==n&&(e[o]=t&&P.isArray(n)?n.join(", "):n)})),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach((t=>n.set(t))),n}static accessor(t){const e=(this[rt]=this[rt]={accessors:{}}).accessors,n=this.prototype;function o(t){const o=st(t);e[o]||(function(t,e){const n=P.toCamelCase(" "+e);["get","set","has"].forEach((o=>{Object.defineProperty(t,o+n,{value:function(t,n,r){return this[o].call(this,e,t,n,r)},configurable:!0})}))}(n,t),e[o]=!0)}return P.isArray(t)?t.forEach(o):o(t),this}}ct.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),P.reduceDescriptors(ct.prototype,(({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[n]=t}}})),P.freezeMethods(ct);var lt=ct;function ut(t,e){const n=this||nt,o=e||n,r=lt.from(o.headers);let s=o.data;return P.forEach(t,(function(t){s=t.call(n,s,r.normalize(),e?e.status:void 0)})),r.normalize(),s}function dt(t){return!(!t||!t.__CANCEL__)}function pt(t,e,n){I.call(this,null==t?"canceled":t,I.ERR_CANCELED,e,n),this.name="CanceledError"}P.inherits(pt,I,{__CANCEL__:!0});var ft=Q.isStandardBrowserEnv?{write:function(t,e,n,o,r,s){const i=[];i.push(t+"="+encodeURIComponent(e)),P.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),P.isString(o)&&i.push("path="+o),P.isString(r)&&i.push("domain="+r),!0===s&&i.push("secure"),document.cookie=i.join("; ")},read:function(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function ht(t,e){return t&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)?function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}(t,e):e}var mt=Q.isStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let n;function o(n){let o=n;return t&&(e.setAttribute("href",o),o=e.href),e.setAttribute("href",o),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return n=o(window.location.href),function(t){const e=P.isString(t)?o(t):t;return e.protocol===n.protocol&&e.host===n.host}}():function(){return!0};function vt(t,e){let n=0;const o=function(t,e){t=t||10;const n=new Array(t),o=new Array(t);let r,s=0,i=0;return e=void 0!==e?e:1e3,function(a){const c=Date.now(),l=o[i];r||(r=c),n[s]=a,o[s]=c;let u=i,d=0;for(;u!==s;)d+=n[u++],u%=t;if(s=(s+1)%t,s===i&&(i=(i+1)%t),c-r<e)return;const p=l&&c-l;return p?Math.round(1e3*d/p):void 0}}(50,250);return r=>{const s=r.loaded,i=r.lengthComputable?r.total:void 0,a=s-n,c=o(a);n=s;const l={loaded:s,total:i,progress:i?s/i:void 0,bytes:a,rate:c||void 0,estimated:c&&i&&s<=i?(i-s)/c:void 0,event:r};l[e?"download":"upload"]=!0,t(l)}}const yt={http:null,xhr:"undefined"!=typeof XMLHttpRequest&&function(t){return new Promise((function(e,n){let o=t.data;const r=lt.from(t.headers).normalize(),s=t.responseType;let i,a;function c(){t.cancelToken&&t.cancelToken.unsubscribe(i),t.signal&&t.signal.removeEventListener("abort",i)}P.isFormData(o)&&(Q.isStandardBrowserEnv||Q.isStandardBrowserWebWorkerEnv?r.setContentType(!1):r.getContentType(/^\s*multipart\/form-data/)?P.isString(a=r.getContentType())&&r.setContentType(a.replace(/^\s*(multipart\/form-data);+/,"$1")):r.setContentType("multipart/form-data"));let l=new XMLHttpRequest;if(t.auth){const e=t.auth.username||"",n=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";r.set("Authorization","Basic "+btoa(e+":"+n))}const u=ht(t.baseURL,t.url);function d(){if(!l)return;const o=lt.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(t,e,n){const o=n.config.validateStatus;n.status&&o&&!o(n.status)?e(new I("Request failed with status code "+n.status,[I.ERR_BAD_REQUEST,I.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)}((function(t){e(t),c()}),(function(t){n(t),c()}),{data:s&&"text"!==s&&"json"!==s?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:o,config:t,request:l}),l=null}if(l.open(t.method.toUpperCase(),X(u,t.params,t.paramsSerializer),!0),l.timeout=t.timeout,"onloadend"in l?l.onloadend=d:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(d)},l.onabort=function(){l&&(n(new I("Request aborted",I.ECONNABORTED,t,l)),l=null)},l.onerror=function(){n(new I("Network Error",I.ERR_NETWORK,t,l)),l=null},l.ontimeout=function(){let e=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded";const o=t.transitional||Z;t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),n(new I(e,o.clarifyTimeoutError?I.ETIMEDOUT:I.ECONNABORTED,t,l)),l=null},Q.isStandardBrowserEnv){const e=(t.withCredentials||mt(u))&&t.xsrfCookieName&&ft.read(t.xsrfCookieName);e&&r.set(t.xsrfHeaderName,e)}void 0===o&&r.setContentType(null),"setRequestHeader"in l&&P.forEach(r.toJSON(),(function(t,e){l.setRequestHeader(e,t)})),P.isUndefined(t.withCredentials)||(l.withCredentials=!!t.withCredentials),s&&"json"!==s&&(l.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&l.addEventListener("progress",vt(t.onDownloadProgress,!0)),"function"==typeof t.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",vt(t.onUploadProgress)),(t.cancelToken||t.signal)&&(i=e=>{l&&(n(!e||e.type?new pt(null,t,l):e),l.abort(),l=null)},t.cancelToken&&t.cancelToken.subscribe(i),t.signal&&(t.signal.aborted?i():t.signal.addEventListener("abort",i)));const p=function(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}(u);p&&-1===Q.protocols.indexOf(p)?n(new I("Unsupported protocol "+p+":",I.ERR_BAD_REQUEST,t)):l.send(o||null)}))}};P.forEach(yt,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(t){}Object.defineProperty(t,"adapterName",{value:e})}}));const gt=t=>`- ${t}`,Et=t=>P.isFunction(t)||null===t||!1===t;var wt=t=>{t=P.isArray(t)?t:[t];const{length:e}=t;let n,o;const r={};for(let s=0;s<e;s++){let e;if(n=t[s],o=n,!Et(n)&&(o=yt[(e=String(n)).toLowerCase()],void 0===o))throw new I(`Unknown adapter '${e}'`);if(o)break;r[e||"#"+s]=o}if(!o){const t=Object.entries(r).map((([t,e])=>`adapter ${t} `+(!1===e?"is not supported by the environment":"is not available in the build")));throw new I("There is no suitable adapter to dispatch the request "+(e?t.length>1?"since :\n"+t.map(gt).join("\n"):" "+gt(t[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return o};function bt(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new pt(null,t)}function St(t){return bt(t),t.headers=lt.from(t.headers),t.data=ut.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),wt(t.adapter||nt.adapter)(t).then((function(e){return bt(t),e.data=ut.call(t,t.transformResponse,e),e.headers=lt.from(e.headers),e}),(function(e){return dt(e)||(bt(t),e&&e.response&&(e.response.data=ut.call(t,t.transformResponse,e.response),e.response.headers=lt.from(e.response.headers))),Promise.reject(e)}))}const Ot=t=>t instanceof lt?t.toJSON():t;function Rt(t,e){e=e||{};const n={};function o(t,e,n){return P.isPlainObject(t)&&P.isPlainObject(e)?P.merge.call({caseless:n},t,e):P.isPlainObject(e)?P.merge({},e):P.isArray(e)?e.slice():e}function r(t,e,n){return P.isUndefined(e)?P.isUndefined(t)?void 0:o(void 0,t,n):o(t,e,n)}function s(t,e){if(!P.isUndefined(e))return o(void 0,e)}function i(t,e){return P.isUndefined(e)?P.isUndefined(t)?void 0:o(void 0,t):o(void 0,e)}function a(n,r,s){return s in e?o(n,r):s in t?o(void 0,n):void 0}const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(t,e)=>r(Ot(t),Ot(e),!0)};return P.forEach(Object.keys(Object.assign({},t,e)),(function(o){const s=c[o]||r,i=s(t[o],e[o],o);P.isUndefined(i)&&s!==a||(n[o]=i)})),n}const At={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{At[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}}));const Tt={};At.transitional=function(t,e,n){function o(t,e){return"[Axios v1.5.1] Transitional option '"+t+"'"+e+(n?". "+n:"")}return(n,r,s)=>{if(!1===t)throw new I(o(r," has been removed"+(e?" in "+e:"")),I.ERR_DEPRECATED);return e&&!Tt[r]&&(Tt[r]=!0,console.warn(o(r," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,r,s)}};var _t={assertOptions:function(t,e,n){if("object"!=typeof t)throw new I("options must be an object",I.ERR_BAD_OPTION_VALUE);const o=Object.keys(t);let r=o.length;for(;r-- >0;){const s=o[r],i=e[s];if(i){const e=t[s],n=void 0===e||i(e,s,t);if(!0!==n)throw new I("option "+s+" must be "+n,I.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new I("Unknown option "+s,I.ERR_BAD_OPTION)}},validators:At};const Ct=_t.validators;class Dt{constructor(t){this.defaults=t,this.interceptors={request:new Y,response:new Y}}request(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{},e=Rt(this.defaults,e);const{transitional:n,paramsSerializer:o,headers:r}=e;void 0!==n&&_t.assertOptions(n,{silentJSONParsing:Ct.transitional(Ct.boolean),forcedJSONParsing:Ct.transitional(Ct.boolean),clarifyTimeoutError:Ct.transitional(Ct.boolean)},!1),null!=o&&(P.isFunction(o)?e.paramsSerializer={serialize:o}:_t.assertOptions(o,{encode:Ct.function,serialize:Ct.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let s=r&&P.merge(r.common,r[e.method]);r&&P.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete r[t]})),e.headers=lt.concat(s,r);const i=[];let a=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(a=a&&t.synchronous,i.unshift(t.fulfilled,t.rejected))}));const c=[];let l;this.interceptors.response.forEach((function(t){c.push(t.fulfilled,t.rejected)}));let u,d=0;if(!a){const t=[St.bind(this),void 0];for(t.unshift.apply(t,i),t.push.apply(t,c),u=t.length,l=Promise.resolve(e);d<u;)l=l.then(t[d++],t[d++]);return l}u=i.length;let p=e;for(d=0;d<u;){const t=i[d++],e=i[d++];try{p=t(p)}catch(t){e.call(this,t);break}}try{l=St.call(this,p)}catch(t){return Promise.reject(t)}for(d=0,u=c.length;d<u;)l=l.then(c[d++],c[d++]);return l}getUri(t){return X(ht((t=Rt(this.defaults,t)).baseURL,t.url),t.params,t.paramsSerializer)}}P.forEach(["delete","get","head","options"],(function(t){Dt.prototype[t]=function(e,n){return this.request(Rt(n||{},{method:t,url:e,data:(n||{}).data}))}})),P.forEach(["post","put","patch"],(function(t){function e(e){return function(n,o,r){return this.request(Rt(r||{},{method:t,headers:e?{"Content-Type":"multipart/form-data"}:{},url:n,data:o}))}}Dt.prototype[t]=e(),Dt.prototype[t+"Form"]=e(!0)}));var Ft=Dt;class Nt{constructor(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");let e;this.promise=new Promise((function(t){e=t}));const n=this;this.promise.then((t=>{if(!n._listeners)return;let e=n._listeners.length;for(;e-- >0;)n._listeners[e](t);n._listeners=null})),this.promise.then=t=>{let e;const o=new Promise((t=>{n.subscribe(t),e=t})).then(t);return o.cancel=function(){n.unsubscribe(e)},o},t((function(t,o,r){n.reason||(n.reason=new pt(t,o,r),e(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}static source(){let t;return{token:new Nt((function(e){t=e})),cancel:t}}}var kt=Nt;const jt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(jt).forEach((([t,e])=>{jt[e]=t}));var Ut=jt;const Lt=function t(e){const n=new Ft(e),r=o(Ft.prototype.request,n);return P.extend(r,Ft.prototype,n,{allOwnKeys:!0}),P.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(Rt(e,n))},r}(nt);Lt.Axios=Ft,Lt.CanceledError=pt,Lt.CancelToken=kt,Lt.isCancel=dt,Lt.VERSION="1.5.1",Lt.toFormData=K,Lt.AxiosError=I,Lt.Cancel=Lt.CanceledError,Lt.all=function(t){return Promise.all(t)},Lt.spread=function(t){return function(e){return t.apply(null,e)}},Lt.isAxiosError=function(t){return P.isObject(t)&&!0===t.isAxiosError},Lt.mergeConfig=Rt,Lt.AxiosHeaders=lt,Lt.formToJSON=t=>tt(P.isHTMLForm(t)?new FormData(t):t),Lt.getAdapter=wt,Lt.HttpStatusCode=Ut,Lt.default=Lt,t.exports=Lt}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var s=e[o]={exports:{}};return t[o].call(s.exports,s,s.exports,n),s.exports}n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}();var o={};return(()=>{"use strict";var t=o;const e=n(234),r=n(604),s=n(122);class i{}i.livenessDetection=e.livenessDetection,i.uploadIdentificationDocument=r.uploadIdentificationDocument,i.insertUploadIdentificationDocument=s.insertUploadIdentificationDocument,t.default=i})(),o.default})()));
@@ -14,6 +14,7 @@ function insertUploadIdentificationDocument(options, cssSelector) {
14
14
  iframeElement.setAttribute('width', (_a = options.width) !== null && _a !== void 0 ? _a : '100%');
15
15
  iframeElement.setAttribute('height', (_b = options.height) !== null && _b !== void 0 ? _b : '550px');
16
16
  iframeElement.setAttribute('scrolling', 'no');
17
+ iframeElement.setAttribute('allow', 'camera; microphone; clipboard-read; clipboard-write');
17
18
  let iframeUrl = `${(_c = options.customAppUrl) !== null && _c !== void 0 ? _c : constants_1.APPLICATION_URL}/share/domains/${options.domain}/tracks/${options.track}/flow/${options.flow}/embedded`;
18
19
  if (options.token) {
19
20
  iframeUrl += `?accessToken=${options.token}`;
@@ -13,6 +13,7 @@ export declare class UploadIdentificationDocumentService<TFrameType, TMediaType,
13
13
  getResults(): IUploadIdentificationDocumentResults<TFileType>;
14
14
  updateResults(updatedResults: Partial<IUploadIdentificationDocumentResults<TFileType>>): Promise<void>;
15
15
  updateUploadedDocument(file: TFileType): void;
16
+ waitForResults(requestId: string): Promise<ITypificationResult>;
16
17
  startDocumentUpload(file: TFileType): Promise<void>;
17
18
  startLivenessDetection(startLivenessDetectionOptions?: ICustomLivenessOptions<TFrameType, TMediaType>): TLivenessDetectionReturn<TMediaType> | undefined;
18
19
  startFaceMatch(firstImage: TFileType, secondImage: TFileType): Promise<void>;
@@ -4,6 +4,7 @@ exports.UploadIdentificationDocumentService = void 0;
4
4
  const TypificationService_1 = require("../../../../api/TypificationService");
5
5
  const FaceMatchService_1 = require("../../../../api/FaceMatchService");
6
6
  const error_1 = require("../../../../utils/error");
7
+ const uuid_1 = require("uuid");
7
8
  const index_1 = require("../../utils/index");
8
9
  class UploadIdentificationDocumentService {
9
10
  constructor(options, internalOptions) {
@@ -37,12 +38,30 @@ class UploadIdentificationDocumentService {
37
38
  updateUploadedDocument(file) {
38
39
  this.results.uploadedDocument = file;
39
40
  }
41
+ async waitForResults(requestId) {
42
+ return await new Promise((resolve, reject) => {
43
+ const interval = setInterval(async () => {
44
+ try {
45
+ const typificationResults = await this.typificationService.get(requestId);
46
+ if (typificationResults) {
47
+ clearInterval(interval);
48
+ resolve(typificationResults);
49
+ }
50
+ }
51
+ catch (error) {
52
+ clearInterval(interval);
53
+ reject(new Error(error));
54
+ }
55
+ }, 5000);
56
+ });
57
+ }
40
58
  async startDocumentUpload(file) {
41
59
  var _a, _b;
42
60
  try {
43
61
  this.updateResults({ typification: { status: null, results: null, loading: true, error: null } });
44
62
  this.updateUploadedDocument(file);
45
- const typificationResults = await this.typificationService.predict(file);
63
+ const { requestId } = await this.typificationService.predict(file, `sdk-typification-${(0, uuid_1.v4)()}`);
64
+ const typificationResults = await this.waitForResults(requestId);
46
65
  this.updateResults({ typification: { status: 'success', results: typificationResults, loading: false, error: null } });
47
66
  }
48
67
  catch (err) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "santoid-sdk",
3
- "version": "4.0.0",
3
+ "version": "5.0.0",
4
4
  "description": "",
5
5
  "main": "client/index.js",
6
6
  "types": "client/index.d.ts",
@@ -41,6 +41,7 @@
41
41
  "dependencies": {
42
42
  "axios": "^1.5.1",
43
43
  "form-data": "^4.0.0",
44
+ "uuid": "^3.3.3",
44
45
  "ws": "^8.14.2"
45
46
  }
46
47
  }