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

@oddnetworks/oddworks

Package Overview
Dependencies
Maintainers
2
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@oddnetworks/oddworks - npm Package Compare versions

Comparing version 4.7.2 to 4.8.0

151

lib/stores/dynamodb/index.js

@@ -7,3 +7,5 @@ 'use strict';

const dynamodbMarshaler = require('dynamodb-marshaler');
// Namespace for helpers (see below).
const DynamoDB = {};
const hasOwn = Object.prototype.hasOwnProperty;

@@ -45,3 +47,3 @@ // bus - Oddcast Bus Object

return dynamodb
.putItemAsync({TableName: object.type, Item: dynamodbMarshaler.marshalItem(object)})
.putItemAsync({TableName: object.type, Item: DynamoDB.serializeItem(object)})
.then(_.constant(object));

@@ -52,3 +54,3 @@ };

return new Promise((resolve, reject) => {
dynamodb.putItem({TableName: object.type, Item: dynamodbMarshaler.marshalItem(object)}, err => {
dynamodb.putItem({TableName: object.type, Item: DynamoDB.serializeItem(object)}, err => {
if (err) {

@@ -74,5 +76,5 @@ return reject(err);

return dynamodb
.getItemAsync({TableName: object.type, Key: dynamodbMarshaler.marshalItem(key)})
.getItemAsync({TableName: object.type, Key: DynamoDB.serializeKey(key)})
.then(res => {
return (res && res.Item) ? dynamodbMarshaler.unmarshalItem(res.Item) : null;
return (res && res.Item) ? DynamoDB.deserializeItem(res.Item) : null;
});

@@ -84,7 +86,7 @@ };

const key = (object.channel) ? {id: object.id, channel: object.channel} : {id: object.id};
dynamodb.getItem({TableName: object.type, Key: dynamodbMarshaler.marshalItem(key)}, (err, res) => {
dynamodb.getItem({TableName: object.type, Key: DynamoDB.serializeKey(key)}, (err, res) => {
if (err) {
return reject(err);
}
resolve(res && res.Item ? dynamodbMarshaler.unmarshalItem(res.Item) : null);
resolve(res && res.Item ? DynamoDB.deserializeItem(res.Item) : null);
});

@@ -106,3 +108,3 @@ });

return dynamodb
.deleteItemAsync({TableName: object.type, Key: dynamodbMarshaler.marshalItem(key)})
.deleteItemAsync({TableName: object.type, Key: DynamoDB.serializeKey(key)})
.then(res => {

@@ -116,3 +118,3 @@ return Boolean(res);

const key = (object.channel) ? {id: object.id, channel: object.channel} : {id: object.id};
dynamodb.deleteItem({TableName: object.type, Key: dynamodbMarshaler.marshalItem(key)}, (err, res) => {
dynamodb.deleteItem({TableName: object.type, Key: DynamoDB.serializeKey(key)}, (err, res) => {
if (err) {

@@ -166,3 +168,3 @@ return reject(err);

}
resolve(res.Items.map(dynamodbMarshaler.unmarshalItem));
resolve(res.Items.map(DynamoDB.deserializeItem));
});

@@ -184,3 +186,3 @@ });

}
resolve(res.Items.map(dynamodbMarshaler.unmarshalItem));
resolve(res.Items.map(DynamoDB.deserializeItem));
});

@@ -250,3 +252,3 @@ });

const relationships = entity.relationships || Object.create(null);
const relationships = entity.relationships || {};

@@ -469,1 +471,126 @@ const commands = _

};
function serializeItem(attrs) {
return Object.keys(attrs).reduce((rec, key) => {
const val = DynamoDB.typeCast(attrs[key]);
if (val) {
rec[key] = val;
}
return rec;
}, {});
}
DynamoDB.serializeItem = serializeItem;
function deserializeItem(obj) {
return Object.keys(obj).reduce((rv, key) => {
rv[key] = DynamoDB.deserializeAttribute(obj[key]);
return rv;
}, {});
}
DynamoDB.deserializeItem = deserializeItem;
function deserializeAttribute(val) {
if (hasOwn.call(val, 'S')) {
return val.S.toString();
} else if (hasOwn.call(val, 'N')) {
return parseFloat(val.N);
} else if (val.SS || val.NS) {
return val.SS || val.NS;
} else if (hasOwn.call(val, 'BOOL')) {
return Boolean(val.BOOL);
} else if (hasOwn.call(val, 'M')) {
return DynamoDB.deserializeItem(val.M);
} else if (hasOwn.call(val, 'L')) {
return val.L.map(DynamoDB.deserializeAttribute);
} else if (hasOwn.call(val, 'NULL')) {
return null;
}
}
DynamoDB.deserializeAttribute = deserializeAttribute;
function typeCast(obj) {
switch (typeof obj) {
case 'string':
if (obj.length === 0) {
return null;
}
return {S: obj};
case 'number':
if (isNaN(obj)) {
return null;
}
return {N: obj.toString()};
case 'boolean':
return {BOOL: obj};
case 'function':
case 'undefined':
return null;
default:
if (!obj) {
return {NULL: true};
}
return Array.isArray(obj) ? DynamoDB.typeCastArray(obj) : DynamoDB.typeCastObject(obj);
}
}
DynamoDB.typeCast = typeCast;
function typeCastArray(obj) {
return {L: obj.map(DynamoDB.typeCast).filter(item => {
return Boolean(item);
})};
}
DynamoDB.typeCastArray = typeCastArray;
function typeCastObject(obj) {
const keys = Object.keys(obj);
const rv = {M: {}};
if (keys.length === 0) {
return rv;
}
rv.M = keys.reduce((M, key) => {
const val = DynamoDB.typeCast(obj[key]);
if (val) {
M[key] = val;
}
return M;
}, rv.M);
return rv;
}
DynamoDB.typeCastObject = typeCastObject;
function serializeKey(obj) {
return Object.keys(obj).reduce((keys, key) => {
keys[key] = DynamoDB.typeCastKey(obj[key]);
return keys;
}, {});
}
DynamoDB.serializeKey = serializeKey;
function typeCastKey(obj) {
const type = typeof obj;
switch (type) {
case 'string':
return {S: obj};
case 'number':
return {N: obj.toString()};
case 'boolean':
return {BOOL: obj};
default:
throw new TypeError(
`Only String, Number or Boolean attributes (not ${type}) may be defined on keys in DynamoDB Engine.`
);
}
}
DynamoDB.typeCastKey = typeCastKey;

3

package.json
{
"name": "@oddnetworks/oddworks",
"version": "4.7.2",
"version": "4.8.0",
"description": "An extensible media platform for OTT devices.",

@@ -27,3 +27,2 @@ "main": "./lib/oddworks.js",

"debug": "~2.2.0",
"dynamodb-marshaler": "~2.0.0",
"express": "~4.14.0",

@@ -30,0 +29,0 @@ "header-parser": "~1.0.0",

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