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