Comparing version 0.5.3 to 0.5.4
@@ -0,1 +1,5 @@ | ||
0.5.4 2016-08-23 | ||
----------------- | ||
- Added promoteValues flag (default to true) allowing user to specify if deserialization should be into wrapper classes only. | ||
0.5.3 2016-07-11 | ||
@@ -2,0 +6,0 @@ ----------------- |
@@ -6,14 +6,15 @@ "use strict" | ||
Map = require('./map'), | ||
Long = require('./long').Long, | ||
Double = require('./double').Double, | ||
Timestamp = require('./timestamp').Timestamp, | ||
ObjectID = require('./objectid').ObjectID, | ||
BSONRegExp = require('./regexp').BSONRegExp, | ||
Symbol = require('./symbol').Symbol, | ||
Code = require('./code').Code, | ||
Decimal128 = require('./decimal128').Decimal128, | ||
MinKey = require('./min_key').MinKey, | ||
MaxKey = require('./max_key').MaxKey, | ||
DBRef = require('./db_ref').DBRef, | ||
Binary = require('./binary').Binary; | ||
Long = require('./long'), | ||
Double = require('./double'), | ||
Timestamp = require('./timestamp'), | ||
ObjectID = require('./objectid'), | ||
BSONRegExp = require('./regexp'), | ||
Symbol = require('./symbol'), | ||
Int32 = require('./int_32'), | ||
Code = require('./code'), | ||
Decimal128 = require('./decimal128'), | ||
MinKey = require('./min_key'), | ||
MaxKey = require('./max_key'), | ||
DBRef = require('./db_ref'), | ||
Binary = require('./binary'); | ||
@@ -323,2 +324,3 @@ // Parts of the parser | ||
module.exports.Double = Double; | ||
module.exports.Int32 = Int32; | ||
module.exports.MinKey = MinKey; | ||
@@ -325,0 +327,0 @@ module.exports.MaxKey = MaxKey; |
@@ -10,3 +10,3 @@ /** | ||
if(!(this instanceof Double)) return new Double(value); | ||
this._bsontype = 'Double'; | ||
@@ -34,2 +34,2 @@ this.value = value; | ||
module.exports = Double; | ||
module.exports.Double = Double; | ||
module.exports.Double = Double; |
@@ -12,2 +12,3 @@ try { | ||
, './double' | ||
, './int_32' | ||
, './max_key' | ||
@@ -36,2 +37,3 @@ , './min_key' | ||
, './double' | ||
, './int_32' | ||
, './max_key' | ||
@@ -64,2 +66,3 @@ , './min_key' | ||
, './double' | ||
, './int_32' | ||
, './max_key' | ||
@@ -66,0 +69,0 @@ , './min_key' |
@@ -14,2 +14,3 @@ "use strict" | ||
Decimal128 = require('../decimal128'), | ||
Int32 = require('../int_32'), | ||
DBRef = require('../db_ref').DBRef, | ||
@@ -43,8 +44,16 @@ BSONRegExp = require('../regexp').BSONRegExp, | ||
var cacheFunctionsCrc32 = options['cacheFunctionsCrc32'] == null ? false : options['cacheFunctionsCrc32']; | ||
var promoteLongs = options['promoteLongs'] == null ? true : options['promoteLongs']; | ||
var fieldsAsRaw = options['fieldsAsRaw'] == null ? null : options['fieldsAsRaw']; | ||
// Return raw bson buffer instead of parsing it | ||
var raw = options['raw'] == null ? false : options['raw']; | ||
// Return BSONRegExp objects instead of native regular expressions | ||
// Return BSONRegExp objects instead of native regular expressions | ||
var bsonRegExp = typeof options['bsonRegExp'] == 'boolean' ? options['bsonRegExp'] : false; | ||
var promoteBuffers = options['promoteBuffers'] == null ? false : options['promoteBuffers']; | ||
// Controls the promotion of values vs wrapper classes | ||
var promoteBuffers = options['promoteBuffers'] == null ? false : options['promoteBuffers']; | ||
var promoteLongs = options['promoteLongs'] == null ? true : options['promoteLongs']; | ||
var promoteValues = options['promoteValues'] == null ? true : options['promoteValues']; | ||
// Set the start index | ||
var startIndex = index; | ||
@@ -98,4 +107,9 @@ | ||
index = index + 12; | ||
} else if(elementType == BSON.BSON_DATA_INT && promoteValues == false) { | ||
object[name] = new Int32(buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24); | ||
} else if(elementType == BSON.BSON_DATA_INT) { | ||
object[name] = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; | ||
} else if(elementType == BSON.BSON_DATA_NUMBER && promoteValues == false) { | ||
object[name] = new Double(buffer.readDoubleLE(index)); | ||
index = index + 8; | ||
} else if(elementType == BSON.BSON_DATA_NUMBER) { | ||
@@ -154,3 +168,3 @@ object[name] = buffer.readDoubleLE(index); | ||
// Promote the long if possible | ||
if(promoteLongs) { | ||
if(promoteLongs && promoteValues == true) { | ||
object[name] = long.lessThanOrEqual(JS_INT_MAX_LONG) && long.greaterThanOrEqual(JS_INT_MIN_LONG) ? long.toNumber() : long; | ||
@@ -192,3 +206,3 @@ } else { | ||
if(promoteBuffers) { | ||
if(promoteBuffers && promoteValues) { | ||
object[name] = buffer.slice(index, index + binarySize); | ||
@@ -213,3 +227,3 @@ } else { | ||
if(promoteBuffers) { | ||
if(promoteBuffers && promoteValues) { | ||
object[name] = _buffer; | ||
@@ -216,0 +230,0 @@ } else { |
@@ -13,2 +13,3 @@ "use strict" | ||
BSONRegExp = require('../regexp').BSONRegExp, | ||
Int32 = require('../int_32').Int32, | ||
MinKey = require('../min_key').MinKey, | ||
@@ -37,7 +38,7 @@ MaxKey = require('../max_key').MaxKey, | ||
var serializeString = function(buffer, key, value, index) { | ||
var serializeString = function(buffer, key, value, index, isArray) { | ||
// Encode String type | ||
buffer[index++] = BSON.BSON_DATA_STRING; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -60,3 +61,3 @@ index = index + numberOfWrittenBytes + 1; | ||
var serializeNumber = function(buffer, key, value, index) { | ||
var serializeNumber = function(buffer, key, value, index, isArray) { | ||
// We have an integer value | ||
@@ -70,3 +71,3 @@ if(Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -84,3 +85,3 @@ index = index + numberOfWrittenBytes; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -97,3 +98,3 @@ index = index + numberOfWrittenBytes; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -120,3 +121,3 @@ index = index + numberOfWrittenBytes; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -134,7 +135,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeUndefined = function(buffer, key, value, index) { | ||
var serializeUndefined = function(buffer, key, value, index, isArray) { | ||
// Set long type | ||
buffer[index++] = BSON.BSON_DATA_NULL; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -146,7 +147,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeBoolean = function(buffer, key, value, index) { | ||
var serializeBoolean = function(buffer, key, value, index, isArray) { | ||
// Write the type | ||
buffer[index++] = BSON.BSON_DATA_BOOLEAN; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -160,7 +161,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeDate = function(buffer, key, value, index) { | ||
var serializeDate = function(buffer, key, value, index, isArray) { | ||
// Write the type | ||
buffer[index++] = BSON.BSON_DATA_DATE; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -187,7 +188,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeRegExp = function(buffer, key, value, index) { | ||
var serializeRegExp = function(buffer, key, value, index, isArray) { | ||
// Write the type | ||
buffer[index++] = BSON.BSON_DATA_REGEXP; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -212,7 +213,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeBSONRegExp = function(buffer, key, value, index) { | ||
var serializeBSONRegExp = function(buffer, key, value, index, isArray) { | ||
// Write the type | ||
buffer[index++] = BSON.BSON_DATA_REGEXP; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -232,3 +233,3 @@ index = index + numberOfWrittenBytes; | ||
var serializeMinMax = function(buffer, key, value, index) { | ||
var serializeMinMax = function(buffer, key, value, index, isArray) { | ||
// Write the type of either min or max key | ||
@@ -244,3 +245,3 @@ if(value === null) { | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -252,7 +253,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeObjectId = function(buffer, key, value, index) { | ||
var serializeObjectId = function(buffer, key, value, index, isArray) { | ||
// Write the type | ||
buffer[index++] = BSON.BSON_DATA_OID; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
@@ -276,7 +277,7 @@ // Encode the name | ||
var serializeBuffer = function(buffer, key, value, index) { | ||
var serializeBuffer = function(buffer, key, value, index, isArray) { | ||
// Write the type | ||
buffer[index++] = BSON.BSON_DATA_BINARY; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -301,7 +302,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeObject = function(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined) { | ||
var serializeObject = function(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, isArray) { | ||
// Write the type | ||
buffer[index++] = Array.isArray(value) ? BSON.BSON_DATA_ARRAY : BSON.BSON_DATA_OBJECT; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -316,6 +317,6 @@ index = index + numberOfWrittenBytes; | ||
var serializeDecimal128 = function(buffer, key, value, index) { | ||
var serializeDecimal128 = function(buffer, key, value, index, isArray) { | ||
buffer[index++] = BSON.BSON_DATA_DECIMAL128; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -329,7 +330,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeLong = function(buffer, key, value, index) { | ||
var serializeLong = function(buffer, key, value, index, isArray) { | ||
// Write the type | ||
buffer[index++] = value._bsontype == 'Long' ? BSON.BSON_DATA_LONG : BSON.BSON_DATA_TIMESTAMP; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -354,7 +355,23 @@ index = index + numberOfWrittenBytes; | ||
var serializeDouble = function(buffer, key, value, index) { | ||
var serializeInt32 = function(buffer, key, value, index, isArray) { | ||
// Set int type 32 bits or less | ||
buffer[index++] = BSON.BSON_DATA_INT; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
index = index + numberOfWrittenBytes; | ||
buffer[index++] = 0; | ||
// Write the int value | ||
buffer[index++] = value & 0xff; | ||
buffer[index++] = (value >> 8) & 0xff; | ||
buffer[index++] = (value >> 16) & 0xff; | ||
buffer[index++] = (value >> 24) & 0xff; | ||
return index; | ||
} | ||
var serializeDouble = function(buffer, key, value, index, isArray) { | ||
// Encode as double | ||
buffer[index++] = BSON.BSON_DATA_NUMBER; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -370,6 +387,6 @@ index = index + numberOfWrittenBytes; | ||
var serializeFunction = function(buffer, key, value, index, checkKeys, depth) { | ||
var serializeFunction = function(buffer, key, value, index, checkKeys, depth, isArray) { | ||
buffer[index++] = BSON.BSON_DATA_CODE; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -394,3 +411,3 @@ index = index + numberOfWrittenBytes; | ||
var serializeCode = function(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined) { | ||
var serializeCode = function(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, isArray) { | ||
if(value.scope && typeof value.scope == 'object') { | ||
@@ -400,3 +417,3 @@ // Write the type | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -444,3 +461,3 @@ index = index + numberOfWrittenBytes; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -467,7 +484,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeBinary = function(buffer, key, value, index) { | ||
var serializeBinary = function(buffer, key, value, index, isArray) { | ||
// Write the type | ||
buffer[index++] = BSON.BSON_DATA_BINARY; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -506,7 +523,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeSymbol = function(buffer, key, value, index) { | ||
var serializeSymbol = function(buffer, key, value, index, isArray) { | ||
// Write the type | ||
buffer[index++] = BSON.BSON_DATA_SYMBOL; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
// Encode the name | ||
@@ -529,7 +546,7 @@ index = index + numberOfWrittenBytes; | ||
var serializeDBRef = function(buffer, key, value, index, depth, serializeFunctions) { | ||
var serializeDBRef = function(buffer, key, value, index, depth, serializeFunctions, isArray) { | ||
// Write the type | ||
buffer[index++] = BSON.BSON_DATA_OBJECT; | ||
// Number of written bytes | ||
var numberOfWrittenBytes = buffer.write(key, index, 'utf8'); | ||
var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); | ||
@@ -590,39 +607,41 @@ // Encode the name | ||
if(type == 'string') { | ||
index = serializeString(buffer, key, value, index); | ||
index = serializeString(buffer, key, value, index, true); | ||
} else if(type == 'number') { | ||
index = serializeNumber(buffer, key, value, index); | ||
index = serializeNumber(buffer, key, value, index, true); | ||
} else if(type == 'boolean') { | ||
index = serializeBoolean(buffer, key, value, index); | ||
index = serializeBoolean(buffer, key, value, index, true); | ||
} else if(value instanceof Date || isDate(value)) { | ||
index = serializeDate(buffer, key, value, index); | ||
index = serializeDate(buffer, key, value, index, true); | ||
} else if(type == 'undefined' || value == null) { | ||
index = serializeUndefined(buffer, key, value, index); | ||
index = serializeUndefined(buffer, key, value, index, true); | ||
} else if(value['_bsontype'] == 'ObjectID') { | ||
index = serializeObjectId(buffer, key, value, index); | ||
index = serializeObjectId(buffer, key, value, index, true); | ||
} else if(Buffer.isBuffer(value)) { | ||
index = serializeBuffer(buffer, key, value, index); | ||
index = serializeBuffer(buffer, key, value, index, true); | ||
} else if(value instanceof RegExp || isRegExp(value)) { | ||
index = serializeRegExp(buffer, key, value, index); | ||
index = serializeRegExp(buffer, key, value, index, true); | ||
} else if(type == 'object' && value['_bsontype'] == null) { | ||
index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined); | ||
index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, true); | ||
} else if(type == 'object' && value['_bsontype'] == 'Decimal128') { | ||
index = serializeDecimal128(buffer, key, value, index); | ||
index = serializeDecimal128(buffer, key, value, index, true); | ||
} else if(value['_bsontype'] == 'Long' || value['_bsontype'] == 'Timestamp') { | ||
index = serializeLong(buffer, key, value, index); | ||
index = serializeLong(buffer, key, value, index, true); | ||
} else if(value['_bsontype'] == 'Double') { | ||
index = serializeDouble(buffer, key, value, index); | ||
index = serializeDouble(buffer, key, value, index, true); | ||
} else if(typeof value == 'function' && serializeFunctions) { | ||
index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); | ||
index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions, true); | ||
} else if(value['_bsontype'] == 'Code') { | ||
index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined); | ||
index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, true); | ||
} else if(value['_bsontype'] == 'Binary') { | ||
index = serializeBinary(buffer, key, value, index); | ||
index = serializeBinary(buffer, key, value, index, true); | ||
} else if(value['_bsontype'] == 'Symbol') { | ||
index = serializeSymbol(buffer, key, value, index); | ||
index = serializeSymbol(buffer, key, value, index, true); | ||
} else if(value['_bsontype'] == 'DBRef') { | ||
index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); | ||
index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions, true); | ||
} else if(value['_bsontype'] == 'BSONRegExp') { | ||
index = serializeBSONRegExp(buffer, key, value, index); | ||
index = serializeBSONRegExp(buffer, key, value, index, true); | ||
} else if(value['_bsontype'] == 'Int32') { | ||
index = serializeInt32(buffer, key, value, index, true); | ||
} else if(value['_bsontype'] == 'MinKey' || value['_bsontype'] == 'MaxKey') { | ||
index = serializeMinMax(buffer, key, value, index); | ||
index = serializeMinMax(buffer, key, value, index, true); | ||
} | ||
@@ -702,2 +721,4 @@ } | ||
index = serializeBSONRegExp(buffer, key, value, index); | ||
} else if(value['_bsontype'] == 'Int32') { | ||
index = serializeInt32(buffer, key, value, index); | ||
} else if(value['_bsontype'] == 'MinKey' || value['_bsontype'] == 'MaxKey') { | ||
@@ -781,2 +802,4 @@ index = serializeMinMax(buffer, key, value, index); | ||
index = serializeBSONRegExp(buffer, key, value, index); | ||
} else if(value['_bsontype'] == 'Int32') { | ||
index = serializeInt32(buffer, key, value, index); | ||
} else if(value['_bsontype'] == 'MinKey' || value['_bsontype'] == 'MaxKey') { | ||
@@ -783,0 +806,0 @@ index = serializeMinMax(buffer, key, value, index); |
@@ -17,3 +17,3 @@ { | ||
], | ||
"version": "0.5.3", | ||
"version": "0.5.4", | ||
"author": "Christian Amor Kvalheim <christkv@gmail.com>", | ||
@@ -20,0 +20,0 @@ "contributors": [], |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
449102
30
11713