@lesliechan721/aw-plugin-core 0.1.0-beta.60 → 0.1.0-beta.62
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/aw-capabilities.d.ts +1 -1
- package/dist/aw-capabilities.js +1 -0
- package/dist/aw-capabilities.js.map +1 -1
- package/dist/generated/plugin-manifest-v3.d.ts +25 -11
- package/dist/manifest-contract.js +3 -1
- package/dist/manifest-contract.js.map +1 -1
- package/dist/plugin-authoring-capabilities.js +2 -2
- package/dist/plugin-authoring-capabilities.js.map +1 -1
- package/dist/plugin-config.d.ts +13 -6
- package/dist/plugin-config.js +228 -50
- package/dist/plugin-config.js.map +1 -1
- package/dist/plugin-requirements.js +8 -6
- package/dist/plugin-requirements.js.map +1 -1
- package/dist/runtime-config.d.ts +2 -1
- package/dist/runtime-config.js +2 -2
- package/dist/runtime-config.js.map +1 -1
- package/dist/types.d.ts +16 -0
- package/dist/workspace.js +50 -19
- package/dist/workspace.js.map +1 -1
- package/package.json +1 -1
- package/schemas/plugin-manifest-v3.json +19 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-authoring-capabilities.js","sourceRoot":"","sources":["../src/plugin-authoring-capabilities.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin-authoring-capabilities.js","sourceRoot":"","sources":["../src/plugin-authoring-capabilities.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin-config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PluginConfigDefinition, PluginConfigObjectField, PluginConfigObjectPropertyField, PluginConfigPreset, PluginConfigScalar, PluginConfigScalarField, PluginConfigSchemaField, PluginConfigValidationIssue, PluginConfigValue } from './types.js';
|
|
1
|
+
import type { PluginConfigDefinition, PluginConfigDependencyField, PluginConfigReferenceContext, PluginConfigObjectField, PluginConfigObjectPropertyField, PluginConfigPreset, PluginConfigScalar, PluginConfigScalarField, PluginConfigSchemaField, PluginConfigValidationIssue, PluginConfigValue } from './types.js';
|
|
2
2
|
export declare const PLUGIN_CONFIG_V3_MAX_DEFINITIONS = 64;
|
|
3
3
|
export declare const PLUGIN_CONFIG_V3_MAX_FIELDS = 256;
|
|
4
4
|
/** Count each followed $ref edge, including edges from object properties; inline objects add zero. */
|
|
@@ -21,13 +21,17 @@ export interface PluginConfigObjectPropertiesResolution {
|
|
|
21
21
|
export declare function resolvePluginConfigObjectProperties(definition: PluginConfigObjectField, value: unknown, field?: string): PluginConfigObjectPropertiesResolution;
|
|
22
22
|
export declare function validatePluginConfigValue(definition: PluginConfigSchemaField, value: unknown, field?: string): PluginConfigValidationIssue[];
|
|
23
23
|
export declare function validatePluginConfigValue(field: string, definition: PluginConfigSchemaField, value: unknown): PluginConfigValidationIssue[];
|
|
24
|
-
export declare function validatePluginConfigDocument(definition: PluginConfigDefinition, value: unknown): PluginConfigValidationIssue[];
|
|
24
|
+
export declare function validatePluginConfigDocument(definition: PluginConfigDefinition, value: unknown, context?: PluginConfigReferenceContext): PluginConfigValidationIssue[];
|
|
25
25
|
/** Returns validation dependencies only; callers still project their original allowed keys. */
|
|
26
|
-
export declare function getPluginConfigDependencyKeys(definition: PluginConfigDefinition, keys: readonly string[]): string[];
|
|
26
|
+
export declare function getPluginConfigDependencyKeys(definition: PluginConfigDefinition, keys: readonly string[], context?: PluginConfigReferenceContext): string[];
|
|
27
|
+
/** Validation closure only. Returned identities never widen renderer or runtime allowed keys. */
|
|
28
|
+
export declare function getPluginConfigDependencyFields(definition: PluginConfigDefinition, keys: readonly string[], context?: PluginConfigReferenceContext): PluginConfigDependencyField[];
|
|
29
|
+
/** Associate definitions and their defaults. Pass the original config to include unused source definitions. */
|
|
30
|
+
export declare function assertPluginConfigReferenceSchemas(definition: PluginConfigDefinition, context: PluginConfigReferenceContext, sourceConfig?: unknown): void;
|
|
27
31
|
/** Validate one effective candidate, including complete sources required by selected fields. */
|
|
28
|
-
export declare function validatePluginConfigCandidate(definition: PluginConfigDefinition, values: unknown, keys?: readonly string[]): PluginConfigValidationIssue[];
|
|
32
|
+
export declare function validatePluginConfigCandidate(definition: PluginConfigDefinition, values: unknown, keys?: readonly string[], context?: PluginConfigReferenceContext): PluginConfigValidationIssue[];
|
|
29
33
|
/** Project reference choices from an already resolved scope candidate, using the same validation as writes. */
|
|
30
|
-
export declare function getPluginConfigReferenceChoices(definition: PluginConfigDefinition, scalar: PluginConfigScalarField, values: Record<string, unknown
|
|
34
|
+
export declare function getPluginConfigReferenceChoices(definition: PluginConfigDefinition, scalar: PluginConfigScalarField, values: Record<string, unknown>, context?: PluginConfigReferenceContext): {
|
|
31
35
|
choices: Array<{
|
|
32
36
|
value: PluginConfigScalar;
|
|
33
37
|
title: string;
|
|
@@ -44,4 +48,7 @@ export declare function redactPluginConfigValue(definition: PluginConfigSchemaFi
|
|
|
44
48
|
export declare function formatPluginConfigIssue(issue: PluginConfigValidationIssue): string;
|
|
45
49
|
/** Decode exactly one local property token, never a traversal path. */
|
|
46
50
|
export declare function decodePluginConfigSummaryPath(value: string): string;
|
|
47
|
-
export declare function normalizePluginConfigDefinition(value: unknown, path?: string
|
|
51
|
+
export declare function normalizePluginConfigDefinition(value: unknown, path?: string, owner?: {
|
|
52
|
+
plugin?: string;
|
|
53
|
+
dependencies?: readonly string[];
|
|
54
|
+
}): PluginConfigDefinition;
|
package/dist/plugin-config.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RE2 } from 're2-wasm';
|
|
2
2
|
const CONFIG_KEY_PATTERN = /^[A-Za-z][A-Za-z0-9_]*$/u;
|
|
3
|
+
const PLUGIN_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
|
|
3
4
|
const IDENTIFIER_PATTERN = /^[A-Za-z][A-Za-z0-9_]*$/u;
|
|
4
5
|
const SLUG_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
|
|
5
6
|
const SEMVER_PATTERN = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|(?:[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))(?:\.(?:0|[1-9]\d*|(?:[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/u;
|
|
@@ -438,21 +439,12 @@ export function validatePluginConfigValue(first, second, third) {
|
|
|
438
439
|
? validateArrayField(resolved.definition, resolved.value, resolved.field)
|
|
439
440
|
: validateScalarField(resolved.definition, resolved.value, resolved.field);
|
|
440
441
|
}
|
|
441
|
-
export function validatePluginConfigDocument(definition, value) {
|
|
442
|
+
export function validatePluginConfigDocument(definition, value, context) {
|
|
442
443
|
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
443
444
|
return [createIssue('type', '$document', 'Expected a config object.')];
|
|
444
445
|
}
|
|
445
446
|
const input = value;
|
|
446
447
|
const issues = [];
|
|
447
|
-
for (const [field, fieldDefinition] of Object.entries(definition.fields)) {
|
|
448
|
-
if (!Object.hasOwn(input, field)) {
|
|
449
|
-
if (fieldDefinition.required === true) {
|
|
450
|
-
issues.push(createIssue('required', field, 'Required field is missing.'));
|
|
451
|
-
}
|
|
452
|
-
continue;
|
|
453
|
-
}
|
|
454
|
-
issues.push(...validatePluginConfigValue(fieldDefinition, input[field], field));
|
|
455
|
-
}
|
|
456
448
|
for (const field of Object.keys(input)) {
|
|
457
449
|
if (isDangerousConfigKey(field)) {
|
|
458
450
|
issues.push(createIssue('dangerousKey', field, 'Dangerous config key is not allowed.'));
|
|
@@ -462,7 +454,8 @@ export function validatePluginConfigDocument(definition, value) {
|
|
|
462
454
|
issues.push(createIssue('unknownField', field, 'Unknown config field.'));
|
|
463
455
|
}
|
|
464
456
|
}
|
|
465
|
-
return [...issues,
|
|
457
|
+
return [...issues,
|
|
458
|
+
...validateConfigCandidateFields(definition, input, Object.keys(definition.fields), context)];
|
|
466
459
|
}
|
|
467
460
|
function scalarSchemas(definition) {
|
|
468
461
|
if (definition.type === 'array')
|
|
@@ -476,7 +469,11 @@ function scalarSchemas(definition) {
|
|
|
476
469
|
.flatMap((properties) => Object.values(properties).flatMap((child) => scalarSchemas(child)));
|
|
477
470
|
}
|
|
478
471
|
/** Returns validation dependencies only; callers still project their original allowed keys. */
|
|
479
|
-
export function getPluginConfigDependencyKeys(definition, keys) {
|
|
472
|
+
export function getPluginConfigDependencyKeys(definition, keys, context) {
|
|
473
|
+
if (context !== undefined) {
|
|
474
|
+
return getPluginConfigDependencyFields(definition, keys, context)
|
|
475
|
+
.filter((entry) => entry.plugin === context.plugin).map((entry) => entry.field);
|
|
476
|
+
}
|
|
480
477
|
const result = new Set();
|
|
481
478
|
const visit = (key) => {
|
|
482
479
|
if (result.has(key))
|
|
@@ -486,14 +483,170 @@ export function getPluginConfigDependencyKeys(definition, keys) {
|
|
|
486
483
|
throw new Error(`Unknown config key "${key}".`);
|
|
487
484
|
result.add(key);
|
|
488
485
|
for (const scalar of scalarSchemas(field)) {
|
|
489
|
-
if ('valueRef' in scalar && scalar.valueRef !== undefined)
|
|
486
|
+
if ('valueRef' in scalar && scalar.valueRef !== undefined && scalar.valueRef.plugin === undefined)
|
|
490
487
|
visit(scalar.valueRef.field);
|
|
491
488
|
}
|
|
492
489
|
};
|
|
493
490
|
keys.forEach(visit);
|
|
494
491
|
return [...result];
|
|
495
492
|
}
|
|
496
|
-
function
|
|
493
|
+
function referencePlugin(definition, context, plugin) {
|
|
494
|
+
if (plugin === (context?.plugin ?? ''))
|
|
495
|
+
return { definition, dependencies: context?.dependencies ?? [] };
|
|
496
|
+
const provider = ownProperty(context?.plugins, plugin);
|
|
497
|
+
if (provider === undefined)
|
|
498
|
+
throw new Error(`valueRefContext: Missing config provider plugin "${plugin}" in the same source context.`);
|
|
499
|
+
return provider;
|
|
500
|
+
}
|
|
501
|
+
function assertReferenceSource(scalar, source, identity) {
|
|
502
|
+
if (!('valueRef' in scalar) || scalar.valueRef === undefined)
|
|
503
|
+
return;
|
|
504
|
+
const ref = scalar.valueRef;
|
|
505
|
+
if (source?.type !== 'array' || source.items.type !== 'object' || source.items.properties === undefined) {
|
|
506
|
+
throw new Error(`valueRefSchema: ${identity}: expected a declared fixed-object array.`);
|
|
507
|
+
}
|
|
508
|
+
const key = ownProperty(source.items.properties, ref.key);
|
|
509
|
+
if (key === undefined || key.type !== scalar.type || ('sensitive' in key && key.sensitive === true)
|
|
510
|
+
|| source.validation?.uniqueBy !== ref.key) {
|
|
511
|
+
throw new Error(`valueRefSchema: ${identity}.${ref.key}: expected a scalar of the same type with matching uniqueBy.`);
|
|
512
|
+
}
|
|
513
|
+
const label = ref.label === undefined ? undefined : ownProperty(source.items.properties, ref.label);
|
|
514
|
+
if (ref.label !== undefined && (label === undefined || label.type === 'array' || label.type === 'object')) {
|
|
515
|
+
throw new Error(`valueRefSchema: ${identity}.${ref.label}: expected a declared scalar property.`);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
class ConfigReferenceSchemaError extends Error {
|
|
519
|
+
field;
|
|
520
|
+
constructor(message, field) {
|
|
521
|
+
super(message);
|
|
522
|
+
this.field = field;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
/** Validation closure only. Returned identities never widen renderer or runtime allowed keys. */
|
|
526
|
+
export function getPluginConfigDependencyFields(definition, keys, context) {
|
|
527
|
+
const result = new Map();
|
|
528
|
+
const visiting = new Set();
|
|
529
|
+
const visit = (plugin, field) => {
|
|
530
|
+
const identity = JSON.stringify([plugin, field]);
|
|
531
|
+
if (visiting.has(identity))
|
|
532
|
+
throw new Error(`valueRefCycle: Circular config reference at "${plugin}/${field}".`);
|
|
533
|
+
if (result.has(identity))
|
|
534
|
+
return;
|
|
535
|
+
const owner = referencePlugin(definition, context, plugin);
|
|
536
|
+
const schema = ownProperty(owner.definition.fields, field);
|
|
537
|
+
if (schema === undefined)
|
|
538
|
+
throw new Error(`valueRefSchema: Unknown config field "${plugin}/${field}".`);
|
|
539
|
+
if ('sensitive' in schema && schema.sensitive === true) {
|
|
540
|
+
// Root fields can be sensitive; a reference dependency cannot.
|
|
541
|
+
if (visiting.size > 0)
|
|
542
|
+
throw new Error(`valueRefSchema: Sensitive config dependency "${plugin}/${field}" is denied.`);
|
|
543
|
+
}
|
|
544
|
+
visiting.add(identity);
|
|
545
|
+
result.set(identity, { plugin, field });
|
|
546
|
+
for (const scalar of scalarSchemas(schema)) {
|
|
547
|
+
if (!('valueRef' in scalar) || scalar.valueRef === undefined)
|
|
548
|
+
continue;
|
|
549
|
+
const ref = scalar.valueRef;
|
|
550
|
+
const provider = ref.plugin ?? plugin;
|
|
551
|
+
if (ref.plugin !== undefined) {
|
|
552
|
+
if (context === undefined)
|
|
553
|
+
throw new Error(`valueRefContext: Config reference "${ref.plugin}/${ref.field}" requires a same-source plugin context.`);
|
|
554
|
+
if (owner.definition.schemaVersion !== 4 || !PLUGIN_NAME_PATTERN.test(ref.plugin)
|
|
555
|
+
|| ref.plugin === plugin || !owner.dependencies.includes(ref.plugin)) {
|
|
556
|
+
throw new Error(`valueRefSchema: Plugin "${plugin}" must use Config v4 and declare "${ref.plugin}" as a direct dependency; self references use local fields.`);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
const sourceOwner = referencePlugin(definition, context, provider);
|
|
560
|
+
assertReferenceSource(scalar, ownProperty(sourceOwner.definition.fields, ref.field), `${provider}/${ref.field}`);
|
|
561
|
+
visit(provider, ref.field);
|
|
562
|
+
}
|
|
563
|
+
visiting.delete(identity);
|
|
564
|
+
};
|
|
565
|
+
for (const field of keys) {
|
|
566
|
+
try {
|
|
567
|
+
visit(context?.plugin ?? '', field);
|
|
568
|
+
}
|
|
569
|
+
catch (error) {
|
|
570
|
+
throw new ConfigReferenceSchemaError(error.message, field);
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
return [...result.values()];
|
|
574
|
+
}
|
|
575
|
+
/** Associate definitions and their defaults. Pass the original config to include unused source definitions. */
|
|
576
|
+
export function assertPluginConfigReferenceSchemas(definition, context, sourceConfig) {
|
|
577
|
+
getPluginConfigDependencyFields(definition, Object.keys(definition.fields), context);
|
|
578
|
+
const defaults = (config) => Object.fromEntries(Object.entries(config.fields).flatMap(([field, schema]) => schema.default === undefined ? [] : [[field, schema.default]]));
|
|
579
|
+
const defaultValues = defaults(definition);
|
|
580
|
+
const defaultContext = {
|
|
581
|
+
...context,
|
|
582
|
+
plugins: Object.fromEntries(Object.entries(context.plugins).map(([plugin, entry]) => [plugin, { ...entry, values: defaults(entry.definition) }])),
|
|
583
|
+
};
|
|
584
|
+
const assertDefaults = (config, values, keys) => {
|
|
585
|
+
const issues = validatePluginConfigCandidate(config, values, keys, defaultContext);
|
|
586
|
+
if (issues.length > 0)
|
|
587
|
+
throw new Error(`valueRefDefault: Invalid config.default for plugin "${context.plugin}": ${formatPluginConfigIssue(issues[0])}`);
|
|
588
|
+
};
|
|
589
|
+
assertDefaults(definition, defaultValues, Object.keys(defaultValues));
|
|
590
|
+
if (sourceConfig !== undefined) {
|
|
591
|
+
const source = asObject(sourceConfig, 'config');
|
|
592
|
+
if (source.definitions !== undefined) {
|
|
593
|
+
const definitions = createPropertyMap();
|
|
594
|
+
expandConfigReferences(source, 'config', source.schemaVersion === 4, context, definitions);
|
|
595
|
+
for (const [name, schema] of Object.entries(definitions)) {
|
|
596
|
+
const field = `$definition.${name}`;
|
|
597
|
+
const candidate = { ...definition, fields: { ...definition.fields, [field]: schema } };
|
|
598
|
+
getPluginConfigDependencyFields(candidate, [field], context);
|
|
599
|
+
if (schema.default !== undefined) {
|
|
600
|
+
assertDefaults(candidate, { ...defaultValues, [field]: schema.default }, [field]);
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
function validateConfigCandidateFields(definition, values, keys, context) {
|
|
607
|
+
let closure;
|
|
608
|
+
try {
|
|
609
|
+
closure = getPluginConfigDependencyFields(definition, keys, context);
|
|
610
|
+
}
|
|
611
|
+
catch (error) {
|
|
612
|
+
const message = error.message;
|
|
613
|
+
const code = message.startsWith('valueRefContext:') ? 'valueRefContext'
|
|
614
|
+
: message.startsWith('valueRefCycle:') ? 'valueRefCycle' : 'valueRefSchema';
|
|
615
|
+
return [createIssue(code, error instanceof ConfigReferenceSchemaError ? error.field : keys[0] ?? '$document', message)];
|
|
616
|
+
}
|
|
617
|
+
const rootPlugin = context?.plugin ?? '';
|
|
618
|
+
const checked = new Map();
|
|
619
|
+
const inputFor = (plugin) => plugin === rootPlugin
|
|
620
|
+
? values : referencePlugin(definition, context, plugin).values ?? {};
|
|
621
|
+
const evaluate = (plugin, field) => {
|
|
622
|
+
const identity = JSON.stringify([plugin, field]);
|
|
623
|
+
const previous = checked.get(identity);
|
|
624
|
+
if (previous !== undefined)
|
|
625
|
+
return previous;
|
|
626
|
+
const owner = referencePlugin(definition, context, plugin);
|
|
627
|
+
const schema = owner.definition.fields[field];
|
|
628
|
+
const input = inputFor(plugin);
|
|
629
|
+
const fieldIssues = Object.hasOwn(input, field)
|
|
630
|
+
? validatePluginConfigValue(schema, input[field], field)
|
|
631
|
+
: schema.required === true ? [createIssue('required', field, 'Required field is missing.')] : [];
|
|
632
|
+
const ownerContext = context === undefined ? undefined : {
|
|
633
|
+
...context, plugin, dependencies: owner.dependencies,
|
|
634
|
+
plugins: { ...context.plugins, [rootPlugin]: { definition, dependencies: context.dependencies, values } },
|
|
635
|
+
};
|
|
636
|
+
fieldIssues.push(...validatePluginConfigReferences(owner.definition, input, [field], ownerContext, (provider, sourceField) => evaluate(provider, sourceField).length === 0));
|
|
637
|
+
const located = plugin === rootPlugin ? fieldIssues : fieldIssues.map((issue) => ({
|
|
638
|
+
...issue, path: { ...issue.path, plugin: issue.path.plugin ?? plugin },
|
|
639
|
+
message: `Config "${plugin}/${issue.path.field}": ${issue.message}`,
|
|
640
|
+
}));
|
|
641
|
+
checked.set(identity, located);
|
|
642
|
+
return located;
|
|
643
|
+
};
|
|
644
|
+
closure.forEach(({ plugin, field }) => evaluate(plugin, field));
|
|
645
|
+
// Keep direct value errors before relationship errors, as document validation historically does.
|
|
646
|
+
return closure.flatMap(({ plugin, field }) => checked.get(JSON.stringify([plugin, field])))
|
|
647
|
+
.sort((left, right) => Number(left.code.startsWith('valueRef')) - Number(right.code.startsWith('valueRef')));
|
|
648
|
+
}
|
|
649
|
+
function validatePluginConfigReferences(definition, input, keys, context, sourceValid, localOnly = false) {
|
|
497
650
|
const issues = [];
|
|
498
651
|
const reservedPaths = new Set();
|
|
499
652
|
const sources = new Map();
|
|
@@ -502,15 +655,22 @@ function validatePluginConfigReferences(definition, input, keys) {
|
|
|
502
655
|
if (!('valueRef' in scalar) || scalar.valueRef === undefined)
|
|
503
656
|
return;
|
|
504
657
|
const ref = scalar.valueRef;
|
|
505
|
-
|
|
658
|
+
if (localOnly && ref.plugin !== undefined)
|
|
659
|
+
return;
|
|
660
|
+
const plugin = ref.plugin ?? context?.plugin ?? '';
|
|
661
|
+
const identity = JSON.stringify([plugin, ref.field]);
|
|
662
|
+
const sourceOwner = ref.plugin === undefined ? { definition, values: input }
|
|
663
|
+
: referencePlugin(definition, context, ref.plugin);
|
|
664
|
+
const sourceInput = sourceOwner.values ?? {};
|
|
665
|
+
let source = sources.get(identity);
|
|
506
666
|
if (source === undefined) {
|
|
507
|
-
const sourceSchema = definition.fields[ref.field];
|
|
508
|
-
const sourceValue = ownProperty(
|
|
509
|
-
const valid = sourceValue === undefined
|
|
667
|
+
const sourceSchema = sourceOwner.definition.fields[ref.field];
|
|
668
|
+
const sourceValue = ownProperty(sourceInput, ref.field);
|
|
669
|
+
const valid = sourceValid !== undefined ? sourceValid(plugin, ref.field) : sourceValue === undefined
|
|
510
670
|
? sourceSchema.required !== true
|
|
511
671
|
: validatePluginConfigValue(sourceSchema, sourceValue, ref.field).length === 0;
|
|
512
672
|
source = { valid, entries: valid ? (sourceValue ?? []) : [] };
|
|
513
|
-
sources.set(
|
|
673
|
+
sources.set(identity, source);
|
|
514
674
|
}
|
|
515
675
|
const add = (code, message) => {
|
|
516
676
|
const property = segments.find((segment) => typeof segment === 'string');
|
|
@@ -519,7 +679,7 @@ function validatePluginConfigReferences(definition, input, keys) {
|
|
|
519
679
|
? issue : { ...issue, path: { ...issue.path, segments: [field, ...segments] } });
|
|
520
680
|
};
|
|
521
681
|
if (!source.valid) {
|
|
522
|
-
add('valueRefSource', `Referenced config "${ref.field}" is invalid; fix its complete array value.`);
|
|
682
|
+
add('valueRefSource', `Referenced config "${ref.plugin === undefined ? '' : `${ref.plugin}/`}${ref.field}" is invalid; fix its complete array value.`);
|
|
523
683
|
return;
|
|
524
684
|
}
|
|
525
685
|
let allowed = allowedValues.get(ref);
|
|
@@ -527,10 +687,11 @@ function validatePluginConfigReferences(definition, input, keys) {
|
|
|
527
687
|
allowed = new Set(ref.include);
|
|
528
688
|
for (const [sourceIndex, entry] of source.entries.entries()) {
|
|
529
689
|
if (ref.include?.includes(entry[ref.key]) === true) {
|
|
530
|
-
const pathKey = `${
|
|
690
|
+
const pathKey = `${identity}\0${sourceIndex}\0${ref.key}`;
|
|
531
691
|
if (!reservedPaths.has(pathKey)) {
|
|
532
692
|
reservedPaths.add(pathKey);
|
|
533
|
-
|
|
693
|
+
const issue = withArrayPath(createIssue('valueRefReserved', ref.field, 'Referenced property collides with a reserved included value.', ref.key), sourceIndex);
|
|
694
|
+
issues.push(ref.plugin === undefined ? issue : { ...issue, path: { ...issue.path, plugin: ref.plugin } });
|
|
534
695
|
}
|
|
535
696
|
}
|
|
536
697
|
allowed.add(entry[ref.key]);
|
|
@@ -540,7 +701,7 @@ function validatePluginConfigReferences(definition, input, keys) {
|
|
|
540
701
|
if (value === undefined || validateScalarField(scalar, value, field).length > 0)
|
|
541
702
|
return;
|
|
542
703
|
if (!allowed.has(value)) {
|
|
543
|
-
add('valueRef', `Expected an included value or a key from config "${ref.field}". Add that key first, update dependent fields, then remove the old key.`);
|
|
704
|
+
add('valueRef', `Expected an included value or a key from config "${ref.plugin === undefined ? '' : `${ref.plugin}/`}${ref.field}". Add that key first, update dependent fields, then remove the old key.`);
|
|
544
705
|
}
|
|
545
706
|
};
|
|
546
707
|
const walk = (schema, value, field, segments = []) => {
|
|
@@ -573,43 +734,43 @@ function validatePluginConfigReferences(definition, input, keys) {
|
|
|
573
734
|
};
|
|
574
735
|
for (const field of keys) {
|
|
575
736
|
const schema = definition.fields[field];
|
|
737
|
+
if (!scalarSchemas(schema).some((scalar) => 'valueRef' in scalar && scalar.valueRef !== undefined))
|
|
738
|
+
continue;
|
|
576
739
|
walk(schema, ownProperty(input, field), field);
|
|
577
740
|
}
|
|
578
741
|
return issues;
|
|
579
742
|
}
|
|
580
743
|
/** Validate one effective candidate, including complete sources required by selected fields. */
|
|
581
|
-
export function validatePluginConfigCandidate(definition, values, keys) {
|
|
744
|
+
export function validatePluginConfigCandidate(definition, values, keys, context) {
|
|
582
745
|
if (!isSafeJsonRecord(values))
|
|
583
746
|
return [createIssue('type', '$document', 'Expected a config JSON object.')];
|
|
584
747
|
if (keys === undefined)
|
|
585
|
-
return validatePluginConfigDocument(definition, values);
|
|
586
|
-
|
|
587
|
-
const projected = Object.fromEntries(closure.flatMap((key) => Object.hasOwn(values, key) ? [[key, values[key]]] : []));
|
|
588
|
-
return validatePluginConfigDocument({ ...definition, fields: Object.fromEntries(closure.map((key) => [key, definition.fields[key]])) }, projected);
|
|
748
|
+
return validatePluginConfigDocument(definition, values, context);
|
|
749
|
+
return validateConfigCandidateFields(definition, values, keys, context);
|
|
589
750
|
}
|
|
590
751
|
/** Project reference choices from an already resolved scope candidate, using the same validation as writes. */
|
|
591
|
-
export function getPluginConfigReferenceChoices(definition, scalar, values) {
|
|
752
|
+
export function getPluginConfigReferenceChoices(definition, scalar, values, context) {
|
|
592
753
|
if (!('valueRef' in scalar) || scalar.valueRef === undefined)
|
|
593
754
|
return { choices: [], issues: [] };
|
|
594
755
|
const ref = scalar.valueRef;
|
|
595
|
-
const
|
|
756
|
+
const referenceField = '$reference';
|
|
757
|
+
// Choice projection can run before a required scalar has a selection.
|
|
758
|
+
const referenceDefinition = { ...definition, fields: { ...definition.fields, [referenceField]: { ...scalar, required: false } } };
|
|
759
|
+
const sourceIssues = validatePluginConfigCandidate(referenceDefinition, values, [referenceField], context);
|
|
596
760
|
if (sourceIssues.length > 0)
|
|
597
761
|
return { choices: [], issues: sourceIssues };
|
|
598
762
|
// Other references can reserve values in the same source or its dependencies.
|
|
599
763
|
// Keep those source errors, but do not block choices on unrelated field errors.
|
|
600
|
-
const sourceKeys = new Set(
|
|
601
|
-
|
|
602
|
-
|
|
764
|
+
const sourceKeys = new Set(getPluginConfigDependencyFields(referenceDefinition, [referenceField], context)
|
|
765
|
+
.filter((entry) => entry.field !== referenceField).map((entry) => JSON.stringify([entry.plugin, entry.field])));
|
|
766
|
+
const relatedKeys = Object.keys(definition.fields).filter((field) => scalarSchemas(definition.fields[field]).some((child) => 'valueRef' in child && child.valueRef !== undefined
|
|
767
|
+
&& sourceKeys.has(JSON.stringify([child.valueRef.plugin ?? context?.plugin ?? '', child.valueRef.field]))));
|
|
768
|
+
const sharedSourceIssues = validatePluginConfigReferences(definition, values, relatedKeys, context)
|
|
769
|
+
.filter((issue) => sourceKeys.has(JSON.stringify([issue.path.plugin ?? context?.plugin ?? '', issue.path.field])));
|
|
603
770
|
if (sharedSourceIssues.length > 0)
|
|
604
771
|
return { choices: [], issues: sharedSourceIssues };
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
const referenceField = '$reference';
|
|
608
|
-
const referenceDefinition = { ...definition, fields: { ...definition.fields, [referenceField]: scalar } };
|
|
609
|
-
const issues = validatePluginConfigReferences(referenceDefinition, { ...values, [referenceField]: undefined }, [referenceField]);
|
|
610
|
-
if (issues.length > 0)
|
|
611
|
-
return { choices: [], issues };
|
|
612
|
-
const entries = (ownProperty(values, ref.field) ?? []);
|
|
772
|
+
const sourceValues = ref.plugin === undefined ? values : ownProperty(context?.plugins, ref.plugin)?.values ?? {};
|
|
773
|
+
const entries = (ownProperty(sourceValues, ref.field) ?? []);
|
|
613
774
|
const candidates = [
|
|
614
775
|
...(ref.include ?? []).map((value) => ({ value, title: String(value) })),
|
|
615
776
|
...entries.map((entry) => {
|
|
@@ -622,7 +783,7 @@ export function getPluginConfigReferenceChoices(definition, scalar, values) {
|
|
|
622
783
|
];
|
|
623
784
|
return { choices: candidates.filter(({ value }) => validatePluginConfigValue(scalar, value).length === 0), issues: [] };
|
|
624
785
|
}
|
|
625
|
-
function assertValueReferenceSchemas(fields, definitions, path, allowReferences = true) {
|
|
786
|
+
function assertValueReferenceSchemas(fields, definitions, path, allowReferences = true, allowCrossPlugin = false, owner) {
|
|
626
787
|
for (const definition of definitions) {
|
|
627
788
|
for (const scalar of scalarSchemas(definition)) {
|
|
628
789
|
if (!('valueRef' in scalar) || scalar.valueRef === undefined)
|
|
@@ -630,6 +791,18 @@ function assertValueReferenceSchemas(fields, definitions, path, allowReferences
|
|
|
630
791
|
if (!allowReferences)
|
|
631
792
|
throw new Error(`Invalid ${path}: valueRef requires Config Definition v3.`);
|
|
632
793
|
const ref = scalar.valueRef;
|
|
794
|
+
if (ref.plugin !== undefined) {
|
|
795
|
+
if (!allowCrossPlugin)
|
|
796
|
+
throw new Error(`Invalid ${path}.valueRef.plugin: cross-plugin references require Config Definition v4.`);
|
|
797
|
+
if (!PLUGIN_NAME_PATTERN.test(ref.plugin))
|
|
798
|
+
throw new Error(`Invalid ${path}.valueRef.plugin: expected a plugin name.`);
|
|
799
|
+
if (owner?.plugin === ref.plugin)
|
|
800
|
+
throw new Error(`Invalid ${path}.valueRef.plugin: self references must use a local field.`);
|
|
801
|
+
if (owner !== undefined && !owner.dependencies?.includes(ref.plugin)) {
|
|
802
|
+
throw new Error(`Invalid ${path}.valueRef.plugin: "${ref.plugin}" must be an explicit direct dependency.`);
|
|
803
|
+
}
|
|
804
|
+
continue;
|
|
805
|
+
}
|
|
633
806
|
const source = ownProperty(fields, ref.field);
|
|
634
807
|
if (source?.type !== 'array' || source.items.type !== 'object' || source.items.properties === undefined) {
|
|
635
808
|
throw new Error(`Invalid ${path}.valueRef.field: expected a declared fixed-object array.`);
|
|
@@ -759,7 +932,7 @@ function normalizeScalarField(value, path, options) {
|
|
|
759
932
|
let valueRef;
|
|
760
933
|
if (input.valueRef !== undefined) {
|
|
761
934
|
const rawRef = asObject(input.valueRef, `${path}.valueRef`);
|
|
762
|
-
assertAllowedKeys(rawRef, `${path}.valueRef`, ['field', 'key', 'label', 'include']);
|
|
935
|
+
assertAllowedKeys(rawRef, `${path}.valueRef`, ['plugin', 'field', 'key', 'label', 'include']);
|
|
763
936
|
let include;
|
|
764
937
|
if (rawRef.include !== undefined) {
|
|
765
938
|
if (!Array.isArray(rawRef.include) || !isDenseDataArray(rawRef.include)
|
|
@@ -780,6 +953,7 @@ function normalizeScalarField(value, path, options) {
|
|
|
780
953
|
}
|
|
781
954
|
}
|
|
782
955
|
valueRef = {
|
|
956
|
+
...(rawRef.plugin === undefined ? {} : { plugin: nonEmptyString(rawRef.plugin, `${path}.valueRef.plugin`) }),
|
|
783
957
|
field: nonEmptyString(rawRef.field, `${path}.valueRef.field`),
|
|
784
958
|
key: nonEmptyString(rawRef.key, `${path}.valueRef.key`),
|
|
785
959
|
label: optionalText(rawRef.label, `${path}.valueRef.label`),
|
|
@@ -1107,7 +1281,7 @@ export function decodePluginConfigSummaryPath(value) {
|
|
|
1107
1281
|
throw new Error('Invalid summary path: dangerous config key.');
|
|
1108
1282
|
return property;
|
|
1109
1283
|
}
|
|
1110
|
-
function expandConfigReferences(input, path, v4 = false) {
|
|
1284
|
+
function expandConfigReferences(input, path, v4 = false, owner, collectedDefinitions) {
|
|
1111
1285
|
const definitions = input.definitions === undefined ? {} : asObject(input.definitions, `${path}.definitions`);
|
|
1112
1286
|
if (Object.keys(definitions).length > PLUGIN_CONFIG_V3_MAX_DEFINITIONS) {
|
|
1113
1287
|
throw new Error(`Invalid ${path}.definitions: expected at most ${PLUGIN_CONFIG_V3_MAX_DEFINITIONS} definitions.`);
|
|
@@ -1178,7 +1352,10 @@ function expandConfigReferences(input, path, v4 = false) {
|
|
|
1178
1352
|
// Validate unused definitions too, through the same field/default/choice validator.
|
|
1179
1353
|
const normalizedDefinitions = [];
|
|
1180
1354
|
for (const [name, value] of Object.entries(definitions)) {
|
|
1181
|
-
|
|
1355
|
+
const normalized = normalizeConfigField(expand(value, `${path}.definitions.${name}`, []), `${path}.definitions.${name}`, true, v4);
|
|
1356
|
+
normalizedDefinitions.push(normalized);
|
|
1357
|
+
if (collectedDefinitions !== undefined)
|
|
1358
|
+
collectedDefinitions[name] = normalized;
|
|
1182
1359
|
}
|
|
1183
1360
|
const fields = asObject(input.fields, `${path}.fields`);
|
|
1184
1361
|
if (Object.keys(fields).length > PLUGIN_CONFIG_V3_MAX_FIELDS) {
|
|
@@ -1187,7 +1364,7 @@ function expandConfigReferences(input, path, v4 = false) {
|
|
|
1187
1364
|
const expanded = Object.fromEntries(Object.entries(fields).map(([key, value]) => [key, expand(value, `${path}.fields.${key}`, [])]));
|
|
1188
1365
|
if (normalizedDefinitions.some((definition) => scalarSchemas(definition).some((scalar) => 'valueRef' in scalar && scalar.valueRef !== undefined))) {
|
|
1189
1366
|
const normalizedFields = Object.fromEntries(Object.entries(expanded).map(([key, value]) => [key, normalizeConfigField(value, `${path}.fields.${key}`, true, v4)]));
|
|
1190
|
-
assertValueReferenceSchemas(normalizedFields, normalizedDefinitions, `${path}.definitions
|
|
1367
|
+
assertValueReferenceSchemas(normalizedFields, normalizedDefinitions, `${path}.definitions`, true, v4, owner);
|
|
1191
1368
|
}
|
|
1192
1369
|
return expanded;
|
|
1193
1370
|
}
|
|
@@ -1286,12 +1463,12 @@ function normalizeConfigSummaries(input, fields, path) {
|
|
|
1286
1463
|
...(input.fieldViews === undefined ? {} : { fieldViews }),
|
|
1287
1464
|
};
|
|
1288
1465
|
}
|
|
1289
|
-
export function normalizePluginConfigDefinition(value, path = 'config') {
|
|
1466
|
+
export function normalizePluginConfigDefinition(value, path = 'config', owner) {
|
|
1290
1467
|
const input = asObject(value, path);
|
|
1291
1468
|
const v4 = input.schemaVersion === 4;
|
|
1292
1469
|
const v3 = input.schemaVersion === 3 || v4;
|
|
1293
1470
|
assertAllowedKeys(input, path, v3 ? ['schemaVersion', 'definitions', 'fields', 'presentation'] : ['fields', 'presentation']);
|
|
1294
|
-
const fieldsInput = v3 ? expandConfigReferences(input, path, v4) : asObject(input.fields, `${path}.fields`);
|
|
1471
|
+
const fieldsInput = v3 ? expandConfigReferences(input, path, v4, owner) : asObject(input.fields, `${path}.fields`);
|
|
1295
1472
|
const fields = createPropertyMap();
|
|
1296
1473
|
for (const [field, rawDefinition] of Object.entries(fieldsInput)) {
|
|
1297
1474
|
if (!CONFIG_KEY_PATTERN.test(field) || isDangerousConfigKey(field)) {
|
|
@@ -1299,9 +1476,10 @@ export function normalizePluginConfigDefinition(value, path = 'config') {
|
|
|
1299
1476
|
}
|
|
1300
1477
|
fields[field] = normalizeConfigField(rawDefinition, `${path}.fields.${field}`, v3, v4);
|
|
1301
1478
|
}
|
|
1302
|
-
assertValueReferenceSchemas(fields, Object.values(fields), path, v3);
|
|
1479
|
+
assertValueReferenceSchemas(fields, Object.values(fields), path, v3, v4, owner);
|
|
1303
1480
|
const defaultValues = Object.fromEntries(Object.entries(fields).flatMap(([field, definition]) => definition.default === undefined ? [] : [[field, definition.default]]));
|
|
1304
|
-
|
|
1481
|
+
// Cross-plugin defaults require the caller's complete dependency context.
|
|
1482
|
+
const defaultIssues = validatePluginConfigReferences({ schemaVersion: 4, fields }, defaultValues, Object.keys(fields), undefined, undefined, true)
|
|
1305
1483
|
.filter((issue) => Object.hasOwn(defaultValues, issue.path.field));
|
|
1306
1484
|
if (defaultIssues.length > 0) {
|
|
1307
1485
|
throw new Error(`Invalid ${path}.default: ${formatPluginConfigIssue(defaultIssues[0])}`);
|