Merged 1.3.x_branch into master

This commit is contained in:
2021-05-26 19:03:10 +00:00
17 changed files with 146 additions and 81 deletions

View File

@@ -1,4 +0,0 @@
{
"presets": ["@babel/preset-env"],
"plugins": ["@babel/plugin-proposal-class-properties", "@babel/transform-runtime"]
}

4
.eslintignore Normal file
View File

@@ -0,0 +1,4 @@
node_modules
.vscode
dist
backup

17
.eslintrc Normal file
View File

@@ -0,0 +1,17 @@
{
"env": {
"browser": true,
"node": true,
"jquery": true,
"jest/globals": true,
"es6": true
},
"parserOptions": {
"sourceType": "module",
"allowImportExportEverywhere": true
},
"extends": [
"eslint:recommended"
],
"parser": "babel-eslint"
}

View File

@@ -1,17 +0,0 @@
{
"env": {
"browser": true,
"es2021": true,
"jest/globals": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module"
},
"plugins": {
"jest"
},
"rules": {
}
}

8
.gitignore vendored
View File

@@ -1,4 +1,6 @@
package-lock.json
.idea/
node_modules/
coverage/
.vscode/
dist/
backup/
.idea/
/package-lock.json

4
.npmignore Normal file
View File

@@ -0,0 +1,4 @@
node_modules
.vscode
dist
backup

View File

@@ -1 +0,0 @@
.vimrc

View File

@@ -5,3 +5,4 @@
"singleQuote": true,
"jsxBracketSameLine": true
}

2
.vimrc
View File

@@ -1,2 +0,0 @@
set autoread
set path+=.,src/**

View File

@@ -55,7 +55,7 @@ also be set to a strong, random password.
## Example API Usage
```javascript
const rep = require('@blockstorage/repertory-js');
import * as rep from 'repertory-js';
// Repertory host settings

15
babel.config.js Normal file
View File

@@ -0,0 +1,15 @@
module.exports = function (api) {
api.cache(true);
return {
presets: [
'@babel/preset-env'
],
plugins: [
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-private-methods',
'@babel/plugin-transform-runtime',
'@babel/plugin-transform-regenerator',
'@babel/plugin-transform-async-to-generator'
]
};
};

View File

@@ -2,9 +2,12 @@
"name": "@blockstorage/repertory-js",
"version": "1.3.1-r1",
"description": "A Node.js module for interfacing with Repertory's remote mount API",
"scripts": {
"test": "jest",
"coverage": "jest --collect-coverage"
"author": "scott.e.graves@protonmail.com",
"license": "MIT",
"homepage": "https://bitbucket.org/blockstorage/repertory-js",
"repository": {
"type": "git",
"url": "https://bitbucket.org/blockstorage/repertory-js.git"
},
"keywords": [
"repertory",
@@ -20,47 +23,40 @@
"altcoin",
"cryptocurrency"
],
"author": "scott.e.graves@protonmail.com",
"homepage": "https://bitbucket.org/blockstorage/repertory-js",
"license": "MIT",
"main": "dist/mjs/repertory-js.mjs",
"module": "dist/mjs/repertory-js.mjs",
"files": [
"dist/mjs"
],
"scripts": {
"build": "rollup -c",
"test": "jest",
"prepublish": "rollup -c --silent"
},
"dependencies": {
"@babel/runtime": "^7.13.9",
"int64-buffer": "^1.0.0",
"js-sha256": "^0.9.0",
"socket-pool": "^1.2.3",
"text-encoding": "^0.7.0",
"uuid": "^8.3.2"
},
"devDependencies": {
"@babel/plugin-transform-runtime": "^7.13.9",
"@babel/preset-env": "^7.13.9",
"babel-plugin-transform-class-properties": "^6.24.1",
"eslint": "^7.22.0",
"eslint-plugin-jest": "^24.3.2",
"jest": "^26.6.3"
},
"type": "module",
"jest": {
"roots": [
"src"
],
"modulePaths": [
"src"
],
"moduleDirectories": [
"node_modules"
],
"testMatch": [
"**/__tests__/**/*.[jt]s?(x)",
"**/?(*.)+(spec|test).[jt]s?(x)"
],
"transform": {
"^.+\\.js?$": "babel-jest"
}
},
"main": "src/index.js",
"repository": {
"type": "git",
"url": "https://bitbucket.org/blockstorage/repertory-js.git"
"@babel/core": "^7.14.3",
"@babel/plugin-proposal-class-properties": "^7.13.0",
"@babel/plugin-proposal-private-methods": "^7.13.0",
"@babel/plugin-transform-async-to-generator": "^7.13.0",
"@babel/plugin-transform-regenerator": "^7.13.15",
"@babel/plugin-transform-runtime": "^7.14.3",
"@babel/preset-env": "^7.14.2",
"@rollup/plugin-babel": "^5.3.0",
"@rollup/plugin-commonjs": "^15.1.0",
"@rollup/plugin-json": "^4.0.0",
"@rollup/plugin-node-resolve": "^9.0.0",
"@types/jest": "^26.0.23",
"babel-eslint": "^10.1.0",
"jest": "^26.6.3",
"rollup": "^2.50.0",
"rollup-plugin-eslint": "^7.0.0",
"rollup-plugin-node-polyfills": "^0.2.1",
"rollup-plugin-terser": "^7.0.2"
}
}

