pakstr 0.4.0 → 0.6.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.
Files changed (29) hide show
  1. package/android-template/app/build.gradle.kts +71 -4
  2. package/android-template/app/proguard-rules.pro +21 -18
  3. package/android-template/app/src/debug/AndroidManifest.xml +11 -0
  4. package/android-template/app/src/main/AndroidManifest.xml +6 -0
  5. package/android-template/app/src/main/java/com/pakstr/app/ApplicationClass.kt +14 -0
  6. package/android-template/app/src/main/java/com/pakstr/app/MainActivity.kt +55 -5
  7. package/android-template/app/src/main/java/com/pakstr/app/ShellRuntime.kt +1 -1
  8. package/android-template/app/src/main/java/com/pakstr/app/WebViewController.kt +135 -0
  9. package/android-template/app/src/main/java/com/pakstr/app/debug/AppDebugLogger.kt +78 -5
  10. package/android-template/app/src/main/java/com/pakstr/app/debug/CrashHandler.kt +32 -0
  11. package/android-template/app/src/main/java/com/pakstr/app/debug/DebugConfigProvider.kt +8 -3
  12. package/android-template/app/src/main/java/com/pakstr/app/debug/DebugLogStorage.kt +43 -11
  13. package/android-template/app/src/main/java/com/pakstr/app/debug/DebugPreferences.kt +85 -0
  14. package/android-template/app/src/main/java/com/pakstr/app/debug/DebugReportExporter.kt +42 -32
  15. package/android-template/app/src/main/java/com/pakstr/app/debug/DebugRuntimeOverride.kt +30 -4
  16. package/android-template/app/src/main/java/com/pakstr/app/debug/DebugSession.kt +16 -0
  17. package/android-template/app/src/main/java/com/pakstr/app/debug/DeveloperToolsActivity.kt +234 -0
  18. package/android-template/app/src/main/java/com/pakstr/app/debug/DeveloperToolsManager.kt +42 -13
  19. package/android-template/app/src/main/java/com/pakstr/app/debug/WebViewDebugManager.kt +30 -0
  20. package/android-template/app/src/main/java/com/pakstr/app/debug/logging/PakstrLog.kt +16 -0
  21. package/android-template/app/src/main/java/com/pakstr/app/debug/logging/PakstrLogger.kt +154 -0
  22. package/android-template/app/src/main/java/com/pakstr/app/signer/NostrBridge.kt +1 -1
  23. package/android-template/app/src/main/res/layout/activity_developer_tools.xml +308 -0
  24. package/android-template/app/src/main/res/layout/activity_layout.xml +9 -0
  25. package/android-template/app/src/main/res/values/dimes.xml +1 -0
  26. package/android-template/app/src/main/res/values/strings.xml +43 -0
  27. package/android-template/gradle/libs.versions.toml +1 -0
  28. package/android-template/gradle.properties +2 -1
  29. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ package com.pakstr.app.debug.logging
