{"version":3,"sources":["DisplayPackage/InstallationInfo.tsx","SearchResults.tsx","App.tsx","DisplayPackage/Dependencies.tsx","DisplayPackage/Dependents.tsx","DisplayPackage/LicenseInfo.tsx","DisplayPackage/SourceRepository.tsx","Upload.tsx","DisplayPackage/DisplayPackage.tsx","index.tsx"],"names":["Tab","SearchResults","props","defaultIconUrl","resultsController","loadDefaultIcon","e","currentTarget","src","onChangePackageType","option","_loadItems","input","state","includePrerelease","key","toString","targetFramework","onChangeFramework","packageType","onChangePrerelease","items","this","abort","className","Dropdown","defaultSelectedKey","dropdownWidth","onChange","options","text","itemType","SelectableOptionMenuItemType","Divider","Header","Checkbox","defaultChecked","label","boxSide","map","value","id","iconUrl","onError","alt","Link","to","authors","Icon","iconName","totalDownloads","toLocaleString","version","tags","join","description","query","AbortController","setState","url","buildUrl","fetch","signal","then","response","json","resultsJson","results","data","parameters","semVerLevel","length","q","prerelease","framework","queryString","Object","keys","k","encodeURIComponent","React","App","onRouteChange","location","action","renderSearch","handleChange","target","history","listen","_renderNavigationBar","_renderContent","role","NavLink","exact","href","rel","type","autoComplete","placeholder","Route","path","render","children","withRouter","Dependencies","dependencyGroups","forEach","group","dependencies","PackageDependencies","dependency","range","Dependents","controller","undefined","totalHits","packageId","console","log","catch","dependent","InstallationInfo","handleSelect","selected","buildState","copyCommand","CopyText","content","isDotnetTool","DotnetTool","Dotnet","hidden","onSelect","PackageReference","Paket","PackageManager","prefix","onClick","data-tottle","data-placement","data-content","tab","InstallationInfoTab","title","LicenseInfo","SourceRepository","aria-hidden","DisplayPackage","parser","htmlRenderer","registrationController","readmeController","Parser","HtmlRenderer","match","params","package","previous","componentDidMount","currentItem","lastUpdate","latestVersion","upper","versions","entry","normalizedVersion","normalizeVersion","catalogEntry","push","date","Date","published","downloads","readme","hasReadme","packageTypes","indexOf","downloadUrl","packageContent","readmeUrl","result","prevState","markdown","parse","dangerouslySetInnerHTML","__html","timeago","format","projectUrl","repositoryUrl","repositoryType","licenseUrl","dateToString","getMonth","getDate","getFullYear","buildMetadataStart","substring","Upload","baseUrl","serviceIndexUrl","publishUrl","pathEnd","window","DotNet","NuGet","PowerShellGet","documentationUrl","name","UploadTab","initializeIcons","ReactDOM","component","document","getElementById"],"mappings":"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","file":"static/js/main.f8daeaa0.chunk.js","sourcesContent":["import { Icon } from 'office-ui-fabric-react/lib/Icon';\nimport * as React from 'react';\nimport CopyText from 'copy-text-to-clipboard';\n\nimport './InstallationInfo.css';\n\ninterface IInstallationInfoProps {\n id: string;\n version: string;\n isDotnetTool: boolean;\n}\n\ninterface IInstallationInfoState {\n selected: Tab;\n prefix: string;\n content: string;\n}\n\nenum Tab {\n Dotnet,\n DotnetTool,\n PackageReference,\n Paket,\n PackageManager,\n}\n\nclass InstallationInfo extends React.Component {\n\n constructor(props: IInstallationInfoProps) {\n super(props);\n\n // tslint:disable-next-line:no-console\n console.log(props);\n this.state = props.isDotnetTool\n ? this.buildState(Tab.DotnetTool)\n : this.buildState(Tab.Dotnet);\n }\n\n public render() {\n return (\n
\n \n\n
\n
\n {this.state.prefix} {this.state.content}\n
\n
\n \n
\n
\n
\n );\n }\n\n private handleSelect = (selected: Tab) =>\n this.setState(this.buildState(selected));\n\n private copyCommand = () =>\n CopyText(this.state.content);\n\n private buildState(tab: Tab): IInstallationInfoState {\n let content: string;\n let prefix: string;\n\n switch (tab) {\n case Tab.Dotnet:\n content = `dotnet add package ${this.props.id} --version ${this.props.version}`;\n prefix = \">\";\n break;\n\n case Tab.DotnetTool:\n content = `dotnet tool install --global ${this.props.id} --version ${this.props.version}`;\n prefix = \">\";\n break;\n\n case Tab.PackageReference:\n content = ``;\n prefix = \"\";\n break;\n\n case Tab.Paket:\n content = `paket add ${this.props.id} --version ${this.props.version}`;\n prefix = \">\";\n break;\n\n default:\n case Tab.PackageManager:\n content = `Install-Package ${this.props.id} -Version ${this.props.version}`;\n prefix = \"PM>\";\n break;\n }\n\n return {\n content,\n prefix,\n selected: tab,\n };\n }\n}\n\ninterface IInstallationInfoTabProps {\n type: Tab;\n hidden: boolean;\n selected: Tab;\n onSelect(value: Tab): void;\n}\n\n// tslint:disable-next-line:max-classes-per-file\nclass InstallationInfoTab extends React.Component {\n\n private title: string;\n\n constructor(props: IInstallationInfoTabProps) {\n super(props);\n\n switch (props.type) {\n case Tab.Dotnet: this.title = \".NET CLI\"; break;\n case Tab.DotnetTool: this.title = \".NET CLI\"; break;\n case Tab.PackageReference: this.title = \"PackageReference\"; break;\n case Tab.Paket: this.title = \"Paket CLI\"; break;\n case Tab.PackageManager: this.title = \"Package Manager\"; break;\n default: this.title = \"Unknown\"; break;\n }\n }\n\n public render() {\n if (this.props.hidden) {\n return null;\n }\n\n if (this.props.type === this.props.selected) {\n // eslint-disable-next-line\n return
  • {this.title}
  • \n }\n\n // eslint-disable-next-line\n return
  • {this.title}
  • \n }\n\n private onSelect = (e: React.MouseEvent) => this.props.onSelect(this.props.type);\n}\n\nexport default InstallationInfo;\n","import { Icon } from 'office-ui-fabric-react/lib/Icon';\nimport { Checkbox, Dropdown, IDropdownOption, SelectableOptionMenuItemType } from 'office-ui-fabric-react/lib/index';\nimport * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport './SearchResults.css';\n\ninterface ISearchResultsProps {\n input: string;\n}\n\ninterface IPackage {\n id: string;\n authors: string;\n totalDownloads: number;\n version: string;\n tags: string[];\n description: string;\n iconUrl: string;\n}\n\ninterface ISearchResultsState {\n includePrerelease: boolean;\n packageType: string;\n targetFramework: string;\n items: IPackage[];\n}\n\ninterface ISearchResponse {\n data: IPackage[];\n}\n\nclass SearchResults extends React.Component {\n\n private readonly defaultIconUrl: string = 'https://www.nuget.org/Content/gallery/img/default-package-icon-256x256.png';\n private resultsController?: AbortController;\n\n constructor(props: ISearchResultsProps) {\n super(props);\n\n this.state = {\n includePrerelease: true,\n items: [],\n packageType: 'any',\n targetFramework: 'any'\n };\n }\n\n public componentDidMount() {\n this._loadItems(\n this.props.input,\n this.state.includePrerelease,\n this.state.packageType,\n this.state.targetFramework);\n }\n\n public componentWillUnmount() {\n if (this.resultsController) {\n this.resultsController.abort();\n }\n }\n\n public componentWillReceiveProps(props: Readonly) {\n if (props.input === this.props.input) {\n return;\n }\n\n this._loadItems(\n props.input,\n this.state.includePrerelease,\n this.state.packageType,\n this.state.targetFramework);\n }\n\n public render() {\n return (\n
    \n
    \n
    \n \n\n
    \n \n
    \n
    \n\n
    \n \n\n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {this.state.items.map(value => (\n
    \n
    \n \n
    \n
    \n
    \n {value.id}\n by: {value.authors}\n
    \n
      \n
    • \n \n \n {value.totalDownloads.toLocaleString()} total downloads\n \n
    • \n
    • \n \n \n Latest version: {value.version}\n \n
    • \n
    • \n \n \n {value.tags.join(' ')}\n \n
    • \n
    \n
    \n {value.description}\n
    \n
    \n
    \n ))}\n
    \n );\n }\n\n private _loadItems(query: string, includePrerelease: boolean, packageType: string, targetFramework: string): void {\n if (this.resultsController) {\n this.resultsController.abort();\n }\n\n this.resultsController = new AbortController();\n\n this.setState({\n includePrerelease,\n items: [],\n packageType,\n targetFramework,\n });\n\n const url = this.buildUrl(query, includePrerelease, packageType, targetFramework);\n\n fetch(url, {signal: this.resultsController.signal}).then(response => {\n return response.json();\n }).then(resultsJson => {\n const results = resultsJson as ISearchResponse;\n\n this.setState({\n includePrerelease,\n items: results.data,\n targetFramework,\n });\n });\n }\n\n private buildUrl(query: string, includePrerelease: boolean, packageType?: string, targetFramework?: string) {\n const parameters: { [parameter: string]: string } = {\n semVerLevel: \"2.0.0\"\n };\n\n if (query && query.length !== 0) {\n parameters.q = query;\n }\n\n if (includePrerelease) {\n parameters.prerelease = 'true';\n }\n\n if (packageType && packageType !== 'any') {\n parameters.packageType = packageType;\n }\n\n if (targetFramework && targetFramework !== 'any') {\n parameters.framework = targetFramework;\n }\n\n const queryString = Object.keys(parameters)\n .map(k => `${k}=${encodeURIComponent(parameters[k])}`)\n .join('&');\n\n return `/v3/search?${queryString}`;\n }\n\n private loadDefaultIcon = (e: React.SyntheticEvent) => {\n e.currentTarget.src = this.defaultIconUrl;\n }\n\n private onChangePackageType = (e: React.FormEvent, option?: IDropdownOption) : void => {\n this._loadItems(\n this.props.input,\n this.state.includePrerelease,\n (option) ? option.key.toString() : 'any',\n this.state.targetFramework);\n }\n\n private onChangeFramework = (e: React.FormEvent, option?: IDropdownOption) : void => {\n this._loadItems(\n this.props.input,\n this.state.includePrerelease,\n this.state.packageType,\n option!.key.toString());\n }\n\n private onChangePrerelease = () : void => {\n this._loadItems(\n this.props.input,\n !this.state.includePrerelease,\n this.state.packageType,\n this.state.targetFramework);\n }\n}\n\nexport default SearchResults;\n","import * as React from 'react';\n\nimport { Action, Location } from 'history';\nimport { withRouter } from 'react-router';\nimport { NavLink, Route, RouteComponentProps } from 'react-router-dom';\n\nimport SearchResults from './SearchResults';\n\nimport './App.css';\n\ninterface IAppState {\n input: string;\n}\n\nclass App extends React.Component {\n\n constructor(props: RouteComponentProps) {\n super(props);\n\n this.state = { input: \"\" };\n\n this.props.history.listen(this.onRouteChange);\n }\n\n public render() {\n return (\n
    \n {this._renderNavigationBar()}\n\n {this._renderContent()}\n
    \n );\n }\n\n private onRouteChange = (location: Location, action: Action) =>\n this.setState({ input: \"\" });\n\n private _renderNavigationBar() {\n return (\n \n );\n }\n\n private _renderContent() {\n if (this.state.input.length === 0) {\n return (\n
    \n \n\n {this.props.children}\n
    \n );\n }\n else\n {\n return (\n
    \n \n
    \n );\n }\n }\n\n private renderSearch = (props: RouteComponentProps) => (\n \n );\n\n private handleChange = (input: React.ChangeEvent) =>\n this.setState({ input: input.target.value });\n}\n\nexport default withRouter(App);\n","import * as React from 'react';\nimport * as Registration from './Registration';\n\ninterface IDependenciesProps {\n dependencyGroups: Registration.IDependencyGroup[];\n}\n\ninterface IPackageDependenciesProps {\n dependencies: Registration.IDependency[] | undefined;\n}\n\nclass Dependencies extends React.Component {\n\n constructor(props: IDependenciesProps) {\n props.dependencyGroups.forEach(group => {\n if (!group.dependencies) {\n group.dependencies = [];\n }\n });\n\n super(props);\n }\n\n public render() {\n if (this.props.dependencyGroups.length === 0) {\n return (\n
    \n

    Dependencies

    \n\n
    This package has no dependencies.
    \n
    \n );\n }\n\n return (\n
    \n

    Dependencies

    \n\n
    \n {this.props.dependencyGroups.map(group => (\n
    \n

    {group.targetFramework}

    \n\n \n
    \n ))}\n
    \n
    \n );\n }\n}\n\n// tslint:disable-next-line:max-classes-per-file\nclass PackageDependencies extends React.Component {\n\n public render() {\n if (!this.props.dependencies || this.props.dependencies.length === 0) {\n return
    No dependencies.
    \n }\n\n return (\n
      \n {this.props.dependencies.map(dependency => (\n
    • \n {dependency.id} {dependency.range}\n
    • \n ))}\n
    \n );\n }\n}\n\nexport default Dependencies;\n","import * as React from 'react';\n\ninterface IDependentsProps {\n packageId: string;\n}\n\ninterface IDependentsState {\n totalHits: number | undefined;\n data: string[] | undefined;\n}\n\nclass Dependents extends React.Component {\n\n private controller: AbortController;\n\n constructor(props: IDependentsProps) {\n super(props);\n\n this.controller = new AbortController();\n\n this.state = {\n data: undefined,\n totalHits: undefined,\n };\n }\n\n public componentWillUnmount() {\n this.controller.abort();\n }\n\n public componentDidMount() {\n const url = `/v3/dependents?packageId=${this.props.packageId}`;\n\n fetch(url, {signal: this.controller.signal}).then(response => {\n return response.json();\n }).then(json => {\n // tslint:disable-next-line:no-console\n console.log(json as IDependentsState);\n this.setState(json as IDependentsState);\n // tslint:disable-next-line:no-console\n }).catch((e) => console.log(\"Failed to load dependents.\", e));\n }\n\n public render() {\n if (!this.state.data) {\n return (\n
    \n

    Dependents

    \n\n
    ...
    \n
    \n );\n }\n\n if (this.state.totalHits === 0) {\n return (\n
    \n

    Dependents

    \n\n
    No packages depend on {this.props.packageId}
    \n
    \n );\n }\n\n return (\n
    \n

    Dependents

    \n\n

    {this.state.totalHits} {this.state.totalHits === 1 ? 'package depends' : 'packages depend' } on {this.props.packageId}:

    \n
    \n
      \n {this.state.data.map(dependent => (\n
    • {dependent}
    • \n ))}\n
    \n
    \n
    \n );\n }\n}\n\nexport default Dependents;\n","import { Icon } from 'office-ui-fabric-react/lib/Icon';\nimport * as React from 'react';\n\ninterface ILicenseInfoProps {\n url: string;\n}\n\nclass LicenseInfo extends React.Component {\n\n public render() {\n if (!this.props.url) {\n return null;\n }\n\n return (\n
  • \n \n License\n
  • \n );\n }\n}\n\nexport default LicenseInfo;\n","import * as React from 'react';\nimport './SourceRepository.css';\n\ninterface ISourceRepositoryProps {\n url: string;\n type: string;\n}\n\nclass SourceRepository extends React.Component {\n\n public render() {\n if (!this.props.url) {\n return null;\n }\n\n // TODO: Add an icon URL base off the repository type.\n return (\n
  • \n \"GitHub\n Source code\n
  • \n );\n }\n}\n\nexport default SourceRepository;\n","import { Icon } from 'office-ui-fabric-react/lib/Icon';\nimport * as React from 'react';\nimport CopyText from 'copy-text-to-clipboard';\n\nimport './Upload.css';\n\ninterface IUploadState {\n selected: Tab;\n content: string[];\n documentationUrl: string;\n name: string;\n}\n\nenum Tab {\n DotNet,\n NuGet,\n Paket,\n PowerShellGet\n}\n\nclass Upload extends React.Component<{}, IUploadState> {\n\n private baseUrl: string;\n private serviceIndexUrl: string;\n private publishUrl: string;\n\n constructor(props: {}) {\n super(props);\n\n const pathEnd = window.location.href.indexOf(\"/upload\");\n\n this.baseUrl = window.location.href.substring(0, pathEnd);\n this.serviceIndexUrl = this.baseUrl + \"/v3/index.json\";\n this.publishUrl = this.baseUrl + \"/api/v2/package\";\n this.state = this.buildState(Tab.DotNet);\n }\n\n public render() {\n return (\n
    \n

    Upload

    \n
    \n\n
    You can push packages using the service index {this.serviceIndexUrl}.
    \n\n
    \n
      \n \n \n \n \n
    \n\n
    \n
    \n {this.state.content.map(value => (\n
    \n > {value}\n
    \n ))}\n
    \n
    \n \n
    \n
    \n
    \n For more information, please refer to {this.state.name}'s documentation.\n
    \n
    \n
    \n );\n }\n\n private handleSelect = (selected: Tab) =>\n this.setState(this.buildState(selected));\n\n private copyCommand = () =>\n CopyText(this.state.content.join(\"\\n\"));\n\n private buildState(tab: Tab): IUploadState {\n let name: string;\n let content: string[];\n let documentationUrl: string;\n\n switch (tab) {\n case Tab.DotNet:\n name = \".NET CLI\";\n content = [`dotnet nuget push -s ${this.serviceIndexUrl} package.nupkg`];\n documentationUrl = \"https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-nuget-push\";\n break;\n\n case Tab.NuGet:\n name = \"NuGet\";\n content = [`nuget push -Source ${this.serviceIndexUrl} package.nupkg`];\n documentationUrl = \"https://docs.microsoft.com/en-us/nuget/tools/cli-ref-push\";\n break;\n\n case Tab.Paket:\n name = \"Paket\";\n content = [`paket push --url ${this.baseUrl} package.nupkg`];\n documentationUrl = \"https://fsprojects.github.io/Paket/paket-push.html\";\n break;\n\n default:\n case Tab.PowerShellGet:\n name = \"PowerShellGet\";\n content = [\n `Register-PSRepository -Name \"BaGet\" -SourceLocation \"${this.serviceIndexUrl}\" -PublishLocation \"${this.publishUrl}\" -InstallationPolicy \"Trusted\"`,\n `Publish-Module -Name PS-Module -Repository BaGet`\n ];\n documentationUrl = \"https://docs.microsoft.com/en-us/powershell/module/powershellget/publish-module\";\n break;\n }\n\n return {\n content,\n documentationUrl,\n name,\n selected: tab,\n };\n }\n}\n\ninterface IUploadTabProps {\n type: Tab;\n selected: Tab;\n onSelect(value: Tab): void;\n}\n\n// tslint:disable-next-line:max-classes-per-file\nclass UploadTab extends React.Component {\n\n private title: string;\n\n constructor(props: IUploadTabProps) {\n super(props);\n\n switch (props.type) {\n case Tab.DotNet: this.title = \".NET CLI\"; break;\n case Tab.NuGet: this.title = \"NuGet CLI\"; break;\n case Tab.Paket: this.title = \"Paket CLI\"; break;\n case Tab.PowerShellGet: this.title = \"PowerShellGet\"; break;\n default: this.title = \"Unknown\"; break;\n }\n }\n\n public render() {\n if (this.props.type === this.props.selected) {\n // eslint-disable-next-line\n return
  • {this.title}
  • \n }\n\n // eslint-disable-next-line\n return
  • {this.title}
  • \n }\n\n private onSelect = (e: React.MouseEvent) => this.props.onSelect(this.props.type);\n}\n\nexport default Upload;\n","import { HtmlRenderer, Parser } from 'commonmark';\nimport { Icon } from 'office-ui-fabric-react/lib/Icon';\nimport * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport timeago from 'timeago.js';\nimport Dependencies from './Dependencies';\nimport Dependents from './Dependents';\nimport InstallationInfo from './InstallationInfo';\nimport LicenseInfo from './LicenseInfo';\nimport * as Registration from './Registration';\nimport SourceRepository from './SourceRepository';\n\nimport './DisplayPackage.css';\n\ninterface IDisplayPackageProps {\n match: {\n params: {\n id: string;\n version?: string;\n }\n }\n}\n\ninterface IPackage {\n id: string;\n latestVersion: string;\n readme: string;\n lastUpdate: Date;\n iconUrl: string;\n projectUrl: string;\n licenseUrl: string;\n downloadUrl: string;\n repositoryUrl: string;\n repositoryType: string;\n totalDownloads: number;\n isDotnetTool: boolean;\n downloads: number;\n authors: string;\n tags: string[];\n version: string;\n normalizedVersion: string;\n versions: IPackageVersion[];\n dependencyGroups: Registration.IDependencyGroup[];\n}\n\ninterface IPackageVersion {\n version: string;\n downloads: number;\n date: Date;\n}\n\ninterface IDisplayPackageState {\n package?: IPackage;\n}\n\nclass DisplayPackage extends React.Component {\n\n private readonly defaultIconUrl: string = 'https://www.nuget.org/Content/gallery/img/default-package-icon-256x256.png';\n\n private id: string;\n private version?: string;\n private parser: Parser;\n private htmlRenderer: HtmlRenderer;\n\n private registrationController: AbortController;\n private readmeController: AbortController;\n\n constructor(props: IDisplayPackageProps) {\n super(props);\n\n this.parser = new Parser();\n this.htmlRenderer = new HtmlRenderer();\n\n this.registrationController = new AbortController();\n this.readmeController = new AbortController();\n\n this.id = props.match.params.id;\n this.version = props.match.params.version;\n this.state = {package: undefined};\n }\n\n public componentWillUnmount() {\n this.registrationController.abort();\n this.readmeController.abort();\n }\n\n public componentDidUpdate(previous: IDisplayPackageProps) {\n // This is used to switch between versions of the same package.\n if (previous.match.params.id !== this.props.match.params.id ||\n previous.match.params.version !== this.props.match.params.version) {\n this.registrationController.abort();\n this.readmeController.abort();\n\n this.registrationController = new AbortController();\n this.readmeController = new AbortController();\n\n this.id = this.props.match.params.id;\n this.version = this.props.match.params.version;\n this.setState({package: undefined});\n this.componentDidMount();\n }\n }\n\n public componentDidMount() {\n const url = `/v3/registration/${this.id}/index.json`;\n\n fetch(url, {signal: this.registrationController.signal}).then(response => {\n return response.json();\n }).then(json => {\n const results = json as Registration.IRegistrationIndex;\n\n const latestVersion = results.items[0].upper;\n let currentItem: Registration.IRegistrationPageItem | undefined;\n let lastUpdate: Date | undefined;\n\n const versions: IPackageVersion[] = [];\n\n for (const entry of results.items[0].items) {\n const normalizedVersion = this.normalizeVersion(entry.catalogEntry.version);\n versions.push({\n date: new Date(entry.catalogEntry.published),\n downloads: entry.catalogEntry.downloads,\n version: normalizedVersion,\n });\n\n if ((!currentItem && normalizedVersion === latestVersion) ||\n (this.version && normalizedVersion === this.version)) {\n currentItem = entry;\n }\n\n const published = new Date(entry.catalogEntry.published);\n if (!lastUpdate || lastUpdate < published) {\n lastUpdate = published;\n }\n }\n\n if (currentItem && lastUpdate) {\n let readme = \"\";\n if (!currentItem.catalogEntry.hasReadme) {\n readme = currentItem.catalogEntry.description;\n }\n\n const isDotnetTool = (currentItem.catalogEntry.packageTypes &&\n currentItem.catalogEntry.packageTypes.indexOf(\"DotnetTool\") !== -1);\n\n this.setState({\n package: {\n ...currentItem.catalogEntry,\n downloadUrl: currentItem.packageContent,\n isDotnetTool,\n lastUpdate,\n latestVersion,\n normalizedVersion: this.normalizeVersion(currentItem.catalogEntry.version),\n readme,\n totalDownloads: results.totalDownloads,\n versions\n }\n });\n\n if (currentItem.catalogEntry.hasReadme) {\n const readmeUrl = `/v3/package/${this.id}/${currentItem.catalogEntry.version}/readme`;\n\n fetch(readmeUrl, {signal: this.readmeController.signal}).then(response => {\n return response.text();\n }).then(result => {\n this.setState(prevState => {\n const state = {...prevState};\n const markdown = this.parser.parse(result);\n\n state.package!.readme = this.htmlRenderer.render(markdown);\n\n return state;\n });\n });\n }\n }\n // tslint:disable-next-line:no-console\n }).catch((e) => console.log(\"Failed to load package.\", e));\n }\n\n public render() {\n if (!this.state.package) {\n return (\n
    ...
    \n );\n } else {\n return (\n
    \n \n
    \n
    \n

    \n {this.state.package.id}\n {this.state.package.version}\n

    \n\n
    \n\n \n\n {/* TODO: Fix this */}\n
    \n\n \n \n
    \n \n
    \n );\n }\n }\n\n private loadDefaultIcon = (e: React.SyntheticEvent) => {\n e.currentTarget.src = this.defaultIconUrl;\n }\n\n private dateToString(date: Date): string {\n return `${date.getMonth()+1}/${date.getDate()}/${date.getFullYear()}`;\n }\n\n private normalizeVersion(version: string): string {\n const buildMetadataStart = version.indexOf('+');\n return buildMetadataStart === -1\n ? version\n : version.substring(0, buildMetadataStart);\n }\n}\n\nexport default DisplayPackage;\n","import { initializeIcons } from '@uifabric/icons';\nimport 'bootstrap/dist/css/bootstrap.css';\nimport { BrowserRouter as Router, Route } from 'react-router-dom';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport App from './App';\n\nimport DisplayPackage from './DisplayPackage/DisplayPackage';\nimport Upload from './Upload';\n\nimport './index.css';\n\n// import registerServiceWorker from './registerServiceWorker';\n\ninitializeIcons();\n\nReactDOM.render(\n \n \n \n\n \n \n ,\n document.getElementById('root') as HTMLElement\n);\n\n// registerServiceWorker();\n"],"sourceRoot":""}