Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

balena-settings-client

Package Overview
Dependencies
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

balena-settings-client - npm Package Compare versions

Comparing version 4.0.4 to 4.0.5-update-dev-deps-612a48ec4bc90d79480f187697c9cae1dc8299cc

5

CHANGELOG.md

@@ -7,2 +7,7 @@ # Change Log

# v4.0.5
## (2020-04-21)
* Update dev dependencies [Pagan Gazzard]
## 4.0.4 - 2020-03-02

@@ -9,0 +14,0 @@

46

package.json
{
"name": "balena-settings-client",
"version": "4.0.4",
"version": "4.0.5-update-dev-deps-612a48ec4bc90d79480f187697c9cae1dc8299cc",
"description": "Balena client application shared settings",

@@ -23,3 +23,3 @@ "main": "build/settings.js",

"test:e2e": "ts-node tests/e2e/test.ts",
"lint": "resin-lint --typescript lib/ && tsc --noEmit",
"lint": "balena-lint --typescript lib tests && tsc --noEmit",
"test": "npm run build && npm run lint && npm run test:unit && npm run test:e2e",

@@ -30,3 +30,3 @@ "build": "rimraf ./build && npm run prettify && tsc && npm run readme",

"prepare": "npm run build",
"prettify": "prettier --config ./node_modules/resin-lint/config/.prettierrc --write \"lib/**/*.ts\" \"tests/**/*.ts\"",
"prettify": "balena-lint --typescript --fix lib tests",
"readme": "jsdoc2md --template doc/README.hbs build/settings.js > README.md"

@@ -37,22 +37,22 @@ },

"devDependencies": {
"@resin.io/types-mochainon": "2.0.1",
"@balena/lint": "^5.0.4",
"@resin.io/types-wary": "1.1.1",
"@types/bluebird": "3.5.20",
"@types/common-tags": "1.4.0",
"@types/mocha": "2.2.48",
"@types/node": "^8.10.10",
"bluebird": "^3.5.0",
"common-tags": "^1.4.0",
"husky": "^3.0.5",
"@types/bluebird": "^3.5.30",
"@types/chai": "^4.2.11",
"@types/chai-as-promised": "^7.1.2",
"@types/common-tags": "^1.8.0",
"@types/mocha": "^5.2.7",
"@types/node": "^8.10.60",
"bluebird": "^3.7.2",
"chai": "^4.2.0",
"chai-as-promised": "^7.1.1",
"common-tags": "^1.8.0",
"husky": "^4.2.5",
"jsdoc-to-markdown": "^5.0.1",
"lint-staged": "^9.2.5",
"mocha": "^6.2.0",
"mochainon": "^2.0.0",
"prettier": "^1.5.3",
"lint-staged": "^10.1.6",
"mocha": "^6.2.3",
"require-npm4-to-publish": "^1.0.0",
"resin-lint": "^3.1.0",
"rimraf": "^2.6.1",
"ts-node": "^8.3.0",
"tslint": "^5.5.0",
"typescript": "^3.6.2",
"rimraf": "^3.0.2",
"ts-node": "^8.9.0",
"typescript": "^3.8.3",
"wary": "^1.1.0"

@@ -64,3 +64,3 @@ },

"@types/js-yaml": "3.11.1",
"@types/lodash": "^4.14.138",
"@types/lodash": "^4.14.150",
"hidepath": "^1.0.0",

@@ -79,7 +79,5 @@ "home-or-tmp": "^2.0.0",

"*.ts": [
"prettier --config ./node_modules/resin-lint/config/.prettierrc --write",
"resin-lint --typescript --no-prettier",
"git add"
"balena-lint --typescript --fix"
]
}
}

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

import * as m from 'mochainon';
import { expect } from 'chai';
import * as path from 'path';

@@ -10,5 +10,3 @@

it('should be an absolute path', () => {
m.chai
.expect(config.paths.user)
.to.equal(path.resolve(config.paths.user));
expect(config.paths.user).to.equal(path.resolve(config.paths.user));
});

@@ -19,5 +17,5 @@ });

it('should be an absolute path', () => {
m.chai
.expect(config.paths.project)
.to.equal(path.resolve(config.paths.project));
expect(config.paths.project).to.equal(
path.resolve(config.paths.project),
);
});

