Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
adeb9a8ac8 | ||
|
|
44e14891cb | ||
|
|
94c9ac0152 | ||
|
|
496f99d6ac | ||
|
|
e45e1d26ee | ||
|
|
9300f06156 | ||
|
|
a1dc4bfff4 | ||
|
|
228fff2121 | ||
|
|
eb0953e5bc | ||
|
|
35ee5ff829 | ||
|
|
c64e60ad48 | ||
|
|
5860d05e4b | ||
|
|
d24076ab5c | ||
|
|
8127734e55 | ||
|
|
fac6b63988 | ||
|
|
df7ec26063 | ||
|
|
eac3fe1a9e | ||
|
|
46e3c6c04a | ||
|
|
96880cd441 | ||
|
|
1148aa900e | ||
|
|
c88dd3d556 | ||
|
|
3b85dc80a0 | ||
|
|
d7c754cb3e | ||
|
|
4edb698dc0 | ||
|
|
e1152aa0d9 | ||
|
|
8b827b0848 |
@@ -1,199 +0,0 @@
|
||||
version: 2
|
||||
|
||||
defaults: &defaults
|
||||
working_directory: ~/project
|
||||
docker:
|
||||
- image: cimg/node:lts
|
||||
|
||||
aliases:
|
||||
- &restore_yarn_cache
|
||||
name: Restore yarn cache
|
||||
keys:
|
||||
- yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }}
|
||||
- yarn-packages-{{ .Branch }}
|
||||
- yarn-packages-
|
||||
- &save_yarn_cache
|
||||
name: Save yarn cache
|
||||
paths:
|
||||
- ~/.cache/yarn
|
||||
key: yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }}
|
||||
|
||||
jobs:
|
||||
install:
|
||||
<<: *defaults
|
||||
steps:
|
||||
- checkout
|
||||
- restore_cache: *restore_yarn_cache
|
||||
- run: yarn install --frozen-lockfile
|
||||
- save_cache: *save_yarn_cache
|
||||
- store_artifacts:
|
||||
path: package.json
|
||||
- persist_to_workspace:
|
||||
root: ~/project
|
||||
paths:
|
||||
- .
|
||||
build:
|
||||
<<: *defaults
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: ~/project
|
||||
- run:
|
||||
name: Build
|
||||
command: yarn run build
|
||||
- run:
|
||||
name: Build sense
|
||||
command: yarn run sense
|
||||
- persist_to_workspace:
|
||||
root: ~/project
|
||||
paths:
|
||||
- .
|
||||
|
||||
lint:
|
||||
<<: *defaults
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: ~/project
|
||||
- run:
|
||||
name: Lint
|
||||
command: yarn run eslint
|
||||
|
||||
unit-tests:
|
||||
<<: *defaults
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: ~/project
|
||||
- run:
|
||||
name: Run unit tests and publish to codeclimate
|
||||
command: |
|
||||
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
||||
chmod +x ./cc-test-reporter
|
||||
./cc-test-reporter before-build
|
||||
yarn test:unit --runInBand --coverage --reporters=default --reporters=jest-junit
|
||||
./cc-test-reporter after-build --coverage-input-type lcov --exit-code $?
|
||||
environment:
|
||||
JEST_JUNIT_OUTPUT_DIR: ./coverage/junit/
|
||||
- store_artifacts:
|
||||
path: coverage
|
||||
|
||||
api-spec:
|
||||
<<: *defaults
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: ~/project
|
||||
- run:
|
||||
name: Build API specification
|
||||
command: yarn run spec
|
||||
|
||||
publish-dev:
|
||||
<<: *defaults
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: ~/project
|
||||
- run: zip -r "sn-network-chart-ext.zip" "./sn-network-chart-ext"
|
||||
- store_artifacts:
|
||||
path: ./sn-network-chart-ext.zip
|
||||
|
||||
publish:
|
||||
<<: *defaults
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: ~/project
|
||||
- run:
|
||||
name: Setup npm
|
||||
command: |
|
||||
set -eo pipefail
|
||||
# Amend auth token for access to public npm registry for @nebula.js packages
|
||||
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
|
||||
- run:
|
||||
name: Publish
|
||||
command: |
|
||||
set -euo pipefail
|
||||
PROJ_VER=v$(cat package.json | jq -r '.version')
|
||||
TAG_NAME=$(git tag --points-at HEAD)
|
||||
if [ "$TAG_NAME" == "$PROJ_VER" ]
|
||||
then
|
||||
echo "Running >> npm publish"
|
||||
npm publish
|
||||
fi
|
||||
|
||||
api-governance:
|
||||
machine:
|
||||
image: ubuntu-2004:current
|
||||
working_directory: ~/project
|
||||
steps:
|
||||
- checkout
|
||||
- attach_workspace:
|
||||
at: ~/project
|
||||
- run:
|
||||
name: Create version.txt
|
||||
command: |
|
||||
set -x
|
||||
if [ -n "${CIRCLE_TAG}" ]; then
|
||||
version=${CIRCLE_TAG#v}
|
||||
else
|
||||
version=$(git describe --tags --abbrev=7 --match "v*")
|
||||
version=${version#v}
|
||||
fi
|
||||
echo "$version" > ./version.txt
|
||||
echo "Building $version"
|
||||
- run:
|
||||
name: Prepare API Compliance
|
||||
command: |
|
||||
docker pull ghcr.io/qlik-download/api-compliance
|
||||
docker create -v /specs --name specs alpine:3.4 /bin/true
|
||||
docker cp ./api-specifications/properties.json specs:/specs
|
||||
- run:
|
||||
name: Run API Compliance
|
||||
command: >
|
||||
VER=$(cat ./version.txt)
|
||||
|
||||
docker run --volumes-from specs
|
||||
-e SPEC_PATHS="e3863ba0-a48d-4034-8a77-1b00ce8a637d@/specs/properties.json"
|
||||
-e COMMIT_SHA="$CIRCLE_SHA1"
|
||||
-e RELEASE_TAG="$VER"
|
||||
-e CREDENTIALS_S3_SECRETKEY="$APICULTURIST_S3"
|
||||
-e CREDENTIALS_GITHUB="$APICULTURIST_GITHUB"
|
||||
-e CREDENTIALS_COLONY="$APICULTURIST_TOKEN"
|
||||
ghcr.io/qlik-download/api-compliance
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
build-all:
|
||||
jobs:
|
||||
- install
|
||||
- build:
|
||||
requires:
|
||||
- install
|
||||
- unit-tests:
|
||||
requires:
|
||||
- build
|
||||
- lint:
|
||||
requires:
|
||||
- build
|
||||
- api-spec:
|
||||
requires:
|
||||
- install
|
||||
- publish-dev:
|
||||
requires:
|
||||
- build
|
||||
- publish:
|
||||
requires:
|
||||
- build
|
||||
- unit-tests
|
||||
- lint
|
||||
- api-spec
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- main
|
||||
- api-governance:
|
||||
context: api-compliance
|
||||
filters:
|
||||
branches:
|
||||
# Forked pull requests have CIRCLE_BRANCH set to pull/XXX
|
||||
ignore:
|
||||
- /pull\/[0-9]+/
|
||||
- renovate/minor-and-patch
|
||||
tags:
|
||||
only:
|
||||
- /v.*/
|
||||
19
.codeclimate.yml
Normal file
19
.codeclimate.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
version: "2"
|
||||
checks:
|
||||
method-lines:
|
||||
config:
|
||||
threshold: 100
|
||||
method-complexity:
|
||||
config:
|
||||
threshold: 10
|
||||
similar-code:
|
||||
config:
|
||||
threshold: 65
|
||||
identical-code:
|
||||
config:
|
||||
threshold: 65
|
||||
exclude_patterns:
|
||||
- "src/**/*.test.ts"
|
||||
- "src/**/*.test.tsx"
|
||||
- "*config*"
|
||||
- "test/**/__fixtures__"
|
||||
38
.github/workflows/api-gov.yml
vendored
Normal file
38
.github/workflows/api-gov.yml
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
name: "API Governance"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
VERSION:
|
||||
type: string
|
||||
description: Version to run against
|
||||
default: ''
|
||||
SHA:
|
||||
type: string
|
||||
description: Sha of tag
|
||||
default: ''
|
||||
|
||||
jobs:
|
||||
api-gov:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Prepare API Compliance
|
||||
shell: bash
|
||||
run: |
|
||||
docker pull ghcr.io/qlik-download/api-compliance
|
||||
docker create -v /specs --name specs alpine:3.4 /bin/true
|
||||
docker cp api-specifications/properties.json specs:/specs/properties.json
|
||||
|
||||
- name: Run API Compliance
|
||||
shell: bash
|
||||
run: |
|
||||
docker run --volumes-from specs \
|
||||
-e SPEC_PATHS="${{ secrets.API_KEY }}@/specs/properties.json" \
|
||||
-e COMMIT_SHA="${{ inputs.SHA }}" \
|
||||
-e RELEASE_TAG="${{ inputs.VERSION }}" \
|
||||
-e CREDENTIALS_S3_SECRETKEY="${{ secrets.APICULTURIST_S3 }}" \
|
||||
-e CREDENTIALS_GITHUB="${{ secrets.APICULTURIST_GITHUB }}" \
|
||||
-e CREDENTIALS_COLONY="${{ secrets.APICULTURIST_TOKEN }}" \
|
||||
ghcr.io/qlik-download/api-compliance
|
||||
22
.github/workflows/build.yml
vendored
Normal file
22
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: Build
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release:
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build:
|
||||
uses: qlik-oss/sn-gh-workflows/.github/workflows/build.yaml@v1
|
||||
secrets: inherit
|
||||
with:
|
||||
release: ${{ inputs.release || false}}
|
||||
api_specification_path: api-specifications/properties.json
|
||||
17
.github/workflows/semantic.yml
vendored
Normal file
17
.github/workflows/semantic.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
name: "Semantic PR"
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types:
|
||||
- opened
|
||||
- edited
|
||||
- synchronize
|
||||
|
||||
jobs:
|
||||
main:
|
||||
name: Validate PR title
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: amannn/action-semantic-pull-request@v4
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -3,15 +3,18 @@
|
||||
"info": {
|
||||
"name": "@nebula.js/sn-network-chart:properties",
|
||||
"description": "Network chart generic object definition",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.4",
|
||||
"license": "MIT",
|
||||
"stability": "experimental",
|
||||
"stability": "stable",
|
||||
"x-qlik-visibility": "public"
|
||||
},
|
||||
"entries": {
|
||||
"properties": {
|
||||
"kind": "function",
|
||||
"params": [],
|
||||
"extends": [
|
||||
{
|
||||
"type": "GenericObjectProperties"
|
||||
}
|
||||
],
|
||||
"entries": {
|
||||
"version": {
|
||||
"description": "Current version of this generic object definition",
|
||||
@@ -21,7 +24,7 @@
|
||||
"description": "Extends `HyperCubeDef`, see Engine API: `HyperCubeDef`.",
|
||||
"extends": [
|
||||
{
|
||||
"type": "HyperCubeDef"
|
||||
"type": "EngineAPI.HyperCubeDef"
|
||||
}
|
||||
],
|
||||
"kind": "object"
|
||||
@@ -157,7 +160,8 @@
|
||||
"defaultValue": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"kind": "object"
|
||||
}
|
||||
},
|
||||
"definitions": {}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nebula.js/sn-network-chart",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.4",
|
||||
"description": "Displays hierarchical or relational dimensions as nodes and edges´, with measures to show the significance of its links.",
|
||||
"homepage": "",
|
||||
"repository": "https://github.com/qlik-oss/network-vis-chart",
|
||||
@@ -14,8 +14,7 @@
|
||||
"sense": "nebula sense --meta resources/meta.json && shx cp resources/network_chart_v1.png sn-network-chart-ext",
|
||||
"eslint": "eslint src",
|
||||
"spec": "sy from-jsdoc -c ./spec-configs/props.conf.js",
|
||||
"test:unit": "jest",
|
||||
"prepublishOnly": "shx rm -rf dist && shx rm -rf core/esm && shx rm -rf sn-network-chart-ext && yarn build && yarn sense"
|
||||
"test:unit": "jest"
|
||||
},
|
||||
"files": [
|
||||
"api-specifications",
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> **Warning** This repository is now archived and will not be updated
|
||||
|
||||
> This repository was originally published to foster collaboration and engagement with developers as they customized or developed visualizations, but due to customer feedback and usage data, it is now moved back to closed source. Moving this and other projects back to closed source will support better integration with internal build and test tooling, and free up resources for investment in these and other visualizations.
|
||||
|
||||
|
||||
# sn-network-chart
|
||||
|
||||
A network chart to be used with nebula.js, built using [visjs network visualization](https://github.com/visjs/vis-network) to display networks of nodes and edges.
|
||||
|
||||
@@ -1,27 +1,48 @@
|
||||
const path = require('path');
|
||||
const path = require("path");
|
||||
|
||||
const pkg = require(path.resolve(__dirname, '../package.json')); // eslint-disable-line
|
||||
const pkg = require(path.resolve(__dirname, "../package.json")); // eslint-disable-line
|
||||
|
||||
module.exports = {
|
||||
glob: ["./src/extension/properties.js"],
|
||||
package: path.resolve(__dirname, "../package.json"),
|
||||
api: {
|
||||
stability: "experimental",
|
||||
properties: {
|
||||
"x-qlik-visibility": "public",
|
||||
fromJsdoc: {
|
||||
glob: ["./src/extension/properties.js"],
|
||||
api: {
|
||||
stability: "stable",
|
||||
visibility: "public",
|
||||
properties: {
|
||||
"x-qlik-visibility": "public",
|
||||
},
|
||||
name: `${pkg.name}:properties`,
|
||||
version: pkg.version,
|
||||
description: "Network chart generic object definition",
|
||||
},
|
||||
output: {
|
||||
sort: {
|
||||
alpha: false,
|
||||
},
|
||||
file: "./api-specifications/properties.json",
|
||||
},
|
||||
parse: {
|
||||
types: {
|
||||
GenericObjectProperties: {
|
||||
url: "https://qlik.dev/apis/json-rpc/qix/schemas#%23%2Fdefinitions%2Fschemas%2Fentries%2FGenericObjectProperties",
|
||||
},
|
||||
undefined: {},
|
||||
"EngineAPI.ValueExpression": {
|
||||
url: "https://qlik.dev/apis/json-rpc/qix/schemas#%23%2Fdefinitions%2Fschemas%2Fentries%2FValueExpression",
|
||||
},
|
||||
"EngineAPI.HyperCubeDef": {
|
||||
url: "https://qlik.dev/apis/json-rpc/qix/schemas#%23%2Fdefinitions%2Fschemas%2Fentries%2FListObjectDef",
|
||||
},
|
||||
},
|
||||
},
|
||||
visibility: "public",
|
||||
name: `${pkg.name}:properties`,
|
||||
version: pkg.version,
|
||||
description: "Network chart generic object definition",
|
||||
},
|
||||
output: {
|
||||
file: path.resolve(__dirname, "../api-specifications/properties.json"),
|
||||
},
|
||||
parse: {
|
||||
types: {
|
||||
NxMeasure: {},
|
||||
HyperCubeDef: {},
|
||||
toDts: {
|
||||
spec: "./api-specifications/properties.json",
|
||||
output: {
|
||||
file: "./types/index.d.ts",
|
||||
},
|
||||
dependencies: {
|
||||
references: ["qlik-engineapi"],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/**
|
||||
* @typedef {object}
|
||||
* @type {object}
|
||||
* @extends {GenericObjectProperties}
|
||||
* @entry
|
||||
*/
|
||||
const properties = {
|
||||
@@ -10,7 +11,7 @@ const properties = {
|
||||
version: process.env.PACKAGE_VERSION,
|
||||
/**
|
||||
* Extends `HyperCubeDef`, see Engine API: `HyperCubeDef`.
|
||||
* @extends {HyperCubeDef}
|
||||
* @extends {EngineAPI.HyperCubeDef}
|
||||
*/
|
||||
qHyperCubeDef: {
|
||||
qDimensions: [],
|
||||
|
||||
Reference in New Issue
Block a user