yaver-cli 1.99.4 → 1.99.6
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.
- package/package.json +1 -1
- package/sdk-manifest.json +264 -0
- package/src/postinstall.js +58 -0
package/package.json
CHANGED
package/sdk-manifest.json
CHANGED
|
@@ -13,17 +13,27 @@
|
|
|
13
13
|
},
|
|
14
14
|
"supportedRNRange": "0.81.x",
|
|
15
15
|
"nativeModules": {
|
|
16
|
+
"@amplitude/analytics-react-native": "1.5.52",
|
|
16
17
|
"@expo/vector-icons": "15.1.1",
|
|
17
18
|
"@gorhom/bottom-sheet": "5.2.9",
|
|
19
|
+
"@intercom/intercom-react-native": "10.0.0",
|
|
20
|
+
"@notifee/react-native": "9.1.8",
|
|
18
21
|
"@react-native-async-storage/async-storage": "2.2.0",
|
|
19
22
|
"@react-native-community/datetimepicker": "8.4.4",
|
|
20
23
|
"@react-native-community/netinfo": "11.4.1",
|
|
21
24
|
"@react-native-community/slider": "5.0.1",
|
|
25
|
+
"@react-native-google-signin/google-signin": "16.1.2",
|
|
22
26
|
"@react-native-masked-view/masked-view": "0.3.2",
|
|
27
|
+
"@react-native-menu/menu": "2.0.0",
|
|
28
|
+
"@react-native-ml-kit/text-recognition": "2.0.0",
|
|
23
29
|
"@react-native-picker/picker": "2.11.1",
|
|
24
30
|
"@react-native-segmented-control/segmented-control": "2.5.7",
|
|
31
|
+
"@rnmapbox/maps": "10.3.0",
|
|
32
|
+
"@sentry/react-native": "8.8.0",
|
|
25
33
|
"@shopify/flash-list": "2.0.2",
|
|
26
34
|
"@shopify/react-native-skia": "2.2.12",
|
|
35
|
+
"@shopify/restyle": "2.4.5",
|
|
36
|
+
"@stripe/stripe-react-native": "0.64.0",
|
|
27
37
|
"expo-apple-authentication": "8.0.8",
|
|
28
38
|
"expo-asset": "12.0.12",
|
|
29
39
|
"expo-auth-session": "7.0.10",
|
|
@@ -74,29 +84,59 @@
|
|
|
74
84
|
"expo-video-thumbnails": "10.0.8",
|
|
75
85
|
"expo-web-browser": "15.0.10",
|
|
76
86
|
"lottie-react-native": "7.3.6",
|
|
87
|
+
"posthog-react-native": "4.42.1",
|
|
88
|
+
"react-native-audio-api": "0.11.7",
|
|
89
|
+
"react-native-background-actions": "4.1.0",
|
|
77
90
|
"react-native-ble-plx": "3.5.1",
|
|
91
|
+
"react-native-calendars": "1.1314.0",
|
|
92
|
+
"react-native-device-info": "15.0.2",
|
|
93
|
+
"react-native-draggable-flatlist": "4.0.3",
|
|
78
94
|
"react-native-gesture-handler": "2.28.0",
|
|
79
95
|
"react-native-get-random-values": "1.11.0",
|
|
80
96
|
"react-native-iap": "14.7.20",
|
|
97
|
+
"react-native-keyboard-controller": "1.21.5",
|
|
81
98
|
"react-native-maps": "1.20.1",
|
|
82
99
|
"react-native-markdown-display": "7.0.2",
|
|
83
100
|
"react-native-mmkv": "4.3.0",
|
|
101
|
+
"react-native-modal": "14.0.0-rc.1",
|
|
102
|
+
"react-native-nitro-image": "0.13.1",
|
|
84
103
|
"react-native-nitro-modules": "0.35.3",
|
|
85
104
|
"react-native-pager-view": "6.9.1",
|
|
105
|
+
"react-native-pdf": "7.0.4",
|
|
106
|
+
"react-native-pell-rich-editor": "1.10.0",
|
|
107
|
+
"react-native-permissions": "5.5.1",
|
|
108
|
+
"react-native-progress": "5.0.1",
|
|
109
|
+
"react-native-purchases": "10.0.1",
|
|
110
|
+
"react-native-qrcode-svg": "6.3.21",
|
|
86
111
|
"react-native-reanimated": "4.1.7",
|
|
112
|
+
"react-native-reanimated-carousel": "4.0.3",
|
|
87
113
|
"react-native-safe-area-context": "5.6.2",
|
|
88
114
|
"react-native-screens": "4.16.0",
|
|
115
|
+
"react-native-share": "12.2.6",
|
|
116
|
+
"react-native-signature-canvas": "5.0.2",
|
|
117
|
+
"react-native-skeleton-placeholder": "5.2.4",
|
|
89
118
|
"react-native-svg": "15.12.1",
|
|
119
|
+
"react-native-swipe-list-view": "3.2.9",
|
|
120
|
+
"react-native-toast-message": "2.3.3",
|
|
90
121
|
"react-native-udp": "4.1.7",
|
|
91
122
|
"react-native-video": "6.19.1",
|
|
92
123
|
"react-native-view-shot": "4.0.3",
|
|
124
|
+
"react-native-vision-camera": "5.0.1",
|
|
93
125
|
"react-native-web": "0.21.2",
|
|
94
126
|
"react-native-webview": "13.15.0",
|
|
95
127
|
"react-native-worklets": "0.5.1",
|
|
128
|
+
"react-native-zip-archive": "7.1.0",
|
|
96
129
|
"victory-native": "41.20.2",
|
|
97
130
|
"whisper.rn": "0.5.5"
|
|
98
131
|
},
|
|
99
132
|
"moduleSupport": {
|
|
133
|
+
"@amplitude/analytics-react-native": {
|
|
134
|
+
"version": "1.5.52",
|
|
135
|
+
"hostApp": true,
|
|
136
|
+
"cliPush": true,
|
|
137
|
+
"agentOpenInYaver": true,
|
|
138
|
+
"pluginEnabled": false
|
|
139
|
+
},
|
|
100
140
|
"@expo/vector-icons": {
|
|
101
141
|
"version": "15.1.1",
|
|
102
142
|
"hostApp": true,
|
|
@@ -111,6 +151,20 @@
|
|
|
111
151
|
"agentOpenInYaver": true,
|
|
112
152
|
"pluginEnabled": false
|
|
113
153
|
},
|
|
154
|
+
"@intercom/intercom-react-native": {
|
|
155
|
+
"version": "10.0.0",
|
|
156
|
+
"hostApp": true,
|
|
157
|
+
"cliPush": true,
|
|
158
|
+
"agentOpenInYaver": true,
|
|
159
|
+
"pluginEnabled": false
|
|
160
|
+
},
|
|
161
|
+
"@notifee/react-native": {
|
|
162
|
+
"version": "9.1.8",
|
|
163
|
+
"hostApp": true,
|
|
164
|
+
"cliPush": true,
|
|
165
|
+
"agentOpenInYaver": true,
|
|
166
|
+
"pluginEnabled": false
|
|
167
|
+
},
|
|
114
168
|
"@react-native-async-storage/async-storage": {
|
|
115
169
|
"version": "2.2.0",
|
|
116
170
|
"hostApp": true,
|
|
@@ -139,6 +193,13 @@
|
|
|
139
193
|
"agentOpenInYaver": true,
|
|
140
194
|
"pluginEnabled": false
|
|
141
195
|
},
|
|
196
|
+
"@react-native-google-signin/google-signin": {
|
|
197
|
+
"version": "16.1.2",
|
|
198
|
+
"hostApp": true,
|
|
199
|
+
"cliPush": true,
|
|
200
|
+
"agentOpenInYaver": true,
|
|
201
|
+
"pluginEnabled": false
|
|
202
|
+
},
|
|
142
203
|
"@react-native-masked-view/masked-view": {
|
|
143
204
|
"version": "0.3.2",
|
|
144
205
|
"hostApp": true,
|
|
@@ -146,6 +207,20 @@
|
|
|
146
207
|
"agentOpenInYaver": true,
|
|
147
208
|
"pluginEnabled": false
|
|
148
209
|
},
|
|
210
|
+
"@react-native-menu/menu": {
|
|
211
|
+
"version": "2.0.0",
|
|
212
|
+
"hostApp": true,
|
|
213
|
+
"cliPush": true,
|
|
214
|
+
"agentOpenInYaver": true,
|
|
215
|
+
"pluginEnabled": false
|
|
216
|
+
},
|
|
217
|
+
"@react-native-ml-kit/text-recognition": {
|
|
218
|
+
"version": "2.0.0",
|
|
219
|
+
"hostApp": true,
|
|
220
|
+
"cliPush": true,
|
|
221
|
+
"agentOpenInYaver": true,
|
|
222
|
+
"pluginEnabled": false
|
|
223
|
+
},
|
|
149
224
|
"@react-native-picker/picker": {
|
|
150
225
|
"version": "2.11.1",
|
|
151
226
|
"hostApp": true,
|
|
@@ -160,6 +235,20 @@
|
|
|
160
235
|
"agentOpenInYaver": true,
|
|
161
236
|
"pluginEnabled": false
|
|
162
237
|
},
|
|
238
|
+
"@rnmapbox/maps": {
|
|
239
|
+
"version": "10.3.0",
|
|
240
|
+
"hostApp": true,
|
|
241
|
+
"cliPush": true,
|
|
242
|
+
"agentOpenInYaver": true,
|
|
243
|
+
"pluginEnabled": false
|
|
244
|
+
},
|
|
245
|
+
"@sentry/react-native": {
|
|
246
|
+
"version": "8.8.0",
|
|
247
|
+
"hostApp": true,
|
|
248
|
+
"cliPush": true,
|
|
249
|
+
"agentOpenInYaver": true,
|
|
250
|
+
"pluginEnabled": false
|
|
251
|
+
},
|
|
163
252
|
"@shopify/flash-list": {
|
|
164
253
|
"version": "2.0.2",
|
|
165
254
|
"hostApp": true,
|
|
@@ -174,6 +263,20 @@
|
|
|
174
263
|
"agentOpenInYaver": true,
|
|
175
264
|
"pluginEnabled": false
|
|
176
265
|
},
|
|
266
|
+
"@shopify/restyle": {
|
|
267
|
+
"version": "2.4.5",
|
|
268
|
+
"hostApp": true,
|
|
269
|
+
"cliPush": true,
|
|
270
|
+
"agentOpenInYaver": true,
|
|
271
|
+
"pluginEnabled": false
|
|
272
|
+
},
|
|
273
|
+
"@stripe/stripe-react-native": {
|
|
274
|
+
"version": "0.64.0",
|
|
275
|
+
"hostApp": true,
|
|
276
|
+
"cliPush": true,
|
|
277
|
+
"agentOpenInYaver": true,
|
|
278
|
+
"pluginEnabled": false
|
|
279
|
+
},
|
|
177
280
|
"expo-apple-authentication": {
|
|
178
281
|
"version": "8.0.8",
|
|
179
282
|
"hostApp": true,
|
|
@@ -524,6 +627,27 @@
|
|
|
524
627
|
"agentOpenInYaver": true,
|
|
525
628
|
"pluginEnabled": false
|
|
526
629
|
},
|
|
630
|
+
"posthog-react-native": {
|
|
631
|
+
"version": "4.42.1",
|
|
632
|
+
"hostApp": true,
|
|
633
|
+
"cliPush": true,
|
|
634
|
+
"agentOpenInYaver": true,
|
|
635
|
+
"pluginEnabled": false
|
|
636
|
+
},
|
|
637
|
+
"react-native-audio-api": {
|
|
638
|
+
"version": "0.11.7",
|
|
639
|
+
"hostApp": true,
|
|
640
|
+
"cliPush": true,
|
|
641
|
+
"agentOpenInYaver": true,
|
|
642
|
+
"pluginEnabled": false
|
|
643
|
+
},
|
|
644
|
+
"react-native-background-actions": {
|
|
645
|
+
"version": "4.1.0",
|
|
646
|
+
"hostApp": true,
|
|
647
|
+
"cliPush": true,
|
|
648
|
+
"agentOpenInYaver": true,
|
|
649
|
+
"pluginEnabled": false
|
|
650
|
+
},
|
|
527
651
|
"react-native-ble-plx": {
|
|
528
652
|
"version": "3.5.1",
|
|
529
653
|
"hostApp": true,
|
|
@@ -531,6 +655,27 @@
|
|
|
531
655
|
"agentOpenInYaver": true,
|
|
532
656
|
"pluginEnabled": false
|
|
533
657
|
},
|
|
658
|
+
"react-native-calendars": {
|
|
659
|
+
"version": "1.1314.0",
|
|
660
|
+
"hostApp": true,
|
|
661
|
+
"cliPush": true,
|
|
662
|
+
"agentOpenInYaver": true,
|
|
663
|
+
"pluginEnabled": false
|
|
664
|
+
},
|
|
665
|
+
"react-native-device-info": {
|
|
666
|
+
"version": "15.0.2",
|
|
667
|
+
"hostApp": true,
|
|
668
|
+
"cliPush": true,
|
|
669
|
+
"agentOpenInYaver": true,
|
|
670
|
+
"pluginEnabled": false
|
|
671
|
+
},
|
|
672
|
+
"react-native-draggable-flatlist": {
|
|
673
|
+
"version": "4.0.3",
|
|
674
|
+
"hostApp": true,
|
|
675
|
+
"cliPush": true,
|
|
676
|
+
"agentOpenInYaver": true,
|
|
677
|
+
"pluginEnabled": false
|
|
678
|
+
},
|
|
534
679
|
"react-native-gesture-handler": {
|
|
535
680
|
"version": "2.28.0",
|
|
536
681
|
"hostApp": true,
|
|
@@ -552,6 +697,13 @@
|
|
|
552
697
|
"agentOpenInYaver": true,
|
|
553
698
|
"pluginEnabled": false
|
|
554
699
|
},
|
|
700
|
+
"react-native-keyboard-controller": {
|
|
701
|
+
"version": "1.21.5",
|
|
702
|
+
"hostApp": true,
|
|
703
|
+
"cliPush": true,
|
|
704
|
+
"agentOpenInYaver": true,
|
|
705
|
+
"pluginEnabled": false
|
|
706
|
+
},
|
|
555
707
|
"react-native-maps": {
|
|
556
708
|
"version": "1.20.1",
|
|
557
709
|
"hostApp": true,
|
|
@@ -573,6 +725,20 @@
|
|
|
573
725
|
"agentOpenInYaver": true,
|
|
574
726
|
"pluginEnabled": false
|
|
575
727
|
},
|
|
728
|
+
"react-native-modal": {
|
|
729
|
+
"version": "14.0.0-rc.1",
|
|
730
|
+
"hostApp": true,
|
|
731
|
+
"cliPush": true,
|
|
732
|
+
"agentOpenInYaver": true,
|
|
733
|
+
"pluginEnabled": false
|
|
734
|
+
},
|
|
735
|
+
"react-native-nitro-image": {
|
|
736
|
+
"version": "0.13.1",
|
|
737
|
+
"hostApp": true,
|
|
738
|
+
"cliPush": true,
|
|
739
|
+
"agentOpenInYaver": true,
|
|
740
|
+
"pluginEnabled": false
|
|
741
|
+
},
|
|
576
742
|
"react-native-nitro-modules": {
|
|
577
743
|
"version": "0.35.3",
|
|
578
744
|
"hostApp": true,
|
|
@@ -587,6 +753,48 @@
|
|
|
587
753
|
"agentOpenInYaver": true,
|
|
588
754
|
"pluginEnabled": false
|
|
589
755
|
},
|
|
756
|
+
"react-native-pdf": {
|
|
757
|
+
"version": "7.0.4",
|
|
758
|
+
"hostApp": true,
|
|
759
|
+
"cliPush": true,
|
|
760
|
+
"agentOpenInYaver": true,
|
|
761
|
+
"pluginEnabled": false
|
|
762
|
+
},
|
|
763
|
+
"react-native-pell-rich-editor": {
|
|
764
|
+
"version": "1.10.0",
|
|
765
|
+
"hostApp": true,
|
|
766
|
+
"cliPush": true,
|
|
767
|
+
"agentOpenInYaver": true,
|
|
768
|
+
"pluginEnabled": false
|
|
769
|
+
},
|
|
770
|
+
"react-native-permissions": {
|
|
771
|
+
"version": "5.5.1",
|
|
772
|
+
"hostApp": true,
|
|
773
|
+
"cliPush": true,
|
|
774
|
+
"agentOpenInYaver": true,
|
|
775
|
+
"pluginEnabled": false
|
|
776
|
+
},
|
|
777
|
+
"react-native-progress": {
|
|
778
|
+
"version": "5.0.1",
|
|
779
|
+
"hostApp": true,
|
|
780
|
+
"cliPush": true,
|
|
781
|
+
"agentOpenInYaver": true,
|
|
782
|
+
"pluginEnabled": false
|
|
783
|
+
},
|
|
784
|
+
"react-native-purchases": {
|
|
785
|
+
"version": "10.0.1",
|
|
786
|
+
"hostApp": true,
|
|
787
|
+
"cliPush": true,
|
|
788
|
+
"agentOpenInYaver": true,
|
|
789
|
+
"pluginEnabled": false
|
|
790
|
+
},
|
|
791
|
+
"react-native-qrcode-svg": {
|
|
792
|
+
"version": "6.3.21",
|
|
793
|
+
"hostApp": true,
|
|
794
|
+
"cliPush": true,
|
|
795
|
+
"agentOpenInYaver": true,
|
|
796
|
+
"pluginEnabled": false
|
|
797
|
+
},
|
|
590
798
|
"react-native-reanimated": {
|
|
591
799
|
"version": "4.1.7",
|
|
592
800
|
"hostApp": true,
|
|
@@ -594,6 +802,13 @@
|
|
|
594
802
|
"agentOpenInYaver": true,
|
|
595
803
|
"pluginEnabled": false
|
|
596
804
|
},
|
|
805
|
+
"react-native-reanimated-carousel": {
|
|
806
|
+
"version": "4.0.3",
|
|
807
|
+
"hostApp": true,
|
|
808
|
+
"cliPush": true,
|
|
809
|
+
"agentOpenInYaver": true,
|
|
810
|
+
"pluginEnabled": false
|
|
811
|
+
},
|
|
597
812
|
"react-native-safe-area-context": {
|
|
598
813
|
"version": "5.6.2",
|
|
599
814
|
"hostApp": true,
|
|
@@ -608,6 +823,27 @@
|
|
|
608
823
|
"agentOpenInYaver": true,
|
|
609
824
|
"pluginEnabled": false
|
|
610
825
|
},
|
|
826
|
+
"react-native-share": {
|
|
827
|
+
"version": "12.2.6",
|
|
828
|
+
"hostApp": true,
|
|
829
|
+
"cliPush": true,
|
|
830
|
+
"agentOpenInYaver": true,
|
|
831
|
+
"pluginEnabled": false
|
|
832
|
+
},
|
|
833
|
+
"react-native-signature-canvas": {
|
|
834
|
+
"version": "5.0.2",
|
|
835
|
+
"hostApp": true,
|
|
836
|
+
"cliPush": true,
|
|
837
|
+
"agentOpenInYaver": true,
|
|
838
|
+
"pluginEnabled": false
|
|
839
|
+
},
|
|
840
|
+
"react-native-skeleton-placeholder": {
|
|
841
|
+
"version": "5.2.4",
|
|
842
|
+
"hostApp": true,
|
|
843
|
+
"cliPush": true,
|
|
844
|
+
"agentOpenInYaver": true,
|
|
845
|
+
"pluginEnabled": false
|
|
846
|
+
},
|
|
611
847
|
"react-native-svg": {
|
|
612
848
|
"version": "15.12.1",
|
|
613
849
|
"hostApp": true,
|
|
@@ -615,6 +851,20 @@
|
|
|
615
851
|
"agentOpenInYaver": true,
|
|
616
852
|
"pluginEnabled": false
|
|
617
853
|
},
|
|
854
|
+
"react-native-swipe-list-view": {
|
|
855
|
+
"version": "3.2.9",
|
|
856
|
+
"hostApp": true,
|
|
857
|
+
"cliPush": true,
|
|
858
|
+
"agentOpenInYaver": true,
|
|
859
|
+
"pluginEnabled": false
|
|
860
|
+
},
|
|
861
|
+
"react-native-toast-message": {
|
|
862
|
+
"version": "2.3.3",
|
|
863
|
+
"hostApp": true,
|
|
864
|
+
"cliPush": true,
|
|
865
|
+
"agentOpenInYaver": true,
|
|
866
|
+
"pluginEnabled": false
|
|
867
|
+
},
|
|
618
868
|
"react-native-udp": {
|
|
619
869
|
"version": "4.1.7",
|
|
620
870
|
"hostApp": true,
|
|
@@ -636,6 +886,13 @@
|
|
|
636
886
|
"agentOpenInYaver": true,
|
|
637
887
|
"pluginEnabled": false
|
|
638
888
|
},
|
|
889
|
+
"react-native-vision-camera": {
|
|
890
|
+
"version": "5.0.1",
|
|
891
|
+
"hostApp": true,
|
|
892
|
+
"cliPush": true,
|
|
893
|
+
"agentOpenInYaver": true,
|
|
894
|
+
"pluginEnabled": false
|
|
895
|
+
},
|
|
639
896
|
"react-native-web": {
|
|
640
897
|
"version": "0.21.2",
|
|
641
898
|
"hostApp": true,
|
|
@@ -657,6 +914,13 @@
|
|
|
657
914
|
"agentOpenInYaver": true,
|
|
658
915
|
"pluginEnabled": false
|
|
659
916
|
},
|
|
917
|
+
"react-native-zip-archive": {
|
|
918
|
+
"version": "7.1.0",
|
|
919
|
+
"hostApp": true,
|
|
920
|
+
"cliPush": true,
|
|
921
|
+
"agentOpenInYaver": true,
|
|
922
|
+
"pluginEnabled": false
|
|
923
|
+
},
|
|
660
924
|
"victory-native": {
|
|
661
925
|
"version": "41.20.2",
|
|
662
926
|
"hostApp": true,
|
package/src/postinstall.js
CHANGED
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
// Must NEVER fail npm install. This is best-effort bootstrap only.
|
|
8
8
|
|
|
9
9
|
const { ensureAgentBinary, runAgentCommand } = require("./agent-runtime");
|
|
10
|
+
const { execSync } = require("child_process");
|
|
11
|
+
const fs = require("fs");
|
|
12
|
+
const os = require("os");
|
|
13
|
+
const path = require("path");
|
|
10
14
|
|
|
11
15
|
function envEnabled(name) {
|
|
12
16
|
const raw = String(process.env[name] || "").trim().toLowerCase();
|
|
@@ -24,6 +28,58 @@ function log(message) {
|
|
|
24
28
|
console.error(`[yaver postinstall] ${message}`);
|
|
25
29
|
}
|
|
26
30
|
|
|
31
|
+
// Make sure `yaver` resolves on PATH for the next shell session. npm's
|
|
32
|
+
// global prefix (e.g. ~/.npm-global/bin) is not on PATH by default on
|
|
33
|
+
// most Linux distros — so `npm install -g yaver-cli` succeeds but
|
|
34
|
+
// `yaver auth` then exits with command-not-found. That is the #1 fail
|
|
35
|
+
// mode on fresh machines, so we self-heal by appending a one-line,
|
|
36
|
+
// idempotent PATH export into the user's shell rc files. Never throws.
|
|
37
|
+
function ensurePathOnUnix() {
|
|
38
|
+
try {
|
|
39
|
+
if (process.platform === "win32") return; // Windows users have Scoop/Winget
|
|
40
|
+
const prefix = (process.env.npm_config_prefix || "").trim();
|
|
41
|
+
if (!prefix) return;
|
|
42
|
+
const binDir = path.join(prefix, "bin");
|
|
43
|
+
if (!fs.existsSync(path.join(binDir, "yaver"))) return;
|
|
44
|
+
|
|
45
|
+
const currentPath = (process.env.PATH || "").split(path.delimiter);
|
|
46
|
+
if (currentPath.includes(binDir)) return;
|
|
47
|
+
|
|
48
|
+
// Also confirm `yaver` isn't already findable under a different name
|
|
49
|
+
// (e.g. brew-installed /opt/homebrew/bin/yaver takes precedence).
|
|
50
|
+
try {
|
|
51
|
+
const found = execSync("command -v yaver", { stdio: ["ignore", "pipe", "ignore"] })
|
|
52
|
+
.toString()
|
|
53
|
+
.trim();
|
|
54
|
+
if (found) return;
|
|
55
|
+
} catch (_) {
|
|
56
|
+
// `command -v` returns nonzero when not found — fall through and patch PATH.
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const home = os.homedir();
|
|
60
|
+
const rcFiles = [".bashrc", ".zshrc", ".profile"]
|
|
61
|
+
.map((f) => path.join(home, f))
|
|
62
|
+
.filter((p) => fs.existsSync(p));
|
|
63
|
+
|
|
64
|
+
const marker = "# yaver-cli PATH";
|
|
65
|
+
const line = `case \":$PATH:\" in *\":${binDir}:\"*) ;; *) export PATH=\"${binDir}:$PATH\" ;; esac`;
|
|
66
|
+
const block = `\n${marker} (added by yaver-cli postinstall)\n${line}\n`;
|
|
67
|
+
|
|
68
|
+
let patched = false;
|
|
69
|
+
for (const rc of rcFiles) {
|
|
70
|
+
const content = fs.readFileSync(rc, "utf8");
|
|
71
|
+
if (content.includes(marker)) continue;
|
|
72
|
+
fs.appendFileSync(rc, block);
|
|
73
|
+
patched = true;
|
|
74
|
+
}
|
|
75
|
+
if (patched) {
|
|
76
|
+
log(`Added ${binDir} to PATH in shell rc files. Run 'exec $SHELL -l' or open a new terminal.`);
|
|
77
|
+
}
|
|
78
|
+
} catch (err) {
|
|
79
|
+
// Best-effort only.
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
27
83
|
async function main() {
|
|
28
84
|
if (envEnabled("YAVER_SKIP_POSTINSTALL") || envEnabled("YAVER_SKIP_POSTINSTALL_BOOTSTRAP")) {
|
|
29
85
|
return;
|
|
@@ -39,6 +95,8 @@ async function main() {
|
|
|
39
95
|
return;
|
|
40
96
|
}
|
|
41
97
|
|
|
98
|
+
ensurePathOnUnix();
|
|
99
|
+
|
|
42
100
|
if (process.platform !== "linux" && process.platform !== "darwin") {
|
|
43
101
|
return;
|
|
44
102
|
}
|