ahmad-module 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ahmad-module might be problematic. Click here for more details.
- package/.bin/sshpk-conv +12 -0
- package/.bin/sshpk-conv.cmd +17 -0
- package/.bin/sshpk-conv.ps1 +28 -0
- package/.bin/sshpk-sign +12 -0
- package/.bin/sshpk-sign.cmd +17 -0
- package/.bin/sshpk-sign.ps1 +28 -0
- package/.bin/sshpk-verify +12 -0
- package/.bin/sshpk-verify.cmd +17 -0
- package/.bin/sshpk-verify.ps1 +28 -0
- package/.bin/uuid +12 -0
- package/.bin/uuid.cmd +17 -0
- package/.bin/uuid.ps1 +28 -0
- package/ajv/.tonic_example.js +20 -0
- package/ajv/LICENSE +22 -0
- package/ajv/README.md +1497 -0
- package/ajv/dist/ajv.bundle.js +7189 -0
- package/ajv/dist/ajv.min.js +3 -0
- package/ajv/dist/ajv.min.js.map +1 -0
- package/ajv/lib/ajv.d.ts +397 -0
- package/ajv/lib/ajv.js +506 -0
- package/ajv/lib/cache.js +26 -0
- package/ajv/lib/compile/async.js +90 -0
- package/ajv/lib/compile/equal.js +5 -0
- package/ajv/lib/compile/error_classes.js +34 -0
- package/ajv/lib/compile/formats.js +142 -0
- package/ajv/lib/compile/index.js +387 -0
- package/ajv/lib/compile/resolve.js +270 -0
- package/ajv/lib/compile/rules.js +66 -0
- package/ajv/lib/compile/schema_obj.js +9 -0
- package/ajv/lib/compile/ucs2length.js +20 -0
- package/ajv/lib/compile/util.js +239 -0
- package/ajv/lib/data.js +49 -0
- package/ajv/lib/definition_schema.js +37 -0
- package/ajv/lib/dot/_limit.jst +113 -0
- package/ajv/lib/dot/_limitItems.jst +12 -0
- package/ajv/lib/dot/_limitLength.jst +12 -0
- package/ajv/lib/dot/_limitProperties.jst +12 -0
- package/ajv/lib/dot/allOf.jst +32 -0
- package/ajv/lib/dot/anyOf.jst +46 -0
- package/ajv/lib/dot/coerce.def +51 -0
- package/ajv/lib/dot/comment.jst +9 -0
- package/ajv/lib/dot/const.jst +11 -0
- package/ajv/lib/dot/contains.jst +55 -0
- package/ajv/lib/dot/custom.jst +191 -0
- package/ajv/lib/dot/defaults.def +47 -0
- package/ajv/lib/dot/definitions.def +203 -0
- package/ajv/lib/dot/dependencies.jst +79 -0
- package/ajv/lib/dot/enum.jst +30 -0
- package/ajv/lib/dot/errors.def +194 -0
- package/ajv/lib/dot/format.jst +106 -0
- package/ajv/lib/dot/if.jst +73 -0
- package/ajv/lib/dot/items.jst +98 -0
- package/ajv/lib/dot/missing.def +39 -0
- package/ajv/lib/dot/multipleOf.jst +22 -0
- package/ajv/lib/dot/not.jst +43 -0
- package/ajv/lib/dot/oneOf.jst +54 -0
- package/ajv/lib/dot/pattern.jst +14 -0
- package/ajv/lib/dot/properties.jst +245 -0
- package/ajv/lib/dot/propertyNames.jst +52 -0
- package/ajv/lib/dot/ref.jst +85 -0
- package/ajv/lib/dot/required.jst +108 -0
- package/ajv/lib/dot/uniqueItems.jst +62 -0
- package/ajv/lib/dot/validate.jst +276 -0
- package/ajv/lib/dotjs/README.md +3 -0
- package/ajv/lib/dotjs/_limit.js +163 -0
- package/ajv/lib/dotjs/_limitItems.js +80 -0
- package/ajv/lib/dotjs/_limitLength.js +85 -0
- package/ajv/lib/dotjs/_limitProperties.js +80 -0
- package/ajv/lib/dotjs/allOf.js +42 -0
- package/ajv/lib/dotjs/anyOf.js +73 -0
- package/ajv/lib/dotjs/comment.js +14 -0
- package/ajv/lib/dotjs/const.js +56 -0
- package/ajv/lib/dotjs/contains.js +81 -0
- package/ajv/lib/dotjs/custom.js +228 -0
- package/ajv/lib/dotjs/dependencies.js +168 -0
- package/ajv/lib/dotjs/enum.js +66 -0
- package/ajv/lib/dotjs/format.js +150 -0
- package/ajv/lib/dotjs/if.js +103 -0
- package/ajv/lib/dotjs/index.js +33 -0
- package/ajv/lib/dotjs/items.js +140 -0
- package/ajv/lib/dotjs/multipleOf.js +80 -0
- package/ajv/lib/dotjs/not.js +84 -0
- package/ajv/lib/dotjs/oneOf.js +73 -0
- package/ajv/lib/dotjs/pattern.js +75 -0
- package/ajv/lib/dotjs/properties.js +335 -0
- package/ajv/lib/dotjs/propertyNames.js +81 -0
- package/ajv/lib/dotjs/ref.js +124 -0
- package/ajv/lib/dotjs/required.js +270 -0
- package/ajv/lib/dotjs/uniqueItems.js +86 -0
- package/ajv/lib/dotjs/validate.js +482 -0
- package/ajv/lib/keyword.js +146 -0
- package/ajv/lib/refs/data.json +17 -0
- package/ajv/lib/refs/json-schema-draft-04.json +149 -0
- package/ajv/lib/refs/json-schema-draft-06.json +154 -0
- package/ajv/lib/refs/json-schema-draft-07.json +168 -0
- package/ajv/lib/refs/json-schema-secure.json +94 -0
- package/ajv/package.json +106 -0
- package/ajv/scripts/.eslintrc.yml +3 -0
- package/ajv/scripts/bundle.js +61 -0
- package/ajv/scripts/compile-dots.js +73 -0
- package/ajv/scripts/info +10 -0
- package/ajv/scripts/prepare-tests +12 -0
- package/ajv/scripts/publish-built-version +32 -0
- package/ajv/scripts/travis-gh-pages +23 -0
- package/asn1/Jenkinsfile +65 -0
- package/asn1/LICENSE +19 -0
- package/asn1/README.md +50 -0
- package/asn1/lib/ber/errors.js +13 -0
- package/asn1/lib/ber/index.js +27 -0
- package/asn1/lib/ber/reader.js +262 -0
- package/asn1/lib/ber/types.js +36 -0
- package/asn1/lib/ber/writer.js +317 -0
- package/asn1/lib/index.js +20 -0
- package/asn1/package.json +31 -0
- package/assert-plus/AUTHORS +6 -0
- package/assert-plus/CHANGES.md +14 -0
- package/assert-plus/README.md +162 -0
- package/assert-plus/assert.js +211 -0
- package/assert-plus/package.json +23 -0
- package/asynckit/LICENSE +21 -0
- package/asynckit/README.md +233 -0
- package/asynckit/bench.js +76 -0
- package/asynckit/index.js +6 -0
- package/asynckit/lib/abort.js +29 -0
- package/asynckit/lib/async.js +34 -0
- package/asynckit/lib/defer.js +26 -0
- package/asynckit/lib/iterate.js +75 -0
- package/asynckit/lib/readable_asynckit.js +91 -0
- package/asynckit/lib/readable_parallel.js +25 -0
- package/asynckit/lib/readable_serial.js +25 -0
- package/asynckit/lib/readable_serial_ordered.js +29 -0
- package/asynckit/lib/state.js +37 -0
- package/asynckit/lib/streamify.js +141 -0
- package/asynckit/lib/terminator.js +29 -0
- package/asynckit/package.json +63 -0
- package/asynckit/parallel.js +43 -0
- package/asynckit/serial.js +17 -0
- package/asynckit/serialOrdered.js +75 -0
- package/asynckit/stream.js +21 -0
- package/aws-sign2/LICENSE +55 -0
- package/aws-sign2/README.md +4 -0
- package/aws-sign2/index.js +212 -0
- package/aws-sign2/package.json +17 -0
- package/aws4/.github/FUNDING.yml +3 -0
- package/aws4/.travis.yml +9 -0
- package/aws4/LICENSE +19 -0
- package/aws4/README.md +183 -0
- package/aws4/aws4.js +373 -0
- package/aws4/lru.js +96 -0
- package/aws4/package.json +17 -0
- package/axios/CHANGELOG.md +775 -0
- package/axios/LICENSE +19 -0
- package/axios/README.md +868 -0
- package/axios/SECURITY.md +5 -0
- package/axios/UPGRADE_GUIDE.md +162 -0
- package/axios/dist/axios.js +2193 -0
- package/axios/dist/axios.map +1 -0
- package/axios/dist/axios.min.js +3 -0
- package/axios/dist/axios.min.map +1 -0
- package/axios/index.d.ts +168 -0
- package/axios/index.js +1 -0
- package/axios/lib/adapters/README.md +37 -0
- package/axios/lib/adapters/http.js +331 -0
- package/axios/lib/adapters/xhr.js +189 -0
- package/axios/lib/axios.js +56 -0
- package/axios/lib/cancel/Cancel.js +19 -0
- package/axios/lib/cancel/CancelToken.js +57 -0
- package/axios/lib/cancel/isCancel.js +5 -0
- package/axios/lib/core/Axios.js +148 -0
- package/axios/lib/core/InterceptorManager.js +54 -0
- package/axios/lib/core/README.md +8 -0
- package/axios/lib/core/buildFullPath.js +20 -0
- package/axios/lib/core/createError.js +18 -0
- package/axios/lib/core/dispatchRequest.js +82 -0
- package/axios/lib/core/enhanceError.js +42 -0
- package/axios/lib/core/mergeConfig.js +87 -0
- package/axios/lib/core/settle.js +25 -0
- package/axios/lib/core/transformData.js +22 -0
- package/axios/lib/defaults.js +134 -0
- package/axios/lib/helpers/README.md +7 -0
- package/axios/lib/helpers/bind.js +11 -0
- package/axios/lib/helpers/buildURL.js +70 -0
- package/axios/lib/helpers/combineURLs.js +14 -0
- package/axios/lib/helpers/cookies.js +53 -0
- package/axios/lib/helpers/deprecatedMethod.js +24 -0
- package/axios/lib/helpers/isAbsoluteURL.js +14 -0
- package/axios/lib/helpers/isAxiosError.js +11 -0
- package/axios/lib/helpers/isURLSameOrigin.js +68 -0
- package/axios/lib/helpers/normalizeHeaderName.js +12 -0
- package/axios/lib/helpers/parseHeaders.js +53 -0
- package/axios/lib/helpers/spread.js +27 -0
- package/axios/lib/helpers/validator.js +105 -0
- package/axios/lib/utils.js +349 -0
- package/axios/package.json +84 -0
- package/bcrypt-pbkdf/CONTRIBUTING.md +13 -0
- package/bcrypt-pbkdf/LICENSE +66 -0
- package/bcrypt-pbkdf/README.md +45 -0
- package/bcrypt-pbkdf/index.js +556 -0
- package/bcrypt-pbkdf/package.json +15 -0
- package/caseless/LICENSE +28 -0
- package/caseless/README.md +45 -0
- package/caseless/index.js +67 -0
- package/caseless/package.json +27 -0
- package/caseless/test.js +67 -0
- package/combined-stream/License +19 -0
- package/combined-stream/Readme.md +138 -0
- package/combined-stream/lib/combined_stream.js +208 -0
- package/combined-stream/package.json +25 -0
- package/combined-stream/yarn.lock +17 -0
- package/core-util-is/LICENSE +19 -0
- package/core-util-is/README.md +3 -0
- package/core-util-is/float.patch +604 -0
- package/core-util-is/lib/util.js +107 -0
- package/core-util-is/package.json +32 -0
- package/core-util-is/test.js +68 -0
- package/dashdash/CHANGES.md +364 -0
- package/dashdash/LICENSE.txt +24 -0
- package/dashdash/README.md +574 -0
- package/dashdash/etc/dashdash.bash_completion.in +389 -0
- package/dashdash/lib/dashdash.js +1055 -0
- package/dashdash/package.json +26 -0
- package/delayed-stream/License +19 -0
- package/delayed-stream/Makefile +7 -0
- package/delayed-stream/Readme.md +141 -0
- package/delayed-stream/lib/delayed_stream.js +107 -0
- package/delayed-stream/package.json +27 -0
- package/ecc-jsbn/LICENSE +21 -0
- package/ecc-jsbn/README.md +8 -0
- package/ecc-jsbn/index.js +58 -0
- package/ecc-jsbn/lib/LICENSE-jsbn +40 -0
- package/ecc-jsbn/lib/ec.js +561 -0
- package/ecc-jsbn/lib/sec.js +170 -0
- package/ecc-jsbn/package.json +40 -0
- package/ecc-jsbn/test.js +14 -0
- package/extend/.editorconfig +20 -0
- package/extend/.eslintrc +17 -0
- package/extend/.jscs.json +175 -0
- package/extend/.travis.yml +230 -0
- package/extend/CHANGELOG.md +83 -0
- package/extend/LICENSE +23 -0
- package/extend/README.md +81 -0
- package/extend/component.json +32 -0
- package/extend/index.js +117 -0
- package/extend/package.json +42 -0
- package/extsprintf/.gitmodules +0 -0
- package/extsprintf/LICENSE +19 -0
- package/extsprintf/Makefile +24 -0
- package/extsprintf/Makefile.targ +285 -0
- package/extsprintf/README.md +46 -0
- package/extsprintf/jsl.node.conf +137 -0
- package/extsprintf/lib/extsprintf.js +183 -0
- package/extsprintf/package.json +14 -0
- package/fast-deep-equal/LICENSE +21 -0
- package/fast-deep-equal/README.md +96 -0
- package/fast-deep-equal/es6/index.d.ts +2 -0
- package/fast-deep-equal/es6/index.js +72 -0
- package/fast-deep-equal/es6/react.d.ts +2 -0
- package/fast-deep-equal/es6/react.js +79 -0
- package/fast-deep-equal/index.d.ts +4 -0
- package/fast-deep-equal/index.js +46 -0
- package/fast-deep-equal/package.json +61 -0
- package/fast-deep-equal/react.d.ts +2 -0
- package/fast-deep-equal/react.js +53 -0
- package/fast-json-stable-stringify/.eslintrc.yml +26 -0
- package/fast-json-stable-stringify/.github/FUNDING.yml +1 -0
- package/fast-json-stable-stringify/.travis.yml +8 -0
- package/fast-json-stable-stringify/LICENSE +21 -0
- package/fast-json-stable-stringify/README.md +131 -0
- package/fast-json-stable-stringify/benchmark/index.js +31 -0
- package/fast-json-stable-stringify/benchmark/test.json +137 -0
- package/fast-json-stable-stringify/example/key_cmp.js +7 -0
- package/fast-json-stable-stringify/example/nested.js +3 -0
- package/fast-json-stable-stringify/example/str.js +3 -0
- package/fast-json-stable-stringify/example/value_cmp.js +7 -0
- package/fast-json-stable-stringify/index.d.ts +4 -0
- package/fast-json-stable-stringify/index.js +59 -0
- package/fast-json-stable-stringify/package.json +52 -0
- package/fast-json-stable-stringify/test/cmp.js +13 -0
- package/fast-json-stable-stringify/test/nested.js +44 -0
- package/fast-json-stable-stringify/test/str.js +46 -0
- package/fast-json-stable-stringify/test/to-json.js +22 -0
- package/follow-redirects/LICENSE +18 -0
- package/follow-redirects/README.md +155 -0
- package/follow-redirects/debug.js +15 -0
- package/follow-redirects/http.js +1 -0
- package/follow-redirects/https.js +1 -0
- package/follow-redirects/index.js +598 -0
- package/follow-redirects/package.json +59 -0
- package/forever-agent/LICENSE +55 -0
- package/forever-agent/README.md +4 -0
- package/forever-agent/index.js +138 -0
- package/forever-agent/package.json +17 -0
- package/form-data/License +19 -0
- package/form-data/README.md +234 -0
- package/form-data/README.md.bak +234 -0
- package/form-data/lib/browser.js +2 -0
- package/form-data/lib/form_data.js +457 -0
- package/form-data/lib/populate.js +10 -0
- package/form-data/package.json +65 -0
- package/form-data/yarn.lock +2662 -0
- package/getpass/.travis.yml +9 -0
- package/getpass/LICENSE +18 -0
- package/getpass/README.md +32 -0
- package/getpass/lib/index.js +123 -0
- package/getpass/package.json +18 -0
- package/har-schema/LICENSE +13 -0
- package/har-schema/README.md +49 -0
- package/har-schema/lib/afterRequest.json +30 -0
- package/har-schema/lib/beforeRequest.json +30 -0
- package/har-schema/lib/browser.json +20 -0
- package/har-schema/lib/cache.json +21 -0
- package/har-schema/lib/content.json +29 -0
- package/har-schema/lib/cookie.json +36 -0
- package/har-schema/lib/creator.json +20 -0
- package/har-schema/lib/entry.json +53 -0
- package/har-schema/lib/har.json +13 -0
- package/har-schema/lib/header.json +20 -0
- package/har-schema/lib/index.js +22 -0
- package/har-schema/lib/log.json +36 -0
- package/har-schema/lib/page.json +32 -0
- package/har-schema/lib/pageTimings.json +18 -0
- package/har-schema/lib/postData.json +43 -0
- package/har-schema/lib/query.json +20 -0
- package/har-schema/lib/request.json +57 -0
- package/har-schema/lib/response.json +54 -0
- package/har-schema/lib/timings.json +42 -0
- package/har-schema/package.json +54 -0
- package/har-validator/LICENSE +9 -0
- package/har-validator/README.md +43 -0
- package/har-validator/lib/async.js +105 -0
- package/har-validator/lib/error.js +17 -0
- package/har-validator/lib/promise.js +102 -0
- package/har-validator/package.json +43 -0
- package/http-signature/.dir-locals.el +6 -0
- package/http-signature/CHANGES.md +46 -0
- package/http-signature/LICENSE +18 -0
- package/http-signature/README.md +79 -0
- package/http-signature/http_signing.md +363 -0
- package/http-signature/lib/index.js +29 -0
- package/http-signature/lib/parser.js +315 -0
- package/http-signature/lib/signer.js +401 -0
- package/http-signature/lib/utils.js +112 -0
- package/http-signature/lib/verify.js +88 -0
- package/http-signature/package.json +39 -0
- package/is-typedarray/LICENSE.md +18 -0
- package/is-typedarray/README.md +16 -0
- package/is-typedarray/index.js +41 -0
- package/is-typedarray/package.json +30 -0
- package/is-typedarray/test.js +34 -0
- package/isstream/.jshintrc +59 -0
- package/isstream/.travis.yml +12 -0
- package/isstream/LICENSE.md +11 -0
- package/isstream/README.md +66 -0
- package/isstream/isstream.js +27 -0
- package/isstream/package.json +33 -0
- package/isstream/test.js +168 -0
- package/jsbn/LICENSE +40 -0
- package/jsbn/README.md +175 -0
- package/jsbn/example.html +12 -0
- package/jsbn/example.js +3 -0
- package/jsbn/index.js +1357 -0
- package/jsbn/package.json +21 -0
- package/json-schema/LICENSE +195 -0
- package/json-schema/README.md +3 -0
- package/json-schema/lib/links.js +65 -0
- package/json-schema/lib/validate.js +271 -0
- package/json-schema/package.json +24 -0
- package/json-schema-traverse/.eslintrc.yml +27 -0
- package/json-schema-traverse/.travis.yml +8 -0
- package/json-schema-traverse/LICENSE +21 -0
- package/json-schema-traverse/README.md +83 -0
- package/json-schema-traverse/index.js +89 -0
- package/json-schema-traverse/package.json +43 -0
- package/json-schema-traverse/spec/.eslintrc.yml +6 -0
- package/json-schema-traverse/spec/fixtures/schema.js +125 -0
- package/json-schema-traverse/spec/index.spec.js +171 -0
- package/json-stringify-safe/CHANGELOG.md +14 -0
- package/json-stringify-safe/LICENSE +15 -0
- package/json-stringify-safe/Makefile +35 -0
- package/json-stringify-safe/README.md +52 -0
- package/json-stringify-safe/package.json +31 -0
- package/json-stringify-safe/stringify.js +27 -0
- package/json-stringify-safe/test/mocha.opts +2 -0
- package/json-stringify-safe/test/stringify_test.js +246 -0
- package/jsprim/CHANGES.md +53 -0
- package/jsprim/CONTRIBUTING.md +19 -0
- package/jsprim/LICENSE +19 -0
- package/jsprim/README.md +287 -0
- package/jsprim/lib/jsprim.js +735 -0
- package/jsprim/package.json +20 -0
- package/m3u8stream/LICENSE +21 -0
- package/m3u8stream/README.md +81 -0
- package/m3u8stream/dist/dash-mpd-parser.d.ts +11 -0
- package/m3u8stream/dist/dash-mpd-parser.js +183 -0
- package/m3u8stream/dist/dash-mpd-parser.js.map +1 -0
- package/m3u8stream/dist/index.d.ts +31 -0
- package/m3u8stream/dist/index.js +180 -0
- package/m3u8stream/dist/index.js.map +1 -0
- package/m3u8stream/dist/m3u8-parser.d.ts +18 -0
- package/m3u8stream/dist/m3u8-parser.js +111 -0
- package/m3u8stream/dist/m3u8-parser.js.map +1 -0
- package/m3u8stream/dist/parse-time.d.ts +16 -0
- package/m3u8stream/dist/parse-time.js +59 -0
- package/m3u8stream/dist/parse-time.js.map +1 -0
- package/m3u8stream/dist/parser.d.ts +19 -0
- package/m3u8stream/dist/parser.js +3 -0
- package/m3u8stream/dist/parser.js.map +1 -0
- package/m3u8stream/dist/queue.d.ts +39 -0
- package/m3u8stream/dist/queue.js +58 -0
- package/m3u8stream/dist/queue.js.map +1 -0
- package/m3u8stream/node_modules/sax/LICENSE +41 -0
- package/m3u8stream/node_modules/sax/README.md +225 -0
- package/m3u8stream/node_modules/sax/lib/sax.js +1565 -0
- package/m3u8stream/node_modules/sax/package.json +25 -0
- package/m3u8stream/package.json +54 -0
- package/mime-db/HISTORY.md +507 -0
- package/mime-db/LICENSE +23 -0
- package/mime-db/README.md +100 -0
- package/mime-db/db.json +8519 -0
- package/mime-db/index.js +12 -0
- package/mime-db/package.json +60 -0
- package/mime-types/HISTORY.md +397 -0
- package/mime-types/LICENSE +23 -0
- package/mime-types/README.md +113 -0
- package/mime-types/index.js +188 -0
- package/mime-types/package.json +44 -0
- package/miniget/LICENSE +21 -0
- package/miniget/README.md +111 -0
- package/miniget/dist/index.d.ts +65 -0
- package/miniget/dist/index.js +281 -0
- package/miniget/dist/index.js.map +1 -0
- package/miniget/package.json +49 -0
- package/oauth-sign/LICENSE +55 -0
- package/oauth-sign/README.md +11 -0
- package/oauth-sign/index.js +146 -0
- package/oauth-sign/package.json +23 -0
- package/package.json +11 -0
- package/performance-now/.tm_properties +7 -0
- package/performance-now/.travis.yml +6 -0
- package/performance-now/README.md +30 -0
- package/performance-now/lib/performance-now.js +36 -0
- package/performance-now/lib/performance-now.js.map +10 -0
- package/performance-now/license.txt +7 -0
- package/performance-now/package.json +35 -0
- package/performance-now/src/index.d.ts +8 -0
- package/performance-now/src/performance-now.coffee +17 -0
- package/performance-now/test/mocha.opts +3 -0
- package/performance-now/test/performance-now.coffee +43 -0
- package/performance-now/test/scripts/delayed-call.coffee +11 -0
- package/performance-now/test/scripts/delayed-require.coffee +12 -0
- package/performance-now/test/scripts/difference.coffee +6 -0
- package/performance-now/test/scripts/initial-value.coffee +10 -0
- package/performance-now/test/scripts.coffee +27 -0
- package/psl/.env +0 -0
- package/psl/LICENSE +9 -0
- package/psl/README.md +211 -0
- package/psl/browserstack-logo.svg +90 -0
- package/psl/data/rules.json +9376 -0
- package/psl/dist/psl.js +10187 -0
- package/psl/dist/psl.min.js +1 -0
- package/psl/index.js +269 -0
- package/psl/package.json +43 -0
- package/punycode/LICENSE-MIT.txt +20 -0
- package/punycode/README.md +122 -0
- package/punycode/package.json +58 -0
- package/punycode/punycode.es6.js +441 -0
- package/punycode/punycode.js +440 -0
- package/qs/.editorconfig +43 -0
- package/qs/.eslintrc +37 -0
- package/qs/.github/FUNDING.yml +12 -0
- package/qs/.nycrc +13 -0
- package/qs/CHANGELOG.md +250 -0
- package/qs/LICENSE.md +29 -0
- package/qs/README.md +510 -0
- package/qs/bower.json +21 -0
- package/qs/component.json +15 -0
- package/qs/dist/qs.js +648 -0
- package/qs/lib/formats.js +18 -0
- package/qs/lib/index.js +11 -0
- package/qs/lib/parse.js +175 -0
- package/qs/lib/stringify.js +217 -0
- package/qs/lib/utils.js +215 -0
- package/qs/package.json +54 -0
- package/qs/test/index.js +7 -0
- package/qs/test/parse.js +649 -0
- package/qs/test/stringify.js +642 -0
- package/qs/test/utils.js +65 -0
- package/request/CHANGELOG.md +717 -0
- package/request/LICENSE +55 -0
- package/request/README.md +1133 -0
- package/request/index.js +155 -0
- package/request/lib/auth.js +167 -0
- package/request/lib/cookies.js +38 -0
- package/request/lib/getProxyFromURI.js +79 -0
- package/request/lib/har.js +205 -0
- package/request/lib/hawk.js +89 -0
- package/request/lib/helpers.js +66 -0
- package/request/lib/multipart.js +112 -0
- package/request/lib/oauth.js +148 -0
- package/request/lib/querystring.js +50 -0
- package/request/lib/redirect.js +154 -0
- package/request/lib/tunnel.js +175 -0
- package/request/package.json +86 -0
- package/request/request.js +1553 -0
- package/safe-buffer/LICENSE +21 -0
- package/safe-buffer/README.md +584 -0
- package/safe-buffer/index.d.ts +187 -0
- package/safe-buffer/index.js +65 -0
- package/safe-buffer/package.json +51 -0
- package/safer-buffer/LICENSE +21 -0
- package/safer-buffer/Porting-Buffer.md +268 -0
- package/safer-buffer/Readme.md +156 -0
- package/safer-buffer/dangerous.js +58 -0
- package/safer-buffer/package.json +34 -0
- package/safer-buffer/safer.js +77 -0
- package/safer-buffer/tests.js +406 -0
- package/sax/AUTHORS +10 -0
- package/sax/LICENSE +32 -0
- package/sax/LICENSE-W3C.html +188 -0
- package/sax/README.md +216 -0
- package/sax/component.json +12 -0
- package/sax/examples/big-not-pretty.xml +8002 -0
- package/sax/examples/example.js +29 -0
- package/sax/examples/get-products.js +58 -0
- package/sax/examples/hello-world.js +4 -0
- package/sax/examples/not-pretty.xml +8 -0
- package/sax/examples/pretty-print.js +74 -0
- package/sax/examples/shopping.xml +2 -0
- package/sax/examples/strict.dtd +870 -0
- package/sax/examples/test.html +15 -0
- package/sax/examples/test.xml +1254 -0
- package/sax/lib/sax.js +1355 -0
- package/sax/package.json +12 -0
- package/sax/test/attribute-name.js +33 -0
- package/sax/test/attribute-no-space.js +75 -0
- package/sax/test/buffer-overrun.js +26 -0
- package/sax/test/case.js +50 -0
- package/sax/test/cdata-chunked.js +11 -0
- package/sax/test/cdata-end-split.js +15 -0
- package/sax/test/cdata-fake-end.js +28 -0
- package/sax/test/cdata-multiple.js +15 -0
- package/sax/test/cdata.js +10 -0
- package/sax/test/cyrillic.js +8 -0
- package/sax/test/duplicate-attribute.js +13 -0
- package/sax/test/end_empty_stream.js +5 -0
- package/sax/test/entities.js +10 -0
- package/sax/test/entity-mega.js +16 -0
- package/sax/test/flush.js +13 -0
- package/sax/test/index.js +86 -0
- package/sax/test/issue-23.js +43 -0
- package/sax/test/issue-30.js +24 -0
- package/sax/test/issue-35.js +15 -0
- package/sax/test/issue-47.js +12 -0
- package/sax/test/issue-49.js +31 -0
- package/sax/test/issue-84.js +13 -0
- package/sax/test/parser-position.js +28 -0
- package/sax/test/script-close-better.js +12 -0
- package/sax/test/script.js +12 -0
- package/sax/test/self-closing-child-strict.js +44 -0
- package/sax/test/self-closing-child.js +44 -0
- package/sax/test/self-closing-tag.js +25 -0
- package/sax/test/stray-ending.js +17 -0
- package/sax/test/trailing-attribute-no-value.js +10 -0
- package/sax/test/trailing-non-whitespace.js +18 -0
- package/sax/test/unclosed-root.js +11 -0
- package/sax/test/unquoted.js +18 -0
- package/sax/test/utf8-split.js +32 -0
- package/sax/test/xmlns-as-tag-name.js +15 -0
- package/sax/test/xmlns-issue-41.js +68 -0
- package/sax/test/xmlns-rebinding.js +63 -0
- package/sax/test/xmlns-strict.js +74 -0
- package/sax/test/xmlns-unbound-element.js +33 -0
- package/sax/test/xmlns-unbound.js +15 -0
- package/sax/test/xmlns-xml-default-ns.js +31 -0
- package/sax/test/xmlns-xml-default-prefix-attribute.js +36 -0
- package/sax/test/xmlns-xml-default-prefix.js +21 -0
- package/sax/test/xmlns-xml-default-redefine.js +41 -0
- package/simple-csv-reader/.editorconfig +8 -0
- package/simple-csv-reader/LICENSE +21 -0
- package/simple-csv-reader/README.md +32 -0
- package/simple-csv-reader/dist/simple-csv-reader.min.js +2 -0
- package/simple-csv-reader/dist/simple-csv-reader.min.js.map +1 -0
- package/simple-csv-reader/gulpfile.js +26 -0
- package/simple-csv-reader/index.js +131 -0
- package/simple-csv-reader/package.json +38 -0
- package/sshpk/.travis.yml +11 -0
- package/sshpk/Jenkinsfile +86 -0
- package/sshpk/LICENSE +18 -0
- package/sshpk/README.md +804 -0
- package/sshpk/bin/sshpk-conv +243 -0
- package/sshpk/bin/sshpk-sign +191 -0
- package/sshpk/bin/sshpk-verify +167 -0
- package/sshpk/lib/algs.js +168 -0
- package/sshpk/lib/certificate.js +410 -0
- package/sshpk/lib/dhe.js +397 -0
- package/sshpk/lib/ed-compat.js +92 -0
- package/sshpk/lib/errors.js +84 -0
- package/sshpk/lib/fingerprint.js +220 -0
- package/sshpk/lib/formats/auto.js +124 -0
- package/sshpk/lib/formats/dnssec.js +287 -0
- package/sshpk/lib/formats/openssh-cert.js +352 -0
- package/sshpk/lib/formats/pem.js +290 -0
- package/sshpk/lib/formats/pkcs1.js +373 -0
- package/sshpk/lib/formats/pkcs8.js +631 -0
- package/sshpk/lib/formats/putty.js +194 -0
- package/sshpk/lib/formats/rfc4253.js +166 -0
- package/sshpk/lib/formats/ssh-private.js +262 -0
- package/sshpk/lib/formats/ssh.js +115 -0
- package/sshpk/lib/formats/x509-pem.js +88 -0
- package/sshpk/lib/formats/x509.js +752 -0
- package/sshpk/lib/identity.js +373 -0
- package/sshpk/lib/index.js +40 -0
- package/sshpk/lib/key.js +294 -0
- package/sshpk/lib/private-key.js +247 -0
- package/sshpk/lib/signature.js +314 -0
- package/sshpk/lib/ssh-buffer.js +149 -0
- package/sshpk/lib/utils.js +404 -0
- package/sshpk/man/man1/sshpk-conv.1 +135 -0
- package/sshpk/man/man1/sshpk-sign.1 +81 -0
- package/sshpk/man/man1/sshpk-verify.1 +68 -0
- package/sshpk/package.json +60 -0
- package/tough-cookie/LICENSE +12 -0
- package/tough-cookie/README.md +527 -0
- package/tough-cookie/lib/cookie.js +1482 -0
- package/tough-cookie/lib/memstore.js +181 -0
- package/tough-cookie/lib/pathMatch.js +61 -0
- package/tough-cookie/lib/permuteDomain.js +56 -0
- package/tough-cookie/lib/pubsuffix-psl.js +38 -0
- package/tough-cookie/lib/store.js +75 -0
- package/tough-cookie/lib/version.js +2 -0
- package/tough-cookie/package.json +78 -0
- package/tunnel-agent/LICENSE +55 -0
- package/tunnel-agent/README.md +4 -0
- package/tunnel-agent/index.js +244 -0
- package/tunnel-agent/package.json +22 -0
- package/tweetnacl/AUTHORS.md +28 -0
- package/tweetnacl/CHANGELOG.md +221 -0
- package/tweetnacl/LICENSE +24 -0
- package/tweetnacl/PULL_REQUEST_TEMPLATE.md +20 -0
- package/tweetnacl/README.md +459 -0
- package/tweetnacl/nacl-fast.js +2388 -0
- package/tweetnacl/nacl-fast.min.js +2 -0
- package/tweetnacl/nacl.d.ts +98 -0
- package/tweetnacl/nacl.js +1175 -0
- package/tweetnacl/nacl.min.js +1 -0
- package/tweetnacl/package.json +58 -0
- package/uri-js/LICENSE +11 -0
- package/uri-js/README.md +203 -0
- package/uri-js/dist/es5/uri.all.d.ts +59 -0
- package/uri-js/dist/es5/uri.all.js +1443 -0
- package/uri-js/dist/es5/uri.all.js.map +1 -0
- package/uri-js/dist/es5/uri.all.min.d.ts +59 -0
- package/uri-js/dist/es5/uri.all.min.js +3 -0
- package/uri-js/dist/es5/uri.all.min.js.map +1 -0
- package/uri-js/dist/esnext/index.d.ts +1 -0
- package/uri-js/dist/esnext/index.js +17 -0
- package/uri-js/dist/esnext/index.js.map +1 -0
- package/uri-js/dist/esnext/regexps-iri.d.ts +3 -0
- package/uri-js/dist/esnext/regexps-iri.js +3 -0
- package/uri-js/dist/esnext/regexps-iri.js.map +1 -0
- package/uri-js/dist/esnext/regexps-uri.d.ts +4 -0
- package/uri-js/dist/esnext/regexps-uri.js +42 -0
- package/uri-js/dist/esnext/regexps-uri.js.map +1 -0
- package/uri-js/dist/esnext/schemes/http.d.ts +3 -0
- package/uri-js/dist/esnext/schemes/http.js +28 -0
- package/uri-js/dist/esnext/schemes/http.js.map +1 -0
- package/uri-js/dist/esnext/schemes/https.d.ts +3 -0
- package/uri-js/dist/esnext/schemes/https.js +9 -0
- package/uri-js/dist/esnext/schemes/https.js.map +1 -0
- package/uri-js/dist/esnext/schemes/mailto.d.ts +12 -0
- package/uri-js/dist/esnext/schemes/mailto.js +148 -0
- package/uri-js/dist/esnext/schemes/mailto.js.map +1 -0
- package/uri-js/dist/esnext/schemes/urn-uuid.d.ts +7 -0
- package/uri-js/dist/esnext/schemes/urn-uuid.js +23 -0
- package/uri-js/dist/esnext/schemes/urn-uuid.js.map +1 -0
- package/uri-js/dist/esnext/schemes/urn.d.ts +10 -0
- package/uri-js/dist/esnext/schemes/urn.js +49 -0
- package/uri-js/dist/esnext/schemes/urn.js.map +1 -0
- package/uri-js/dist/esnext/schemes/ws.d.ts +7 -0
- package/uri-js/dist/esnext/schemes/ws.js +41 -0
- package/uri-js/dist/esnext/schemes/ws.js.map +1 -0
- package/uri-js/dist/esnext/schemes/wss.d.ts +3 -0
- package/uri-js/dist/esnext/schemes/wss.js +9 -0
- package/uri-js/dist/esnext/schemes/wss.js.map +1 -0
- package/uri-js/dist/esnext/uri.d.ts +59 -0
- package/uri-js/dist/esnext/uri.js +480 -0
- package/uri-js/dist/esnext/uri.js.map +1 -0
- package/uri-js/dist/esnext/util.d.ts +6 -0
- package/uri-js/dist/esnext/util.js +36 -0
- package/uri-js/dist/esnext/util.js.map +1 -0
- package/uri-js/package.json +77 -0
- package/uri-js/yarn.lock +2558 -0
- package/uuid/AUTHORS +5 -0
- package/uuid/CHANGELOG.md +119 -0
- package/uuid/LICENSE.md +21 -0
- package/uuid/README.md +276 -0
- package/uuid/bin/uuid +65 -0
- package/uuid/index.js +8 -0
- package/uuid/lib/bytesToUuid.js +26 -0
- package/uuid/lib/md5-browser.js +216 -0
- package/uuid/lib/md5.js +25 -0
- package/uuid/lib/rng-browser.js +34 -0
- package/uuid/lib/rng.js +8 -0
- package/uuid/lib/sha1-browser.js +89 -0
- package/uuid/lib/sha1.js +25 -0
- package/uuid/lib/v35.js +57 -0
- package/uuid/package.json +49 -0
- package/uuid/v1.js +109 -0
- package/uuid/v3.js +4 -0
- package/uuid/v4.js +29 -0
- package/uuid/v5.js +3 -0
- package/verror/CHANGES.md +28 -0
- package/verror/CONTRIBUTING.md +19 -0
- package/verror/LICENSE +19 -0
- package/verror/README.md +528 -0
- package/verror/lib/verror.js +451 -0
- package/verror/package.json +22 -0
- package/xml2js/.travis.yml +5 -0
- package/xml2js/83.coffee +6 -0
- package/xml2js/LICENSE +19 -0
- package/xml2js/README.md +248 -0
- package/xml2js/canon.xml +482 -0
- package/xml2js/lib/xml2js.js +299 -0
- package/xml2js/package.json +47 -0
- package/xml2js/text.coffee +11 -0
- package/xml2js/text.xml +485 -0
- package/youtube-search/.travis.yml +5 -0
- package/youtube-search/README.md +61 -0
- package/youtube-search/index.d.ts +77 -0
- package/youtube-search/index.js +111 -0
- package/youtube-search/package.json +29 -0
- package/youtube-search/tests/test-search.js +32 -0
- package/ytdl-core/LICENSE +21 -0
- package/ytdl-core/README.md +238 -0
- package/ytdl-core/lib/cache.js +54 -0
- package/ytdl-core/lib/format-utils.js +250 -0
- package/ytdl-core/lib/formats.js +524 -0
- package/ytdl-core/lib/index.js +214 -0
- package/ytdl-core/lib/info-extras.js +365 -0
- package/ytdl-core/lib/info.js +495 -0
- package/ytdl-core/lib/sig.js +122 -0
- package/ytdl-core/lib/url-utils.js +91 -0
- package/ytdl-core/lib/utils.js +286 -0
- package/ytdl-core/node_modules/sax/LICENSE +41 -0
- package/ytdl-core/node_modules/sax/README.md +225 -0
- package/ytdl-core/node_modules/sax/lib/sax.js +1565 -0
- package/ytdl-core/node_modules/sax/package.json +25 -0
- package/ytdl-core/package.json +61 -0
- package/ytdl-core/typings/index.d.ts +426 -0
- package/ytdl-getinfo/.travis.yml +3 -0
- package/ytdl-getinfo/README.md +77 -0
- package/ytdl-getinfo/index.js +105 -0
- package/ytdl-getinfo/package.json +33 -0
- package/ytdl-getinfo/playlist.js +50 -0
- package/ytdl-getinfo/test/test.js +68 -0
- package/ytdl-getinfo/updater.js +42 -0
- package/ytdl-getinfo/yarn.lock +533 -0
- package/ytdl-getinfo/ytdl/.gitkeep +0 -0
- package/ytdl-getinfo/ytdl/youtube-dl.exe +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
exports = module.exports = stringify
|
|
2
|
+
exports.getSerialize = serializer
|
|
3
|
+
|
|
4
|
+
function stringify(obj, replacer, spaces, cycleReplacer) {
|
|
5
|
+
return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
function serializer(replacer, cycleReplacer) {
|
|
9
|
+
var stack = [], keys = []
|
|
10
|
+
|
|
11
|
+
if (cycleReplacer == null) cycleReplacer = function(key, value) {
|
|
12
|
+
if (stack[0] === value) return "[Circular ~]"
|
|
13
|
+
return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]"
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return function(key, value) {
|
|
17
|
+
if (stack.length > 0) {
|
|
18
|
+
var thisPos = stack.indexOf(this)
|
|
19
|
+
~thisPos ? stack.splice(thisPos + 1) : stack.push(this)
|
|
20
|
+
~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)
|
|
21
|
+
if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)
|
|
22
|
+
}
|
|
23
|
+
else stack.push(value)
|
|
24
|
+
|
|
25
|
+
return replacer == null ? value : replacer.call(this, key, value)
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
var Sinon = require("sinon")
|
|
2
|
+
var stringify = require("..")
|
|
3
|
+
function jsonify(obj) { return JSON.stringify(obj, null, 2) }
|
|
4
|
+
|
|
5
|
+
describe("Stringify", function() {
|
|
6
|
+
it("must stringify circular objects", function() {
|
|
7
|
+
var obj = {name: "Alice"}
|
|
8
|
+
obj.self = obj
|
|
9
|
+
var json = stringify(obj, null, 2)
|
|
10
|
+
json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"}))
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
it("must stringify circular objects with intermediaries", function() {
|
|
14
|
+
var obj = {name: "Alice"}
|
|
15
|
+
obj.identity = {self: obj}
|
|
16
|
+
var json = stringify(obj, null, 2)
|
|
17
|
+
json.must.eql(jsonify({name: "Alice", identity: {self: "[Circular ~]"}}))
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
it("must stringify circular objects deeper", function() {
|
|
21
|
+
var obj = {name: "Alice", child: {name: "Bob"}}
|
|
22
|
+
obj.child.self = obj.child
|
|
23
|
+
|
|
24
|
+
stringify(obj, null, 2).must.eql(jsonify({
|
|
25
|
+
name: "Alice",
|
|
26
|
+
child: {name: "Bob", self: "[Circular ~.child]"}
|
|
27
|
+
}))
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
it("must stringify circular objects deeper with intermediaries", function() {
|
|
31
|
+
var obj = {name: "Alice", child: {name: "Bob"}}
|
|
32
|
+
obj.child.identity = {self: obj.child}
|
|
33
|
+
|
|
34
|
+
stringify(obj, null, 2).must.eql(jsonify({
|
|
35
|
+
name: "Alice",
|
|
36
|
+
child: {name: "Bob", identity: {self: "[Circular ~.child]"}}
|
|
37
|
+
}))
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
it("must stringify circular objects in an array", function() {
|
|
41
|
+
var obj = {name: "Alice"}
|
|
42
|
+
obj.self = [obj, obj]
|
|
43
|
+
|
|
44
|
+
stringify(obj, null, 2).must.eql(jsonify({
|
|
45
|
+
name: "Alice", self: ["[Circular ~]", "[Circular ~]"]
|
|
46
|
+
}))
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
it("must stringify circular objects deeper in an array", function() {
|
|
50
|
+
var obj = {name: "Alice", children: [{name: "Bob"}, {name: "Eve"}]}
|
|
51
|
+
obj.children[0].self = obj.children[0]
|
|
52
|
+
obj.children[1].self = obj.children[1]
|
|
53
|
+
|
|
54
|
+
stringify(obj, null, 2).must.eql(jsonify({
|
|
55
|
+
name: "Alice",
|
|
56
|
+
children: [
|
|
57
|
+
{name: "Bob", self: "[Circular ~.children.0]"},
|
|
58
|
+
{name: "Eve", self: "[Circular ~.children.1]"}
|
|
59
|
+
]
|
|
60
|
+
}))
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
it("must stringify circular arrays", function() {
|
|
64
|
+
var obj = []
|
|
65
|
+
obj.push(obj)
|
|
66
|
+
obj.push(obj)
|
|
67
|
+
var json = stringify(obj, null, 2)
|
|
68
|
+
json.must.eql(jsonify(["[Circular ~]", "[Circular ~]"]))
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
it("must stringify circular arrays with intermediaries", function() {
|
|
72
|
+
var obj = []
|
|
73
|
+
obj.push({name: "Alice", self: obj})
|
|
74
|
+
obj.push({name: "Bob", self: obj})
|
|
75
|
+
|
|
76
|
+
stringify(obj, null, 2).must.eql(jsonify([
|
|
77
|
+
{name: "Alice", self: "[Circular ~]"},
|
|
78
|
+
{name: "Bob", self: "[Circular ~]"}
|
|
79
|
+
]))
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
it("must stringify repeated objects in objects", function() {
|
|
83
|
+
var obj = {}
|
|
84
|
+
var alice = {name: "Alice"}
|
|
85
|
+
obj.alice1 = alice
|
|
86
|
+
obj.alice2 = alice
|
|
87
|
+
|
|
88
|
+
stringify(obj, null, 2).must.eql(jsonify({
|
|
89
|
+
alice1: {name: "Alice"},
|
|
90
|
+
alice2: {name: "Alice"}
|
|
91
|
+
}))
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
it("must stringify repeated objects in arrays", function() {
|
|
95
|
+
var alice = {name: "Alice"}
|
|
96
|
+
var obj = [alice, alice]
|
|
97
|
+
var json = stringify(obj, null, 2)
|
|
98
|
+
json.must.eql(jsonify([{name: "Alice"}, {name: "Alice"}]))
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
it("must call given decycler and use its output", function() {
|
|
102
|
+
var obj = {}
|
|
103
|
+
obj.a = obj
|
|
104
|
+
obj.b = obj
|
|
105
|
+
|
|
106
|
+
var decycle = Sinon.spy(function() { return decycle.callCount })
|
|
107
|
+
var json = stringify(obj, null, 2, decycle)
|
|
108
|
+
json.must.eql(jsonify({a: 1, b: 2}, null, 2))
|
|
109
|
+
|
|
110
|
+
decycle.callCount.must.equal(2)
|
|
111
|
+
decycle.thisValues[0].must.equal(obj)
|
|
112
|
+
decycle.args[0][0].must.equal("a")
|
|
113
|
+
decycle.args[0][1].must.equal(obj)
|
|
114
|
+
decycle.thisValues[1].must.equal(obj)
|
|
115
|
+
decycle.args[1][0].must.equal("b")
|
|
116
|
+
decycle.args[1][1].must.equal(obj)
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
it("must call replacer and use its output", function() {
|
|
120
|
+
var obj = {name: "Alice", child: {name: "Bob"}}
|
|
121
|
+
|
|
122
|
+
var replacer = Sinon.spy(bangString)
|
|
123
|
+
var json = stringify(obj, replacer, 2)
|
|
124
|
+
json.must.eql(jsonify({name: "Alice!", child: {name: "Bob!"}}))
|
|
125
|
+
|
|
126
|
+
replacer.callCount.must.equal(4)
|
|
127
|
+
replacer.args[0][0].must.equal("")
|
|
128
|
+
replacer.args[0][1].must.equal(obj)
|
|
129
|
+
replacer.thisValues[1].must.equal(obj)
|
|
130
|
+
replacer.args[1][0].must.equal("name")
|
|
131
|
+
replacer.args[1][1].must.equal("Alice")
|
|
132
|
+
replacer.thisValues[2].must.equal(obj)
|
|
133
|
+
replacer.args[2][0].must.equal("child")
|
|
134
|
+
replacer.args[2][1].must.equal(obj.child)
|
|
135
|
+
replacer.thisValues[3].must.equal(obj.child)
|
|
136
|
+
replacer.args[3][0].must.equal("name")
|
|
137
|
+
replacer.args[3][1].must.equal("Bob")
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
it("must call replacer after describing circular references", function() {
|
|
141
|
+
var obj = {name: "Alice"}
|
|
142
|
+
obj.self = obj
|
|
143
|
+
|
|
144
|
+
var replacer = Sinon.spy(bangString)
|
|
145
|
+
var json = stringify(obj, replacer, 2)
|
|
146
|
+
json.must.eql(jsonify({name: "Alice!", self: "[Circular ~]!"}))
|
|
147
|
+
|
|
148
|
+
replacer.callCount.must.equal(3)
|
|
149
|
+
replacer.args[0][0].must.equal("")
|
|
150
|
+
replacer.args[0][1].must.equal(obj)
|
|
151
|
+
replacer.thisValues[1].must.equal(obj)
|
|
152
|
+
replacer.args[1][0].must.equal("name")
|
|
153
|
+
replacer.args[1][1].must.equal("Alice")
|
|
154
|
+
replacer.thisValues[2].must.equal(obj)
|
|
155
|
+
replacer.args[2][0].must.equal("self")
|
|
156
|
+
replacer.args[2][1].must.equal("[Circular ~]")
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
it("must call given decycler and use its output for nested objects",
|
|
160
|
+
function() {
|
|
161
|
+
var obj = {}
|
|
162
|
+
obj.a = obj
|
|
163
|
+
obj.b = {self: obj}
|
|
164
|
+
|
|
165
|
+
var decycle = Sinon.spy(function() { return decycle.callCount })
|
|
166
|
+
var json = stringify(obj, null, 2, decycle)
|
|
167
|
+
json.must.eql(jsonify({a: 1, b: {self: 2}}))
|
|
168
|
+
|
|
169
|
+
decycle.callCount.must.equal(2)
|
|
170
|
+
decycle.args[0][0].must.equal("a")
|
|
171
|
+
decycle.args[0][1].must.equal(obj)
|
|
172
|
+
decycle.args[1][0].must.equal("self")
|
|
173
|
+
decycle.args[1][1].must.equal(obj)
|
|
174
|
+
})
|
|
175
|
+
|
|
176
|
+
it("must use decycler's output when it returned null", function() {
|
|
177
|
+
var obj = {a: "b"}
|
|
178
|
+
obj.self = obj
|
|
179
|
+
obj.selves = [obj, obj]
|
|
180
|
+
|
|
181
|
+
function decycle() { return null }
|
|
182
|
+
stringify(obj, null, 2, decycle).must.eql(jsonify({
|
|
183
|
+
a: "b",
|
|
184
|
+
self: null,
|
|
185
|
+
selves: [null, null]
|
|
186
|
+
}))
|
|
187
|
+
})
|
|
188
|
+
|
|
189
|
+
it("must use decycler's output when it returned undefined", function() {
|
|
190
|
+
var obj = {a: "b"}
|
|
191
|
+
obj.self = obj
|
|
192
|
+
obj.selves = [obj, obj]
|
|
193
|
+
|
|
194
|
+
function decycle() {}
|
|
195
|
+
stringify(obj, null, 2, decycle).must.eql(jsonify({
|
|
196
|
+
a: "b",
|
|
197
|
+
selves: [null, null]
|
|
198
|
+
}))
|
|
199
|
+
})
|
|
200
|
+
|
|
201
|
+
it("must throw given a decycler that returns a cycle", function() {
|
|
202
|
+
var obj = {}
|
|
203
|
+
obj.self = obj
|
|
204
|
+
var err
|
|
205
|
+
function identity(key, value) { return value }
|
|
206
|
+
try { stringify(obj, null, 2, identity) } catch (ex) { err = ex }
|
|
207
|
+
err.must.be.an.instanceof(TypeError)
|
|
208
|
+
})
|
|
209
|
+
|
|
210
|
+
describe(".getSerialize", function() {
|
|
211
|
+
it("must stringify circular objects", function() {
|
|
212
|
+
var obj = {a: "b"}
|
|
213
|
+
obj.circularRef = obj
|
|
214
|
+
obj.list = [obj, obj]
|
|
215
|
+
|
|
216
|
+
var json = JSON.stringify(obj, stringify.getSerialize(), 2)
|
|
217
|
+
json.must.eql(jsonify({
|
|
218
|
+
"a": "b",
|
|
219
|
+
"circularRef": "[Circular ~]",
|
|
220
|
+
"list": ["[Circular ~]", "[Circular ~]"]
|
|
221
|
+
}))
|
|
222
|
+
})
|
|
223
|
+
|
|
224
|
+
// This is the behavior as of Mar 3, 2015.
|
|
225
|
+
// The serializer function keeps state inside the returned function and
|
|
226
|
+
// so far I'm not sure how to not do that. JSON.stringify's replacer is not
|
|
227
|
+
// called _after_ serialization.
|
|
228
|
+
xit("must return a function that could be called twice", function() {
|
|
229
|
+
var obj = {name: "Alice"}
|
|
230
|
+
obj.self = obj
|
|
231
|
+
|
|
232
|
+
var json
|
|
233
|
+
var serializer = stringify.getSerialize()
|
|
234
|
+
|
|
235
|
+
json = JSON.stringify(obj, serializer, 2)
|
|
236
|
+
json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"}))
|
|
237
|
+
|
|
238
|
+
json = JSON.stringify(obj, serializer, 2)
|
|
239
|
+
json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"}))
|
|
240
|
+
})
|
|
241
|
+
})
|
|
242
|
+
})
|
|
243
|
+
|
|
244
|
+
function bangString(key, value) {
|
|
245
|
+
return typeof value == "string" ? value + "!" : value
|
|
246
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## not yet released
|
|
4
|
+
|
|
5
|
+
None yet.
|
|
6
|
+
|
|
7
|
+
## v1.4.2 (2021-11-29)
|
|
8
|
+
|
|
9
|
+
* #35 Backport json-schema 0.4.0 to version 1.4.x
|
|
10
|
+
|
|
11
|
+
## v1.4.1 (2017-08-02)
|
|
12
|
+
|
|
13
|
+
* #21 Update verror dep
|
|
14
|
+
* #22 Update extsprintf dependency
|
|
15
|
+
* #23 update contribution guidelines
|
|
16
|
+
|
|
17
|
+
## v1.4.0 (2017-03-13)
|
|
18
|
+
|
|
19
|
+
* #7 Add parseInteger() function for safer number parsing
|
|
20
|
+
|
|
21
|
+
## v1.3.1 (2016-09-12)
|
|
22
|
+
|
|
23
|
+
* #13 Incompatible with webpack
|
|
24
|
+
|
|
25
|
+
## v1.3.0 (2016-06-22)
|
|
26
|
+
|
|
27
|
+
* #14 add safer version of hasOwnProperty()
|
|
28
|
+
* #15 forEachKey() should ignore inherited properties
|
|
29
|
+
|
|
30
|
+
## v1.2.2 (2015-10-15)
|
|
31
|
+
|
|
32
|
+
* #11 NPM package shouldn't include any code that does `require('JSV')`
|
|
33
|
+
* #12 jsl.node.conf missing definition for "module"
|
|
34
|
+
|
|
35
|
+
## v1.2.1 (2015-10-14)
|
|
36
|
+
|
|
37
|
+
* #8 odd date parsing behaviour
|
|
38
|
+
|
|
39
|
+
## v1.2.0 (2015-10-13)
|
|
40
|
+
|
|
41
|
+
* #9 want function for returning RFC1123 dates
|
|
42
|
+
|
|
43
|
+
## v1.1.0 (2015-09-02)
|
|
44
|
+
|
|
45
|
+
* #6 a new suite of hrtime manipulation routines: `hrtimeAdd()`,
|
|
46
|
+
`hrtimeAccum()`, `hrtimeNanosec()`, `hrtimeMicrosec()` and
|
|
47
|
+
`hrtimeMillisec()`.
|
|
48
|
+
|
|
49
|
+
## v1.0.0 (2015-09-01)
|
|
50
|
+
|
|
51
|
+
First tracked release. Includes everything in previous releases, plus:
|
|
52
|
+
|
|
53
|
+
* #4 want function for merging objects
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
This repository uses [cr.joyent.us](https://cr.joyent.us) (Gerrit) for new
|
|
4
|
+
changes. Anyone can submit changes. To get started, see the [cr.joyent.us user
|
|
5
|
+
guide](https://github.com/joyent/joyent-gerrit/blob/master/docs/user/README.md).
|
|
6
|
+
This repo does not use GitHub pull requests.
|
|
7
|
+
|
|
8
|
+
See the [Joyent Engineering
|
|
9
|
+
Guidelines](https://github.com/joyent/eng/blob/master/docs/index.md) for general
|
|
10
|
+
best practices expected in this repository.
|
|
11
|
+
|
|
12
|
+
Contributions should be "make prepush" clean. The "prepush" target runs the
|
|
13
|
+
"check" target, which requires these separate tools:
|
|
14
|
+
|
|
15
|
+
* https://github.com/davepacheco/jsstyle
|
|
16
|
+
* https://github.com/davepacheco/javascriptlint
|
|
17
|
+
|
|
18
|
+
If you're changing something non-trivial or user-facing, you may want to submit
|
|
19
|
+
an issue first.
|
package/jsprim/LICENSE
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Copyright (c) 2012, Joyent, Inc. All rights reserved.
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
in the Software without restriction, including without limitation the rights
|
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
furnished to do so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
|
11
|
+
all copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
+
THE SOFTWARE
|
package/jsprim/README.md
ADDED
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
# jsprim: utilities for primitive JavaScript types
|
|
2
|
+
|
|
3
|
+
This module provides miscellaneous facilities for working with strings,
|
|
4
|
+
numbers, dates, and objects and arrays of these basic types.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
### deepCopy(obj)
|
|
8
|
+
|
|
9
|
+
Creates a deep copy of a primitive type, object, or array of primitive types.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### deepEqual(obj1, obj2)
|
|
13
|
+
|
|
14
|
+
Returns whether two objects are equal.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### isEmpty(obj)
|
|
18
|
+
|
|
19
|
+
Returns true if the given object has no properties and false otherwise. This
|
|
20
|
+
is O(1) (unlike `Object.keys(obj).length === 0`, which is O(N)).
|
|
21
|
+
|
|
22
|
+
### hasKey(obj, key)
|
|
23
|
+
|
|
24
|
+
Returns true if the given object has an enumerable, non-inherited property
|
|
25
|
+
called `key`. [For information on enumerability and ownership of properties, see
|
|
26
|
+
the MDN
|
|
27
|
+
documentation.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties)
|
|
28
|
+
|
|
29
|
+
### forEachKey(obj, callback)
|
|
30
|
+
|
|
31
|
+
Like Array.forEach, but iterates enumerable, owned properties of an object
|
|
32
|
+
rather than elements of an array. Equivalent to:
|
|
33
|
+
|
|
34
|
+
for (var key in obj) {
|
|
35
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
36
|
+
callback(key, obj[key]);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
### flattenObject(obj, depth)
|
|
42
|
+
|
|
43
|
+
Flattens an object up to a given level of nesting, returning an array of arrays
|
|
44
|
+
of length "depth + 1", where the first "depth" elements correspond to flattened
|
|
45
|
+
columns and the last element contains the remaining object . For example:
|
|
46
|
+
|
|
47
|
+
flattenObject({
|
|
48
|
+
'I': {
|
|
49
|
+
'A': {
|
|
50
|
+
'i': {
|
|
51
|
+
'datum1': [ 1, 2 ],
|
|
52
|
+
'datum2': [ 3, 4 ]
|
|
53
|
+
},
|
|
54
|
+
'ii': {
|
|
55
|
+
'datum1': [ 3, 4 ]
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
'B': {
|
|
59
|
+
'i': {
|
|
60
|
+
'datum1': [ 5, 6 ]
|
|
61
|
+
},
|
|
62
|
+
'ii': {
|
|
63
|
+
'datum1': [ 7, 8 ],
|
|
64
|
+
'datum2': [ 3, 4 ],
|
|
65
|
+
},
|
|
66
|
+
'iii': {
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
'II': {
|
|
71
|
+
'A': {
|
|
72
|
+
'i': {
|
|
73
|
+
'datum1': [ 1, 2 ],
|
|
74
|
+
'datum2': [ 3, 4 ]
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}, 3)
|
|
79
|
+
|
|
80
|
+
becomes:
|
|
81
|
+
|
|
82
|
+
[
|
|
83
|
+
[ 'I', 'A', 'i', { 'datum1': [ 1, 2 ], 'datum2': [ 3, 4 ] } ],
|
|
84
|
+
[ 'I', 'A', 'ii', { 'datum1': [ 3, 4 ] } ],
|
|
85
|
+
[ 'I', 'B', 'i', { 'datum1': [ 5, 6 ] } ],
|
|
86
|
+
[ 'I', 'B', 'ii', { 'datum1': [ 7, 8 ], 'datum2': [ 3, 4 ] } ],
|
|
87
|
+
[ 'I', 'B', 'iii', {} ],
|
|
88
|
+
[ 'II', 'A', 'i', { 'datum1': [ 1, 2 ], 'datum2': [ 3, 4 ] } ]
|
|
89
|
+
]
|
|
90
|
+
|
|
91
|
+
This function is strict: "depth" must be a non-negative integer and "obj" must
|
|
92
|
+
be a non-null object with at least "depth" levels of nesting under all keys.
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
### flattenIter(obj, depth, func)
|
|
96
|
+
|
|
97
|
+
This is similar to `flattenObject` except that instead of returning an array,
|
|
98
|
+
this function invokes `func(entry)` for each `entry` in the array that
|
|
99
|
+
`flattenObject` would return. `flattenIter(obj, depth, func)` is logically
|
|
100
|
+
equivalent to `flattenObject(obj, depth).forEach(func)`. Importantly, this
|
|
101
|
+
version never constructs the full array. Its memory usage is O(depth) rather
|
|
102
|
+
than O(n) (where `n` is the number of flattened elements).
|
|
103
|
+
|
|
104
|
+
There's another difference between `flattenObject` and `flattenIter` that's
|
|
105
|
+
related to the special case where `depth === 0`. In this case, `flattenObject`
|
|
106
|
+
omits the array wrapping `obj` (which is regrettable).
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
### pluck(obj, key)
|
|
110
|
+
|
|
111
|
+
Fetch nested property "key" from object "obj", traversing objects as needed.
|
|
112
|
+
For example, `pluck(obj, "foo.bar.baz")` is roughly equivalent to
|
|
113
|
+
`obj.foo.bar.baz`, except that:
|
|
114
|
+
|
|
115
|
+
1. If traversal fails, the resulting value is undefined, and no error is
|
|
116
|
+
thrown. For example, `pluck({}, "foo.bar")` is just undefined.
|
|
117
|
+
2. If "obj" has property "key" directly (without traversing), the
|
|
118
|
+
corresponding property is returned. For example,
|
|
119
|
+
`pluck({ 'foo.bar': 1 }, 'foo.bar')` is 1, not undefined. This is also
|
|
120
|
+
true recursively, so `pluck({ 'a': { 'foo.bar': 1 } }, 'a.foo.bar')` is
|
|
121
|
+
also 1, not undefined.
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
### randElt(array)
|
|
125
|
+
|
|
126
|
+
Returns an element from "array" selected uniformly at random. If "array" is
|
|
127
|
+
empty, throws an Error.
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
### startsWith(str, prefix)
|
|
131
|
+
|
|
132
|
+
Returns true if the given string starts with the given prefix and false
|
|
133
|
+
otherwise.
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
### endsWith(str, suffix)
|
|
137
|
+
|
|
138
|
+
Returns true if the given string ends with the given suffix and false
|
|
139
|
+
otherwise.
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
### parseInteger(str, options)
|
|
143
|
+
|
|
144
|
+
Parses the contents of `str` (a string) as an integer. On success, the integer
|
|
145
|
+
value is returned (as a number). On failure, an error is **returned** describing
|
|
146
|
+
why parsing failed.
|
|
147
|
+
|
|
148
|
+
By default, leading and trailing whitespace characters are not allowed, nor are
|
|
149
|
+
trailing characters that are not part of the numeric representation. This
|
|
150
|
+
behaviour can be toggled by using the options below. The empty string (`''`) is
|
|
151
|
+
not considered valid input. If the return value cannot be precisely represented
|
|
152
|
+
as a number (i.e., is smaller than `Number.MIN_SAFE_INTEGER` or larger than
|
|
153
|
+
`Number.MAX_SAFE_INTEGER`), an error is returned. Additionally, the string
|
|
154
|
+
`'-0'` will be parsed as the integer `0`, instead of as the IEEE floating point
|
|
155
|
+
value `-0`.
|
|
156
|
+
|
|
157
|
+
This function accepts both upper and lowercase characters for digits, similar to
|
|
158
|
+
`parseInt()`, `Number()`, and [strtol(3C)](https://illumos.org/man/3C/strtol).
|
|
159
|
+
|
|
160
|
+
The following may be specified in `options`:
|
|
161
|
+
|
|
162
|
+
Option | Type | Default | Meaning
|
|
163
|
+
------------------ | ------- | ------- | ---------------------------
|
|
164
|
+
base | number | 10 | numeric base (radix) to use, in the range 2 to 36
|
|
165
|
+
allowSign | boolean | true | whether to interpret any leading `+` (positive) and `-` (negative) characters
|
|
166
|
+
allowImprecise | boolean | false | whether to accept values that may have lost precision (past `MAX_SAFE_INTEGER` or below `MIN_SAFE_INTEGER`)
|
|
167
|
+
allowPrefix | boolean | false | whether to interpret the prefixes `0b` (base 2), `0o` (base 8), `0t` (base 10), or `0x` (base 16)
|
|
168
|
+
allowTrailing | boolean | false | whether to ignore trailing characters
|
|
169
|
+
trimWhitespace | boolean | false | whether to trim any leading or trailing whitespace/line terminators
|
|
170
|
+
leadingZeroIsOctal | boolean | false | whether a leading zero indicates octal
|
|
171
|
+
|
|
172
|
+
Note that if `base` is unspecified, and `allowPrefix` or `leadingZeroIsOctal`
|
|
173
|
+
are, then the leading characters can change the default base from 10. If `base`
|
|
174
|
+
is explicitly specified and `allowPrefix` is true, then the prefix will only be
|
|
175
|
+
accepted if it matches the specified base. `base` and `leadingZeroIsOctal`
|
|
176
|
+
cannot be used together.
|
|
177
|
+
|
|
178
|
+
**Context:** It's tricky to parse integers with JavaScript's built-in facilities
|
|
179
|
+
for several reasons:
|
|
180
|
+
|
|
181
|
+
- `parseInt()` and `Number()` by default allow the base to be specified in the
|
|
182
|
+
input string by a prefix (e.g., `0x` for hex).
|
|
183
|
+
- `parseInt()` allows trailing nonnumeric characters.
|
|
184
|
+
- `Number(str)` returns 0 when `str` is the empty string (`''`).
|
|
185
|
+
- Both functions return incorrect values when the input string represents a
|
|
186
|
+
valid integer outside the range of integers that can be represented precisely.
|
|
187
|
+
Specifically, `parseInt('9007199254740993')` returns 9007199254740992.
|
|
188
|
+
- Both functions always accept `-` and `+` signs before the digit.
|
|
189
|
+
- Some older JavaScript engines always interpret a leading 0 as indicating
|
|
190
|
+
octal, which can be surprising when parsing input from users who expect a
|
|
191
|
+
leading zero to be insignificant.
|
|
192
|
+
|
|
193
|
+
While each of these may be desirable in some contexts, there are also times when
|
|
194
|
+
none of them are wanted. `parseInteger()` grants greater control over what
|
|
195
|
+
input's permissible.
|
|
196
|
+
|
|
197
|
+
### iso8601(date)
|
|
198
|
+
|
|
199
|
+
Converts a Date object to an ISO8601 date string of the form
|
|
200
|
+
"YYYY-MM-DDTHH:MM:SS.sssZ". This format is not customizable.
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
### parseDateTime(str)
|
|
204
|
+
|
|
205
|
+
Parses a date expressed as a string, as either a number of milliseconds since
|
|
206
|
+
the epoch or any string format that Date accepts, giving preference to the
|
|
207
|
+
former where these two sets overlap (e.g., strings containing small numbers).
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
### hrtimeDiff(timeA, timeB)
|
|
211
|
+
|
|
212
|
+
Given two hrtime readings (as from Node's `process.hrtime()`), where timeA is
|
|
213
|
+
later than timeB, compute the difference and return that as an hrtime. It is
|
|
214
|
+
illegal to invoke this for a pair of times where timeB is newer than timeA.
|
|
215
|
+
|
|
216
|
+
### hrtimeAdd(timeA, timeB)
|
|
217
|
+
|
|
218
|
+
Add two hrtime intervals (as from Node's `process.hrtime()`), returning a new
|
|
219
|
+
hrtime interval array. This function does not modify either input argument.
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
### hrtimeAccum(timeA, timeB)
|
|
223
|
+
|
|
224
|
+
Add two hrtime intervals (as from Node's `process.hrtime()`), storing the
|
|
225
|
+
result in `timeA`. This function overwrites (and returns) the first argument
|
|
226
|
+
passed in.
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
### hrtimeNanosec(timeA), hrtimeMicrosec(timeA), hrtimeMillisec(timeA)
|
|
230
|
+
|
|
231
|
+
This suite of functions converts a hrtime interval (as from Node's
|
|
232
|
+
`process.hrtime()`) into a scalar number of nanoseconds, microseconds or
|
|
233
|
+
milliseconds. Results are truncated, as with `Math.floor()`.
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
### validateJsonObject(schema, object)
|
|
237
|
+
|
|
238
|
+
Uses JSON validation (via JSV) to validate the given object against the given
|
|
239
|
+
schema. On success, returns null. On failure, *returns* (does not throw) a
|
|
240
|
+
useful Error object.
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
### extraProperties(object, allowed)
|
|
244
|
+
|
|
245
|
+
Check an object for unexpected properties. Accepts the object to check, and an
|
|
246
|
+
array of allowed property name strings. If extra properties are detected, an
|
|
247
|
+
array of extra property names is returned. If no properties other than those
|
|
248
|
+
in the allowed list are present on the object, the returned array will be of
|
|
249
|
+
zero length.
|
|
250
|
+
|
|
251
|
+
### mergeObjects(provided, overrides, defaults)
|
|
252
|
+
|
|
253
|
+
Merge properties from objects "provided", "overrides", and "defaults". The
|
|
254
|
+
intended use case is for functions that accept named arguments in an "args"
|
|
255
|
+
object, but want to provide some default values and override other values. In
|
|
256
|
+
that case, "provided" is what the caller specified, "overrides" are what the
|
|
257
|
+
function wants to override, and "defaults" contains default values.
|
|
258
|
+
|
|
259
|
+
The function starts with the values in "defaults", overrides them with the
|
|
260
|
+
values in "provided", and then overrides those with the values in "overrides".
|
|
261
|
+
For convenience, any of these objects may be falsey, in which case they will be
|
|
262
|
+
ignored. The input objects are never modified, but properties in the returned
|
|
263
|
+
object are not deep-copied.
|
|
264
|
+
|
|
265
|
+
For example:
|
|
266
|
+
|
|
267
|
+
mergeObjects(undefined, { 'objectMode': true }, { 'highWaterMark': 0 })
|
|
268
|
+
|
|
269
|
+
returns:
|
|
270
|
+
|
|
271
|
+
{ 'objectMode': true, 'highWaterMark': 0 }
|
|
272
|
+
|
|
273
|
+
For another example:
|
|
274
|
+
|
|
275
|
+
mergeObjects(
|
|
276
|
+
{ 'highWaterMark': 16, 'objectMode': 7 }, /* from caller */
|
|
277
|
+
{ 'objectMode': true }, /* overrides */
|
|
278
|
+
{ 'highWaterMark': 0 }); /* default */
|
|
279
|
+
|
|
280
|
+
returns:
|
|
281
|
+
|
|
282
|
+
{ 'objectMode': true, 'highWaterMark': 16 }
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
# Contributing
|
|
286
|
+
|
|
287
|
+
See separate [contribution guidelines](CONTRIBUTING.md).
|