@company-semantics/contracts 39.0.0 → 39.2.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/package.json +5 -3
- package/src/api/generated-spec-hash.ts +2 -2
- package/src/api/generated.ts +2 -0
- package/src/content/schemas.ts +20 -0
- package/src/guards/config.ts +22 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@company-semantics/contracts",
|
|
3
|
-
"version": "39.
|
|
3
|
+
"version": "39.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -143,12 +143,14 @@
|
|
|
143
143
|
},
|
|
144
144
|
"pnpm": {
|
|
145
145
|
"overrides": {
|
|
146
|
-
"picomatch": ">=4.0.4"
|
|
146
|
+
"picomatch": ">=4.0.4",
|
|
147
|
+
"brace-expansion@<5.0.8": ">=5.0.8"
|
|
147
148
|
}
|
|
148
149
|
},
|
|
149
150
|
"lint-staged": {
|
|
150
151
|
"*.ts": "bash -c 'tsc -b --noEmit'",
|
|
151
152
|
"*.md": "markdownlint-cli2",
|
|
152
153
|
"package.json": "node -e \"JSON.parse(require('fs').readFileSync('package.json'))\""
|
|
153
|
-
}
|
|
154
|
+
},
|
|
155
|
+
"securityRequirementsVersion": "8320e7a5612c6877c2959c127ffa78e693b9d1e95805340a5e4af11a01c4a669"
|
|
154
156
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// AUTO-GENERATED — do not edit. Run pnpm generate:spec-hash to regenerate.
|
|
2
|
-
export const SPEC_HASH = '
|
|
3
|
-
export const SPEC_HASH_FULL = '
|
|
2
|
+
export const SPEC_HASH = '4669379f3c9c' as const;
|
|
3
|
+
export const SPEC_HASH_FULL = '4669379f3c9c9733dea3f5bf53f2c1c0d1f0e496fddbf874e8d1f1951e805d7c' as const;
|
package/src/api/generated.ts
CHANGED
|
@@ -4546,6 +4546,8 @@ export interface components {
|
|
|
4546
4546
|
}[];
|
|
4547
4547
|
canEdit: boolean;
|
|
4548
4548
|
canUploadContext?: boolean;
|
|
4549
|
+
canManageAcl?: boolean;
|
|
4550
|
+
canChangeVisibility?: boolean;
|
|
4549
4551
|
inheritsFromId: string | null;
|
|
4550
4552
|
inheritsFrom: string | null;
|
|
4551
4553
|
sources: {
|
package/src/content/schemas.ts
CHANGED
|
@@ -153,6 +153,26 @@ export const CompanyMdDocResponseSchema = z.object({
|
|
|
153
153
|
* doc shapes returned outside the single-doc read.
|
|
154
154
|
*/
|
|
155
155
|
canUploadContext: z.boolean().optional(),
|
|
156
|
+
/**
|
|
157
|
+
* COLLABORATION capability signal (ADR-BE-434): whether the requesting actor
|
|
158
|
+
* holds `CompanyMd.CanShare` (`ACL_MANAGE` — the editor+ effective band OR the
|
|
159
|
+
* `org.manage_content_sharing` admin custody) on this doc — the SAME binding the
|
|
160
|
+
* `/acl` + sharing routes enforce. The app gates the Share affordance on it so a
|
|
161
|
+
* viewer/commenter never opens a dead Share dialog. Signal only; admittance and
|
|
162
|
+
* enforcement are unchanged. Optional for back-compat with doc shapes returned
|
|
163
|
+
* outside the single-doc read.
|
|
164
|
+
*/
|
|
165
|
+
canManageAcl: z.boolean().optional(),
|
|
166
|
+
/**
|
|
167
|
+
* GOVERNANCE capability signal (ADR-BE-435): whether the requesting actor holds
|
|
168
|
+
* `CompanyMd.CanChangeVisibility` (owner OR the `org.manage_content_sharing`
|
|
169
|
+
* admin custody) on this doc — the SAME binding the visibility/sharing-policy
|
|
170
|
+
* write enforces. The app renders the Share dialog's general-access +
|
|
171
|
+
* discoverability controls read-only when false, so a non-governing editor
|
|
172
|
+
* cannot change a governance control and 403 on save. Signal only; admittance
|
|
173
|
+
* and enforcement are unchanged. Optional for back-compat.
|
|
174
|
+
*/
|
|
175
|
+
canChangeVisibility: z.boolean().optional(),
|
|
156
176
|
// Stable id of the inherited-from doc — the resolution key (mirrors the
|
|
157
177
|
// resolved parentId). `inheritsFrom` is presentation only (ADR-BE-315).
|
|
158
178
|
inheritsFromId: z.string().nullable(),
|
package/src/guards/config.ts
CHANGED
|
@@ -238,6 +238,21 @@ export interface ContractsConsumerBaseline {
|
|
|
238
238
|
packageJsonPath: string;
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
+
/**
|
|
242
|
+
* Security-overrides-sync guard baseline configuration.
|
|
243
|
+
* CI injects checkOverridesSync based on this config.
|
|
244
|
+
*
|
|
245
|
+
* Verifies the repo never RESOLVES a package below the ci security-version
|
|
246
|
+
* policy (company-semantics-ci/dependency-policy/security-requirements.ts). The
|
|
247
|
+
* requirement set is central in ci — a repo declares only where its manifest is.
|
|
248
|
+
*
|
|
249
|
+
* @see ADR-CI-122 (policy + resolver + guard) and ADR-CTRL-273 (sync driver)
|
|
250
|
+
*/
|
|
251
|
+
export interface SecurityOverridesBaseline {
|
|
252
|
+
/** Path to package.json relative to repo root */
|
|
253
|
+
packageJsonPath: string;
|
|
254
|
+
}
|
|
255
|
+
|
|
241
256
|
/**
|
|
242
257
|
* Structural guard baselines.
|
|
243
258
|
* Product repos provide DATA only; CI orchestrator owns guard implementations.
|
|
@@ -264,6 +279,13 @@ export interface StructuralBaselines {
|
|
|
264
279
|
* Enforces: consumers never advance ahead of npm.
|
|
265
280
|
*/
|
|
266
281
|
contractsConsumer?: ContractsConsumerBaseline;
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Security-overrides-sync check configuration.
|
|
285
|
+
* CI injects checkOverridesSync based on this config.
|
|
286
|
+
* Enforces: no package resolves below the ci security-version policy.
|
|
287
|
+
*/
|
|
288
|
+
securityOverrides?: SecurityOverridesBaseline;
|
|
267
289
|
}
|
|
268
290
|
|
|
269
291
|
/**
|