@superblocksteam/shared 0.9613.1 → 0.9614.0
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/dist/database-lifecycle/destructiveMigrations.d.ts +18 -0
- package/dist/database-lifecycle/destructiveMigrations.d.ts.map +1 -1
- package/dist/database-lifecycle/destructiveMigrations.js.map +1 -1
- package/dist/database-lifecycle/index.d.ts +8 -1
- package/dist/database-lifecycle/index.d.ts.map +1 -1
- package/dist/database-lifecycle/index.js +2 -1
- package/dist/database-lifecycle/index.js.map +1 -1
- package/dist/dbfs/types.d.ts +1 -0
- package/dist/dbfs/types.d.ts.map +1 -1
- package/dist/dbfs/types.js +14 -3
- package/dist/dbfs/types.js.map +1 -1
- package/dist/errors/http.d.ts +5 -3
- package/dist/errors/http.d.ts.map +1 -1
- package/dist/errors/http.js +9 -5
- package/dist/errors/http.js.map +1 -1
- package/dist/types/ai/index.d.ts +1 -0
- package/dist/types/ai/index.d.ts.map +1 -1
- package/dist/types/ai/index.js +1 -0
- package/dist/types/ai/index.js.map +1 -1
- package/dist/types/audit/ocsf.d.ts +11 -0
- package/dist/types/audit/ocsf.d.ts.map +1 -1
- package/dist/types/billing/index.d.ts +1 -0
- package/dist/types/billing/index.d.ts.map +1 -1
- package/dist/types/billing/index.js +1 -0
- package/dist/types/billing/index.js.map +1 -1
- package/dist/types/billing/usageSource.d.ts +26 -0
- package/dist/types/billing/usageSource.d.ts.map +1 -0
- package/dist/types/billing/usageSource.js +100 -0
- package/dist/types/billing/usageSource.js.map +1 -0
- package/dist/types/policyGate/errors.d.ts +3 -0
- package/dist/types/policyGate/errors.d.ts.map +1 -1
- package/dist/types/policyGate/errors.js +1 -0
- package/dist/types/policyGate/errors.js.map +1 -1
- package/dist/types/policyGate/index.d.ts +5 -1
- package/dist/types/policyGate/index.d.ts.map +1 -1
- package/dist/types/policyGate/index.js +11 -0
- package/dist/types/policyGate/index.js.map +1 -1
- package/dist/types/policyGate/index.test.d.ts +2 -0
- package/dist/types/policyGate/index.test.d.ts.map +1 -0
- package/dist/types/policyGate/index.test.js +23 -0
- package/dist/types/policyGate/index.test.js.map +1 -0
- package/dist/types/publishPipeline/index.d.ts +27 -0
- package/dist/types/publishPipeline/index.d.ts.map +1 -1
- package/dist/types/publishPipeline/index.js +1 -0
- package/dist/types/publishPipeline/index.js.map +1 -1
- package/dist/types/publishPipeline/plan.d.ts +9 -4
- package/dist/types/publishPipeline/plan.d.ts.map +1 -1
- package/dist/types/publishPipeline/plan.js +37 -20
- package/dist/types/publishPipeline/plan.js.map +1 -1
- package/dist/types/publishPipeline/plan.test.js +28 -8
- package/dist/types/publishPipeline/plan.test.js.map +1 -1
- package/dist/types/publishPipeline/policyStatus.d.ts +7 -0
- package/dist/types/publishPipeline/policyStatus.d.ts.map +1 -0
- package/dist/types/publishPipeline/policyStatus.js +40 -0
- package/dist/types/publishPipeline/policyStatus.js.map +1 -0
- package/dist/types/reviewPolicy/index.d.ts +14 -4
- package/dist/types/reviewPolicy/index.d.ts.map +1 -1
- package/dist/types/reviewPolicy/index.js +11 -5
- package/dist/types/reviewPolicy/index.js.map +1 -1
- package/dist/types/scim/index.d.ts +21 -1
- package/dist/types/scim/index.d.ts.map +1 -1
- package/dist/types/scim/index.js +19 -1
- package/dist/types/scim/index.js.map +1 -1
- package/dist/utils/attachment-delivery.d.ts +7 -0
- package/dist/utils/attachment-delivery.d.ts.map +1 -1
- package/dist/utils/attachment-delivery.js +19 -2
- package/dist/utils/attachment-delivery.js.map +1 -1
- package/dist/utils/attachment-delivery.test.d.ts +2 -0
- package/dist/utils/attachment-delivery.test.d.ts.map +1 -0
- package/dist/utils/attachment-delivery.test.js +40 -0
- package/dist/utils/attachment-delivery.test.js.map +1 -0
- package/dist/utils/attachment-upload.d.ts +3 -2
- package/dist/utils/attachment-upload.d.ts.map +1 -1
- package/dist/utils/attachment-upload.js +11 -3
- package/dist/utils/attachment-upload.js.map +1 -1
- package/dist/utils/attachment-upload.test.js +40 -1
- package/dist/utils/attachment-upload.test.js.map +1 -1
- package/dist/utils/attachment-validation.d.ts +64 -0
- package/dist/utils/attachment-validation.d.ts.map +1 -0
- package/dist/utils/attachment-validation.js +269 -0
- package/dist/utils/attachment-validation.js.map +1 -0
- package/dist/utils/attachment-validation.test.d.ts +2 -0
- package/dist/utils/attachment-validation.test.d.ts.map +1 -0
- package/dist/utils/attachment-validation.test.js +171 -0
- package/dist/utils/attachment-validation.test.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist-esm/database-lifecycle/destructiveMigrations.d.ts +18 -0
- package/dist-esm/database-lifecycle/destructiveMigrations.d.ts.map +1 -1
- package/dist-esm/database-lifecycle/destructiveMigrations.js.map +1 -1
- package/dist-esm/database-lifecycle/index.d.ts +8 -1
- package/dist-esm/database-lifecycle/index.d.ts.map +1 -1
- package/dist-esm/database-lifecycle/index.js +1 -0
- package/dist-esm/database-lifecycle/index.js.map +1 -1
- package/dist-esm/dbfs/types.d.ts +1 -0
- package/dist-esm/dbfs/types.d.ts.map +1 -1
- package/dist-esm/dbfs/types.js +13 -2
- package/dist-esm/dbfs/types.js.map +1 -1
- package/dist-esm/errors/http.d.ts +5 -3
- package/dist-esm/errors/http.d.ts.map +1 -1
- package/dist-esm/errors/http.js +9 -5
- package/dist-esm/errors/http.js.map +1 -1
- package/dist-esm/types/ai/index.d.ts +1 -0
- package/dist-esm/types/ai/index.d.ts.map +1 -1
- package/dist-esm/types/ai/index.js +1 -0
- package/dist-esm/types/ai/index.js.map +1 -1
- package/dist-esm/types/audit/ocsf.d.ts +11 -0
- package/dist-esm/types/audit/ocsf.d.ts.map +1 -1
- package/dist-esm/types/billing/index.d.ts +1 -0
- package/dist-esm/types/billing/index.d.ts.map +1 -1
- package/dist-esm/types/billing/index.js +1 -0
- package/dist-esm/types/billing/index.js.map +1 -1
- package/dist-esm/types/billing/usageSource.d.ts +26 -0
- package/dist-esm/types/billing/usageSource.d.ts.map +1 -0
- package/dist-esm/types/billing/usageSource.js +97 -0
- package/dist-esm/types/billing/usageSource.js.map +1 -0
- package/dist-esm/types/policyGate/errors.d.ts +3 -0
- package/dist-esm/types/policyGate/errors.d.ts.map +1 -1
- package/dist-esm/types/policyGate/errors.js +1 -0
- package/dist-esm/types/policyGate/errors.js.map +1 -1
- package/dist-esm/types/policyGate/index.d.ts +5 -1
- package/dist-esm/types/policyGate/index.d.ts.map +1 -1
- package/dist-esm/types/policyGate/index.js +10 -0
- package/dist-esm/types/policyGate/index.js.map +1 -1
- package/dist-esm/types/policyGate/index.test.d.ts +2 -0
- package/dist-esm/types/policyGate/index.test.d.ts.map +1 -0
- package/dist-esm/types/policyGate/index.test.js +21 -0
- package/dist-esm/types/policyGate/index.test.js.map +1 -0
- package/dist-esm/types/publishPipeline/index.d.ts +27 -0
- package/dist-esm/types/publishPipeline/index.d.ts.map +1 -1
- package/dist-esm/types/publishPipeline/index.js +1 -0
- package/dist-esm/types/publishPipeline/index.js.map +1 -1
- package/dist-esm/types/publishPipeline/plan.d.ts +9 -4
- package/dist-esm/types/publishPipeline/plan.d.ts.map +1 -1
- package/dist-esm/types/publishPipeline/plan.js +36 -19
- package/dist-esm/types/publishPipeline/plan.js.map +1 -1
- package/dist-esm/types/publishPipeline/plan.test.js +29 -9
- package/dist-esm/types/publishPipeline/plan.test.js.map +1 -1
- package/dist-esm/types/publishPipeline/policyStatus.d.ts +7 -0
- package/dist-esm/types/publishPipeline/policyStatus.d.ts.map +1 -0
- package/dist-esm/types/publishPipeline/policyStatus.js +37 -0
- package/dist-esm/types/publishPipeline/policyStatus.js.map +1 -0
- package/dist-esm/types/reviewPolicy/index.d.ts +14 -4
- package/dist-esm/types/reviewPolicy/index.d.ts.map +1 -1
- package/dist-esm/types/reviewPolicy/index.js +10 -4
- package/dist-esm/types/reviewPolicy/index.js.map +1 -1
- package/dist-esm/types/scim/index.d.ts +21 -1
- package/dist-esm/types/scim/index.d.ts.map +1 -1
- package/dist-esm/types/scim/index.js +18 -0
- package/dist-esm/types/scim/index.js.map +1 -1
- package/dist-esm/utils/attachment-delivery.d.ts +7 -0
- package/dist-esm/utils/attachment-delivery.d.ts.map +1 -1
- package/dist-esm/utils/attachment-delivery.js +17 -2
- package/dist-esm/utils/attachment-delivery.js.map +1 -1
- package/dist-esm/utils/attachment-delivery.test.d.ts +2 -0
- package/dist-esm/utils/attachment-delivery.test.d.ts.map +1 -0
- package/dist-esm/utils/attachment-delivery.test.js +38 -0
- package/dist-esm/utils/attachment-delivery.test.js.map +1 -0
- package/dist-esm/utils/attachment-upload.d.ts +3 -2
- package/dist-esm/utils/attachment-upload.d.ts.map +1 -1
- package/dist-esm/utils/attachment-upload.js +10 -2
- package/dist-esm/utils/attachment-upload.js.map +1 -1
- package/dist-esm/utils/attachment-upload.test.js +42 -3
- package/dist-esm/utils/attachment-upload.test.js.map +1 -1
- package/dist-esm/utils/attachment-validation.d.ts +64 -0
- package/dist-esm/utils/attachment-validation.d.ts.map +1 -0
- package/dist-esm/utils/attachment-validation.js +259 -0
- package/dist-esm/utils/attachment-validation.js.map +1 -0
- package/dist-esm/utils/attachment-validation.test.d.ts +2 -0
- package/dist-esm/utils/attachment-validation.test.d.ts.map +1 -0
- package/dist-esm/utils/attachment-validation.test.js +169 -0
- package/dist-esm/utils/attachment-validation.test.js.map +1 -0
- package/dist-esm/utils/index.d.ts +1 -0
- package/dist-esm/utils/index.d.ts.map +1 -1
- package/dist-esm/utils/index.js +1 -0
- package/dist-esm/utils/index.js.map +1 -1
- package/package.json +4 -3
- package/src/database-lifecycle/destructiveMigrations.ts +19 -0
- package/src/database-lifecycle/index.ts +13 -1
- package/src/dbfs/types.ts +15 -3
- package/src/errors/http.ts +11 -5
- package/src/types/ai/index.ts +1 -0
- package/src/types/audit/ocsf.ts +14 -0
- package/src/types/billing/index.ts +1 -0
- package/src/types/billing/usageSource.ts +114 -0
- package/src/types/policyGate/errors.ts +1 -0
- package/src/types/policyGate/index.test.ts +25 -0
- package/src/types/policyGate/index.ts +21 -1
- package/src/types/publishPipeline/index.ts +29 -0
- package/src/types/publishPipeline/plan.test.ts +34 -9
- package/src/types/publishPipeline/plan.ts +41 -19
- package/src/types/publishPipeline/policyStatus.ts +44 -0
- package/src/types/reviewPolicy/index.ts +18 -4
- package/src/types/scim/index.ts +28 -1
- package/src/utils/attachment-delivery.test.ts +52 -0
- package/src/utils/attachment-delivery.ts +20 -2
- package/src/utils/attachment-upload.test.ts +58 -4
- package/src/utils/attachment-upload.ts +13 -3
- package/src/utils/attachment-validation.test.ts +226 -0
- package/src/utils/attachment-validation.ts +269 -0
- package/src/utils/index.ts +1 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POOL_LIKE_USAGE_SOURCES = exports.ENTERPRISE_CONTRACT_USAGE_SOURCES = exports.CONTRACT_COMMITTED_USAGE_SOURCES = exports.GAU_DISPLAY_USAGE_SOURCES = void 0;
|
|
4
|
+
// Keyed on the UsageSource union so this is compile-time exhaustive: adding a
|
|
5
|
+
// new UsageSource member fails to build here until the author decides whether
|
|
6
|
+
// the Usage page shows it (add it below) or hides it (add it to the Exclude).
|
|
7
|
+
// That decision can never again be made implicitly by a stale per-plan list.
|
|
8
|
+
const GAU_DISPLAY_SOURCE_EXHAUSTIVE = {
|
|
9
|
+
enterprise: true,
|
|
10
|
+
legacy: true,
|
|
11
|
+
on_demand: true,
|
|
12
|
+
overage_unbilled: true,
|
|
13
|
+
pool: true,
|
|
14
|
+
seat: true,
|
|
15
|
+
topup: true,
|
|
16
|
+
trial: true
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Every usage_source the Usage page's sub-banner surfaces (tiles, chart,
|
|
20
|
+
* usage table, Spending page) display: all GAU-consuming sources, excluding
|
|
21
|
+
* only `byo`.
|
|
22
|
+
*/
|
|
23
|
+
exports.GAU_DISPLAY_USAGE_SOURCES = Object.keys(GAU_DISPLAY_SOURCE_EXHAUSTIVE);
|
|
24
|
+
// Keyed on the whole UsageSource union, so adding a source fails the build
|
|
25
|
+
// until someone decides whether it draws on a contract commitment. The
|
|
26
|
+
// previous rule was a denylist ("committed = everything except on_demand /
|
|
27
|
+
// overage_unbilled / topup"), which made "counts against your commitment" the
|
|
28
|
+
// silent default for every future source -- and swept in `trial`, which
|
|
29
|
+
// debits no entitlement at all.
|
|
30
|
+
const CONTRACT_COMMITTED_EXHAUSTIVE = {
|
|
31
|
+
// Consumes no GAUs -- the customer is paying their own model provider.
|
|
32
|
+
byo: false,
|
|
33
|
+
// Pooled enterprise / POC consumption.
|
|
34
|
+
enterprise: true,
|
|
35
|
+
// Rows predating the usage_source column; they were pool draws.
|
|
36
|
+
legacy: true,
|
|
37
|
+
// Overage beyond the commitment, invoiced separately at a premium.
|
|
38
|
+
on_demand: false,
|
|
39
|
+
// Recorded past the org cap and deliberately never billed.
|
|
40
|
+
overage_unbilled: false,
|
|
41
|
+
// The shared-pool slice for granular enterprise contracts and TEAMS.
|
|
42
|
+
pool: true,
|
|
43
|
+
// Per-seat allocation; its grants are inside the commit denominator.
|
|
44
|
+
seat: true,
|
|
45
|
+
// Separately purchased pool. The banner backs topups out of the commit
|
|
46
|
+
// denominator, so counting their spend in the numerator would push
|
|
47
|
+
// utilisation past 100%.
|
|
48
|
+
topup: false,
|
|
49
|
+
// Free trial allowance. The trial write path debits no entitlement, so this
|
|
50
|
+
// usage never drew on a commitment even when it falls inside the term.
|
|
51
|
+
// Exposure was durable on annual / contract_term cycles, where the window is
|
|
52
|
+
// the whole contract term; monthly cycles only mis-counted the conversion
|
|
53
|
+
// month and then self-healed (deriveEnterpriseCalendarPeriod).
|
|
54
|
+
trial: false
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The usage_source values that count as drawing down a contract commitment.
|
|
58
|
+
*
|
|
59
|
+
* Feeds the plan banner's committed-vs-overage split. Deliberately an
|
|
60
|
+
* allowlist: see the note on {@link CONTRACT_COMMITTED_EXHAUSTIVE}.
|
|
61
|
+
*/
|
|
62
|
+
exports.CONTRACT_COMMITTED_USAGE_SOURCES = Object.entries(CONTRACT_COMMITTED_EXHAUSTIVE)
|
|
63
|
+
.filter(([, isCommitted]) => isCommitted)
|
|
64
|
+
.map(([source]) => source);
|
|
65
|
+
// The sources an enterprise contract bills, used for the entitlement-window
|
|
66
|
+
// math on /usage-records. Broader than CONTRACT_COMMITTED_USAGE_SOURCES: that
|
|
67
|
+
// one answers "did this draw down the commitment", this one answers "is this
|
|
68
|
+
// on the contract at all", so overage and top-up consumption count here and
|
|
69
|
+
// trial still does not. Keyed on the union for the same reason as the others --
|
|
70
|
+
// a new source must be classified rather than silently omitted from overage.
|
|
71
|
+
const ENTERPRISE_CONTRACT_EXHAUSTIVE = {
|
|
72
|
+
byo: false,
|
|
73
|
+
enterprise: true,
|
|
74
|
+
legacy: true,
|
|
75
|
+
on_demand: true,
|
|
76
|
+
overage_unbilled: true,
|
|
77
|
+
pool: true,
|
|
78
|
+
seat: true,
|
|
79
|
+
topup: true,
|
|
80
|
+
trial: false
|
|
81
|
+
};
|
|
82
|
+
exports.ENTERPRISE_CONTRACT_USAGE_SOURCES = Object.entries(ENTERPRISE_CONTRACT_EXHAUSTIVE)
|
|
83
|
+
.filter(([, onContract]) => onContract)
|
|
84
|
+
.map(([source]) => source);
|
|
85
|
+
// The sources that draw on a spendable balance rather than a commitment.
|
|
86
|
+
// Expressed against CONTRACT_COMMITTED so the one deliberate difference stays
|
|
87
|
+
// visible: top-ups are separately purchased pool, counted here because the
|
|
88
|
+
// balance they feed includes them, and excluded from the commitment because
|
|
89
|
+
// the banner backs them out of its denominator.
|
|
90
|
+
const POOL_LIKE_EXHAUSTIVE = {
|
|
91
|
+
...CONTRACT_COMMITTED_EXHAUSTIVE,
|
|
92
|
+
// Pre-column rows. They predate every current balance, so no live balance
|
|
93
|
+
// shows them.
|
|
94
|
+
legacy: false,
|
|
95
|
+
topup: true
|
|
96
|
+
};
|
|
97
|
+
exports.POOL_LIKE_USAGE_SOURCES = Object.entries(POOL_LIKE_EXHAUSTIVE)
|
|
98
|
+
.filter(([, isPoolLike]) => isPoolLike)
|
|
99
|
+
.map(([source]) => source);
|
|
100
|
+
//# sourceMappingURL=usageSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usageSource.js","sourceRoot":"","sources":["../../../src/types/billing/usageSource.ts"],"names":[],"mappings":";;;AAWA,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,6BAA6B,GAA8C;IAC/E,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,IAAI;IACtB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF;;;;GAIG;AACU,QAAA,yBAAyB,GAA2B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAkB,CAAC;AAE7H,2EAA2E;AAC3E,uEAAuE;AACvE,2EAA2E;AAC3E,8EAA8E;AAC9E,wEAAwE;AACxE,gCAAgC;AAChC,MAAM,6BAA6B,GAAiC;IAClE,uEAAuE;IACvE,GAAG,EAAE,KAAK;IACV,uCAAuC;IACvC,UAAU,EAAE,IAAI;IAChB,gEAAgE;IAChE,MAAM,EAAE,IAAI;IACZ,mEAAmE;IACnE,SAAS,EAAE,KAAK;IAChB,2DAA2D;IAC3D,gBAAgB,EAAE,KAAK;IACvB,qEAAqE;IACrE,IAAI,EAAE,IAAI;IACV,qEAAqE;IACrE,IAAI,EAAE,IAAI;IACV,uEAAuE;IACvE,mEAAmE;IACnE,yBAAyB;IACzB,KAAK,EAAE,KAAK;IACZ,4EAA4E;IAC5E,uEAAuE;IACvE,6EAA6E;IAC7E,0EAA0E;IAC1E,+DAA+D;IAC/D,KAAK,EAAE,KAAK;CACb,CAAC;AAEF;;;;;GAKG;AACU,QAAA,gCAAgC,GAA2B,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC;KAClH,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;KACxC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAqB,CAAC,CAAC;AAE5C,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,gFAAgF;AAChF,6EAA6E;AAC7E,MAAM,8BAA8B,GAAiC;IACnE,GAAG,EAAE,KAAK;IACV,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,IAAI;IACtB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;CACb,CAAC;AAEW,QAAA,iCAAiC,GAA2B,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC;KACpH,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;KACtC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAqB,CAAC,CAAC;AAE5C,yEAAyE;AACzE,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,gDAAgD;AAChD,MAAM,oBAAoB,GAAiC;IACzD,GAAG,6BAA6B;IAChC,0EAA0E;IAC1E,cAAc;IACd,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,IAAI;CACZ,CAAC;AAEW,QAAA,uBAAuB,GAA2B,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;KAChG,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;KACtC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAqB,CAAC,CAAC"}
|
|
@@ -47,6 +47,9 @@ export declare const POLICY_GATE_ERROR_CODES: {
|
|
|
47
47
|
readonly canceled: {
|
|
48
48
|
readonly category: "user_action";
|
|
49
49
|
};
|
|
50
|
+
readonly dependency_scan_stalled: {
|
|
51
|
+
readonly category: "platform_transient";
|
|
52
|
+
};
|
|
50
53
|
readonly dev_server_unreachable: {
|
|
51
54
|
readonly category: "platform_transient";
|
|
52
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAErH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,mBAE5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,6BAA6B,QAAiB,CAAC;AAQ5D,eAAO,MAAM,kCAAkC,QAAgB,CAAC;AAKhE,eAAO,MAAM,iCAAiC,QAAgB,CAAC;AAE/D,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAErH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,mBAE5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,6BAA6B,QAAiB,CAAC;AAQ5D,eAAO,MAAM,kCAAkC,QAAgB,CAAC;AAKhE,eAAO,MAAM,iCAAiC,QAAgB,CAAC;AAE/D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BoB,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAEvE,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,mBAAmB,CAE1F;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAEzF"}
|
|
@@ -36,6 +36,7 @@ exports.POLICY_GATE_ERROR_CODES = {
|
|
|
36
36
|
output_token_limit: { category: 'platform_error' }, // Our output token cap cut off the report.
|
|
37
37
|
// Server dispatch and stale-run failures.
|
|
38
38
|
canceled: { category: 'user_action' }, // The user canceled the in-flight publish.
|
|
39
|
+
dependency_scan_stalled: { category: 'platform_transient' }, // The in-process dependency scan never completed.
|
|
39
40
|
dev_server_unreachable: { category: 'platform_transient' }, // The dev server did not finish the run.
|
|
40
41
|
dispatch_failed: { category: 'platform_transient' }, // The server could not start the run.
|
|
41
42
|
// Legacy code from dev servers that predate this registry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":";;;AA4DA,sDAEC;AAED,wDAEC;AA5DY,QAAA,8BAA8B,GAAwB;IACjE,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;AAEW,QAAA,4BAA4B,GAAG,CAAC,CAAC;AACjC,QAAA,6BAA6B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5D,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,iEAAiE;AACpD,QAAA,kCAAkC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,4EAA4E;AAC5E,2EAA2E;AAC3E,oEAAoE;AACvD,QAAA,iCAAiC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAElD,QAAA,uBAAuB,GAAG;IACrC,+CAA+C;IAC/C,OAAO,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IACnF,iBAAiB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,yCAAyC;IAC5F,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,wCAAwC;IACxF,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,uCAAuC;IACvF,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,qEAAqE;IACrH,cAAc,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,8CAA8C;IAClG,gBAAgB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IAC5F,WAAW,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,8CAA8C;IAC3F,WAAW,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,6CAA6C;IAC9F,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,0CAA0C;IAC1F,cAAc,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,2CAA2C;IACxF,kBAAkB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,2CAA2C;IAE/F,0CAA0C;IAC1C,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,2CAA2C;IAClF,uBAAuB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,kDAAkD;IAC/G,sBAAsB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,yCAAyC;IACrG,eAAe,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IAE3F,2DAA2D;IAC3D,gBAAgB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gDAAgD;IAEtG,gCAAgC;IAChC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,yBAAyB;IAC5E,uBAAuB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,kDAAkD;IAC3G,oBAAoB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,0CAA0C;IACpG,cAAc,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,6CAA6C;IACjG,oBAAoB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,qCAAqC;CACpC,CAAC;AAIzD,SAAgB,qBAAqB,CAAC,SAAkB;IACtD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,+BAAuB,EAAE,SAAS,CAAC,CAAC;AAC5F,CAAC;AAED,SAAgB,sBAAsB,CAAC,SAA6B;IAClE,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,+BAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,sCAA8B,CAAC;AAChH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReviewFindingCategory, ReviewFindingConfidence, ReviewFindingSeverity } from '../reviewPolicy/index.js';
|
|
1
|
+
import type { ReviewFindingCategory, ReviewFindingConfidence, ReviewFindingSeverity, ReviewPolicyRunnerType } from '../reviewPolicy/index.js';
|
|
2
2
|
export * from './errors.js';
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated Use the `superblocks.policy-gates.security-scans.enabled` LaunchDarkly flag instead.
|
|
@@ -17,6 +17,8 @@ export type PolicyGateReadinessFindingSummary = {
|
|
|
17
17
|
export type PolicyGateReadinessFinding = {
|
|
18
18
|
blocking: boolean;
|
|
19
19
|
humanSummary?: string | null;
|
|
20
|
+
/** Stable id for the underlying finding row; prefer this over hashing display text for identity. */
|
|
21
|
+
id?: string;
|
|
20
22
|
/** Same contract as `ReviewFindingDto.locations`: primary location first. */
|
|
21
23
|
locationsJson?: unknown[];
|
|
22
24
|
remediationHintJson?: Record<string, unknown>;
|
|
@@ -50,6 +52,7 @@ export type PolicyGateReadinessItem = {
|
|
|
50
52
|
policyVersionId: string;
|
|
51
53
|
progress?: PolicyGateScanProgress;
|
|
52
54
|
reviewRunId?: string;
|
|
55
|
+
runnerType?: ReviewPolicyRunnerType;
|
|
53
56
|
runs?: PolicyGateReadinessRun[];
|
|
54
57
|
staleReason?: string;
|
|
55
58
|
status: PolicyGateReadinessItemStatus;
|
|
@@ -116,6 +119,7 @@ export type ScanScopeChangedFile = {
|
|
|
116
119
|
changeType: ScanScopeChangeType;
|
|
117
120
|
path: string;
|
|
118
121
|
};
|
|
122
|
+
export declare function isLockfilePath(path: string): boolean;
|
|
119
123
|
export type ScanScopePriorFinding = {
|
|
120
124
|
blocking: boolean;
|
|
121
125
|
category: ReviewFindingCategory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ exports.isHardBlockingPolicyItem = isHardBlockingPolicyItem;
|
|
|
19
19
|
exports.isWaivablePolicyItem = isWaivablePolicyItem;
|
|
20
20
|
exports.isPublishHoldingPolicyItem = isPublishHoldingPolicyItem;
|
|
21
21
|
exports.areReadinessItemsAckEligible = areReadinessItemsAckEligible;
|
|
22
|
+
exports.isLockfilePath = isLockfilePath;
|
|
22
23
|
exports.countFailedPolicyGateRuns = countFailedPolicyGateRuns;
|
|
23
24
|
exports.isPolicyGateItemExhausted = isPolicyGateItemExhausted;
|
|
24
25
|
const errors_js_1 = require("./errors.js");
|
|
@@ -80,6 +81,16 @@ exports.POLICY_GATE_BLOCKED_ERROR = 'POLICY_GATE_BLOCKED';
|
|
|
80
81
|
* to the user, and shared so server and client agree on the exact text.
|
|
81
82
|
*/
|
|
82
83
|
exports.POLICY_GATE_STALE_LIVE_EDIT_ERROR = 'Policy gates can only run for the current app state. Deploy the current changes or restore to this commit and then deploy.';
|
|
84
|
+
// Git-connected and imported apps can still carry pnpm, yarn, or bun lockfiles. A package
|
|
85
|
+
// manager regenerating one (different resolved order, no real edit) should not by itself
|
|
86
|
+
// count as a code change for scan-scope purposes. Shared between the server (which builds
|
|
87
|
+
// ScanScopeJson) and the dev-server agent (which consumes it) so the two never drift.
|
|
88
|
+
const LOCKFILE_BASENAMES = new Set(['bun.lock', 'bun.lockb', 'package-lock.json', 'pnpm-lock.yaml', 'yarn.lock']);
|
|
89
|
+
function isLockfilePath(path) {
|
|
90
|
+
const lastSlashIndex = path.lastIndexOf('/');
|
|
91
|
+
const basename = lastSlashIndex === -1 ? path : path.slice(lastSlashIndex + 1);
|
|
92
|
+
return LOCKFILE_BASENAMES.has(basename);
|
|
93
|
+
}
|
|
83
94
|
function countFailedPolicyGateRuns(item) {
|
|
84
95
|
return (item.runs ?? []).filter((run) => run.status === 'failed' && run.errorCode !== 'canceled').length;
|
|
85
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAuFA,4DAKC;AAQD,oDAEC;AAED,gEAEC;AAUD,oEAWC;AAsED,wCAIC;AA2BD,8DAEC;AAED,8DAEC;AApOD,2CAA2D;AAE3D,8CAA4B;AAE5B;;;;GAIG;AACU,QAAA,sBAAsB,GAAY,KAAK,CAAC;AAqErD,8EAA8E;AAC9E,+EAA+E;AAC/E,iBAAiB;AACjB,SAAgB,wBAAwB,CAAC,IAAsD;IAC7F,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,IAAsD;IACzF,OAAO,IAAI,CAAC,IAAI,KAAK,0BAA0B,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;AAC7G,CAAC;AAED,SAAgB,0BAA0B,CAAC,IAAsD;IAC/F,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,4BAA4B,CAAC,KAAyD;IACpG,OAAO,CACL,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,KAAK,CACT,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,KAAK,QAAQ;YACxB,IAAI,CAAC,MAAM,KAAK,mBAAmB;YACnC,0BAA0B,CAAC,IAAI,CAAC;YAChC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CACxF,CACF,CAAC;AACJ,CAAC;AAuCD;;;;GAIG;AACU,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D;;;;;;;GAOG;AACU,QAAA,iCAAiC,GAC5C,4HAA4H,CAAC;AAS/H,0FAA0F;AAC1F,yFAAyF;AACzF,0FAA0F;AAC1F,sFAAsF;AACtF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC;AAElH,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAC/E,OAAO,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AA2BD,SAAgB,yBAAyB,CAAC,IAA2C;IACnF,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;AAC3G,CAAC;AAED,SAAgB,yBAAyB,CAAC,IAA+D;IACvG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,wCAA4B,CAAC;AACjI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const index_js_1 = require("./index.js");
|
|
5
|
+
(0, vitest_1.describe)('isLockfilePath', () => {
|
|
6
|
+
(0, vitest_1.test)('recognizes known lockfile basenames', () => {
|
|
7
|
+
(0, vitest_1.expect)((0, index_js_1.isLockfilePath)('pnpm-lock.yaml')).toBe(true);
|
|
8
|
+
(0, vitest_1.expect)((0, index_js_1.isLockfilePath)('yarn.lock')).toBe(true);
|
|
9
|
+
(0, vitest_1.expect)((0, index_js_1.isLockfilePath)('package-lock.json')).toBe(true);
|
|
10
|
+
(0, vitest_1.expect)((0, index_js_1.isLockfilePath)('bun.lock')).toBe(true);
|
|
11
|
+
(0, vitest_1.expect)((0, index_js_1.isLockfilePath)('bun.lockb')).toBe(true);
|
|
12
|
+
});
|
|
13
|
+
(0, vitest_1.test)('recognizes a lockfile nested in a directory', () => {
|
|
14
|
+
(0, vitest_1.expect)((0, index_js_1.isLockfilePath)('server/pnpm-lock.yaml')).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
(0, vitest_1.test)('rejects a non-lockfile path', () => {
|
|
17
|
+
(0, vitest_1.expect)((0, index_js_1.isLockfilePath)('server/apis/fetch-url.ts')).toBe(false);
|
|
18
|
+
});
|
|
19
|
+
(0, vitest_1.test)('rejects a path that merely contains a lockfile name as a substring', () => {
|
|
20
|
+
(0, vitest_1.expect)((0, index_js_1.isLockfilePath)('vendor/yarn.lock.bak')).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAEhD,yCAA4C;AAE5C,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAA,aAAI,EAAC,qCAAqC,EAAE,GAAG,EAAE;QAC/C,IAAA,eAAM,EAAC,IAAA,yBAAc,EAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAA,eAAM,EAAC,IAAA,yBAAc,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAA,eAAM,EAAC,IAAA,yBAAc,EAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAA,eAAM,EAAC,IAAA,yBAAc,EAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAA,eAAM,EAAC,IAAA,yBAAc,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACvD,IAAA,eAAM,EAAC,IAAA,yBAAc,EAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,6BAA6B,EAAE,GAAG,EAAE;QACvC,IAAA,eAAM,EAAC,IAAA,yBAAc,EAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,oEAAoE,EAAE,GAAG,EAAE;QAC9E,IAAA,eAAM,EAAC,IAAA,yBAAc,EAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* their own authoritative checks (build, policy, database lifecycle reconcile);
|
|
10
10
|
* this plan only reflects progress for the rail.
|
|
11
11
|
*/
|
|
12
|
+
import type { PolicyGateReadinessStatus } from '../policyGate/index.js';
|
|
12
13
|
/** Which domain owns a step. Extend as new gates are added. */
|
|
13
14
|
export type PublishStepKind = 'build' | 'database_migration' | 'database_provisioning' | 'policy_gates' | 'publish';
|
|
14
15
|
/**
|
|
@@ -22,6 +23,22 @@ export type BuildPublishStepDetail = {
|
|
|
22
23
|
buildStatus: string | null;
|
|
23
24
|
error?: string;
|
|
24
25
|
};
|
|
26
|
+
export type PolicyGatesPublishStepDetail = {
|
|
27
|
+
/**
|
|
28
|
+
* Whether the server would honor a publish that carries the findings
|
|
29
|
+
* acknowledgment right now. False while a gate has not reported: its findings
|
|
30
|
+
* are part of what the acknowledgment covers, so the deploy endpoint applies
|
|
31
|
+
* this same test and turns such a publish away. Also false when the gates
|
|
32
|
+
* could not be read at all - an unknown answer must not offer a publish that
|
|
33
|
+
* would come back refused.
|
|
34
|
+
*
|
|
35
|
+
* Separate from whether anyone has acknowledged anything: that is recorded on
|
|
36
|
+
* the deploy queue row and is already visible in each child's status.
|
|
37
|
+
*/
|
|
38
|
+
findingsAckEligible: boolean;
|
|
39
|
+
/** Absent when readiness could not be read. */
|
|
40
|
+
readinessStatus?: PolicyGateReadinessStatus;
|
|
41
|
+
};
|
|
25
42
|
export type PublishDeployStepDetail = {
|
|
26
43
|
error?: string;
|
|
27
44
|
isLive?: boolean;
|
|
@@ -40,6 +57,8 @@ export type PublishStep = {
|
|
|
40
57
|
summary?: string;
|
|
41
58
|
/** When status is pending and waiting on declared dependencies that are not yet clear. */
|
|
42
59
|
blockedBy?: PublishStepKind[];
|
|
60
|
+
/** Nested status rows owned by this step. */
|
|
61
|
+
children?: PublishStep[];
|
|
43
62
|
/** Machine code when blocked/failed (e.g. POLICY_GATE_BLOCKED). */
|
|
44
63
|
blockingReason?: string;
|
|
45
64
|
/** Opaque domain payload; generic pipeline must not read this. */
|
|
@@ -50,6 +69,13 @@ export type PublishPlanTarget = {
|
|
|
50
69
|
commitId: string;
|
|
51
70
|
};
|
|
52
71
|
export type PublishPlan = {
|
|
72
|
+
/**
|
|
73
|
+
* Whether publishing this app runs policy agents, as the organization has it
|
|
74
|
+
* configured. Unlike the steps, this does not describe one version: the steps
|
|
75
|
+
* only appear once a publish of that version is under way, while an older
|
|
76
|
+
* version needs to know the checks exist before anyone tries.
|
|
77
|
+
*/
|
|
78
|
+
hasPolicyPublishChecks?: boolean;
|
|
53
79
|
status: PublishStepStatus;
|
|
54
80
|
steps: PublishStep[];
|
|
55
81
|
target: PublishPlanTarget;
|
|
@@ -76,4 +102,5 @@ export type PublishStepId = (typeof PublishStepId)[keyof typeof PublishStepId];
|
|
|
76
102
|
export declare const PUBLISH_STEP_SPINE: readonly PublishStepId[];
|
|
77
103
|
export * from './displayNames.js';
|
|
78
104
|
export * from './plan.js';
|
|
105
|
+
export * from './policyStatus.js';
|
|
79
106
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/publishPipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,oBAAoB,GAAG,uBAAuB,GAAG,cAAc,GAAG,SAAS,CAAC;AAEpH;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,SAAS,GACT,iBAAiB,GACjB,OAAO,GACP,aAAa,GACb,SAAS,GACT,UAAU,GACV,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,yGAAyG;IACzG,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,aAAa,EAO7C,CAAC;AAEX,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/publishPipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,+DAA+D;AAC/D,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,oBAAoB,GAAG,uBAAuB,GAAG,cAAc,GAAG,SAAS,CAAC;AAEpH;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,SAAS,GACT,iBAAiB,GACjB,OAAO,GACP,aAAa,GACb,SAAS,GACT,UAAU,GACV,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC;;;;;;;;;;OAUG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,yBAAyB,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,yGAAyG;IACzG,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,aAAa,EAO7C,CAAC;AAEX,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;AA2FH;;;;;GAKG;AACU,QAAA,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO;IACd,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,uBAAuB;IAC7C,sBAAsB,EAAE,2BAA2B;IACnD,uBAAuB,EAAE,4BAA4B;IACrD,OAAO,EAAE,SAAS;CACV,CAAC;AAIX;;;GAGG;AACU,QAAA,kBAAkB,GAA6B;IAC1D,qBAAa,CAAC,sBAAsB;IACpC,qBAAa,CAAC,KAAK;IACnB,qBAAa,CAAC,uBAAuB;IACrC,qBAAa,CAAC,oBAAoB;IAClC,qBAAa,CAAC,iBAAiB;IAC/B,qBAAa,CAAC,OAAO;CACb,CAAC;AAEX,oDAAkC;AAClC,4CAA0B;AAC1B,oDAAkC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { PublishPlan, PublishPlanTarget, PublishStep, PublishStepStatus } from './index.js';
|
|
2
|
-
/** Collapse
|
|
3
|
-
export declare function
|
|
2
|
+
/** Collapse sibling steps into one status. Empty = passed. */
|
|
3
|
+
export declare function rollUpPublishSteps(steps: Pick<PublishStep, 'status'>[]): PublishStepStatus;
|
|
4
4
|
/** Order steps by the fixed spine; unknown ids are appended in input order. */
|
|
5
5
|
export declare function orderPublishSteps(steps: PublishStep[]): PublishStep[];
|
|
6
|
-
/**
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Order and roll up. Assemble resolves each step's declared `blockedBy`.
|
|
8
|
+
*
|
|
9
|
+
* `facts` carries what the plan says about the app rather than about its steps,
|
|
10
|
+
* so rebuilding a plan from a response keeps it instead of dropping it.
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildPublishPlan(target: PublishPlanTarget, steps: PublishStep[], facts?: Pick<PublishPlan, 'hasPolicyPublishChecks'>): PublishPlan;
|
|
8
13
|
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/types/publishPipeline/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAgBjG,
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/types/publishPipeline/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAgBjG,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,iBAAiB,CAgB1F;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAiBrE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,WAAW,EAAE,EACpB,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,GAClD,WAAW,CAGb"}
|
|
@@ -1,25 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.rollUpPublishSteps = rollUpPublishSteps;
|
|
4
4
|
exports.orderPublishSteps = orderPublishSteps;
|
|
5
5
|
exports.buildPublishPlan = buildPublishPlan;
|
|
6
6
|
const index_js_1 = require("./index.js");
|
|
7
|
-
/**
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
/** Collapse
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
|
|
7
|
+
/** Lower ranks are worse so every known status has an explicit precedence. */
|
|
8
|
+
const STATUS_RANK = {
|
|
9
|
+
failed: 0,
|
|
10
|
+
blocked: 1,
|
|
11
|
+
action_required: 2,
|
|
12
|
+
stale: 3,
|
|
13
|
+
in_progress: 4,
|
|
14
|
+
pending: 5,
|
|
15
|
+
advisory: 6,
|
|
16
|
+
passed: 7,
|
|
17
|
+
skipped: 8
|
|
18
|
+
};
|
|
19
|
+
/** Collapse sibling steps into one status. Empty = passed. */
|
|
20
|
+
function rollUpPublishSteps(steps) {
|
|
21
|
+
if (steps.length === 0) {
|
|
22
|
+
return 'passed';
|
|
23
|
+
}
|
|
24
|
+
let worst = 'skipped';
|
|
25
|
+
for (const step of steps) {
|
|
26
|
+
const rank = STATUS_RANK[step.status];
|
|
27
|
+
if (rank === undefined) {
|
|
28
|
+
return 'blocked';
|
|
29
|
+
}
|
|
30
|
+
if (rank < STATUS_RANK[worst]) {
|
|
31
|
+
worst = step.status;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return worst;
|
|
23
35
|
}
|
|
24
36
|
/** Order steps by the fixed spine; unknown ids are appended in input order. */
|
|
25
37
|
function orderPublishSteps(steps) {
|
|
@@ -40,9 +52,14 @@ function orderPublishSteps(steps) {
|
|
|
40
52
|
}
|
|
41
53
|
return ordered;
|
|
42
54
|
}
|
|
43
|
-
/**
|
|
44
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Order and roll up. Assemble resolves each step's declared `blockedBy`.
|
|
57
|
+
*
|
|
58
|
+
* `facts` carries what the plan says about the app rather than about its steps,
|
|
59
|
+
* so rebuilding a plan from a response keeps it instead of dropping it.
|
|
60
|
+
*/
|
|
61
|
+
function buildPublishPlan(target, steps, facts) {
|
|
45
62
|
const ordered = orderPublishSteps(steps);
|
|
46
|
-
return { status:
|
|
63
|
+
return { ...facts, status: rollUpPublishSteps(ordered), steps: ordered, target };
|
|
47
64
|
}
|
|
48
65
|
//# sourceMappingURL=plan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/plan.ts"],"names":[],"mappings":";;AAiBA,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/plan.ts"],"names":[],"mappings":";;AAiBA,gDAgBC;AAGD,8CAiBC;AAQD,4CAOC;AAnED,yCAAgD;AAEhD,8EAA8E;AAC9E,MAAM,WAAW,GAAsC;IACrD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,CAAC;IAClB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,8DAA8D;AAC9D,SAAgB,kBAAkB,CAAC,KAAoC;IACrE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,GAAsB,SAAS,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,SAAgB,iBAAiB,CAAC,KAAoB;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,EAAE,IAAI,6BAAkB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC9B,MAAyB,EACzB,KAAoB,EACpB,KAAmD;IAEnD,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACnF,CAAC"}
|
|
@@ -11,18 +11,21 @@ function step(overrides) {
|
|
|
11
11
|
...overrides
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
|
-
(0, vitest_1.describe)('
|
|
14
|
+
(0, vitest_1.describe)('rollUpPublishSteps', () => {
|
|
15
15
|
(0, vitest_1.test)('an empty plan is passed', () => {
|
|
16
|
-
(0, vitest_1.expect)((0, plan_js_1.
|
|
16
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)([])).toBe('passed');
|
|
17
17
|
});
|
|
18
18
|
(0, vitest_1.test)('the worst status wins by precedence', () => {
|
|
19
|
-
(0, vitest_1.expect)((0, plan_js_1.
|
|
20
|
-
(0, vitest_1.expect)((0, plan_js_1.
|
|
21
|
-
(0, vitest_1.expect)((0, plan_js_1.
|
|
19
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)([step({ id: 'a', status: 'passed' }), step({ id: 'b', status: 'advisory' }), step({ id: 'c', status: 'blocked' })])).toBe('blocked');
|
|
20
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)([step({ id: 'a', status: 'in_progress' }), step({ id: 'b', status: 'failed' })])).toBe('failed');
|
|
21
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)([step({ id: 'a', status: 'advisory' }), step({ id: 'b', status: 'passed' })])).toBe('advisory');
|
|
22
22
|
});
|
|
23
23
|
(0, vitest_1.test)('skipped never masks a real status', () => {
|
|
24
|
-
(0, vitest_1.expect)((0, plan_js_1.
|
|
25
|
-
(0, vitest_1.expect)((0, plan_js_1.
|
|
24
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)([step({ id: 'a', status: 'skipped' }), step({ id: 'b', status: 'passed' })])).toBe('passed');
|
|
25
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)([step({ id: 'a', status: 'skipped' })])).toBe('skipped');
|
|
26
|
+
});
|
|
27
|
+
(0, vitest_1.test)('an unknown wire status blocks the plan', () => {
|
|
28
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)([step({ id: 'new-server-status', status: 'new_server_status' })])).toBe('blocked');
|
|
26
29
|
});
|
|
27
30
|
(0, vitest_1.test)('precedence order is exhaustive and worst-first', () => {
|
|
28
31
|
const precedence = [
|
|
@@ -42,9 +45,26 @@ function step(overrides) {
|
|
|
42
45
|
const steps = better
|
|
43
46
|
? [step({ id: 'better', status: better }), step({ id: 'worse', status: worse })]
|
|
44
47
|
: [step({ id: 'only', status: worse })];
|
|
45
|
-
(0, vitest_1.expect)((0, plan_js_1.
|
|
48
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)(steps)).toBe(worse);
|
|
46
49
|
}
|
|
47
50
|
});
|
|
51
|
+
(0, vitest_1.test)('uses the plan precedence for any sibling steps', () => {
|
|
52
|
+
const children = [
|
|
53
|
+
step({ id: 'blocked-child', kind: 'policy_gates', status: 'blocked' }),
|
|
54
|
+
step({ id: 'running-child', kind: 'policy_gates', status: 'in_progress' })
|
|
55
|
+
];
|
|
56
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)(children)).toBe('blocked');
|
|
57
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)([step({ id: 'pending-child', status: 'pending' }), step({ id: 'passed-child' })])).toBe('pending');
|
|
58
|
+
});
|
|
59
|
+
(0, vitest_1.test)('reads sibling statuses without reinterpreting nested children', () => {
|
|
60
|
+
const parent = step({
|
|
61
|
+
children: [step({ id: 'policy:security-agent', kind: 'policy_gates', status: 'failed' })],
|
|
62
|
+
id: 'policy_gates:before_deploy',
|
|
63
|
+
kind: 'policy_gates',
|
|
64
|
+
status: 'passed'
|
|
65
|
+
});
|
|
66
|
+
(0, vitest_1.expect)((0, plan_js_1.rollUpPublishSteps)([parent])).toBe('passed');
|
|
67
|
+
});
|
|
48
68
|
});
|
|
49
69
|
(0, vitest_1.describe)('orderPublishSteps', () => {
|
|
50
70
|
(0, vitest_1.test)('orders steps by the publish spine regardless of input order', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.test.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/plan.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAGhD,
|
|
1
|
+
{"version":3,"file":"plan.test.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/plan.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type PolicyGateReadinessItem } from '../policyGate/index.js';
|
|
2
|
+
import type { PublishStepStatus } from './index.js';
|
|
3
|
+
export declare function policyItemPublishStatus(item: PolicyGateReadinessItem, options?: {
|
|
4
|
+
blockingHoldAcknowledged?: boolean;
|
|
5
|
+
blockingHoldAckEligible?: boolean;
|
|
6
|
+
}): PublishStepStatus;
|
|
7
|
+
//# sourceMappingURL=policyStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policyStatus.d.ts","sourceRoot":"","sources":["../../../src/types/publishPipeline/policyStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAE5H,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,uBAAuB,EAC7B,OAAO,GAAE;IACP,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC9B,GACL,iBAAiB,CAiCnB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.policyItemPublishStatus = policyItemPublishStatus;
|
|
4
|
+
const index_js_1 = require("../policyGate/index.js");
|
|
5
|
+
const index_js_2 = require("../reviewPolicy/index.js");
|
|
6
|
+
function policyItemPublishStatus(item, options = {}) {
|
|
7
|
+
const { blockingHoldAcknowledged = false, blockingHoldAckEligible = false } = options;
|
|
8
|
+
switch (item.status) {
|
|
9
|
+
case 'failed':
|
|
10
|
+
if ((0, index_js_1.isPublishHoldingPolicyItem)(item)) {
|
|
11
|
+
return blockingHoldAcknowledged && blockingHoldAckEligible ? 'advisory' : 'blocked';
|
|
12
|
+
}
|
|
13
|
+
return (0, index_js_1.isHardBlockingPolicyItem)(item) ? 'failed' : 'advisory';
|
|
14
|
+
case 'blocked':
|
|
15
|
+
if ((0, index_js_1.isHardBlockingPolicyItem)(item)) {
|
|
16
|
+
return 'blocked';
|
|
17
|
+
}
|
|
18
|
+
if ((0, index_js_1.isPublishHoldingPolicyItem)(item)) {
|
|
19
|
+
return blockingHoldAcknowledged && blockingHoldAckEligible ? 'advisory' : 'blocked';
|
|
20
|
+
}
|
|
21
|
+
return 'advisory';
|
|
22
|
+
case 'approval_required':
|
|
23
|
+
return 'action_required';
|
|
24
|
+
case 'stale':
|
|
25
|
+
return 'stale';
|
|
26
|
+
case 'running':
|
|
27
|
+
return 'in_progress';
|
|
28
|
+
case 'missing':
|
|
29
|
+
return 'pending';
|
|
30
|
+
case 'advisory_findings':
|
|
31
|
+
return (item.findings ?? []).some((finding) => (0, index_js_2.isAdvisoryHoldFindingSeverity)(finding.severity)) ? 'advisory' : 'passed';
|
|
32
|
+
case 'passed':
|
|
33
|
+
return 'passed';
|
|
34
|
+
default: {
|
|
35
|
+
const _exhaustive = item.status;
|
|
36
|
+
return _exhaustive;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=policyStatus.js.map
|