@@ -24,0 +22,0 @@ });

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

import * as m from 'mochainon';
import { expect } from 'chai';
import * as path from 'path';

@@ -8,4 +8,2 @@ import * as url from 'url';

// tslint:disable no-unused-expression
describe('Defaults:', () => {

@@ -15,3 +13,3 @@ describe('.balenaUrl', () => {

const setting = utils.evaluateSetting<string>(defaults, 'balenaUrl');
m.chai.expect(() => url.parse(setting)).to.not.throw(Error);
expect(() => url.parse(setting)).to.not.throw(Error);
});

@@ -21,3 +19,3 @@

const setting = utils.evaluateSetting<string>(defaults, 'balenaUrl');
m.chai.expect(url.parse(setting).protocol).to.not.exist;
expect(url.parse(setting).protocol).to.not.exist;
});

@@ -29,3 +27,3 @@ });

const setting = utils.evaluateSetting<string>(defaults, 'apiUrl');
m.chai.expect(() => url.parse(setting)).to.not.throw(Error);
expect(() => url.parse(setting)).to.not.throw(Error);
});

@@ -35,3 +33,3 @@

const setting = utils.evaluateSetting<string>(defaults, 'apiUrl');
m.chai.expect(url.parse(setting).protocol).to.equal('https:');
expect(url.parse(setting).protocol).to.equal('https:');
});

@@ -43,3 +41,3 @@ });

const setting = utils.evaluateSetting<string>(defaults, 'vpnUrl');
m.chai.expect(() => url.parse(setting)).to.not.throw(Error);
expect(() => url.parse(setting)).to.not.throw(Error);
});

@@ -49,3 +47,3 @@

const setting = utils.evaluateSetting<string>(defaults, 'vpnUrl');
m.chai.expect(url.parse(setting).protocol).to.not.exist;
expect(url.parse(setting).protocol).to.not.exist;
});

@@ -57,3 +55,3 @@ });

const setting = utils.evaluateSetting<string>(defaults, 'registryUrl');
m.chai.expect(() => url.parse(setting)).to.not.throw(Error);
expect(() => url.parse(setting)).to.not.throw(Error);
});

@@ -63,3 +61,3 @@

const setting = utils.evaluateSetting<string>(defaults, 'registryUrl');
m.chai.expect(url.parse(setting).protocol).to.not.exist;
expect(url.parse(setting).protocol).to.not.exist;
});

@@ -71,3 +69,3 @@ });

const setting = utils.evaluateSetting<string>(defaults, 'registry2Url');
m.chai.expect(() => url.parse(setting)).to.not.throw(Error);
expect(() => url.parse(setting)).to.not.throw(Error);
});

@@ -77,3 +75,3 @@

const setting = utils.evaluateSetting<string>(defaults, 'registry2Url');
m.chai.expect(url.parse(setting).protocol).to.not.exist;
expect(url.parse(setting).protocol).to.not.exist;
});

@@ -85,3 +83,3 @@ });

const setting = utils.evaluateSetting<string>(defaults, 'imageMakerUrl');
m.chai.expect(() => url.parse(setting)).to.not.throw(Error);
expect(() => url.parse(setting)).to.not.throw(Error);
});

@@ -91,3 +89,3 @@

const setting = utils.evaluateSetting<string>(defaults, 'imageMakerUrl');
m.chai.expect(url.parse(setting).protocol).to.equal('https:');
expect(url.parse(setting).protocol).to.equal('https:');
});

@@ -99,3 +97,3 @@ });

const setting = utils.evaluateSetting<string>(defaults, 'deltaUrl');
m.chai.expect(() => url.parse(setting)).to.not.throw(Error);
expect(() => url.parse(setting)).to.not.throw(Error);
});

@@ -105,3 +103,3 @@

const setting = utils.evaluateSetting<string>(defaults, 'deltaUrl');
m.chai.expect(url.parse(setting).protocol).to.equal('https:');
expect(url.parse(setting).protocol).to.equal('https:');
});

@@ -113,3 +111,3 @@ });

const setting = utils.evaluateSetting<string>(defaults, 'dashboardUrl');
m.chai.expect(() => url.parse(setting)).to.not.throw(Error);
expect(() => url.parse(setting)).to.not.throw(Error);
});

