openxiangda-contracts 2.83.0 → 2.84.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.
Files changed (49) hide show
  1. package/dist/native-compiler/compiler.d.ts.map +1 -1
  2. package/dist/native-compiler/compiler.js +36 -9
  3. package/dist/native-compiler/compiler.js.map +1 -1
  4. package/dist/native-compiler/index.cjs +4 -4
  5. package/dist/native-compiler/index.js +4 -4
  6. package/dist/native-compiler/user-candidates.d.ts.map +1 -1
  7. package/dist/native-compiler/user-candidates.js +2 -1
  8. package/dist/native-compiler/user-candidates.js.map +1 -1
  9. package/dist/native-compiler/workflow-authoring.d.ts.map +1 -1
  10. package/dist/native-compiler/workflow-authoring.js +2 -0
  11. package/dist/native-compiler/workflow-authoring.js.map +1 -1
  12. package/dist/native-compiler/workflow-conditional-assignment-schema.d.ts +662 -0
  13. package/dist/native-compiler/workflow-conditional-assignment-schema.d.ts.map +1 -0
  14. package/dist/native-compiler/workflow-conditional-assignment-schema.js +21 -0
  15. package/dist/native-compiler/workflow-conditional-assignment-schema.js.map +1 -0
  16. package/dist/native-compiler/workflow-conditional-assignment.d.ts +14 -667
  17. package/dist/native-compiler/workflow-conditional-assignment.d.ts.map +1 -1
  18. package/dist/native-compiler/workflow-conditional-assignment.js +31 -19
  19. package/dist/native-compiler/workflow-conditional-assignment.js.map +1 -1
  20. package/dist/native-compiler/workflow-expression-schema.d.ts +29 -0
  21. package/dist/native-compiler/workflow-expression-schema.d.ts.map +1 -0
  22. package/dist/native-compiler/workflow-expression-schema.js +31 -0
  23. package/dist/native-compiler/workflow-expression-schema.js.map +1 -0
  24. package/dist/native-compiler/workflow-launch-preflight.d.ts.map +1 -1
  25. package/dist/native-compiler/workflow-launch-preflight.js +6 -1
  26. package/dist/native-compiler/workflow-launch-preflight.js.map +1 -1
  27. package/dist/native-compiler/workflow-schema.d.ts +909 -276
  28. package/dist/native-compiler/workflow-schema.d.ts.map +1 -1
  29. package/dist/native-compiler/workflow-schema.js +5 -98
  30. package/dist/native-compiler/workflow-schema.js.map +1 -1
  31. package/dist/native-compiler/workflow-source-sync.d.ts.map +1 -1
  32. package/dist/native-compiler/workflow-source-sync.js +5 -1
  33. package/dist/native-compiler/workflow-source-sync.js.map +1 -1
  34. package/dist/native-compiler/workflow-standard-binding-schema.d.ts +304 -0
  35. package/dist/native-compiler/workflow-standard-binding-schema.d.ts.map +1 -0
  36. package/dist/native-compiler/workflow-standard-binding-schema.js +75 -0
  37. package/dist/native-compiler/workflow-standard-binding-schema.js.map +1 -0
  38. package/dist/native-version.d.ts +1 -0
  39. package/dist/native-version.d.ts.map +1 -1
  40. package/dist/native-version.js +1 -0
  41. package/dist/native-version.js.map +1 -1
  42. package/dist/schemas.d.ts +897 -230
  43. package/dist/schemas.d.ts.map +1 -1
  44. package/dist/schemas.js +1 -0
  45. package/dist/schemas.js.map +1 -1
  46. package/dist/types.d.ts +6 -3
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/types.js.map +1 -1
  49. package/package.json +1 -1
