@goodbones/core 0.1.0-beta.7 → 0.1.0-beta.9

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.
Files changed (113) hide show
  1. package/build/dts/core/campaigns.d.ts +141 -0
  2. package/build/dts/core/campaigns.d.ts.map +1 -0
  3. package/build/dts/core/ledger.d.ts +61 -0
  4. package/build/dts/core/ledger.d.ts.map +1 -0
  5. package/build/dts/core/structure.d.ts +1 -0
  6. package/build/dts/core/structure.d.ts.map +1 -1
  7. package/build/dts/domain/architecture-config.d.ts +309 -1
  8. package/build/dts/domain/architecture-config.d.ts.map +1 -1
  9. package/build/dts/domain/architecture-error.d.ts +8 -0
  10. package/build/dts/domain/architecture-error.d.ts.map +1 -1
  11. package/build/dts/domain/facts.d.ts +1 -0
  12. package/build/dts/domain/facts.d.ts.map +1 -1
  13. package/build/dts/domain/report.d.ts +15 -0
  14. package/build/dts/domain/report.d.ts.map +1 -0
  15. package/build/dts/domain/snapshot.d.ts +55 -3
  16. package/build/dts/domain/snapshot.d.ts.map +1 -1
  17. package/build/dts/domain/violation.d.ts +1 -1
  18. package/build/dts/domain/violation.d.ts.map +1 -1
  19. package/build/dts/index.d.ts +12 -4
  20. package/build/dts/index.d.ts.map +1 -1
  21. package/build/dts/infrastructure/campaign-functions.d.ts +7 -0
  22. package/build/dts/infrastructure/campaign-functions.d.ts.map +1 -0
  23. package/build/dts/infrastructure/report-source-fake.d.ts +4 -0
  24. package/build/dts/infrastructure/report-source-fake.d.ts.map +1 -0
  25. package/build/dts/infrastructure/report-source-live.d.ts +3 -0
  26. package/build/dts/infrastructure/report-source-live.d.ts.map +1 -0
  27. package/build/dts/infrastructure/syntax-matcher-fake.d.ts +10 -0
  28. package/build/dts/infrastructure/syntax-matcher-fake.d.ts.map +1 -0
  29. package/build/dts/load/policy.d.ts +14 -0
  30. package/build/dts/load/policy.d.ts.map +1 -1
  31. package/build/dts/manifest/compile.d.ts +2 -1
  32. package/build/dts/manifest/compile.d.ts.map +1 -1
  33. package/build/dts/manifest/json-schema.d.ts.map +1 -1
  34. package/build/dts/manifest/manifest.d.ts +362 -0
  35. package/build/dts/manifest/manifest.d.ts.map +1 -1
  36. package/build/dts/ports/campaign-predicate.d.ts +24 -0
  37. package/build/dts/ports/campaign-predicate.d.ts.map +1 -0
  38. package/build/dts/ports/language.d.ts +2 -0
  39. package/build/dts/ports/language.d.ts.map +1 -1
  40. package/build/dts/ports/report-source.d.ts +12 -0
  41. package/build/dts/ports/report-source.d.ts.map +1 -0
  42. package/build/dts/ports/syntax-matcher.d.ts +21 -0
  43. package/build/dts/ports/syntax-matcher.d.ts.map +1 -0
  44. package/build/dts/testing.d.ts +2 -0
  45. package/build/dts/testing.d.ts.map +1 -1
  46. package/build/esm/core/campaigns.js +778 -0
  47. package/build/esm/core/campaigns.js.map +1 -0
  48. package/build/esm/core/ledger.js +171 -0
  49. package/build/esm/core/ledger.js.map +1 -0
  50. package/build/esm/core/structure.js +5 -2
  51. package/build/esm/core/structure.js.map +1 -1
  52. package/build/esm/domain/architecture-config.js +133 -1
  53. package/build/esm/domain/architecture-config.js.map +1 -1
  54. package/build/esm/domain/architecture-error.js +27 -0
  55. package/build/esm/domain/architecture-error.js.map +1 -1
  56. package/build/esm/domain/report.js +151 -0
  57. package/build/esm/domain/report.js.map +1 -0
  58. package/build/esm/domain/snapshot.js +21 -0
  59. package/build/esm/domain/snapshot.js.map +1 -1
  60. package/build/esm/domain/violation.js.map +1 -1
  61. package/build/esm/index.js +8 -2
  62. package/build/esm/index.js.map +1 -1
  63. package/build/esm/infrastructure/campaign-functions.js +67 -0
  64. package/build/esm/infrastructure/campaign-functions.js.map +1 -0
  65. package/build/esm/infrastructure/report-source-fake.js +6 -0
  66. package/build/esm/infrastructure/report-source-fake.js.map +1 -0
  67. package/build/esm/infrastructure/report-source-live.js +74 -0
  68. package/build/esm/infrastructure/report-source-live.js.map +1 -0
  69. package/build/esm/infrastructure/syntax-matcher-fake.js +33 -0
  70. package/build/esm/infrastructure/syntax-matcher-fake.js.map +1 -0
  71. package/build/esm/load/policy.js +121 -1
  72. package/build/esm/load/policy.js.map +1 -1
  73. package/build/esm/manifest/compile.js +186 -1
  74. package/build/esm/manifest/compile.js.map +1 -1
  75. package/build/esm/manifest/json-schema.js +7 -3
  76. package/build/esm/manifest/json-schema.js.map +1 -1
  77. package/build/esm/manifest/manifest.js +148 -1
  78. package/build/esm/manifest/manifest.js.map +1 -1
  79. package/build/esm/ports/campaign-predicate.js +2 -0
  80. package/build/esm/ports/campaign-predicate.js.map +1 -0
  81. package/build/esm/ports/report-source.js +2 -0
  82. package/build/esm/ports/report-source.js.map +1 -0
  83. package/build/esm/ports/syntax-matcher.js +12 -0
  84. package/build/esm/ports/syntax-matcher.js.map +1 -0
  85. package/build/esm/testing.js +2 -0
  86. package/build/esm/testing.js.map +1 -1
  87. package/package.json +1 -1
  88. package/schema/architecture-node.schema.json +843 -0
  89. package/schema/architecture.schema.json +1253 -0
  90. package/schema/conformance.schema.json +118 -3
  91. package/src/core/campaigns.ts +1056 -0
  92. package/src/core/ledger.ts +242 -0
  93. package/src/core/structure.ts +10 -5
  94. package/src/domain/architecture-config.ts +178 -1
  95. package/src/domain/architecture-error.ts +30 -0
  96. package/src/domain/facts.ts +5 -0
  97. package/src/domain/report.ts +186 -0
  98. package/src/domain/snapshot.ts +52 -0
  99. package/src/domain/violation.ts +4 -1
  100. package/src/index.ts +76 -0
  101. package/src/infrastructure/campaign-functions.ts +98 -0
  102. package/src/infrastructure/report-source-fake.ts +10 -0
  103. package/src/infrastructure/report-source-live.ts +80 -0
  104. package/src/infrastructure/syntax-matcher-fake.ts +51 -0
  105. package/src/load/policy.ts +187 -1
  106. package/src/manifest/compile.ts +221 -0
  107. package/src/manifest/json-schema.ts +7 -3
  108. package/src/manifest/manifest.ts +192 -1
  109. package/src/ports/campaign-predicate.ts +30 -0
  110. package/src/ports/language.ts +6 -0
  111. package/src/ports/report-source.ts +21 -0
  112. package/src/ports/syntax-matcher.ts +42 -0
  113. package/src/testing.ts +2 -0
