yunlongzha_try_nodejs
Version:
try it
1 lines • 24.5 kB
JSON
{"_id":"jsprim","_rev":"36-c6a2ff95713f7d13c5594ff60e694e9c","name":"jsprim","description":"utilities for primitive JavaScript types","dist-tags":{"latest":"1.2.2"},"versions":{"0.0.1":{"name":"jsprim","version":"0.0.1","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"JSV":"4.0.0","verror":"1.0.1"},"engines":["node >=0.6.0"],"_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"_id":"jsprim@0.0.1","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"94236129559e23c3843e2801696e9299613e6356","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.0.1.tgz"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.0.2":{"name":"jsprim","version":"0.0.2","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"JSV":"4.0.0","verror":"1.0.1"},"engines":["node >=0.6.0"],"_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"_id":"jsprim@0.0.2","devDependencies":{},"_engineSupported":false,"_npmVersion":"1.0.94","_nodeVersion":"v0.4.2","_defaultsLoaded":true,"dist":{"shasum":"a8cef84b98ef8d7908365e139b47d70b69a8f11b","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.0.2.tgz"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.0.3":{"name":"jsprim","version":"0.0.3","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"JSV":"4.0.0","verror":"1.0.1"},"engines":["node >=0.6.0"],"_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"_id":"jsprim@0.0.3","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"849b0f7c9a60b39dade9fd4afda49e95695bfca8","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.0.3.tgz"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.0.4":{"name":"jsprim","version":"0.0.4","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"JSV":"4.0.0","verror":"1.0.1"},"engines":["node >=0.6.0"],"_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"_id":"jsprim@0.0.4","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"2bc05d781e0f2b5dcf69a991a8be554b43aac556","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.0.4.tgz"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.0.5":{"name":"jsprim","version":"0.0.5","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.0","JSV":"4.0.0","verror":"1.0.1"},"engines":["node >=0.6.0"],"_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"_id":"jsprim@0.0.5","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"796a40c5571f9acb4bb701e632a05ba72d993d13","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.0.5.tgz"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.1.0":{"name":"jsprim","version":"0.1.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.0","JSV":"4.0.0","verror":"1.0.1"},"engines":["node >=0.6.0"],"_id":"jsprim@0.1.0","dist":{"shasum":"d733febfcf88678091606574b683b4a8e58eda04","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.1.0.tgz"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.2.0":{"name":"jsprim","version":"0.2.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.0","JSV":"4.0.0","verror":"1.0.1"},"engines":["node >=0.6.0"],"_id":"jsprim@0.2.0","dist":{"shasum":"9b84351e80182cc6b1b7b732e04a64943e92febc","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.2.0.tgz"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.3.0":{"name":"jsprim","version":"0.3.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.0","json-schema":"0.2.2","verror":"1.3.3"},"engines":["node >=0.6.0"],"_id":"jsprim@0.3.0","dist":{"shasum":"cd13466ea2480dbd8396a570d47d31dda476f8b1","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.3.0.tgz"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.3.1":{"name":"jsprim","version":"0.3.1","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.0","json-schema":"0.2.2","verror":"1.3.3"},"engines":["node >=0.6.0"],"_id":"jsprim@0.3.1","dist":{"shasum":"7d0475ff9e3a4a10f4572c21bdd91004890ffa42","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.3.1.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.4.0":{"name":"jsprim","version":"0.4.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.0","json-schema":"0.2.2","verror":"1.3.3"},"engines":["node >=0.6.0"],"_id":"jsprim@0.4.0","dist":{"shasum":"a6a94839507641edaa5b29ba939435d33c4d1a16","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.4.0.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.5.0":{"name":"jsprim","version":"0.5.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"_id":"jsprim@0.5.0","dist":{"shasum":"f6522e9c6b3cc9b542eb1c111defbc8e53f8dab9","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.5.0.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.5.1":{"name":"jsprim","version":"0.5.1","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"license":"MIT","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"_id":"jsprim@0.5.1","dist":{"shasum":"ee44301326e3ed89403b5e14da059f6421ee1d43","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.5.1.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"directories":{}},"0.6.0":{"name":"jsprim","version":"0.6.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"license":"MIT","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"homepage":"https://github.com/davepacheco/node-jsprim","_id":"jsprim@0.6.0","_shasum":"9b4d95876f4c5dedf65b646ae0191614c0177939","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"dist":{"shasum":"9b4d95876f4c5dedf65b646ae0191614c0177939","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.6.0.tgz"},"directories":{}},"0.6.1":{"name":"jsprim","version":"0.6.1","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"license":"MIT","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"homepage":"https://github.com/davepacheco/node-jsprim","_id":"jsprim@0.6.1","_shasum":"124c5b5aee1d03845206140b6594a2df63df4477","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"dist":{"shasum":"124c5b5aee1d03845206140b6594a2df63df4477","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.6.1.tgz"},"directories":{}},"0.7.0":{"name":"jsprim","version":"0.7.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"license":"MIT","gitHead":"1ffa1800495c9b8648223602dca83e2e00ecf8af","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"homepage":"https://github.com/davepacheco/node-jsprim#readme","_id":"jsprim@0.7.0","scripts":{},"_shasum":"a869f8e013b875ef74af982b5eb1a4682ee32194","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"dist":{"shasum":"a869f8e013b875ef74af982b5eb1a4682ee32194","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.7.0.tgz"},"directories":{}},"0.8.0":{"name":"jsprim","version":"0.8.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"license":"MIT","gitHead":"6c9a700c6997bf2aff37d367ea3ec99bbdbfb6c8","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"homepage":"https://github.com/davepacheco/node-jsprim","_id":"jsprim@0.8.0","scripts":{},"_shasum":"0f3829737bb127f8f9800fcb2ba9fae300cf41fb","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"dist":{"shasum":"0f3829737bb127f8f9800fcb2ba9fae300cf41fb","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-0.8.0.tgz"},"directories":{}},"1.0.0":{"name":"jsprim","version":"1.0.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"license":"MIT","gitHead":"fe44229b41354dc8256c38d7518b07ff9f93643a","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"homepage":"https://github.com/davepacheco/node-jsprim","_id":"jsprim@1.0.0","scripts":{},"_shasum":"ef7be7eeba5e1de3156f2ea7e4529b0c0585d9a6","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"dist":{"shasum":"ef7be7eeba5e1de3156f2ea7e4529b0c0585d9a6","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-1.0.0.tgz"},"directories":{}},"1.1.0":{"name":"jsprim","version":"1.1.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"license":"MIT","gitHead":"417fb65eb791db6fbc8ecdc896b7d478c8a450bb","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"homepage":"https://github.com/davepacheco/node-jsprim","_id":"jsprim@1.1.0","scripts":{},"_shasum":"e04ab36d82bc1b5d809b553cd4b5e2ed8b42c28c","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"dist":{"shasum":"e04ab36d82bc1b5d809b553cd4b5e2ed8b42c28c","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-1.1.0.tgz"},"directories":{}},"1.2.0":{"name":"jsprim","version":"1.2.0","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"license":"MIT","gitHead":"4e53702e79c58adc6e73deb016b299de12d2dfd1","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"homepage":"https://github.com/davepacheco/node-jsprim","_id":"jsprim@1.2.0","scripts":{},"_shasum":"74d6fcf239a50ac27307fcfc2682b4d3450c2cf2","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"dist":{"shasum":"74d6fcf239a50ac27307fcfc2682b4d3450c2cf2","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-1.2.0.tgz"},"directories":{}},"1.2.1":{"name":"jsprim","version":"1.2.1","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"license":"MIT","gitHead":"16a06921d504b268e7deba7a8dde8c79e48e4ce6","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"homepage":"https://github.com/davepacheco/node-jsprim","_id":"jsprim@1.2.1","scripts":{},"_shasum":"555716c8d3b2dbe072f86e657d9ffa83d1ef9978","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"dist":{"shasum":"555716c8d3b2dbe072f86e657d9ffa83d1ef9978","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-1.2.1.tgz"},"directories":{}},"1.2.2":{"name":"jsprim","version":"1.2.2","description":"utilities for primitive JavaScript types","main":"./lib/jsprim.js","repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"dependencies":{"extsprintf":"1.0.2","json-schema":"0.2.2","verror":"1.3.6"},"engines":["node >=0.6.0"],"license":"MIT","gitHead":"0e709876c35eddfe4c1f95104ac3c4abfc9dab84","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"homepage":"https://github.com/davepacheco/node-jsprim","_id":"jsprim@1.2.2","scripts":{},"_shasum":"f20c906ac92abd58e3b79ac8bc70a48832512da1","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"dap","email":"dap@cs.brown.edu"},"maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"dist":{"shasum":"f20c906ac92abd58e3b79ac8bc70a48832512da1","tarball":"http://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz"},"directories":{}}},"readme":"# jsprim: utilities for primitive JavaScript types\n\nThis module provides miscellaneous facilities for working with strings,\nnumbers, dates, and objects and arrays of these basic types.\n\n\n### deepCopy(obj)\n\nCreates a deep copy of a primitive type, object, or array of primitive types.\n\n\n### deepEqual(obj1, obj2)\n\nReturns whether two objects are equal.\n\n\n### isEmpty(obj)\n\nReturns true if the given object has no properties and false otherwise. This\nis O(1) (unlike `Object.keys(obj).length === 0`, which is O(N)).\n\n\n### forEachKey(obj, callback)\n\nLike Array.forEach, but iterates properties of an object rather than elements\nof an array. Equivalent to:\n\n for (var key in obj)\n callback(key, obj[key]);\n\n\n### flattenObject(obj, depth)\n\nFlattens an object up to a given level of nesting, returning an array of arrays\nof length \"depth + 1\", where the first \"depth\" elements correspond to flattened\ncolumns and the last element contains the remaining object . For example:\n\n flattenObject({\n 'I': {\n 'A': {\n 'i': {\n 'datum1': [ 1, 2 ],\n 'datum2': [ 3, 4 ]\n },\n 'ii': {\n 'datum1': [ 3, 4 ]\n }\n },\n 'B': {\n 'i': {\n 'datum1': [ 5, 6 ]\n },\n 'ii': {\n 'datum1': [ 7, 8 ],\n 'datum2': [ 3, 4 ],\n },\n 'iii': {\n }\n }\n },\n 'II': {\n 'A': {\n 'i': {\n 'datum1': [ 1, 2 ],\n 'datum2': [ 3, 4 ]\n }\n }\n }\n }, 3)\n\nbecomes:\n\n [\n [ 'I', 'A', 'i', { 'datum1': [ 1, 2 ], 'datum2': [ 3, 4 ] } ],\n [ 'I', 'A', 'ii', { 'datum1': [ 3, 4 ] } ],\n [ 'I', 'B', 'i', { 'datum1': [ 5, 6 ] } ],\n [ 'I', 'B', 'ii', { 'datum1': [ 7, 8 ], 'datum2': [ 3, 4 ] } ],\n [ 'I', 'B', 'iii', {} ],\n [ 'II', 'A', 'i', { 'datum1': [ 1, 2 ], 'datum2': [ 3, 4 ] } ]\n ]\n\nThis function is strict: \"depth\" must be a non-negative integer and \"obj\" must\nbe a non-null object with at least \"depth\" levels of nesting under all keys.\n\n\n### flattenIter(obj, depth, func)\n\nThis is similar to `flattenObject` except that instead of returning an array,\nthis function invokes `func(entry)` for each `entry` in the array that\n`flattenObject` would return. `flattenIter(obj, depth, func)` is logically\nequivalent to `flattenObject(obj, depth).forEach(func)`. Importantly, this\nversion never constructs the full array. Its memory usage is O(depth) rather\nthan O(n) (where `n` is the number of flattened elements).\n\nThere's another difference between `flattenObject` and `flattenIter` that's\nrelated to the special case where `depth === 0`. In this case, `flattenObject`\nomits the array wrapping `obj` (which is regrettable).\n\n\n### pluck(obj, key)\n\nFetch nested property \"key\" from object \"obj\", traversing objects as needed.\nFor example, `pluck(obj, \"foo.bar.baz\")` is roughly equivalent to\n`obj.foo.bar.baz`, except that:\n\n1. If traversal fails, the resulting value is undefined, and no error is\n thrown. For example, `pluck({}, \"foo.bar\")` is just undefined.\n2. If \"obj\" has property \"key\" directly (without traversing), the\n corresponding property is returned. For example,\n `pluck({ 'foo.bar': 1 }, 'foo.bar')` is 1, not undefined. This is also\n true recursively, so `pluck({ 'a': { 'foo.bar': 1 } }, 'a.foo.bar')` is\n also 1, not undefined.\n\n\n### randElt(array)\n\nReturns an element from \"array\" selected uniformly at random. If \"array\" is\nempty, throws an Error.\n\n\n### startsWith(str, prefix)\n\nReturns true if the given string starts with the given prefix and false\notherwise.\n\n\n### endsWith(str, suffix)\n\nReturns true if the given string ends with the given suffix and false\notherwise.\n\n\n### iso8601(date)\n\nConverts a Date object to an ISO8601 date string of the form\n\"YYYY-MM-DDTHH:MM:SS.sssZ\". This format is not customizable.\n\n\n### parseDateTime(str)\n\nParses a date expressed as a string, as either a number of milliseconds since\nthe epoch or any string format that Date accepts, giving preference to the\nformer where these two sets overlap (e.g., strings containing small numbers).\n\n\n### hrtimeDiff(timeA, timeB)\n\nGiven two hrtime readings (as from Node's `process.hrtime()`), where timeA is\nlater than timeB, compute the difference and return that as an hrtime. It is\nillegal to invoke this for a pair of times where timeB is newer than timeA.\n\n### hrtimeAdd(timeA, timeB)\n\nAdd two hrtime intervals (as from Node's `process.hrtime()`), returning a new\nhrtime interval array. This function does not modify either input argument.\n\n\n### hrtimeAccum(timeA, timeB)\n\nAdd two hrtime intervals (as from Node's `process.hrtime()`), storing the\nresult in `timeA`. This function overwrites (and returns) the first argument\npassed in.\n\n\n### hrtimeNanosec(timeA), hrtimeMicrosec(timeA), hrtimeMillisec(timeA)\n\nThis suite of functions converts a hrtime interval (as from Node's\n`process.hrtime()`) into a scalar number of nanoseconds, microseconds or\nmilliseconds. Results are truncated, as with `Math.floor()`.\n\n\n### validateJsonObject(schema, object)\n\nUses JSON validation (via JSV) to validate the given object against the given\nschema. On success, returns null. On failure, *returns* (does not throw) a\nuseful Error object.\n\n\n### extraProperties(object, allowed)\n\nCheck an object for unexpected properties. Accepts the object to check, and an\narray of allowed property name strings. If extra properties are detected, an\narray of extra property names is returned. If no properties other than those\nin the allowed list are present on the object, the returned array will be of\nzero length.\n\n### mergeObjects(provided, overrides, defaults)\n\nMerge properties from objects \"provided\", \"overrides\", and \"defaults\". The\nintended use case is for functions that accept named arguments in an \"args\"\nobject, but want to provide some default values and override other values. In\nthat case, \"provided\" is what the caller specified, \"overrides\" are what the\nfunction wants to override, and \"defaults\" contains default values.\n\nThe function starts with the values in \"defaults\", overrides them with the\nvalues in \"provided\", and then overrides those with the values in \"overrides\".\nFor convenience, any of these objects may be falsey, in which case they will be\nignored. The input objects are never modified, but properties in the returned\nobject are not deep-copied.\n\nFor example:\n\n mergeObjects(undefined, { 'objectMode': true }, { 'highWaterMark': 0 })\n\nreturns:\n\n { 'objectMode': true, 'highWaterMark': 0 }\n\nFor another example:\n\n mergeObjects(\n { 'highWaterMark': 16, 'objectMode': 7 }, /* from caller */\n { 'objectMode': true }, /* overrides */\n { 'highWaterMark': 0 }); /* default */\n\nreturns:\n\n { 'objectMode': true, 'highWaterMark': 16 }\n\n\n# Contributing\n\nCode should be \"make check\" clean. This target assumes that\n[jsl](http://github.com/davepacheco/javascriptlint) and\n[jsstyle](http://github.com/davepacheco/jsstyle) are on your path.\n\nNew tests should generally accompany new functions and bug fixes. The tests\nshould pass cleanly (run tests/basic.js).\n","maintainers":[{"name":"dap","email":"dap@cs.brown.edu"}],"time":{"modified":"2015-10-16T00:03:27.758Z","created":"2012-04-18T17:12:25.768Z","0.0.1":"2012-04-18T17:12:26.971Z","0.0.2":"2012-04-19T19:03:15.543Z","0.0.3":"2012-06-05T22:04:58.580Z","0.0.4":"2012-06-06T22:17:55.604Z","0.0.5":"2012-06-08T22:24:36.586Z","0.1.0":"2012-08-20T18:33:42.230Z","0.2.0":"2012-08-23T17:55:39.825Z","0.3.0":"2012-09-06T18:42:14.711Z","0.3.1":"2012-12-04T01:40:51.900Z","0.4.0":"2013-01-18T01:06:00.766Z","0.5.0":"2013-04-03T00:07:50.875Z","0.5.1":"2013-11-05T00:04:38.490Z","0.6.0":"2014-08-04T04:49:56.552Z","0.6.1":"2014-08-07T16:27:58.826Z","0.7.0":"2015-08-13T20:28:49.036Z","0.8.0":"2015-08-19T23:09:58.286Z","1.0.0":"2015-09-02T01:07:04.114Z","1.1.0":"2015-09-02T19:24:53.077Z","1.2.0":"2015-10-13T23:07:09.292Z","1.2.1":"2015-10-14T21:18:02.739Z","1.2.2":"2015-10-16T00:03:27.758Z"},"repository":{"type":"git","url":"git://github.com/davepacheco/node-jsprim.git"},"homepage":"https://github.com/davepacheco/node-jsprim","bugs":{"url":"https://github.com/davepacheco/node-jsprim/issues"},"license":"MIT","readmeFilename":"README.md","_attachments":{},"_etag":"\"3YGGY16NVDUR7BVVDXVSYGMYA\""}