52
rollup.config.js Normal file
View File

@@ -0,0 +1,52 @@
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import babel from "@rollup/plugin-babel";
import { terser } from "rollup-plugin-terser";
import json from '@rollup/plugin-json';
const commonConfig = {
input: 'src/index.js',
output: {
name: 'repertory-js',
sourcemap: true
},
plugins: [
resolve({
customResolveOptions: {
moduleDirectory: 'node_modules'
}
}),
babel({
exclude: 'node_modules/**',
babelHelpers: 'runtime'
}),
commonjs(),
json()
]
};
// ESM config
const esmConfig = Object.assign({}, commonConfig);
esmConfig.output = Object.assign({}, commonConfig.output, {
file: 'dist/mjs/repertory-js.mjs',
format: 'esm'
});
// ESM prod config
const esmProdConfig = Object.assign({}, esmConfig);
esmProdConfig.output = Object.assign({}, esmConfig.output, {
file: 'dist/mjs/repertory-js.min.mjs',
sourcemap: false
});
esmProdConfig.plugins = [
...esmConfig.plugins,
terser()
];
let configurations = [];
configurations.push(
esmConfig,
esmProdConfig
)
export default configurations;

View File

@@ -1,7 +1,6 @@
import connection from '../networking/connection';
import packet from '../networking/packet';
const Socket = require('net');
import Socket from 'net';
test(`connect fails when error occurs during createConnection`, async () => {
const mock_create = (port, host, cb) => {

View File

@@ -1,6 +1,5 @@
import { get_version, instance_id, package_json } from '../utils/constants';
const uuid = require('uuid');
import {get_version, instance_id, package_json} from '../utils/constants';
import * as uuid from 'uuid';
test(`can read 'package.json'`, () => {
console.log(package_json);

View File

@@ -1,7 +1,7 @@
import { randomBytes } from 'crypto';
import { Int64BE, Uint64BE } from 'int64-buffer';
import { sha256 } from 'js-sha256';
import { TextEncoder } from 'text-encoding';
import {Int64BE, Uint64BE} from 'int64-buffer';
import crypto from 'crypto';
import {TextEncoder} from 'text-encoding';
import {
be_ui8_array_to_i16,
@@ -158,10 +158,10 @@ export default class packet {
decrypt = async () => {
try {
const hash = sha256.create();
hash.update(new TextEncoder().encode(this.token));
let hash = crypto.createHash('sha256');
hash = hash.update(new TextEncoder().encode(this.token));
const key = Uint8Array.from(hash.array());
const key = Uint8Array.from(hash.digest());
const nonce = this.buffer.slice(0, 12);
this.buffer = new JSChaCha20(key, nonce, 0).decrypt(
@@ -270,10 +270,10 @@ export default class packet {
encrypt = async (nonce) => {
try {
this.push_buffer(packet.HEADER);
const hash = sha256.create();
hash.update(new TextEncoder().encode(this.token));
let hash = crypto.createHash('sha256');
hash = hash.update(new TextEncoder().encode(this.token));
const key = Uint8Array.from(hash.array());
const key = Uint8Array.from(hash.digest());
if (!nonce) {
nonce = Uint8Array.from(randomBytes(12));
}

View File

@@ -1,4 +1,4 @@
const { v4: uuidv4 } = require('uuid');
import {v4 as uuidv4} from 'uuid';
import _package_json from '../../package.json';
export const instance_id = uuidv4();