@@ -119,3 +117,3 @@

const setting = utils.evaluateSetting<string>(defaults, 'dashboardUrl');
m.chai.expect(url.parse(setting).protocol).to.equal('https:');
expect(url.parse(setting).protocol).to.equal('https:');
});

@@ -127,3 +125,3 @@ });

const setting = utils.evaluateSetting<string>(defaults, 'proxyUrl');
m.chai.expect(() => url.parse(setting)).to.not.throw(Error);
expect(() => url.parse(setting)).to.not.throw(Error);
});

@@ -133,3 +131,3 @@

const setting = utils.evaluateSetting<string>(defaults, 'proxyUrl');
m.chai.expect(url.parse(setting).protocol).to.not.exist;
expect(url.parse(setting).protocol).to.not.exist;
});

@@ -141,3 +139,3 @@ });

const setting = utils.evaluateSetting<string>(defaults, 'dataDirectory');
m.chai.expect(setting).to.be.equal(path.resolve(setting));
expect(setting).to.be.equal(path.resolve(setting));
}));

@@ -151,3 +149,3 @@

);
m.chai.expect(setting).to.be.equal(path.resolve(setting));
expect(setting).to.be.equal(path.resolve(setting));
}));

@@ -158,3 +156,3 @@

const setting = utils.evaluateSetting<string>(defaults, 'cacheDirectory');
m.chai.expect(setting).to.be.equal(path.resolve(setting));
expect(setting).to.be.equal(path.resolve(setting));
}));

@@ -165,3 +163,3 @@

const setting = utils.evaluateSetting<number>(defaults, 'imageCacheTime');
m.chai.expect(setting).to.be.a('number');
expect(setting).to.be.a('number');
});

@@ -171,3 +169,3 @@

const setting = utils.evaluateSetting<number>(defaults, 'imageCacheTime');
m.chai.expect(setting).to.be.greaterThan(0);
expect(setting).to.be.greaterThan(0);
});

@@ -182,3 +180,3 @@ });

);
m.chai.expect(setting).to.be.a('number');
expect(setting).to.be.a('number');
});

@@ -191,3 +189,3 @@

);
m.chai.expect(setting).to.be.greaterThan(0);
expect(setting).to.be.greaterThan(0);
});

@@ -200,3 +198,3 @@

);
m.chai.expect(setting % 1).to.equal(0);
expect(setting % 1).to.equal(0);
});

@@ -208,3 +206,3 @@ });

const setting = utils.evaluateSetting<string>(defaults, 'apiKeyVariable');
m.chai.expect(setting).to.be.a('string');
expect(setting).to.be.a('string');
});

@@ -214,5 +212,5 @@

const setting = utils.evaluateSetting<string>(defaults, 'apiKeyVariable');
m.chai.expect(setting.trim().length).to.not.equal(0);
expect(setting.trim().length).to.not.equal(0);
});
});
});

@@ -6,6 +6,9 @@ import * as Promise from 'bluebird';

import * as _ from 'lodash';
import * as m from 'mochainon';
import { expect, use } from 'chai';
import * as path from 'path';
import * as wary from 'wary';
import * as chaiAsPromised from 'chai-as-promised';
use(chaiAsPromised);
import config = require('../../lib/config');

@@ -57,12 +60,10 @@

proxyUrl: getSetting('proxyUrl'),
}).then(settings => {
m.chai.expect(settings.balenaUrl).to.equal('resin.io');
m.chai.expect(settings.apiUrl).to.equal('https://api.resin.io');
m.chai
.expect(settings.dashboardUrl)
.to.equal('https://dashboard.resin.io');
m.chai.expect(settings.vpnUrl).to.equal('vpn.resin.io');
m.chai.expect(settings.registryUrl).to.equal('registry.resin.io');
m.chai.expect(settings.registry2Url).to.equal('registry2.resin.io');
m.chai.expect(settings.proxyUrl).to.equal('resindevice.io');
}).then((settings) => {
expect(settings.balenaUrl).to.equal('resin.io');
expect(settings.apiUrl).to.equal('https://api.resin.io');
expect(settings.dashboardUrl).to.equal('https://dashboard.resin.io');
expect(settings.vpnUrl).to.equal('vpn.resin.io');
expect(settings.registryUrl).to.equal('registry.resin.io');
expect(settings.registry2Url).to.equal('registry2.resin.io');
expect(settings.proxyUrl).to.equal('resindevice.io');
});

