@bobfrankston/npmglobalize 1.0.39 → 1.0.41
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/check-build.js +367 -2
- package/check-links.d.ts +3 -0
- package/check-links.js +203 -0
- package/package.json +3 -2
- package/set-npm-token.ps1 +0 -139
- package/set-npm-token.sh +0 -123
package/check-build.js
CHANGED
|
@@ -53,8 +53,8 @@ function isExcluded(relativePath, excludePatterns) {
|
|
|
53
53
|
function getTypeScriptFiles(tsconfig) {
|
|
54
54
|
const files = [];
|
|
55
55
|
const excludePatterns = tsconfig?.exclude || [];
|
|
56
|
-
// Always exclude node_modules and
|
|
57
|
-
const alwaysExclude = ['node_modules', '.git'];
|
|
56
|
+
// Always exclude node_modules, .git, and recover (sensitive credentials)
|
|
57
|
+
const alwaysExclude = ['node_modules', '.git', 'recover'];
|
|
58
58
|
const allExcludes = [...alwaysExclude, ...excludePatterns];
|
|
59
59
|
function scanDir(dir, relativePath = '') {
|
|
60
60
|
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
@@ -136,4 +136,369 @@ if (!checkBuildStatus()) {
|
|
|
136
136
|
//# sourceMappingURL=check-build.js.map
|
|
137
137
|
//# sourceMappingURL=check-build.js.map
|
|
138
138
|
//# sourceMappingURL=check-build.js.map
|
|
139
|
+
//# sourceMappingURL=check-build.js.map
|
|
140
|
+
//# sourceMappingURL=check-build.js.map
|
|
141
|
+
//# sourceMappingURL=check-build.js.map
|
|
142
|
+
//# sourceMappingURL=check-build.js.map
|
|
143
|
+
//# sourceMappingURL=check-build.js.map
|
|
144
|
+
//# sourceMappingURL=check-build.js.map
|
|
145
|
+
//# sourceMappingURL=check-build.js.map
|
|
146
|
+
//# sourceMappingURL=check-build.js.map
|
|
147
|
+
//# sourceMappingURL=check-build.js.map
|
|
148
|
+
//# sourceMappingURL=check-build.js.map
|
|
149
|
+
//# sourceMappingURL=check-build.js.map
|
|
150
|
+
//# sourceMappingURL=check-build.js.map
|
|
151
|
+
//# sourceMappingURL=check-build.js.map
|
|
152
|
+
//# sourceMappingURL=check-build.js.map
|
|
153
|
+
//# sourceMappingURL=check-build.js.map
|
|
154
|
+
//# sourceMappingURL=check-build.js.map
|
|
155
|
+
//# sourceMappingURL=check-build.js.map
|
|
156
|
+
//# sourceMappingURL=check-build.js.map
|
|
157
|
+
//# sourceMappingURL=check-build.js.map
|
|
158
|
+
//# sourceMappingURL=check-build.js.map
|
|
159
|
+
//# sourceMappingURL=check-build.js.map
|
|
160
|
+
//# sourceMappingURL=check-build.js.map
|
|
161
|
+
//# sourceMappingURL=check-build.js.map
|
|
162
|
+
//# sourceMappingURL=check-build.js.map
|
|
163
|
+
//# sourceMappingURL=check-build.js.map
|
|
164
|
+
//# sourceMappingURL=check-build.js.map
|
|
165
|
+
//# sourceMappingURL=check-build.js.map
|
|
166
|
+
//# sourceMappingURL=check-build.js.map
|
|
167
|
+
//# sourceMappingURL=check-build.js.map
|
|
168
|
+
//# sourceMappingURL=check-build.js.map
|
|
169
|
+
//# sourceMappingURL=check-build.js.map
|
|
170
|
+
//# sourceMappingURL=check-build.js.map
|
|
171
|
+
//# sourceMappingURL=check-build.js.map
|
|
172
|
+
//# sourceMappingURL=check-build.js.map
|
|
173
|
+
//# sourceMappingURL=check-build.js.map
|
|
174
|
+
//# sourceMappingURL=check-build.js.map
|
|
175
|
+
//# sourceMappingURL=check-build.js.map
|
|
176
|
+
//# sourceMappingURL=check-build.js.map
|
|
177
|
+
//# sourceMappingURL=check-build.js.map
|
|
178
|
+
//# sourceMappingURL=check-build.js.map
|
|
179
|
+
//# sourceMappingURL=check-build.js.map
|
|
180
|
+
//# sourceMappingURL=check-build.js.map
|
|
181
|
+
//# sourceMappingURL=check-build.js.map
|
|
182
|
+
//# sourceMappingURL=check-build.js.map
|
|
183
|
+
//# sourceMappingURL=check-build.js.map
|
|
184
|
+
//# sourceMappingURL=check-build.js.map
|
|
185
|
+
//# sourceMappingURL=check-build.js.map
|
|
186
|
+
//# sourceMappingURL=check-build.js.map
|
|
187
|
+
//# sourceMappingURL=check-build.js.map
|
|
188
|
+
//# sourceMappingURL=check-build.js.map
|
|
189
|
+
//# sourceMappingURL=check-build.js.map
|
|
190
|
+
//# sourceMappingURL=check-build.js.map
|
|
191
|
+
//# sourceMappingURL=check-build.js.map
|
|
192
|
+
//# sourceMappingURL=check-build.js.map
|
|
193
|
+
//# sourceMappingURL=check-build.js.map
|
|
194
|
+
//# sourceMappingURL=check-build.js.map
|
|
195
|
+
//# sourceMappingURL=check-build.js.map
|
|
196
|
+
//# sourceMappingURL=check-build.js.map
|
|
197
|
+
//# sourceMappingURL=check-build.js.map
|
|
198
|
+
//# sourceMappingURL=check-build.js.map
|
|
199
|
+
//# sourceMappingURL=check-build.js.map
|
|
200
|
+
//# sourceMappingURL=check-build.js.map
|
|
201
|
+
//# sourceMappingURL=check-build.js.map
|
|
202
|
+
//# sourceMappingURL=check-build.js.map
|
|
203
|
+
//# sourceMappingURL=check-build.js.map
|
|
204
|
+
//# sourceMappingURL=check-build.js.map
|
|
205
|
+
//# sourceMappingURL=check-build.js.map
|
|
206
|
+
//# sourceMappingURL=check-build.js.map
|
|
207
|
+
//# sourceMappingURL=check-build.js.map
|
|
208
|
+
//# sourceMappingURL=check-build.js.map
|
|
209
|
+
//# sourceMappingURL=check-build.js.map
|
|
210
|
+
//# sourceMappingURL=check-build.js.map
|
|
211
|
+
//# sourceMappingURL=check-build.js.map
|
|
212
|
+
//# sourceMappingURL=check-build.js.map
|
|
213
|
+
//# sourceMappingURL=check-build.js.map
|
|
214
|
+
//# sourceMappingURL=check-build.js.map
|
|
215
|
+
//# sourceMappingURL=check-build.js.map
|
|
216
|
+
//# sourceMappingURL=check-build.js.map
|
|
217
|
+
//# sourceMappingURL=check-build.js.map
|
|
218
|
+
//# sourceMappingURL=check-build.js.map
|
|
219
|
+
//# sourceMappingURL=check-build.js.map
|
|
220
|
+
//# sourceMappingURL=check-build.js.map
|
|
221
|
+
//# sourceMappingURL=check-build.js.map
|
|
222
|
+
//# sourceMappingURL=check-build.js.map
|
|
223
|
+
//# sourceMappingURL=check-build.js.map
|
|
224
|
+
//# sourceMappingURL=check-build.js.map
|
|
225
|
+
//# sourceMappingURL=check-build.js.map
|
|
226
|
+
//# sourceMappingURL=check-build.js.map
|
|
227
|
+
//# sourceMappingURL=check-build.js.map
|
|
228
|
+
//# sourceMappingURL=check-build.js.map
|
|
229
|
+
//# sourceMappingURL=check-build.js.map
|
|
230
|
+
//# sourceMappingURL=check-build.js.map
|
|
231
|
+
//# sourceMappingURL=check-build.js.map
|
|
232
|
+
//# sourceMappingURL=check-build.js.map
|
|
233
|
+
//# sourceMappingURL=check-build.js.map
|
|
234
|
+
//# sourceMappingURL=check-build.js.map
|
|
235
|
+
//# sourceMappingURL=check-build.js.map
|
|
236
|
+
//# sourceMappingURL=check-build.js.map
|
|
237
|
+
//# sourceMappingURL=check-build.js.map
|
|
238
|
+
//# sourceMappingURL=check-build.js.map
|
|
239
|
+
//# sourceMappingURL=check-build.js.map
|
|
240
|
+
//# sourceMappingURL=check-build.js.map
|
|
241
|
+
//# sourceMappingURL=check-build.js.map
|
|
242
|
+
//# sourceMappingURL=check-build.js.map
|
|
243
|
+
//# sourceMappingURL=check-build.js.map
|
|
244
|
+
//# sourceMappingURL=check-build.js.map
|
|
245
|
+
//# sourceMappingURL=check-build.js.map
|
|
246
|
+
//# sourceMappingURL=check-build.js.map
|
|
247
|
+
//# sourceMappingURL=check-build.js.map
|
|
248
|
+
//# sourceMappingURL=check-build.js.map
|
|
249
|
+
//# sourceMappingURL=check-build.js.map
|
|
250
|
+
//# sourceMappingURL=check-build.js.map
|
|
251
|
+
//# sourceMappingURL=check-build.js.map
|
|
252
|
+
//# sourceMappingURL=check-build.js.map
|
|
253
|
+
//# sourceMappingURL=check-build.js.map
|
|
254
|
+
//# sourceMappingURL=check-build.js.map
|
|
255
|
+
//# sourceMappingURL=check-build.js.map
|
|
256
|
+
//# sourceMappingURL=check-build.js.map
|
|
257
|
+
//# sourceMappingURL=check-build.js.map
|
|
258
|
+
//# sourceMappingURL=check-build.js.map
|
|
259
|
+
//# sourceMappingURL=check-build.js.map
|
|
260
|
+
//# sourceMappingURL=check-build.js.map
|
|
261
|
+
//# sourceMappingURL=check-build.js.map
|
|
262
|
+
//# sourceMappingURL=check-build.js.map
|
|
263
|
+
//# sourceMappingURL=check-build.js.map
|
|
264
|
+
//# sourceMappingURL=check-build.js.map
|
|
265
|
+
//# sourceMappingURL=check-build.js.map
|
|
266
|
+
//# sourceMappingURL=check-build.js.map
|
|
267
|
+
//# sourceMappingURL=check-build.js.map
|
|
268
|
+
//# sourceMappingURL=check-build.js.map
|
|
269
|
+
//# sourceMappingURL=check-build.js.map
|
|
270
|
+
//# sourceMappingURL=check-build.js.map
|
|
271
|
+
//# sourceMappingURL=check-build.js.map
|
|
272
|
+
//# sourceMappingURL=check-build.js.map
|
|
273
|
+
//# sourceMappingURL=check-build.js.map
|
|
274
|
+
//# sourceMappingURL=check-build.js.map
|
|
275
|
+
//# sourceMappingURL=check-build.js.map
|
|
276
|
+
//# sourceMappingURL=check-build.js.map
|
|
277
|
+
//# sourceMappingURL=check-build.js.map
|
|
278
|
+
//# sourceMappingURL=check-build.js.map
|
|
279
|
+
//# sourceMappingURL=check-build.js.map
|
|
280
|
+
//# sourceMappingURL=check-build.js.map
|
|
281
|
+
//# sourceMappingURL=check-build.js.map
|
|
282
|
+
//# sourceMappingURL=check-build.js.map
|
|
283
|
+
//# sourceMappingURL=check-build.js.map
|
|
284
|
+
//# sourceMappingURL=check-build.js.map
|
|
285
|
+
//# sourceMappingURL=check-build.js.map
|
|
286
|
+
//# sourceMappingURL=check-build.js.map
|
|
287
|
+
//# sourceMappingURL=check-build.js.map
|
|
288
|
+
//# sourceMappingURL=check-build.js.map
|
|
289
|
+
//# sourceMappingURL=check-build.js.map
|
|
290
|
+
//# sourceMappingURL=check-build.js.map
|
|
291
|
+
//# sourceMappingURL=check-build.js.map
|
|
292
|
+
//# sourceMappingURL=check-build.js.map
|
|
293
|
+
//# sourceMappingURL=check-build.js.map
|
|
294
|
+
//# sourceMappingURL=check-build.js.map
|
|
295
|
+
//# sourceMappingURL=check-build.js.map
|
|
296
|
+
//# sourceMappingURL=check-build.js.map
|
|
297
|
+
//# sourceMappingURL=check-build.js.map
|
|
298
|
+
//# sourceMappingURL=check-build.js.map
|
|
299
|
+
//# sourceMappingURL=check-build.js.map
|
|
300
|
+
//# sourceMappingURL=check-build.js.map
|
|
301
|
+
//# sourceMappingURL=check-build.js.map
|
|
302
|
+
//# sourceMappingURL=check-build.js.map
|
|
303
|
+
//# sourceMappingURL=check-build.js.map
|
|
304
|
+
//# sourceMappingURL=check-build.js.map
|
|
305
|
+
//# sourceMappingURL=check-build.js.map
|
|
306
|
+
//# sourceMappingURL=check-build.js.map
|
|
307
|
+
//# sourceMappingURL=check-build.js.map
|
|
308
|
+
//# sourceMappingURL=check-build.js.map
|
|
309
|
+
//# sourceMappingURL=check-build.js.map
|
|
310
|
+
//# sourceMappingURL=check-build.js.map
|
|
311
|
+
//# sourceMappingURL=check-build.js.map
|
|
312
|
+
//# sourceMappingURL=check-build.js.map
|
|
313
|
+
//# sourceMappingURL=check-build.js.map
|
|
314
|
+
//# sourceMappingURL=check-build.js.map
|
|
315
|
+
//# sourceMappingURL=check-build.js.map
|
|
316
|
+
//# sourceMappingURL=check-build.js.map
|
|
317
|
+
//# sourceMappingURL=check-build.js.map
|
|
318
|
+
//# sourceMappingURL=check-build.js.map
|
|
319
|
+
//# sourceMappingURL=check-build.js.map
|
|
320
|
+
//# sourceMappingURL=check-build.js.map
|
|
321
|
+
//# sourceMappingURL=check-build.js.map
|
|
322
|
+
//# sourceMappingURL=check-build.js.map
|
|
323
|
+
//# sourceMappingURL=check-build.js.map
|
|
324
|
+
//# sourceMappingURL=check-build.js.map
|
|
325
|
+
//# sourceMappingURL=check-build.js.map
|
|
326
|
+
//# sourceMappingURL=check-build.js.map
|
|
327
|
+
//# sourceMappingURL=check-build.js.map
|
|
328
|
+
//# sourceMappingURL=check-build.js.map
|
|
329
|
+
//# sourceMappingURL=check-build.js.map
|
|
330
|
+
//# sourceMappingURL=check-build.js.map
|
|
331
|
+
//# sourceMappingURL=check-build.js.map
|
|
332
|
+
//# sourceMappingURL=check-build.js.map
|
|
333
|
+
//# sourceMappingURL=check-build.js.map
|
|
334
|
+
//# sourceMappingURL=check-build.js.map
|
|
335
|
+
//# sourceMappingURL=check-build.js.map
|
|
336
|
+
//# sourceMappingURL=check-build.js.map
|
|
337
|
+
//# sourceMappingURL=check-build.js.map
|
|
338
|
+
//# sourceMappingURL=check-build.js.map
|
|
339
|
+
//# sourceMappingURL=check-build.js.map
|
|
340
|
+
//# sourceMappingURL=check-build.js.map
|
|
341
|
+
//# sourceMappingURL=check-build.js.map
|
|
342
|
+
//# sourceMappingURL=check-build.js.map
|
|
343
|
+
//# sourceMappingURL=check-build.js.map
|
|
344
|
+
//# sourceMappingURL=check-build.js.map
|
|
345
|
+
//# sourceMappingURL=check-build.js.map
|
|
346
|
+
//# sourceMappingURL=check-build.js.map
|
|
347
|
+
//# sourceMappingURL=check-build.js.map
|
|
348
|
+
//# sourceMappingURL=check-build.js.map
|
|
349
|
+
//# sourceMappingURL=check-build.js.map
|
|
350
|
+
//# sourceMappingURL=check-build.js.map
|
|
351
|
+
//# sourceMappingURL=check-build.js.map
|
|
352
|
+
//# sourceMappingURL=check-build.js.map
|
|
353
|
+
//# sourceMappingURL=check-build.js.map
|
|
354
|
+
//# sourceMappingURL=check-build.js.map
|
|
355
|
+
//# sourceMappingURL=check-build.js.map
|
|
356
|
+
//# sourceMappingURL=check-build.js.map
|
|
357
|
+
//# sourceMappingURL=check-build.js.map
|
|
358
|
+
//# sourceMappingURL=check-build.js.map
|
|
359
|
+
//# sourceMappingURL=check-build.js.map
|
|
360
|
+
//# sourceMappingURL=check-build.js.map
|
|
361
|
+
//# sourceMappingURL=check-build.js.map
|
|
362
|
+
//# sourceMappingURL=check-build.js.map
|
|
363
|
+
//# sourceMappingURL=check-build.js.map
|
|
364
|
+
//# sourceMappingURL=check-build.js.map
|
|
365
|
+
//# sourceMappingURL=check-build.js.map
|
|
366
|
+
//# sourceMappingURL=check-build.js.map
|
|
367
|
+
//# sourceMappingURL=check-build.js.map
|
|
368
|
+
//# sourceMappingURL=check-build.js.map
|
|
369
|
+
//# sourceMappingURL=check-build.js.map
|
|
370
|
+
//# sourceMappingURL=check-build.js.map
|
|
371
|
+
//# sourceMappingURL=check-build.js.map
|
|
372
|
+
//# sourceMappingURL=check-build.js.map
|
|
373
|
+
//# sourceMappingURL=check-build.js.map
|
|
374
|
+
//# sourceMappingURL=check-build.js.map
|
|
375
|
+
//# sourceMappingURL=check-build.js.map
|
|
376
|
+
//# sourceMappingURL=check-build.js.map
|
|
377
|
+
//# sourceMappingURL=check-build.js.map
|
|
378
|
+
//# sourceMappingURL=check-build.js.map
|
|
379
|
+
//# sourceMappingURL=check-build.js.map
|
|
380
|
+
//# sourceMappingURL=check-build.js.map
|
|
381
|
+
//# sourceMappingURL=check-build.js.map
|
|
382
|
+
//# sourceMappingURL=check-build.js.map
|
|
383
|
+
//# sourceMappingURL=check-build.js.map
|
|
384
|
+
//# sourceMappingURL=check-build.js.map
|
|
385
|
+
//# sourceMappingURL=check-build.js.map
|
|
386
|
+
//# sourceMappingURL=check-build.js.map
|
|
387
|
+
//# sourceMappingURL=check-build.js.map
|
|
388
|
+
//# sourceMappingURL=check-build.js.map
|
|
389
|
+
//# sourceMappingURL=check-build.js.map
|
|
390
|
+
//# sourceMappingURL=check-build.js.map
|
|
391
|
+
//# sourceMappingURL=check-build.js.map
|
|
392
|
+
//# sourceMappingURL=check-build.js.map
|
|
393
|
+
//# sourceMappingURL=check-build.js.map
|
|
394
|
+
//# sourceMappingURL=check-build.js.map
|
|
395
|
+
//# sourceMappingURL=check-build.js.map
|
|
396
|
+
//# sourceMappingURL=check-build.js.map
|
|
397
|
+
//# sourceMappingURL=check-build.js.map
|
|
398
|
+
//# sourceMappingURL=check-build.js.map
|
|
399
|
+
//# sourceMappingURL=check-build.js.map
|
|
400
|
+
//# sourceMappingURL=check-build.js.map
|
|
401
|
+
//# sourceMappingURL=check-build.js.map
|
|
402
|
+
//# sourceMappingURL=check-build.js.map
|
|
403
|
+
//# sourceMappingURL=check-build.js.map
|
|
404
|
+
//# sourceMappingURL=check-build.js.map
|
|
405
|
+
//# sourceMappingURL=check-build.js.map
|
|
406
|
+
//# sourceMappingURL=check-build.js.map
|
|
407
|
+
//# sourceMappingURL=check-build.js.map
|
|
408
|
+
//# sourceMappingURL=check-build.js.map
|
|
409
|
+
//# sourceMappingURL=check-build.js.map
|
|
410
|
+
//# sourceMappingURL=check-build.js.map
|
|
411
|
+
//# sourceMappingURL=check-build.js.map
|
|
412
|
+
//# sourceMappingURL=check-build.js.map
|
|
413
|
+
//# sourceMappingURL=check-build.js.map
|
|
414
|
+
//# sourceMappingURL=check-build.js.map
|
|
415
|
+
//# sourceMappingURL=check-build.js.map
|
|
416
|
+
//# sourceMappingURL=check-build.js.map
|
|
417
|
+
//# sourceMappingURL=check-build.js.map
|
|
418
|
+
//# sourceMappingURL=check-build.js.map
|
|
419
|
+
//# sourceMappingURL=check-build.js.map
|
|
420
|
+
//# sourceMappingURL=check-build.js.map
|
|
421
|
+
//# sourceMappingURL=check-build.js.map
|
|
422
|
+
//# sourceMappingURL=check-build.js.map
|
|
423
|
+
//# sourceMappingURL=check-build.js.map
|
|
424
|
+
//# sourceMappingURL=check-build.js.map
|
|
425
|
+
//# sourceMappingURL=check-build.js.map
|
|
426
|
+
//# sourceMappingURL=check-build.js.map
|
|
427
|
+
//# sourceMappingURL=check-build.js.map
|
|
428
|
+
//# sourceMappingURL=check-build.js.map
|
|
429
|
+
//# sourceMappingURL=check-build.js.map
|
|
430
|
+
//# sourceMappingURL=check-build.js.map
|
|
431
|
+
//# sourceMappingURL=check-build.js.map
|
|
432
|
+
//# sourceMappingURL=check-build.js.map
|
|
433
|
+
//# sourceMappingURL=check-build.js.map
|
|
434
|
+
//# sourceMappingURL=check-build.js.map
|
|
435
|
+
//# sourceMappingURL=check-build.js.map
|
|
436
|
+
//# sourceMappingURL=check-build.js.map
|
|
437
|
+
//# sourceMappingURL=check-build.js.map
|
|
438
|
+
//# sourceMappingURL=check-build.js.map
|
|
439
|
+
//# sourceMappingURL=check-build.js.map
|
|
440
|
+
//# sourceMappingURL=check-build.js.map
|
|
441
|
+
//# sourceMappingURL=check-build.js.map
|
|
442
|
+
//# sourceMappingURL=check-build.js.map
|
|
443
|
+
//# sourceMappingURL=check-build.js.map
|
|
444
|
+
//# sourceMappingURL=check-build.js.map
|
|
445
|
+
//# sourceMappingURL=check-build.js.map
|
|
446
|
+
//# sourceMappingURL=check-build.js.map
|
|
447
|
+
//# sourceMappingURL=check-build.js.map
|
|
448
|
+
//# sourceMappingURL=check-build.js.map
|
|
449
|
+
//# sourceMappingURL=check-build.js.map
|
|
450
|
+
//# sourceMappingURL=check-build.js.map
|
|
451
|
+
//# sourceMappingURL=check-build.js.map
|
|
452
|
+
//# sourceMappingURL=check-build.js.map
|
|
453
|
+
//# sourceMappingURL=check-build.js.map
|
|
454
|
+
//# sourceMappingURL=check-build.js.map
|
|
455
|
+
//# sourceMappingURL=check-build.js.map
|
|
456
|
+
//# sourceMappingURL=check-build.js.map
|
|
457
|
+
//# sourceMappingURL=check-build.js.map
|
|
458
|
+
//# sourceMappingURL=check-build.js.map
|
|
459
|
+
//# sourceMappingURL=check-build.js.map
|
|
460
|
+
//# sourceMappingURL=check-build.js.map
|
|
461
|
+
//# sourceMappingURL=check-build.js.map
|
|
462
|
+
//# sourceMappingURL=check-build.js.map
|
|
463
|
+
//# sourceMappingURL=check-build.js.map
|
|
464
|
+
//# sourceMappingURL=check-build.js.map
|
|
465
|
+
//# sourceMappingURL=check-build.js.map
|
|
466
|
+
//# sourceMappingURL=check-build.js.map
|
|
467
|
+
//# sourceMappingURL=check-build.js.map
|
|
468
|
+
//# sourceMappingURL=check-build.js.map
|
|
469
|
+
//# sourceMappingURL=check-build.js.map
|
|
470
|
+
//# sourceMappingURL=check-build.js.map
|
|
471
|
+
//# sourceMappingURL=check-build.js.map
|
|
472
|
+
//# sourceMappingURL=check-build.js.map
|
|
473
|
+
//# sourceMappingURL=check-build.js.map
|
|
474
|
+
//# sourceMappingURL=check-build.js.map
|
|
475
|
+
//# sourceMappingURL=check-build.js.map
|
|
476
|
+
//# sourceMappingURL=check-build.js.map
|
|
477
|
+
//# sourceMappingURL=check-build.js.map
|
|
478
|
+
//# sourceMappingURL=check-build.js.map
|
|
479
|
+
//# sourceMappingURL=check-build.js.map
|
|
480
|
+
//# sourceMappingURL=check-build.js.map
|
|
481
|
+
//# sourceMappingURL=check-build.js.map
|
|
482
|
+
//# sourceMappingURL=check-build.js.map
|
|
483
|
+
//# sourceMappingURL=check-build.js.map
|
|
484
|
+
//# sourceMappingURL=check-build.js.map
|
|
485
|
+
//# sourceMappingURL=check-build.js.map
|
|
486
|
+
//# sourceMappingURL=check-build.js.map
|
|
487
|
+
//# sourceMappingURL=check-build.js.map
|
|
488
|
+
//# sourceMappingURL=check-build.js.map
|
|
489
|
+
//# sourceMappingURL=check-build.js.map
|
|
490
|
+
//# sourceMappingURL=check-build.js.map
|
|
491
|
+
//# sourceMappingURL=check-build.js.map
|
|
492
|
+
//# sourceMappingURL=check-build.js.map
|
|
493
|
+
//# sourceMappingURL=check-build.js.map
|
|
494
|
+
//# sourceMappingURL=check-build.js.map
|
|
495
|
+
//# sourceMappingURL=check-build.js.map
|
|
496
|
+
//# sourceMappingURL=check-build.js.map
|
|
497
|
+
//# sourceMappingURL=check-build.js.map
|
|
498
|
+
//# sourceMappingURL=check-build.js.map
|
|
499
|
+
//# sourceMappingURL=check-build.js.map
|
|
500
|
+
//# sourceMappingURL=check-build.js.map
|
|
501
|
+
//# sourceMappingURL=check-build.js.map
|
|
502
|
+
//# sourceMappingURL=check-build.js.map
|
|
503
|
+
//# sourceMappingURL=check-build.js.map
|
|
139
504
|
//# sourceMappingURL=check-build.js.map
|
package/check-links.d.ts
ADDED
package/check-links.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Check for symbolic links and junctions in the project
|
|
4
|
+
* Prompts user to add them to .globalize.json5 exclude/include lists
|
|
5
|
+
* Prevents accidental exposure of linked directories
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import fs from 'fs';
|
|
9
|
+
import path from 'path';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
import JSON5 from 'json5';
|
|
12
|
+
import readline from 'readline';
|
|
13
|
+
|
|
14
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
15
|
+
|
|
16
|
+
// Create readline interface for prompts
|
|
17
|
+
const rl = readline.createInterface({
|
|
18
|
+
input: process.stdin,
|
|
19
|
+
output: process.stdout
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// Promisified question
|
|
23
|
+
function question(prompt) {
|
|
24
|
+
return new Promise((resolve) => {
|
|
25
|
+
rl.question(prompt, resolve);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Check if path is a symbolic link or junction
|
|
30
|
+
function isSymbolicLink(fullPath) {
|
|
31
|
+
try {
|
|
32
|
+
const stats = fs.lstatSync(fullPath);
|
|
33
|
+
return stats.isSymbolicLink();
|
|
34
|
+
} catch (error) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Read .globalize.json5 config
|
|
40
|
+
function readConfig() {
|
|
41
|
+
const configPath = path.join(__dirname, '.globalize.json5');
|
|
42
|
+
try {
|
|
43
|
+
if (fs.existsSync(configPath)) {
|
|
44
|
+
const content = fs.readFileSync(configPath, 'utf8');
|
|
45
|
+
return JSON5.parse(content);
|
|
46
|
+
}
|
|
47
|
+
} catch (error) {
|
|
48
|
+
console.warn('Warning: Could not read .globalize.json5');
|
|
49
|
+
}
|
|
50
|
+
return {};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Write .globalize.json5 config
|
|
54
|
+
function writeConfig(config) {
|
|
55
|
+
const configPath = path.join(__dirname, '.globalize.json5');
|
|
56
|
+
|
|
57
|
+
// Format nicely with comments
|
|
58
|
+
let output = '{\n';
|
|
59
|
+
|
|
60
|
+
if (config.exclude && config.exclude.length > 0) {
|
|
61
|
+
output += ' // Directories to exclude from processing\n';
|
|
62
|
+
output += ' exclude: [\n';
|
|
63
|
+
config.exclude.forEach((item, idx) => {
|
|
64
|
+
const comma = idx < config.exclude.length - 1 ? ',' : '';
|
|
65
|
+
output += ` "${item}"${comma}\n`;
|
|
66
|
+
});
|
|
67
|
+
output += ' ],\n';
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (config.include && config.include.length > 0) {
|
|
71
|
+
output += ' // Directories to explicitly include (overrides exclude)\n';
|
|
72
|
+
output += ' include: [\n';
|
|
73
|
+
config.include.forEach((item, idx) => {
|
|
74
|
+
const comma = idx < config.include.length - 1 ? ',' : '';
|
|
75
|
+
output += ` "${item}"${comma}\n`;
|
|
76
|
+
});
|
|
77
|
+
output += ' ],\n';
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Add other config properties
|
|
81
|
+
for (const [key, value] of Object.entries(config)) {
|
|
82
|
+
if (key !== 'exclude' && key !== 'include') {
|
|
83
|
+
output += ` ${key}: ${JSON.stringify(value)},\n`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
output = output.replace(/,\n$/, '\n'); // Remove trailing comma
|
|
88
|
+
output += '}\n';
|
|
89
|
+
|
|
90
|
+
fs.writeFileSync(configPath, output, 'utf8');
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Find all symbolic links/junctions
|
|
94
|
+
function findSymbolicLinks() {
|
|
95
|
+
const links = [];
|
|
96
|
+
const alwaysExclude = ['node_modules', '.git', 'recover'];
|
|
97
|
+
|
|
98
|
+
function scanDir(dir, relativePath = '') {
|
|
99
|
+
try {
|
|
100
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
101
|
+
|
|
102
|
+
for (const entry of entries) {
|
|
103
|
+
const fullPath = path.join(dir, entry.name);
|
|
104
|
+
const relPath = relativePath ? path.join(relativePath, entry.name) : entry.name;
|
|
105
|
+
|
|
106
|
+
// Skip always-excluded directories
|
|
107
|
+
if (alwaysExclude.includes(entry.name)) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Check if it's a symbolic link
|
|
112
|
+
if (isSymbolicLink(fullPath)) {
|
|
113
|
+
const target = fs.readlinkSync(fullPath);
|
|
114
|
+
links.push({
|
|
115
|
+
path: relPath,
|
|
116
|
+
fullPath: fullPath,
|
|
117
|
+
target: target,
|
|
118
|
+
isDirectory: entry.isDirectory()
|
|
119
|
+
});
|
|
120
|
+
} else if (entry.isDirectory()) {
|
|
121
|
+
scanDir(fullPath, relPath);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
} catch (error) {
|
|
125
|
+
// Skip directories we can't read
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
scanDir(__dirname);
|
|
130
|
+
return links;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Main function
|
|
134
|
+
async function main() {
|
|
135
|
+
console.log('🔍 Scanning for symbolic links and junctions...\n');
|
|
136
|
+
|
|
137
|
+
const links = findSymbolicLinks();
|
|
138
|
+
|
|
139
|
+
if (links.length === 0) {
|
|
140
|
+
console.log('✓ No symbolic links or junctions found');
|
|
141
|
+
rl.close();
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
console.log(`Found ${links.length} symbolic link(s):\n`);
|
|
146
|
+
|
|
147
|
+
const config = readConfig();
|
|
148
|
+
const exclude = new Set(config.exclude || []);
|
|
149
|
+
const include = new Set(config.include || []);
|
|
150
|
+
|
|
151
|
+
let modified = false;
|
|
152
|
+
|
|
153
|
+
for (const link of links) {
|
|
154
|
+
console.log(`\n📁 ${link.path}`);
|
|
155
|
+
console.log(` → Links to: ${link.target}`);
|
|
156
|
+
|
|
157
|
+
// Check if already configured
|
|
158
|
+
if (exclude.has(link.path)) {
|
|
159
|
+
console.log(` ✓ Already in exclude list`);
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
if (include.has(link.path)) {
|
|
163
|
+
console.log(` ✓ Already in include list`);
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Prompt user
|
|
168
|
+
const answer = await question(
|
|
169
|
+
' Action? (e)xclude, (i)nclude, (s)kip: '
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
if (answer.toLowerCase() === 'e') {
|
|
173
|
+
exclude.add(link.path);
|
|
174
|
+
console.log(` ✓ Added to exclude list`);
|
|
175
|
+
modified = true;
|
|
176
|
+
} else if (answer.toLowerCase() === 'i') {
|
|
177
|
+
include.add(link.path);
|
|
178
|
+
console.log(` ✓ Added to include list`);
|
|
179
|
+
modified = true;
|
|
180
|
+
} else {
|
|
181
|
+
console.log(` ⊘ Skipped`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (modified) {
|
|
186
|
+
config.exclude = Array.from(exclude).sort();
|
|
187
|
+
config.include = Array.from(include).sort();
|
|
188
|
+
|
|
189
|
+
writeConfig(config);
|
|
190
|
+
console.log('\n✓ Updated .globalize.json5');
|
|
191
|
+
} else {
|
|
192
|
+
console.log('\n⊘ No changes made');
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
rl.close();
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// Run the check
|
|
199
|
+
main().catch(error => {
|
|
200
|
+
console.error('Error:', error.message);
|
|
201
|
+
rl.close();
|
|
202
|
+
process.exit(1);
|
|
203
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bobfrankston/npmglobalize",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.41",
|
|
4
4
|
"description": "Transform file: dependencies to npm versions for publishing",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
"build": "tsc",
|
|
12
12
|
"watch": "tsc -w",
|
|
13
13
|
"prestart": "node check-build.js",
|
|
14
|
-
"check": "node check-build.js"
|
|
14
|
+
"check": "node check-build.js",
|
|
15
|
+
"check-links": "node check-links.js"
|
|
15
16
|
},
|
|
16
17
|
"keywords": [
|
|
17
18
|
"npm",
|
package/set-npm-token.ps1
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# Set npm token on Windows and WSL
|
|
2
|
-
# Usage: .\set-npm-token.ps1
|
|
3
|
-
# Reads token from token.env file
|
|
4
|
-
|
|
5
|
-
$tokenFile = Join-Path $PSScriptRoot "token.env"
|
|
6
|
-
|
|
7
|
-
if (-not (Test-Path $tokenFile)) {
|
|
8
|
-
Write-Host "ERROR: token.env file not found" -ForegroundColor Red
|
|
9
|
-
Write-Host ""
|
|
10
|
-
Write-Host "Create a token.env file with your npm token:" -ForegroundColor Yellow
|
|
11
|
-
Write-Host " NPM_TOKEN=npm_YOUR_TOKEN_HERE"
|
|
12
|
-
Write-Host ""
|
|
13
|
-
Write-Host "Get your token from: https://www.npmjs.com/settings/[username]/tokens" -ForegroundColor Cyan
|
|
14
|
-
Write-Host " 1. Click 'Generate New Token' -> 'Granular Access Token'"
|
|
15
|
-
Write-Host " 2. Set permissions: Read and write"
|
|
16
|
-
Write-Host " 3. Enable 'Bypass 2FA requirement'"
|
|
17
|
-
Write-Host ""
|
|
18
|
-
exit 1
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
# Read token from file
|
|
22
|
-
$tokenContent = Get-Content $tokenFile -Raw
|
|
23
|
-
if ($tokenContent -match 'NPM_TOKEN\s*=\s*(.+)') {
|
|
24
|
-
$Token = $matches[1].Trim()
|
|
25
|
-
} else {
|
|
26
|
-
Write-Host "ERROR: Could not find NPM_TOKEN in token.env" -ForegroundColor Red
|
|
27
|
-
Write-Host "Expected format: NPM_TOKEN=npm_YOUR_TOKEN_HERE" -ForegroundColor Yellow
|
|
28
|
-
exit 1
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (-not $Token.StartsWith("npm_")) {
|
|
32
|
-
Write-Host "WARNING: Token should start with 'npm_'" -ForegroundColor Yellow
|
|
33
|
-
Write-Host "Current token: $($Token.Substring(0, [Math]::Min(10, $Token.Length)))..." -ForegroundColor Yellow
|
|
34
|
-
Write-Host ""
|
|
35
|
-
$continue = Read-Host "Continue anyway? (y/N)"
|
|
36
|
-
if ($continue -ne "y" -and $continue -ne "Y") {
|
|
37
|
-
exit 1
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
Write-Host "Setting npm token on Windows..." -ForegroundColor Cyan
|
|
42
|
-
Write-Host ""
|
|
43
|
-
|
|
44
|
-
# Method 1: Set in Windows Registry (permanent, user-level)
|
|
45
|
-
Write-Host "Setting NPM_TOKEN in registry (permanent)..." -ForegroundColor Cyan
|
|
46
|
-
try {
|
|
47
|
-
# Using setx to set user environment variable permanently
|
|
48
|
-
$process = Start-Process -FilePath "setx" -ArgumentList "NPM_TOKEN", $Token -NoNewWindow -Wait -PassThru
|
|
49
|
-
if ($process.ExitCode -eq 0) {
|
|
50
|
-
Write-Host "✓ NPM_TOKEN set in registry via setx" -ForegroundColor Green
|
|
51
|
-
} else {
|
|
52
|
-
Write-Host "✗ setx failed with exit code $($process.ExitCode)" -ForegroundColor Red
|
|
53
|
-
}
|
|
54
|
-
} catch {
|
|
55
|
-
Write-Host "✗ Failed to set registry value: $_" -ForegroundColor Red
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
# Set in current session
|
|
59
|
-
$env:NPM_TOKEN = $Token
|
|
60
|
-
Write-Host "✓ NPM_TOKEN set for this PowerShell session" -ForegroundColor Green
|
|
61
|
-
Write-Host ""
|
|
62
|
-
|
|
63
|
-
# Method 2: Use npm config set (recommended by npm)
|
|
64
|
-
Write-Host "Setting auth token via npm config..." -ForegroundColor Cyan
|
|
65
|
-
try {
|
|
66
|
-
npm config set //registry.npmjs.org/:_authToken $Token 2>&1 | Out-Null
|
|
67
|
-
if ($LASTEXITCODE -eq 0) {
|
|
68
|
-
Write-Host "✓ Auth token set via 'npm config set'" -ForegroundColor Green
|
|
69
|
-
} else {
|
|
70
|
-
Write-Host "✗ npm config set failed" -ForegroundColor Red
|
|
71
|
-
}
|
|
72
|
-
} catch {
|
|
73
|
-
Write-Host "✗ npm config set failed: $_" -ForegroundColor Red
|
|
74
|
-
}
|
|
75
|
-
Write-Host ""
|
|
76
|
-
|
|
77
|
-
# Test Windows npm authentication
|
|
78
|
-
Write-Host "Testing Windows npm authentication..."
|
|
79
|
-
try {
|
|
80
|
-
$username = npm whoami 2>&1
|
|
81
|
-
if ($LASTEXITCODE -eq 0) {
|
|
82
|
-
Write-Host "✓ Windows authentication successful: $username" -ForegroundColor Green
|
|
83
|
-
} else {
|
|
84
|
-
Write-Host "✗ Windows authentication failed" -ForegroundColor Red
|
|
85
|
-
Write-Host "Error: $username" -ForegroundColor Red
|
|
86
|
-
}
|
|
87
|
-
} catch {
|
|
88
|
-
Write-Host "✗ Windows authentication failed: $_" -ForegroundColor Red
|
|
89
|
-
}
|
|
90
|
-
Write-Host ""
|
|
91
|
-
|
|
92
|
-
# Method 3: Set in WSL if available
|
|
93
|
-
if (Get-Command wsl -ErrorAction SilentlyContinue) {
|
|
94
|
-
Write-Host "Setting npm token in WSL..." -ForegroundColor Cyan
|
|
95
|
-
|
|
96
|
-
# Export token to WSL and use npm config set
|
|
97
|
-
$wslScript = @"
|
|
98
|
-
export NPM_TOKEN='$Token'
|
|
99
|
-
npm config set //registry.npmjs.org/:_authToken '$Token' 2>/dev/null
|
|
100
|
-
if [ \$? -eq 0 ]; then
|
|
101
|
-
echo '✓ WSL auth token set via npm config'
|
|
102
|
-
if command -v npm >/dev/null 2>&1; then
|
|
103
|
-
username=\$(npm whoami 2>&1)
|
|
104
|
-
if [ \$? -eq 0 ]; then
|
|
105
|
-
echo '✓ WSL authentication successful:' \$username
|
|
106
|
-
else
|
|
107
|
-
echo '✗ WSL authentication failed'
|
|
108
|
-
fi
|
|
109
|
-
fi
|
|
110
|
-
else
|
|
111
|
-
echo '⚠ npm not installed in WSL or npm config failed'
|
|
112
|
-
fi
|
|
113
|
-
"@
|
|
114
|
-
|
|
115
|
-
wsl bash -c $wslScript
|
|
116
|
-
Write-Host ""
|
|
117
|
-
} else {
|
|
118
|
-
Write-Host "WSL not found - skipping WSL setup" -ForegroundColor Yellow
|
|
119
|
-
Write-Host ""
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
Write-Host ""
|
|
123
|
-
Write-Host "=== Setup Complete ===" -ForegroundColor Green
|
|
124
|
-
Write-Host ""
|
|
125
|
-
Write-Host "Methods used:" -ForegroundColor Cyan
|
|
126
|
-
Write-Host " 1. setx NPM_TOKEN (permanent in Windows registry)" -ForegroundColor Yellow
|
|
127
|
-
Write-Host " 2. `$env:NPM_TOKEN (current PowerShell session)" -ForegroundColor Yellow
|
|
128
|
-
Write-Host " 3. npm config set (adds to .npmrc)" -ForegroundColor Yellow
|
|
129
|
-
Write-Host ""
|
|
130
|
-
Write-Host "Differences from manual approach:" -ForegroundColor Cyan
|
|
131
|
-
Write-Host " Your method: setx + set + npm set" -ForegroundColor Gray
|
|
132
|
-
Write-Host " This script: Same thing, automated + WSL support" -ForegroundColor Gray
|
|
133
|
-
Write-Host ""
|
|
134
|
-
Write-Host "To verify authentication:"
|
|
135
|
-
Write-Host " Windows: npm whoami" -ForegroundColor Green
|
|
136
|
-
Write-Host " WSL: wsl npm whoami" -ForegroundColor Green
|
|
137
|
-
Write-Host ""
|
|
138
|
-
Write-Host "Note: Close and reopen PowerShell for setx changes to take effect in new sessions" -ForegroundColor Yellow
|
|
139
|
-
Write-Host ""
|
package/set-npm-token.sh
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Set npm token on Linux/WSL
|
|
3
|
-
# Usage: ./set-npm-token.sh
|
|
4
|
-
# Reads token from token.env file
|
|
5
|
-
|
|
6
|
-
set -e # Exit on error
|
|
7
|
-
|
|
8
|
-
# Colors
|
|
9
|
-
RED='\033[0;31m'
|
|
10
|
-
GREEN='\033[0;32m'
|
|
11
|
-
YELLOW='\033[1;33m'
|
|
12
|
-
CYAN='\033[0;36m'
|
|
13
|
-
NC='\033[0m' # No Color
|
|
14
|
-
|
|
15
|
-
# Get script directory
|
|
16
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
17
|
-
TOKEN_FILE="$SCRIPT_DIR/token.env"
|
|
18
|
-
|
|
19
|
-
if [ ! -f "$TOKEN_FILE" ]; then
|
|
20
|
-
echo -e "${RED}ERROR: token.env file not found${NC}"
|
|
21
|
-
echo ""
|
|
22
|
-
echo -e "${YELLOW}Create a token.env file with your npm token:${NC}"
|
|
23
|
-
echo " NPM_TOKEN=npm_YOUR_TOKEN_HERE"
|
|
24
|
-
echo ""
|
|
25
|
-
echo -e "${CYAN}Get your token from: https://www.npmjs.com/settings/[username]/tokens${NC}"
|
|
26
|
-
echo " 1. Click 'Generate New Token' -> 'Granular Access Token'"
|
|
27
|
-
echo " 2. Set permissions: Read and write"
|
|
28
|
-
echo " 3. Enable 'Bypass 2FA requirement'"
|
|
29
|
-
echo ""
|
|
30
|
-
exit 1
|
|
31
|
-
fi
|
|
32
|
-
|
|
33
|
-
# Read token from file
|
|
34
|
-
if grep -q "NPM_TOKEN" "$TOKEN_FILE"; then
|
|
35
|
-
TOKEN=$(grep "NPM_TOKEN" "$TOKEN_FILE" | cut -d '=' -f 2- | tr -d ' \r\n')
|
|
36
|
-
else
|
|
37
|
-
echo -e "${RED}ERROR: Could not find NPM_TOKEN in token.env${NC}"
|
|
38
|
-
echo -e "${YELLOW}Expected format: NPM_TOKEN=npm_YOUR_TOKEN_HERE${NC}"
|
|
39
|
-
exit 1
|
|
40
|
-
fi
|
|
41
|
-
|
|
42
|
-
if [[ ! "$TOKEN" =~ ^npm_ ]]; then
|
|
43
|
-
echo -e "${YELLOW}WARNING: Token should start with 'npm_'${NC}"
|
|
44
|
-
echo -e "${YELLOW}Current token: ${TOKEN:0:10}...${NC}"
|
|
45
|
-
echo ""
|
|
46
|
-
read -p "Continue anyway? (y/N) " -n 1 -r
|
|
47
|
-
echo
|
|
48
|
-
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
49
|
-
exit 1
|
|
50
|
-
fi
|
|
51
|
-
fi
|
|
52
|
-
|
|
53
|
-
echo -e "${CYAN}Setting npm token on Linux/WSL...${NC}"
|
|
54
|
-
echo ""
|
|
55
|
-
|
|
56
|
-
# Method 1: Export for current session
|
|
57
|
-
export NPM_TOKEN="$TOKEN"
|
|
58
|
-
echo -e "${GREEN}✓ NPM_TOKEN set for this shell session${NC}"
|
|
59
|
-
|
|
60
|
-
# Method 2: Add to shell profile for persistence
|
|
61
|
-
SHELL_RC=""
|
|
62
|
-
if [ -n "$BASH_VERSION" ]; then
|
|
63
|
-
if [ -f "$HOME/.bashrc" ]; then
|
|
64
|
-
SHELL_RC="$HOME/.bashrc"
|
|
65
|
-
elif [ -f "$HOME/.bash_profile" ]; then
|
|
66
|
-
SHELL_RC="$HOME/.bash_profile"
|
|
67
|
-
fi
|
|
68
|
-
elif [ -n "$ZSH_VERSION" ]; then
|
|
69
|
-
SHELL_RC="$HOME/.zshrc"
|
|
70
|
-
fi
|
|
71
|
-
|
|
72
|
-
if [ -n "$SHELL_RC" ]; then
|
|
73
|
-
# Check if NPM_TOKEN is already in the file
|
|
74
|
-
if grep -q "^export NPM_TOKEN=" "$SHELL_RC"; then
|
|
75
|
-
# Update existing line
|
|
76
|
-
sed -i.bak "s|^export NPM_TOKEN=.*|export NPM_TOKEN=\"$TOKEN\"|" "$SHELL_RC"
|
|
77
|
-
echo -e "${GREEN}✓ Updated NPM_TOKEN in $SHELL_RC${NC}"
|
|
78
|
-
else
|
|
79
|
-
# Add new line
|
|
80
|
-
echo "" >> "$SHELL_RC"
|
|
81
|
-
echo "# npm authentication token (added by set-npm-token.sh)" >> "$SHELL_RC"
|
|
82
|
-
echo "export NPM_TOKEN=\"$TOKEN\"" >> "$SHELL_RC"
|
|
83
|
-
echo -e "${GREEN}✓ Added NPM_TOKEN to $SHELL_RC${NC}"
|
|
84
|
-
fi
|
|
85
|
-
fi
|
|
86
|
-
echo ""
|
|
87
|
-
|
|
88
|
-
# Method 3: Use npm config set (recommended)
|
|
89
|
-
echo -e "${CYAN}Setting auth token via npm config...${NC}"
|
|
90
|
-
if npm config set //registry.npmjs.org/:_authToken "$TOKEN" 2>/dev/null; then
|
|
91
|
-
echo -e "${GREEN}✓ Auth token set via 'npm config set'${NC}"
|
|
92
|
-
else
|
|
93
|
-
echo -e "${RED}✗ npm config set failed${NC}"
|
|
94
|
-
fi
|
|
95
|
-
echo ""
|
|
96
|
-
|
|
97
|
-
# Test authentication
|
|
98
|
-
echo -e "${CYAN}Testing npm authentication...${NC}"
|
|
99
|
-
if username=$(npm whoami 2>&1); then
|
|
100
|
-
echo -e "${GREEN}✓ Authentication successful: $username${NC}"
|
|
101
|
-
else
|
|
102
|
-
echo -e "${RED}✗ Authentication failed${NC}"
|
|
103
|
-
echo -e "${RED}$username${NC}"
|
|
104
|
-
fi
|
|
105
|
-
echo ""
|
|
106
|
-
|
|
107
|
-
echo ""
|
|
108
|
-
echo -e "${GREEN}=== Setup Complete ===${NC}"
|
|
109
|
-
echo ""
|
|
110
|
-
echo -e "${CYAN}Methods used:${NC}"
|
|
111
|
-
echo -e " ${YELLOW}1. export NPM_TOKEN (current shell session)${NC}"
|
|
112
|
-
if [ -n "$SHELL_RC" ]; then
|
|
113
|
-
echo -e " ${YELLOW}2. Added to $SHELL_RC (permanent)${NC}"
|
|
114
|
-
fi
|
|
115
|
-
echo -e " ${YELLOW}3. npm config set (adds to ~/.npmrc)${NC}"
|
|
116
|
-
echo ""
|
|
117
|
-
echo -e "${CYAN}To verify authentication:${NC}"
|
|
118
|
-
echo -e " ${GREEN}npm whoami${NC}"
|
|
119
|
-
echo ""
|
|
120
|
-
if [ -n "$SHELL_RC" ]; then
|
|
121
|
-
echo -e "${YELLOW}Note: Reopen terminal or run 'source $SHELL_RC' for permanent changes${NC}"
|
|
122
|
-
echo ""
|
|
123
|
-
fi
|