@xemahq/xema 0.49.0 → 0.49.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.
|
@@ -2521,343 +2521,343 @@
|
|
|
2521
2521
|
},
|
|
2522
2522
|
{
|
|
2523
2523
|
"package": "@xemahq/xema",
|
|
2524
|
-
"version": "0.49.
|
|
2524
|
+
"version": "0.49.1",
|
|
2525
2525
|
"path": "edition/adapter-host-versions.mjs",
|
|
2526
2526
|
"sha256": "sha256:1b7ebd3592f4da1225fba74aaba912e7d85fbceeb1626f7dcdac83491cbb4d69"
|
|
2527
2527
|
},
|
|
2528
2528
|
{
|
|
2529
2529
|
"package": "@xemahq/xema",
|
|
2530
|
-
"version": "0.49.
|
|
2530
|
+
"version": "0.49.1",
|
|
2531
2531
|
"path": "edition/authorization-base.mjs",
|
|
2532
2532
|
"sha256": "sha256:bbeac7ff01376cb89ed2140526d4795d8e559b3f01612b404a701f19aaa24c6a"
|
|
2533
2533
|
},
|
|
2534
2534
|
{
|
|
2535
2535
|
"package": "@xemahq/xema",
|
|
2536
|
-
"version": "0.49.
|
|
2536
|
+
"version": "0.49.1",
|
|
2537
2537
|
"path": "edition/build-ledger.mjs",
|
|
2538
2538
|
"sha256": "sha256:05202cbdd606aee086c8e9c62d28be68c429653a8b1d73a289ed0fe4ff14da85"
|
|
2539
2539
|
},
|
|
2540
2540
|
{
|
|
2541
2541
|
"package": "@xemahq/xema",
|
|
2542
|
-
"version": "0.49.
|
|
2542
|
+
"version": "0.49.1",
|
|
2543
2543
|
"path": "edition/canonical-evidence-json.mjs",
|
|
2544
2544
|
"sha256": "sha256:3b32f6786c9fb1c0deadf2f687077356a503b0db766392d2e0254aa1ab78feec"
|
|
2545
2545
|
},
|
|
2546
2546
|
{
|
|
2547
2547
|
"package": "@xemahq/xema",
|
|
2548
|
-
"version": "0.49.
|
|
2548
|
+
"version": "0.49.1",
|
|
2549
2549
|
"path": "edition/canonical-repository-url.mjs",
|
|
2550
2550
|
"sha256": "sha256:f36e4f7cbe7849789422ec2f0ebce2d62f7dc3684afecc3ac51a32560e72d8a1"
|
|
2551
2551
|
},
|
|
2552
2552
|
{
|
|
2553
2553
|
"package": "@xemahq/xema",
|
|
2554
|
-
"version": "0.49.
|
|
2554
|
+
"version": "0.49.1",
|
|
2555
2555
|
"path": "edition/connector-source-authority.mjs",
|
|
2556
2556
|
"sha256": "sha256:ea94475f4324737673accd7de1303c44db1cbc4dac61a865a06cd83abe310164"
|
|
2557
2557
|
},
|
|
2558
2558
|
{
|
|
2559
2559
|
"package": "@xemahq/xema",
|
|
2560
|
-
"version": "0.49.
|
|
2560
|
+
"version": "0.49.1",
|
|
2561
2561
|
"path": "edition/cosign-certificate-constraints.mjs",
|
|
2562
2562
|
"sha256": "sha256:f8776e6095a477d3a6b510df572de804de73d2f5abf4a0fe9040a926dbe42d73"
|
|
2563
2563
|
},
|
|
2564
2564
|
{
|
|
2565
2565
|
"package": "@xemahq/xema",
|
|
2566
|
-
"version": "0.49.
|
|
2566
|
+
"version": "0.49.1",
|
|
2567
2567
|
"path": "edition/develop-graph.mjs",
|
|
2568
2568
|
"sha256": "sha256:319db77e708dd73a9dd4a81a963d86e52b030cad3346b104c0862af4e38a2237"
|
|
2569
2569
|
},
|
|
2570
2570
|
{
|
|
2571
2571
|
"package": "@xemahq/xema",
|
|
2572
|
-
"version": "0.49.
|
|
2572
|
+
"version": "0.49.1",
|
|
2573
2573
|
"path": "edition/dispatched-runtime-components.mjs",
|
|
2574
2574
|
"sha256": "sha256:9712823d183a60108cd002b2d36a9e5c0867b9d576dd02825264a18f7b8ece69"
|
|
2575
2575
|
},
|
|
2576
2576
|
{
|
|
2577
2577
|
"package": "@xemahq/xema",
|
|
2578
|
-
"version": "0.49.
|
|
2578
|
+
"version": "0.49.1",
|
|
2579
2579
|
"path": "edition/distribution-paths.mjs",
|
|
2580
2580
|
"sha256": "sha256:d78a5c8405bc6c25d36fcec61b0030e1fdacac7d528e698adb96f906f4b70279"
|
|
2581
2581
|
},
|
|
2582
2582
|
{
|
|
2583
2583
|
"package": "@xemahq/xema",
|
|
2584
|
-
"version": "0.49.
|
|
2584
|
+
"version": "0.49.1",
|
|
2585
2585
|
"path": "edition/edition-artifact.mjs",
|
|
2586
2586
|
"sha256": "sha256:4ca19b111d10252a067a6ee135338716ac5b509b56ba3ac475c05e9ea3c4a805"
|
|
2587
2587
|
},
|
|
2588
2588
|
{
|
|
2589
2589
|
"package": "@xemahq/xema",
|
|
2590
|
-
"version": "0.49.
|
|
2590
|
+
"version": "0.49.1",
|
|
2591
2591
|
"path": "edition/edition-channel.mjs",
|
|
2592
2592
|
"sha256": "sha256:3c0c1564dc50be133cad500452d953353aa5beb703142c05a17bbce8175ba9f3"
|
|
2593
2593
|
},
|
|
2594
2594
|
{
|
|
2595
2595
|
"package": "@xemahq/xema",
|
|
2596
|
-
"version": "0.49.
|
|
2596
|
+
"version": "0.49.1",
|
|
2597
2597
|
"path": "edition/edition-chart-set.mjs",
|
|
2598
2598
|
"sha256": "sha256:f9f16b58279c8c2619a39c5cc92bdbc334543d1a324304cd5d3b120d66dc8f3a"
|
|
2599
2599
|
},
|
|
2600
2600
|
{
|
|
2601
2601
|
"package": "@xemahq/xema",
|
|
2602
|
-
"version": "0.49.
|
|
2602
|
+
"version": "0.49.1",
|
|
2603
2603
|
"path": "edition/edition-config.mjs",
|
|
2604
2604
|
"sha256": "sha256:58af55e9a2b36ca23485246d44a295260afa240bcdc0649c697563b36085ddaa"
|
|
2605
2605
|
},
|
|
2606
2606
|
{
|
|
2607
2607
|
"package": "@xemahq/xema",
|
|
2608
|
-
"version": "0.49.
|
|
2608
|
+
"version": "0.49.1",
|
|
2609
2609
|
"path": "edition/edition-constants.mjs",
|
|
2610
2610
|
"sha256": "sha256:217fa5b1fa25cb50ee4e1b46ea5e086061ff1f44e00198e1dc28f52376f236a0"
|
|
2611
2611
|
},
|
|
2612
2612
|
{
|
|
2613
2613
|
"package": "@xemahq/xema",
|
|
2614
|
-
"version": "0.49.
|
|
2614
|
+
"version": "0.49.1",
|
|
2615
2615
|
"path": "edition/edition-contract-parse.mjs",
|
|
2616
2616
|
"sha256": "sha256:e2c6e66378f878499f44b62d060ae50197f40757b2044d9ce05290e367dfe21d"
|
|
2617
2617
|
},
|
|
2618
2618
|
{
|
|
2619
2619
|
"package": "@xemahq/xema",
|
|
2620
|
-
"version": "0.49.
|
|
2620
|
+
"version": "0.49.1",
|
|
2621
2621
|
"path": "edition/edition-contract.json",
|
|
2622
2622
|
"sha256": "sha256:566a17301ad15b94a06fef12b26bbe39e292ed2bf30a2659a9bf07ce5ce487e0"
|
|
2623
2623
|
},
|
|
2624
2624
|
{
|
|
2625
2625
|
"package": "@xemahq/xema",
|
|
2626
|
-
"version": "0.49.
|
|
2626
|
+
"version": "0.49.1",
|
|
2627
2627
|
"path": "edition/edition-kind.mjs",
|
|
2628
2628
|
"sha256": "sha256:b4f3358ffa81bbafb8c37d158b9e01032a7358c38b9d6e5aca409091f989e47a"
|
|
2629
2629
|
},
|
|
2630
2630
|
{
|
|
2631
2631
|
"package": "@xemahq/xema",
|
|
2632
|
-
"version": "0.49.
|
|
2632
|
+
"version": "0.49.1",
|
|
2633
2633
|
"path": "edition/edition-protocol.mjs",
|
|
2634
2634
|
"sha256": "sha256:4122dfb12c0f5e9fb44c96a277f8c2a308823095f0e4bed357189f7538230eb9"
|
|
2635
2635
|
},
|
|
2636
2636
|
{
|
|
2637
2637
|
"package": "@xemahq/xema",
|
|
2638
|
-
"version": "0.49.
|
|
2638
|
+
"version": "0.49.1",
|
|
2639
2639
|
"path": "edition/edition-publisher.mjs",
|
|
2640
2640
|
"sha256": "sha256:8803b41067d81acbc35a8974426f606b5b8168b7a9c2581c16586a86f36db50f"
|
|
2641
2641
|
},
|
|
2642
2642
|
{
|
|
2643
2643
|
"package": "@xemahq/xema",
|
|
2644
|
-
"version": "0.49.
|
|
2644
|
+
"version": "0.49.1",
|
|
2645
2645
|
"path": "edition/edition-source-pins.mjs",
|
|
2646
2646
|
"sha256": "sha256:b141474fff33b06734fb62cd2552752b991c8267bb1c9bccb22a81dd80e91c6c"
|
|
2647
2647
|
},
|
|
2648
2648
|
{
|
|
2649
2649
|
"package": "@xemahq/xema",
|
|
2650
|
-
"version": "0.49.
|
|
2650
|
+
"version": "0.49.1",
|
|
2651
2651
|
"path": "edition/edition-workspace.mjs",
|
|
2652
2652
|
"sha256": "sha256:892b360f9f80d2308b0b12f9b99658ae06173878d9b71cf5d6fc8bd717b3c86e"
|
|
2653
2653
|
},
|
|
2654
2654
|
{
|
|
2655
2655
|
"package": "@xemahq/xema",
|
|
2656
|
-
"version": "0.49.
|
|
2656
|
+
"version": "0.49.1",
|
|
2657
2657
|
"path": "edition/evidence-checkout.mjs",
|
|
2658
2658
|
"sha256": "sha256:31fb669769b31de4c6f2b2501bb96959548172ef166e7568edbbfed7f5079a11"
|
|
2659
2659
|
},
|
|
2660
2660
|
{
|
|
2661
2661
|
"package": "@xemahq/xema",
|
|
2662
|
-
"version": "0.49.
|
|
2662
|
+
"version": "0.49.1",
|
|
2663
2663
|
"path": "edition/evidence-grammars.mjs",
|
|
2664
2664
|
"sha256": "sha256:4bea69437af5a36c139b5b41d0ecf2d1ddcf3f871e10c78e3d351f608eedca3b"
|
|
2665
2665
|
},
|
|
2666
2666
|
{
|
|
2667
2667
|
"package": "@xemahq/xema",
|
|
2668
|
-
"version": "0.49.
|
|
2668
|
+
"version": "0.49.1",
|
|
2669
2669
|
"path": "edition/evidence-trust-pin.mjs",
|
|
2670
2670
|
"sha256": "sha256:eb46e4d6a79dfac5536b7a439ab9df7dd4b03af369bdcfa9fcdd522aa1aab8dd"
|
|
2671
2671
|
},
|
|
2672
2672
|
{
|
|
2673
2673
|
"package": "@xemahq/xema",
|
|
2674
|
-
"version": "0.49.
|
|
2674
|
+
"version": "0.49.1",
|
|
2675
2675
|
"path": "edition/first-party-source-ids.mjs",
|
|
2676
2676
|
"sha256": "sha256:20cb1ad7cfb8c6e6686a6be5a51289da4bba76c20b58d9c1b5b6b3813a38dc1c"
|
|
2677
2677
|
},
|
|
2678
2678
|
{
|
|
2679
2679
|
"package": "@xemahq/xema",
|
|
2680
|
-
"version": "0.49.
|
|
2680
|
+
"version": "0.49.1",
|
|
2681
2681
|
"path": "edition/fulcio-certificate-extensions.mjs",
|
|
2682
2682
|
"sha256": "sha256:6f1f5a8ea110a489f7aff4bfb8e0b2d058919fe3e8ba4a1e5e8396fca24861b7"
|
|
2683
2683
|
},
|
|
2684
2684
|
{
|
|
2685
2685
|
"package": "@xemahq/xema",
|
|
2686
|
-
"version": "0.49.
|
|
2686
|
+
"version": "0.49.1",
|
|
2687
2687
|
"path": "edition/git-json.mjs",
|
|
2688
2688
|
"sha256": "sha256:d0d25cda0c19007becabc9a2827c3dcf759b295cd0b41596eb4480c9549a1f21"
|
|
2689
2689
|
},
|
|
2690
2690
|
{
|
|
2691
2691
|
"package": "@xemahq/xema",
|
|
2692
|
-
"version": "0.49.
|
|
2692
|
+
"version": "0.49.1",
|
|
2693
2693
|
"path": "edition/git-source-auth.mjs",
|
|
2694
2694
|
"sha256": "sha256:c1b32aa6f7d59798db58238d632cafeadbd4f07376396a31acdeb5f0ac56dcac"
|
|
2695
2695
|
},
|
|
2696
2696
|
{
|
|
2697
2697
|
"package": "@xemahq/xema",
|
|
2698
|
-
"version": "0.49.
|
|
2698
|
+
"version": "0.49.1",
|
|
2699
2699
|
"path": "edition/image-delivery-entitlement-descriptor.mjs",
|
|
2700
2700
|
"sha256": "sha256:4726b66116f01bf2523fafe2b7a356591eca8fb5ca6bd8b154dd4821873e921b"
|
|
2701
2701
|
},
|
|
2702
2702
|
{
|
|
2703
2703
|
"package": "@xemahq/xema",
|
|
2704
|
-
"version": "0.49.
|
|
2704
|
+
"version": "0.49.1",
|
|
2705
2705
|
"path": "edition/image-evidence-replay-state.mjs",
|
|
2706
2706
|
"sha256": "sha256:eba0cf1d38af0ab2f00c5099fa8bc2edc543136ce92f895544d4d284b3d6af0f"
|
|
2707
2707
|
},
|
|
2708
2708
|
{
|
|
2709
2709
|
"package": "@xemahq/xema",
|
|
2710
|
-
"version": "0.49.
|
|
2710
|
+
"version": "0.49.1",
|
|
2711
2711
|
"path": "edition/image-evidence.mjs",
|
|
2712
2712
|
"sha256": "sha256:6902845b5a015c6576b787fe9b443bb2876e65bcadbad5b62ef724a373b9be00"
|
|
2713
2713
|
},
|
|
2714
2714
|
{
|
|
2715
2715
|
"package": "@xemahq/xema",
|
|
2716
|
-
"version": "0.49.
|
|
2716
|
+
"version": "0.49.1",
|
|
2717
2717
|
"path": "edition/kernel-capability-domain.mjs",
|
|
2718
2718
|
"sha256": "sha256:3ecf887dd8d399e91a8285f6f115f6e418fb59bbf3f004539fe65ec667219356"
|
|
2719
2719
|
},
|
|
2720
2720
|
{
|
|
2721
2721
|
"package": "@xemahq/xema",
|
|
2722
|
-
"version": "0.49.
|
|
2722
|
+
"version": "0.49.1",
|
|
2723
2723
|
"path": "edition/kernel-contract-authority.mjs",
|
|
2724
2724
|
"sha256": "sha256:cf0326f29b6488438497c40665feffa68b470f493cf69a2f3fb5dea9624c40d4"
|
|
2725
2725
|
},
|
|
2726
2726
|
{
|
|
2727
2727
|
"package": "@xemahq/xema",
|
|
2728
|
-
"version": "0.49.
|
|
2728
|
+
"version": "0.49.1",
|
|
2729
2729
|
"path": "edition/kernel-contract-source-path-set.mjs",
|
|
2730
2730
|
"sha256": "sha256:bc4756f217d80fd8f802932f47da71ab14e782873fa9fa977002a94e058d8a9e"
|
|
2731
2731
|
},
|
|
2732
2732
|
{
|
|
2733
2733
|
"package": "@xemahq/xema",
|
|
2734
|
-
"version": "0.49.
|
|
2734
|
+
"version": "0.49.1",
|
|
2735
2735
|
"path": "edition/kernel-package.mjs",
|
|
2736
2736
|
"sha256": "sha256:b468039179d89b0251abcdbb3020c6dcadb86a675c398a3cbb4cbca53c59830e"
|
|
2737
2737
|
},
|
|
2738
2738
|
{
|
|
2739
2739
|
"package": "@xemahq/xema",
|
|
2740
|
-
"version": "0.49.
|
|
2740
|
+
"version": "0.49.1",
|
|
2741
2741
|
"path": "edition/lib.mjs",
|
|
2742
2742
|
"sha256": "sha256:89b6ed1883198fc0b6eff89d9797292d80e307ad983fad559a27edde8c6c644f"
|
|
2743
2743
|
},
|
|
2744
2744
|
{
|
|
2745
2745
|
"package": "@xemahq/xema",
|
|
2746
|
-
"version": "0.49.
|
|
2746
|
+
"version": "0.49.1",
|
|
2747
2747
|
"path": "edition/no-follow-file.mjs",
|
|
2748
2748
|
"sha256": "sha256:c17bdf5e441f3c079aa06d4b48bbed05cad087855b9ad2a5e6dc43d5ee2b17c3"
|
|
2749
2749
|
},
|
|
2750
2750
|
{
|
|
2751
2751
|
"package": "@xemahq/xema",
|
|
2752
|
-
"version": "0.49.
|
|
2752
|
+
"version": "0.49.1",
|
|
2753
2753
|
"path": "edition/operation-requirements.mjs",
|
|
2754
2754
|
"sha256": "sha256:82c0fadc5b10c6f60a1258ad685aeb33e58a53c14f83d4b6d468ac71a5e4e7b4"
|
|
2755
2755
|
},
|
|
2756
2756
|
{
|
|
2757
2757
|
"package": "@xemahq/xema",
|
|
2758
|
-
"version": "0.49.
|
|
2758
|
+
"version": "0.49.1",
|
|
2759
2759
|
"path": "edition/pin-source.mjs",
|
|
2760
2760
|
"sha256": "sha256:32fa918729a83587b4d3bca6e5fe381f5a525397ebc49d52729ec1f8cf216c37"
|
|
2761
2761
|
},
|
|
2762
2762
|
{
|
|
2763
2763
|
"package": "@xemahq/xema",
|
|
2764
|
-
"version": "0.49.
|
|
2764
|
+
"version": "0.49.1",
|
|
2765
2765
|
"path": "edition/sigstore-bundle-media-type.mjs",
|
|
2766
2766
|
"sha256": "sha256:e0aa5a3992f0385ddbbe69eb0307d642ac428ef516c8394816ac4fd52e0ac39c"
|
|
2767
2767
|
},
|
|
2768
2768
|
{
|
|
2769
2769
|
"package": "@xemahq/xema",
|
|
2770
|
-
"version": "0.49.
|
|
2770
|
+
"version": "0.49.1",
|
|
2771
2771
|
"path": "edition/source-authority.mjs",
|
|
2772
2772
|
"sha256": "sha256:9c351f60e8ea838f445f89c3709c60b7f13b021b78d6e40eaef91350a793f0ff"
|
|
2773
2773
|
},
|
|
2774
2774
|
{
|
|
2775
2775
|
"package": "@xemahq/xema",
|
|
2776
|
-
"version": "0.49.
|
|
2776
|
+
"version": "0.49.1",
|
|
2777
2777
|
"path": "edition/strict-json.mjs",
|
|
2778
2778
|
"sha256": "sha256:f95778396df7f38b086f55d2ec4f3b6644a8aeff2b32282a62829145fb544562"
|
|
2779
2779
|
},
|
|
2780
2780
|
{
|
|
2781
2781
|
"package": "@xemahq/xema",
|
|
2782
|
-
"version": "0.49.
|
|
2782
|
+
"version": "0.49.1",
|
|
2783
2783
|
"path": "edition/string-order.mjs",
|
|
2784
2784
|
"sha256": "sha256:b3210cd273e4b2e01fb8b1a91e28734cd211d4010c080d0ce95f5e5ff631cffb"
|
|
2785
2785
|
},
|
|
2786
2786
|
{
|
|
2787
2787
|
"package": "@xemahq/xema",
|
|
2788
|
-
"version": "0.49.
|
|
2788
|
+
"version": "0.49.1",
|
|
2789
2789
|
"path": "edition/third-party-admission.mjs",
|
|
2790
2790
|
"sha256": "sha256:7e32f631a8948e2b93a5cfa163390d52d2a8d9ade87a637c7fe1fc6351fe5974"
|
|
2791
2791
|
},
|
|
2792
2792
|
{
|
|
2793
2793
|
"package": "@xemahq/xema",
|
|
2794
|
-
"version": "0.49.
|
|
2794
|
+
"version": "0.49.1",
|
|
2795
2795
|
"path": "edition/third-party-certificate-extensions.mjs",
|
|
2796
2796
|
"sha256": "sha256:3293267b09452199f605001d8c14070d1c822b77390caee4088e17b059b7b05d"
|
|
2797
2797
|
},
|
|
2798
2798
|
{
|
|
2799
2799
|
"package": "@xemahq/xema",
|
|
2800
|
-
"version": "0.49.
|
|
2800
|
+
"version": "0.49.1",
|
|
2801
2801
|
"path": "edition/third-party-source-pins.mjs",
|
|
2802
2802
|
"sha256": "sha256:6f12feb9061bd4ea3e5aeab3f369c081ab58da335c0d281e21b250251e1c0dd9"
|
|
2803
2803
|
},
|
|
2804
2804
|
{
|
|
2805
2805
|
"package": "@xemahq/xema",
|
|
2806
|
-
"version": "0.49.
|
|
2806
|
+
"version": "0.49.1",
|
|
2807
2807
|
"path": "edition/trust-policy-arming.mjs",
|
|
2808
2808
|
"sha256": "sha256:6f6f192118407e71a744087caea988bcf3d33aca9803217bceb8134d7e2b9120"
|
|
2809
2809
|
},
|
|
2810
2810
|
{
|
|
2811
2811
|
"package": "@xemahq/xema",
|
|
2812
|
-
"version": "0.49.
|
|
2812
|
+
"version": "0.49.1",
|
|
2813
2813
|
"path": "edition/trust-policy-image-ownership.mjs",
|
|
2814
2814
|
"sha256": "sha256:be0c787c6a75124f0143fc0ce3b127a94e3bb7f6aa64e282c91dd84e566e550e"
|
|
2815
2815
|
},
|
|
2816
2816
|
{
|
|
2817
2817
|
"package": "@xemahq/xema",
|
|
2818
|
-
"version": "0.49.
|
|
2818
|
+
"version": "0.49.1",
|
|
2819
2819
|
"path": "edition/trusted-executable.mjs",
|
|
2820
2820
|
"sha256": "sha256:37d46cdbc999ddd55d4ea8aeed4850ddd1efde89ed7b532f5a2ddec87105d796"
|
|
2821
2821
|
},
|
|
2822
2822
|
{
|
|
2823
2823
|
"package": "@xemahq/xema",
|
|
2824
|
-
"version": "0.49.
|
|
2824
|
+
"version": "0.49.1",
|
|
2825
2825
|
"path": "edition/verifier-binding.mjs",
|
|
2826
2826
|
"sha256": "sha256:80732658617f5255258c538eeb2383331ec8553b44b58d552b567845a7b916aa"
|
|
2827
2827
|
},
|
|
2828
2828
|
{
|
|
2829
2829
|
"package": "@xemahq/xema",
|
|
2830
|
-
"version": "0.49.
|
|
2830
|
+
"version": "0.49.1",
|
|
2831
2831
|
"path": "edition/verifier-files.mjs",
|
|
2832
2832
|
"sha256": "sha256:cdd14a20a63f0f194a8abb55680a5a7e3ced1f09f8b210a90d349e655f6de0c0"
|
|
2833
2833
|
},
|
|
2834
2834
|
{
|
|
2835
2835
|
"package": "@xemahq/xema",
|
|
2836
|
-
"version": "0.49.
|
|
2836
|
+
"version": "0.49.1",
|
|
2837
2837
|
"path": "edition/verifier-provenance.mjs",
|
|
2838
2838
|
"sha256": "sha256:3e2fb8e07cf1f66b8ad6c7ac2555fe3af64ec7abeb07cecbaf1939a18c2b3663"
|
|
2839
2839
|
},
|
|
2840
2840
|
{
|
|
2841
2841
|
"package": "@xemahq/xema",
|
|
2842
|
-
"version": "0.49.
|
|
2842
|
+
"version": "0.49.1",
|
|
2843
2843
|
"path": "edition/verify-catalogue-evidence.mjs",
|
|
2844
2844
|
"sha256": "sha256:156d0ee39210658ec489609629c5b9cddd3ce5b3938d8980dcf8282ae4be60bb"
|
|
2845
2845
|
},
|
|
2846
2846
|
{
|
|
2847
2847
|
"package": "@xemahq/xema",
|
|
2848
|
-
"version": "0.49.
|
|
2848
|
+
"version": "0.49.1",
|
|
2849
2849
|
"path": "edition/verify-image-evidence.mjs",
|
|
2850
2850
|
"sha256": "sha256:958360f7889985c48abb048852c5bbba349cd7353ce4b532c4511b4902380fac"
|
|
2851
2851
|
},
|
|
2852
2852
|
{
|
|
2853
2853
|
"package": "@xemahq/xema",
|
|
2854
|
-
"version": "0.49.
|
|
2854
|
+
"version": "0.49.1",
|
|
2855
2855
|
"path": "edition/workspace-sections.mjs",
|
|
2856
2856
|
"sha256": "sha256:18c28e9fa2a6b7d8589c8434fc6ed9f1e93954d41339813e711ed0fbbcf5c61d"
|
|
2857
2857
|
},
|
|
2858
2858
|
{
|
|
2859
2859
|
"package": "@xemahq/xema",
|
|
2860
|
-
"version": "0.49.
|
|
2860
|
+
"version": "0.49.1",
|
|
2861
2861
|
"path": "scripts/build-evidence-verifier.mjs",
|
|
2862
2862
|
"sha256": "sha256:5a688d20c47dc88aff37aa0c6cc02daf2c370a5bc610fef8446ce7be222d4c0b"
|
|
2863
2863
|
},
|
package/edition/dist-check.mjs
CHANGED
|
@@ -64,7 +64,7 @@ import {
|
|
|
64
64
|
validateServiceDependencyOwnerParity,
|
|
65
65
|
} from './lib.mjs';
|
|
66
66
|
import { commandFor } from './remedy-command.mjs';
|
|
67
|
-
import { resolveDistributionWithIndex } from './resolve-distribution.mjs';
|
|
67
|
+
import { assertReleaseGitSourcesDeclareNoBundle, resolveDistributionWithIndex } from './resolve-distribution.mjs';
|
|
68
68
|
import {
|
|
69
69
|
resolveDistributionDeclaredSources,
|
|
70
70
|
resolveDistributionRequiredPlatforms,
|
|
@@ -160,6 +160,7 @@ export async function checkDistributionLock(id) {
|
|
|
160
160
|
const lockPath = join(editionsRoot(), id, 'distribution.lock.json');
|
|
161
161
|
try {
|
|
162
162
|
const { lock: fresh, index } = await resolveDistributionWithIndex(id);
|
|
163
|
+
assertReleaseGitSourcesDeclareNoBundle(fresh, index);
|
|
163
164
|
const verdict = await compareCommittedLock(lockPath, fresh);
|
|
164
165
|
if (verdict === LockCheck.MISSING) {
|
|
165
166
|
console.error(
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
// Every `bundleSource: {kind: 'oci'}` row of a lock (a biome's, or one of its host modules') states WHO signs its bundle:
|
|
4
4
|
// `bundleSigner: {policyId, signer}`, the kernel's `lockedBundleSignerOf` projection of ONE row of the data root's evidence
|
|
5
5
|
// trust policy. The row is selected, never defaulted:
|
|
6
|
-
// - a
|
|
6
|
+
// - a git-sourced row (one with a lock `source`) carries no OCI bundle at all, and a lock stating one is refused;
|
|
7
|
+
// - a third-party row (no `source`, `isThirdPartyOciRow`) by its pin (`third-party-source-pins.json`), whose `bundle.signerPolicyId` names an
|
|
7
8
|
// `oidc-certificate` row held to the checks `thirdPartySignerRow` makes;
|
|
8
9
|
// - a first-party row by the data root's `firstPartyBundleSigner.policyId`, a `public-key` row whose key is bound to
|
|
9
10
|
// no other row.
|
|
@@ -20,7 +21,7 @@ import { dataRoot, kernelDistPath, kernelPackageDir } from './edition-workspace.
|
|
|
20
21
|
import { loadPinnedDeclaredTrustPolicy } from './evidence-trust-pin.mjs';
|
|
21
22
|
import { loadTrustedThirdPartySourcePins } from './third-party-pins-trusted.mjs';
|
|
22
23
|
import { thirdPartySignerRow } from './third-party-source-evidence.mjs';
|
|
23
|
-
import { OCI_BUNDLE_SOURCE_KIND,
|
|
24
|
+
import { OCI_BUNDLE_SOURCE_KIND, isThirdPartyOciRow } from './third-party-subjects.mjs';
|
|
24
25
|
|
|
25
26
|
const requireFromHere = createRequire(import.meta.url);
|
|
26
27
|
|
|
@@ -47,6 +48,10 @@ export class BundleSignerKeyBoundElsewhereError extends BundleSignerError {}
|
|
|
47
48
|
export class BundleSignerPolicyNotSelectedError extends BundleSignerError {}
|
|
48
49
|
/** An OCI row of a lock states no `bundleSigner`. */
|
|
49
50
|
export class BundleSignerMissingError extends BundleSignerError {}
|
|
51
|
+
/** A lock row drawn from a git `source` states an OCI `bundleSource`: a git-sourced biome is built from that source, never pulled as a bundle. */
|
|
52
|
+
export class BundleSourceOnGitRowError extends BundleSignerError {}
|
|
53
|
+
/** A resolve found an OCI host-module bundle on a git-sourced biome: such a bundle reaches an edition only through an `oci` source. */
|
|
54
|
+
export class GitSourcedHostModuleBundleError extends BundleSignerError {}
|
|
50
55
|
/** The loaded kernel does not export what the bundle signer plane needs. */
|
|
51
56
|
export class BundleSignerKernelUnsupportedError extends BundleSignerError {}
|
|
52
57
|
|
|
@@ -71,6 +76,16 @@ export function loadBundleSignerKernel() {
|
|
|
71
76
|
const describeSubject = ({ biomeId, componentKey }) =>
|
|
72
77
|
componentKey === undefined ? `biome "${biomeId}"` : `host module "${componentKey}" of biome "${biomeId}"`;
|
|
73
78
|
|
|
79
|
+
/** A git-sourced row carries no OCI bundle (resolve omits it), so no signer is selected for one; a lock stating one is refused. */
|
|
80
|
+
function assertNotGitSourced(subject) {
|
|
81
|
+
if (subject.source !== undefined) {
|
|
82
|
+
throw new BundleSourceOnGitRowError(
|
|
83
|
+
`${describeSubject(subject)} is drawn from git source "${subject.source?.name ?? subject.source}" and states an OCI bundleSource; a git-sourced biome carries none ` +
|
|
84
|
+
'(a third-party biome is an OCI bundle only as an `oci` source with a third-party pin)',
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
74
89
|
const rowsOf = (policy, policyId) => policy.policies.filter((row) => row.policyId === policyId);
|
|
75
90
|
|
|
76
91
|
/**
|
|
@@ -93,7 +108,7 @@ export function createBundleSignerSelection({ policy, thirdPartyPins, firstParty
|
|
|
93
108
|
function requireKind(subject, row, kind) {
|
|
94
109
|
if (row.kind !== kind) {
|
|
95
110
|
throw new BundleSignerKindMismatchError(
|
|
96
|
-
`${describeSubject(subject)}: trust policy row "${row.policyId}" is of kind ${JSON.stringify(row.kind)}, but a ${
|
|
111
|
+
`${describeSubject(subject)}: trust policy row "${row.policyId}" is of kind ${JSON.stringify(row.kind)}, but a ${isThirdPartyOciRow(subject) ? 'third-party' : 'first-party'} bundle is signed by a "${kind}" row`,
|
|
97
112
|
);
|
|
98
113
|
}
|
|
99
114
|
}
|
|
@@ -137,8 +152,9 @@ export function createBundleSignerSelection({ policy, thirdPartyPins, firstParty
|
|
|
137
152
|
}
|
|
138
153
|
|
|
139
154
|
function selectedRow(subject) {
|
|
155
|
+
assertNotGitSourced(subject);
|
|
140
156
|
requirePolicy(subject);
|
|
141
|
-
return
|
|
157
|
+
return isThirdPartyOciRow(subject) ? thirdPartyRow(subject) : firstPartyRow(subject);
|
|
142
158
|
}
|
|
143
159
|
|
|
144
160
|
const signerFor = (subject) => {
|
|
@@ -199,12 +215,12 @@ const isOci = (row) => row.bundleSource?.kind === OCI_BUNDLE_SOURCE_KIND;
|
|
|
199
215
|
/** Every OCI subject of a lock: each biome and each host module whose `bundleSource` is OCI, with the biome's origin and repo. */
|
|
200
216
|
export function lockBundleSubjects(lock) {
|
|
201
217
|
return lock.biomes.flatMap((biome) => [
|
|
202
|
-
...(isOci(biome) ? [{ row: biome, subject: { biomeId: biome.id, origin: biome.origin, repo: biome.repo, bundleSource: biome.bundleSource } }] : []),
|
|
218
|
+
...(isOci(biome) ? [{ row: biome, subject: { biomeId: biome.id, origin: biome.origin, repo: biome.repo, source: biome.source, bundleSource: biome.bundleSource } }] : []),
|
|
203
219
|
...(biome.hostModules ?? [])
|
|
204
220
|
.filter(isOci)
|
|
205
221
|
.map((hostModule) => ({
|
|
206
222
|
row: hostModule,
|
|
207
|
-
subject: { biomeId: biome.id, componentKey: hostModule.componentKey, origin: biome.origin, repo: biome.repo, bundleSource: hostModule.bundleSource },
|
|
223
|
+
subject: { biomeId: biome.id, componentKey: hostModule.componentKey, origin: biome.origin, repo: biome.repo, source: biome.source, bundleSource: hostModule.bundleSource },
|
|
208
224
|
})),
|
|
209
225
|
]);
|
|
210
226
|
}
|
|
@@ -219,6 +235,7 @@ export function assertLockBundleSigners({ lock, selection, schemas }) {
|
|
|
219
235
|
if (subjects.length === 0) {return;}
|
|
220
236
|
const chosen = selection ?? loadBundleSignerSelection({ dataRoot: dataRoot(), schemas });
|
|
221
237
|
for (const { row, subject } of subjects) {
|
|
238
|
+
assertNotGitSourced(subject);
|
|
222
239
|
chosen.assertSealed(subject, row.bundleSigner);
|
|
223
240
|
}
|
|
224
241
|
}
|
|
@@ -95,7 +95,7 @@ import {
|
|
|
95
95
|
validateImmutableDistributionLock,
|
|
96
96
|
validateServiceDependencyOwnerParity,
|
|
97
97
|
} from './lib.mjs';
|
|
98
|
-
import { BundleSignerPolicyAbsentError, loadBundleSignerSelection } from './locked-bundle-signer.mjs';
|
|
98
|
+
import { BundleSignerPolicyAbsentError, GitSourcedHostModuleBundleError, loadBundleSignerSelection } from './locked-bundle-signer.mjs';
|
|
99
99
|
import {
|
|
100
100
|
assertInstalledOperationCeilingAdmitted,
|
|
101
101
|
assertOperationGrantsAdmitted,
|
|
@@ -1805,11 +1805,29 @@ export function resolveDistributionFromInputs(
|
|
|
1805
1805
|
}
|
|
1806
1806
|
return composed.bundleSigners.signerFor(subject);
|
|
1807
1807
|
};
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1808
|
+
// A row drawn from a GIT source carries no OCI bundle (biome-level; an OCI host-module bundle is refused below), hence no bundleSigner: it is built
|
|
1809
|
+
// from the pinned source, and the manifest's `bundleSource` names a release artifact not built from this commit.
|
|
1810
|
+
// Omitted here, at the copy point. (An entry of a declared `oci` source has a stamp but no record: not git.)
|
|
1811
|
+
const isGitSourced = (e) => e.source !== undefined && sourceRecords.has(e.source);
|
|
1812
|
+
const bundleSourceOf = (e) => (e.bundleSource === undefined || isGitSourced(e) ? {} : { bundleSource: e.bundleSource });
|
|
1813
|
+
const bundleSignerFor = (e) => (e.bundleSource?.kind === 'oci' && !isGitSourced(e) ? { bundleSigner: bundleSignerOf(e, e.bundleSource) } : {});
|
|
1814
|
+
const hostModuleOf = (e, hostModule) => {
|
|
1815
|
+
if (isGitSourced(e)) {
|
|
1816
|
+
// The lock schema requires a host module's bundleSource, so an OCI one cannot be omitted: it is refused, in every
|
|
1817
|
+
// channel. A non-OCI one (npm, ...) is untouched.
|
|
1818
|
+
if (hostModule.bundleSource?.kind === 'oci') {
|
|
1819
|
+
throw new GitSourcedHostModuleBundleError(
|
|
1820
|
+
`host module "${hostModule.componentKey}" of biome "${e.id}" (git source "${e.source}") declares an OCI bundleSource (${hostModule.bundleSource.ociRef}); ` +
|
|
1821
|
+
'such a host module bundle reaches an edition only through an `oci` source with a third-party source pin',
|
|
1822
|
+
);
|
|
1823
|
+
}
|
|
1824
|
+
return hostModule;
|
|
1825
|
+
}
|
|
1826
|
+
return hostModule.bundleSource?.kind === 'oci'
|
|
1827
|
+
? { ...hostModule, bundleSigner: bundleSignerOf(e, hostModule.bundleSource, hostModule.componentKey) }
|
|
1828
|
+
: hostModule;
|
|
1829
|
+
};
|
|
1830
|
+
const hostModulesOf = (e) => (Array.isArray(e.hostModules) ? e.hostModules : []).map((hostModule) => hostModuleOf(e, hostModule));
|
|
1813
1831
|
|
|
1814
1832
|
// (5d) Dispatched runtime components — every `runtime-image` edge of a
|
|
1815
1833
|
// shipped biome must resolve to a runtime component of a biome in the index.
|
|
@@ -1994,7 +2012,7 @@ export function resolveDistributionFromInputs(
|
|
|
1994
2012
|
// unconditional key would move the bytes of every committed lock for a
|
|
1995
2013
|
// fact none of their entries carries. A lock in which SOME biome carries
|
|
1996
2014
|
// it still is the one v5 grammar once sealed.
|
|
1997
|
-
...(e
|
|
2015
|
+
...bundleSourceOf(e),
|
|
1998
2016
|
...bundleSignerFor(e),
|
|
1999
2017
|
serviceDependencies: Array.isArray(e.serviceDependencies)
|
|
2000
2018
|
? e.serviceDependencies
|
|
@@ -2401,6 +2419,29 @@ export async function resolveDistributionWithIndex(id, { materialize, inputs, re
|
|
|
2401
2419
|
return { lock, index };
|
|
2402
2420
|
}
|
|
2403
2421
|
|
|
2422
|
+
/**
|
|
2423
|
+
* A release carries a third-party biome only as an `oci` source with a third-party pin. A git-sourced third-party biome
|
|
2424
|
+
* whose manifest declares an OCI bundleSource (biome-level or host module) names a main-release artifact that is not
|
|
2425
|
+
* built from the pinned commit, so a release resolve refuses it. `lock` is the resolved lock (a git row carries
|
|
2426
|
+
* `source`), `index` the index it was resolved from (which still holds the manifest's bundleSource).
|
|
2427
|
+
*/
|
|
2428
|
+
export function assertReleaseGitSourcesDeclareNoBundle(lock, index) {
|
|
2429
|
+
const byId = new Map(index.map((entry) => [entry.id, entry]));
|
|
2430
|
+
for (const biome of lock.biomes) {
|
|
2431
|
+
if (biome.source === undefined) {continue;}
|
|
2432
|
+
const entry = byId.get(biome.id);
|
|
2433
|
+
const declared = [entry?.bundleSource, ...(entry?.hostModules ?? []).map((hostModule) => hostModule.bundleSource)].find(
|
|
2434
|
+
(bundleSource) => bundleSource?.kind === 'oci',
|
|
2435
|
+
);
|
|
2436
|
+
if (declared !== undefined) {
|
|
2437
|
+
throw new Error(
|
|
2438
|
+
`biome "${biome.id}" is drawn from git source "${biome.source.name}" and declares an OCI bundleSource (${declared.ociRef}); ` +
|
|
2439
|
+
'a release does not carry it: declare the biome as an `oci` source with a third-party source pin instead',
|
|
2440
|
+
);
|
|
2441
|
+
}
|
|
2442
|
+
}
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2404
2445
|
/**
|
|
2405
2446
|
* Resolve and persist one distribution lock. The CLI and the plane refresh use
|
|
2406
2447
|
* this exact writer so an in-process refresh cannot drift from the standalone
|
|
@@ -2410,6 +2451,7 @@ export async function writeResolvedDistribution(id, { log = true, materialize, f
|
|
|
2410
2451
|
const { lock, index } = await resolveDistributionWithIndex(id, { materialize });
|
|
2411
2452
|
await assertAdapterBundlesMatchHost({ lock, hostRow: adapterHostRow(index), fetchManifest });
|
|
2412
2453
|
const outPath = join(editionsRoot(), id, 'distribution.lock.json');
|
|
2454
|
+
assertReleaseGitSourcesDeclareNoBundle(lock, index);
|
|
2413
2455
|
assertReleaseContent(lock, `the distribution lock for "${id}"`);
|
|
2414
2456
|
assertReleaseEditionTree(join(editionsRoot(), id));
|
|
2415
2457
|
mkdirSync(join(editionsRoot(), id), { recursive: true });
|
|
@@ -32,7 +32,8 @@ export const isThirdPartyOciEntry = (entry) => hasOciBundleSource(entry) && isTh
|
|
|
32
32
|
/**
|
|
33
33
|
* Refuse an OCI `bundleSource` on a row whose origin is not third-party: only a third-party biome is pulled from an OCI
|
|
34
34
|
* bundle by digest, so the vendor's origin on such a row would place an unevidenced bundle in the vendor's trust domain.
|
|
35
|
-
* A row drawn from a git `source` is
|
|
35
|
+
* A row drawn from a git `source` is not this key and carries no OCI `bundleSource` at all: resolve omits the manifest's
|
|
36
|
+
* (it names a release artifact not built from the pinned commit), and a lock stating one is refused (`locked-bundle-signer.mjs`).
|
|
36
37
|
*/
|
|
37
38
|
export function assertOciBundleSourceOrigin(row, label) {
|
|
38
39
|
if (row.source === undefined && hasOciBundleSource(row) && !isThirdPartyOrigin(row)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/xema",
|
|
3
|
-
"version": "0.49.
|
|
3
|
+
"version": "0.49.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/xema-dev/xema-cli.git",
|
|
@@ -92,6 +92,6 @@
|
|
|
92
92
|
"typecheck": "tsc --noEmit"
|
|
93
93
|
},
|
|
94
94
|
"xemaRelease": {
|
|
95
|
-
"sourceDigest": "sha256:
|
|
95
|
+
"sourceDigest": "sha256:f330048c083619658f4721c67c1c4df25e1a9b64b2664a513e871b970d281639"
|
|
96
96
|
}
|
|
97
97
|
}
|