@@ -1,12 +1,11 @@
1
- import type { WorkflowBindingEntry, WorkflowDefinition, WorkflowExpression } from '../types.js';
2
- export declare const WORKFLOW_CONDITIONAL_ASSIGNMENT_MAX_CASES = 20;
3
- export declare const WORKFLOW_CONDITIONAL_ASSIGNMENT_MAX_BYTES = 16384;
4
- export declare const WORKFLOW_CONDITIONAL_ASSIGNMENT_LEAF_PROVIDERS: readonly ["fixed_users", "app_role", "app_role_in_scope", "supervisor_chain", "form_field_users", "input_users", "initiator", "previous_node_actor", "business_relation"];
5
- export type WorkflowConditionalAssignmentLeaf = WorkflowBindingEntry & {
1
+ import type { WorkflowBinding, WorkflowBindingEntry, WorkflowStandardBindingEntry, WorkflowDefinition, WorkflowExpression } from '../types.js';
2
+ export { WORKFLOW_CONDITIONAL_ASSIGNMENT_MAX_CASES, WORKFLOW_CONDITIONAL_ASSIGNMENT_MAX_BYTES, WORKFLOW_CONDITIONAL_ASSIGNMENT_LEAF_PROVIDERS, workflowConditionalAssignmentSchema } from './workflow-conditional-assignment-schema.js';
3
+ import { WORKFLOW_CONDITIONAL_ASSIGNMENT_LEAF_PROVIDERS } from './workflow-conditional-assignment-schema.js';
4
+ export type WorkflowConditionalAssignmentLeaf = WorkflowStandardBindingEntry & {
6
5
  provider: typeof WORKFLOW_CONDITIONAL_ASSIGNMENT_LEAF_PROVIDERS[number];
7
6
  };
8
- /** Staged contract: not yet part of WorkflowBindingProvider or registration. */
9
- export interface WorkflowConditionalAssignment {
7
+ /** Canonical code-owned declaration. Target platforms must explicitly advertise support. */
8
+ export interface WorkflowConditionalAssignment extends Partial<Record<Exclude<keyof WorkflowStandardBindingEntry, 'provider'>, never>> {
10
9
  provider: 'conditional';
11
10
  cases: Array<{
12
11
  label?: string;
@@ -19,672 +18,20 @@ export interface WorkflowConditionalAssignmentContext {
19
18
  definition: WorkflowDefinition;
20
19
  nodeId: string;
21
20
  /** Supplied by the active AppVersion owner, never a browser's catalogue. */
22
- releasedSources: Record<string, WorkflowBindingEntry>;
21
+ releasedSources: Record<string, WorkflowStandardBindingEntry>;
23
22
  /** Supplied by the immutable published definition owner. */
24
23
  frozenDefault?: WorkflowBindingEntry | WorkflowConditionalAssignment;
25
24
  standardProviders: readonly ('fixed_users' | 'app_role' | 'app_role_in_scope')[];
26
25
  scopeDimensions?: readonly string[];
27
26
  }
28
- export declare const workflowConditionalAssignmentSchema: {
29
- readonly type: "object";
30
- readonly additionalProperties: false;
31
- readonly required: readonly ["provider", "cases", "otherwise"];
32
- readonly properties: {
33
- readonly provider: {
34
- readonly const: "conditional";
35
- };
36
- readonly cases: {
37
- readonly type: "array";
38
- readonly minItems: 1;
39
- readonly maxItems: 20;
40
- readonly items: {
41
- readonly type: "object";
42
- readonly additionalProperties: false;
43
- readonly required: readonly ["when", "assignee"];
44
- readonly properties: {
45
- readonly label: {
46
- readonly type: "string";
47
- readonly minLength: 1;
48
- readonly maxLength: 160;
49
- };
50
- readonly when: {
51
- readonly type: "object";
52
- readonly required: readonly ["op"];
53
- readonly properties: {
54
- readonly op: {
55
- readonly enum: readonly ["literal", "path", "eq", "neq", "gt", "gte", "lt", "lte", "in", "contains", "and", "or", "not", "exists"];
56
- };
57
- readonly value: {};
58
- readonly path: {
59
- readonly type: "string";
60
- readonly pattern: "^[A-Za-z][A-Za-z0-9_.]{0,254}$";
61
- };
62
- readonly left: {
63
- readonly type: "object";
64
- };
65
- readonly right: {
66
- readonly type: "object";
67
- };
68
- readonly values: {
69
- readonly type: "array";
70
- readonly minItems: 1;
71
- readonly items: {
72
- readonly type: "object";
73
- };
74
- };
75
- };
76
- };
77
- readonly assignee: {
78
- readonly properties: {
79
- readonly provider: {
80
- readonly enum: readonly ["fixed_users", "app_role", "app_role_in_scope", "supervisor_chain", "form_field_users", "input_users", "initiator", "previous_node_actor", "business_relation"];
81
- };
82
- readonly users: {
83
- readonly type: "array";
84
- readonly uniqueItems: true;
85
- readonly items: {
86
- readonly type: "string";
87
- readonly minLength: 1;
88
- };
89
- };
90
- readonly inputPath: {
91
- readonly type: "string";
92
- };
93
- readonly selectedInputPath: {
94
- readonly type: "string";
95
- readonly maxLength: 255;
96
- readonly pattern: "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z][A-Za-z0-9_-]*)*$";
97
- };
98
- readonly candidateField: {
99
- readonly type: "string";
100
- readonly pattern: "^[A-Za-z][A-Za-z0-9_]{0,62}$";
101
- };
102
- readonly from: {
103
- readonly oneOf: readonly [{
104
- readonly const: "initiator";
105
- }, {
106
- readonly type: "object";
107
- readonly additionalProperties: false;
108
- readonly required: readonly ["field"];
109
- readonly properties: {
110
- readonly field: {
111
- readonly type: "string";
112
- readonly maxLength: 255;
113
- };
114
- };
115
- }];
116
- };
117
- readonly until: {
118
- readonly oneOf: readonly [{
119
- readonly const: "top";
120
- }, {
121
- readonly type: "object";
122
- readonly additionalProperties: false;
123
- readonly required: readonly ["level"];
124
- readonly properties: {
125
- readonly level: {
126
- readonly type: "integer";
127
- readonly minimum: 1;
128
- readonly maximum: 20;
129
- };
130
- };
131
- }, {
132
- readonly type: "object";
133
- readonly additionalProperties: false;
134
- readonly required: readonly ["roleCode"];
135
- readonly properties: {
136
- readonly roleCode: {
137
- readonly type: "string";
138
- readonly minLength: 1;
139
- };
140
- };
141
- }];
142
- };
143
- readonly continuous: {
144
- readonly type: "boolean";
145
- };
146
- readonly missing: {
147
- readonly enum: readonly ["skip_level", "block"];
148
- };
149
- readonly departmentIdFrom: {
150
- readonly type: "string";
151
- };
152
- readonly level: {
153
- readonly type: "integer";
154
- readonly minimum: 1;
155
- readonly maximum: 20;
156
- };
157
- readonly fallbackToAncestorSupervisor: {
158
- readonly type: "boolean";
159
- };
160
- readonly roleCode: {
161
- readonly type: "string";
162
- };
163
- readonly roleCodes: {
164
- readonly type: "array";
165
- readonly minItems: 2;
166
- readonly maxItems: 8;
167
- readonly uniqueItems: true;
168
- readonly items: {
169
- readonly type: "string";
170
- readonly maxLength: 128;
171
- readonly pattern: "^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$";
172
- };
173
- };
174
- readonly scope: {
175
- readonly type: "object";
176
- readonly additionalProperties: false;
177
- readonly required: readonly ["dimension"];
178
- readonly properties: {
179
- readonly dimension: {
180
- readonly type: "string";
181
- readonly minLength: 1;
182
- };
183
- readonly valueFrom: {
184
- readonly type: "string";
185
- };
186
- readonly value: {
187
- readonly type: "string";
188
- };
189
- };
190
- };
191
- readonly relationCode: {
192
- readonly type: "string";
193
- };
194
- readonly resourceCode: {
195
- readonly type: "string";
196
- };
197
- readonly resourceIdFrom: {
198
- readonly type: "string";
199
- };
200
- readonly providerCode: {
201
- readonly type: "string";
202
- };
203
- readonly min: {
204
- readonly type: "integer";
205
- readonly minimum: 1;
206
- readonly maximum: 200;
207
- };
208
- readonly max: {
209
- readonly type: "integer";
210
- readonly minimum: 1;
211
- readonly maximum: 200;
212
- };
213
- readonly delegatable: {
214
- readonly type: "boolean";
215
- };
216
- readonly routing: {
217
- readonly type: "object";
218
- readonly additionalProperties: false;
219
- readonly required: readonly ["policyCode", "title", "strategy", "dimensions", "sources"];
220
- readonly properties: {
221
- readonly policyCode: {
222
- readonly type: "string";
223
- readonly pattern: "^[a-z][a-z0-9_-]{0,127}$";
224
- };
225
- readonly title: {
226
- readonly type: "string";
227
- readonly minLength: 1;
228
- readonly maxLength: 128;
229
- };
230
- readonly strategy: {
231
- readonly enum: readonly ["replace_then_append", "replace_only"];
232
- };
233
- readonly dimensions: {
234
- readonly type: "object";
235
- readonly maxProperties: 8;
236
- readonly propertyNames: {
237
- readonly type: "string";
238
- readonly pattern: "^[a-z][a-z0-9_-]{0,127}$";
239
- };
240
- readonly additionalProperties: {
241
- readonly type: "object";
242
- readonly additionalProperties: false;
243
- readonly required: readonly ["title", "valueFrom"];
244
- readonly properties: {
245
- readonly title: {
246
- readonly type: "string";
247
- readonly minLength: 1;
248
- readonly maxLength: 128;
249
- };
250
- readonly valueFrom: {
251
- readonly type: "string";
252
- readonly minLength: 1;
253
- readonly maxLength: 255;
254
- };
255
- };
256
- };
257
- };
258
- readonly sources: {
259
- readonly type: "object";
260
- readonly minProperties: 1;
261
- readonly maxProperties: 16;
262
- readonly propertyNames: {
263
- readonly type: "string";
264
- readonly pattern: "^[a-z][a-z0-9_-]{0,127}$";
265
- };
266
- readonly additionalProperties: {
267
- readonly type: "object";
268
- readonly additionalProperties: false;
269
- readonly required: readonly ["title", "provider", "roleCode"];
270
- readonly properties: {
271
- readonly title: {
272
- readonly type: "string";
273
- readonly minLength: 1;
274
- readonly maxLength: 128;
275
- };
276
- readonly provider: {
277
- readonly enum: readonly ["app_role", "app_role_in_scope"];
278
- };
279
- readonly roleCode: {
280
- readonly type: "string";
281
- readonly pattern: "^[a-z][a-z0-9_-]{0,127}$";
282
- };
283
- readonly scope: {
284
- readonly type: "object";
285
- readonly additionalProperties: false;
286
- readonly required: readonly ["dimension"];
287
- readonly properties: {
288
- readonly dimension: {
289
- readonly type: "string";
290
- readonly pattern: "^[a-z][a-z0-9_-]{0,127}$";
291
- };
292
- readonly value: {
293
- readonly type: "string";
294
- readonly minLength: 1;
295
- readonly maxLength: 255;
296
- };
297
- readonly valueFrom: {
298
- readonly type: "string";
299
- readonly minLength: 1;
300
- readonly maxLength: 255;
301
- };
302
- };
303
- };
304
- };
305
- };
306
- };
307
- };
308
- };
309
- };
310
- readonly type: "object";
311
- readonly additionalProperties: false;
312
- readonly required: readonly ["provider"];
313
- readonly allOf: readonly [{
314
- readonly if: {
315
- readonly required: readonly ["roleCodes"];
316
- };
317
- readonly then: {
318
- readonly properties: {
319
- readonly provider: {
320
- readonly enum: readonly ["app_role", "app_role_in_scope"];
321
- };
322
- };
323
- readonly not: {
324
- readonly anyOf: readonly [{
325
- readonly required: readonly ["roleCode"];
326
- }, {
327
- readonly required: readonly ["candidateField"];
328
- }];
329
- };
330
- };
331
- }, {
332
- readonly if: {
333
- readonly required: readonly ["candidateField"];
334
- };
335
- readonly then: {
336
- readonly required: readonly ["inputPath"];
337
- readonly properties: {
338
- readonly provider: {
339
- readonly const: "form_field_users";
340
- };
341
- };
342
- readonly not: {
343
- readonly anyOf: readonly [{
344
- readonly required: readonly ["roleCode"];
345
- }, {
346
- readonly required: readonly ["scope"];
347
- }, {
348
- readonly required: readonly ["routing"];
349
- }];
350
- };
351
- };
352
- }, {
353
- readonly if: {
354
- readonly required: readonly ["selectedInputPath"];
355
- };
356
- readonly then: {
357
- readonly properties: {
358
- readonly provider: {
359
- readonly enum: readonly ["app_role", "app_role_in_scope"];
360
- };
361
- };
362
- readonly anyOf: readonly [{
363
- readonly required: readonly ["roleCode"];
364
- }, {
365
- readonly required: readonly ["roleCodes"];
366
- }];
367
- readonly not: {
368
- readonly anyOf: readonly [{
369
- readonly required: readonly ["candidateField"];
370
- }, {
371
- readonly required: readonly ["inputPath"];
372
- }, {
373
- readonly required: readonly ["routing"];
374
- }];
375
- };
376
- };
377
- }];
378
- };
379
- };
380
- };
381
- };
382
- readonly otherwise: {
383
- readonly properties: {
384
- readonly provider: {
385
- readonly enum: readonly ["fixed_users", "app_role", "app_role_in_scope", "supervisor_chain", "form_field_users", "input_users", "initiator", "previous_node_actor", "business_relation"];
386
- };
387
- readonly users: {
388
- readonly type: "array";
389
- readonly uniqueItems: true;
390
- readonly items: {
391
- readonly type: "string";
392
- readonly minLength: 1;
393
- };
394
- };
395
- readonly inputPath: {
396
- readonly type: "string";
397
- };
398
- readonly selectedInputPath: {
399
- readonly type: "string";
400
- readonly maxLength: 255;
401
- readonly pattern: "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z][A-Za-z0-9_-]*)*$";
402
- };
403
- readonly candidateField: {
404
- readonly type: "string";
405
- readonly pattern: "^[A-Za-z][A-Za-z0-9_]{0,62}$";
406
- };
407
- readonly from: {
408
- readonly oneOf: readonly [{
409
- readonly const: "initiator";
410
- }, {
411
- readonly type: "object";
412
- readonly additionalProperties: false;
413
- readonly required: readonly ["field"];
414
- readonly properties: {
415
- readonly field: {
416
- readonly type: "string";
417
- readonly maxLength: 255;
418
- };
419
- };
420
- }];
421
- };
422
- readonly until: {
423
- readonly oneOf: readonly [{
424
- readonly const: "top";
425
- }, {
426
- readonly type: "object";
427
- readonly additionalProperties: false;
428
- readonly required: readonly ["level"];
429
- readonly properties: {
430
- readonly level: {
431
- readonly type: "integer";
432
- readonly minimum: 1;
433
- readonly maximum: 20;
434
- };
435
- };
436
- }, {
437
- readonly type: "object";
438
- readonly additionalProperties: false;
439
- readonly required: readonly ["roleCode"];
440
- readonly properties: {
441
- readonly roleCode: {
442
- readonly type: "string";
443
- readonly minLength: 1;
444
- };
445
- };
446
- }];
447
- };
448
- readonly continuous: {
449
- readonly type: "boolean";
450
- };
451
- readonly missing: {
452
- readonly enum: readonly ["skip_level", "block"];
453
- };
454
- readonly departmentIdFrom: {
455
- readonly type: "string";
456
- };
457
- readonly level: {
458
- readonly type: "integer";
459
- readonly minimum: 1;
460
- readonly maximum: 20;
461
- };
462
- readonly fallbackToAncestorSupervisor: {
463
- readonly type: "boolean";
464
- };
465
- readonly roleCode: {
466
- readonly type: "string";
467
- };
468
- readonly roleCodes: {
469
- readonly type: "array";
470
- readonly minItems: 2;
471
- readonly maxItems: 8;
472
- readonly uniqueItems: true;
473
- readonly items: {
474
- readonly type: "string";
475
- readonly maxLength: 128;
476
- readonly pattern: "^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$";
477
- };
478
- };
479
- readonly scope: {
480
- readonly type: "object";
481
- readonly additionalProperties: false;
482
- readonly required: readonly ["dimension"];
483
- readonly properties: {
484
- readonly dimension: {
485
- readonly type: "string";
486
- readonly minLength: 1;
487
- };
488
- readonly valueFrom: {
489
- readonly type: "string";
490
- };
491
- readonly value: {
492
- readonly type: "string";
493
- };
494
- };
495
- };
496
- readonly relationCode: {
497
- readonly type: "string";
498
- };
499
- readonly resourceCode: {
500
- readonly type: "string";
501
- };
502
- readonly resourceIdFrom: {
503
- readonly type: "string";
504
- };
505
- readonly providerCode: {
506
- readonly type: "string";
507
- };
508
- readonly min: {
509
- readonly type: "integer";
510
- readonly minimum: 1;
511
- readonly maximum: 200;
512
- };
513
- readonly max: {
514
- readonly type: "integer";
515
- readonly minimum: 1;
516
- readonly maximum: 200;
517
- };
518
- readonly delegatable: {
519
- readonly type: "boolean";
520
- };
521
- readonly routing: {
522
- readonly type: "object";
523
- readonly additionalProperties: false;
524
- readonly required: readonly ["policyCode", "title", "strategy", "dimensions", "sources"];
525
- readonly properties: {
526
- readonly policyCode: {
527
- readonly type: "string";
528
- readonly pattern: "^[a-z][a-z0-9_-]{0,127}$";
529
- };
530
- readonly title: {
531
- readonly type: "string";
532
- readonly minLength: 1;
533
- readonly maxLength: 128;
534
- };
535
- readonly strategy: {
536
- readonly enum: readonly ["replace_then_append", "replace_only"];
537
- };
538
- readonly dimensions: {
539
- readonly type: "object";
540
- readonly maxProperties: 8;
541
- readonly propertyNames: {
542
- readonly type: "string";
543
- readonly pattern: "^[a-z][a-z0-9_-]{0,127}$";
544
- };
545
- readonly additionalProperties: {
546
- readonly type: "object";
547
- readonly additionalProperties: false;
548
- readonly required: readonly ["title", "valueFrom"];
549
- readonly properties: {
550
- readonly title: {
551
- readonly type: "string";
552
- readonly minLength: 1;
553
- readonly maxLength: 128;
554
- };
555
- readonly valueFrom: {
556
- readonly type: "string";
557
- readonly minLength: 1;
558
- readonly maxLength: 255;
559
- };
560
- };
561
- };
562
- };
563
- readonly sources: {
564
- readonly type: "object";
565
- readonly minProperties: 1;
566
- readonly maxProperties: 16;
567
- readonly propertyNames: {
568
- readonly type: "string";
569
- readonly pattern: "^[a-z][a-z0-9_-]{0,127}$";
570
- };
571
- readonly additionalProperties: {
572
- readonly type: "object";
573
- readonly additionalProperties: false;
574
- readonly required: readonly ["title", "provider", "roleCode"];
575
- readonly properties: {
576
- readonly title: {
577
- readonly type: "string";
578
- readonly minLength: 1;
579
- readonly maxLength: 128;
580
- };
581
- readonly provider: {
582
- readonly enum: readonly ["app_role", "app_role_in_scope"];
583
- };
584
- readonly roleCode: {
585
- readonly type: "string";
586
- readonly pattern: "^[a-z][a-z0-9_-]{0,127}$";
587
- };
588
- readonly scope: {
589
- readonly type: "object";
590
- readonly additionalProperties: false;
591
- readonly required: readonly ["dimension"];
592
- readonly properties: {
593
- readonly dimension: {
594
- readonly type: "string";
595
- readonly pattern: "^[a-z][a-z0-9_-]{0,127}$";
596
- };
597
- readonly value: {
598
- readonly type: "string";
599
- readonly minLength: 1;
600
- readonly maxLength: 255;
601
- };
602
- readonly valueFrom: {
603
- readonly type: "string";
604
- readonly minLength: 1;
605
- readonly maxLength: 255;
606
- };
607
- };
608
- };
609
- };
610
- };
611
- };
612
- };
613
- };
614
- };
615
- readonly type: "object";
616
- readonly additionalProperties: false;
617
- readonly required: readonly ["provider"];
618
- readonly allOf: readonly [{
619
- readonly if: {
620
- readonly required: readonly ["roleCodes"];
621
- };
622
- readonly then: {
623
- readonly properties: {
624
- readonly provider: {
625
- readonly enum: readonly ["app_role", "app_role_in_scope"];
626
- };
627
- };
628
- readonly not: {
629
- readonly anyOf: readonly [{
630
- readonly required: readonly ["roleCode"];
631
- }, {
632
- readonly required: readonly ["candidateField"];
633
- }];
634
- };
635
- };
636
- }, {
637
- readonly if: {
638
- readonly required: readonly ["candidateField"];
639
- };
640
- readonly then: {
641
- readonly required: readonly ["inputPath"];
642
- readonly properties: {
643
- readonly provider: {
644
- readonly const: "form_field_users";
645
- };
646
- };
647
- readonly not: {
648
- readonly anyOf: readonly [{
649
- readonly required: readonly ["roleCode"];
650
- }, {
651
- readonly required: readonly ["scope"];
652
- }, {
653
- readonly required: readonly ["routing"];
654
- }];
655
- };
656
- };
657
- }, {
658
- readonly if: {
659
- readonly required: readonly ["selectedInputPath"];
660
- };
661
- readonly then: {
662
- readonly properties: {
663
- readonly provider: {
664
- readonly enum: readonly ["app_role", "app_role_in_scope"];
665
- };
666
- };
667
- readonly anyOf: readonly [{
668
- readonly required: readonly ["roleCode"];
669
- }, {
670
- readonly required: readonly ["roleCodes"];
671
- }];
672
- readonly not: {
673
- readonly anyOf: readonly [{
674
- readonly required: readonly ["candidateField"];
675
- }, {
676
- readonly required: readonly ["inputPath"];
677
- }, {
678
- readonly required: readonly ["routing"];
679
- }];
680
- };
681
- };
682
- }];
683
- };
684
- };
685
- };
686
27
  /** One bounded iterator for future role, capability, principal and source-sync consumers. No recursion. */
687
- export declare function workflowAssignmentLeaves(entry: WorkflowBindingEntry | WorkflowConditionalAssignment): WorkflowBindingEntry[];
28
+ export declare function workflowAssignmentLeaves(entry: WorkflowBindingEntry | WorkflowConditionalAssignment): WorkflowStandardBindingEntry[];
29
+ /** Code-owned defaults establish their own ceiling; administrator edits do not. */
30
+ export declare function validateWorkflowConditionalBindingDefinition(definition: WorkflowDefinition, binding: WorkflowBinding): string[];
31
+ /** For flat-only validators with no graph semantics (routing, roles and field candidates). */
32
+ export declare function workflowAssignmentLeafBinding(binding: WorkflowBinding): {
33
+ bindings: Record<string, WorkflowStandardBindingEntry>;
34
+ };
688
35
  /** Shape only. Authority, graph/schema and current principals are additional gates. */
689
36
  export declare function validateWorkflowConditionalAssignmentShape(value: unknown): string[];
690
37
  /** Synthetic steps prefixes do not make a required output optional; its producer must dominate the consumer. */