@@ -90,16 +91,12 @@ },

proxyUrl: getSetting('proxyUrl'),
}).then(settings => {
m.chai.expect(settings.balenaUrl).to.equal('balena-staging.com');
m.chai.expect(settings.apiUrl).to.equal('https://api.balena-staging.com');
m.chai
.expect(settings.dashboardUrl)
.to.equal('https://dashboard.balena-staging.com');
m.chai.expect(settings.vpnUrl).to.equal('vpn.balena-staging.com');
m.chai
.expect(settings.registryUrl)
.to.equal('registry.balena-staging.com');
m.chai
.expect(settings.registry2Url)
.to.equal('registry2.balena-staging.com');
m.chai.expect(settings.proxyUrl).to.equal('balena-staging-devices.com');
}).then((settings) => {
expect(settings.balenaUrl).to.equal('balena-staging.com');
expect(settings.apiUrl).to.equal('https://api.balena-staging.com');
expect(settings.dashboardUrl).to.equal(
'https://dashboard.balena-staging.com',
);
expect(settings.vpnUrl).to.equal('vpn.balena-staging.com');
expect(settings.registryUrl).to.equal('registry.balena-staging.com');
expect(settings.registry2Url).to.equal('registry2.balena-staging.com');
expect(settings.proxyUrl).to.equal('balena-staging-devices.com');
});

@@ -130,14 +127,12 @@ },

proxyUrl: getSetting('proxyUrl'),
}).then(settings => {
m.chai.expect(settings.balenaUrl).to.equal('balena.custom.com/');
m.chai.expect(settings.apiUrl).to.equal('https://api.balena.custom.com/');
m.chai
.expect(settings.dashboardUrl)
.to.equal('https://dashboard.balena.custom.com/');
m.chai.expect(settings.vpnUrl).to.equal('vpn.balena.custom.com/');
m.chai.expect(settings.registryUrl).to.equal('registry.balena.custom.com/');
m.chai
.expect(settings.registry2Url)
.to.equal('registry2.balena.custom.com/');
m.chai.expect(settings.proxyUrl).to.equal('devices.balena.custom.com/');
}).then((settings) => {
expect(settings.balenaUrl).to.equal('balena.custom.com/');
expect(settings.apiUrl).to.equal('https://api.balena.custom.com/');
expect(settings.dashboardUrl).to.equal(
'https://dashboard.balena.custom.com/',
);
expect(settings.vpnUrl).to.equal('vpn.balena.custom.com/');
expect(settings.registryUrl).to.equal('registry.balena.custom.com/');
expect(settings.registry2Url).to.equal('registry2.balena.custom.com/');
expect(settings.proxyUrl).to.equal('devices.balena.custom.com/');
});

@@ -164,5 +159,5 @@ });

return m.chai
.expect(getSetting('balenaUrl'))
.to.eventually.equal('balenadev.custom.com/');
return expect(getSetting('balenaUrl')).to.eventually.equal(
'balenadev.custom.com/',
);
},

@@ -175,3 +170,3 @@ );