@@ -305,7 +305,8 @@
305
305
  "structure",
306
306
  "member",
307
307
  "surface",
308
- "graph"
308
+ "graph",
309
+ "campaign"
309
310
  ]
310
311
  },
311
312
  "ruleName": {
@@ -333,6 +334,10 @@
333
334
  "baselined": {
334
335
  "type": "boolean",
335
336
  "description": "Carried by the baseline, so `check` does not fail on it."
337
+ },
338
+ "ledgered": {
339
+ "type": "boolean",
340
+ "description": "For a campaign hit: carried by the campaign's ledger, so `check` does not fail on it."
336
341
  }
337
342
  },
338
343
  "required": [
@@ -342,7 +347,8 @@
342
347
  "file",
343
348
  "subject",
344
349
  "message",
345
- "baselined"
350
+ "baselined",
351
+ "ledgered"
346
352
  ],
347
353
  "additionalProperties": false
348
354
  },
@@ -522,6 +528,114 @@
522
528
  ],
523
529
  "additionalProperties": false,
524
530
  "description": "The tiers that said \"not tightened yet\", by name; `limits` caps how many may."
531
+ },
532
+ "campaigns": {
533
+ "type": "array",
534
+ "items": {
535
+ "type": "object",
536
+ "properties": {
537
+ "id": {
538
+ "type": "string",
539
+ "description": "The campaign's id; its ledger is `<ledger>/<id>.json`."
540
+ },
541
+ "title": {
542
+ "type": "string",
543
+ "description": "The campaign's title, when it states one."
544
+ },
545
+ "owner": {
546
+ "type": "string",
547
+ "description": "Who is running the campaign, as the manifest names them."
548
+ },
549
+ "initial": {
550
+ "type": "number",
551
+ "allOf": [
552
+ {
553
+ "description": "Entries the day the ledger was written."
554
+ }
555
+ ]
556
+ },
557
+ "allowed": {
558
+ "type": "number",
559
+ "allOf": [
560
+ {
561
+ "description": "Entries added since by `campaigns allow`, each with a regression record."
562
+ }
563
+ ]
564
+ },
565
+ "count": {
566
+ "type": "number",
567
+ "allOf": [
568
+ {
569
+ "description": "Entries in the ledger now."
570
+ }
571
+ ]
572
+ },
573
+ "fixed": {
574
+ "type": "number",
575
+ "allOf": [
576
+ {
577
+ "description": "Entries removed by `campaigns prune` since the ledger was written."
578
+ }
579
+ ]
580
+ },
581
+ "progress": {
582
+ "type": "number",
583
+ "allOf": [
584
+ {
585
+ "description": "`1 - count / (initial + allowed)`: how much of everything ever ledgered has been paid down."
586
+ }
587
+ ]
588
+ },
589
+ "lastProgress": {
590
+ "type": "string",
591
+ "description": "When an entry last left the ledger, ISO 8601 — the stall clock's reading."
592
+ },
593
+ "regressions": {
594
+ "type": "number",
595
+ "allOf": [
596
+ {
597
+ "description": "How many times the count was allowed to go up."
598
+ }
599
+ ]
600
+ },
601
+ "stalled": {
602
+ "type": "boolean",
603
+ "description": "Entries remain and `lastProgress` is older than the campaign's `staleAfter`."
604
+ },
605
+ "complete": {
606
+ "type": "boolean",
607
+ "description": "No entries remain."
608
+ },
609
+ "onComplete": {
610
+ "type": "string",
611
+ "enum": [
612
+ "keep",
613
+ "remove"
614
+ ],
615
+ "description": "What the manifest asks once complete: keep the campaign as a guard, or remove it."
616
+ },
617
+ "ledgered": {
618
+ "type": "boolean",
619
+ "description": "Whether a ledger exists. A campaign with none has been declared and not yet initialised."
620
+ }
621
+ },
622
+ "required": [
623
+ "id",
624
+ "initial",
625
+ "allowed",
626
+ "count",
627
+ "fixed",
628
+ "progress",
629
+ "lastProgress",
630
+ "regressions",
631
+ "stalled",
632
+ "complete",
633
+ "onComplete",
634
+ "ledgered"
635
+ ],
636
+ "additionalProperties": false
637
+ },
638
+ "description": "Every campaign the manifest declares, in manifest order, with its burn-down. Campaign hits are not counted in `coverage` or `residue`: a campaign is scoped by construction."
525
639
  }
526
640
  },
527
641
  "required": [
@@ -540,7 +654,8 @@
540
654
  "cycles",
541
655
  "slack",
542
656
  "concentration",
543
- "adoption"
657
+ "adoption",
658
+ "campaigns"
544
659
  ],
545
660
  "additionalProperties": false
546
661
  }