@angular/core 22.0.0-next.1 → 22.0.0-next.11
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/fesm2022/_attribute-chunk.mjs +1 -1
- package/fesm2022/_attribute-chunk.mjs.map +1 -1
- package/fesm2022/_debug_node-chunk.mjs +2440 -2014
- package/fesm2022/_debug_node-chunk.mjs.map +1 -1
- package/fesm2022/_effect-chunk.mjs +3 -5
- package/fesm2022/_effect-chunk.mjs.map +1 -1
- package/fesm2022/_not_found-chunk.mjs +1 -1
- package/fesm2022/_not_found-chunk.mjs.map +1 -1
- package/fesm2022/_pending_tasks-chunk.mjs +145 -44
- package/fesm2022/_pending_tasks-chunk.mjs.map +1 -1
- package/fesm2022/_resource-chunk.mjs +108 -33
- package/fesm2022/_resource-chunk.mjs.map +1 -1
- package/fesm2022/_untracked-chunk.mjs +10 -7
- package/fesm2022/_untracked-chunk.mjs.map +1 -1
- package/fesm2022/_weak_ref-chunk.mjs +1 -1
- package/fesm2022/_weak_ref-chunk.mjs.map +1 -1
- package/fesm2022/core.mjs +2368 -1892
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives-di.mjs +1 -1
- package/fesm2022/primitives-di.mjs.map +1 -1
- package/fesm2022/primitives-event-dispatch.mjs +2 -24
- package/fesm2022/primitives-event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives-signals.mjs +2 -2
- package/fesm2022/primitives-signals.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +6 -3
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/testing.mjs +56 -25
- package/fesm2022/testing.mjs.map +1 -1
- package/package.json +7 -3
- package/schematics/bundles/apply_import_manager-CxA_YYgB.cjs +1 -1
- package/schematics/bundles/can-match-snapshot-required.cjs +104 -0
- package/schematics/bundles/change-detection-eager.cjs +1 -1
- package/schematics/bundles/cleanup-unused-imports.cjs +1 -1
- package/schematics/bundles/common-to-standalone-migration.cjs +1 -1
- package/schematics/bundles/compiler_host-CY14HvaP.cjs +1 -1
- package/schematics/bundles/control-flow-migration.cjs +1 -1
- package/schematics/bundles/http-xhr-backend.cjs +6 -11
- package/schematics/bundles/imports-CKV-ITqD.cjs +1 -1
- package/schematics/bundles/incremental-hydration.cjs +94 -0
- package/schematics/bundles/{index-BtLcQH8g.cjs → index-DcezkXLN.cjs} +10 -3
- package/schematics/bundles/inject-migration.cjs +26 -18
- package/schematics/bundles/json-file-Drblb4E1.cjs +1916 -0
- package/schematics/bundles/leading_space-BTPRV0wu.cjs +1 -1
- package/schematics/bundles/{migrate_ts_type_references-MWoZx-Cb.cjs → migrate_ts_type_references-xRTTASnu.cjs} +48 -28
- package/schematics/bundles/model-output.cjs +200 -0
- package/schematics/bundles/ng_component_template-DPAF1aEA.cjs +1 -1
- package/schematics/bundles/ng_decorators-IVztR9rk.cjs +1 -1
- package/schematics/bundles/ngclass-to-class-migration.cjs +14 -6
- package/schematics/bundles/ngstyle-to-style-migration.cjs +14 -6
- package/schematics/bundles/nodes-ZSQ7WZRB.cjs +1 -1
- package/schematics/bundles/output-migration.cjs +2 -2
- package/schematics/bundles/parse_html-C8eKA9px.cjs +1 -1
- package/schematics/bundles/project_paths-D2V-Uh2L.cjs +1 -1
- package/schematics/bundles/project_tsconfig_paths-DkkMibv-.cjs +1 -1
- package/schematics/bundles/property_name-BCpALNpZ.cjs +1 -1
- package/schematics/bundles/route-lazy-loading.cjs +22 -2
- package/schematics/bundles/router-testing-module-migration.cjs +1 -1
- package/schematics/bundles/safe-optional-chaining.cjs +571 -0
- package/schematics/bundles/self-closing-tags-migration.cjs +1 -1
- package/schematics/bundles/signal-input-migration.cjs +3 -3
- package/schematics/bundles/signal-queries-migration.cjs +3 -3
- package/schematics/bundles/signals.cjs +3 -3
- package/schematics/bundles/standalone-migration.cjs +29 -17
- package/schematics/bundles/strict-safe-navigation-narrow.cjs +32 -0
- package/schematics/bundles/strict-templates-default.cjs +63 -0
- package/schematics/migrations.json +30 -0
- package/third_party/@mcp-b/webmcp-types/LICENSE +21 -0
- package/third_party/@mcp-b/webmcp-types/dist/common.d.ts +297 -0
- package/third_party/@mcp-b/webmcp-types/dist/json-schema.d.ts +196 -0
- package/third_party/@mcp-b/webmcp-types/index.d.ts +9 -0
- package/types/_api-chunk.d.ts +44 -17
- package/types/_chrome_dev_tools_performance-chunk.d.ts +4 -3
- package/types/{_discovery-chunk.d.ts → _debug_node-chunk.d.ts} +2157 -2258
- package/types/_effect-chunk.d.ts +1 -1
- package/types/_event_dispatcher-chunk.d.ts +1 -1
- package/types/_formatter-chunk.d.ts +1 -1
- package/types/_weak_ref-chunk.d.ts +1 -1
- package/types/core.d.ts +6833 -6485
- package/types/primitives-di.d.ts +1 -1
- package/types/primitives-event-dispatch.d.ts +1 -1
- package/types/primitives-signals.d.ts +1 -1
- package/types/rxjs-interop.d.ts +5 -4
- package/types/testing.d.ts +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v22.0.0-next.
|
|
3
|
+
* @license Angular v22.0.0-next.11
|
|
4
4
|
* (c) 2010-2026 Google LLC. https://angular.dev/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -339,7 +339,7 @@ function toStandalone(sourceFiles, program, printer, fileImportRemapper, declara
|
|
|
339
339
|
testObjects.forEach((obj) => testObjectsToMigrate.add(obj));
|
|
340
340
|
}
|
|
341
341
|
for (const declaration of declarations) {
|
|
342
|
-
convertNgModuleDeclarationToStandalone(declaration, declarations, tracker, templateTypeChecker, declarationImportRemapper);
|
|
342
|
+
convertNgModuleDeclarationToStandalone(declaration, declarations, tracker, templateTypeChecker, program.getTsProgram(), declarationImportRemapper);
|
|
343
343
|
}
|
|
344
344
|
for (const node of modulesToMigrate) {
|
|
345
345
|
migrateNgModuleClass(node, declarations, tracker, typeChecker, templateTypeChecker);
|
|
@@ -355,12 +355,12 @@ function toStandalone(sourceFiles, program, printer, fileImportRemapper, declara
|
|
|
355
355
|
* @param typeChecker
|
|
356
356
|
* @param importRemapper
|
|
357
357
|
*/
|
|
358
|
-
function convertNgModuleDeclarationToStandalone(decl, allDeclarations, tracker, typeChecker, importRemapper) {
|
|
358
|
+
function convertNgModuleDeclarationToStandalone(decl, allDeclarations, tracker, typeChecker, program, importRemapper) {
|
|
359
359
|
const directiveMeta = typeChecker.getDirectiveMetadata(decl);
|
|
360
360
|
if (directiveMeta && directiveMeta.decorator && !directiveMeta.isStandalone) {
|
|
361
361
|
let decorator = markDecoratorAsStandalone(directiveMeta.decorator);
|
|
362
362
|
if (directiveMeta.isComponent) {
|
|
363
|
-
const importsToAdd = getComponentImportExpressions(decl, allDeclarations, tracker, typeChecker, importRemapper);
|
|
363
|
+
const importsToAdd = getComponentImportExpressions(decl, allDeclarations, tracker, typeChecker, program, importRemapper);
|
|
364
364
|
if (importsToAdd.length > 0) {
|
|
365
365
|
const hasTrailingComma = importsToAdd.length > 2 &&
|
|
366
366
|
!!extractMetadataLiteral(directiveMeta.decorator)?.properties.hasTrailingComma;
|
|
@@ -387,8 +387,8 @@ function convertNgModuleDeclarationToStandalone(decl, allDeclarations, tracker,
|
|
|
387
387
|
* @param typeChecker
|
|
388
388
|
* @param importRemapper
|
|
389
389
|
*/
|
|
390
|
-
function getComponentImportExpressions(decl, allDeclarations, tracker, typeChecker, importRemapper) {
|
|
391
|
-
const templateDependencies = findTemplateDependencies(decl, typeChecker);
|
|
390
|
+
function getComponentImportExpressions(decl, allDeclarations, tracker, typeChecker, program, importRemapper) {
|
|
391
|
+
const templateDependencies = findTemplateDependencies(decl, typeChecker, program);
|
|
392
392
|
const usedDependenciesInMigration = new Set(templateDependencies.filter((dep) => allDeclarations.has(dep.node)));
|
|
393
393
|
const seenImports = new Set();
|
|
394
394
|
const resolvedDependencies = [];
|
|
@@ -710,23 +710,29 @@ function findTestObjectsToMigrate(sourceFile, typeChecker) {
|
|
|
710
710
|
* @param decl Component in whose template we're looking for dependencies.
|
|
711
711
|
* @param typeChecker
|
|
712
712
|
*/
|
|
713
|
-
function findTemplateDependencies(decl, typeChecker) {
|
|
713
|
+
function findTemplateDependencies(decl, typeChecker, program) {
|
|
714
714
|
const results = [];
|
|
715
715
|
const usedDirectives = typeChecker.getUsedDirectives(decl);
|
|
716
716
|
const usedPipes = typeChecker.getUsedPipes(decl);
|
|
717
717
|
if (usedDirectives !== null) {
|
|
718
718
|
for (const dir of usedDirectives) {
|
|
719
|
-
|
|
720
|
-
results.push(dir.ref);
|
|
721
|
-
}
|
|
719
|
+
results.push(dir.ref);
|
|
722
720
|
}
|
|
723
721
|
}
|
|
724
722
|
if (usedPipes !== null) {
|
|
725
723
|
const potentialPipes = typeChecker.getPotentialPipes(decl);
|
|
726
724
|
for (const pipe of potentialPipes) {
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
725
|
+
const sourceFile = program.getSourceFile(pipe.ref.filePath);
|
|
726
|
+
const node = sourceFile ? findTightestNode(sourceFile, pipe.ref.position) : null;
|
|
727
|
+
const classDecl = node ? nodes.closestNode(node, ts.isClassDeclaration) : null;
|
|
728
|
+
if (classDecl && usedPipes.some((current) => pipe.name === current)) {
|
|
729
|
+
const owningModule = pipe.ref.moduleSpecifier
|
|
730
|
+
? {
|
|
731
|
+
specifier: pipe.ref.moduleSpecifier,
|
|
732
|
+
resolutionContext: decl.getSourceFile().fileName,
|
|
733
|
+
}
|
|
734
|
+
: null;
|
|
735
|
+
results.push(new migrations.Reference(classDecl, owningModule));
|
|
730
736
|
}
|
|
731
737
|
}
|
|
732
738
|
}
|
|
@@ -920,6 +926,12 @@ function isStandaloneDeclaration(node, declarationsInMigration, templateTypeChec
|
|
|
920
926
|
const metadata = templateTypeChecker.getDirectiveMetadata(node) || templateTypeChecker.getPipeMetadata(node);
|
|
921
927
|
return metadata != null && metadata.isStandalone;
|
|
922
928
|
}
|
|
929
|
+
function findTightestNode(node, position) {
|
|
930
|
+
if (position < node.getStart() || position > node.getEnd()) {
|
|
931
|
+
return undefined;
|
|
932
|
+
}
|
|
933
|
+
return node.forEachChild((c) => findTightestNode(c, position)) ?? node;
|
|
934
|
+
}
|
|
923
935
|
|
|
924
936
|
function pruneNgModules(program, host, basePath, rootFileNames, sourceFiles, printer, importRemapper, referenceLookupExcludedFiles, declarationImportRemapper) {
|
|
925
937
|
const filesToRemove = new Set();
|
|
@@ -958,7 +970,7 @@ function pruneNgModules(program, host, basePath, rootFileNames, sourceFiles, pri
|
|
|
958
970
|
}
|
|
959
971
|
node.forEachChild(walk);
|
|
960
972
|
});
|
|
961
|
-
replaceInComponentImportsArray(componentImportArrays, classesToRemove, removalLocations, tracker, typeChecker, templateTypeChecker, declarationImportRemapper);
|
|
973
|
+
replaceInComponentImportsArray(componentImportArrays, classesToRemove, removalLocations, tracker, typeChecker, templateTypeChecker, tsProgram, declarationImportRemapper);
|
|
962
974
|
replaceInTestImportsArray(testArrays, removalLocations, classesToRemove, tracker, typeChecker, templateTypeChecker, declarationImportRemapper);
|
|
963
975
|
// We collect all the places where we need to remove references first before generating the
|
|
964
976
|
// removal instructions since we may have to remove multiple references from one node.
|
|
@@ -1070,14 +1082,14 @@ function collectChangeLocations(ngModule, removalLocations, componentImportArray
|
|
|
1070
1082
|
* @param templateTypeChecker
|
|
1071
1083
|
* @param importRemapper
|
|
1072
1084
|
*/
|
|
1073
|
-
function replaceInComponentImportsArray(componentImportArrays, classesToRemove, removalLocations, tracker, typeChecker, templateTypeChecker, importRemapper) {
|
|
1085
|
+
function replaceInComponentImportsArray(componentImportArrays, classesToRemove, removalLocations, tracker, typeChecker, templateTypeChecker, program, importRemapper) {
|
|
1074
1086
|
for (const [array, toReplace] of componentImportArrays.getEntries()) {
|
|
1075
1087
|
const closestClass = nodes.closestNode(array, ts.isClassDeclaration);
|
|
1076
1088
|
if (!closestClass) {
|
|
1077
1089
|
continue;
|
|
1078
1090
|
}
|
|
1079
1091
|
const replacements = new UniqueItemTracker();
|
|
1080
|
-
const usedImports = new Set(findTemplateDependencies(closestClass, templateTypeChecker).map((ref) => ref.node));
|
|
1092
|
+
const usedImports = new Set(findTemplateDependencies(closestClass, templateTypeChecker, program).map((ref) => ref.node));
|
|
1081
1093
|
const nodesToRemove = new Set();
|
|
1082
1094
|
for (const node of toReplace) {
|
|
1083
1095
|
const moduleDecl = findClassDeclaration(node, typeChecker);
|
|
@@ -1474,7 +1486,7 @@ function toStandaloneBootstrap(program, host, basePath, rootFileNames, sourceFil
|
|
|
1474
1486
|
// The previous migrations explicitly skip over bootstrapped
|
|
1475
1487
|
// declarations so we have to migrate them now.
|
|
1476
1488
|
for (const declaration of allDeclarations) {
|
|
1477
|
-
convertNgModuleDeclarationToStandalone(declaration, allDeclarations, tracker, templateTypeChecker, declarationImportRemapper);
|
|
1489
|
+
convertNgModuleDeclarationToStandalone(declaration, allDeclarations, tracker, templateTypeChecker, program.getTsProgram(), declarationImportRemapper);
|
|
1478
1490
|
}
|
|
1479
1491
|
migrateTestDeclarations(testObjects, allDeclarations, tracker, templateTypeChecker, typeChecker);
|
|
1480
1492
|
return tracker.recordChanges();
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/**
|
|
3
|
+
* @license Angular v22.0.0-next.11
|
|
4
|
+
* (c) 2010-2026 Google LLC. https://angular.dev/
|
|
5
|
+
* License: MIT
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-DkkMibv-.cjs');
|
|
10
|
+
var jsonFile = require('./json-file-Drblb4E1.cjs');
|
|
11
|
+
require('@angular-devkit/core');
|
|
12
|
+
require('node:os');
|
|
13
|
+
|
|
14
|
+
function migrate() {
|
|
15
|
+
return async (tree) => {
|
|
16
|
+
const { buildPaths, testPaths } = await project_tsconfig_paths.getProjectTsConfigPaths(tree);
|
|
17
|
+
const allPaths = [...new Set([...buildPaths, ...testPaths])];
|
|
18
|
+
for (const tsconfigPath of allPaths) {
|
|
19
|
+
const json = new jsonFile.jsonFileExports.JSONFile(tree, tsconfigPath);
|
|
20
|
+
const compilerOptions = json.get(['compilerOptions']);
|
|
21
|
+
if (!compilerOptions ||
|
|
22
|
+
typeof compilerOptions !== 'object' ||
|
|
23
|
+
Object.keys(compilerOptions).length === 0) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
json.modify(['angularCompilerOptions', 'extendedDiagnostics', 'checks', 'nullishCoalescingNotNullable'], 'suppress');
|
|
27
|
+
json.modify(['angularCompilerOptions', 'extendedDiagnostics', 'checks', 'optionalChainNotNullable'], 'suppress');
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
exports.migrate = migrate;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/**
|
|
3
|
+
* @license Angular v22.0.0-next.11
|
|
4
|
+
* (c) 2010-2026 Google LLC. https://angular.dev/
|
|
5
|
+
* License: MIT
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-DkkMibv-.cjs');
|
|
10
|
+
var jsonFile = require('./json-file-Drblb4E1.cjs');
|
|
11
|
+
var ts = require('typescript');
|
|
12
|
+
var path = require('node:path');
|
|
13
|
+
require('@angular-devkit/core');
|
|
14
|
+
require('node:os');
|
|
15
|
+
|
|
16
|
+
function getResolvedAngularCompilerOptions(tree, tsconfigPath) {
|
|
17
|
+
if (!tree.exists(tsconfigPath))
|
|
18
|
+
return {};
|
|
19
|
+
const sourceFile = ts.readJsonConfigFile(tsconfigPath, (path) => tree.readText(path));
|
|
20
|
+
const config = ts.convertToObject(sourceFile, []);
|
|
21
|
+
let angularOptions = config.angularCompilerOptions || {};
|
|
22
|
+
// Manually resolve inheritance for Angular-specific options.
|
|
23
|
+
// Since the TypeScript API doesn't perform a deep merge of custom/non-standard keys
|
|
24
|
+
// during config parsing, we must traverse the inheritance chain manually
|
|
25
|
+
if (config.extends) {
|
|
26
|
+
// Management extends property...
|
|
27
|
+
const parentPath = path.join(path.dirname(tsconfigPath), config.extends);
|
|
28
|
+
const parentOptions = getResolvedAngularCompilerOptions(tree, parentPath);
|
|
29
|
+
// Merge: the options of the current file overwrite those of the parent
|
|
30
|
+
angularOptions = {
|
|
31
|
+
...parentOptions,
|
|
32
|
+
...angularOptions,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return angularOptions;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Migration that adds `strictTemplates: false` to `tsconfig.json` files.
|
|
39
|
+
*/
|
|
40
|
+
function migrate() {
|
|
41
|
+
return async (tree) => {
|
|
42
|
+
const { buildPaths, testPaths } = await project_tsconfig_paths.getProjectTsConfigPaths(tree);
|
|
43
|
+
const allPaths = [...new Set([...buildPaths, ...testPaths])];
|
|
44
|
+
for (const tsconfigPath of allPaths) {
|
|
45
|
+
const json = new jsonFile.jsonFileExports.JSONFile(tree, tsconfigPath);
|
|
46
|
+
const compilerOptions = json.get(['compilerOptions']);
|
|
47
|
+
if (!compilerOptions ||
|
|
48
|
+
typeof compilerOptions !== 'object' ||
|
|
49
|
+
Object.keys(compilerOptions).length === 0) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const angularOptions = getResolvedAngularCompilerOptions(tree, tsconfigPath);
|
|
53
|
+
if (angularOptions['strictTemplates'] !== undefined) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (json.get(['angularCompilerOptions', 'strictTemplates']) === undefined) {
|
|
57
|
+
json.modify(['angularCompilerOptions', 'strictTemplates'], false);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
exports.migrate = migrate;
|
|
@@ -9,6 +9,36 @@
|
|
|
9
9
|
"version": "22.0.0",
|
|
10
10
|
"description": "Adds 'withXhr' to 'provideHttpClient' function calls when the 'HttpXhrBackend' is used. For more information see: https://angular.dev/api/common/http/withXhr",
|
|
11
11
|
"factory": "./bundles/http-xhr-backend.cjs#migrate"
|
|
12
|
+
},
|
|
13
|
+
"strict-templates-default": {
|
|
14
|
+
"version": "22.0.0",
|
|
15
|
+
"description": "Adds 'strictTemplates: false' in tsconfig.json when not set.",
|
|
16
|
+
"factory": "./bundles/strict-templates-default.cjs#migrate"
|
|
17
|
+
},
|
|
18
|
+
"can-match-snapshot-required": {
|
|
19
|
+
"version": "22.0.0",
|
|
20
|
+
"description": "Adds the required third argument to canMatch callsites.",
|
|
21
|
+
"factory": "./bundles/can-match-snapshot-required.cjs#migrate"
|
|
22
|
+
},
|
|
23
|
+
"incremental-hydration": {
|
|
24
|
+
"version": "22.0.0",
|
|
25
|
+
"description": "Adds withNoIncrementalHydration() opt out to provideClientHydration() when incremental hydration is not enabled to retain pre-v22 behavior-.",
|
|
26
|
+
"factory": "./bundles/incremental-hydration.cjs#migrate"
|
|
27
|
+
},
|
|
28
|
+
"strict-safe-navigation-narrow": {
|
|
29
|
+
"version": "22.0.0",
|
|
30
|
+
"description": "Disables the 'nullishCoalescingNotNullable & optionalChainNotNullable extended diagnostics.",
|
|
31
|
+
"factory": "./bundles/strict-safe-navigation-narrow.cjs#migrate"
|
|
32
|
+
},
|
|
33
|
+
"model-output": {
|
|
34
|
+
"version": "22.0.0",
|
|
35
|
+
"description": "Migrate broken duplicate outputs",
|
|
36
|
+
"factory": "./bundles/model-output.cjs#migrate"
|
|
37
|
+
},
|
|
38
|
+
"safe-optional-chaining": {
|
|
39
|
+
"version": "22.0.0",
|
|
40
|
+
"description": "Wraps optional chaining expressions in $safeNavigationMigration().",
|
|
41
|
+
"factory": "./bundles/safe-optional-chaining.cjs#migrate"
|
|
12
42
|
}
|
|
13
43
|
}
|
|
14
44
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 mcp-b contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Primitive JSON value.
|
|
3
|
+
*/
|
|
4
|
+
export type JsonPrimitive = string | number | boolean | null;
|
|
5
|
+
/**
|
|
6
|
+
* Object-shaped JSON value.
|
|
7
|
+
*/
|
|
8
|
+
export interface JsonObject {
|
|
9
|
+
[key: string]: JsonValue;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Any valid JSON value.
|
|
13
|
+
*/
|
|
14
|
+
export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
|
|
15
|
+
/**
|
|
16
|
+
* JSON Schema property definition.
|
|
17
|
+
*
|
|
18
|
+
* @see {@link https://json-schema.org/}
|
|
19
|
+
*/
|
|
20
|
+
export interface InputSchemaProperty {
|
|
21
|
+
/**
|
|
22
|
+
* JSON Schema type for this property.
|
|
23
|
+
*/
|
|
24
|
+
type?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Human-readable description of the property.
|
|
27
|
+
*/
|
|
28
|
+
description?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Additional JSON Schema keywords.
|
|
31
|
+
*/
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* JSON Schema definition for tool input parameters.
|
|
36
|
+
*
|
|
37
|
+
* @see {@link https://json-schema.org/}
|
|
38
|
+
*/
|
|
39
|
+
export interface InputSchema {
|
|
40
|
+
/**
|
|
41
|
+
* JSON Schema type for the root value (usually `'object'` for tool args).
|
|
42
|
+
*/
|
|
43
|
+
type?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Property definitions for object schemas.
|
|
46
|
+
*/
|
|
47
|
+
properties?: Record<string, InputSchemaProperty>;
|
|
48
|
+
/**
|
|
49
|
+
* List of required property names.
|
|
50
|
+
*/
|
|
51
|
+
required?: readonly string[];
|
|
52
|
+
/**
|
|
53
|
+
* Additional JSON Schema keywords.
|
|
54
|
+
*/
|
|
55
|
+
[key: string]: unknown;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Plain text content.
|
|
59
|
+
*/
|
|
60
|
+
export interface TextContent {
|
|
61
|
+
/**
|
|
62
|
+
* Discriminator for text content.
|
|
63
|
+
*/
|
|
64
|
+
type: 'text';
|
|
65
|
+
/**
|
|
66
|
+
* UTF-8 text value.
|
|
67
|
+
*/
|
|
68
|
+
text: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Base64-encoded image content.
|
|
72
|
+
*/
|
|
73
|
+
export interface ImageContent {
|
|
74
|
+
/**
|
|
75
|
+
* Discriminator for image content.
|
|
76
|
+
*/
|
|
77
|
+
type: 'image';
|
|
78
|
+
/**
|
|
79
|
+
* Base64 payload.
|
|
80
|
+
*/
|
|
81
|
+
data: string;
|
|
82
|
+
/**
|
|
83
|
+
* MIME type for the encoded image.
|
|
84
|
+
*/
|
|
85
|
+
mimeType: string;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Base64-encoded audio content.
|
|
89
|
+
*/
|
|
90
|
+
export interface AudioContent {
|
|
91
|
+
/**
|
|
92
|
+
* Discriminator for audio content.
|
|
93
|
+
*/
|
|
94
|
+
type: 'audio';
|
|
95
|
+
/**
|
|
96
|
+
* Base64 payload.
|
|
97
|
+
*/
|
|
98
|
+
data: string;
|
|
99
|
+
/**
|
|
100
|
+
* MIME type for the encoded audio.
|
|
101
|
+
*/
|
|
102
|
+
mimeType: string;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Text resource contents.
|
|
106
|
+
*/
|
|
107
|
+
export interface TextResourceContents {
|
|
108
|
+
/**
|
|
109
|
+
* Canonical resource URI.
|
|
110
|
+
*/
|
|
111
|
+
uri: string;
|
|
112
|
+
/**
|
|
113
|
+
* Optional MIME type.
|
|
114
|
+
*/
|
|
115
|
+
mimeType?: string;
|
|
116
|
+
/**
|
|
117
|
+
* UTF-8 resource payload.
|
|
118
|
+
*/
|
|
119
|
+
text: string;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Binary resource contents encoded as base64.
|
|
123
|
+
*/
|
|
124
|
+
export interface BlobResourceContents {
|
|
125
|
+
/**
|
|
126
|
+
* Canonical resource URI.
|
|
127
|
+
*/
|
|
128
|
+
uri: string;
|
|
129
|
+
/**
|
|
130
|
+
* Optional MIME type.
|
|
131
|
+
*/
|
|
132
|
+
mimeType?: string;
|
|
133
|
+
/**
|
|
134
|
+
* Base64-encoded binary payload.
|
|
135
|
+
*/
|
|
136
|
+
blob: string;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Resource contents returned by resource reads.
|
|
140
|
+
*/
|
|
141
|
+
export type ResourceContents = TextResourceContents | BlobResourceContents;
|
|
142
|
+
/**
|
|
143
|
+
* Embedded resource content block.
|
|
144
|
+
*/
|
|
145
|
+
export interface EmbeddedResource {
|
|
146
|
+
/**
|
|
147
|
+
* Discriminator for embedded resources.
|
|
148
|
+
*/
|
|
149
|
+
type: 'resource';
|
|
150
|
+
/**
|
|
151
|
+
* Inlined resource contents.
|
|
152
|
+
*/
|
|
153
|
+
resource: ResourceContents;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Link to an externally retrievable resource.
|
|
157
|
+
*/
|
|
158
|
+
export interface ResourceLink {
|
|
159
|
+
/**
|
|
160
|
+
* Discriminator for resource links.
|
|
161
|
+
*/
|
|
162
|
+
type: 'resource_link';
|
|
163
|
+
/**
|
|
164
|
+
* Resource URI.
|
|
165
|
+
*/
|
|
166
|
+
uri: string;
|
|
167
|
+
/**
|
|
168
|
+
* Optional display name.
|
|
169
|
+
*/
|
|
170
|
+
name?: string;
|
|
171
|
+
/**
|
|
172
|
+
* Optional human-readable description.
|
|
173
|
+
*/
|
|
174
|
+
description?: string;
|
|
175
|
+
/**
|
|
176
|
+
* Optional MIME type hint.
|
|
177
|
+
*/
|
|
178
|
+
mimeType?: string;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Any content block allowed in tool responses.
|
|
182
|
+
*/
|
|
183
|
+
export type ContentBlock = TextContent | ImageContent | AudioContent | ResourceLink | EmbeddedResource;
|
|
184
|
+
/**
|
|
185
|
+
* Looser content block shape accepted by many MCP tool implementations.
|
|
186
|
+
*
|
|
187
|
+
* This keeps tool return typing practical while preserving strict content
|
|
188
|
+
* unions via {@link ContentBlock} for consumers that want discriminated checks.
|
|
189
|
+
*/
|
|
190
|
+
export type LooseContentBlock = Record<string, unknown> & {
|
|
191
|
+
type?: string;
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* The result returned from tool execution.
|
|
195
|
+
*
|
|
196
|
+
* @see {@link https://spec.modelcontextprotocol.io/specification/server/tools/}
|
|
197
|
+
*/
|
|
198
|
+
export interface CallToolResult {
|
|
199
|
+
/**
|
|
200
|
+
* Ordered content blocks to return to the model.
|
|
201
|
+
*/
|
|
202
|
+
content: Array<ContentBlock | LooseContentBlock>;
|
|
203
|
+
/**
|
|
204
|
+
* Optional machine-readable payload.
|
|
205
|
+
*/
|
|
206
|
+
structuredContent?: JsonObject;
|
|
207
|
+
/**
|
|
208
|
+
* Marks the result as an error response.
|
|
209
|
+
*/
|
|
210
|
+
isError?: boolean;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Alias for {@link CallToolResult} for API consistency.
|
|
214
|
+
*/
|
|
215
|
+
export type ToolResponse = CallToolResult;
|
|
216
|
+
/**
|
|
217
|
+
* Form-based elicitation request parameters.
|
|
218
|
+
*/
|
|
219
|
+
export interface ElicitationFormParams {
|
|
220
|
+
/**
|
|
221
|
+
* Elicitation mode. Omit or set to `'form'` for form input.
|
|
222
|
+
*/
|
|
223
|
+
mode?: 'form';
|
|
224
|
+
/**
|
|
225
|
+
* User-facing message.
|
|
226
|
+
*/
|
|
227
|
+
message: string;
|
|
228
|
+
/**
|
|
229
|
+
* Requested form schema.
|
|
230
|
+
*/
|
|
231
|
+
requestedSchema: {
|
|
232
|
+
/**
|
|
233
|
+
* Root schema type.
|
|
234
|
+
*/
|
|
235
|
+
type: 'object';
|
|
236
|
+
/**
|
|
237
|
+
* Field definitions.
|
|
238
|
+
*/
|
|
239
|
+
properties: Record<string, InputSchema>;
|
|
240
|
+
/**
|
|
241
|
+
* Required field names.
|
|
242
|
+
*/
|
|
243
|
+
required?: readonly string[];
|
|
244
|
+
/**
|
|
245
|
+
* Additional schema keywords.
|
|
246
|
+
*/
|
|
247
|
+
[key: string]: unknown;
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* URL-based elicitation request parameters.
|
|
252
|
+
*/
|
|
253
|
+
export interface ElicitationUrlParams {
|
|
254
|
+
/**
|
|
255
|
+
* Elicitation mode.
|
|
256
|
+
*/
|
|
257
|
+
mode: 'url';
|
|
258
|
+
/**
|
|
259
|
+
* User-facing message.
|
|
260
|
+
*/
|
|
261
|
+
message: string;
|
|
262
|
+
/**
|
|
263
|
+
* Unique elicitation identifier.
|
|
264
|
+
*/
|
|
265
|
+
elicitationId: string;
|
|
266
|
+
/**
|
|
267
|
+
* URL to open.
|
|
268
|
+
*/
|
|
269
|
+
url: string;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Elicitation request parameters.
|
|
273
|
+
*/
|
|
274
|
+
export type ElicitationParams = ElicitationFormParams | ElicitationUrlParams;
|
|
275
|
+
/**
|
|
276
|
+
* Result returned by an elicitation request.
|
|
277
|
+
*/
|
|
278
|
+
export interface ElicitationResult {
|
|
279
|
+
/**
|
|
280
|
+
* User decision.
|
|
281
|
+
*/
|
|
282
|
+
action: 'accept' | 'decline' | 'cancel';
|
|
283
|
+
/**
|
|
284
|
+
* Submitted values when `action` is `'accept'`.
|
|
285
|
+
*/
|
|
286
|
+
content?: Record<string, string | number | boolean | string[]>;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Registration handle returned by registration methods.
|
|
290
|
+
*/
|
|
291
|
+
export interface RegistrationHandle {
|
|
292
|
+
/**
|
|
293
|
+
* Unregisters the associated item.
|
|
294
|
+
*/
|
|
295
|
+
unregister: () => void;
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=common.d.ts.map
|