New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@begin/data

Package Overview
Dependencies
Maintainers
4
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@begin/data - npm Package Compare versions

Comparing version 4.0.2 to 5.0.0-RC.0

20

package.json
{
"name": "@begin/data",
"version": "4.0.2",
"version": "5.0.0-RC.0",
"description": "Begin Data is a durable and fast key/value document store built on top of DynamoDB",
"main": "src/index.js",
"scripts": {
"t": "tape test/integration-test.js | tap-spec",
"lint": "eslint --fix .",

@@ -27,2 +28,5 @@ "test": "npm run lint && tape test/*-test.js | tap-spec",

"dependencies": {
"@aws-lite/client": "^0.14.3",
"@aws-lite/dynamodb": "^0.3.3",
"@aws-lite/ssm": "^0.2.2",
"@begin/hashid": "^1.0.0",

@@ -33,12 +37,8 @@ "run-parallel": "^1.2.0",

"devDependencies": {
"@architect/eslint-config": "^2.0.1",
"@architect/sandbox": "^5.1.0-RC.0",
"@aws-sdk/client-dynamodb": "^3.216.0",
"@aws-sdk/client-ssm": "^3.216.0",
"@aws-sdk/lib-dynamodb": "^3.216.0",
"aws-sdk": "^2.1261.0",
"eslint": "^8.10.0",
"@architect/eslint-config": "^2.1.2",
"@architect/sandbox": "^6.0.0-RC.1",
"eslint": "^8.56.0",
"tap-spec": "^5.0.0",
"tape": "^5.5.2",
"tiny-json-http": "^7.3.1"
"tape": "^5.7.4",
"tiny-json-http": "^7.5.1"
},

@@ -45,0 +45,0 @@ "eslintConfig": {

@@ -5,5 +5,6 @@ /**

let waterfall = require('run-waterfall')
let util = require('util')
let getTableName = require('./helpers/_get-table-name')
let getKey = require('./helpers/_get-key')
let dynamo = require('./helpers/_dynamo').doc
let dynamo = require('./helpers/_dynamo')

@@ -40,3 +41,4 @@ /**

function counts (TableName, doc, callback) {
doc.query({
let query = util.callbackify(doc.Query)
query({
TableName,

@@ -43,0 +45,0 @@ Select: 'COUNT',

@@ -5,6 +5,7 @@ /**

*/
let util = require('util')
let waterfall = require('run-waterfall')
let getTableName = require('../helpers/_get-table-name')
let getKey = require('../helpers/_get-key')
let dynamo = require('../helpers/_dynamo').doc
let dynamo = require('../helpers/_dynamo')

@@ -37,3 +38,4 @@ /**

query.RequestItems[TableName] = batch
doc.batchWrite(query, callback)
let batchWrite = util.callbackify(doc.BatchWriteItem)
batchWrite(query, callback)
}

@@ -40,0 +42,0 @@ ],

@@ -5,6 +5,7 @@ /**

*/
let util = require('util')
let waterfall = require('run-waterfall')
let getTableName = require('../helpers/_get-table-name')
let getKey = require('../helpers/_get-key')
let dynamo = require('../helpers/_dynamo').doc
let dynamo = require('../helpers/_dynamo')

@@ -26,4 +27,5 @@ /**

function destroys (TableName, doc, callback) {
let del = util.callbackify(doc.DeleteItem)
let Key = getKey(params)
doc.delete({
del({
TableName,

@@ -30,0 +32,0 @@ Key,

@@ -5,2 +5,3 @@ /**

*/
let util = require('util')
let waterfall = require('run-waterfall')

@@ -10,3 +11,3 @@ let getTableName = require('../helpers/_get-table-name')

let unfmt = require('../helpers/_unfmt')
let dynamo = require('../helpers/_dynamo').doc
let dynamo = require('../helpers/_dynamo')

@@ -44,5 +45,6 @@ let badKey = i => !(i['table'] && i['key'])

function gets (table, doc, callback) {
let batchGet = util.callbackify(doc.BatchGetItem)
let query = { RequestItems: {} }
query.RequestItems[table] = { Keys: Keys.map(getKey) }
doc.batchGet(query, function gots (err, result) {
batchGet(query, function gots (err, result) {
if (err) callback(err)

@@ -49,0 +51,0 @@ else {

@@ -9,3 +9,4 @@ /**

let unfmt = require('../helpers/_unfmt')
let dynamo = require('../helpers/_dynamo').doc
let dynamo = require('../helpers/_dynamo')
let util = require('util')

@@ -36,4 +37,5 @@ /**

function gets (TableName, doc, callback) {
let getItem = util.callbackify(doc.GetItem)
let Key = getKey(params)
doc.get({
getItem({
TableName,

@@ -40,0 +42,0 @@ Key

@@ -9,3 +9,4 @@ /**

let unfmt = require('../helpers/_unfmt')
let dynamo = require('../helpers/_dynamo').doc
let dynamo = require('../helpers/_dynamo')
let util = require('util')

@@ -59,3 +60,4 @@ /**

}
doc.query(query, callback)
let runQuery = util.callbackify(doc.Query)
runQuery(query, callback)
},

@@ -68,4 +70,5 @@ ],

let returns = result.Items.map(unfmt).filter(exact)
if (result.LastEvaluatedKey)
if (result.LastEvaluatedKey) {
returns.cursor = Buffer.from(JSON.stringify(result.LastEvaluatedKey)).toString('base64')
}
callback(null, returns)

@@ -72,0 +75,0 @@ }

@@ -7,3 +7,4 @@ /**

let waterfall = require('run-waterfall')
let dynamo = require('./_dynamo').doc
let util = require('util')
let dynamo = require('./_dynamo')
let getTableName = require('./_get-table-name')

@@ -45,5 +46,6 @@ let getKey = require('./_get-key')

},
function update (TableName, doc, callback) {
function _update (TableName, doc, callback) {
// perform the atomic update and callback w the updated values
doc.update({
let update = util.callbackify(doc.UpdateItem)
update({
TableName,

@@ -50,0 +52,0 @@ Key: getKey({ table, key }),

@@ -7,4 +7,5 @@ /**

let getTableName = require('./_get-table-name')
let dynamo = require('./_dynamo').db
let dynamo = require('./_dynamo')
let Hashids = require('@begin/hashid')
let util = require('util')
let hash = new Hashids

@@ -23,16 +24,16 @@

function update (TableName, db, callback) {
db.updateItem({
let updateItem = util.callbackify(db.UpdateItem)
let query = {
TableName,
Key: {
'scopeID': { S: BEGIN_DATA_SCOPE_ID || ARC_APP_NAME },
'dataID': { S: `${table}-seq` }
'scopeID': BEGIN_DATA_SCOPE_ID || ARC_APP_NAME,
'dataID': `${table}-seq`
},
AttributeUpdates: {
idx: {
Action: 'ADD',
Value: { N: '1' }
}
UpdateExpression: `SET idx = if_not_exists(idx, :one) + :one`,
ExpressionAttributeValues: {
':one': 1
},
ReturnValues: 'UPDATED_NEW'
}, callback)
ReturnValues: 'ALL_NEW'
}
updateItem(query, callback)
}

@@ -44,3 +45,3 @@ ],

let epoc = Date.now() - 1544909702376 // hbd
let seed = Number(result.Attributes.idx.N)
let seed = Number(result.Attributes.idx)
let val = hash.encode([ epoc, seed ])

@@ -47,0 +48,0 @@ callback(null, val)

@@ -1,5 +0,6 @@

let https = require('https')
let getPorts = require('./_get-ports')
let isNode18 = require('./_is-node-18')
let db, doc
let util = require('util')
let awsLite = require('@aws-lite/client')
let aws = util.callbackify(awsLite)
let db = false

@@ -9,42 +10,20 @@ /**

*/
function getDynamo (type, callback) {
module.exports = function getDynamo (callback) {
let { ARC_ENV, AWS_REGION, ARC_LOCAL } = process.env
if (db && type === 'db') {
return callback(null, db)
}
if (db) return callback(null, db)
if (doc && type === 'doc') {
return callback(null, doc)
}
let DB, Doc
if (isNode18) {
let dynamo = require('@aws-sdk/client-dynamodb')
let docclient = require('@aws-sdk/lib-dynamodb')
DB = dynamo.DynamoDB
Doc = docclient.DynamoDBDocument
}
else {
let dynamo = require('aws-sdk/clients/dynamodb')
DB = dynamo
Doc = dynamo.DocumentClient
}
let local = ARC_ENV === 'testing' || ARC_LOCAL
if (!local) {
let config = {
agent: new https.Agent({
keepAlive: true,
maxSockets: 50, // Node can set to Infinity; AWS maxes at 50
rejectUnauthorized: true,
})
}
db = isNode18 ? new DB : new DB(config)
doc = isNode18 ? Doc.from(db) : new Doc(config)
return callback(null, type === 'db' ? db : doc)
aws(function gotClient (err, { ddb }) {
if (err) callback(err)
else {
db = ddb
callback(null, db)
}
})
}
else {
getPorts((err, ports) => {
getPorts(function gotPorts (err, ports) {
if (err) callback(err)

@@ -56,9 +35,15 @@ else {

}
let config = {
endpoint: `http://localhost:${port}`,
region: AWS_REGION || 'us-west-2' // Do not assume region is set!
}
db = new DB(config)
doc = isNode18 ? Doc.from(db) : new Doc(config)
return callback(null, type === 'db' ? db : doc)
aws({
protocol: 'http',
host: 'localhost',
port,
region: AWS_REGION || 'us-west-2'
},
function gotClient (err, client) {
if (err) callback(err)
else {
db = client.dynamodb
callback(null, db)
}
})
}

@@ -68,6 +53,1 @@ })

}
module.exports = {
db: getDynamo.bind({}, 'db'),
doc: getDynamo.bind({}, 'doc'),
}

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

let isNode18 = require('./_is-node-18')
let toLogicalID = require('./_to-logical-id')
let util = require('util')
let awsLite = require('@aws-lite/client')
let aws = util.callbackify(awsLite)
let configuredPorts

@@ -31,25 +33,33 @@

let Name = `/${toLogicalID(`${app}-${env}`)}/ARC_SANDBOX/ports`
let port = 2222
let config = {
endpoint: `http://localhost:${port}/_arc/ssm`,
protocol: 'http',
host: 'localhost',
port: 2222,
endpointPrefix: '_arc/ssm',
// endpoint: `http://localhost:${port}/_arc/ssm`,
region: AWS_REGION || 'us-west-2',
}
let SSM = isNode18 ? require('@aws-sdk/client-ssm').SSM : require('aws-sdk/clients/ssm')
let ssm = new SSM(config)
ssm.getParameter({ Name }, function done (err, result) {
aws(config, function gotClient (err, client) {
if (err) callback(err)
else {
if (!result.Parameter.Value) {
callback(ReferenceError('@begin/data requires Sandbox to be running'))
}
else {
try {
configuredPorts = JSON.parse(result.Parameter.Value)
callback(null, configuredPorts)
let { ssm } = client
let getParameter = util.callbackify(ssm.GetParameter)
getParameter({ Name }, function done (err, result) {
if (err) callback(err)
else {
if (!result.Parameter.Value) {
callback(ReferenceError('@begin/data requires Sandbox to be running'))
}
else {
try {
configuredPorts = JSON.parse(result.Parameter.Value)
callback(null, configuredPorts)
}
catch (err) {
callback(err)
}
}
}
catch (err) {
callback(err)
}
}
})
}

@@ -56,0 +66,0 @@ })

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

let isNode18 = require('./_is-node-18')
let util = require('util')
let awsLite = require('@aws-lite/client')
let aws = util.callbackify(awsLite)
let toLogicalID = require('./_to-logical-id')

@@ -32,3 +34,7 @@ let getPorts = require('./_get-ports')

else go({
endpoint: `http://localhost:${ports._arc}/_arc/ssm`,
protocol: 'http',
host: 'localhost',
port: ports._arc,
endpointPrefix: '_arc/ssm',
// endpoint: `http://localhost:${ports._arc}/_arc/ssm`,
region: AWS_REGION || 'us-west-2',

@@ -38,19 +44,27 @@ })

}
else go()
else {
go()
}
function go (config) {
let SSM = isNode18 ? require('@aws-sdk/client-ssm').SSM : require('aws-sdk/clients/ssm')
let ssm = new SSM(config)
ssm.getParameter({ Name }, function done (err, result) {
aws(config, function gotClient (err, client) {
if (err) callback(err)
else {
let table = result.Parameter
if (!table) {
callback(ReferenceError('@begin/data requires a table named data'))
}
else {
tablename = table.Value
callback(null, tablename)
}
let { ssm } = client
let getParameter = util.callbackify(ssm.GetParameter)
getParameter({ Name }, function done (err, result) {
// let ssm = new SSM(config)
// ssm.getParameter({ Name }, function done (err, result) {
if (err) callback(err)
else {
let table = result.Parameter
if (!table) {
callback(ReferenceError('@begin/data requires a table named data'))
}
else {
tablename = table.Value
callback(null, tablename)
}
}
})
}

@@ -57,0 +71,0 @@ })

@@ -13,3 +13,4 @@ /**

let fmt = require('../helpers/_fmt')
let dynamo = require('../helpers/_dynamo').doc
let dynamo = require('../helpers/_dynamo')
let util = require('util')

@@ -47,6 +48,7 @@ /**

validate.size(items)
let batchWrite = util.callbackify(doc.BatchWriteItem)
let batch = items.map(Item => ({ PutRequest: { Item } }))
let query = { RequestItems: {} }
query.RequestItems[TableName] = batch
doc.batchWrite(query, function done (err) {
batchWrite(query, function done (err) {
if (err) callback(err)

@@ -53,0 +55,0 @@ else {

@@ -11,3 +11,4 @@ /**

let fmt = require('../helpers/_fmt')
let dynamo = require('../helpers/_dynamo').doc
let dynamo = require('../helpers/_dynamo')
let util = require('util')

@@ -41,3 +42,4 @@ /**

validate.size(Item)
doc.put({
let put = util.callbackify(doc.PutItem)
put({
TableName,

@@ -44,0 +46,0 @@ Item

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