Merge branch 'main' into aeisenberg/assert-version
This commit is contained in:
4
.github/workflows/main.yml
vendored
4
.github/workflows/main.yml
vendored
@@ -82,7 +82,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.14.0'
|
||||
node-version: '16.14.2'
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: extensions/ql-vscode
|
||||
@@ -156,7 +156,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.14.0'
|
||||
node-version: '16.14.2'
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: extensions/ql-vscode
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
**/* @github/codeql-vscode-reviewers
|
||||
**/remote-queries/ @github/code-scanning-secexp-reviewers
|
||||
**/variant-analysis/ @github/code-scanning-secexp-reviewers
|
||||
**/databases/ @github/code-scanning-secexp-reviewers
|
||||
|
||||
@@ -102,11 +102,17 @@ We have several types of tests:
|
||||
|
||||
The CLI integration tests require an instance of the CodeQL CLI to run so they will require some extra setup steps. When adding new tests to our test suite, please be mindful of whether they need to be in the cli-integration folder. If the tests don't depend on the CLI, they are better suited to being a VSCode integration test.
|
||||
|
||||
Any test data you're using (sample projects, config files, etc.) must go in a `src/vscode-tests/*/data` directory. When you run the tests, the test runner will copy the data directory to `out/vscode-tests/*/data`.
|
||||
|
||||
#### Running the tests
|
||||
|
||||
Pre-requisites:
|
||||
1. Run `npm run build`.
|
||||
2. You will need to have `npm run watch` running in the background.
|
||||
|
||||
##### 1. From the terminal
|
||||
|
||||
First move into the `extensions/ql-vscode` directory. Then, depending on which tests you want to run, use the appropriate command to run the tests:
|
||||
Then, from the `extensions/ql-vscode` directory, use the appropriate command to run the tests:
|
||||
|
||||
* Unit tests: `npm run test:unit`
|
||||
* View Tests: `npm test:view`
|
||||
|
||||
6
extensions/ql-vscode/.eslintignore
Normal file
6
extensions/ql-vscode/.eslintignore
Normal file
@@ -0,0 +1,6 @@
|
||||
.vscode-test/
|
||||
node_modules/
|
||||
out/
|
||||
|
||||
# Include the Storybook config
|
||||
!.storybook
|
||||
@@ -3,7 +3,7 @@ module.exports = {
|
||||
parserOptions: {
|
||||
ecmaVersion: 2018,
|
||||
sourceType: "module",
|
||||
project: ["tsconfig.json", "./src/**/tsconfig.json", "./gulpfile.ts/tsconfig.json"],
|
||||
project: ["tsconfig.json", "./src/**/tsconfig.json", "./gulpfile.ts/tsconfig.json", "./scripts/tsconfig.json", "./.storybook/tsconfig.json"],
|
||||
},
|
||||
plugins: ["@typescript-eslint"],
|
||||
env: {
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{
|
||||
"exit": true,
|
||||
"require": [
|
||||
"test/mocha.setup.js"
|
||||
]
|
||||
"require": ["test/mocha.setup.js"]
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import '@vscode/codicons/dist/codicon.css';
|
||||
// https://storybook.js.org/docs/react/configure/overview#configure-story-rendering
|
||||
export const parameters = {
|
||||
// All props starting with `on` will automatically receive an action as a prop
|
||||
actions: { argTypesRegex: "^on[A-Z].*" },
|
||||
actions: { argTypesRegex: '^on[A-Z].*' },
|
||||
// All props matching these names will automatically get the correct control
|
||||
controls: {
|
||||
matchers: {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export function config(entry = []) {
|
||||
return [...entry, require.resolve("./preview.ts")];
|
||||
return [...entry, require.resolve('./preview.ts')];
|
||||
}
|
||||
|
||||
export function managerEntries(entry = []) {
|
||||
return [...entry, require.resolve("./manager.tsx")];
|
||||
return [...entry, require.resolve('./manager.tsx')];
|
||||
}
|
||||
|
||||
@@ -6,4 +6,4 @@ export enum VSCodeTheme {
|
||||
export const themeNames: { [key in VSCodeTheme]: string } = {
|
||||
[VSCodeTheme.Dark]: 'Dark+',
|
||||
[VSCodeTheme.Light]: 'Light+',
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4,9 +4,11 @@ import type { AnyFramework, PartialStoryFn as StoryFunction, StoryContext } from
|
||||
import { VSCodeTheme } from './theme';
|
||||
|
||||
const themeFiles: { [key in VSCodeTheme]: string } = {
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
[VSCodeTheme.Dark]: require('!file-loader?modules!../../src/stories/vscode-theme-dark.css').default,
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
[VSCodeTheme.Light]: require('!file-loader?modules!../../src/stories/vscode-theme-light.css').default,
|
||||
}
|
||||
};
|
||||
|
||||
export const withTheme = (
|
||||
StoryFn: StoryFunction<AnyFramework>,
|
||||
@@ -18,7 +20,7 @@ export const withTheme = (
|
||||
const styleSelectorId =
|
||||
context.viewMode === 'docs'
|
||||
? `addon-vscode-theme-docs-${context.id}`
|
||||
: `addon-vscode-theme-theme`;
|
||||
: 'addon-vscode-theme-theme';
|
||||
|
||||
const theme = Object.values(VSCodeTheme).includes(vscodeTheme) ? vscodeTheme as VSCodeTheme : VSCodeTheme.Dark;
|
||||
|
||||
|
||||
@@ -2,6 +2,12 @@
|
||||
|
||||
## [UNRELEASED]
|
||||
|
||||
## 1.7.4 - 29 October 2022
|
||||
|
||||
No user facing changes.
|
||||
|
||||
## 1.7.3 - 28 October 2022
|
||||
|
||||
- Fix a bug where databases may be lost if VS Code is restarted while the extension is being started up. [#1638](https://github.com/github/vscode-codeql/pull/1638)
|
||||
- Add commands for navigating up, down, left, or right in the result viewer. Previously there were only commands for moving up and down the currently-selected path. We suggest binding keyboard shortcuts to these commands, for navigating the result viewer using the keyboard. [#1568](https://github.com/github/vscode-codeql/pull/1568)
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ const packageFiles = [
|
||||
'snippets.json',
|
||||
'media',
|
||||
'node_modules',
|
||||
'out'
|
||||
'out',
|
||||
'workspace-databases-schema.json'
|
||||
];
|
||||
|
||||
async function copyPackage(sourcePath: string, destPath: string): Promise<void> {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import * as gulp from 'gulp';
|
||||
import { compileTypeScript, watchTypeScript, cleanOutput } from './typescript';
|
||||
import { compileTextMateGrammar } from './textmate';
|
||||
import { copyTestData } from './tests';
|
||||
import { copyTestData, watchTestData } from './tests';
|
||||
import { compileView, watchView } from './webpack';
|
||||
import { packageExtension } from './package';
|
||||
import { injectAppInsightsKey } from './appInsights';
|
||||
@@ -21,6 +21,7 @@ export {
|
||||
watchView,
|
||||
compileTypeScript,
|
||||
copyTestData,
|
||||
watchTestData,
|
||||
injectAppInsightsKey,
|
||||
compileView,
|
||||
};
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
import * as gulp from 'gulp';
|
||||
|
||||
export function copyTestData() {
|
||||
copyNoWorkspaceData();
|
||||
copyCliIntegrationData();
|
||||
return Promise.resolve();
|
||||
return Promise.all([
|
||||
copyNoWorkspaceData(),
|
||||
copyCliIntegrationData()
|
||||
]);
|
||||
}
|
||||
|
||||
export function watchTestData() {
|
||||
return gulp.watch(['src/vscode-tests/*/data/**/*'], copyTestData);
|
||||
}
|
||||
|
||||
function copyNoWorkspaceData() {
|
||||
|
||||
3109
extensions/ql-vscode/package-lock.json
generated
3109
extensions/ql-vscode/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,7 @@
|
||||
"description": "CodeQL for Visual Studio Code",
|
||||
"author": "GitHub",
|
||||
"private": true,
|
||||
"version": "1.7.3",
|
||||
"version": "1.7.5",
|
||||
"publisher": "GitHub",
|
||||
"license": "MIT",
|
||||
"icon": "media/VS-marketplace-CodeQL-icon.png",
|
||||
@@ -37,6 +37,7 @@
|
||||
"onLanguage:ql",
|
||||
"onLanguage:ql-summary",
|
||||
"onView:codeQLDatabases",
|
||||
"onView:codeQLDatabasesExperimental",
|
||||
"onView:codeQLQueryHistory",
|
||||
"onView:codeQLAstViewer",
|
||||
"onView:codeQLEvalLogViewer",
|
||||
@@ -83,6 +84,12 @@
|
||||
"editor.wordBasedSuggestions": false
|
||||
}
|
||||
},
|
||||
"jsonValidation": [
|
||||
{
|
||||
"fileMatch": "workspace-databases.json",
|
||||
"url": "./workspace-databases-schema.json"
|
||||
}
|
||||
],
|
||||
"languages": [
|
||||
{
|
||||
"id": "ql",
|
||||
@@ -353,6 +360,14 @@
|
||||
"command": "codeQL.copyVersion",
|
||||
"title": "CodeQL: Copy Version Information"
|
||||
},
|
||||
{
|
||||
"command": "codeQLDatabasesExperimental.openConfigFile",
|
||||
"title": "Open Database Configuration File",
|
||||
"icon": {
|
||||
"light": "media/light/edit.svg",
|
||||
"dark": "media/dark/edit.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "codeQLDatabases.chooseDatabaseFolder",
|
||||
"title": "Choose Database from Folder",
|
||||
@@ -751,6 +766,11 @@
|
||||
"command": "codeQLEvalLogViewer.clear",
|
||||
"when": "view == codeQLEvalLogViewer",
|
||||
"group": "navigation"
|
||||
},
|
||||
{
|
||||
"command": "codeQLDatabasesExperimental.openConfigFile",
|
||||
"when": "view == codeQLDatabasesExperimental",
|
||||
"group": "navigation"
|
||||
}
|
||||
],
|
||||
"view/item/context": [
|
||||
@@ -969,6 +989,10 @@
|
||||
"command": "codeQL.chooseDatabaseLgtm",
|
||||
"when": "config.codeQL.canary"
|
||||
},
|
||||
{
|
||||
"command": "codeQLDatabasesExperimental.openConfigFile",
|
||||
"when": "false"
|
||||
},
|
||||
{
|
||||
"command": "codeQLDatabases.setCurrentDatabase",
|
||||
"when": "false"
|
||||
@@ -1208,6 +1232,11 @@
|
||||
"id": "codeQLDatabases",
|
||||
"name": "Databases"
|
||||
},
|
||||
{
|
||||
"id": "codeQLDatabasesExperimental",
|
||||
"name": "Databases",
|
||||
"when": "config.codeQL.canary && config.codeQL.newQueryRunExperience"
|
||||
},
|
||||
{
|
||||
"id": "codeQLQueryHistory",
|
||||
"name": "Query History"
|
||||
@@ -1247,15 +1276,17 @@
|
||||
"watch": "npm-run-all -p watch:*",
|
||||
"watch:extension": "tsc --watch",
|
||||
"watch:webpack": "gulp watchView",
|
||||
"watch:files": "gulp watchTestData",
|
||||
"test": "npm-run-all -p test:*",
|
||||
"test:unit": "mocha --config .mocharc.json test/pure-tests/**/*.ts",
|
||||
"test:view": "jest",
|
||||
"preintegration": "rm -rf ./out/vscode-tests && gulp",
|
||||
"integration": "node ./out/vscode-tests/run-integration-tests.js no-workspace,minimal-workspace",
|
||||
"cli-integration": "npm run preintegration && node ./out/vscode-tests/run-integration-tests.js cli-integration",
|
||||
"integration:no-workspace": "node ./out/vscode-tests/run-integration-tests.js no-workspace",
|
||||
"integration:minimal-workspace": "node ./out/vscode-tests/run-integration-tests.js minimal-workspace",
|
||||
"cli-integration": "node ./out/vscode-tests/run-integration-tests.js cli-integration",
|
||||
"update-vscode": "node ./node_modules/vscode/bin/install",
|
||||
"format": "tsfmt -r && eslint src test --ext .ts,.tsx --fix",
|
||||
"lint": "eslint src test --ext .ts,.tsx --max-warnings=0",
|
||||
"format": "tsfmt -r && eslint . --ext .ts,.tsx --fix",
|
||||
"lint": "eslint . --ext .ts,.tsx --max-warnings=0",
|
||||
"format-staged": "lint-staged",
|
||||
"storybook": "start-storybook -p 6006",
|
||||
"build-storybook": "build-storybook",
|
||||
@@ -1269,6 +1300,7 @@
|
||||
"@vscode/codicons": "^0.0.31",
|
||||
"@vscode/webview-ui-toolkit": "^1.0.1",
|
||||
"child-process-promise": "^2.2.1",
|
||||
"chokidar": "^3.5.3",
|
||||
"classnames": "~2.2.6",
|
||||
"d3": "^7.6.1",
|
||||
"d3-graphviz": "^2.6.1",
|
||||
@@ -1277,6 +1309,7 @@
|
||||
"immutable": "^4.0.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"minimist": "~1.2.6",
|
||||
"msw": "^0.47.4",
|
||||
"nanoid": "^3.2.0",
|
||||
"node-fetch": "~2.6.7",
|
||||
"p-queue": "^6.0.0",
|
||||
@@ -1305,6 +1338,7 @@
|
||||
"@babel/core": "^7.18.13",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.18.6",
|
||||
"@faker-js/faker": "^7.5.0",
|
||||
"@octokit/plugin-throttling": "^4.3.2",
|
||||
"@storybook/addon-actions": "^6.5.10",
|
||||
"@storybook/addon-essentials": "^6.5.10",
|
||||
"@storybook/addon-interactions": "^6.5.10",
|
||||
@@ -1381,7 +1415,6 @@
|
||||
"mini-css-extract-plugin": "^2.6.1",
|
||||
"mocha": "^10.0.0",
|
||||
"mocha-sinon": "~2.1.2",
|
||||
"msw": "^0.47.4",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "~2.0.5",
|
||||
"proxyquire": "~2.1.3",
|
||||
|
||||
128
extensions/ql-vscode/scripts/add-fields-to-scenarios.ts
Normal file
128
extensions/ql-vscode/scripts/add-fields-to-scenarios.ts
Normal file
@@ -0,0 +1,128 @@
|
||||
/**
|
||||
* This scripts helps after adding a new field in the GitHub API. You will
|
||||
* need to modify this script to add the new field to the scenarios. This
|
||||
* is just a template and should not be used as-is since it has already been
|
||||
* applied.
|
||||
*
|
||||
* Depending on the actual implementation of the script, you might run into
|
||||
* rate limits. If that happens, you can set a `GITHUB_TOKEN` environment
|
||||
* variable. For example, use: ``export GITHUB_TOKEN=`gh auth token```.
|
||||
*
|
||||
* Usage: npx ts-node scripts/add-fields-to-scenarios.ts
|
||||
*/
|
||||
|
||||
import * as fs from 'fs-extra';
|
||||
import * as path from 'path';
|
||||
|
||||
import { Octokit, type RestEndpointMethodTypes } from '@octokit/rest';
|
||||
import { throttling } from '@octokit/plugin-throttling';
|
||||
|
||||
import { getFiles } from './util/files';
|
||||
import type { GitHubApiRequest } from '../src/mocks/gh-api-request';
|
||||
import { isGetVariantAnalysisRequest } from '../src/mocks/gh-api-request';
|
||||
import { VariantAnalysis } from '../src/remote-queries/gh-api/variant-analysis';
|
||||
import { RepositoryWithMetadata } from '../src/remote-queries/gh-api/repository';
|
||||
|
||||
const extensionDirectory = path.resolve(__dirname, '..');
|
||||
const scenariosDirectory = path.resolve(extensionDirectory, 'src/mocks/scenarios');
|
||||
|
||||
// Make sure we don't run into rate limits by automatically waiting until we can
|
||||
// make another request.
|
||||
const MyOctokit = Octokit.plugin(throttling);
|
||||
|
||||
const auth = process.env.GITHUB_TOKEN;
|
||||
|
||||
const octokit = new MyOctokit({
|
||||
auth,
|
||||
throttle: {
|
||||
onRateLimit: (retryAfter: number, options: any, octokit: Octokit): boolean => {
|
||||
octokit.log.warn(
|
||||
`Request quota exhausted for request ${options.method} ${options.url}. Retrying after ${retryAfter} seconds!`
|
||||
);
|
||||
|
||||
return true;
|
||||
},
|
||||
onSecondaryRateLimit: (_retryAfter: number, options: any, octokit: Octokit): void => {
|
||||
octokit.log.warn(
|
||||
`SecondaryRateLimit detected for request ${options.method} ${options.url}`
|
||||
);
|
||||
},
|
||||
}
|
||||
});
|
||||
const repositories = new Map<number, RestEndpointMethodTypes['repos']['get']['response']['data']>();
|
||||
|
||||
async function addFieldsToRepository(repository: RepositoryWithMetadata) {
|
||||
if (!repositories.has(repository.id)) {
|
||||
const [owner, repo] = repository.full_name.split('/');
|
||||
|
||||
const apiRepository = await octokit.repos.get({
|
||||
owner,
|
||||
repo,
|
||||
});
|
||||
|
||||
repositories.set(repository.id, apiRepository.data);
|
||||
}
|
||||
|
||||
const apiRepository = repositories.get(repository.id)!;
|
||||
|
||||
repository.stargazers_count = apiRepository.stargazers_count;
|
||||
repository.updated_at = apiRepository.updated_at;
|
||||
}
|
||||
|
||||
async function addFieldsToScenarios() {
|
||||
if (!(await fs.pathExists(scenariosDirectory))) {
|
||||
console.error('Scenarios directory does not exist: ' + scenariosDirectory);
|
||||
return;
|
||||
}
|
||||
|
||||
for await (const file of getFiles(scenariosDirectory)) {
|
||||
if (!file.endsWith('.json')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const data: GitHubApiRequest = await fs.readJson(file);
|
||||
|
||||
if (!isGetVariantAnalysisRequest(data)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!data.response.body || !('controller_repo' in data.response.body)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
console.log(`Adding fields to '${path.relative(scenariosDirectory, file)}'`);
|
||||
|
||||
const variantAnalysis = data.response.body as VariantAnalysis;
|
||||
|
||||
if (variantAnalysis.scanned_repositories) {
|
||||
for (const item of variantAnalysis.scanned_repositories) {
|
||||
await addFieldsToRepository(item.repository);
|
||||
}
|
||||
}
|
||||
|
||||
if (variantAnalysis.skipped_repositories?.access_mismatch_repos) {
|
||||
for (const item of variantAnalysis.skipped_repositories.access_mismatch_repos.repositories) {
|
||||
await addFieldsToRepository(item);
|
||||
}
|
||||
}
|
||||
|
||||
if (variantAnalysis.skipped_repositories?.no_codeql_db_repos) {
|
||||
for (const item of variantAnalysis.skipped_repositories.no_codeql_db_repos.repositories) {
|
||||
await addFieldsToRepository(item);
|
||||
}
|
||||
}
|
||||
|
||||
if (variantAnalysis.skipped_repositories?.over_limit_repos) {
|
||||
for (const item of variantAnalysis.skipped_repositories.over_limit_repos.repositories) {
|
||||
await addFieldsToRepository(item);
|
||||
}
|
||||
}
|
||||
|
||||
await fs.writeJson(file, data, { spaces: 2 });
|
||||
}
|
||||
}
|
||||
|
||||
addFieldsToScenarios().catch(e => {
|
||||
console.error(e);
|
||||
process.exit(2);
|
||||
});
|
||||
@@ -14,7 +14,7 @@ import * as fs from 'fs-extra';
|
||||
import * as path from 'path';
|
||||
|
||||
if (process.argv.length !== 3) {
|
||||
console.error('Expected 1 argument - the scenario name')
|
||||
console.error('Expected 1 argument - the scenario name');
|
||||
}
|
||||
|
||||
const scenarioName = process.argv[2];
|
||||
@@ -39,7 +39,7 @@ async function fixScenarioFiles() {
|
||||
});
|
||||
|
||||
let index = 0;
|
||||
for (let file of orderedFiles) {
|
||||
for (const file of orderedFiles) {
|
||||
const ext = path.extname(file);
|
||||
if (ext === '.json') {
|
||||
const fileName = path.basename(file, ext);
|
||||
@@ -66,7 +66,7 @@ async function fixScenarioFiles() {
|
||||
await fs.writeJSON(newFilePath, json);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import * as path from 'path';
|
||||
import Ajv from 'ajv';
|
||||
import * as tsj from 'ts-json-schema-generator';
|
||||
|
||||
import { getFiles } from './util/files';
|
||||
|
||||
const extensionDirectory = path.resolve(__dirname, '..');
|
||||
const rootDirectory = path.resolve(extensionDirectory, '../..');
|
||||
const scenariosDirectory = path.resolve(extensionDirectory, 'src/mocks/scenarios');
|
||||
@@ -60,19 +62,6 @@ async function lintScenarios() {
|
||||
}
|
||||
}
|
||||
|
||||
// https://stackoverflow.com/a/45130990
|
||||
async function* getFiles(dir: string): AsyncGenerator<string> {
|
||||
const dirents = await fs.readdir(dir, { withFileTypes: true });
|
||||
for (const dirent of dirents) {
|
||||
const res = path.resolve(dir, dirent.name);
|
||||
if (dirent.isDirectory()) {
|
||||
yield* getFiles(res);
|
||||
} else {
|
||||
yield res;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
lintScenarios().catch(e => {
|
||||
console.error(e);
|
||||
process.exit(2);
|
||||
|
||||
10
extensions/ql-vscode/scripts/tsconfig.json
Normal file
10
extensions/ql-vscode/scripts/tsconfig.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/tsconfig",
|
||||
"extends": "../tsconfig.json",
|
||||
"include": ["**/*.ts"],
|
||||
"exclude": [],
|
||||
"compilerOptions": {
|
||||
"rootDir": "..",
|
||||
"noEmit": true
|
||||
}
|
||||
}
|
||||
15
extensions/ql-vscode/scripts/util/files.ts
Normal file
15
extensions/ql-vscode/scripts/util/files.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import * as fs from 'fs-extra';
|
||||
import * as path from 'path';
|
||||
|
||||
// https://stackoverflow.com/a/45130990
|
||||
export async function* getFiles(dir: string): AsyncGenerator<string> {
|
||||
const dirents = await fs.readdir(dir, { withFileTypes: true });
|
||||
for (const dirent of dirents) {
|
||||
const res = path.resolve(dir, dirent.name);
|
||||
if (dirent.isDirectory()) {
|
||||
yield* getFiles(res);
|
||||
} else {
|
||||
yield res;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,11 +5,11 @@ import {
|
||||
ViewColumn,
|
||||
Uri,
|
||||
WebviewPanelOptions,
|
||||
WebviewOptions
|
||||
WebviewOptions,
|
||||
} from 'vscode';
|
||||
import * as path from 'path';
|
||||
|
||||
import { DisposableObject } from './pure/disposable-object';
|
||||
import { DisposableObject, DisposeHandler } from './pure/disposable-object';
|
||||
import { tmpDir } from './helpers';
|
||||
import { getHtmlForWebview, WebviewMessage, WebviewView } from './interface-utils';
|
||||
|
||||
@@ -27,6 +27,8 @@ export abstract class AbstractWebview<ToMessage extends WebviewMessage, FromMess
|
||||
protected panelLoaded = false;
|
||||
protected panelLoadedCallBacks: (() => void)[] = [];
|
||||
|
||||
private panelResolves?: Array<(panel: WebviewPanel) => void>;
|
||||
|
||||
constructor(
|
||||
protected readonly ctx: ExtensionContext
|
||||
) {
|
||||
@@ -35,20 +37,36 @@ export abstract class AbstractWebview<ToMessage extends WebviewMessage, FromMess
|
||||
|
||||
public async restoreView(panel: WebviewPanel): Promise<void> {
|
||||
this.panel = panel;
|
||||
this.setupPanel(panel);
|
||||
const config = await this.getPanelConfig();
|
||||
this.setupPanel(panel, config);
|
||||
}
|
||||
|
||||
protected get isShowingPanel() {
|
||||
return !!this.panel;
|
||||
}
|
||||
|
||||
protected getPanel(): WebviewPanel {
|
||||
protected async getPanel(): Promise<WebviewPanel> {
|
||||
if (this.panel == undefined) {
|
||||
const { ctx } = this;
|
||||
|
||||
const config = this.getPanelConfig();
|
||||
// This is an async method, so in theory this method can be called concurrently. To ensure that we don't
|
||||
// create two panels, we use a promise that resolves when the panel is created. This way, if the panel is
|
||||
// being created, the promise will resolve when it is done.
|
||||
if (this.panelResolves !== undefined) {
|
||||
return new Promise((resolve) => {
|
||||
if (this.panel !== undefined) {
|
||||
resolve(this.panel);
|
||||
return;
|
||||
}
|
||||
|
||||
this.panel = Window.createWebviewPanel(
|
||||
this.panelResolves?.push(resolve);
|
||||
});
|
||||
}
|
||||
this.panelResolves = [];
|
||||
|
||||
const config = await this.getPanelConfig();
|
||||
|
||||
const panel = Window.createWebviewPanel(
|
||||
config.viewId,
|
||||
config.title,
|
||||
{ viewColumn: config.viewColumn, preserveFocus: config.preserveFocus },
|
||||
@@ -64,14 +82,17 @@ export abstract class AbstractWebview<ToMessage extends WebviewMessage, FromMess
|
||||
],
|
||||
}
|
||||
);
|
||||
this.setupPanel(this.panel);
|
||||
this.panel = panel;
|
||||
|
||||
this.setupPanel(panel, config);
|
||||
|
||||
this.panelResolves.forEach((resolve) => resolve(panel));
|
||||
this.panelResolves = undefined;
|
||||
}
|
||||
return this.panel;
|
||||
}
|
||||
|
||||
protected setupPanel(panel: WebviewPanel): void {
|
||||
const config = this.getPanelConfig();
|
||||
|
||||
protected setupPanel(panel: WebviewPanel, config: WebviewPanelConfig): void {
|
||||
this.push(
|
||||
panel.onDidDispose(
|
||||
() => {
|
||||
@@ -101,7 +122,7 @@ export abstract class AbstractWebview<ToMessage extends WebviewMessage, FromMess
|
||||
);
|
||||
}
|
||||
|
||||
protected abstract getPanelConfig(): WebviewPanelConfig;
|
||||
protected abstract getPanelConfig(): WebviewPanelConfig | Promise<WebviewPanelConfig>;
|
||||
|
||||
protected abstract onPanelDispose(): void;
|
||||
|
||||
@@ -123,7 +144,13 @@ export abstract class AbstractWebview<ToMessage extends WebviewMessage, FromMess
|
||||
this.panelLoadedCallBacks = [];
|
||||
}
|
||||
|
||||
protected postMessage(msg: ToMessage): Thenable<boolean> {
|
||||
return this.getPanel().webview.postMessage(msg);
|
||||
protected async postMessage(msg: ToMessage): Promise<boolean> {
|
||||
const panel = await this.getPanel();
|
||||
return panel.webview.postMessage(msg);
|
||||
}
|
||||
|
||||
public dispose(disposeHandler?: DisposeHandler) {
|
||||
this.panel?.dispose();
|
||||
super.dispose(disposeHandler);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,8 @@ export class CompareView extends AbstractWebview<ToCompareViewMessage, FromCompa
|
||||
selectedResultSetName?: string
|
||||
) {
|
||||
this.comparePair = { from, to };
|
||||
this.getPanel().reveal(undefined, true);
|
||||
const panel = await this.getPanel();
|
||||
panel.reveal(undefined, true);
|
||||
|
||||
await this.waitForPanelLoaded();
|
||||
const [
|
||||
|
||||
@@ -438,6 +438,16 @@ export function isVariantAnalysisLiveResultsEnabled(): boolean {
|
||||
return !!LIVE_RESULTS.getValue<boolean>();
|
||||
}
|
||||
|
||||
/**
|
||||
* A flag indicating whether to use the new query run experience which involves
|
||||
* using a new database panel.
|
||||
*/
|
||||
const NEW_QUERY_RUN_EXPERIENCE = new Setting('newQueryRunExperience', ROOT_SETTING);
|
||||
|
||||
export function isNewQueryRunExperienceEnabled(): boolean {
|
||||
return !!NEW_QUERY_RUN_EXPERIENCE.getValue<boolean>();
|
||||
}
|
||||
|
||||
// Settings for mocking the GitHub API.
|
||||
const MOCK_GH_API_SERVER = new Setting('mockGitHubApiServer', ROOT_SETTING);
|
||||
|
||||
|
||||
3
extensions/ql-vscode/src/databases/README.md
Normal file
3
extensions/ql-vscode/src/databases/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
### Databases
|
||||
|
||||
This folder contains code for the new experimental databases panel and new query run experience.
|
||||
71
extensions/ql-vscode/src/databases/db-config-store.ts
Normal file
71
extensions/ql-vscode/src/databases/db-config-store.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
import * as fs from 'fs-extra';
|
||||
import * as path from 'path';
|
||||
import { cloneDbConfig, DbConfig } from './db-config';
|
||||
import * as chokidar from 'chokidar';
|
||||
import { DisposableObject } from '../pure/disposable-object';
|
||||
|
||||
export class DbConfigStore extends DisposableObject {
|
||||
private readonly configPath: string;
|
||||
|
||||
private config: DbConfig;
|
||||
private configWatcher: chokidar.FSWatcher | undefined;
|
||||
|
||||
public constructor(workspaceStoragePath: string) {
|
||||
super();
|
||||
|
||||
this.configPath = path.join(workspaceStoragePath, 'workspace-databases.json');
|
||||
|
||||
this.config = this.createEmptyConfig();
|
||||
this.configWatcher = undefined;
|
||||
}
|
||||
|
||||
public async initialize(): Promise<void> {
|
||||
await this.loadConfig();
|
||||
this.watchConfig();
|
||||
}
|
||||
|
||||
public dispose(): void {
|
||||
this.configWatcher?.unwatch(this.configPath);
|
||||
}
|
||||
|
||||
public getConfig(): DbConfig {
|
||||
// Clone the config so that it's not modified outside of this class.
|
||||
return cloneDbConfig(this.config);
|
||||
}
|
||||
|
||||
public getConfigPath(): string {
|
||||
return this.configPath;
|
||||
}
|
||||
|
||||
private async loadConfig(): Promise<void> {
|
||||
if (!await fs.pathExists(this.configPath)) {
|
||||
await fs.writeJSON(this.configPath, this.createEmptyConfig(), { spaces: 2 });
|
||||
}
|
||||
|
||||
await this.readConfig();
|
||||
}
|
||||
|
||||
private async readConfig(): Promise<void> {
|
||||
this.config = await fs.readJSON(this.configPath);
|
||||
}
|
||||
|
||||
private readConfigSync(): void {
|
||||
this.config = fs.readJSONSync(this.configPath);
|
||||
}
|
||||
|
||||
private watchConfig(): void {
|
||||
this.configWatcher = chokidar.watch(this.configPath).on('change', () => {
|
||||
this.readConfigSync();
|
||||
});
|
||||
}
|
||||
|
||||
private createEmptyConfig(): DbConfig {
|
||||
return {
|
||||
remote: {
|
||||
repositoryLists: [],
|
||||
owners: [],
|
||||
repositories: [],
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
29
extensions/ql-vscode/src/databases/db-config.ts
Normal file
29
extensions/ql-vscode/src/databases/db-config.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
// Contains models for the data we want to store in the database config
|
||||
|
||||
export interface DbConfig {
|
||||
remote: RemoteDbConfig;
|
||||
}
|
||||
|
||||
export interface RemoteDbConfig {
|
||||
repositoryLists: RemoteRepositoryList[];
|
||||
owners: string[];
|
||||
repositories: string[];
|
||||
}
|
||||
|
||||
export interface RemoteRepositoryList {
|
||||
name: string;
|
||||
repositories: string[];
|
||||
}
|
||||
|
||||
export function cloneDbConfig(config: DbConfig): DbConfig {
|
||||
return {
|
||||
remote: {
|
||||
repositoryLists: config.remote.repositoryLists.map((list) => ({
|
||||
name: list.name,
|
||||
repositories: [...list.repositories],
|
||||
})),
|
||||
owners: [...config.remote.owners],
|
||||
repositories: [...config.remote.repositories],
|
||||
}
|
||||
};
|
||||
}
|
||||
53
extensions/ql-vscode/src/databases/db-item.ts
Normal file
53
extensions/ql-vscode/src/databases/db-item.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
// This file contains models that are used to represent the databases.
|
||||
|
||||
export enum DbItemKind {
|
||||
RootLocal = 'RootLocal',
|
||||
RootRemote = 'RootRemote',
|
||||
RemoteSystemDefinedList = 'RemoteSystemDefinedList',
|
||||
RemoteUserDefinedList = 'RemoteUserDefinedList',
|
||||
RemoteOwner = 'RemoteOwner',
|
||||
RemoteRepo = 'RemoteRepo'
|
||||
}
|
||||
|
||||
export interface RootLocalDbItem {
|
||||
kind: DbItemKind.RootLocal;
|
||||
}
|
||||
|
||||
export interface RootRemoteDbItem {
|
||||
kind: DbItemKind.RootRemote;
|
||||
children: RemoteDbItem[];
|
||||
}
|
||||
|
||||
export type DbItem =
|
||||
| RootLocalDbItem
|
||||
| RootRemoteDbItem
|
||||
| RemoteDbItem
|
||||
|
||||
export type RemoteDbItem =
|
||||
| RemoteSystemDefinedListDbItem
|
||||
| RemoteUserDefinedListDbItem
|
||||
| RemoteOwnerDbItem
|
||||
| RemoteRepoDbItem;
|
||||
|
||||
export interface RemoteSystemDefinedListDbItem {
|
||||
kind: DbItemKind.RemoteSystemDefinedList;
|
||||
listName: string;
|
||||
listDisplayName: string;
|
||||
listDescription: string;
|
||||
}
|
||||
|
||||
export interface RemoteUserDefinedListDbItem {
|
||||
kind: DbItemKind.RemoteUserDefinedList;
|
||||
listName: string;
|
||||
repos: RemoteRepoDbItem[];
|
||||
}
|
||||
|
||||
export interface RemoteOwnerDbItem {
|
||||
kind: DbItemKind.RemoteOwner;
|
||||
ownerName: string;
|
||||
}
|
||||
|
||||
export interface RemoteRepoDbItem {
|
||||
kind: DbItemKind.RemoteRepo;
|
||||
repoFullName: string;
|
||||
}
|
||||
23
extensions/ql-vscode/src/databases/db-manager.ts
Normal file
23
extensions/ql-vscode/src/databases/db-manager.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { DbConfigStore } from './db-config-store';
|
||||
import { DbItem } from './db-item';
|
||||
import { createLocalTree, createRemoteTree } from './db-tree-creator';
|
||||
|
||||
export class DbManager {
|
||||
constructor(
|
||||
private readonly dbConfigStore: DbConfigStore
|
||||
) {
|
||||
}
|
||||
|
||||
public getDbItems(): DbItem[] {
|
||||
const config = this.dbConfigStore.getConfig();
|
||||
|
||||
return [
|
||||
createRemoteTree(config),
|
||||
createLocalTree()
|
||||
];
|
||||
}
|
||||
|
||||
public getConfigPath(): string {
|
||||
return this.dbConfigStore.getConfigPath();
|
||||
}
|
||||
}
|
||||
44
extensions/ql-vscode/src/databases/db-module.ts
Normal file
44
extensions/ql-vscode/src/databases/db-module.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import * as vscode from 'vscode';
|
||||
import { isCanary, isNewQueryRunExperienceEnabled } from '../config';
|
||||
import { logger } from '../logging';
|
||||
import { DisposableObject } from '../pure/disposable-object';
|
||||
import { DbConfigStore } from './db-config-store';
|
||||
import { DbManager } from './db-manager';
|
||||
import { DbPanel } from './ui/db-panel';
|
||||
|
||||
export class DbModule extends DisposableObject {
|
||||
public async initialize(
|
||||
extensionContext: vscode.ExtensionContext
|
||||
): Promise<void> {
|
||||
if (extensionContext.extensionMode !== vscode.ExtensionMode.Development ||
|
||||
!isCanary() ||
|
||||
!isNewQueryRunExperienceEnabled()) {
|
||||
// Currently, we only want to expose the new database panel when we
|
||||
// are in development and canary mode and the developer has enabled the
|
||||
// new query run experience.
|
||||
return;
|
||||
}
|
||||
|
||||
void logger.log('Initializing database module');
|
||||
|
||||
const storagePath = extensionContext.storageUri?.fsPath || extensionContext.globalStorageUri.fsPath;
|
||||
const dbConfigStore = new DbConfigStore(storagePath);
|
||||
await dbConfigStore.initialize();
|
||||
|
||||
const dbManager = new DbManager(dbConfigStore);
|
||||
const dbPanel = new DbPanel(dbManager);
|
||||
await dbPanel.initialize();
|
||||
extensionContext.subscriptions.push(dbPanel);
|
||||
|
||||
this.push(dbPanel);
|
||||
this.push(dbConfigStore);
|
||||
}
|
||||
}
|
||||
|
||||
export async function initializeDbModule(
|
||||
extensionContext: vscode.ExtensionContext
|
||||
): Promise<DbModule> {
|
||||
const dbModule = new DbModule();
|
||||
await dbModule.initialize(extensionContext);
|
||||
return dbModule;
|
||||
}
|
||||
70
extensions/ql-vscode/src/databases/db-tree-creator.ts
Normal file
70
extensions/ql-vscode/src/databases/db-tree-creator.ts
Normal file
@@ -0,0 +1,70 @@
|
||||
import { DbConfig, RemoteRepositoryList } from './db-config';
|
||||
import {
|
||||
DbItemKind,
|
||||
RemoteOwnerDbItem,
|
||||
RemoteRepoDbItem,
|
||||
RemoteSystemDefinedListDbItem,
|
||||
RemoteUserDefinedListDbItem,
|
||||
RootLocalDbItem,
|
||||
RootRemoteDbItem
|
||||
} from './db-item';
|
||||
|
||||
export function createRemoteTree(dbConfig: DbConfig): RootRemoteDbItem {
|
||||
const systemDefinedLists = [
|
||||
createSystemDefinedList(10),
|
||||
createSystemDefinedList(100),
|
||||
createSystemDefinedList(1000)
|
||||
];
|
||||
|
||||
const userDefinedRepoLists = dbConfig.remote.repositoryLists.map(createUserDefinedList);
|
||||
const owners = dbConfig.remote.owners.map(createOwnerItem);
|
||||
const repos = dbConfig.remote.repositories.map(createRepoItem);
|
||||
|
||||
return {
|
||||
kind: DbItemKind.RootRemote,
|
||||
children: [
|
||||
...systemDefinedLists,
|
||||
...owners,
|
||||
...userDefinedRepoLists,
|
||||
...repos
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
export function createLocalTree(): RootLocalDbItem {
|
||||
// This will be fleshed out further in the future.
|
||||
return {
|
||||
kind: DbItemKind.RootLocal
|
||||
};
|
||||
}
|
||||
|
||||
function createSystemDefinedList(n: number): RemoteSystemDefinedListDbItem {
|
||||
return {
|
||||
kind: DbItemKind.RemoteSystemDefinedList,
|
||||
listName: `top_${n}`,
|
||||
listDisplayName: `Top ${n} repositories`,
|
||||
listDescription: `Top ${n} repositories of a language`
|
||||
};
|
||||
}
|
||||
|
||||
function createUserDefinedList(list: RemoteRepositoryList): RemoteUserDefinedListDbItem {
|
||||
return {
|
||||
kind: DbItemKind.RemoteUserDefinedList,
|
||||
listName: list.name,
|
||||
repos: list.repositories.map((r) => createRepoItem(r))
|
||||
};
|
||||
}
|
||||
|
||||
function createOwnerItem(owner: string): RemoteOwnerDbItem {
|
||||
return {
|
||||
kind: DbItemKind.RemoteOwner,
|
||||
ownerName: owner
|
||||
};
|
||||
}
|
||||
|
||||
function createRepoItem(repo: string): RemoteRepoDbItem {
|
||||
return {
|
||||
kind: DbItemKind.RemoteRepo,
|
||||
repoFullName: repo
|
||||
};
|
||||
}
|
||||
49
extensions/ql-vscode/src/databases/ui/db-item-mapper.ts
Normal file
49
extensions/ql-vscode/src/databases/ui/db-item-mapper.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { DbItem, DbItemKind } from '../db-item';
|
||||
import {
|
||||
createDbTreeViewItemOwner,
|
||||
createDbTreeViewItemRepo,
|
||||
createDbTreeViewItemRoot,
|
||||
createDbTreeViewItemSystemDefinedList,
|
||||
createDbTreeViewItemUserDefinedList,
|
||||
DbTreeViewItem
|
||||
} from './db-tree-view-item';
|
||||
|
||||
export function mapDbItemToTreeViewItem(dbItem: DbItem): DbTreeViewItem {
|
||||
switch (dbItem.kind) {
|
||||
case DbItemKind.RootLocal:
|
||||
return createDbTreeViewItemRoot(
|
||||
dbItem,
|
||||
'local',
|
||||
'Local databases',
|
||||
[]);
|
||||
|
||||
case DbItemKind.RootRemote:
|
||||
return createDbTreeViewItemRoot(
|
||||
dbItem,
|
||||
'remote',
|
||||
'Remote databases',
|
||||
dbItem.children.map(c => mapDbItemToTreeViewItem(c)));
|
||||
|
||||
case DbItemKind.RemoteSystemDefinedList:
|
||||
return createDbTreeViewItemSystemDefinedList(
|
||||
dbItem,
|
||||
dbItem.listDisplayName,
|
||||
dbItem.listDescription);
|
||||
|
||||
case DbItemKind.RemoteUserDefinedList:
|
||||
return createDbTreeViewItemUserDefinedList(
|
||||
dbItem,
|
||||
dbItem.listName,
|
||||
dbItem.repos.map(mapDbItemToTreeViewItem));
|
||||
|
||||
case DbItemKind.RemoteOwner:
|
||||
return createDbTreeViewItemOwner(
|
||||
dbItem,
|
||||
dbItem.ownerName);
|
||||
|
||||
case DbItemKind.RemoteRepo:
|
||||
return createDbTreeViewItemRepo(
|
||||
dbItem,
|
||||
dbItem.repoFullName);
|
||||
}
|
||||
}
|
||||
39
extensions/ql-vscode/src/databases/ui/db-panel.ts
Normal file
39
extensions/ql-vscode/src/databases/ui/db-panel.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import * as vscode from 'vscode';
|
||||
import { commandRunner } from '../../commandRunner';
|
||||
import { DisposableObject } from '../../pure/disposable-object';
|
||||
import { DbManager } from '../db-manager';
|
||||
import { DbTreeDataProvider } from './db-tree-data-provider';
|
||||
|
||||
export class DbPanel extends DisposableObject {
|
||||
private readonly dataProvider: DbTreeDataProvider;
|
||||
|
||||
public constructor(
|
||||
private readonly dbManager: DbManager
|
||||
) {
|
||||
super();
|
||||
|
||||
this.dataProvider = new DbTreeDataProvider(dbManager);
|
||||
|
||||
const treeView = vscode.window.createTreeView('codeQLDatabasesExperimental', {
|
||||
treeDataProvider: this.dataProvider,
|
||||
canSelectMany: false
|
||||
});
|
||||
|
||||
this.push(treeView);
|
||||
}
|
||||
|
||||
public async initialize(): Promise<void> {
|
||||
this.push(
|
||||
commandRunner(
|
||||
'codeQLDatabasesExperimental.openConfigFile',
|
||||
() => this.openConfigFile(),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private async openConfigFile(): Promise<void> {
|
||||
const configPath = this.dbManager.getConfigPath();
|
||||
const document = await vscode.workspace.openTextDocument(configPath);
|
||||
await vscode.window.showTextDocument(document);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
import { ProviderResult, TreeDataProvider, TreeItem } from 'vscode';
|
||||
import { createDbTreeViewItemWarning, DbTreeViewItem } from './db-tree-view-item';
|
||||
import { DbManager } from '../db-manager';
|
||||
import { mapDbItemToTreeViewItem } from './db-item-mapper';
|
||||
|
||||
export class DbTreeDataProvider implements TreeDataProvider<DbTreeViewItem> {
|
||||
private dbTreeItems: DbTreeViewItem[];
|
||||
|
||||
public constructor(
|
||||
private readonly dbManager: DbManager
|
||||
) {
|
||||
this.dbTreeItems = this.createTree();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when expanding a node (including the root node).
|
||||
* @param node The node to expand.
|
||||
* @returns The children of the node.
|
||||
*/
|
||||
public getChildren(node?: DbTreeViewItem): ProviderResult<DbTreeViewItem[]> {
|
||||
if (!node) {
|
||||
// We're at the root.
|
||||
return Promise.resolve(this.dbTreeItems);
|
||||
} else {
|
||||
return Promise.resolve(node.children);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the UI presentation of the element that gets displayed in the view.
|
||||
* @param node The node to represent.
|
||||
* @returns The UI presentation of the node.
|
||||
*/
|
||||
public getTreeItem(node: DbTreeViewItem): TreeItem | Thenable<TreeItem> {
|
||||
return node;
|
||||
}
|
||||
|
||||
private createTree(): DbTreeViewItem[] {
|
||||
const dbItems = this.dbManager.getDbItems();
|
||||
|
||||
// Add a sample warning as a proof of concept.
|
||||
const warningTreeViewItem = createDbTreeViewItemWarning(
|
||||
'There was an error',
|
||||
'Fix it'
|
||||
);
|
||||
|
||||
return [...dbItems.map(mapDbItemToTreeViewItem), warningTreeViewItem];
|
||||
}
|
||||
}
|
||||
107
extensions/ql-vscode/src/databases/ui/db-tree-view-item.ts
Normal file
107
extensions/ql-vscode/src/databases/ui/db-tree-view-item.ts
Normal file
@@ -0,0 +1,107 @@
|
||||
import * as vscode from 'vscode';
|
||||
import {
|
||||
DbItem,
|
||||
RemoteOwnerDbItem,
|
||||
RemoteRepoDbItem,
|
||||
RemoteSystemDefinedListDbItem,
|
||||
RemoteUserDefinedListDbItem,
|
||||
RootLocalDbItem,
|
||||
RootRemoteDbItem
|
||||
} from '../db-item';
|
||||
|
||||
/**
|
||||
* Represents an item in the database tree view. This item could be
|
||||
* representing an actual database item or a warning.
|
||||
*/
|
||||
export class DbTreeViewItem extends vscode.TreeItem {
|
||||
constructor(
|
||||
public readonly dbItem: DbItem | undefined,
|
||||
public readonly iconPath: vscode.ThemeIcon | undefined,
|
||||
public readonly label: string,
|
||||
public readonly tooltip: string | undefined,
|
||||
public readonly collapsibleState: vscode.TreeItemCollapsibleState,
|
||||
public readonly children: DbTreeViewItem[]
|
||||
) {
|
||||
super(label, collapsibleState);
|
||||
}
|
||||
}
|
||||
|
||||
export function createDbTreeViewItemWarning(label: string, tooltip: string): DbTreeViewItem {
|
||||
return new DbTreeViewItem(
|
||||
undefined,
|
||||
new vscode.ThemeIcon('warning', new vscode.ThemeColor('problemsWarningIcon.foreground')),
|
||||
label,
|
||||
tooltip,
|
||||
vscode.TreeItemCollapsibleState.None,
|
||||
[]
|
||||
);
|
||||
}
|
||||
|
||||
export function createDbTreeViewItemRoot(
|
||||
dbItem: RootLocalDbItem | RootRemoteDbItem,
|
||||
label: string,
|
||||
tooltip: string,
|
||||
children: DbTreeViewItem[]
|
||||
): DbTreeViewItem {
|
||||
return new DbTreeViewItem(
|
||||
dbItem,
|
||||
undefined,
|
||||
label,
|
||||
tooltip,
|
||||
vscode.TreeItemCollapsibleState.Collapsed,
|
||||
children);
|
||||
}
|
||||
|
||||
export function createDbTreeViewItemSystemDefinedList(
|
||||
dbItem: RemoteSystemDefinedListDbItem,
|
||||
label: string,
|
||||
tooltip: string
|
||||
): DbTreeViewItem {
|
||||
return new DbTreeViewItem(
|
||||
dbItem,
|
||||
new vscode.ThemeIcon('github'),
|
||||
label,
|
||||
tooltip,
|
||||
vscode.TreeItemCollapsibleState.None,
|
||||
[]);
|
||||
}
|
||||
|
||||
export function createDbTreeViewItemUserDefinedList(
|
||||
dbItem: RemoteUserDefinedListDbItem,
|
||||
listName: string,
|
||||
children: DbTreeViewItem[]
|
||||
): DbTreeViewItem {
|
||||
return new DbTreeViewItem(
|
||||
dbItem,
|
||||
undefined,
|
||||
listName,
|
||||
undefined,
|
||||
vscode.TreeItemCollapsibleState.Collapsed,
|
||||
children);
|
||||
}
|
||||
|
||||
export function createDbTreeViewItemOwner(
|
||||
dbItem: RemoteOwnerDbItem,
|
||||
ownerName: string,
|
||||
): DbTreeViewItem {
|
||||
return new DbTreeViewItem(
|
||||
dbItem,
|
||||
new vscode.ThemeIcon('organization'),
|
||||
ownerName,
|
||||
undefined,
|
||||
vscode.TreeItemCollapsibleState.None,
|
||||
[]);
|
||||
}
|
||||
|
||||
export function createDbTreeViewItemRepo(
|
||||
dbItem: RemoteRepoDbItem,
|
||||
repoName: string,
|
||||
): DbTreeViewItem {
|
||||
return new DbTreeViewItem(
|
||||
dbItem,
|
||||
new vscode.ThemeIcon('database'),
|
||||
repoName,
|
||||
undefined,
|
||||
vscode.TreeItemCollapsibleState.None,
|
||||
[]);
|
||||
}
|
||||
@@ -111,15 +111,12 @@ import { NewQueryRunner } from './query-server/query-runner';
|
||||
import { QueryRunner } from './queryRunner';
|
||||
import { VariantAnalysisView } from './remote-queries/variant-analysis-view';
|
||||
import { VariantAnalysisViewSerializer } from './remote-queries/variant-analysis-view-serializer';
|
||||
import { VariantAnalysis } from './remote-queries/shared/variant-analysis';
|
||||
import {
|
||||
VariantAnalysis as VariantAnalysisApiResponse,
|
||||
VariantAnalysisScannedRepository as ApiVariantAnalysisScannedRepository
|
||||
} from './remote-queries/gh-api/variant-analysis';
|
||||
import { VariantAnalysis, VariantAnalysisScannedRepository } from './remote-queries/shared/variant-analysis';
|
||||
import { VariantAnalysisManager } from './remote-queries/variant-analysis-manager';
|
||||
import { createVariantAnalysisContentProvider } from './remote-queries/variant-analysis-content-provider';
|
||||
import { VSCodeMockGitHubApiServer } from './mocks/vscode-mock-gh-api-server';
|
||||
import { VariantAnalysisResultsManager } from './remote-queries/variant-analysis-results-manager';
|
||||
import { initializeDbModule } from './databases/db-module';
|
||||
|
||||
/**
|
||||
* extension.ts
|
||||
@@ -537,9 +534,6 @@ async function activateWithInstalledDistribution(
|
||||
ctx.subscriptions.push(logScannerService);
|
||||
ctx.subscriptions.push(logScannerService.scanners.registerLogScannerProvider(new JoinOrderScannerProvider(() => joinOrderWarningThreshold())));
|
||||
|
||||
void logger.log('Reading query history');
|
||||
await qhm.readQueryHistory();
|
||||
|
||||
void logger.log('Initializing compare view.');
|
||||
const compareView = new CompareView(
|
||||
ctx,
|
||||
@@ -963,8 +957,8 @@ async function activateWithInstalledDistribution(
|
||||
|
||||
ctx.subscriptions.push(
|
||||
commandRunner('codeQL.autoDownloadVariantAnalysisResult', async (
|
||||
scannedRepo: ApiVariantAnalysisScannedRepository,
|
||||
variantAnalysisSummary: VariantAnalysisApiResponse,
|
||||
scannedRepo: VariantAnalysisScannedRepository,
|
||||
variantAnalysisSummary: VariantAnalysis,
|
||||
token: CancellationToken
|
||||
) => {
|
||||
await variantAnalysisManager.enqueueDownload(scannedRepo, variantAnalysisSummary, token);
|
||||
@@ -1241,6 +1235,12 @@ async function activateWithInstalledDistribution(
|
||||
|
||||
await commands.executeCommand('codeQLDatabases.removeOrphanedDatabases');
|
||||
|
||||
void logger.log('Reading query history');
|
||||
await qhm.readQueryHistory();
|
||||
|
||||
const dbModule = await initializeDbModule(ctx);
|
||||
ctx.subscriptions.push(dbModule);
|
||||
|
||||
void logger.log('Successfully finished extension initialization.');
|
||||
|
||||
return {
|
||||
|
||||
@@ -7,6 +7,7 @@ import { RemoteQueryHistoryItem } from './remote-queries/remote-query-history-it
|
||||
import { VariantAnalysisHistoryItem } from './remote-queries/variant-analysis-history-item';
|
||||
import { assertNever } from './pure/helpers-pure';
|
||||
import { pluralize } from './pure/word';
|
||||
import { humanizeQueryStatus } from './query-status';
|
||||
|
||||
interface InterpolateReplacements {
|
||||
t: string; // Start time
|
||||
@@ -86,7 +87,7 @@ export class HistoryItemLabelProvider {
|
||||
q: `${item.remoteQuery.queryName} (${item.remoteQuery.language})`,
|
||||
d: buildRepoLabel(item),
|
||||
r: resultCount,
|
||||
s: item.status,
|
||||
s: humanizeQueryStatus(item.status),
|
||||
f: path.basename(item.remoteQuery.queryFilePath),
|
||||
'%': '%'
|
||||
};
|
||||
@@ -99,7 +100,7 @@ export class HistoryItemLabelProvider {
|
||||
q: `${item.variantAnalysis.query.name} (${item.variantAnalysis.query.language})`,
|
||||
d: buildRepoLabel(item),
|
||||
r: resultCount,
|
||||
s: item.status,
|
||||
s: humanizeQueryStatus(item.status),
|
||||
f: path.basename(item.variantAnalysis.query.filePath),
|
||||
'%': '%',
|
||||
};
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
languages,
|
||||
Uri,
|
||||
window as Window,
|
||||
env
|
||||
env, WebviewPanel
|
||||
} from 'vscode';
|
||||
import * as cli from './cli';
|
||||
import { CodeQLCliServer } from './cli';
|
||||
@@ -341,6 +341,8 @@ export class ResultsView extends AbstractWebview<IntoResultsViewMsg, FromResults
|
||||
return;
|
||||
}
|
||||
|
||||
const panel = await this.getPanel();
|
||||
|
||||
this._interpretation = undefined;
|
||||
const interpretationPage = await this.interpretResultsInfo(
|
||||
fullQuery.completedQuery.query,
|
||||
@@ -350,12 +352,11 @@ export class ResultsView extends AbstractWebview<IntoResultsViewMsg, FromResults
|
||||
const sortedResultsMap: SortedResultsMap = {};
|
||||
Object.entries(fullQuery.completedQuery.sortedResultsInfo).forEach(
|
||||
([k, v]) =>
|
||||
(sortedResultsMap[k] = this.convertPathPropertiesToWebviewUris(v))
|
||||
(sortedResultsMap[k] = this.convertPathPropertiesToWebviewUris(panel, v))
|
||||
);
|
||||
|
||||
this._displayedQuery = fullQuery;
|
||||
|
||||
const panel = this.getPanel();
|
||||
await this.waitForPanelLoaded();
|
||||
if (!panel.visible) {
|
||||
if (forceReveal === WebviewReveal.Forced) {
|
||||
@@ -426,6 +427,7 @@ export class ResultsView extends AbstractWebview<IntoResultsViewMsg, FromResults
|
||||
interpretation: interpretationPage,
|
||||
origResultsPaths: fullQuery.completedQuery.query.resultsPaths,
|
||||
resultsPath: this.convertPathToWebviewUri(
|
||||
panel,
|
||||
fullQuery.completedQuery.query.resultsPaths.resultsPath
|
||||
),
|
||||
parsedResultSets,
|
||||
@@ -498,10 +500,12 @@ export class ResultsView extends AbstractWebview<IntoResultsViewMsg, FromResults
|
||||
throw new Error('trying to view a page of a query that is not loaded');
|
||||
}
|
||||
|
||||
const panel = await this.getPanel();
|
||||
|
||||
const sortedResultsMap: SortedResultsMap = {};
|
||||
Object.entries(results.completedQuery.sortedResultsInfo).forEach(
|
||||
([k, v]) =>
|
||||
(sortedResultsMap[k] = this.convertPathPropertiesToWebviewUris(v))
|
||||
(sortedResultsMap[k] = this.convertPathPropertiesToWebviewUris(panel, v))
|
||||
);
|
||||
|
||||
const resultSetSchemas = await this.getResultSetSchemas(results.completedQuery, sorted ? selectedTable : '');
|
||||
@@ -544,6 +548,7 @@ export class ResultsView extends AbstractWebview<IntoResultsViewMsg, FromResults
|
||||
interpretation: this._interpretation,
|
||||
origResultsPaths: results.completedQuery.query.resultsPaths,
|
||||
resultsPath: this.convertPathToWebviewUri(
|
||||
panel,
|
||||
results.completedQuery.query.resultsPaths.resultsPath
|
||||
),
|
||||
parsedResultSets,
|
||||
@@ -812,15 +817,16 @@ export class ResultsView extends AbstractWebview<IntoResultsViewMsg, FromResults
|
||||
this._diagnosticCollection.set(diagnostics);
|
||||
}
|
||||
|
||||
private convertPathToWebviewUri(path: string): string {
|
||||
return fileUriToWebviewUri(this.getPanel(), Uri.file(path));
|
||||
private convertPathToWebviewUri(panel: WebviewPanel, path: string): string {
|
||||
return fileUriToWebviewUri(panel, Uri.file(path));
|
||||
}
|
||||
|
||||
private convertPathPropertiesToWebviewUris(
|
||||
panel: WebviewPanel,
|
||||
info: SortedResultSetInfo
|
||||
): SortedResultSetInfo {
|
||||
return {
|
||||
resultsPath: this.convertPathToWebviewUri(info.resultsPath),
|
||||
resultsPath: this.convertPathToWebviewUri(panel, info.resultsPath),
|
||||
sortState: info.sortState,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 81841,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -125,7 +129,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -136,7 +142,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -145,7 +153,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 702,
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 81841,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -125,7 +129,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -136,7 +142,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -145,7 +153,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 702,
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 81841,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -125,7 +129,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -136,7 +142,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -145,7 +153,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 702,
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 81841,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 156706,
|
||||
@@ -127,7 +131,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -138,7 +144,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -147,7 +155,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 702,
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -114,7 +116,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -123,7 +127,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -132,7 +138,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -141,7 +149,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 81841,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 156706,
|
||||
@@ -127,7 +131,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -138,7 +144,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -147,7 +155,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 702,
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 81841,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 156706,
|
||||
@@ -127,7 +131,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -138,7 +144,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -147,7 +155,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 702,
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 81841,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 156706,
|
||||
@@ -127,7 +131,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -138,7 +144,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -147,7 +155,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 702,
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 81841,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 156706,
|
||||
@@ -127,7 +131,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -138,7 +144,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 710,
|
||||
@@ -149,7 +157,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 702,
|
||||
|
||||
@@ -106,7 +106,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 81841,
|
||||
@@ -117,7 +119,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 156706,
|
||||
@@ -128,7 +132,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -139,7 +145,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 710,
|
||||
@@ -150,7 +158,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 702,
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -114,7 +116,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -123,7 +127,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -132,7 +138,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -141,7 +149,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -114,7 +116,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -123,7 +127,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -132,7 +138,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -141,7 +149,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -114,7 +116,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -123,7 +127,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -132,7 +138,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -141,7 +149,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -114,7 +116,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -123,7 +127,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -132,7 +138,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -141,7 +149,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "in_progress",
|
||||
"artifact_size_in_bytes": 81841
|
||||
@@ -115,7 +117,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -124,7 +128,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -133,7 +139,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -142,7 +150,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 206444,
|
||||
"name": "hive",
|
||||
"full_name": "apache/hive",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4523,
|
||||
"updated_at": "2022-11-02T10:04:02Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 81841,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 20753500,
|
||||
"name": "ng-nice",
|
||||
"full_name": "angular-cn/ng-nice",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 192,
|
||||
"updated_at": "2022-03-17T08:34:30Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -125,7 +129,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -134,7 +140,9 @@
|
||||
"id": 236095576,
|
||||
"name": "backstage",
|
||||
"full_name": "backstage/backstage",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19033,
|
||||
"updated_at": "2022-11-02T10:25:24Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
},
|
||||
@@ -143,7 +151,9 @@
|
||||
"id": 257485422,
|
||||
"name": "vite",
|
||||
"full_name": "vitejs/vite",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 49064,
|
||||
"updated_at": "2022-11-02T11:29:22Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -105,7 +105,9 @@
|
||||
"id": 478996,
|
||||
"name": "jquery-ui",
|
||||
"full_name": "jquery/jquery-ui",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 11085,
|
||||
"updated_at": "2022-11-01T11:06:31Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -114,7 +116,9 @@
|
||||
"id": 648414,
|
||||
"name": "jquery-validation",
|
||||
"full_name": "jquery-validation/jquery-validation",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 10250,
|
||||
"updated_at": "2022-11-01T17:52:18Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -123,7 +127,9 @@
|
||||
"id": 2950981,
|
||||
"name": "azure-sdk-for-node",
|
||||
"full_name": "Azure/azure-sdk-for-node",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1183,
|
||||
"updated_at": "2022-11-02T06:42:39Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -132,7 +138,9 @@
|
||||
"id": 17335035,
|
||||
"name": "bootstrap-fileinput",
|
||||
"full_name": "kartik-v/bootstrap-fileinput",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5238,
|
||||
"updated_at": "2022-11-02T11:01:58Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -141,7 +149,9 @@
|
||||
"id": 18782726,
|
||||
"name": "OwlCarousel2",
|
||||
"full_name": "OwlCarousel2/OwlCarousel2",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7732,
|
||||
"updated_at": "2022-11-02T02:26:29Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
}
|
||||
@@ -154,605 +164,805 @@
|
||||
"id": 48296,
|
||||
"name": "raphael",
|
||||
"full_name": "DmitryBaranovskiy/raphael",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 11134,
|
||||
"updated_at": "2022-11-02T09:44:58Z"
|
||||
},
|
||||
{
|
||||
"id": 63557,
|
||||
"name": "jquery-mousewheel",
|
||||
"full_name": "jquery/jquery-mousewheel",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3903,
|
||||
"updated_at": "2022-11-01T03:59:45Z"
|
||||
},
|
||||
{
|
||||
"id": 75547,
|
||||
"name": "showdown",
|
||||
"full_name": "showdownjs/showdown",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 12875,
|
||||
"updated_at": "2022-11-02T03:36:15Z"
|
||||
},
|
||||
{
|
||||
"id": 84009,
|
||||
"name": "jasmine",
|
||||
"full_name": "jasmine/jasmine",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15459,
|
||||
"updated_at": "2022-10-31T07:47:15Z"
|
||||
},
|
||||
{
|
||||
"id": 84822,
|
||||
"name": "js-beautify",
|
||||
"full_name": "beautify-web/js-beautify",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7902,
|
||||
"updated_at": "2022-11-02T07:40:06Z"
|
||||
},
|
||||
{
|
||||
"id": 165557,
|
||||
"name": "js-base64",
|
||||
"full_name": "dankogai/js-base64",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3831,
|
||||
"updated_at": "2022-11-02T03:17:43Z"
|
||||
},
|
||||
{
|
||||
"id": 167174,
|
||||
"name": "jquery",
|
||||
"full_name": "jquery/jquery",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 56910,
|
||||
"updated_at": "2022-11-02T00:55:34Z"
|
||||
},
|
||||
{
|
||||
"id": 237159,
|
||||
"name": "express",
|
||||
"full_name": "expressjs/express",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 58776,
|
||||
"updated_at": "2022-11-02T10:33:45Z"
|
||||
},
|
||||
{
|
||||
"id": 292525,
|
||||
"name": "jszip",
|
||||
"full_name": "Stuk/jszip",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8412,
|
||||
"updated_at": "2022-11-02T10:46:56Z"
|
||||
},
|
||||
{
|
||||
"id": 317757,
|
||||
"name": "Modernizr",
|
||||
"full_name": "Modernizr/Modernizr",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 25349,
|
||||
"updated_at": "2022-11-02T10:11:31Z"
|
||||
},
|
||||
{
|
||||
"id": 326688,
|
||||
"name": "mustache.js",
|
||||
"full_name": "janl/mustache.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15595,
|
||||
"updated_at": "2022-11-02T04:12:53Z"
|
||||
},
|
||||
{
|
||||
"id": 349241,
|
||||
"name": "underscore",
|
||||
"full_name": "jashkenas/underscore",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 26655,
|
||||
"updated_at": "2022-11-01T23:21:28Z"
|
||||
},
|
||||
{
|
||||
"id": 357681,
|
||||
"name": "node-glob",
|
||||
"full_name": "isaacs/node-glob",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7739,
|
||||
"updated_at": "2022-11-02T08:23:54Z"
|
||||
},
|
||||
{
|
||||
"id": 381979,
|
||||
"name": "fullcalendar",
|
||||
"full_name": "fullcalendar/fullcalendar",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15569,
|
||||
"updated_at": "2022-11-02T09:19:14Z"
|
||||
},
|
||||
{
|
||||
"id": 402046,
|
||||
"name": "jsPDF",
|
||||
"full_name": "parallax/jsPDF",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 25408,
|
||||
"updated_at": "2022-11-02T10:39:20Z"
|
||||
},
|
||||
{
|
||||
"id": 441854,
|
||||
"name": "markdown-js",
|
||||
"full_name": "evilstreak/markdown-js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7643,
|
||||
"updated_at": "2022-10-28T05:15:05Z"
|
||||
},
|
||||
{
|
||||
"id": 462292,
|
||||
"name": "node-mongodb-native",
|
||||
"full_name": "mongodb/node-mongodb-native",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 9574,
|
||||
"updated_at": "2022-11-02T10:57:50Z"
|
||||
},
|
||||
{
|
||||
"id": 467471,
|
||||
"name": "tinymce",
|
||||
"full_name": "tinymce/tinymce",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 12103,
|
||||
"updated_at": "2022-11-02T09:49:59Z"
|
||||
},
|
||||
{
|
||||
"id": 475599,
|
||||
"name": "log4js-node",
|
||||
"full_name": "log4js-node/log4js-node",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5500,
|
||||
"updated_at": "2022-11-02T07:01:50Z"
|
||||
},
|
||||
{
|
||||
"id": 478584,
|
||||
"name": "jsdom",
|
||||
"full_name": "jsdom/jsdom",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 18052,
|
||||
"updated_at": "2022-11-02T11:18:57Z"
|
||||
},
|
||||
{
|
||||
"id": 486550,
|
||||
"name": "html5-boilerplate",
|
||||
"full_name": "h5bp/html5-boilerplate",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 53520,
|
||||
"updated_at": "2022-11-02T07:30:25Z"
|
||||
},
|
||||
{
|
||||
"id": 501326,
|
||||
"name": "requirejs",
|
||||
"full_name": "requirejs/requirejs",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 12842,
|
||||
"updated_at": "2022-11-02T11:02:32Z"
|
||||
},
|
||||
{
|
||||
"id": 504220,
|
||||
"name": "html-minifier",
|
||||
"full_name": "kangax/html-minifier",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4700,
|
||||
"updated_at": "2022-10-29T16:27:36Z"
|
||||
},
|
||||
{
|
||||
"id": 508894,
|
||||
"name": "sax-js",
|
||||
"full_name": "isaacs/sax-js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1015,
|
||||
"updated_at": "2022-10-27T12:56:55Z"
|
||||
},
|
||||
{
|
||||
"id": 519390,
|
||||
"name": "emmet",
|
||||
"full_name": "emmetio/emmet",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4235,
|
||||
"updated_at": "2022-10-29T09:24:35Z"
|
||||
},
|
||||
{
|
||||
"id": 527644,
|
||||
"name": "less.js",
|
||||
"full_name": "less/less.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 16866,
|
||||
"updated_at": "2022-11-02T10:47:45Z"
|
||||
},
|
||||
{
|
||||
"id": 534940,
|
||||
"name": "mime",
|
||||
"full_name": "broofa/mime",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1876,
|
||||
"updated_at": "2022-10-28T01:31:34Z"
|
||||
},
|
||||
{
|
||||
"id": 557977,
|
||||
"name": "socket.io-client",
|
||||
"full_name": "socketio/socket.io-client",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 9988,
|
||||
"updated_at": "2022-11-02T07:19:51Z"
|
||||
},
|
||||
{
|
||||
"id": 557980,
|
||||
"name": "socket.io",
|
||||
"full_name": "socketio/socket.io",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 56972,
|
||||
"updated_at": "2022-11-02T06:15:27Z"
|
||||
},
|
||||
{
|
||||
"id": 560495,
|
||||
"name": "jsdoc",
|
||||
"full_name": "jsdoc/jsdoc",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13246,
|
||||
"updated_at": "2022-11-01T20:51:26Z"
|
||||
},
|
||||
{
|
||||
"id": 573569,
|
||||
"name": "jake",
|
||||
"full_name": "jakejs/jake",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1923,
|
||||
"updated_at": "2022-10-25T19:36:45Z"
|
||||
},
|
||||
{
|
||||
"id": 576201,
|
||||
"name": "three.js",
|
||||
"full_name": "mrdoob/three.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 86505,
|
||||
"updated_at": "2022-11-02T10:46:23Z"
|
||||
},
|
||||
{
|
||||
"id": 597879,
|
||||
"name": "mongoose",
|
||||
"full_name": "Automattic/mongoose",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 24930,
|
||||
"updated_at": "2022-11-02T09:51:25Z"
|
||||
},
|
||||
{
|
||||
"id": 600637,
|
||||
"name": "stats.js",
|
||||
"full_name": "mrdoob/stats.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7932,
|
||||
"updated_at": "2022-10-31T09:19:23Z"
|
||||
},
|
||||
{
|
||||
"id": 602604,
|
||||
"name": "pegjs",
|
||||
"full_name": "pegjs/pegjs",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4503,
|
||||
"updated_at": "2022-10-30T05:03:04Z"
|
||||
},
|
||||
{
|
||||
"id": 620636,
|
||||
"name": "webfontloader",
|
||||
"full_name": "typekit/webfontloader",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 9013,
|
||||
"updated_at": "2022-11-02T05:48:14Z"
|
||||
},
|
||||
{
|
||||
"id": 655209,
|
||||
"name": "formidable",
|
||||
"full_name": "node-formidable/formidable",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 6404,
|
||||
"updated_at": "2022-11-02T09:18:22Z"
|
||||
},
|
||||
{
|
||||
"id": 667006,
|
||||
"name": "video.js",
|
||||
"full_name": "videojs/video.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 34459,
|
||||
"updated_at": "2022-11-02T08:17:21Z"
|
||||
},
|
||||
{
|
||||
"id": 679662,
|
||||
"name": "node-lru-cache",
|
||||
"full_name": "isaacs/node-lru-cache",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4427,
|
||||
"updated_at": "2022-11-02T05:50:43Z"
|
||||
},
|
||||
{
|
||||
"id": 687836,
|
||||
"name": "connect",
|
||||
"full_name": "senchalabs/connect",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 9559,
|
||||
"updated_at": "2022-11-01T08:20:04Z"
|
||||
},
|
||||
{
|
||||
"id": 691146,
|
||||
"name": "tween.js",
|
||||
"full_name": "tweenjs/tween.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8888,
|
||||
"updated_at": "2022-11-02T06:57:57Z"
|
||||
},
|
||||
{
|
||||
"id": 698041,
|
||||
"name": "async",
|
||||
"full_name": "caolan/async",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 27723,
|
||||
"updated_at": "2022-11-02T04:50:06Z"
|
||||
},
|
||||
{
|
||||
"id": 712530,
|
||||
"name": "fabric.js",
|
||||
"full_name": "fabricjs/fabric.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 23149,
|
||||
"updated_at": "2022-11-02T09:45:43Z"
|
||||
},
|
||||
{
|
||||
"id": 714074,
|
||||
"name": "pouchdb",
|
||||
"full_name": "pouchdb/pouchdb",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15318,
|
||||
"updated_at": "2022-11-02T10:14:50Z"
|
||||
},
|
||||
{
|
||||
"id": 715168,
|
||||
"name": "colors.js",
|
||||
"full_name": "Marak/colors.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5019,
|
||||
"updated_at": "2022-11-02T05:17:19Z"
|
||||
},
|
||||
{
|
||||
"id": 734934,
|
||||
"name": "pug",
|
||||
"full_name": "pugjs/pug",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 20988,
|
||||
"updated_at": "2022-11-02T06:43:03Z"
|
||||
},
|
||||
{
|
||||
"id": 734957,
|
||||
"name": "node-cron",
|
||||
"full_name": "kelektiv/node-cron",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7598,
|
||||
"updated_at": "2022-11-01T17:12:28Z"
|
||||
},
|
||||
{
|
||||
"id": 743723,
|
||||
"name": "store.js",
|
||||
"full_name": "marcuswestin/store.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13844,
|
||||
"updated_at": "2022-11-02T03:26:50Z"
|
||||
},
|
||||
{
|
||||
"id": 747698,
|
||||
"name": "sinon",
|
||||
"full_name": "sinonjs/sinon",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 9149,
|
||||
"updated_at": "2022-11-02T09:18:57Z"
|
||||
},
|
||||
{
|
||||
"id": 757363,
|
||||
"name": "knockout",
|
||||
"full_name": "knockout/knockout",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 10247,
|
||||
"updated_at": "2022-10-31T11:09:48Z"
|
||||
},
|
||||
{
|
||||
"id": 779570,
|
||||
"name": "forge",
|
||||
"full_name": "digitalbazaar/forge",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4541,
|
||||
"updated_at": "2022-11-02T06:45:45Z"
|
||||
},
|
||||
{
|
||||
"id": 790359,
|
||||
"name": "sequelize",
|
||||
"full_name": "sequelize/sequelize",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 26977,
|
||||
"updated_at": "2022-11-02T11:20:07Z"
|
||||
},
|
||||
{
|
||||
"id": 795421,
|
||||
"name": "node-http-proxy",
|
||||
"full_name": "http-party/node-http-proxy",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13042,
|
||||
"updated_at": "2022-11-01T16:51:43Z"
|
||||
},
|
||||
{
|
||||
"id": 800115,
|
||||
"name": "underscore.string",
|
||||
"full_name": "esamattis/underscore.string",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3374,
|
||||
"updated_at": "2022-10-29T12:20:47Z"
|
||||
},
|
||||
{
|
||||
"id": 805461,
|
||||
"name": "mysql",
|
||||
"full_name": "mysqljs/mysql",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 17500,
|
||||
"updated_at": "2022-11-02T10:01:41Z"
|
||||
},
|
||||
{
|
||||
"id": 809601,
|
||||
"name": "handlebars.js",
|
||||
"full_name": "handlebars-lang/handlebars.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 16837,
|
||||
"updated_at": "2022-11-01T10:57:04Z"
|
||||
},
|
||||
{
|
||||
"id": 887025,
|
||||
"name": "q",
|
||||
"full_name": "kriskowal/q",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 14948,
|
||||
"updated_at": "2022-10-28T07:31:40Z"
|
||||
},
|
||||
{
|
||||
"id": 893522,
|
||||
"name": "node-serialport",
|
||||
"full_name": "serialport/node-serialport",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5320,
|
||||
"updated_at": "2022-11-01T00:00:33Z"
|
||||
},
|
||||
{
|
||||
"id": 908893,
|
||||
"name": "node-redis",
|
||||
"full_name": "redis/node-redis",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15627,
|
||||
"updated_at": "2022-11-02T11:20:58Z"
|
||||
},
|
||||
{
|
||||
"id": 914603,
|
||||
"name": "es5-shim",
|
||||
"full_name": "es-shims/es5-shim",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7110,
|
||||
"updated_at": "2022-10-28T06:39:48Z"
|
||||
},
|
||||
{
|
||||
"id": 926231,
|
||||
"name": "Inputmask",
|
||||
"full_name": "RobinHerbots/Inputmask",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5987,
|
||||
"updated_at": "2022-11-02T05:50:57Z"
|
||||
},
|
||||
{
|
||||
"id": 931039,
|
||||
"name": "browserify",
|
||||
"full_name": "browserify/browserify",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 14254,
|
||||
"updated_at": "2022-11-01T03:37:09Z"
|
||||
},
|
||||
{
|
||||
"id": 931135,
|
||||
"name": "Leaflet",
|
||||
"full_name": "Leaflet/Leaflet",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 36010,
|
||||
"updated_at": "2022-11-02T10:09:58Z"
|
||||
},
|
||||
{
|
||||
"id": 942903,
|
||||
"name": "forever",
|
||||
"full_name": "foreversd/forever",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13663,
|
||||
"updated_at": "2022-11-01T05:29:05Z"
|
||||
},
|
||||
{
|
||||
"id": 943149,
|
||||
"name": "d3",
|
||||
"full_name": "d3/d3",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 103304,
|
||||
"updated_at": "2022-11-02T09:49:28Z"
|
||||
},
|
||||
{
|
||||
"id": 947175,
|
||||
"name": "json-schema",
|
||||
"full_name": "kriszyp/json-schema",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 499,
|
||||
"updated_at": "2022-10-19T19:17:53Z"
|
||||
},
|
||||
{
|
||||
"id": 952189,
|
||||
"name": "backbone",
|
||||
"full_name": "jashkenas/backbone",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 27936,
|
||||
"updated_at": "2022-11-02T03:16:33Z"
|
||||
},
|
||||
{
|
||||
"id": 958314,
|
||||
"name": "nodemon",
|
||||
"full_name": "remy/nodemon",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 24604,
|
||||
"updated_at": "2022-11-02T10:11:39Z"
|
||||
},
|
||||
{
|
||||
"id": 965782,
|
||||
"name": "validator.js",
|
||||
"full_name": "validatorjs/validator.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 20415,
|
||||
"updated_at": "2022-11-02T10:18:55Z"
|
||||
},
|
||||
{
|
||||
"id": 991475,
|
||||
"name": "node-postgres",
|
||||
"full_name": "brianc/node-postgres",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 10751,
|
||||
"updated_at": "2022-10-31T12:20:17Z"
|
||||
},
|
||||
{
|
||||
"id": 996158,
|
||||
"name": "watch",
|
||||
"full_name": "mikeal/watch",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1250,
|
||||
"updated_at": "2022-11-01T17:14:59Z"
|
||||
},
|
||||
{
|
||||
"id": 1025209,
|
||||
"name": "CSSOM",
|
||||
"full_name": "NV/CSSOM",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 722,
|
||||
"updated_at": "2022-10-25T13:45:13Z"
|
||||
},
|
||||
{
|
||||
"id": 1130565,
|
||||
"name": "node-config",
|
||||
"full_name": "node-config/node-config",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5797,
|
||||
"updated_at": "2022-11-02T07:54:31Z"
|
||||
},
|
||||
{
|
||||
"id": 1186030,
|
||||
"name": "node-qrcode",
|
||||
"full_name": "soldair/node-qrcode",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 6128,
|
||||
"updated_at": "2022-11-02T05:16:11Z"
|
||||
},
|
||||
{
|
||||
"id": 1203139,
|
||||
"name": "uuid",
|
||||
"full_name": "uuidjs/uuid",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 12769,
|
||||
"updated_at": "2022-11-02T10:25:19Z"
|
||||
},
|
||||
{
|
||||
"id": 1204214,
|
||||
"name": "stylus",
|
||||
"full_name": "stylus/stylus",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 10980,
|
||||
"updated_at": "2022-11-02T10:57:58Z"
|
||||
},
|
||||
{
|
||||
"id": 1206546,
|
||||
"name": "winston",
|
||||
"full_name": "winstonjs/winston",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19683,
|
||||
"updated_at": "2022-11-02T09:13:43Z"
|
||||
},
|
||||
{
|
||||
"id": 1213225,
|
||||
"name": "highlight.js",
|
||||
"full_name": "highlightjs/highlight.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 20619,
|
||||
"updated_at": "2022-11-02T10:05:24Z"
|
||||
},
|
||||
{
|
||||
"id": 1218383,
|
||||
"name": "cli-table",
|
||||
"full_name": "Automattic/cli-table",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 2206,
|
||||
"updated_at": "2022-10-29T22:05:42Z"
|
||||
},
|
||||
{
|
||||
"id": 1254497,
|
||||
"name": "codemirror5",
|
||||
"full_name": "codemirror/codemirror5",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 25436,
|
||||
"updated_at": "2022-11-02T07:14:55Z"
|
||||
},
|
||||
{
|
||||
"id": 1272424,
|
||||
"name": "nodemailer",
|
||||
"full_name": "nodemailer/nodemailer",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15120,
|
||||
"updated_at": "2022-11-02T07:16:15Z"
|
||||
},
|
||||
{
|
||||
"id": 1272666,
|
||||
"name": "jshint",
|
||||
"full_name": "jshint/jshint",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8800,
|
||||
"updated_at": "2022-11-02T02:43:46Z"
|
||||
},
|
||||
{
|
||||
"id": 1283503,
|
||||
"name": "request",
|
||||
"full_name": "request/request",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 25558,
|
||||
"updated_at": "2022-11-02T07:14:37Z"
|
||||
},
|
||||
{
|
||||
"id": 1295612,
|
||||
"name": "flot",
|
||||
"full_name": "flot/flot",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5954,
|
||||
"updated_at": "2022-11-02T00:09:37Z"
|
||||
},
|
||||
{
|
||||
"id": 1341324,
|
||||
"name": "rimraf",
|
||||
"full_name": "isaacs/rimraf",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4882,
|
||||
"updated_at": "2022-11-01T02:30:44Z"
|
||||
},
|
||||
{
|
||||
"id": 1357199,
|
||||
"name": "node-semver",
|
||||
"full_name": "npm/node-semver",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4417,
|
||||
"updated_at": "2022-11-01T14:26:03Z"
|
||||
},
|
||||
{
|
||||
"id": 1369824,
|
||||
"name": "csso",
|
||||
"full_name": "css/csso",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3617,
|
||||
"updated_at": "2022-11-02T03:29:49Z"
|
||||
},
|
||||
{
|
||||
"id": 1419138,
|
||||
"name": "clean-css",
|
||||
"full_name": "clean-css/clean-css",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3994,
|
||||
"updated_at": "2022-10-31T19:00:55Z"
|
||||
},
|
||||
{
|
||||
"id": 1424470,
|
||||
"name": "moment",
|
||||
"full_name": "moment/moment",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 47014,
|
||||
"updated_at": "2022-11-02T09:23:25Z"
|
||||
},
|
||||
{
|
||||
"id": 1451352,
|
||||
"name": "mocha",
|
||||
"full_name": "mochajs/mocha",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 21735,
|
||||
"updated_at": "2022-11-02T05:54:18Z"
|
||||
},
|
||||
{
|
||||
"id": 1474943,
|
||||
"name": "node-dateformat",
|
||||
"full_name": "felixge/node-dateformat",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1277,
|
||||
"updated_at": "2022-10-23T15:41:37Z"
|
||||
},
|
||||
{
|
||||
"id": 1534331,
|
||||
"name": "node-tar",
|
||||
"full_name": "npm/node-tar",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 701,
|
||||
"updated_at": "2022-10-31T18:54:48Z"
|
||||
},
|
||||
{
|
||||
"id": 1542219,
|
||||
"name": "jsdiff",
|
||||
"full_name": "kpdecker/jsdiff",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 6655,
|
||||
"updated_at": "2022-11-02T00:34:01Z"
|
||||
},
|
||||
{
|
||||
"id": 1544436,
|
||||
"name": "nopt",
|
||||
"full_name": "npm/nopt",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 513,
|
||||
"updated_at": "2022-10-30T02:25:47Z"
|
||||
},
|
||||
{
|
||||
"id": 1545869,
|
||||
"name": "when",
|
||||
"full_name": "cujojs/when",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3446,
|
||||
"updated_at": "2022-11-02T09:39:58Z"
|
||||
},
|
||||
{
|
||||
"id": 1569980,
|
||||
"name": "MQTT.js",
|
||||
"full_name": "mqttjs/MQTT.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7315,
|
||||
"updated_at": "2022-11-01T06:35:21Z"
|
||||
},
|
||||
{
|
||||
"id": 1580001,
|
||||
"name": "inherits",
|
||||
"full_name": "isaacs/inherits",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 345,
|
||||
"updated_at": "2022-10-17T21:30:38Z"
|
||||
},
|
||||
{
|
||||
"id": 1580851,
|
||||
"name": "PhotoSwipe",
|
||||
"full_name": "dimsemenov/PhotoSwipe",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 22320,
|
||||
"updated_at": "2022-11-02T01:49:54Z"
|
||||
},
|
||||
{
|
||||
"id": 1588997,
|
||||
"name": "node-spdy",
|
||||
"full_name": "spdy-http2/node-spdy",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 2775,
|
||||
"updated_at": "2022-11-01T10:32:34Z"
|
||||
},
|
||||
{
|
||||
"id": 1590986,
|
||||
"name": "WebSocket-Node",
|
||||
"full_name": "theturtle32/WebSocket-Node",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3597,
|
||||
"updated_at": "2022-11-02T02:14:47Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
"not_found_repo_nwos": {
|
||||
"not_found_repos": {
|
||||
"repository_count": 110,
|
||||
"repository_full_names": [
|
||||
"evanw/node-source-map-support",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -105,7 +105,9 @@
|
||||
"id": 478996,
|
||||
"name": "jquery-ui",
|
||||
"full_name": "jquery/jquery-ui",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 11085,
|
||||
"updated_at": "2022-11-01T11:06:31Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -114,7 +116,9 @@
|
||||
"id": 648414,
|
||||
"name": "jquery-validation",
|
||||
"full_name": "jquery-validation/jquery-validation",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 10250,
|
||||
"updated_at": "2022-11-01T17:52:18Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -123,7 +127,9 @@
|
||||
"id": 2950981,
|
||||
"name": "azure-sdk-for-node",
|
||||
"full_name": "Azure/azure-sdk-for-node",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1183,
|
||||
"updated_at": "2022-11-02T06:42:39Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -132,7 +138,9 @@
|
||||
"id": 17335035,
|
||||
"name": "bootstrap-fileinput",
|
||||
"full_name": "kartik-v/bootstrap-fileinput",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5238,
|
||||
"updated_at": "2022-11-02T11:01:58Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -141,7 +149,9 @@
|
||||
"id": 18782726,
|
||||
"name": "OwlCarousel2",
|
||||
"full_name": "OwlCarousel2/OwlCarousel2",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7732,
|
||||
"updated_at": "2022-11-02T02:26:29Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
}
|
||||
@@ -154,605 +164,805 @@
|
||||
"id": 48296,
|
||||
"name": "raphael",
|
||||
"full_name": "DmitryBaranovskiy/raphael",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 11134,
|
||||
"updated_at": "2022-11-02T09:44:58Z"
|
||||
},
|
||||
{
|
||||
"id": 63557,
|
||||
"name": "jquery-mousewheel",
|
||||
"full_name": "jquery/jquery-mousewheel",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3903,
|
||||
"updated_at": "2022-11-01T03:59:45Z"
|
||||
},
|
||||
{
|
||||
"id": 75547,
|
||||
"name": "showdown",
|
||||
"full_name": "showdownjs/showdown",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 12875,
|
||||
"updated_at": "2022-11-02T03:36:15Z"
|
||||
},
|
||||
{
|
||||
"id": 84009,
|
||||
"name": "jasmine",
|
||||
"full_name": "jasmine/jasmine",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15459,
|
||||
"updated_at": "2022-10-31T07:47:15Z"
|
||||
},
|
||||
{
|
||||
"id": 84822,
|
||||
"name": "js-beautify",
|
||||
"full_name": "beautify-web/js-beautify",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7902,
|
||||
"updated_at": "2022-11-02T07:40:06Z"
|
||||
},
|
||||
{
|
||||
"id": 165557,
|
||||
"name": "js-base64",
|
||||
"full_name": "dankogai/js-base64",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3831,
|
||||
"updated_at": "2022-11-02T03:17:43Z"
|
||||
},
|
||||
{
|
||||
"id": 167174,
|
||||
"name": "jquery",
|
||||
"full_name": "jquery/jquery",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 56910,
|
||||
"updated_at": "2022-11-02T00:55:34Z"
|
||||
},
|
||||
{
|
||||
"id": 237159,
|
||||
"name": "express",
|
||||
"full_name": "expressjs/express",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 58776,
|
||||
"updated_at": "2022-11-02T10:33:45Z"
|
||||
},
|
||||
{
|
||||
"id": 292525,
|
||||
"name": "jszip",
|
||||
"full_name": "Stuk/jszip",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8412,
|
||||
"updated_at": "2022-11-02T10:46:56Z"
|
||||
},
|
||||
{
|
||||
"id": 317757,
|
||||
"name": "Modernizr",
|
||||
"full_name": "Modernizr/Modernizr",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 25349,
|
||||
"updated_at": "2022-11-02T10:11:31Z"
|
||||
},
|
||||
{
|
||||
"id": 326688,
|
||||
"name": "mustache.js",
|
||||
"full_name": "janl/mustache.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15595,
|
||||
"updated_at": "2022-11-02T04:12:53Z"
|
||||
},
|
||||
{
|
||||
"id": 349241,
|
||||
"name": "underscore",
|
||||
"full_name": "jashkenas/underscore",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 26655,
|
||||
"updated_at": "2022-11-01T23:21:28Z"
|
||||
},
|
||||
{
|
||||
"id": 357681,
|
||||
"name": "node-glob",
|
||||
"full_name": "isaacs/node-glob",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7739,
|
||||
"updated_at": "2022-11-02T08:23:54Z"
|
||||
},
|
||||
{
|
||||
"id": 381979,
|
||||
"name": "fullcalendar",
|
||||
"full_name": "fullcalendar/fullcalendar",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15569,
|
||||
"updated_at": "2022-11-02T09:19:14Z"
|
||||
},
|
||||
{
|
||||
"id": 402046,
|
||||
"name": "jsPDF",
|
||||
"full_name": "parallax/jsPDF",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 25408,
|
||||
"updated_at": "2022-11-02T10:39:20Z"
|
||||
},
|
||||
{
|
||||
"id": 441854,
|
||||
"name": "markdown-js",
|
||||
"full_name": "evilstreak/markdown-js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7643,
|
||||
"updated_at": "2022-10-28T05:15:05Z"
|
||||
},
|
||||
{
|
||||
"id": 462292,
|
||||
"name": "node-mongodb-native",
|
||||
"full_name": "mongodb/node-mongodb-native",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 9574,
|
||||
"updated_at": "2022-11-02T10:57:50Z"
|
||||
},
|
||||
{
|
||||
"id": 467471,
|
||||
"name": "tinymce",
|
||||
"full_name": "tinymce/tinymce",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 12103,
|
||||
"updated_at": "2022-11-02T09:49:59Z"
|
||||
},
|
||||
{
|
||||
"id": 475599,
|
||||
"name": "log4js-node",
|
||||
"full_name": "log4js-node/log4js-node",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5500,
|
||||
"updated_at": "2022-11-02T07:01:50Z"
|
||||
},
|
||||
{
|
||||
"id": 478584,
|
||||
"name": "jsdom",
|
||||
"full_name": "jsdom/jsdom",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 18052,
|
||||
"updated_at": "2022-11-02T11:18:57Z"
|
||||
},
|
||||
{
|
||||
"id": 486550,
|
||||
"name": "html5-boilerplate",
|
||||
"full_name": "h5bp/html5-boilerplate",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 53520,
|
||||
"updated_at": "2022-11-02T07:30:25Z"
|
||||
},
|
||||
{
|
||||
"id": 501326,
|
||||
"name": "requirejs",
|
||||
"full_name": "requirejs/requirejs",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 12842,
|
||||
"updated_at": "2022-11-02T11:02:32Z"
|
||||
},
|
||||
{
|
||||
"id": 504220,
|
||||
"name": "html-minifier",
|
||||
"full_name": "kangax/html-minifier",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4700,
|
||||
"updated_at": "2022-10-29T16:27:36Z"
|
||||
},
|
||||
{
|
||||
"id": 508894,
|
||||
"name": "sax-js",
|
||||
"full_name": "isaacs/sax-js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1015,
|
||||
"updated_at": "2022-10-27T12:56:55Z"
|
||||
},
|
||||
{
|
||||
"id": 519390,
|
||||
"name": "emmet",
|
||||
"full_name": "emmetio/emmet",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4235,
|
||||
"updated_at": "2022-10-29T09:24:35Z"
|
||||
},
|
||||
{
|
||||
"id": 527644,
|
||||
"name": "less.js",
|
||||
"full_name": "less/less.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 16866,
|
||||
"updated_at": "2022-11-02T10:47:45Z"
|
||||
},
|
||||
{
|
||||
"id": 534940,
|
||||
"name": "mime",
|
||||
"full_name": "broofa/mime",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1876,
|
||||
"updated_at": "2022-10-28T01:31:34Z"
|
||||
},
|
||||
{
|
||||
"id": 557977,
|
||||
"name": "socket.io-client",
|
||||
"full_name": "socketio/socket.io-client",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 9988,
|
||||
"updated_at": "2022-11-02T07:19:51Z"
|
||||
},
|
||||
{
|
||||
"id": 557980,
|
||||
"name": "socket.io",
|
||||
"full_name": "socketio/socket.io",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 56972,
|
||||
"updated_at": "2022-11-02T06:15:27Z"
|
||||
},
|
||||
{
|
||||
"id": 560495,
|
||||
"name": "jsdoc",
|
||||
"full_name": "jsdoc/jsdoc",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13246,
|
||||
"updated_at": "2022-11-01T20:51:26Z"
|
||||
},
|
||||
{
|
||||
"id": 573569,
|
||||
"name": "jake",
|
||||
"full_name": "jakejs/jake",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1923,
|
||||
"updated_at": "2022-10-25T19:36:45Z"
|
||||
},
|
||||
{
|
||||
"id": 576201,
|
||||
"name": "three.js",
|
||||
"full_name": "mrdoob/three.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 86505,
|
||||
"updated_at": "2022-11-02T10:46:23Z"
|
||||
},
|
||||
{
|
||||
"id": 597879,
|
||||
"name": "mongoose",
|
||||
"full_name": "Automattic/mongoose",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 24930,
|
||||
"updated_at": "2022-11-02T09:51:25Z"
|
||||
},
|
||||
{
|
||||
"id": 600637,
|
||||
"name": "stats.js",
|
||||
"full_name": "mrdoob/stats.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7932,
|
||||
"updated_at": "2022-10-31T09:19:23Z"
|
||||
},
|
||||
{
|
||||
"id": 602604,
|
||||
"name": "pegjs",
|
||||
"full_name": "pegjs/pegjs",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4503,
|
||||
"updated_at": "2022-10-30T05:03:04Z"
|
||||
},
|
||||
{
|
||||
"id": 620636,
|
||||
"name": "webfontloader",
|
||||
"full_name": "typekit/webfontloader",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 9013,
|
||||
"updated_at": "2022-11-02T05:48:14Z"
|
||||
},
|
||||
{
|
||||
"id": 655209,
|
||||
"name": "formidable",
|
||||
"full_name": "node-formidable/formidable",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 6404,
|
||||
"updated_at": "2022-11-02T09:18:22Z"
|
||||
},
|
||||
{
|
||||
"id": 667006,
|
||||
"name": "video.js",
|
||||
"full_name": "videojs/video.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 34459,
|
||||
"updated_at": "2022-11-02T08:17:21Z"
|
||||
},
|
||||
{
|
||||
"id": 679662,
|
||||
"name": "node-lru-cache",
|
||||
"full_name": "isaacs/node-lru-cache",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4427,
|
||||
"updated_at": "2022-11-02T05:50:43Z"
|
||||
},
|
||||
{
|
||||
"id": 687836,
|
||||
"name": "connect",
|
||||
"full_name": "senchalabs/connect",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 9559,
|
||||
"updated_at": "2022-11-01T08:20:04Z"
|
||||
},
|
||||
{
|
||||
"id": 691146,
|
||||
"name": "tween.js",
|
||||
"full_name": "tweenjs/tween.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8888,
|
||||
"updated_at": "2022-11-02T06:57:57Z"
|
||||
},
|
||||
{
|
||||
"id": 698041,
|
||||
"name": "async",
|
||||
"full_name": "caolan/async",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 27723,
|
||||
"updated_at": "2022-11-02T04:50:06Z"
|
||||
},
|
||||
{
|
||||
"id": 712530,
|
||||
"name": "fabric.js",
|
||||
"full_name": "fabricjs/fabric.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 23149,
|
||||
"updated_at": "2022-11-02T09:45:43Z"
|
||||
},
|
||||
{
|
||||
"id": 714074,
|
||||
"name": "pouchdb",
|
||||
"full_name": "pouchdb/pouchdb",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15318,
|
||||
"updated_at": "2022-11-02T10:14:50Z"
|
||||
},
|
||||
{
|
||||
"id": 715168,
|
||||
"name": "colors.js",
|
||||
"full_name": "Marak/colors.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5019,
|
||||
"updated_at": "2022-11-02T05:17:19Z"
|
||||
},
|
||||
{
|
||||
"id": 734934,
|
||||
"name": "pug",
|
||||
"full_name": "pugjs/pug",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 20988,
|
||||
"updated_at": "2022-11-02T06:43:03Z"
|
||||
},
|
||||
{
|
||||
"id": 734957,
|
||||
"name": "node-cron",
|
||||
"full_name": "kelektiv/node-cron",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7598,
|
||||
"updated_at": "2022-11-01T17:12:28Z"
|
||||
},
|
||||
{
|
||||
"id": 743723,
|
||||
"name": "store.js",
|
||||
"full_name": "marcuswestin/store.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13844,
|
||||
"updated_at": "2022-11-02T03:26:50Z"
|
||||
},
|
||||
{
|
||||
"id": 747698,
|
||||
"name": "sinon",
|
||||
"full_name": "sinonjs/sinon",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 9149,
|
||||
"updated_at": "2022-11-02T09:18:57Z"
|
||||
},
|
||||
{
|
||||
"id": 757363,
|
||||
"name": "knockout",
|
||||
"full_name": "knockout/knockout",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 10247,
|
||||
"updated_at": "2022-10-31T11:09:48Z"
|
||||
},
|
||||
{
|
||||
"id": 779570,
|
||||
"name": "forge",
|
||||
"full_name": "digitalbazaar/forge",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4541,
|
||||
"updated_at": "2022-11-02T06:45:45Z"
|
||||
},
|
||||
{
|
||||
"id": 790359,
|
||||
"name": "sequelize",
|
||||
"full_name": "sequelize/sequelize",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 26977,
|
||||
"updated_at": "2022-11-02T11:20:07Z"
|
||||
},
|
||||
{
|
||||
"id": 795421,
|
||||
"name": "node-http-proxy",
|
||||
"full_name": "http-party/node-http-proxy",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13042,
|
||||
"updated_at": "2022-11-01T16:51:43Z"
|
||||
},
|
||||
{
|
||||
"id": 800115,
|
||||
"name": "underscore.string",
|
||||
"full_name": "esamattis/underscore.string",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3374,
|
||||
"updated_at": "2022-10-29T12:20:47Z"
|
||||
},
|
||||
{
|
||||
"id": 805461,
|
||||
"name": "mysql",
|
||||
"full_name": "mysqljs/mysql",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 17500,
|
||||
"updated_at": "2022-11-02T10:01:41Z"
|
||||
},
|
||||
{
|
||||
"id": 809601,
|
||||
"name": "handlebars.js",
|
||||
"full_name": "handlebars-lang/handlebars.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 16837,
|
||||
"updated_at": "2022-11-01T10:57:04Z"
|
||||
},
|
||||
{
|
||||
"id": 887025,
|
||||
"name": "q",
|
||||
"full_name": "kriskowal/q",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 14948,
|
||||
"updated_at": "2022-10-28T07:31:40Z"
|
||||
},
|
||||
{
|
||||
"id": 893522,
|
||||
"name": "node-serialport",
|
||||
"full_name": "serialport/node-serialport",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5320,
|
||||
"updated_at": "2022-11-01T00:00:33Z"
|
||||
},
|
||||
{
|
||||
"id": 908893,
|
||||
"name": "node-redis",
|
||||
"full_name": "redis/node-redis",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15627,
|
||||
"updated_at": "2022-11-02T11:20:58Z"
|
||||
},
|
||||
{
|
||||
"id": 914603,
|
||||
"name": "es5-shim",
|
||||
"full_name": "es-shims/es5-shim",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7110,
|
||||
"updated_at": "2022-10-28T06:39:48Z"
|
||||
},
|
||||
{
|
||||
"id": 926231,
|
||||
"name": "Inputmask",
|
||||
"full_name": "RobinHerbots/Inputmask",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5987,
|
||||
"updated_at": "2022-11-02T05:50:57Z"
|
||||
},
|
||||
{
|
||||
"id": 931039,
|
||||
"name": "browserify",
|
||||
"full_name": "browserify/browserify",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 14254,
|
||||
"updated_at": "2022-11-01T03:37:09Z"
|
||||
},
|
||||
{
|
||||
"id": 931135,
|
||||
"name": "Leaflet",
|
||||
"full_name": "Leaflet/Leaflet",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 36010,
|
||||
"updated_at": "2022-11-02T10:09:58Z"
|
||||
},
|
||||
{
|
||||
"id": 942903,
|
||||
"name": "forever",
|
||||
"full_name": "foreversd/forever",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13663,
|
||||
"updated_at": "2022-11-01T05:29:05Z"
|
||||
},
|
||||
{
|
||||
"id": 943149,
|
||||
"name": "d3",
|
||||
"full_name": "d3/d3",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 103304,
|
||||
"updated_at": "2022-11-02T09:49:28Z"
|
||||
},
|
||||
{
|
||||
"id": 947175,
|
||||
"name": "json-schema",
|
||||
"full_name": "kriszyp/json-schema",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 499,
|
||||
"updated_at": "2022-10-19T19:17:53Z"
|
||||
},
|
||||
{
|
||||
"id": 952189,
|
||||
"name": "backbone",
|
||||
"full_name": "jashkenas/backbone",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 27936,
|
||||
"updated_at": "2022-11-02T03:16:33Z"
|
||||
},
|
||||
{
|
||||
"id": 958314,
|
||||
"name": "nodemon",
|
||||
"full_name": "remy/nodemon",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 24604,
|
||||
"updated_at": "2022-11-02T10:11:39Z"
|
||||
},
|
||||
{
|
||||
"id": 965782,
|
||||
"name": "validator.js",
|
||||
"full_name": "validatorjs/validator.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 20415,
|
||||
"updated_at": "2022-11-02T10:18:55Z"
|
||||
},
|
||||
{
|
||||
"id": 991475,
|
||||
"name": "node-postgres",
|
||||
"full_name": "brianc/node-postgres",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 10751,
|
||||
"updated_at": "2022-10-31T12:20:17Z"
|
||||
},
|
||||
{
|
||||
"id": 996158,
|
||||
"name": "watch",
|
||||
"full_name": "mikeal/watch",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1250,
|
||||
"updated_at": "2022-11-01T17:14:59Z"
|
||||
},
|
||||
{
|
||||
"id": 1025209,
|
||||
"name": "CSSOM",
|
||||
"full_name": "NV/CSSOM",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 722,
|
||||
"updated_at": "2022-10-25T13:45:13Z"
|
||||
},
|
||||
{
|
||||
"id": 1130565,
|
||||
"name": "node-config",
|
||||
"full_name": "node-config/node-config",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5797,
|
||||
"updated_at": "2022-11-02T07:54:31Z"
|
||||
},
|
||||
{
|
||||
"id": 1186030,
|
||||
"name": "node-qrcode",
|
||||
"full_name": "soldair/node-qrcode",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 6128,
|
||||
"updated_at": "2022-11-02T05:16:11Z"
|
||||
},
|
||||
{
|
||||
"id": 1203139,
|
||||
"name": "uuid",
|
||||
"full_name": "uuidjs/uuid",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 12769,
|
||||
"updated_at": "2022-11-02T10:25:19Z"
|
||||
},
|
||||
{
|
||||
"id": 1204214,
|
||||
"name": "stylus",
|
||||
"full_name": "stylus/stylus",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 10980,
|
||||
"updated_at": "2022-11-02T10:57:58Z"
|
||||
},
|
||||
{
|
||||
"id": 1206546,
|
||||
"name": "winston",
|
||||
"full_name": "winstonjs/winston",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 19683,
|
||||
"updated_at": "2022-11-02T09:13:43Z"
|
||||
},
|
||||
{
|
||||
"id": 1213225,
|
||||
"name": "highlight.js",
|
||||
"full_name": "highlightjs/highlight.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 20619,
|
||||
"updated_at": "2022-11-02T10:05:24Z"
|
||||
},
|
||||
{
|
||||
"id": 1218383,
|
||||
"name": "cli-table",
|
||||
"full_name": "Automattic/cli-table",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 2206,
|
||||
"updated_at": "2022-10-29T22:05:42Z"
|
||||
},
|
||||
{
|
||||
"id": 1254497,
|
||||
"name": "codemirror5",
|
||||
"full_name": "codemirror/codemirror5",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 25436,
|
||||
"updated_at": "2022-11-02T07:14:55Z"
|
||||
},
|
||||
{
|
||||
"id": 1272424,
|
||||
"name": "nodemailer",
|
||||
"full_name": "nodemailer/nodemailer",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 15120,
|
||||
"updated_at": "2022-11-02T07:16:15Z"
|
||||
},
|
||||
{
|
||||
"id": 1272666,
|
||||
"name": "jshint",
|
||||
"full_name": "jshint/jshint",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8800,
|
||||
"updated_at": "2022-11-02T02:43:46Z"
|
||||
},
|
||||
{
|
||||
"id": 1283503,
|
||||
"name": "request",
|
||||
"full_name": "request/request",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 25558,
|
||||
"updated_at": "2022-11-02T07:14:37Z"
|
||||
},
|
||||
{
|
||||
"id": 1295612,
|
||||
"name": "flot",
|
||||
"full_name": "flot/flot",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 5954,
|
||||
"updated_at": "2022-11-02T00:09:37Z"
|
||||
},
|
||||
{
|
||||
"id": 1341324,
|
||||
"name": "rimraf",
|
||||
"full_name": "isaacs/rimraf",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4882,
|
||||
"updated_at": "2022-11-01T02:30:44Z"
|
||||
},
|
||||
{
|
||||
"id": 1357199,
|
||||
"name": "node-semver",
|
||||
"full_name": "npm/node-semver",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 4417,
|
||||
"updated_at": "2022-11-01T14:26:03Z"
|
||||
},
|
||||
{
|
||||
"id": 1369824,
|
||||
"name": "csso",
|
||||
"full_name": "css/csso",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3617,
|
||||
"updated_at": "2022-11-02T03:29:49Z"
|
||||
},
|
||||
{
|
||||
"id": 1419138,
|
||||
"name": "clean-css",
|
||||
"full_name": "clean-css/clean-css",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3994,
|
||||
"updated_at": "2022-10-31T19:00:55Z"
|
||||
},
|
||||
{
|
||||
"id": 1424470,
|
||||
"name": "moment",
|
||||
"full_name": "moment/moment",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 47014,
|
||||
"updated_at": "2022-11-02T09:23:25Z"
|
||||
},
|
||||
{
|
||||
"id": 1451352,
|
||||
"name": "mocha",
|
||||
"full_name": "mochajs/mocha",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 21735,
|
||||
"updated_at": "2022-11-02T05:54:18Z"
|
||||
},
|
||||
{
|
||||
"id": 1474943,
|
||||
"name": "node-dateformat",
|
||||
"full_name": "felixge/node-dateformat",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 1277,
|
||||
"updated_at": "2022-10-23T15:41:37Z"
|
||||
},
|
||||
{
|
||||
"id": 1534331,
|
||||
"name": "node-tar",
|
||||
"full_name": "npm/node-tar",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 701,
|
||||
"updated_at": "2022-10-31T18:54:48Z"
|
||||
},
|
||||
{
|
||||
"id": 1542219,
|
||||
"name": "jsdiff",
|
||||
"full_name": "kpdecker/jsdiff",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 6655,
|
||||
"updated_at": "2022-11-02T00:34:01Z"
|
||||
},
|
||||
{
|
||||
"id": 1544436,
|
||||
"name": "nopt",
|
||||
"full_name": "npm/nopt",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 513,
|
||||
"updated_at": "2022-10-30T02:25:47Z"
|
||||
},
|
||||
{
|
||||
"id": 1545869,
|
||||
"name": "when",
|
||||
"full_name": "cujojs/when",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3446,
|
||||
"updated_at": "2022-11-02T09:39:58Z"
|
||||
},
|
||||
{
|
||||
"id": 1569980,
|
||||
"name": "MQTT.js",
|
||||
"full_name": "mqttjs/MQTT.js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 7315,
|
||||
"updated_at": "2022-11-01T06:35:21Z"
|
||||
},
|
||||
{
|
||||
"id": 1580001,
|
||||
"name": "inherits",
|
||||
"full_name": "isaacs/inherits",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 345,
|
||||
"updated_at": "2022-10-17T21:30:38Z"
|
||||
},
|
||||
{
|
||||
"id": 1580851,
|
||||
"name": "PhotoSwipe",
|
||||
"full_name": "dimsemenov/PhotoSwipe",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 22320,
|
||||
"updated_at": "2022-11-02T01:49:54Z"
|
||||
},
|
||||
{
|
||||
"id": 1588997,
|
||||
"name": "node-spdy",
|
||||
"full_name": "spdy-http2/node-spdy",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 2775,
|
||||
"updated_at": "2022-11-01T10:32:34Z"
|
||||
},
|
||||
{
|
||||
"id": 1590986,
|
||||
"name": "WebSocket-Node",
|
||||
"full_name": "theturtle32/WebSocket-Node",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 3597,
|
||||
"updated_at": "2022-11-02T02:14:47Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
"not_found_repo_nwos": {
|
||||
"not_found_repos": {
|
||||
"repository_count": 110,
|
||||
"repository_full_names": [
|
||||
"evanw/node-source-map-support",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -105,7 +105,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 105590837,
|
||||
"name": "amplify-js",
|
||||
"full_name": "aws-amplify/amplify-js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8969,
|
||||
"updated_at": "2022-11-02T09:55:27Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 105590837,
|
||||
"name": "amplify-js",
|
||||
"full_name": "aws-amplify/amplify-js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8969,
|
||||
"updated_at": "2022-11-02T09:55:27Z"
|
||||
},
|
||||
"analysis_status": "in_progress"
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -116,7 +118,9 @@
|
||||
"id": 105590837,
|
||||
"name": "amplify-js",
|
||||
"full_name": "aws-amplify/amplify-js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8969,
|
||||
"updated_at": "2022-11-02T09:55:27Z"
|
||||
},
|
||||
"analysis_status": "failed",
|
||||
"failure_message": "The GitHub Actions workflow failed or was cancelled."
|
||||
|
||||
@@ -106,7 +106,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "succeeded",
|
||||
"artifact_size_in_bytes": 66895,
|
||||
@@ -117,7 +119,9 @@
|
||||
"id": 105590837,
|
||||
"name": "amplify-js",
|
||||
"full_name": "aws-amplify/amplify-js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8969,
|
||||
"updated_at": "2022-11-02T09:55:27Z"
|
||||
},
|
||||
"analysis_status": "failed",
|
||||
"failure_message": "There was a problem when running the query."
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -114,7 +116,9 @@
|
||||
"id": 105590837,
|
||||
"name": "amplify-js",
|
||||
"full_name": "aws-amplify/amplify-js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8969,
|
||||
"updated_at": "2022-11-02T09:55:27Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
"id": 23418517,
|
||||
"name": "hadoop",
|
||||
"full_name": "apache/hadoop",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 13030,
|
||||
"updated_at": "2022-11-02T08:23:58Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
},
|
||||
@@ -114,7 +116,9 @@
|
||||
"id": 105590837,
|
||||
"name": "amplify-js",
|
||||
"full_name": "aws-amplify/amplify-js",
|
||||
"private": false
|
||||
"private": false,
|
||||
"stargazers_count": 8969,
|
||||
"updated_at": "2022-11-02T09:55:27Z"
|
||||
},
|
||||
"analysis_status": "pending"
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user