Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@fluentui/api-docs

Package Overview
Dependencies
Maintainers
12
Versions
109
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fluentui/api-docs - npm Package Compare versions

Comparing version
8.2.10
to
8.2.11
+11
-2
CHANGELOG.md
# Change Log - @fluentui/api-docs
This log was last generated on Wed, 31 May 2023 07:35:59 GMT and should not be manually modified.
This log was last generated on Mon, 19 Jun 2023 07:34:49 GMT and should not be manually modified.
<!-- Start content -->
## [8.2.11](https://github.com/microsoft/fluentui/tree/@fluentui/api-docs_v8.2.11)
Mon, 19 Jun 2023 07:34:49 GMT
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/api-docs_v8.2.10..@fluentui/api-docs_v8.2.11)
### Patches
- chore: bump api-extractor-model to support typescript 4.7 ([PR #28067](https://github.com/microsoft/fluentui/pull/28067) by martinhochel@microsoft.com)
## [8.2.10](https://github.com/microsoft/fluentui/tree/@fluentui/api-docs_v8.2.10)
Wed, 31 May 2023 07:35:59 GMT
Wed, 31 May 2023 07:38:38 GMT
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/api-docs_v8.2.6..@fluentui/api-docs_v8.2.10)

@@ -11,0 +20,0 @@

+6
-6

@@ -20,3 +20,3 @@ "use strict";

try {
for (var _g = (0, tslib_1.__values)(Object.keys(pageGroups)), _h = _g.next(); !_h.done; _h = _g.next()) {
for (var _g = tslib_1.__values(Object.keys(pageGroups)), _h = _g.next(); !_h.done; _h = _g.next()) {
var group = _h.value;

@@ -39,3 +39,3 @@ fse.emptyDirSync(path.join(outputRoot, group));

try {
for (var apiJsonPaths_1 = (0, tslib_1.__values)(apiJsonPaths), apiJsonPaths_1_1 = apiJsonPaths_1.next(); !apiJsonPaths_1_1.done; apiJsonPaths_1_1 = apiJsonPaths_1.next()) {
for (var apiJsonPaths_1 = tslib_1.__values(apiJsonPaths), apiJsonPaths_1_1 = apiJsonPaths_1.next(); !apiJsonPaths_1_1.done; apiJsonPaths_1_1 = apiJsonPaths_1.next()) {
var apiJsonPath = apiJsonPaths_1_1.value;

@@ -71,5 +71,5 @@ // eslint-disable-next-line no-console

// Warn if any requested page names didn't correspond to a docCategory found in the API info
var requestedPages = (_c = []).concat.apply(_c, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(Object.values(pageGroups)), false));
var requestedPages = (_c = []).concat.apply(_c, tslib_1.__spreadArray([], tslib_1.__read(Object.values(pageGroups)), false));
try {
for (var requestedPages_1 = (0, tslib_1.__values)(requestedPages), requestedPages_1_1 = requestedPages_1.next(); !requestedPages_1_1.done; requestedPages_1_1 = requestedPages_1.next()) {
for (var requestedPages_1 = tslib_1.__values(requestedPages), requestedPages_1_1 = requestedPages_1.next(); !requestedPages_1_1.done; requestedPages_1_1 = requestedPages_1.next()) {
var pageName = requestedPages_1_1.value;

@@ -91,4 +91,4 @@ if (!pageJsonByName.has(pageName)) {

// Write the files
for (var _j = (0, tslib_1.__values)(pageJsonByName.entries()), _k = _j.next(); !_k.done; _k = _j.next()) {
var _l = (0, tslib_1.__read)(_k.value, 2), pageName = _l[0], pageJson = _l[1];
for (var _j = tslib_1.__values(pageJsonByName.entries()), _k = _j.next(); !_k.done; _k = _j.next()) {
var _l = tslib_1.__read(_k.value, 2), pageName = _l[0], pageJson = _l[1];
var pageJsonPath = path.join(outputRoot, pageJson.group || '', pageName + '.page.json');

@@ -95,0 +95,0 @@ // eslint-disable-next-line no-console

@@ -1,1 +0,1 @@

{"version":3,"file":"generatePageJsonFiles.js","sourceRoot":"../src/","sources":["generatePageJsonFiles.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fse from 'fs-extra';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { ApiModel } from '@microsoft/api-extractor-model';\nimport { IPageJsonOptions } from './types';\nimport { generatePageJson } from './pageJson';\n\nconst tmpFile = path.join(os.tmpdir(), 'compat.api.json');\n\n/**\n * Main entry point to create API \\*.page.json files.\n */\nexport function generatePageJsonFiles(options: IPageJsonOptions): void {\n const { pageGroups = {}, fallbackGroup, outputRoot, apiJsonPaths, min } = options;\n\n // Create and/or empty output folders\n fse.emptyDirSync(outputRoot);\n for (const group of Object.keys(pageGroups)) {\n fse.emptyDirSync(path.join(outputRoot, group));\n }\n if (fallbackGroup) {\n fse.emptyDirSync(path.join(outputRoot, fallbackGroup));\n }\n\n // Load api-extractor output from packages into a model\n const apiModel = new ApiModel();\n for (const apiJsonPath of apiJsonPaths) {\n // eslint-disable-next-line no-console\n console.log('Loading ' + apiJsonPath);\n\n // If the file belongs to the compat layer.\n if (apiJsonPath.indexOf('compat') !== -1) {\n // Get the json info and change the package name.\n const jsonObject = require(apiJsonPath);\n jsonObject.name = jsonObject.name + '-compat';\n\n // Write the info into a temporary file.\n fse.writeJSONSync(tmpFile, jsonObject);\n\n // Load the package info into the API model.\n apiModel.loadPackage(tmpFile);\n\n // Delete the temporary file.\n fse.unlinkSync(tmpFile);\n } else {\n apiModel.loadPackage(apiJsonPath);\n }\n }\n\n // Generate the page data\n const pageJsonByName = generatePageJson(apiModel, pageGroups, fallbackGroup);\n\n // Warn if any requested page names didn't correspond to a docCategory found in the API info\n const requestedPages = ([] as string[]).concat(...Object.values(pageGroups));\n for (const pageName of requestedPages) {\n if (!pageJsonByName.has(pageName)) {\n // eslint-disable-next-line no-console\n console.warn('Warning: no API items found for expected @docCategory ' + pageName);\n }\n }\n\n // Write the files\n for (const [pageName, pageJson] of pageJsonByName.entries()) {\n const pageJsonPath = path.join(outputRoot, pageJson.group || '', pageName + '.page.json');\n\n // eslint-disable-next-line no-console\n console.log('Writing ' + pageJsonPath);\n const json = min ? JSON.stringify(pageJson) : JSON.stringify(pageJson, null, 2);\n fse.writeFileSync(pageJsonPath, json);\n }\n}\n"]}
{"version":3,"file":"generatePageJsonFiles.js","sourceRoot":"../src/","sources":["generatePageJsonFiles.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fse from 'fs-extra';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { ApiModel } from '@microsoft/api-extractor-model';\nimport { IPageJsonOptions } from './types';\nimport { generatePageJson } from './pageJson';\n\nconst tmpFile = path.join(os.tmpdir(), 'compat.api.json');\n\n/**\n * Main entry point to create API \\*.page.json files.\n */\nexport function generatePageJsonFiles(options: IPageJsonOptions): void {\n const { pageGroups = {}, fallbackGroup, outputRoot, apiJsonPaths, min } = options;\n\n // Create and/or empty output folders\n fse.emptyDirSync(outputRoot);\n for (const group of Object.keys(pageGroups)) {\n fse.emptyDirSync(path.join(outputRoot, group));\n }\n if (fallbackGroup) {\n fse.emptyDirSync(path.join(outputRoot, fallbackGroup));\n }\n\n // Load api-extractor output from packages into a model\n const apiModel = new ApiModel();\n for (const apiJsonPath of apiJsonPaths) {\n // eslint-disable-next-line no-console\n console.log('Loading ' + apiJsonPath);\n\n // If the file belongs to the compat layer.\n if (apiJsonPath.indexOf('compat') !== -1) {\n // Get the json info and change the package name.\n const jsonObject = require(apiJsonPath);\n jsonObject.name = jsonObject.name + '-compat';\n\n // Write the info into a temporary file.\n fse.writeJSONSync(tmpFile, jsonObject);\n\n // Load the package info into the API model.\n apiModel.loadPackage(tmpFile);\n\n // Delete the temporary file.\n fse.unlinkSync(tmpFile);\n } else {\n apiModel.loadPackage(apiJsonPath);\n }\n }\n\n // Generate the page data\n const pageJsonByName = generatePageJson(apiModel, pageGroups, fallbackGroup);\n\n // Warn if any requested page names didn't correspond to a docCategory found in the API info\n const requestedPages = ([] as string[]).concat(...Object.values(pageGroups));\n for (const pageName of requestedPages) {\n if (!pageJsonByName.has(pageName)) {\n // eslint-disable-next-line no-console\n console.warn('Warning: no API items found for expected @docCategory ' + pageName);\n }\n }\n\n // Write the files\n for (const [pageName, pageJson] of pageJsonByName.entries()) {\n const pageJsonPath = path.join(outputRoot, pageJson.group || '', pageName + '.page.json');\n\n // eslint-disable-next-line no-console\n console.log('Writing ' + pageJsonPath);\n const json = min ? JSON.stringify(pageJson) : JSON.stringify(pageJson, null, 2);\n fse.writeFileSync(pageJsonPath, json);\n }\n}\n"]}

@@ -5,3 +5,3 @@ "use strict";

var tslib_1 = require("tslib");
(0, tslib_1.__exportStar)(require("./types"), exports);
tslib_1.__exportStar(require("./types"), exports);
var generatePageJsonFiles_1 = require("./generatePageJsonFiles");

@@ -8,0 +8,0 @@ Object.defineProperty(exports, "generatePageJsonFiles", { enumerable: true, get: function () { return generatePageJsonFiles_1.generatePageJsonFiles; } });

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"../src/","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,uDAAwB;AACxB,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA","sourcesContent":["export * from './types';\nexport { generatePageJsonFiles } from './generatePageJsonFiles';\nexport { generatePageJson } from './pageJson';\n"]}
{"version":3,"file":"index.js","sourceRoot":"../src/","sources":["index.ts"],"names":[],"mappings":";;;;AAAA,kDAAwB;AACxB,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA","sourcesContent":["export * from './types';\nexport { generatePageJsonFiles } from './generatePageJsonFiles';\nexport { generatePageJson } from './pageJson';\n"]}

@@ -19,4 +19,4 @@ "use strict";

try {
for (var _b = (0, tslib_1.__values)(collectedData.pagesByName.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
var _d = (0, tslib_1.__read)(_c.value, 2), pageName = _d[0], pageData = _d[1];
for (var _b = tslib_1.__values(collectedData.pagesByName.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
var _d = tslib_1.__read(_c.value, 2), pageName = _d[0], pageData = _d[1];
result.set(pageName, {

@@ -52,6 +52,6 @@ tables: pageData.apiItems

try {
for (var _e = (0, tslib_1.__values)(Object.entries(pageGroups)), _f = _e.next(); !_f.done; _f = _e.next()) {
var _g = (0, tslib_1.__read)(_f.value, 2), group = _g[0], pageNames = _g[1];
for (var _e = tslib_1.__values(Object.entries(pageGroups)), _f = _e.next(); !_f.done; _f = _e.next()) {
var _g = tslib_1.__read(_f.value, 2), group = _g[0], pageNames = _g[1];
try {
for (var pageNames_1 = (e_3 = void 0, (0, tslib_1.__values)(pageNames)), pageNames_1_1 = pageNames_1.next(); !pageNames_1_1.done; pageNames_1_1 = pageNames_1.next()) {
for (var pageNames_1 = (e_3 = void 0, tslib_1.__values(pageNames)), pageNames_1_1 = pageNames_1.next(); !pageNames_1_1.done; pageNames_1_1 = pageNames_1.next()) {
var pageName = pageNames_1_1.value;

@@ -80,6 +80,6 @@ groupsByPage[pageName] = group;

// Generate empty page data objects for each docCategory
for (var _h = (0, tslib_1.__values)(collectedData.apiModel.packages), _j = _h.next(); !_j.done; _j = _h.next()) {
for (var _h = tslib_1.__values(collectedData.apiModel.packages), _j = _h.next(); !_j.done; _j = _h.next()) {
var apiPackage = _j.value;
try {
for (var _k = (e_5 = void 0, (0, tslib_1.__values)(apiPackage.entryPoints)), _l = _k.next(); !_l.done; _l = _k.next()) {
for (var _k = (e_5 = void 0, tslib_1.__values(apiPackage.entryPoints)), _l = _k.next(); !_l.done; _l = _k.next()) {
var entryPoint = _l.value;

@@ -134,3 +134,3 @@ initPageDataForItem(collectedData, entryPoint, groupsByPage, fallbackGroup);

try {
for (var _b = (0, tslib_1.__values)(apiItem.members), _c = _b.next(); !_c.done; _c = _b.next()) {
for (var _b = tslib_1.__values(apiItem.members), _c = _b.next(); !_c.done; _c = _b.next()) {
var memberApiItem = _c.value;

@@ -137,0 +137,0 @@ initPageDataForItem(collectedData, memberApiItem, groupsByPage, fallbackGroup);

@@ -1,1 +0,1 @@

{"version":3,"file":"pageJson.js","sourceRoot":"../src/","sources":["pageJson.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApiItem, ApiDocumentedItem, ApiModel, ApiItemKind } from '@microsoft/api-extractor-model';\nimport { findInlineTagByName } from './rendering';\nimport { ICollectedData } from './types-private';\nimport { ITableJson, IPageJson, PageGroups } from './types';\nimport { createTableJson } from './tableJson';\n\nconst supportedApiItems = [ApiItemKind.Interface, ApiItemKind.Enum, ApiItemKind.Class, ApiItemKind.TypeAlias];\n\n/**\n * Given `apiModel` with API package info already loaded into it, generate page data for each\n * `docCategory` tag (page name) and the APIs within it.\n */\nexport function generatePageJson(\n apiModel: ApiModel,\n pageGroups: PageGroups = {},\n fallbackGroup?: string,\n): Map<string, IPageJson> {\n const collectedData = initPageData(apiModel, pageGroups, fallbackGroup);\n\n const result = new Map<string, IPageJson>();\n for (const [pageName, pageData] of collectedData.pagesByName.entries()) {\n result.set(pageName, {\n tables: pageData.apiItems\n .map((apiItem: ApiItem) => createTableJson(collectedData, apiItem))\n .filter((table: ITableJson | undefined) => !!table) as ITableJson[],\n name: pageName,\n group: pageData.group,\n });\n }\n\n return result;\n}\n\n/**\n * Walk all the APIs from `apiModel.packages` and generate an empty page data object for each\n * `docCategory` tag (page name) encountered. The returned object contains a mapping from page name\n * (`docCategory`) to page data (`pagesByName`), and from API name to page data (`pagesByApi`).\n * The page data objects referenced in both maps are the same.\n */\nfunction initPageData(apiModel: ApiModel, pageGroups: PageGroups, fallbackGroup?: string): ICollectedData {\n // Map the pages to groups all at once for convenience later\n const groupsByPage: { [pageName: string]: string } = {};\n for (const [group, pageNames] of Object.entries(pageGroups)) {\n for (const pageName of pageNames) {\n groupsByPage[pageName] = group;\n }\n }\n\n const collectedData: ICollectedData = { apiModel, pagesByName: new Map(), pagesByApi: new Map() };\n\n // Generate empty page data objects for each docCategory\n for (const apiPackage of collectedData.apiModel.packages) {\n for (const entryPoint of apiPackage.entryPoints) {\n initPageDataForItem(collectedData, entryPoint, groupsByPage, fallbackGroup);\n }\n }\n return collectedData;\n}\n\n/**\n * Walk this API item and its members, adding an empty page data object to `collectedData.pagesByName`\n * for each new `docCategory` tag (page name) encountered. Also update `collectedData.pagesByApi` with\n * mappings for every API item encountered.\n */\nfunction initPageDataForItem(\n collectedData: ICollectedData,\n apiItem: ApiItem,\n groupsByPage: { [pageName: string]: string },\n fallbackGroup?: string,\n): void {\n if (\n supportedApiItems.includes(apiItem.kind as unknown as ApiItemKind) &&\n apiItem instanceof ApiDocumentedItem &&\n apiItem.tsdocComment\n ) {\n const docCategoryTag = findInlineTagByName('@docCategory', apiItem.tsdocComment);\n\n if (docCategoryTag) {\n const pageName = docCategoryTag.tagContent.trim();\n let pageData = collectedData.pagesByName.get(pageName);\n\n if (!pageData) {\n pageData = {\n name: pageName,\n apiItems: [],\n group: groupsByPage[pageName] || fallbackGroup,\n };\n collectedData.pagesByName.set(pageName, pageData);\n }\n collectedData.pagesByApi.set(apiItem.displayName, pageData);\n\n pageData.apiItems.push(apiItem);\n }\n }\n\n for (const memberApiItem of apiItem.members) {\n initPageDataForItem(collectedData, memberApiItem, groupsByPage, fallbackGroup);\n }\n}\n"]}
{"version":3,"file":"pageJson.js","sourceRoot":"../src/","sources":["pageJson.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApiItem, ApiDocumentedItem, ApiModel, ApiItemKind } from '@microsoft/api-extractor-model';\nimport { findInlineTagByName } from './rendering';\nimport { ICollectedData } from './types-private';\nimport { ITableJson, IPageJson, PageGroups } from './types';\nimport { createTableJson } from './tableJson';\n\nconst supportedApiItems = [ApiItemKind.Interface, ApiItemKind.Enum, ApiItemKind.Class, ApiItemKind.TypeAlias];\n\n/**\n * Given `apiModel` with API package info already loaded into it, generate page data for each\n * `docCategory` tag (page name) and the APIs within it.\n */\nexport function generatePageJson(\n apiModel: ApiModel,\n pageGroups: PageGroups = {},\n fallbackGroup?: string,\n): Map<string, IPageJson> {\n const collectedData = initPageData(apiModel, pageGroups, fallbackGroup);\n\n const result = new Map<string, IPageJson>();\n for (const [pageName, pageData] of collectedData.pagesByName.entries()) {\n result.set(pageName, {\n tables: pageData.apiItems\n .map((apiItem: ApiItem) => createTableJson(collectedData, apiItem))\n .filter((table: ITableJson | undefined) => !!table) as ITableJson[],\n name: pageName,\n group: pageData.group,\n });\n }\n\n return result;\n}\n\n/**\n * Walk all the APIs from `apiModel.packages` and generate an empty page data object for each\n * `docCategory` tag (page name) encountered. The returned object contains a mapping from page name\n * (`docCategory`) to page data (`pagesByName`), and from API name to page data (`pagesByApi`).\n * The page data objects referenced in both maps are the same.\n */\nfunction initPageData(apiModel: ApiModel, pageGroups: PageGroups, fallbackGroup?: string): ICollectedData {\n // Map the pages to groups all at once for convenience later\n const groupsByPage: { [pageName: string]: string } = {};\n for (const [group, pageNames] of Object.entries(pageGroups)) {\n for (const pageName of pageNames) {\n groupsByPage[pageName] = group;\n }\n }\n\n const collectedData: ICollectedData = { apiModel, pagesByName: new Map(), pagesByApi: new Map() };\n\n // Generate empty page data objects for each docCategory\n for (const apiPackage of collectedData.apiModel.packages) {\n for (const entryPoint of apiPackage.entryPoints) {\n initPageDataForItem(collectedData, entryPoint, groupsByPage, fallbackGroup);\n }\n }\n return collectedData;\n}\n\n/**\n * Walk this API item and its members, adding an empty page data object to `collectedData.pagesByName`\n * for each new `docCategory` tag (page name) encountered. Also update `collectedData.pagesByApi` with\n * mappings for every API item encountered.\n */\nfunction initPageDataForItem(\n collectedData: ICollectedData,\n apiItem: ApiItem,\n groupsByPage: { [pageName: string]: string },\n fallbackGroup?: string,\n): void {\n if (\n supportedApiItems.includes(apiItem.kind as unknown as ApiItemKind) &&\n apiItem instanceof ApiDocumentedItem &&\n apiItem.tsdocComment\n ) {\n const docCategoryTag = findInlineTagByName('@docCategory', apiItem.tsdocComment);\n\n if (docCategoryTag) {\n const pageName = docCategoryTag.tagContent.trim();\n let pageData = collectedData.pagesByName.get(pageName);\n\n if (!pageData) {\n pageData = {\n name: pageName,\n apiItems: [],\n group: groupsByPage[pageName] || fallbackGroup,\n };\n collectedData.pagesByName.set(pageName, pageData);\n }\n collectedData.pagesByApi.set(apiItem.displayName, pageData);\n\n pageData.apiItems.push(apiItem);\n }\n }\n\n for (const memberApiItem of apiItem.members) {\n initPageDataForItem(collectedData, memberApiItem, groupsByPage, fallbackGroup);\n }\n}\n"]}

@@ -81,3 +81,3 @@ "use strict";

try {
for (var initialTokens_1 = (0, tslib_1.__values)(initialTokens), initialTokens_1_1 = initialTokens_1.next(); !initialTokens_1_1.done; initialTokens_1_1 = initialTokens_1.next()) {
for (var initialTokens_1 = tslib_1.__values(initialTokens), initialTokens_1_1 = initialTokens_1.next(); !initialTokens_1_1.done; initialTokens_1_1 = initialTokens_1.next()) {
var token = initialTokens_1_1.value;

@@ -101,3 +101,3 @@ var prevToken = conciseTokens.slice(-1)[0];

if (isTypeAlias && conciseTokens.length >= 2) {
var _b = (0, tslib_1.__read)(conciseTokens, 2), firstToken = _b[0], secondToken = _b[1];
var _b = tslib_1.__read(conciseTokens, 2), firstToken = _b[0], secondToken = _b[1];
// The "export declare" part for a type alias (from firstToken) isn't very helpful,

@@ -127,3 +127,3 @@ // and neither is a self-link for the type name (secondToken). Get rid of them.

try {
for (var _b = (0, tslib_1.__values)(docSection.getChildNodes()), _c = _b.next(); !_c.done; _c = _b.next()) {
for (var _b = tslib_1.__values(docSection.getChildNodes()), _c = _b.next(); !_c.done; _c = _b.next()) {
var childNode = _c.value;

@@ -153,3 +153,3 @@ result += renderDocNodeWithoutInlineTag(childNode);

try {
for (var _b = (0, tslib_1.__values)(docComment.getChildNodes()), _c = _b.next(); !_c.done; _c = _b.next()) {
for (var _b = tslib_1.__values(docComment.getChildNodes()), _c = _b.next(); !_c.done; _c = _b.next()) {
var childNode = _c.value;

@@ -156,0 +156,0 @@ var result = findInlineTagByName(tagName, childNode);

@@ -1,1 +0,1 @@

{"version":3,"file":"rendering.js","sourceRoot":"../src/","sources":["rendering.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DocExcerpt,\n DocInlineTag,\n DocSection,\n DocComment,\n DocPlainText,\n DocParagraph,\n DocNode,\n DocNodeTransforms,\n DocLinkTag,\n DocNodeContainer,\n DocCodeSpan,\n DocBlock,\n DocNodeKind,\n} from '@microsoft/tsdoc';\nimport { ApiItem, ApiModel, ExcerptToken, IExcerptTokenRange } from '@microsoft/api-extractor-model';\nimport { ILinkToken } from './types';\nimport { ICollectedData } from './types-private';\n\n/**\n * Render nodes from `section` (which is part of `apiItem`) into text.\n */\nexport function renderNodes(apiModel: ApiModel, apiItem: ApiItem, section: DocNodeContainer): string {\n return section.nodes\n .map((node: DocNode) => renderNode(apiModel, apiItem, node))\n .join('')\n .trim();\n}\n\n/**\n * Extracts text from a doc node\n *\n * @param apiModel - Model containing all API info\n * @param apiItem - API item the node came from\n * @param node - Node from which to extract text\n */\nfunction renderNode(apiModel: ApiModel, apiItem: ApiItem, node: DocNode): string {\n switch (node.kind) {\n case 'Paragraph':\n const transformedParagraph: DocParagraph = DocNodeTransforms.trimSpacesInParagraph(node as DocParagraph);\n return renderNodes(apiModel, apiItem, transformedParagraph);\n case 'LinkTag':\n return renderLinkTag(apiModel, apiItem, node as DocLinkTag);\n case 'CodeSpan':\n return '`' + (node as DocCodeSpan).code + '`';\n case 'PlainText':\n return (node as DocPlainText).text;\n case 'SoftBreak':\n return ' ';\n default:\n return '';\n }\n}\n\n/**\n * Render a link into text. For now we just extract the text or the code item name\n * (rather than returning an actual link).\n */\nfunction renderLinkTag(apiModel: ApiModel, apiItem: ApiItem, link: DocLinkTag): string {\n if (link.linkText) {\n return link.linkText;\n } else if (link.codeDestination) {\n const result = apiModel.resolveDeclarationReference(link.codeDestination, apiItem);\n if (result.resolvedApiItem) {\n return result.resolvedApiItem.getScopedNameWithinPackage();\n }\n }\n return '';\n}\n\n/**\n * Loops through excerpt tokens and returns a token array with hyperlink data.\n * In cases where multiple consecutive original tokens don't contain a link, they will be combined\n * to decrease file size and client processing time.\n * @param collectedData - Used to create links from reference tokens\n * @param excerptTokens - Token list containing the relevant info\n * @param excerptTokenRange - Specific relevant range within `excerptTokens`\n * @param isTypeAlias - If true, remove the \"export declare\" part from the result and don't make\n * a link from the type name (since it will be a self-link).\n */\nexport function getTokenHyperlinks(\n collectedData: ICollectedData,\n excerptTokens: ReadonlyArray<ExcerptToken>,\n excerptTokenRange: Readonly<IExcerptTokenRange>,\n isTypeAlias?: boolean,\n): ILinkToken[] {\n const initialTokens = getTokensInRange(excerptTokens, excerptTokenRange).map((token: ExcerptToken) => {\n const result: ILinkToken = { text: token.text };\n if (token.kind === 'Reference') {\n const page = collectedData.pagesByApi.get(token.text);\n if (page) {\n result.linkedPage = page.name;\n result.linkedPageGroup = page.group;\n }\n }\n return result;\n });\n\n const conciseTokens: ILinkToken[] = [];\n for (const token of initialTokens) {\n const prevToken = conciseTokens.slice(-1)[0];\n if (prevToken && !prevToken.linkedPage && !token.linkedPage) {\n prevToken.text += token.text;\n } else {\n conciseTokens.push(token);\n }\n }\n\n if (isTypeAlias && conciseTokens.length >= 2) {\n const [firstToken, secondToken] = conciseTokens;\n // The \"export declare\" part for a type alias (from firstToken) isn't very helpful,\n // and neither is a self-link for the type name (secondToken). Get rid of them.\n if (firstToken.text === 'export declare type ' && secondToken.linkedPage) {\n firstToken.text = firstToken.text.replace('export declare ', '') + secondToken.text;\n conciseTokens.splice(1, 1);\n }\n }\n\n return conciseTokens;\n}\n\n/**\n * Renders the doc node (likely a DocComment's DocSection) without the inline tag\n */\nexport function renderDocNodeWithoutInlineTag(docSection?: DocSection): string {\n let result = '';\n if (docSection) {\n if (docSection.kind === DocNodeKind.InlineTag) {\n return result.trim();\n } else if (docSection instanceof DocExcerpt) {\n result += docSection.content.toString();\n }\n for (const childNode of docSection.getChildNodes()) {\n result += renderDocNodeWithoutInlineTag(childNode as DocSection);\n }\n }\n return result;\n}\n\n/**\n * Finds an inline tag by name from the provided doc comment\n */\nexport function findInlineTagByName(tagName: string, docComment: DocComment): DocInlineTag | undefined {\n if (docComment instanceof DocInlineTag && docComment.tagName === tagName) {\n return docComment;\n }\n for (const childNode of docComment.getChildNodes()) {\n const result: DocInlineTag | undefined = findInlineTagByName(tagName, childNode as DocComment);\n if (result) {\n return result;\n }\n }\n return undefined;\n}\n\n/**\n * Gets the block tag by name\n */\nexport function getBlockTagByName(tagName: string, docComment: DocComment): DocSection | undefined {\n const tag = docComment.customBlocks.find(\n (customBlock: DocBlock) => customBlock.blockTag.tagName === tagName.toLowerCase(),\n );\n return tag && tag.content;\n}\n\n/**\n * Convert a range of tokens to a string.\n */\nexport function renderTokens(\n excerptTokens: ReadonlyArray<ExcerptToken>,\n excerptTokenRange: Readonly<IExcerptTokenRange>,\n): string {\n return getTokensInRange(excerptTokens, excerptTokenRange)\n .map((token: ExcerptToken) => token.text)\n .join('');\n}\n\nfunction getTokensInRange(\n excerptTokens: ReadonlyArray<ExcerptToken>,\n excerptTokenRange: Readonly<IExcerptTokenRange>,\n): ReadonlyArray<ExcerptToken> {\n return excerptTokens.slice(excerptTokenRange.startIndex, excerptTokenRange.endIndex);\n}\n"]}
{"version":3,"file":"rendering.js","sourceRoot":"../src/","sources":["rendering.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DocExcerpt,\n DocInlineTag,\n DocSection,\n DocComment,\n DocPlainText,\n DocParagraph,\n DocNode,\n DocNodeTransforms,\n DocLinkTag,\n DocNodeContainer,\n DocCodeSpan,\n DocBlock,\n DocNodeKind,\n} from '@microsoft/tsdoc';\nimport { ApiItem, ApiModel, ExcerptToken, IExcerptTokenRange } from '@microsoft/api-extractor-model';\nimport { ILinkToken } from './types';\nimport { ICollectedData } from './types-private';\n\n/**\n * Render nodes from `section` (which is part of `apiItem`) into text.\n */\nexport function renderNodes(apiModel: ApiModel, apiItem: ApiItem, section: DocNodeContainer): string {\n return section.nodes\n .map((node: DocNode) => renderNode(apiModel, apiItem, node))\n .join('')\n .trim();\n}\n\n/**\n * Extracts text from a doc node\n *\n * @param apiModel - Model containing all API info\n * @param apiItem - API item the node came from\n * @param node - Node from which to extract text\n */\nfunction renderNode(apiModel: ApiModel, apiItem: ApiItem, node: DocNode): string {\n switch (node.kind) {\n case 'Paragraph':\n const transformedParagraph: DocParagraph = DocNodeTransforms.trimSpacesInParagraph(node as DocParagraph);\n return renderNodes(apiModel, apiItem, transformedParagraph);\n case 'LinkTag':\n return renderLinkTag(apiModel, apiItem, node as DocLinkTag);\n case 'CodeSpan':\n return '`' + (node as DocCodeSpan).code + '`';\n case 'PlainText':\n return (node as DocPlainText).text;\n case 'SoftBreak':\n return ' ';\n default:\n return '';\n }\n}\n\n/**\n * Render a link into text. For now we just extract the text or the code item name\n * (rather than returning an actual link).\n */\nfunction renderLinkTag(apiModel: ApiModel, apiItem: ApiItem, link: DocLinkTag): string {\n if (link.linkText) {\n return link.linkText;\n } else if (link.codeDestination) {\n const result = apiModel.resolveDeclarationReference(link.codeDestination, apiItem);\n if (result.resolvedApiItem) {\n return result.resolvedApiItem.getScopedNameWithinPackage();\n }\n }\n return '';\n}\n\n/**\n * Loops through excerpt tokens and returns a token array with hyperlink data.\n * In cases where multiple consecutive original tokens don't contain a link, they will be combined\n * to decrease file size and client processing time.\n * @param collectedData - Used to create links from reference tokens\n * @param excerptTokens - Token list containing the relevant info\n * @param excerptTokenRange - Specific relevant range within `excerptTokens`\n * @param isTypeAlias - If true, remove the \"export declare\" part from the result and don't make\n * a link from the type name (since it will be a self-link).\n */\nexport function getTokenHyperlinks(\n collectedData: ICollectedData,\n excerptTokens: ReadonlyArray<ExcerptToken>,\n excerptTokenRange: Readonly<IExcerptTokenRange>,\n isTypeAlias?: boolean,\n): ILinkToken[] {\n const initialTokens = getTokensInRange(excerptTokens, excerptTokenRange).map((token: ExcerptToken) => {\n const result: ILinkToken = { text: token.text };\n if (token.kind === 'Reference') {\n const page = collectedData.pagesByApi.get(token.text);\n if (page) {\n result.linkedPage = page.name;\n result.linkedPageGroup = page.group;\n }\n }\n return result;\n });\n\n const conciseTokens: ILinkToken[] = [];\n for (const token of initialTokens) {\n const prevToken = conciseTokens.slice(-1)[0];\n if (prevToken && !prevToken.linkedPage && !token.linkedPage) {\n prevToken.text += token.text;\n } else {\n conciseTokens.push(token);\n }\n }\n\n if (isTypeAlias && conciseTokens.length >= 2) {\n const [firstToken, secondToken] = conciseTokens;\n // The \"export declare\" part for a type alias (from firstToken) isn't very helpful,\n // and neither is a self-link for the type name (secondToken). Get rid of them.\n if (firstToken.text === 'export declare type ' && secondToken.linkedPage) {\n firstToken.text = firstToken.text.replace('export declare ', '') + secondToken.text;\n conciseTokens.splice(1, 1);\n }\n }\n\n return conciseTokens;\n}\n\n/**\n * Renders the doc node (likely a DocComment's DocSection) without the inline tag\n */\nexport function renderDocNodeWithoutInlineTag(docSection?: DocSection): string {\n let result = '';\n if (docSection) {\n if (docSection.kind === DocNodeKind.InlineTag) {\n return result.trim();\n } else if (docSection instanceof DocExcerpt) {\n result += docSection.content.toString();\n }\n for (const childNode of docSection.getChildNodes()) {\n result += renderDocNodeWithoutInlineTag(childNode as DocSection);\n }\n }\n return result;\n}\n\n/**\n * Finds an inline tag by name from the provided doc comment\n */\nexport function findInlineTagByName(tagName: string, docComment: DocComment): DocInlineTag | undefined {\n if (docComment instanceof DocInlineTag && docComment.tagName === tagName) {\n return docComment;\n }\n for (const childNode of docComment.getChildNodes()) {\n const result: DocInlineTag | undefined = findInlineTagByName(tagName, childNode as DocComment);\n if (result) {\n return result;\n }\n }\n return undefined;\n}\n\n/**\n * Gets the block tag by name\n */\nexport function getBlockTagByName(tagName: string, docComment: DocComment): DocSection | undefined {\n const tag = docComment.customBlocks.find(\n (customBlock: DocBlock) => customBlock.blockTag.tagName === tagName.toLowerCase(),\n );\n return tag && tag.content;\n}\n\n/**\n * Convert a range of tokens to a string.\n */\nexport function renderTokens(\n excerptTokens: ReadonlyArray<ExcerptToken>,\n excerptTokenRange: Readonly<IExcerptTokenRange>,\n): string {\n return getTokensInRange(excerptTokens, excerptTokenRange)\n .map((token: ExcerptToken) => token.text)\n .join('');\n}\n\nfunction getTokensInRange(\n excerptTokens: ReadonlyArray<ExcerptToken>,\n excerptTokenRange: Readonly<IExcerptTokenRange>,\n): ReadonlyArray<ExcerptToken> {\n return excerptTokens.slice(excerptTokenRange.startIndex, excerptTokenRange.endIndex);\n}\n"]}

@@ -42,3 +42,3 @@ "use strict";

try {
for (var extendsArr_1 = (0, tslib_1.__values)(extendsArr), extendsArr_1_1 = extendsArr_1.next(); !extendsArr_1_1.done; extendsArr_1_1 = extendsArr_1.next()) {
for (var extendsArr_1 = tslib_1.__values(extendsArr), extendsArr_1_1 = extendsArr_1.next(); !extendsArr_1_1.done; extendsArr_1_1 = extendsArr_1.next()) {
var extendsType = extendsArr_1_1.value;

@@ -49,3 +49,3 @@ if (tableJson.extendsTokens.length) {

}
(_b = tableJson.extendsTokens).push.apply(_b, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)((0, rendering_1.getTokenHyperlinks)(collectedData, extendsType.excerpt.tokens, extendsType.excerpt.tokenRange)), false));
(_b = tableJson.extendsTokens).push.apply(_b, tslib_1.__spreadArray([], tslib_1.__read((0, rendering_1.getTokenHyperlinks)(collectedData, extendsType.excerpt.tokens, extendsType.excerpt.tokenRange)), false));
}

@@ -52,0 +52,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"tableJson.js","sourceRoot":"../src/","sources":["tableJson.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApiClass,\n ApiEnum,\n ApiEnumMember,\n ApiInterface,\n ApiTypeAlias,\n ApiDeclaredItem,\n HeritageType,\n ApiItem,\n ApiItemKind,\n} from '@microsoft/api-extractor-model';\nimport { ITableJson, ITableRowJson } from './types';\nimport { renderDocNodeWithoutInlineTag, getTokenHyperlinks, renderNodes } from './rendering';\nimport { ICollectedData } from './types-private';\nimport { createTableRowJson, createEnumTableRowJson } from './tableRowJson';\n\nexport function createTableJson(collectedData: ICollectedData, apiItem: ApiItem): ITableJson | undefined {\n switch (apiItem.kind as unknown as ApiItemKind) {\n case ApiItemKind.Interface: {\n return createInterfacePageJson(collectedData, apiItem as ApiInterface);\n }\n case ApiItemKind.Enum: {\n return createEnumPageJson(collectedData, apiItem as ApiEnum);\n }\n case ApiItemKind.Class: {\n return createClassPageJson(collectedData, apiItem as ApiClass);\n }\n case ApiItemKind.TypeAlias: {\n return createTypeAliasPageJson(collectedData, apiItem as ApiTypeAlias);\n }\n }\n return undefined;\n}\n\n/**\n * Generate an ITableJson for a top-level API item (interface, class, enum, type alias)\n * with the name, description, deprecated message, and optionally extends tokens pre-filled.\n */\nfunction createBasicTableJson(\n collectedData: ICollectedData,\n apiItem: ApiDeclaredItem,\n kind: ITableJson['kind'],\n extendsTypes?: HeritageType | readonly HeritageType[],\n): ITableJson {\n const { tsdocComment } = apiItem;\n const tableJson: ITableJson = {\n kind,\n name: apiItem.displayName,\n description: (tsdocComment && renderDocNodeWithoutInlineTag(tsdocComment.summarySection)) || undefined,\n };\n\n const extendsArr: HeritageType[] | undefined =\n !extendsTypes || Array.isArray(extendsTypes) ? extendsTypes : [extendsTypes as HeritageType];\n if (extendsArr && extendsArr.length) {\n tableJson.extendsTokens = [];\n for (const extendsType of extendsArr) {\n if (tableJson.extendsTokens.length) {\n // if there are multiple extends types, we should separate them with a comma\n tableJson.extendsTokens.push({ text: ', ' });\n }\n tableJson.extendsTokens.push(\n ...getTokenHyperlinks(collectedData, extendsType.excerpt.tokens, extendsType.excerpt.tokenRange),\n );\n }\n }\n\n if (tsdocComment && tsdocComment.deprecatedBlock) {\n tableJson.deprecated = true;\n tableJson.deprecatedMessage = renderNodes(collectedData.apiModel, apiItem, tsdocComment.deprecatedBlock.content);\n }\n\n return tableJson;\n}\n\nfunction createInterfacePageJson(collectedData: ICollectedData, interfaceItem: ApiInterface): ITableJson {\n const tableJson = createBasicTableJson(collectedData, interfaceItem, 'interface', interfaceItem.extendsTypes);\n\n tableJson.members = interfaceItem.members\n .map((member: ApiItem) => createTableRowJson(collectedData, member))\n .filter((row: ITableRowJson | undefined): row is ITableRowJson => !!row);\n\n return tableJson;\n}\n\nfunction createEnumPageJson(collectedData: ICollectedData, enumItem: ApiEnum): ITableJson {\n const tableJson = createBasicTableJson(collectedData, enumItem, 'enum');\n\n tableJson.members = enumItem.members.map((member: ApiEnumMember) => createEnumTableRowJson(collectedData, member));\n\n return tableJson;\n}\n\nfunction createClassPageJson(collectedData: ICollectedData, classItem: ApiClass): ITableJson {\n const tableJson = createBasicTableJson(collectedData, classItem, 'class', classItem.extendsType);\n\n tableJson.members = classItem.members\n .map((member: ApiItem) => createTableRowJson(collectedData, member))\n .filter((row: ITableRowJson | undefined): row is ITableRowJson => !!row)\n // Constructor goes first\n .sort((a: ITableRowJson, b: ITableRowJson) => (a.name === 'constructor' ? -1 : 0));\n\n return tableJson;\n}\n\nfunction createTypeAliasPageJson(collectedData: ICollectedData, typeAliasItem: ApiTypeAlias): ITableJson {\n const tableJson = createBasicTableJson(collectedData, typeAliasItem, 'typeAlias');\n\n tableJson.extendsTokens = getTokenHyperlinks(\n collectedData,\n typeAliasItem.excerptTokens,\n typeAliasItem.excerpt.tokenRange,\n true,\n );\n\n return tableJson;\n}\n"]}
{"version":3,"file":"tableJson.js","sourceRoot":"../src/","sources":["tableJson.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApiClass,\n ApiEnum,\n ApiEnumMember,\n ApiInterface,\n ApiTypeAlias,\n ApiDeclaredItem,\n HeritageType,\n ApiItem,\n ApiItemKind,\n} from '@microsoft/api-extractor-model';\nimport { ITableJson, ITableRowJson } from './types';\nimport { renderDocNodeWithoutInlineTag, getTokenHyperlinks, renderNodes } from './rendering';\nimport { ICollectedData } from './types-private';\nimport { createTableRowJson, createEnumTableRowJson } from './tableRowJson';\n\nexport function createTableJson(collectedData: ICollectedData, apiItem: ApiItem): ITableJson | undefined {\n switch (apiItem.kind as unknown as ApiItemKind) {\n case ApiItemKind.Interface: {\n return createInterfacePageJson(collectedData, apiItem as ApiInterface);\n }\n case ApiItemKind.Enum: {\n return createEnumPageJson(collectedData, apiItem as ApiEnum);\n }\n case ApiItemKind.Class: {\n return createClassPageJson(collectedData, apiItem as ApiClass);\n }\n case ApiItemKind.TypeAlias: {\n return createTypeAliasPageJson(collectedData, apiItem as ApiTypeAlias);\n }\n }\n return undefined;\n}\n\n/**\n * Generate an ITableJson for a top-level API item (interface, class, enum, type alias)\n * with the name, description, deprecated message, and optionally extends tokens pre-filled.\n */\nfunction createBasicTableJson(\n collectedData: ICollectedData,\n apiItem: ApiDeclaredItem,\n kind: ITableJson['kind'],\n extendsTypes?: HeritageType | readonly HeritageType[],\n): ITableJson {\n const { tsdocComment } = apiItem;\n const tableJson: ITableJson = {\n kind,\n name: apiItem.displayName,\n description: (tsdocComment && renderDocNodeWithoutInlineTag(tsdocComment.summarySection)) || undefined,\n };\n\n const extendsArr: HeritageType[] | undefined =\n !extendsTypes || Array.isArray(extendsTypes) ? extendsTypes : [extendsTypes as HeritageType];\n if (extendsArr && extendsArr.length) {\n tableJson.extendsTokens = [];\n for (const extendsType of extendsArr) {\n if (tableJson.extendsTokens.length) {\n // if there are multiple extends types, we should separate them with a comma\n tableJson.extendsTokens.push({ text: ', ' });\n }\n tableJson.extendsTokens.push(\n ...getTokenHyperlinks(collectedData, extendsType.excerpt.tokens, extendsType.excerpt.tokenRange),\n );\n }\n }\n\n if (tsdocComment && tsdocComment.deprecatedBlock) {\n tableJson.deprecated = true;\n tableJson.deprecatedMessage = renderNodes(collectedData.apiModel, apiItem, tsdocComment.deprecatedBlock.content);\n }\n\n return tableJson;\n}\n\nfunction createInterfacePageJson(collectedData: ICollectedData, interfaceItem: ApiInterface): ITableJson {\n const tableJson = createBasicTableJson(collectedData, interfaceItem, 'interface', interfaceItem.extendsTypes);\n\n tableJson.members = interfaceItem.members\n .map((member: ApiItem) => createTableRowJson(collectedData, member))\n .filter((row: ITableRowJson | undefined): row is ITableRowJson => !!row);\n\n return tableJson;\n}\n\nfunction createEnumPageJson(collectedData: ICollectedData, enumItem: ApiEnum): ITableJson {\n const tableJson = createBasicTableJson(collectedData, enumItem, 'enum');\n\n tableJson.members = enumItem.members.map((member: ApiEnumMember) => createEnumTableRowJson(collectedData, member));\n\n return tableJson;\n}\n\nfunction createClassPageJson(collectedData: ICollectedData, classItem: ApiClass): ITableJson {\n const tableJson = createBasicTableJson(collectedData, classItem, 'class', classItem.extendsType);\n\n tableJson.members = classItem.members\n .map((member: ApiItem) => createTableRowJson(collectedData, member))\n .filter((row: ITableRowJson | undefined): row is ITableRowJson => !!row)\n // Constructor goes first\n .sort((a: ITableRowJson, b: ITableRowJson) => (a.name === 'constructor' ? -1 : 0));\n\n return tableJson;\n}\n\nfunction createTypeAliasPageJson(collectedData: ICollectedData, typeAliasItem: ApiTypeAlias): ITableJson {\n const tableJson = createBasicTableJson(collectedData, typeAliasItem, 'typeAlias');\n\n tableJson.extendsTokens = getTokenHyperlinks(\n collectedData,\n typeAliasItem.excerptTokens,\n typeAliasItem.excerpt.tokenRange,\n true,\n );\n\n return tableJson;\n}\n"]}
{
"name": "@fluentui/api-docs",
"version": "8.2.10",
"version": "8.2.11",
"description": "Transforms API Extractor .api.json files into .page.json files",

@@ -24,3 +24,3 @@ "repository": {

"dependencies": {
"@microsoft/api-extractor-model": "7.17.1",
"@microsoft/api-extractor-model": "7.24.2",
"@microsoft/tsdoc": "0.14.1",

@@ -27,0 +27,0 @@ "fs-extra": "^8.1.0"

Sorry, the diff of this file is too big to display