return m.chai.expect(getAll()).to.eventually.deep.equal({
return expect(getAll()).to.eventually.deep.equal({
balenaUrl: 'balenadev.custom.com/',

@@ -204,5 +199,3 @@ apiUrl: 'https://api.balenadev.custom.com/',

return m.chai
.expect(getAll())
.to.be.rejectedWith('Error parsing config file');
return expect(getAll()).to.be.rejectedWith('Error parsing config file');
});

@@ -212,3 +205,3 @@

.run()
.catch(error => {
.catch((error) => {
console.error(`ERROR: ${error.message}`, error.stack);

@@ -215,0 +208,0 @@ process.exit(1);

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

import * as m from 'mochainon';
import { expect } from 'chai';
import * as environment from '../lib/environment';

@@ -7,19 +7,19 @@

it('should throw an error if no variable', () =>
m.chai
.expect(() => environment.getSettingName())
.to.throw('Missing variable name'));
expect(() => environment.getSettingName()).to.throw(
'Missing variable name',
));
it('should throw an error if variable is an empty string', () =>
m.chai
.expect(() => environment.getSettingName(''))
.to.throw('Missing variable name'));
expect(() => environment.getSettingName('')).to.throw(
'Missing variable name',
));
it('should throw an error if variable is a string containing only spaces', () =>
m.chai
.expect(() => environment.getSettingName(' '))
.to.throw('Missing variable name'));
expect(() => environment.getSettingName(' ')).to.throw(
'Missing variable name',
));
it('should return the correct setting for a single word variable', () => {
const setting = environment.getSettingName('BALENARC_HELLO');
m.chai.expect(setting).to.equal('hello');
expect(setting).to.equal('hello');
});

@@ -29,3 +29,3 @@

const setting = environment.getSettingName('BALENARC_HELLO_WORLD');
m.chai.expect(setting).to.equal('helloWorld');
expect(setting).to.equal('helloWorld');
});

@@ -35,3 +35,3 @@

const setting = environment.getSettingName('BALENARC_HELLO_WORLD_FOO');
m.chai.expect(setting).to.equal('helloWorldFoo');
expect(setting).to.equal('helloWorldFoo');
});

@@ -41,3 +41,3 @@

const setting = environment.getSettingName('balenarc_hello_world_foo');
m.chai.expect(setting).to.equal('helloWorldFoo');
expect(setting).to.equal('helloWorldFoo');
});

@@ -47,3 +47,3 @@

const setting = environment.getSettingName('RESINRC_HELLO');
m.chai.expect(setting).to.equal('hello');
expect(setting).to.equal('hello');
});

@@ -53,3 +53,3 @@

const setting = environment.getSettingName('RESINRC_RESIN_URL');
m.chai.expect(setting).to.equal('balenaUrl');
expect(setting).to.equal('balenaUrl');
});

@@ -60,36 +60,24 @@ });

it('should return true if it starts with BALENARC_', () =>
m.chai
.expect(environment.isSettingVariable('BALENARC_HELLO'))
.to.equal(true));
expect(environment.isSettingVariable('BALENARC_HELLO')).to.equal(true));
it('should return true if it starts with RESINRC_', () =>
m.chai
.expect(environment.isSettingVariable('RESINRC_HELLO'))
.to.equal(true));
expect(environment.isSettingVariable('RESINRC_HELLO')).to.equal(true));
it('should return true if it starts with balenarc_', () =>
m.chai
.expect(environment.isSettingVariable('balenarc_hello'))
.to.equal(true));
expect(environment.isSettingVariable('balenarc_hello')).to.equal(true));
it('should return false if it starts with BALENA_', () =>
m.chai
.expect(environment.isSettingVariable('BALENA_HELLO'))
.to.equal(false));
expect(environment.isSettingVariable('BALENA_HELLO')).to.equal(false));
it('should return false if it equals BALENARC_', () =>
m.chai
.expect(environment.isSettingVariable('BALENARC_'))
.to.equal(false));
expect(environment.isSettingVariable('BALENARC_')).to.equal(false));
it('should return false if it equals BALENARC', () =>
m.chai.expect(environment.isSettingVariable('BALENARC')).to.equal(false));
expect(environment.isSettingVariable('BALENARC')).to.equal(false));
it('should return false if it equals BALENA', () =>
m.chai.expect(environment.isSettingVariable('BALENA')).to.equal(false));
expect(environment.isSettingVariable('BALENA')).to.equal(false));
it('should return false if it starts with BALENARC but dont contain an underscore', () =>
m.chai
.expect(environment.isSettingVariable('BALENARCHELLO'))
.to.equal(false));
expect(environment.isSettingVariable('BALENARCHELLO')).to.equal(false));
});

@@ -101,3 +89,3 @@

const result = environment.parse({});
m.chai.expect(result).to.deep.equal({});
expect(result).to.deep.equal({});
});

@@ -110,3 +98,3 @@