2
+
3
+ data class PakstrLog(
4
+ val timestamp: Long,
5
+ val level: Level,
6
+ val tag: String,
7
+ val message: String
8
+ ) {
9
+
10
+ enum class Level {
11
+ DEBUG,
12
+ INFO,
13
+ WARN,
14
+ ERROR
15
+ }
16
+ }
@@ -0,0 +1,154 @@
1
+ package com.pakstr.app.debug.logging
2
+
3
+ import android.util.Log
4
+ import com.pakstr.app.debug.logging.PakstrLog
5
+ import java.text.SimpleDateFormat
6
+ import java.util.Date
7
+ import java.util.Locale
8
+
9
+ object PakstrLogger {
10
+
11
+ private const val MAX_LOGS = 1000
12
+
13
+ private val logs =
14
+ mutableListOf<PakstrLog>()
15
+
16
+
17
+ fun d(
18
+ tag: String,
19
+ message: String
20
+ ) {
21
+ add(
22
+ PakstrLog.Level.DEBUG,
23
+ tag,
24
+ message
25
+ )
26
+
27
+ Log.d(
28
+ "PakstrDebug",
29
+ "[$tag] $message"
30
+ )
31
+ }
32
+
33
+
34
+ fun i(
35
+ tag: String,
36
+ message: String
37
+ ) {
38
+ add(
39
+ PakstrLog.Level.INFO,
40
+ tag,
41
+ message
42
+ )
43
+
44
+ Log.i(
45
+ "PakstrDebug",
46
+ "[$tag] $message"
47
+ )
48
+ }
49
+
50
+
51
+ fun w(
52
+ tag: String,
53
+ message: String
54
+ ) {
55
+ add(
56
+ PakstrLog.Level.WARN,
57
+ tag,
58
+ message
59
+ )
60
+
61
+ Log.w(
62
+ "PakstrDebug",
63
+ "[$tag] $message"
64
+ )
65
+ }
66
+
67
+
68
+ fun e(
69
+ tag: String,
70
+ message: String,
71
+ throwable: Throwable? = null
72
+ ) {
73
+
74
+ add(
75
+ PakstrLog.Level.ERROR,
76
+ tag,
77
+ message
78
+ )
79
+
80
+ Log.e(
81
+ "PakstrDebug",
82
+ "[$tag] $message",
83
+ throwable
84
+ )
85
+ }
86
+
87
+
88
+ fun getLogs(): List<PakstrLog> {
89
+ return logs.toList()
90
+ }
91
+
92
+
93
+ fun clear() {
94
+ logs.clear()
95
+ }
96
+
97
+
98
+ private fun add(
99
+ level: PakstrLog.Level,
100
+ tag: String,
101
+ message: String
102
+ ) {
103
+
104
+ logs.add(
105
+ PakstrLog(
106
+ timestamp =
107
+ System.currentTimeMillis(),
108
+ level = level,
109
+ tag = tag,
110
+ message = message
111
+ )
112
+ )
113
+
114
+
115
+ if (logs.size > MAX_LOGS) {
116
+ logs.removeFirst()
117
+ }
118
+ }
119
+
120
+
121
+ fun exportText(): String {
122
+
123
+ val formatter =
124
+ SimpleDateFormat(
125
+ "yyyy-MM-dd HH:mm:ss",
126
+ Locale.US
127
+ )
128
+
129
+ return buildString {
130
+
131
+ appendLine(
132
+ "Pakstr Debug Report"
133
+ )
134
+
135
+ appendLine(
136
+ "=================="
137
+ )
138
+
139
+ appendLine()
140
+
141
+ logs.forEach {
142
+
143
+ appendLine(
144
+ "${formatter.format(
145
+ Date(it.timestamp)
146
+ )} " +
147
+ "[${it.level}] " +
148
+ "[${it.tag}] " +
149
+ it.message
150
+ )
151
+ }
152
+ }
153
+ }
154
+ }
@@ -435,7 +435,7 @@ class NostrBridge(
435
435
 
436
436
  AppDebugLogger.error(
437
437
  webView.context,
438
- "WEB",
438
+ "WEB-JS",
439
439
  message
440
440
  )
441
441
 
@@ -0,0 +1,308 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ xmlns:app="http://schemas.android.com/apk/res-auto"
4
+ android:layout_width="match_parent"
5
+ android:layout_height="match_parent"
6
+ android:paddingBottom="56dp"
7
+ android:background="?android:attr/colorBackground"
8
+ android:orientation="vertical">
9
+
10
+ <com.google.android.material.appbar.MaterialToolbar
11
+ android:id="@+id/developerToolsToolbar"
12
+ android:layout_width="match_parent"
13
+ android:layout_height="?attr/actionBarSize"
14
+ android:background="?attr/colorSurface"
15
+ android:elevation="4dp"
16
+ app:navigationIcon="?attr/homeAsUpIndicator"
17
+ app:title="@string/developer_tools_title" />
18
+
19
+ <androidx.core.widget.NestedScrollView
20
+ android:layout_width="match_parent"
21
+ android:layout_height="0dp"
22
+ android:layout_weight="1"
23
+ android:fillViewport="true">
24
+
25
+ <LinearLayout
26
+ android:layout_width="match_parent"
27
+ android:layout_height="wrap_content"
28
+ android:orientation="vertical"
29
+ android:padding="16dp">
30
+
31
+ <com.google.android.material.card.MaterialCardView
32
+ android:layout_width="match_parent"
33
+ android:layout_height="wrap_content"
34
+ android:layout_marginBottom="16dp"
35
+ app:cardCornerRadius="12dp"
36
+ app:cardElevation="1dp">
37
+
38
+ <LinearLayout
39
+ android:layout_width="match_parent"
40
+ android:layout_height="wrap_content"
41
+ android:orientation="vertical"
42
+ android:padding="16dp">
43
+
44
+ <TextView
45
+ style="@style/TextAppearance.MaterialComponents.Headline6"
46
+ android:layout_width="wrap_content"
47
+ android:layout_height="wrap_content"
48
+ android:layout_marginBottom="16dp"
49
+ android:text="@string/developer_tools_runtime" />
50
+
51
+ <TextView
52
+ style="@style/TextAppearance.MaterialComponents.Caption"
53
+ android:layout_width="wrap_content"
54
+ android:layout_height="wrap_content"
55
+ android:text="@string/developer_tools_session_id" />
56
+
57
+ <TextView
58
+ android:id="@+id/runtimeSessionIdValue"
59
+ style="@style/TextAppearance.MaterialComponents.Body2"
60
+ android:layout_width="match_parent"
61
+ android:layout_height="wrap_content"
62
+ android:layout_marginBottom="12dp"
63
+ android:textIsSelectable="true" />
64
+
65
+ <TextView
66
+ style="@style/TextAppearance.MaterialComponents.Caption"
67
+ android:layout_width="wrap_content"
68
+ android:layout_height="wrap_content"
69
+ android:text="@string/developer_tools_app_version" />
70
+
71
+ <TextView
72
+ android:id="@+id/runtimeAppVersionValue"
73
+ style="@style/TextAppearance.MaterialComponents.Body2"
74
+ android:layout_width="match_parent"
75
+ android:layout_height="wrap_content"
76
+ android:layout_marginBottom="12dp" />
77
+
78
+ <TextView
79
+ style="@style/TextAppearance.MaterialComponents.Caption"
80
+ android:layout_width="wrap_content"
81
+ android:layout_height="wrap_content"
82
+ android:text="@string/developer_tools_android_version" />
83
+
84
+ <TextView
85
+ android:id="@+id/runtimeAndroidVersionValue"
86
+ style="@style/TextAppearance.MaterialComponents.Body2"
87
+ android:layout_width="match_parent"
88
+ android:layout_height="wrap_content"
89
+ android:layout_marginBottom="12dp" />
90
+
91
+ <TextView
92
+ style="@style/TextAppearance.MaterialComponents.Caption"
93
+ android:layout_width="wrap_content"
94
+ android:layout_height="wrap_content"
95
+ android:text="@string/developer_tools_device_model" />
96
+
97
+ <TextView
98
+ android:id="@+id/runtimeDeviceModelValue"
99
+ style="@style/TextAppearance.MaterialComponents.Body2"
100
+ android:layout_width="match_parent"
101
+ android:layout_height="wrap_content"
102
+ android:layout_marginBottom="12dp" />
103
+
104
+ <TextView
105
+ style="@style/TextAppearance.MaterialComponents.Caption"
106
+ android:layout_width="wrap_content"
107
+ android:layout_height="wrap_content"
108
+ android:text="@string/developer_tools_app_uptime" />
109
+
110
+ <TextView
111
+ android:id="@+id/runtimeUptimeValue"
112
+ style="@style/TextAppearance.MaterialComponents.Body2"
113
+ android:layout_width="match_parent"
114
+ android:layout_height="wrap_content" />
115
+ </LinearLayout>
116
+ </com.google.android.material.card.MaterialCardView>
117
+
118
+ <com.google.android.material.card.MaterialCardView
119
+ android:layout_width="match_parent"
120
+ android:layout_height="wrap_content"
121
+ android:layout_marginBottom="16dp"
122
+ app:cardCornerRadius="12dp"
123
+ app:cardElevation="1dp">
124
+
125
+ <LinearLayout
126
+ android:layout_width="match_parent"
127
+ android:layout_height="wrap_content"
128
+ android:orientation="vertical"
129
+ android:padding="16dp">
130
+
131
+ <TextView
132
+ style="@style/TextAppearance.MaterialComponents.Headline6"
133
+ android:layout_width="wrap_content"
134
+ android:layout_height="wrap_content"
135
+ android:layout_marginBottom="8dp"
136
+ android:text="@string/developer_tools_debug" />
137
+
138
+ <com.google.android.material.switchmaterial.SwitchMaterial
139
+ android:id="@+id/debugModeSwitch"
140
+ android:layout_width="match_parent"
141
+ android:layout_height="wrap_content"
142
+ android:text="@string/developer_tools_enable_debug_mode" />
143
+
144
+ <com.google.android.material.switchmaterial.SwitchMaterial
145
+ android:id="@+id/apiEnabledSwitch"
146
+ android:layout_width="match_parent"
147
+ android:layout_height="wrap_content"
148
+ android:enabled="false"
149
+ android:text="@string/developer_tools_enable_api" />
150
+
151
+ <TextView
152
+ style="@style/TextAppearance.MaterialComponents.Caption"
153
+ android:layout_width="match_parent"
154
+ android:layout_height="wrap_content"
155
+ android:layout_marginStart="4dp"
156
+ android:layout_marginBottom="16dp"
157
+ android:text="@string/developer_tools_api_read_only" />
158
+
159
+ <LinearLayout
160
+ android:layout_width="match_parent"
161
+ android:layout_height="wrap_content"
162
+ android:gravity="center_vertical"
163
+ android:orientation="horizontal">
164
+
165
+ <TextView
166
+ style="@style/TextAppearance.MaterialComponents.Body1"
167
+ android:layout_width="0dp"
168
+ android:layout_height="wrap_content"
169
+ android:layout_weight="1"
170
+ android:text="@string/developer_tools_webview_debug" />
171
+
172
+ <TextView
173
+ android:id="@+id/debugWebViewStatus"
174
+ style="@style/TextAppearance.MaterialComponents.Body2"
175
+ android:layout_width="wrap_content"
176
+ android:layout_height="wrap_content" />
177
+ </LinearLayout>
178
+ </LinearLayout>
179
+ </com.google.android.material.card.MaterialCardView>
180
+
181
+ <com.google.android.material.card.MaterialCardView
182
+ android:layout_width="match_parent"
183
+ android:layout_height="wrap_content"
184
+ android:layout_marginBottom="16dp"
185
+ app:cardCornerRadius="12dp"
186
+ app:cardElevation="1dp">
187
+
188
+ <LinearLayout
189
+ android:layout_width="match_parent"
190
+ android:layout_height="wrap_content"
191
+ android:orientation="vertical"
192
+ android:padding="16dp">
193
+
194
+ <TextView
195
+ style="@style/TextAppearance.MaterialComponents.Headline6"
196
+ android:layout_width="wrap_content"
197
+ android:layout_height="wrap_content"
198
+ android:layout_marginBottom="8dp"
199
+ android:text="@string/developer_tools_logs" />
200
+
201
+ <com.google.android.material.button.MaterialButton
202
+ android:id="@+id/viewLogsButton"
203
+ style="@style/Widget.MaterialComponents.Button.OutlinedButton"
204
+ android:layout_width="match_parent"
205
+ android:layout_height="wrap_content"
206
+ android:text="@string/developer_tools_view_logs" />
207
+
208
+ <com.google.android.material.button.MaterialButton
209
+ android:id="@+id/clearLogsButton"
210
+ style="@style/Widget.MaterialComponents.Button.OutlinedButton"
211
+ android:layout_width="match_parent"
212
+ android:layout_height="wrap_content"
213
+ android:text="@string/developer_tools_clear_logs" />
214
+
215
+ <com.google.android.material.button.MaterialButton
216
+ android:id="@+id/exportDebugReportButton"
217
+ android:layout_width="match_parent"
218
+ android:layout_height="wrap_content"
219
+ android:text="@string/developer_tools_export_debug_report" />
220
+
221
+ <com.google.android.material.button.MaterialButton
222
+ android:id="@+id/shareReportButton"
223
+ android:layout_width="match_parent"
224
+ android:layout_height="wrap_content"
225
+ android:text="@string/developer_tools_share_report" />
226
+ </LinearLayout>
227
+ </com.google.android.material.card.MaterialCardView>
228
+
229
+ <com.google.android.material.card.MaterialCardView
230
+ android:layout_width="match_parent"
231
+ android:layout_height="wrap_content"
232
+ android:layout_marginBottom="16dp"
233
+ app:cardCornerRadius="12dp"
234
+ app:cardElevation="1dp">
235
+
236
+ <LinearLayout
237
+ android:layout_width="match_parent"
238
+ android:layout_height="wrap_content"
239
+ android:orientation="vertical"
240
+ android:padding="16dp">
241
+
242
+ <TextView
243
+ style="@style/TextAppearance.MaterialComponents.Headline6"
244
+ android:layout_width="wrap_content"
245
+ android:layout_height="wrap_content"
246
+ android:layout_marginBottom="8dp"
247
+ android:text="@string/developer_tools_crash_testing" />
248
+
249
+ <com.google.android.material.button.MaterialButton
250
+ android:id="@+id/throwTestExceptionButton"
251
+ style="@style/Widget.MaterialComponents.Button.OutlinedButton"
252
+ android:layout_width="match_parent"
253
+ android:layout_height="wrap_content"
254
+ android:text="@string/developer_tools_throw_test_exception" />
255
+ </LinearLayout>
256
+ </com.google.android.material.card.MaterialCardView>
257
+
258
+ <com.google.android.material.card.MaterialCardView
259
+ android:layout_width="match_parent"
260
+ android:layout_height="wrap_content"
261
+ app:cardCornerRadius="12dp"
262
+ app:cardElevation="1dp">
263
+
264
+ <LinearLayout
265
+ android:layout_width="match_parent"
266
+ android:layout_height="wrap_content"
267
+ android:orientation="vertical"
268
+ android:padding="16dp">
269
+
270
+ <TextView
271
+ style="@style/TextAppearance.MaterialComponents.Headline6"
272
+ android:layout_width="wrap_content"
273
+ android:layout_height="wrap_content"
274
+ android:layout_marginBottom="12dp"
275
+ android:text="@string/developer_tools_webview" />
276
+
277
+ <LinearLayout
278
+ android:layout_width="match_parent"
279
+ android:layout_height="wrap_content"
280
+ android:layout_marginBottom="12dp"
281
+ android:gravity="center_vertical"
282
+ android:orientation="horizontal">
283
+
284
+ <TextView
285
+ style="@style/TextAppearance.MaterialComponents.Body1"
286
+ android:layout_width="0dp"
287
+ android:layout_height="wrap_content"
288
+ android:layout_weight="1"
289
+ android:text="@string/developer_tools_current_status" />
290
+
291
+ <TextView
292
+ android:id="@+id/webViewStatus"
293
+ style="@style/TextAppearance.MaterialComponents.Body2"
294
+ android:layout_width="wrap_content"
295
+ android:layout_height="wrap_content" />
296
+ </LinearLayout>
297
+
298
+ <com.google.android.material.button.MaterialButton
299
+ android:id="@+id/openChromeInspectDocsButton"
300
+ style="@style/Widget.MaterialComponents.Button.OutlinedButton"
301
+ android:layout_width="match_parent"
302
+ android:layout_height="wrap_content"
303
+ android:text="@string/developer_tools_open_chrome_inspect_docs" />
304
+ </LinearLayout>
305
+ </com.google.android.material.card.MaterialCardView>
306
+ </LinearLayout>
307
+ </androidx.core.widget.NestedScrollView>
308
+ </LinearLayout>
@@ -18,4 +18,13 @@
18
18
  android:layout_gravity="center"
19
19
  android:indeterminateDrawable="@drawable/custom_loader" />
20
20
 
21
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
22
+ android:id="@+id/developerToolsFab"
23
+ android:layout_width="wrap_content"
24
+ android:layout_height="wrap_content"
25
+ android:layout_gravity="bottom|end"
26
+ android:layout_margin="24dp"
27
+ android:contentDescription="@string/developer_tools"
28
+ android:src="@android:drawable/ic_menu_info_details" />
29
+
21
30
  </FrameLayout>
@@ -3,4 +3,5 @@
3
3
 
4
4
  <dimen name="loader_height">50dp</dimen>
5
5
  <dimen name="loader_width">50dp</dimen>
6
+ <dimen name="developer_tools_dialog_padding">24dp</dimen>
6
7
  </resources>
@@ -1,3 +1,46 @@
1
1
  <resources>
2
2
  <string name="app_name">Pakstr</string>
3
+
4
+ <string name="developer_tools_title">Developer Tools</string>
5
+ <string name="developer_tools_runtime">Runtime</string>
6
+ <string name="developer_tools_session_id">Session ID</string>
7
+ <string name="developer_tools_app_version">App version</string>
8
+ <string name="developer_tools_android_version">Android version</string>
9
+ <string name="developer_tools_device_model">Device model</string>
10
+ <string name="developer_tools_app_uptime">App uptime</string>
11
+ <string name="developer_tools_version_value">%1$s (%2$d)</string>
12
+ <string name="developer_tools_device_value">%1$s %2$s</string>
13
+
14
+ <string name="developer_tools_debug">Debug</string>
15
+ <string name="developer_tools_enable_debug_mode">Enable Debug Mode</string>
16
+ <string name="developer_tools_enable_api">Enable API</string>
17
+ <string name="developer_tools_api_read_only">Controlled by the packaged runtime configuration.</string>
18
+ <string name="developer_tools_webview_debug">WebView Debug</string>
19
+ <string name="developer_tools_enabled">Enabled</string>
20
+ <string name="developer_tools_disabled">Disabled</string>
21
+
22
+ <string name="developer_tools_logs">Logs</string>
23
+ <string name="developer_tools_view_logs">View Logs</string>
24
+ <string name="developer_tools_clear_logs">Clear Logs</string>
25
+ <string name="developer_tools_export_debug_report">Export Debug Report</string>
26
+ <string name="developer_tools_share_report">Share Report</string>
27
+ <string name="developer_tools_no_logs">No logs recorded.</string>
28
+ <string name="developer_tools_clear_logs_confirmation">Clear all stored debug logs?</string>
29
+ <string name="developer_tools_clear">Clear</string>
30
+ <string name="developer_tools_logs_cleared">Logs cleared.</string>
31
+ <string name="developer_tools_report_exported">Report exported to %1$s</string>
32
+ <string name="developer_tools_report_export_failed">Unable to export the debug report.</string>
33
+
34
+ <string name="developer_tools_crash_testing">Crash Testing</string>
35
+ <string name="developer_tools_throw_test_exception">Throw Test Exception</string>
36
+ <string name="developer_tools_crash_confirmation_title">Crash Pakstr?</string>
37
+ <string name="developer_tools_crash_confirmation_message">This intentionally throws an uncaught RuntimeException and closes the app so CrashHandler can capture it.</string>
38
+ <string name="developer_tools_crash">Crash</string>
39
+
40
+ <string name="developer_tools_webview">WebView</string>
41
+ <string name="developer_tools_current_status">Current WebView Debug status</string>
42
+ <string name="developer_tools_open_chrome_inspect_docs">Open Chrome Inspect documentation</string>
43
+ <string name="developer_tools_browser_unavailable">No browser is available.</string>
44
+
45
+ <string name="developer_tools">Open Developer Tools</string>
3
46
  </resources>
@@ -39,3 +39,4 @@ material = { module = "com.google.android.material:material", version.ref = "mat
39
39
  android-application = { id = "com.android.application", version.ref = "agp" }
40
40
  kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
41
41
 
42
+
@@ -12,4 +12,5 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
12
12
  # https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
13
13
  # org.gradle.parallel=true
14
14
  # Kotlin code style for this project: "official" or "obsolete":
15
- kotlin.code.style=official
15
+ kotlin.code.style=official
16
+ releaseKeystoreConfig=../../../keystore.properties
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pakstr",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "CLI for packaging Nostr web apps into Android APKs",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",