@blank-utils/llm 0.3.18 → 0.3.20

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.
@@ -2214,9 +2214,8 @@ video {
2214
2214
  .m-0 {
2215
2215
  margin: 0px;
2216
2216
  }
2217
- .mx-2 {
2218
- margin-left: 0.5rem;
2219
- margin-right: 0.5rem;
2217
+ .m-1 {
2218
+ margin: 0.25rem;
2220
2219
  }
2221
2220
  .mx-4 {
2222
2221
  margin-left: 1rem;
@@ -2226,18 +2225,10 @@ video {
2226
2225
  margin-left: 1.5rem;
2227
2226
  margin-right: 1.5rem;
2228
2227
  }
2229
- .my-2 {
2230
- margin-top: 0.5rem;
2231
- margin-bottom: 0.5rem;
2232
- }
2233
2228
  .my-4 {
2234
2229
  margin-top: 1rem;
2235
2230
  margin-bottom: 1rem;
2236
2231
  }
2237
- .my-5 {
2238
- margin-top: 1.25rem;
2239
- margin-bottom: 1.25rem;
2240
- }
2241
2232
  .my-6 {
2242
2233
  margin-top: 1.5rem;
2243
2234
  margin-bottom: 1.5rem;
@@ -2290,15 +2281,9 @@ video {
2290
2281
  .mt-4 {
2291
2282
  margin-top: 1rem;
2292
2283
  }
2293
- .mt-5 {
2294
- margin-top: 1.25rem;
2295
- }
2296
2284
  .mt-6 {
2297
2285
  margin-top: 1.5rem;
2298
2286
  }
2299
- .mt-8 {
2300
- margin-top: 2rem;
2301
- }
2302
2287
  .block {
2303
2288
  display: block;
2304
2289
  }
@@ -2331,27 +2316,27 @@ video {
2331
2316
  width: 100%;
2332
2317
  height: 100%;
2333
2318
  }
2334
- .h-10 {
2335
- height: 2.5rem;
2319
+ .h-1 {
2320
+ height: 0.25rem;
2321
+ }
2322
+ .h-16 {
2323
+ height: 4rem;
2324
+ }
2325
+ .h-2 {
2326
+ height: 0.5rem;
2336
2327
  }
2337
- .h-20 {
2338
- height: 5rem;
2328
+ .h-24 {
2329
+ height: 6rem;
2339
2330
  }
2340
2331
  .h-3 {
2341
2332
  height: 0.75rem;
2342
2333
  }
2343
- .h-32 {
2344
- height: 8rem;
2345
- }
2346
2334
  .h-4 {
2347
2335
  height: 1rem;
2348
2336
  }
2349
2337
  .h-5 {
2350
2338
  height: 1.25rem;
2351
2339
  }
2352
- .h-6 {
2353
- height: 1.5rem;
2354
- }
2355
2340
  .h-8 {
2356
2341
  height: 2rem;
2357
2342
  }
@@ -2379,27 +2364,24 @@ video {
2379
2364
  .min-h-\[24px\] {
2380
2365
  min-height: 24px;
2381
2366
  }
2382
- .w-10 {
2383
- width: 2.5rem;
2367
+ .w-16 {
2368
+ width: 4rem;
2369
+ }
2370
+ .w-2 {
2371
+ width: 0.5rem;
2384
2372
  }
2385
- .w-20 {
2386
- width: 5rem;
2373
+ .w-24 {
2374
+ width: 6rem;
2387
2375
  }
2388
2376
  .w-3 {
2389
2377
  width: 0.75rem;
2390
2378
  }
2391
- .w-32 {
2392
- width: 8rem;
2393
- }
2394
2379
  .w-4 {
2395
2380
  width: 1rem;
2396
2381
  }
2397
2382
  .w-5 {
2398
2383
  width: 1.25rem;
2399
2384
  }
2400
- .w-6 {
2401
- width: 1.5rem;
2402
- }
2403
2385
  .w-72 {
2404
2386
  width: 18rem;
2405
2387
  }
@@ -2415,9 +2397,6 @@ video {
2415
2397
  .min-w-\[120px\] {
2416
2398
  min-width: 120px;
2417
2399
  }
2418
- .max-w-\[90\%\] {
2419
- max-width: 90%;
2420
- }
2421
2400
  .max-w-full {
2422
2401
  max-width: 100%;
2423
2402
  }
@@ -2501,9 +2480,6 @@ video {
2501
2480
  .items-start {
2502
2481
  align-items: flex-start;
2503
2482
  }
2504
- .items-end {
2505
- align-items: flex-end;
2506
- }
2507
2483
  .items-center {
2508
2484
  align-items: center;
2509
2485
  }
@@ -2528,8 +2504,8 @@ video {
2528
2504
  .gap-4 {
2529
2505
  gap: 1rem;
2530
2506
  }
2531
- .gap-8 {
2532
- gap: 2rem;
2507
+ .gap-6 {
2508
+ gap: 1.5rem;
2533
2509
  }
2534
2510
  .space-x-2 > :not([hidden]) ~ :not([hidden]) {
2535
2511
  --tw-space-x-reverse: 0;
@@ -2546,12 +2522,6 @@ video {
2546
2522
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
2547
2523
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
2548
2524
  }
2549
- .self-start {
2550
- align-self: flex-start;
2551
- }
2552
- .self-end {
2553
- align-self: flex-end;
2554
- }
2555
2525
  .overflow-hidden {
2556
2526
  overflow: hidden;
2557
2527
  }
@@ -2602,26 +2572,23 @@ video {
2602
2572
  .border {
2603
2573
  border-width: 1px;
2604
2574
  }
2605
- .border-2 {
2606
- border-width: 2px;
2607
- }
2608
- .border-4 {
2609
- border-width: 4px;
2575
+ .border-b {
2576
+ border-bottom-width: 1px;
2610
2577
  }
2611
2578
  .border-b-2 {
2612
2579
  border-bottom-width: 2px;
2613
2580
  }
2614
- .border-l-2 {
2615
- border-left-width: 2px;
2581
+ .border-l {
2582
+ border-left-width: 1px;
2616
2583
  }
2617
2584
  .border-l-4 {
2618
2585
  border-left-width: 4px;
2619
2586
  }
2620
- .border-r-2 {
2621
- border-right-width: 2px;
2587
+ .border-r {
2588
+ border-right-width: 1px;
2622
2589
  }
2623
- .border-t-2 {
2624
- border-top-width: 2px;
2590
+ .border-t {
2591
+ border-top-width: 1px;
2625
2592
  }
2626
2593
  .border-dashed {
2627
2594
  border-style: dashed;
@@ -2629,32 +2596,23 @@ video {
2629
2596
  .border-none {
2630
2597
  border-style: none;
2631
2598
  }
2632
- .border-black {
2633
- --tw-border-opacity: 1;
2634
- border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
2635
- }
2636
- .border-black\/10 {
2637
- border-color: rgb(0 0 0 / 0.1);
2638
- }
2639
- .border-black\/20 {
2640
- border-color: rgb(0 0 0 / 0.2);
2641
- }
2642
2599
  .border-current {
2643
2600
  border-color: currentColor;
2644
2601
  }
2645
- .border-red-500 {
2646
- --tw-border-opacity: 1;
2647
- border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
2648
- }
2649
2602
  .border-red-500\/20 {
2650
2603
  border-color: rgb(239 68 68 / 0.2);
2651
2604
  }
2652
- .bg-\[\#fafafa\] {
2653
- --tw-bg-opacity: 1;
2654
- background-color: rgb(250 250 250 / var(--tw-bg-opacity, 1));
2605
+ .border-red-500\/50 {
2606
+ border-color: rgb(239 68 68 / 0.5);
2607
+ }
2608
+ .border-white\/10 {
2609
+ border-color: rgb(255 255 255 / 0.1);
2610
+ }
2611
+ .border-white\/30 {
2612
+ border-color: rgb(255 255 255 / 0.3);
2655
2613
  }
2656
- .bg-\[\#fafafa\]\/90 {
2657
- background-color: rgb(250 250 250 / 0.9);
2614
+ .border-white\/50 {
2615
+ border-color: rgb(255 255 255 / 0.5);
2658
2616
  }
2659
2617
  .bg-\[var\(--sdm-tbg\)\] {
2660
2618
  background-color: var(--sdm-tbg);
@@ -2666,6 +2624,12 @@ video {
2666
2624
  .bg-black\/10 {
2667
2625
  background-color: rgb(0 0 0 / 0.1);
2668
2626
  }
2627
+ .bg-black\/80 {
2628
+ background-color: rgb(0 0 0 / 0.8);
2629
+ }
2630
+ .bg-black\/90 {
2631
+ background-color: rgb(0 0 0 / 0.9);
2632
+ }
2669
2633
  .bg-red-100 {
2670
2634
  --tw-bg-opacity: 1;
2671
2635
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
@@ -2687,6 +2651,16 @@ video {
2687
2651
  .bg-transparent {
2688
2652
  background-color: transparent;
2689
2653
  }
2654
+ .bg-white {
2655
+ --tw-bg-opacity: 1;
2656
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
2657
+ }
2658
+ .bg-white\/10 {
2659
+ background-color: rgb(255 255 255 / 0.1);
2660
+ }
2661
+ .bg-white\/30 {
2662
+ background-color: rgb(255 255 255 / 0.3);
2663
+ }
2690
2664
  .fill-current {
2691
2665
  fill: currentColor;
2692
2666
  }
@@ -2722,10 +2696,6 @@ video {
2722
2696
  padding-left: 0.375rem;
2723
2697
  padding-right: 0.375rem;
2724
2698
  }
2725
- .px-2 {
2726
- padding-left: 0.5rem;
2727
- padding-right: 0.5rem;
2728
- }
2729
2699
  .px-3 {
2730
2700
  padding-left: 0.75rem;
2731
2701
  padding-right: 0.75rem;
@@ -2762,10 +2732,6 @@ video {
2762
2732
  padding-top: 1rem;
2763
2733
  padding-bottom: 1rem;
2764
2734
  }
2765
- .py-5 {
2766
- padding-top: 1.25rem;
2767
- padding-bottom: 1.25rem;
2768
- }
2769
2735
  .pb-2 {
2770
2736
  padding-bottom: 0.5rem;
2771
2737
  }
@@ -2775,6 +2741,9 @@ video {
2775
2741
  .pr-4 {
2776
2742
  padding-right: 1rem;
2777
2743
  }
2744
+ .pt-3 {
2745
+ padding-top: 0.75rem;
2746
+ }
2778
2747
  .text-left {
2779
2748
  text-align: left;
2780
2749
  }
@@ -2836,11 +2805,8 @@ video {
2836
2805
  font-size: 0.75rem;
2837
2806
  line-height: 1rem;
2838
2807
  }
2839
- .font-black {
2840
- font-weight: 900;
2841
- }
2842
- .font-bold {
2843
- font-weight: 700;
2808
+ .font-light {
2809
+ font-weight: 300;
2844
2810
  }
2845
2811
  .font-medium {
2846
2812
  font-weight: 500;
@@ -2869,10 +2835,6 @@ video {
2869
2835
  .tracking-widest {
2870
2836
  letter-spacing: 0.1em;
2871
2837
  }
2872
- .text-\[\#fafafa\] {
2873
- --tw-text-opacity: 1;
2874
- color: rgb(250 250 250 / var(--tw-text-opacity, 1));
2875
- }
2876
2838
  .text-\[var\(--sdm-c\,inherit\)\] {
2877
2839
  color: var(--sdm-c,inherit);
2878
2840
  }
@@ -2880,15 +2842,6 @@ video {
2880
2842
  --tw-text-opacity: 1;
2881
2843
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
2882
2844
  }
2883
- .text-black\/20 {
2884
- color: rgb(0 0 0 / 0.2);
2885
- }
2886
- .text-black\/50 {
2887
- color: rgb(0 0 0 / 0.5);
2888
- }
2889
- .text-black\/70 {
2890
- color: rgb(0 0 0 / 0.7);
2891
- }
2892
2845
  .text-red-400\/80 {
2893
2846
  color: rgb(248 113 113 / 0.8);
2894
2847
  }
@@ -2912,6 +2865,24 @@ video {
2912
2865
  --tw-text-opacity: 1;
2913
2866
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
2914
2867
  }
2868
+ .text-white\/20 {
2869
+ color: rgb(255 255 255 / 0.2);
2870
+ }
2871
+ .text-white\/40 {
2872
+ color: rgb(255 255 255 / 0.4);
2873
+ }
2874
+ .text-white\/50 {
2875
+ color: rgb(255 255 255 / 0.5);
2876
+ }
2877
+ .text-white\/60 {
2878
+ color: rgb(255 255 255 / 0.6);
2879
+ }
2880
+ .text-white\/70 {
2881
+ color: rgb(255 255 255 / 0.7);
2882
+ }
2883
+ .text-white\/80 {
2884
+ color: rgb(255 255 255 / 0.8);
2885
+ }
2915
2886
  .underline {
2916
2887
  text-decoration-line: underline;
2917
2888
  }
@@ -2921,6 +2892,9 @@ video {
2921
2892
  .opacity-50 {
2922
2893
  opacity: 0.5;
2923
2894
  }
2895
+ .opacity-70 {
2896
+ opacity: 0.7;
2897
+ }
2924
2898
  .shadow-lg {
2925
2899
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
2926
2900
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
@@ -2929,14 +2903,6 @@ video {
2929
2903
  var(--tw-ring-shadow, 0 0 #0000),
2930
2904
  var(--tw-shadow);
2931
2905
  }
2932
- .shadow-none {
2933
- --tw-shadow: 0 0 #0000;
2934
- --tw-shadow-colored: 0 0 #0000;
2935
- box-shadow:
2936
- var(--tw-ring-offset-shadow, 0 0 #0000),
2937
- var(--tw-ring-shadow, 0 0 #0000),
2938
- var(--tw-shadow);
2939
- }
2940
2906
  .shadow-sm {
2941
2907
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
2942
2908
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
@@ -2999,8 +2965,10 @@ video {
2999
2965
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3000
2966
  transition-duration: 150ms;
3001
2967
  }
3002
- .transition-none {
3003
- transition-property: none;
2968
+ .transition-opacity {
2969
+ transition-property: opacity;
2970
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2971
+ transition-duration: 150ms;
3004
2972
  }
3005
2973
  .transition-transform {
3006
2974
  transition-property: transform;
@@ -3059,11 +3027,11 @@ video {
3059
3027
  .placeholder\:tracking-widest::placeholder {
3060
3028
  letter-spacing: 0.1em;
3061
3029
  }
3062
- .placeholder\:text-black\/30::-moz-placeholder {
3063
- color: rgb(0 0 0 / 0.3);
3030
+ .placeholder\:text-white\/30::-moz-placeholder {
3031
+ color: rgb(255 255 255 / 0.3);
3064
3032
  }
3065
- .placeholder\:text-black\/30::placeholder {
3066
- color: rgb(0 0 0 / 0.3);
3033
+ .placeholder\:text-white\/30::placeholder {
3034
+ color: rgb(255 255 255 / 0.3);
3067
3035
  }
3068
3036
  .before\:mr-4::before {
3069
3037
  content: var(--tw-content);
@@ -3132,46 +3100,29 @@ video {
3132
3100
  --tw-content: var(--streamdown-caret);
3133
3101
  content: var(--tw-content);
3134
3102
  }
3135
- .even\:bg-black\/5:nth-child(even) {
3136
- background-color: rgb(0 0 0 / 0.05);
3137
- }
3138
- .focus-within\:border-black:focus-within {
3139
- --tw-border-opacity: 1;
3140
- border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
3141
- }
3142
- .focus-within\:ring-0:focus-within {
3143
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
3144
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
3145
- box-shadow:
3146
- var(--tw-ring-offset-shadow),
3147
- var(--tw-ring-shadow),
3148
- var(--tw-shadow, 0 0 #0000);
3103
+ .focus-within\:border-white\/60:focus-within {
3104
+ border-color: rgb(255 255 255 / 0.6);
3149
3105
  }
3150
- .hover\:bg-black:hover {
3151
- --tw-bg-opacity: 1;
3152
- background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
3106
+ .hover\:bg-red-500\/20:hover {
3107
+ background-color: rgb(239 68 68 / 0.2);
3153
3108
  }
3154
- .hover\:bg-black\/10:hover {
3155
- background-color: rgb(0 0 0 / 0.1);
3109
+ .hover\:bg-red-500\/30:hover {
3110
+ background-color: rgb(239 68 68 / 0.3);
3156
3111
  }
3157
- .hover\:bg-red-500:hover {
3112
+ .hover\:bg-white:hover {
3158
3113
  --tw-bg-opacity: 1;
3159
- background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
3114
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
3160
3115
  }
3161
- .hover\:bg-red-500\/30:hover {
3162
- background-color: rgb(239 68 68 / 0.3);
3116
+ .hover\:bg-white\/10:hover {
3117
+ background-color: rgb(255 255 255 / 0.1);
3163
3118
  }
3164
- .hover\:bg-transparent:hover {
3165
- background-color: transparent;
3119
+ .hover\:bg-white\/5:hover {
3120
+ background-color: rgb(255 255 255 / 0.05);
3166
3121
  }
3167
3122
  .hover\:text-black:hover {
3168
3123
  --tw-text-opacity: 1;
3169
3124
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
3170
3125
  }
3171
- .hover\:text-red-600:hover {
3172
- --tw-text-opacity: 1;
3173
- color: rgb(220 38 38 / var(--tw-text-opacity, 1));
3174
- }
3175
3126
  .hover\:text-white:hover {
3176
3127
  --tw-text-opacity: 1;
3177
3128
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
@@ -3211,95 +3162,15 @@ video {
3211
3162
  }
3212
3163
  }
3213
3164
  @media (prefers-color-scheme: dark) {
3214
- .dark\:border-white {
3215
- --tw-border-opacity: 1;
3216
- border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
3217
- }
3218
- .dark\:border-white\/10 {
3219
- border-color: rgb(255 255 255 / 0.1);
3220
- }
3221
- .dark\:border-white\/20 {
3222
- border-color: rgb(255 255 255 / 0.2);
3223
- }
3224
3165
  .dark\:bg-\[var\(--shiki-dark-bg\,var\(--sdm-tbg\)\)\] {
3225
3166
  background-color: var(--shiki-dark-bg,var(--sdm-tbg));
3226
3167
  }
3227
- .dark\:bg-black {
3228
- --tw-bg-opacity: 1;
3229
- background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
3230
- }
3231
- .dark\:bg-black\/90 {
3232
- background-color: rgb(0 0 0 / 0.9);
3233
- }
3234
- .dark\:bg-red-950\/20 {
3235
- background-color: rgb(69 10 10 / 0.2);
3236
- }
3237
- .dark\:bg-white {
3238
- --tw-bg-opacity: 1;
3239
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
3240
- }
3241
3168
  .dark\:text-\[var\(--shiki-dark\,var\(--sdm-c\,inherit\)\)\] {
3242
3169
  color: var(--shiki-dark,var(--sdm-c,inherit));
3243
3170
  }
3244
- .dark\:text-black {
3245
- --tw-text-opacity: 1;
3246
- color: rgb(0 0 0 / var(--tw-text-opacity, 1));
3247
- }
3248
- .dark\:text-red-400 {
3249
- --tw-text-opacity: 1;
3250
- color: rgb(248 113 113 / var(--tw-text-opacity, 1));
3251
- }
3252
- .dark\:text-white {
3253
- --tw-text-opacity: 1;
3254
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
3255
- }
3256
- .dark\:text-white\/20 {
3257
- color: rgb(255 255 255 / 0.2);
3258
- }
3259
- .dark\:text-white\/50 {
3260
- color: rgb(255 255 255 / 0.5);
3261
- }
3262
- .dark\:text-white\/70 {
3263
- color: rgb(255 255 255 / 0.7);
3264
- }
3265
- .dark\:placeholder\:text-white\/30::-moz-placeholder {
3266
- color: rgb(255 255 255 / 0.3);
3267
- }
3268
- .dark\:placeholder\:text-white\/30::placeholder {
3269
- color: rgb(255 255 255 / 0.3);
3270
- }
3271
- .dark\:even\:bg-white\/5:nth-child(even) {
3272
- background-color: rgb(255 255 255 / 0.05);
3273
- }
3274
- .dark\:focus-within\:border-white:focus-within {
3275
- --tw-border-opacity: 1;
3276
- border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
3277
- }
3278
- .dark\:hover\:bg-transparent:hover {
3279
- background-color: transparent;
3280
- }
3281
- .dark\:hover\:bg-white:hover {
3282
- --tw-bg-opacity: 1;
3283
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
3284
- }
3285
- .dark\:hover\:bg-white\/10:hover {
3286
- background-color: rgb(255 255 255 / 0.1);
3287
- }
3288
- .dark\:hover\:text-black:hover {
3289
- --tw-text-opacity: 1;
3290
- color: rgb(0 0 0 / var(--tw-text-opacity, 1));
3291
- }
3292
- .dark\:hover\:text-red-400:hover {
3293
- --tw-text-opacity: 1;
3294
- color: rgb(248 113 113 / var(--tw-text-opacity, 1));
3295
- }
3296
- .dark\:hover\:text-white:hover {
3297
- --tw-text-opacity: 1;
3298
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
3299
- }
3300
3171
  }
3301
- .\[\&\:not\(\:first-child\)\]\:mt-5:not(:first-child) {
3302
- margin-top: 1.25rem;
3172
+ .\[\&\:not\(\:first-child\)\]\:mt-4:not(:first-child) {
3173
+ margin-top: 1rem;
3303
3174
  }
3304
3175
  .\[\&\>li\]\:mt-2 > li {
3305
3176
  margin-top: 0.5rem;
@@ -9,7 +9,7 @@ import {
9
9
  useCompletion,
10
10
  useLLM,
11
11
  useStream
12
- } from "../chunk-VJDH5U3G.js";
12
+ } from "../chunk-7YC6ECAU.js";
13
13
  export {
14
14
  Chat,
15
15
  ChatApp,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blank-utils/llm",
3
- "version": "0.3.18",
3
+ "version": "0.3.20",
4
4
  "description": "Run LLMs directly in your browser with WebGPU acceleration. Supports React hooks and eager background loading.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",