m.chai.expect(result).to.deep.equal({
expect(result).to.deep.equal({
helloWorld: 'foo',

@@ -121,3 +109,3 @@ });

m.chai.expect(result).to.deep.equal({
expect(result).to.deep.equal({
helloWorld: 'foo',

@@ -133,3 +121,3 @@ });

m.chai.expect(result).to.deep.equal({
expect(result).to.deep.equal({
helloWorld: 'foo',

@@ -149,3 +137,3 @@ bar: 'baz',

m.chai.expect(result).to.deep.equal({});
expect(result).to.deep.equal({});
});

@@ -160,3 +148,3 @@

m.chai.expect(result).to.deep.equal({
expect(result).to.deep.equal({
hello: 'world',

@@ -163,0 +151,0 @@ });

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

import * as m from 'mochainon';
import { expect } from 'chai';
import * as utils from '../lib/utils';

@@ -20,3 +20,3 @@

const result = utils.mergeObjects(first, second, third);
m.chai.expect(result).to.deep.equal({
expect(result).to.deep.equal({
hello: 'world',

@@ -47,3 +47,3 @@ foo: 'baz',

const result = utils.mergeObjects(first, second, third);
m.chai.expect(result.foo()).to.equal('third');
expect(result.foo()).to.equal('third');
});

@@ -54,10 +54,10 @@ });

it('should throw an error if the setting is not found', () =>
m.chai
.expect(() => utils.evaluateSetting({}, 'foo'))
.to.throw('Setting not found: foo'));
expect(() => utils.evaluateSetting({}, 'foo')).to.throw(
'Setting not found: foo',
));
it('should throw an error if the settings object is not defined', () =>
m.chai
.expect(() => utils.evaluateSetting(null, 'foo'))
.to.throw('Setting not found: foo'));
expect(() => utils.evaluateSetting(null, 'foo')).to.throw(
'Setting not found: foo',
));

@@ -67,3 +67,3 @@ it('should return the setting if it is a string', () => {

m.chai.expect(setting).to.equal('bar');
expect(setting).to.equal('bar');
});

@@ -74,3 +74,3 @@

m.chai.expect(setting).to.equal(3);
expect(setting).to.equal(3);
});

@@ -81,3 +81,3 @@

m.chai.expect(setting).to.deep.equal([1, 2, 3]);
expect(setting).to.deep.equal([1, 2, 3]);
});

@@ -91,3 +91,3 @@

m.chai.expect(setting).to.equal('qux');
expect(setting).to.equal('qux');
});

@@ -105,3 +105,3 @@

m.chai.expect(setting).to.equal('bar');
expect(setting).to.equal('bar');
});

@@ -120,5 +120,5 @@

m.chai.expect(setting).to.equal('Hola from balena!');
expect(setting).to.equal('Hola from balena!');
});
});
});

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

import { expect } from 'chai';
import { stripIndent } from 'common-tags';
import * as m from 'mochainon';

@@ -9,5 +9,5 @@ import * as yaml from '../lib/yaml';

it('should throw an error if invalid input', () =>
m.chai
.expect(() => yaml.parse('hello;world\n- foo'))
.to.throw('Invalid YAML: hello;world\n- foo'));
expect(() => yaml.parse('hello;world\n- foo')).to.throw(
'Invalid YAML: hello;world\n- foo',
));

@@ -20,3 +20,3 @@ it('should be able to parse strings', () => {

m.chai.expect(result).to.deep.equal({
expect(result).to.deep.equal({
hello: 'world',

@@ -32,3 +32,3 @@ foo: 'bar',

m.chai.expect(result).to.deep.equal({
expect(result).to.deep.equal({
phone: 12345,

@@ -46,3 +46,3 @@ });

m.chai.expect(result).to.deep.equal({
expect(result).to.deep.equal({
list: ['foo', 'bar', 'baz'],

@@ -49,0 +49,0 @@ });

{
"extends": "tslint:recommended",
"rules": {
"indent": [ true, "tabs" ],
"jsdoc-format": true,
"whitespace": [
false,
"check-type"
],
"object-literal-sort-keys": false,
"only-arrow-functions": [false],
"quotemark": [true, "single", "avoid-escape"],
"no-var-requires": true,
"arrow-parens": false,
"max-classes-per-file": [false],
"no-console": [false],
"no-string-literal": false,
"interface-name": [false],
"variable-name": [
true,
"ban-keywords",
"check-format",
"allow-leading-underscore",
"allow-pascal-case"
],
"trailing-comma": [false]
}
"extends": "./node_modules/@balena/lint/config/tslint-prettier.json"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc