@form8ion/javascript 11.9.0 → 11.10.1
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/lib/index.js +74 -54
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +75 -55
- package/lib/index.mjs.map +1 -1
- package/package.json +24 -24
package/lib/index.js
CHANGED
|
@@ -378,10 +378,14 @@ run \`${buildDocumentationCommand(packageManager)}\` to inject the usage example
|
|
|
378
378
|
};
|
|
379
379
|
}
|
|
380
380
|
|
|
381
|
-
function
|
|
381
|
+
function determinePackageAccessLevelFromProjectVisibility ({projectVisibility}) {
|
|
382
|
+
return 'Public' === projectVisibility ? 'public' : 'restricted';
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
function defineBadges (packageName, accessLevel) {
|
|
382
386
|
return {
|
|
383
387
|
consumer: {
|
|
384
|
-
...'
|
|
388
|
+
...'public' === accessLevel && {
|
|
385
389
|
npm: {
|
|
386
390
|
img: `https://img.shields.io/npm/v/${packageName}?logo=npm`,
|
|
387
391
|
text: 'npm',
|
|
@@ -393,6 +397,55 @@ function defineBadges (packageName, visibility) {
|
|
|
393
397
|
};
|
|
394
398
|
}
|
|
395
399
|
|
|
400
|
+
function enhanceSlsa ({provenance}) {
|
|
401
|
+
if (provenance) {
|
|
402
|
+
return {
|
|
403
|
+
badges: {
|
|
404
|
+
status: {
|
|
405
|
+
slsa: {
|
|
406
|
+
img: 'https://slsa.dev/images/gh-badge-level2.svg',
|
|
407
|
+
url: 'https://slsa.dev',
|
|
408
|
+
text: 'SLSA Level 2'
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
return {};
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
async function liftProvenance ({projectRoot, packageDetails}) {
|
|
419
|
+
const {publishConfig: {access}} = packageDetails;
|
|
420
|
+
|
|
421
|
+
if ('public' === access) {
|
|
422
|
+
await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
|
|
423
|
+
|
|
424
|
+
return enhanceSlsa({provenance: true});
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
return {};
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
async function liftPublishable ({projectRoot, packageDetails}) {
|
|
431
|
+
const {name: packageName, publishConfig: {access: pacakgeAccessLevel}} = packageDetails;
|
|
432
|
+
|
|
433
|
+
return deepmerge__default["default"](
|
|
434
|
+
await liftProvenance({packageDetails, projectRoot}),
|
|
435
|
+
{
|
|
436
|
+
devDependencies: ['publint'],
|
|
437
|
+
scripts: {'lint:publish': 'publint --strict'},
|
|
438
|
+
badges: defineBadges(packageName, pacakgeAccessLevel)
|
|
439
|
+
}
|
|
440
|
+
);
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
async function scaffoldPublishable ({packageName, packageAccessLevel}) {
|
|
444
|
+
return {
|
|
445
|
+
badges: await defineBadges(packageName, packageAccessLevel)
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
|
|
396
449
|
async function chooseBundler ({bundlers, decisions}) {
|
|
397
450
|
if (!Object.keys(bundlers).length) return 'Other';
|
|
398
451
|
|
|
@@ -503,7 +556,8 @@ async function scaffoldPackageType ({
|
|
|
503
556
|
}) {
|
|
504
557
|
cliMessages.info('Scaffolding Package Details');
|
|
505
558
|
|
|
506
|
-
const
|
|
559
|
+
const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});
|
|
560
|
+
const [detailsForBuild, publishableResults] = await Promise.all([
|
|
507
561
|
buildDetails({
|
|
508
562
|
projectRoot,
|
|
509
563
|
projectName,
|
|
@@ -514,12 +568,13 @@ async function scaffoldPackageType ({
|
|
|
514
568
|
provideExample,
|
|
515
569
|
decisions
|
|
516
570
|
}),
|
|
571
|
+
scaffoldPublishable({packageName, packageAccessLevel}),
|
|
517
572
|
javascriptCore.mergeIntoExistingPackageJson({
|
|
518
573
|
projectRoot,
|
|
519
574
|
config: {
|
|
520
575
|
files: ['example.js', ...javascriptCore.dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/']],
|
|
521
576
|
publishConfig: {
|
|
522
|
-
access:
|
|
577
|
+
access: packageAccessLevel,
|
|
523
578
|
...publishRegistry && {registry: publishRegistry}
|
|
524
579
|
},
|
|
525
580
|
sideEffects: false,
|
|
@@ -552,55 +607,18 @@ async function scaffoldPackageType ({
|
|
|
552
607
|
]);
|
|
553
608
|
|
|
554
609
|
return deepmerge__default["default"].all([
|
|
610
|
+
publishableResults,
|
|
555
611
|
{
|
|
556
612
|
documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager, provideExample}),
|
|
557
613
|
nextSteps: [
|
|
558
614
|
{summary: 'Add the appropriate `save` flag to the installation instructions in the README'},
|
|
559
615
|
{summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}
|
|
560
|
-
]
|
|
561
|
-
badges: defineBadges(packageName, visibility)
|
|
616
|
+
]
|
|
562
617
|
},
|
|
563
618
|
detailsForBuild
|
|
564
619
|
]);
|
|
565
620
|
}
|
|
566
621
|
|
|
567
|
-
function enhanceSlsa ({provenance}) {
|
|
568
|
-
if (provenance) {
|
|
569
|
-
return {
|
|
570
|
-
badges: {
|
|
571
|
-
status: {
|
|
572
|
-
slsa: {
|
|
573
|
-
img: 'https://slsa.dev/images/gh-badge-level2.svg',
|
|
574
|
-
url: 'https://slsa.dev',
|
|
575
|
-
text: 'SLSA Level 2'
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
};
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
return {};
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
async function liftProvenance ({projectRoot, packageDetails}) {
|
|
586
|
-
const {publishConfig: {access}} = packageDetails;
|
|
587
|
-
|
|
588
|
-
if ('public' === access) {
|
|
589
|
-
await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
|
|
590
|
-
|
|
591
|
-
return enhanceSlsa({provenance: true});
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
return {};
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
async function liftPublishable ({projectRoot, packageDetails}) {
|
|
598
|
-
return deepmerge__default["default"](
|
|
599
|
-
await liftProvenance({packageDetails, projectRoot}),
|
|
600
|
-
{devDependencies: ['publint'], scripts: {'lint:publish': 'publint --strict'}}
|
|
601
|
-
);
|
|
602
|
-
}
|
|
603
|
-
|
|
604
622
|
function liftPackage$1 ({projectRoot, packageDetails}) {
|
|
605
623
|
return liftPublishable({projectRoot, packageDetails});
|
|
606
624
|
}
|
|
@@ -649,22 +667,25 @@ async function scaffoldMonorepoType ({projectRoot}) {
|
|
|
649
667
|
const defaultBuildDirectory = 'bin';
|
|
650
668
|
|
|
651
669
|
async function scaffoldCliType ({packageName, visibility, projectRoot, dialect, publishRegistry}) {
|
|
652
|
-
const
|
|
670
|
+
const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});
|
|
671
|
+
const [rollupResults, publishableResults] = await Promise.all([
|
|
653
672
|
rollup.scaffold({projectRoot, dialect, projectType: javascriptCore.projectTypes.CLI}),
|
|
673
|
+
scaffoldPublishable({packageName, packageAccessLevel}),
|
|
654
674
|
javascriptCore.mergeIntoExistingPackageJson({
|
|
655
675
|
projectRoot,
|
|
656
676
|
config: {
|
|
657
677
|
bin: {},
|
|
658
678
|
files: [`${defaultBuildDirectory}/`],
|
|
659
679
|
publishConfig: {
|
|
660
|
-
access:
|
|
680
|
+
access: packageAccessLevel,
|
|
661
681
|
...publishRegistry && {registry: publishRegistry}
|
|
662
682
|
}
|
|
663
683
|
}
|
|
664
684
|
})
|
|
665
685
|
]);
|
|
666
686
|
|
|
667
|
-
return deepmerge__default["default"](
|
|
687
|
+
return deepmerge__default["default"].all([
|
|
688
|
+
publishableResults,
|
|
668
689
|
rollupResults,
|
|
669
690
|
{
|
|
670
691
|
scripts: {
|
|
@@ -677,10 +698,9 @@ async function scaffoldCliType ({packageName, visibility, projectRoot, dialect,
|
|
|
677
698
|
devDependencies: ['rimraf'],
|
|
678
699
|
vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
|
|
679
700
|
buildDirectory: defaultBuildDirectory,
|
|
680
|
-
badges: defineBadges(packageName, visibility),
|
|
681
701
|
nextSteps: []
|
|
682
702
|
}
|
|
683
|
-
);
|
|
703
|
+
]);
|
|
684
704
|
}
|
|
685
705
|
|
|
686
706
|
async function isCli ({packageDetails: {bin}}) {
|
|
@@ -735,6 +755,10 @@ async function scaffoldProjectType ({
|
|
|
735
755
|
}
|
|
736
756
|
}
|
|
737
757
|
|
|
758
|
+
async function tester$1 ({projectRoot, packageDetails}) {
|
|
759
|
+
return await isPackage({projectRoot, packageDetails}) || isCli({projectRoot, packageDetails});
|
|
760
|
+
}
|
|
761
|
+
|
|
738
762
|
async function lifter$1 ({projectRoot, packageDetails}) {
|
|
739
763
|
if (await isPackage({projectRoot, packageDetails})) return liftPackage$1({projectRoot, packageDetails});
|
|
740
764
|
if (await isCli({projectRoot, packageDetails})) return liftCli({projectRoot, packageDetails});
|
|
@@ -742,15 +766,11 @@ async function lifter$1 ({projectRoot, packageDetails}) {
|
|
|
742
766
|
return {};
|
|
743
767
|
}
|
|
744
768
|
|
|
745
|
-
async function tester$1 ({projectRoot, packageDetails}) {
|
|
746
|
-
return await isPackage({projectRoot, packageDetails}) || isCli({projectRoot, packageDetails});
|
|
747
|
-
}
|
|
748
|
-
|
|
749
769
|
var projectTypes = /*#__PURE__*/Object.freeze({
|
|
750
770
|
__proto__: null,
|
|
751
771
|
scaffold: scaffoldProjectType,
|
|
752
|
-
|
|
753
|
-
|
|
772
|
+
test: tester$1,
|
|
773
|
+
lift: lifter$1
|
|
754
774
|
});
|
|
755
775
|
|
|
756
776
|
function write ({projectRoot, config}) {
|