node-red-contrib-tak-registration 0.11.5 → 0.12.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.
- package/node_modules/@types/node/README.md +2 -2
- package/node_modules/@types/node/assert.d.ts +88 -44
- package/node_modules/@types/node/async_hooks.d.ts +17 -15
- package/node_modules/@types/node/buffer.d.ts +37 -36
- package/node_modules/@types/node/child_process.d.ts +38 -34
- package/node_modules/@types/node/cluster.d.ts +165 -19
- package/node_modules/@types/node/console.d.ts +64 -27
- package/node_modules/@types/node/crypto.d.ts +139 -72
- package/node_modules/@types/node/dgram.d.ts +24 -14
- package/node_modules/@types/node/diagnostics_channel.d.ts +365 -2
- package/node_modules/@types/node/dns/promises.d.ts +79 -28
- package/node_modules/@types/node/dns.d.ts +124 -69
- package/node_modules/@types/node/dom-events.d.ts +2 -0
- package/node_modules/@types/node/domain.d.ts +4 -4
- package/node_modules/@types/node/events.d.ts +115 -63
- package/node_modules/@types/node/fs/promises.d.ts +18 -12
- package/node_modules/@types/node/fs.d.ts +72 -46
- package/node_modules/@types/node/globals.d.ts +27 -0
- package/node_modules/@types/node/http.d.ts +75 -55
- package/node_modules/@types/node/http2.d.ts +83 -47
- package/node_modules/@types/node/https.d.ts +3 -3
- package/node_modules/@types/node/index.d.ts +1 -0
- package/node_modules/@types/node/inspector.d.ts +5 -6
- package/node_modules/@types/node/module.d.ts +14 -0
- package/node_modules/@types/node/net.d.ts +66 -16
- package/node_modules/@types/node/os.d.ts +29 -12
- package/node_modules/@types/node/package.json +3 -16
- package/node_modules/@types/node/path.d.ts +1 -1
- package/node_modules/@types/node/perf_hooks.d.ts +320 -54
- package/node_modules/@types/node/process.d.ts +265 -50
- package/node_modules/@types/node/punycode.d.ts +4 -4
- package/node_modules/@types/node/querystring.d.ts +21 -9
- package/node_modules/@types/node/readline/promises.d.ts +9 -9
- package/node_modules/@types/node/readline.d.ts +21 -20
- package/node_modules/@types/node/repl.d.ts +10 -10
- package/node_modules/@types/node/sea.d.ts +153 -0
- package/node_modules/@types/node/stream/web.d.ts +18 -1
- package/node_modules/@types/node/stream.d.ts +62 -56
- package/node_modules/@types/node/string_decoder.d.ts +5 -5
- package/node_modules/@types/node/test.d.ts +445 -109
- package/node_modules/@types/node/timers/promises.d.ts +10 -6
- package/node_modules/@types/node/timers.d.ts +5 -5
- package/node_modules/@types/node/tls.d.ts +40 -33
- package/node_modules/@types/node/trace_events.d.ts +40 -25
- package/node_modules/@types/node/tty.d.ts +8 -8
- package/node_modules/@types/node/url.d.ts +73 -48
- package/node_modules/@types/node/util.d.ts +131 -22
- package/node_modules/@types/node/v8.d.ts +183 -10
- package/node_modules/@types/node/vm.d.ts +43 -22
- package/node_modules/@types/node/wasi.d.ts +38 -15
- package/node_modules/@types/node/worker_threads.d.ts +19 -16
- package/node_modules/@types/node/zlib.d.ts +16 -3
- package/node_modules/adm-zip/README.md +2 -1
- package/node_modules/adm-zip/adm-zip.js +46 -45
- package/node_modules/adm-zip/headers/entryHeader.js +14 -12
- package/node_modules/adm-zip/headers/mainHeader.js +1 -1
- package/node_modules/adm-zip/methods/inflater.js +6 -3
- package/node_modules/adm-zip/methods/zipcrypto.js +6 -2
- package/node_modules/adm-zip/package.json +2 -2
- package/node_modules/adm-zip/util/errors.js +1 -0
- package/node_modules/adm-zip/zipEntry.js +64 -43
- package/node_modules/adm-zip/zipFile.js +35 -35
- package/node_modules/axios/CHANGELOG.md +873 -711
- package/node_modules/axios/README.md +98 -8
- package/node_modules/axios/dist/axios.js +1461 -350
- package/node_modules/axios/dist/axios.js.map +1 -1
- package/node_modules/axios/dist/axios.min.js +1 -1
- package/node_modules/axios/dist/axios.min.js.map +1 -1
- package/node_modules/axios/dist/browser/axios.cjs +710 -306
- package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
- package/node_modules/axios/dist/esm/axios.js +710 -306
- package/node_modules/axios/dist/esm/axios.js.map +1 -1
- package/node_modules/axios/dist/esm/axios.min.js +1 -1
- package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
- package/node_modules/axios/dist/node/axios.cjs +628 -250
- package/node_modules/axios/dist/node/axios.cjs.map +1 -1
- package/node_modules/axios/index.d.cts +6 -3
- package/node_modules/axios/index.d.ts +6 -3
- package/node_modules/axios/lib/adapters/adapters.js +3 -1
- package/node_modules/axios/lib/adapters/fetch.js +227 -0
- package/node_modules/axios/lib/adapters/http.js +7 -3
- package/node_modules/axios/lib/adapters/xhr.js +31 -101
- package/node_modules/axios/lib/core/Axios.js +28 -1
- package/node_modules/axios/lib/core/AxiosHeaders.js +4 -0
- package/node_modules/axios/lib/core/mergeConfig.js +1 -1
- package/node_modules/axios/lib/defaults/index.js +7 -5
- package/node_modules/axios/lib/env/data.js +1 -1
- package/node_modules/axios/lib/helpers/AxiosTransformStream.js +9 -8
- package/node_modules/axios/lib/helpers/combineURLs.js +1 -1
- package/node_modules/axios/lib/helpers/composeSignals.js +46 -0
- package/node_modules/axios/lib/helpers/formDataToJSON.js +3 -0
- package/node_modules/axios/lib/helpers/progressEventReducer.js +32 -0
- package/node_modules/axios/lib/helpers/resolveConfig.js +57 -0
- package/node_modules/axios/lib/helpers/throttle.js +5 -3
- package/node_modules/axios/lib/helpers/trackStream.js +55 -0
- package/node_modules/axios/lib/platform/common/utils.js +4 -1
- package/node_modules/axios/lib/utils.js +7 -2
- package/node_modules/axios/package.json +27 -26
- package/node_modules/call-bind/CHANGELOG.md +16 -0
- package/node_modules/call-bind/index.js +2 -11
- package/node_modules/call-bind/package.json +11 -6
- package/node_modules/define-data-property/CHANGELOG.md +29 -0
- package/node_modules/define-data-property/index.d.ts +12 -3
- package/node_modules/define-data-property/index.js +4 -16
- package/node_modules/define-data-property/package.json +26 -33
- package/node_modules/define-data-property/test/index.js +10 -10
- package/node_modules/es-define-property/.eslintrc +13 -0
- package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
- package/node_modules/es-define-property/.nycrc +9 -0
- package/node_modules/es-define-property/CHANGELOG.md +15 -0
- package/node_modules/es-define-property/LICENSE +21 -0
- package/node_modules/es-define-property/README.md +49 -0
- package/node_modules/es-define-property/index.d.ts +3 -0
- package/node_modules/es-define-property/index.js +16 -0
- package/node_modules/es-define-property/package.json +81 -0
- package/node_modules/es-define-property/test/index.js +55 -0
- package/node_modules/es-define-property/tsconfig.json +50 -0
- package/node_modules/es-errors/.eslintrc +5 -0
- package/node_modules/es-errors/.github/FUNDING.yml +12 -0
- package/node_modules/es-errors/CHANGELOG.md +40 -0
- package/node_modules/es-errors/LICENSE +21 -0
- package/node_modules/es-errors/README.md +55 -0
- package/node_modules/es-errors/eval.d.ts +3 -0
- package/node_modules/es-errors/eval.js +4 -0
- package/node_modules/es-errors/index.d.ts +3 -0
- package/node_modules/es-errors/index.js +4 -0
- package/node_modules/es-errors/package.json +80 -0
- package/node_modules/es-errors/range.d.ts +3 -0
- package/node_modules/es-errors/range.js +4 -0
- package/node_modules/es-errors/ref.d.ts +3 -0
- package/node_modules/es-errors/ref.js +4 -0
- package/node_modules/es-errors/syntax.d.ts +3 -0
- package/node_modules/es-errors/syntax.js +4 -0
- package/node_modules/es-errors/test/index.js +19 -0
- package/node_modules/es-errors/tsconfig.json +49 -0
- package/node_modules/es-errors/type.d.ts +3 -0
- package/node_modules/es-errors/type.js +4 -0
- package/node_modules/es-errors/uri.d.ts +3 -0
- package/node_modules/es-errors/uri.js +4 -0
- package/node_modules/fast-xml-parser/CHANGELOG.md +17 -0
- package/node_modules/fast-xml-parser/README.md +9 -15
- package/node_modules/fast-xml-parser/package.json +4 -1
- package/node_modules/fast-xml-parser/src/fxp.d.ts +365 -71
- package/node_modules/fast-xml-parser/src/v5/CharsSymbol.js +16 -0
- package/node_modules/fast-xml-parser/src/v5/EntitiesParser.js +107 -0
- package/node_modules/fast-xml-parser/src/v5/OptionsBuilder.js +64 -0
- package/node_modules/fast-xml-parser/src/v5/OutputBuilders/BaseOutputBuilder.js +71 -0
- package/node_modules/fast-xml-parser/src/v5/OutputBuilders/JsArrBuilder.js +103 -0
- package/node_modules/fast-xml-parser/src/v5/OutputBuilders/JsMinArrBuilder.js +102 -0
- package/node_modules/fast-xml-parser/src/v5/OutputBuilders/JsObjBuilder.js +156 -0
- package/node_modules/fast-xml-parser/src/v5/OutputBuilders/ParserOptionsBuilder.js +96 -0
- package/node_modules/fast-xml-parser/src/v5/Report.js +0 -0
- package/node_modules/fast-xml-parser/src/v5/TagPath.js +81 -0
- package/node_modules/fast-xml-parser/src/v5/TagPathMatcher.js +15 -0
- package/node_modules/fast-xml-parser/src/v5/XMLParser.js +85 -0
- package/node_modules/fast-xml-parser/src/v5/Xml2JsParser.js +237 -0
- package/node_modules/fast-xml-parser/src/v5/XmlPartReader.js +212 -0
- package/node_modules/fast-xml-parser/src/v5/XmlSpecialTagsReader.js +118 -0
- package/node_modules/fast-xml-parser/src/v5/inputSource/BufferSource.js +118 -0
- package/node_modules/fast-xml-parser/src/v5/inputSource/StringSource.js +123 -0
- package/node_modules/fast-xml-parser/src/v5/valueParsers/EntitiesParser.js +107 -0
- package/node_modules/fast-xml-parser/src/v5/valueParsers/booleanParser.js +23 -0
- package/node_modules/fast-xml-parser/src/v5/valueParsers/booleanParserExt.js +20 -0
- package/node_modules/fast-xml-parser/src/v5/valueParsers/currency.js +31 -0
- package/node_modules/fast-xml-parser/src/v5/valueParsers/join.js +14 -0
- package/node_modules/fast-xml-parser/src/v5/valueParsers/number.js +16 -0
- package/node_modules/fast-xml-parser/src/v5/valueParsers/trim.js +8 -0
- package/node_modules/fast-xml-parser/src/validator.js +2 -0
- package/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +18 -9
- package/node_modules/follow-redirects/index.js +115 -76
- package/node_modules/follow-redirects/package.json +1 -1
- package/node_modules/get-intrinsic/CHANGELOG.md +18 -0
- package/node_modules/get-intrinsic/index.js +15 -7
- package/node_modules/get-intrinsic/package.json +12 -12
- package/node_modules/has-property-descriptors/CHANGELOG.md +8 -0
- package/node_modules/has-property-descriptors/index.js +3 -14
- package/node_modules/has-property-descriptors/package.json +5 -5
- package/node_modules/has-proto/CHANGELOG.md +15 -0
- package/node_modules/has-proto/index.d.ts +3 -0
- package/node_modules/has-proto/index.js +5 -1
- package/node_modules/has-proto/package.json +9 -5
- package/node_modules/has-proto/tsconfig.json +49 -0
- package/node_modules/has-tostringtag/.eslintrc +0 -6
- package/node_modules/has-tostringtag/.nycrc +13 -0
- package/node_modules/has-tostringtag/CHANGELOG.md +22 -0
- package/node_modules/has-tostringtag/index.d.ts +3 -0
- package/node_modules/has-tostringtag/index.js +1 -0
- package/node_modules/has-tostringtag/package.json +37 -13
- package/node_modules/has-tostringtag/shams.d.ts +3 -0
- package/node_modules/has-tostringtag/shams.js +1 -0
- package/node_modules/has-tostringtag/test/shams/core-js.js +3 -0
- package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +2 -0
- package/node_modules/has-tostringtag/test/tests.js +2 -1
- package/node_modules/has-tostringtag/tsconfig.json +49 -0
- package/node_modules/hasown/CHANGELOG.md +20 -0
- package/node_modules/hasown/index.d.ts +3 -3
- package/node_modules/hasown/index.js +1 -1
- package/node_modules/hasown/package.json +16 -15
- package/node_modules/hasown/tsconfig.json +3 -46
- package/node_modules/object-is/.eslintrc +1 -1
- package/node_modules/object-is/.nycrc +0 -4
- package/node_modules/object-is/CHANGELOG.md +25 -0
- package/node_modules/object-is/README.md +20 -20
- package/node_modules/object-is/package.json +23 -14
- package/node_modules/polygon-clipping/README.md +29 -26
- package/node_modules/polygon-clipping/dist/polygon-clipping.cjs.js +1398 -1421
- package/node_modules/polygon-clipping/dist/polygon-clipping.d.ts +13 -10
- package/node_modules/polygon-clipping/dist/polygon-clipping.esm.js +1139 -1427
- package/node_modules/polygon-clipping/dist/polygon-clipping.umd.js +1770 -1831
- package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js +22 -8
- package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js.map +1 -1
- package/node_modules/polygon-clipping/node_modules/robust-predicates/LICENSE +24 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/README.md +82 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/incircle.js +765 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/insphere.js +766 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/orient2d.js +184 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/orient3d.js +462 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/util.js +138 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/index.d.ts +49 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/index.js +5 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/package.json +75 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/incircle.js +908 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/incircle.min.js +1 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/insphere.js +914 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/insphere.min.js +1 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient2d.js +280 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient2d.min.js +1 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient3d.js +601 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient3d.min.js +1 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/predicates.js +2328 -0
- package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/predicates.min.js +1 -0
- package/node_modules/polygon-clipping/package.json +30 -25
- package/node_modules/protobufjs/LICENSE +39 -39
- package/node_modules/protobufjs/README.md +727 -740
- package/node_modules/protobufjs/dist/light/protobuf.js +6264 -6264
- package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.js +1928 -1928
- package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/dist/protobuf.js +7978 -7961
- package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/ext/debug/README.md +4 -4
- package/node_modules/protobufjs/ext/debug/index.js +71 -71
- package/node_modules/protobufjs/ext/descriptor/README.md +72 -72
- package/node_modules/protobufjs/ext/descriptor/index.d.ts +191 -191
- package/node_modules/protobufjs/ext/descriptor/index.js +1052 -1052
- package/node_modules/protobufjs/ext/descriptor/test.js +54 -54
- package/node_modules/protobufjs/google/LICENSE +27 -27
- package/node_modules/protobufjs/google/README.md +1 -1
- package/node_modules/protobufjs/google/api/annotations.json +82 -82
- package/node_modules/protobufjs/google/api/annotations.proto +10 -10
- package/node_modules/protobufjs/google/api/http.json +85 -85
- package/node_modules/protobufjs/google/api/http.proto +30 -30
- package/node_modules/protobufjs/google/protobuf/api.json +117 -117
- package/node_modules/protobufjs/google/protobuf/api.proto +33 -33
- package/node_modules/protobufjs/google/protobuf/descriptor.json +738 -738
- package/node_modules/protobufjs/google/protobuf/descriptor.proto +286 -286
- package/node_modules/protobufjs/google/protobuf/source_context.json +19 -19
- package/node_modules/protobufjs/google/protobuf/source_context.proto +7 -7
- package/node_modules/protobufjs/google/protobuf/type.json +201 -201
- package/node_modules/protobufjs/google/protobuf/type.proto +89 -89
- package/node_modules/protobufjs/index.d.ts +2741 -2741
- package/node_modules/protobufjs/index.js +4 -4
- package/node_modules/protobufjs/light.d.ts +2 -2
- package/node_modules/protobufjs/light.js +3 -3
- package/node_modules/protobufjs/minimal.d.ts +2 -2
- package/node_modules/protobufjs/minimal.js +4 -4
- package/node_modules/protobufjs/package.json +111 -111
- package/node_modules/protobufjs/scripts/postinstall.js +32 -32
- package/node_modules/protobufjs/src/common.js +399 -399
- package/node_modules/protobufjs/src/converter.js +301 -301
- package/node_modules/protobufjs/src/decoder.js +129 -129
- package/node_modules/protobufjs/src/encoder.js +100 -100
- package/node_modules/protobufjs/src/enum.js +198 -198
- package/node_modules/protobufjs/src/field.js +377 -377
- package/node_modules/protobufjs/src/index-light.js +104 -104
- package/node_modules/protobufjs/src/index-minimal.js +36 -36
- package/node_modules/protobufjs/src/index.js +12 -12
- package/node_modules/protobufjs/src/mapfield.js +126 -126
- package/node_modules/protobufjs/src/message.js +138 -138
- package/node_modules/protobufjs/src/method.js +160 -160
- package/node_modules/protobufjs/src/namespace.js +433 -433
- package/node_modules/protobufjs/src/object.js +243 -243
- package/node_modules/protobufjs/src/oneof.js +203 -203
- package/node_modules/protobufjs/src/parse.js +889 -872
- package/node_modules/protobufjs/src/reader.js +416 -416
- package/node_modules/protobufjs/src/reader_buffer.js +51 -51
- package/node_modules/protobufjs/src/root.js +368 -368
- package/node_modules/protobufjs/src/roots.js +18 -18
- package/node_modules/protobufjs/src/rpc/service.js +142 -142
- package/node_modules/protobufjs/src/rpc.js +36 -36
- package/node_modules/protobufjs/src/service.js +167 -167
- package/node_modules/protobufjs/src/tokenize.js +416 -416
- package/node_modules/protobufjs/src/type.js +589 -589
- package/node_modules/protobufjs/src/types.js +196 -196
- package/node_modules/protobufjs/src/typescript.jsdoc +15 -15
- package/node_modules/protobufjs/src/util/longbits.js +200 -200
- package/node_modules/protobufjs/src/util/minimal.js +438 -438
- package/node_modules/protobufjs/src/util.js +212 -212
- package/node_modules/protobufjs/src/verifier.js +176 -176
- package/node_modules/protobufjs/src/wrappers.js +102 -102
- package/node_modules/protobufjs/src/writer.js +465 -465
- package/node_modules/protobufjs/src/writer_buffer.js +85 -85
- package/node_modules/protobufjs/tsconfig.json +7 -7
- package/node_modules/regexp.prototype.flags/CHANGELOG.md +13 -0
- package/node_modules/regexp.prototype.flags/implementation.js +2 -2
- package/node_modules/regexp.prototype.flags/package.json +11 -10
- package/node_modules/regexp.prototype.flags/test/tests.js +13 -13
- package/node_modules/set-function-length/CHANGELOG.md +29 -0
- package/node_modules/set-function-length/env.d.ts +9 -0
- package/node_modules/set-function-length/env.js +10 -4
- package/node_modules/set-function-length/index.d.ts +7 -0
- package/node_modules/set-function-length/index.js +4 -3
- package/node_modules/set-function-length/package.json +29 -11
- package/node_modules/set-function-length/tsconfig.json +9 -0
- package/node_modules/set-function-name/.eslintrc +1 -0
- package/node_modules/set-function-name/CHANGELOG.md +9 -0
- package/node_modules/set-function-name/index.d.ts +5 -0
- package/node_modules/set-function-name/index.js +4 -3
- package/node_modules/set-function-name/package.json +28 -9
- package/node_modules/set-function-name/tsconfig.json +59 -0
- package/node_modules/uuid/CHANGELOG.md +18 -0
- package/node_modules/uuid/README.md +134 -16
- package/node_modules/uuid/dist/commonjs-browser/index.js +40 -15
- package/node_modules/uuid/dist/commonjs-browser/max.js +7 -0
- package/node_modules/uuid/dist/commonjs-browser/md5.js +30 -53
- package/node_modules/uuid/dist/commonjs-browser/native.js +3 -4
- package/node_modules/uuid/dist/commonjs-browser/nil.js +1 -2
- package/node_modules/uuid/dist/commonjs-browser/parse.js +14 -15
- package/node_modules/uuid/dist/commonjs-browser/regex.js +1 -2
- package/node_modules/uuid/dist/commonjs-browser/rng.js +2 -4
- package/node_modules/uuid/dist/commonjs-browser/sha1.js +27 -49
- package/node_modules/uuid/dist/commonjs-browser/stringify.js +10 -16
- package/node_modules/uuid/dist/commonjs-browser/v1.js +73 -49
- package/node_modules/uuid/dist/commonjs-browser/v1ToV6.js +26 -0
- package/node_modules/uuid/dist/commonjs-browser/v3.js +3 -8
- package/node_modules/uuid/dist/commonjs-browser/v35.js +15 -32
- package/node_modules/uuid/dist/commonjs-browser/v4.js +7 -18
- package/node_modules/uuid/dist/commonjs-browser/v5.js +3 -8
- package/node_modules/uuid/dist/commonjs-browser/v6.js +42 -0
- package/node_modules/uuid/dist/commonjs-browser/v6ToV1.js +26 -0
- package/node_modules/uuid/dist/commonjs-browser/v7.js +152 -0
- package/node_modules/uuid/dist/commonjs-browser/validate.js +2 -7
- package/node_modules/uuid/dist/commonjs-browser/version.js +2 -8
- package/node_modules/uuid/dist/esm-browser/index.js +9 -4
- package/node_modules/uuid/dist/esm-browser/max.js +1 -0
- package/node_modules/uuid/dist/esm-browser/md5.js +29 -50
- package/node_modules/uuid/dist/esm-browser/native.js +1 -1
- package/node_modules/uuid/dist/esm-browser/parse.js +12 -10
- package/node_modules/uuid/dist/esm-browser/regex.js +1 -1
- package/node_modules/uuid/dist/esm-browser/rng.js +3 -4
- package/node_modules/uuid/dist/esm-browser/sha1.js +26 -46
- package/node_modules/uuid/dist/esm-browser/stringify.js +9 -11
- package/node_modules/uuid/dist/esm-browser/v1.js +74 -44
- package/node_modules/uuid/dist/esm-browser/v1ToV6.js +20 -0
- package/node_modules/uuid/dist/esm-browser/v3.js +1 -1
- package/node_modules/uuid/dist/esm-browser/v35.js +14 -25
- package/node_modules/uuid/dist/esm-browser/v4.js +5 -9
- package/node_modules/uuid/dist/esm-browser/v5.js +1 -1
- package/node_modules/uuid/dist/esm-browser/v6.js +36 -0
- package/node_modules/uuid/dist/esm-browser/v6ToV1.js +20 -0
- package/node_modules/uuid/dist/esm-browser/v7.js +146 -0
- package/node_modules/uuid/dist/esm-browser/validate.js +0 -2
- package/node_modules/uuid/dist/esm-browser/version.js +0 -3
- package/node_modules/uuid/dist/esm-node/index.js +9 -4
- package/node_modules/uuid/dist/esm-node/max.js +1 -0
- package/node_modules/uuid/dist/esm-node/md5.js +1 -4
- package/node_modules/uuid/dist/esm-node/native.js +1 -1
- package/node_modules/uuid/dist/esm-node/parse.js +11 -9
- package/node_modules/uuid/dist/esm-node/regex.js +1 -1
- package/node_modules/uuid/dist/esm-node/rng.js +1 -3
- package/node_modules/uuid/dist/esm-node/sha1.js +1 -4
- package/node_modules/uuid/dist/esm-node/stringify.js +7 -9
- package/node_modules/uuid/dist/esm-node/v1.js +66 -36
- package/node_modules/uuid/dist/esm-node/v1ToV6.js +20 -0
- package/node_modules/uuid/dist/esm-node/v35.js +8 -19
- package/node_modules/uuid/dist/esm-node/v4.js +4 -8
- package/node_modules/uuid/dist/esm-node/v6.js +32 -0
- package/node_modules/uuid/dist/esm-node/v6ToV1.js +20 -0
- package/node_modules/uuid/dist/esm-node/v7.js +146 -0
- package/node_modules/uuid/dist/esm-node/validate.js +0 -2
- package/node_modules/uuid/dist/esm-node/version.js +0 -3
- package/node_modules/uuid/dist/index.js +40 -15
- package/node_modules/uuid/dist/max.js +7 -0
- package/node_modules/uuid/dist/md5-browser.js +8 -31
- package/node_modules/uuid/dist/md5.js +4 -10
- package/node_modules/uuid/dist/native-browser.js +2 -3
- package/node_modules/uuid/dist/native.js +5 -9
- package/node_modules/uuid/dist/nil.js +1 -2
- package/node_modules/uuid/dist/parse.js +13 -14
- package/node_modules/uuid/dist/regex.js +1 -2
- package/node_modules/uuid/dist/rng-browser.js +1 -3
- package/node_modules/uuid/dist/rng.js +3 -10
- package/node_modules/uuid/dist/sha1-browser.js +1 -23
- package/node_modules/uuid/dist/sha1.js +4 -10
- package/node_modules/uuid/dist/stringify.js +8 -14
- package/node_modules/uuid/dist/uuid-bin.js +12 -22
- package/node_modules/uuid/dist/v1.js +66 -42
- package/node_modules/uuid/dist/v1ToV6.js +26 -0
- package/node_modules/uuid/dist/v3.js +2 -7
- package/node_modules/uuid/dist/v35.js +11 -28
- package/node_modules/uuid/dist/v4.js +6 -17
- package/node_modules/uuid/dist/v5.js +2 -7
- package/node_modules/uuid/dist/v6.js +38 -0
- package/node_modules/uuid/dist/v6ToV1.js +26 -0
- package/node_modules/uuid/dist/v7.js +152 -0
- package/node_modules/uuid/dist/validate.js +2 -7
- package/node_modules/uuid/dist/version.js +2 -8
- package/node_modules/uuid/package.json +41 -34
- package/node_modules/uuid/wrapper.mjs +5 -0
- package/package.json +6 -6
- package/tak-ingest.js +5 -1
- package/tak-registration.js +8 -1
- package/node_modules/@types/node/ts4.8/assert/strict.d.ts +0 -8
- package/node_modules/@types/node/ts4.8/assert.d.ts +0 -996
- package/node_modules/@types/node/ts4.8/async_hooks.d.ts +0 -539
- package/node_modules/@types/node/ts4.8/buffer.d.ts +0 -2362
- package/node_modules/@types/node/ts4.8/child_process.d.ts +0 -1540
- package/node_modules/@types/node/ts4.8/cluster.d.ts +0 -432
- package/node_modules/@types/node/ts4.8/console.d.ts +0 -415
- package/node_modules/@types/node/ts4.8/constants.d.ts +0 -19
- package/node_modules/@types/node/ts4.8/crypto.d.ts +0 -4455
- package/node_modules/@types/node/ts4.8/dgram.d.ts +0 -586
- package/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +0 -191
- package/node_modules/@types/node/ts4.8/dns/promises.d.ts +0 -425
- package/node_modules/@types/node/ts4.8/dns.d.ts +0 -809
- package/node_modules/@types/node/ts4.8/dom-events.d.ts +0 -122
- package/node_modules/@types/node/ts4.8/domain.d.ts +0 -170
- package/node_modules/@types/node/ts4.8/events.d.ts +0 -879
- package/node_modules/@types/node/ts4.8/fs/promises.d.ts +0 -1239
- package/node_modules/@types/node/ts4.8/fs.d.ts +0 -4291
- package/node_modules/@types/node/ts4.8/globals.d.ts +0 -385
- package/node_modules/@types/node/ts4.8/globals.global.d.ts +0 -1
- package/node_modules/@types/node/ts4.8/http.d.ts +0 -1888
- package/node_modules/@types/node/ts4.8/http2.d.ts +0 -2382
- package/node_modules/@types/node/ts4.8/https.d.ts +0 -550
- package/node_modules/@types/node/ts4.8/index.d.ts +0 -88
- package/node_modules/@types/node/ts4.8/inspector.d.ts +0 -2747
- package/node_modules/@types/node/ts4.8/module.d.ts +0 -301
- package/node_modules/@types/node/ts4.8/net.d.ts +0 -949
- package/node_modules/@types/node/ts4.8/os.d.ts +0 -478
- package/node_modules/@types/node/ts4.8/path.d.ts +0 -191
- package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +0 -639
- package/node_modules/@types/node/ts4.8/process.d.ts +0 -1539
- package/node_modules/@types/node/ts4.8/punycode.d.ts +0 -117
- package/node_modules/@types/node/ts4.8/querystring.d.ts +0 -141
- package/node_modules/@types/node/ts4.8/readline/promises.d.ts +0 -150
- package/node_modules/@types/node/ts4.8/readline.d.ts +0 -539
- package/node_modules/@types/node/ts4.8/repl.d.ts +0 -430
- package/node_modules/@types/node/ts4.8/stream/consumers.d.ts +0 -12
- package/node_modules/@types/node/ts4.8/stream/promises.d.ts +0 -83
- package/node_modules/@types/node/ts4.8/stream/web.d.ts +0 -350
- package/node_modules/@types/node/ts4.8/stream.d.ts +0 -1701
- package/node_modules/@types/node/ts4.8/string_decoder.d.ts +0 -67
- package/node_modules/@types/node/ts4.8/test.d.ts +0 -1382
- package/node_modules/@types/node/ts4.8/timers/promises.d.ts +0 -93
- package/node_modules/@types/node/ts4.8/timers.d.ts +0 -240
- package/node_modules/@types/node/ts4.8/tls.d.ts +0 -1210
- package/node_modules/@types/node/ts4.8/trace_events.d.ts +0 -182
- package/node_modules/@types/node/ts4.8/tty.d.ts +0 -208
- package/node_modules/@types/node/ts4.8/url.d.ts +0 -927
- package/node_modules/@types/node/ts4.8/util.d.ts +0 -2183
- package/node_modules/@types/node/ts4.8/v8.d.ts +0 -635
- package/node_modules/@types/node/ts4.8/vm.d.ts +0 -903
- package/node_modules/@types/node/ts4.8/wasi.d.ts +0 -158
- package/node_modules/@types/node/ts4.8/worker_threads.d.ts +0 -691
- package/node_modules/@types/node/ts4.8/zlib.d.ts +0 -517
- package/node_modules/define-data-property/index.d.ts.map +0 -1
- package/node_modules/hasown/index.d.ts.map +0 -1
- package/node_modules/object-is/.eslintignore +0 -1
- package/node_modules/polygon-clipping/CHANGELOG.md +0 -129
|
@@ -1,589 +1,589 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
module.exports = Type;
|
|
3
|
-
|
|
4
|
-
// extends Namespace
|
|
5
|
-
var Namespace = require("./namespace");
|
|
6
|
-
((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = "Type";
|
|
7
|
-
|
|
8
|
-
var Enum = require("./enum"),
|
|
9
|
-
OneOf = require("./oneof"),
|
|
10
|
-
Field = require("./field"),
|
|
11
|
-
MapField = require("./mapfield"),
|
|
12
|
-
Service = require("./service"),
|
|
13
|
-
Message = require("./message"),
|
|
14
|
-
Reader = require("./reader"),
|
|
15
|
-
Writer = require("./writer"),
|
|
16
|
-
util = require("./util"),
|
|
17
|
-
encoder = require("./encoder"),
|
|
18
|
-
decoder = require("./decoder"),
|
|
19
|
-
verifier = require("./verifier"),
|
|
20
|
-
converter = require("./converter"),
|
|
21
|
-
wrappers = require("./wrappers");
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Constructs a new reflected message type instance.
|
|
25
|
-
* @classdesc Reflected message type.
|
|
26
|
-
* @extends NamespaceBase
|
|
27
|
-
* @constructor
|
|
28
|
-
* @param {string} name Message name
|
|
29
|
-
* @param {Object.<string,*>} [options] Declared options
|
|
30
|
-
*/
|
|
31
|
-
function Type(name, options) {
|
|
32
|
-
Namespace.call(this, name, options);
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Message fields.
|
|
36
|
-
* @type {Object.<string,Field>}
|
|
37
|
-
*/
|
|
38
|
-
this.fields = {}; // toJSON, marker
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Oneofs declared within this namespace, if any.
|
|
42
|
-
* @type {Object.<string,OneOf>}
|
|
43
|
-
*/
|
|
44
|
-
this.oneofs = undefined; // toJSON
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Extension ranges, if any.
|
|
48
|
-
* @type {number[][]}
|
|
49
|
-
*/
|
|
50
|
-
this.extensions = undefined; // toJSON
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Reserved ranges, if any.
|
|
54
|
-
* @type {Array.<number[]|string>}
|
|
55
|
-
*/
|
|
56
|
-
this.reserved = undefined; // toJSON
|
|
57
|
-
|
|
58
|
-
/*?
|
|
59
|
-
* Whether this type is a legacy group.
|
|
60
|
-
* @type {boolean|undefined}
|
|
61
|
-
*/
|
|
62
|
-
this.group = undefined; // toJSON
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Cached fields by id.
|
|
66
|
-
* @type {Object.<number,Field>|null}
|
|
67
|
-
* @private
|
|
68
|
-
*/
|
|
69
|
-
this._fieldsById = null;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Cached fields as an array.
|
|
73
|
-
* @type {Field[]|null}
|
|
74
|
-
* @private
|
|
75
|
-
*/
|
|
76
|
-
this._fieldsArray = null;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Cached oneofs as an array.
|
|
80
|
-
* @type {OneOf[]|null}
|
|
81
|
-
* @private
|
|
82
|
-
*/
|
|
83
|
-
this._oneofsArray = null;
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Cached constructor.
|
|
87
|
-
* @type {Constructor<{}>}
|
|
88
|
-
* @private
|
|
89
|
-
*/
|
|
90
|
-
this._ctor = null;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
Object.defineProperties(Type.prototype, {
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Message fields by id.
|
|
97
|
-
* @name Type#fieldsById
|
|
98
|
-
* @type {Object.<number,Field>}
|
|
99
|
-
* @readonly
|
|
100
|
-
*/
|
|
101
|
-
fieldsById: {
|
|
102
|
-
get: function() {
|
|
103
|
-
|
|
104
|
-
/* istanbul ignore if */
|
|
105
|
-
if (this._fieldsById)
|
|
106
|
-
return this._fieldsById;
|
|
107
|
-
|
|
108
|
-
this._fieldsById = {};
|
|
109
|
-
for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {
|
|
110
|
-
var field = this.fields[names[i]],
|
|
111
|
-
id = field.id;
|
|
112
|
-
|
|
113
|
-
/* istanbul ignore if */
|
|
114
|
-
if (this._fieldsById[id])
|
|
115
|
-
throw Error("duplicate id " + id + " in " + this);
|
|
116
|
-
|
|
117
|
-
this._fieldsById[id] = field;
|
|
118
|
-
}
|
|
119
|
-
return this._fieldsById;
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Fields of this message as an array for iteration.
|
|
125
|
-
* @name Type#fieldsArray
|
|
126
|
-
* @type {Field[]}
|
|
127
|
-
* @readonly
|
|
128
|
-
*/
|
|
129
|
-
fieldsArray: {
|
|
130
|
-
get: function() {
|
|
131
|
-
return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Oneofs of this message as an array for iteration.
|
|
137
|
-
* @name Type#oneofsArray
|
|
138
|
-
* @type {OneOf[]}
|
|
139
|
-
* @readonly
|
|
140
|
-
*/
|
|
141
|
-
oneofsArray: {
|
|
142
|
-
get: function() {
|
|
143
|
-
return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* The registered constructor, if any registered, otherwise a generic constructor.
|
|
149
|
-
* Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.
|
|
150
|
-
* @name Type#ctor
|
|
151
|
-
* @type {Constructor<{}>}
|
|
152
|
-
*/
|
|
153
|
-
ctor: {
|
|
154
|
-
get: function() {
|
|
155
|
-
return this._ctor || (this.ctor = Type.generateConstructor(this)());
|
|
156
|
-
},
|
|
157
|
-
set: function(ctor) {
|
|
158
|
-
|
|
159
|
-
// Ensure proper prototype
|
|
160
|
-
var prototype = ctor.prototype;
|
|
161
|
-
if (!(prototype instanceof Message)) {
|
|
162
|
-
(ctor.prototype = new Message()).constructor = ctor;
|
|
163
|
-
util.merge(ctor.prototype, prototype);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// Classes and messages reference their reflected type
|
|
167
|
-
ctor.$type = ctor.prototype.$type = this;
|
|
168
|
-
|
|
169
|
-
// Mix in static methods
|
|
170
|
-
util.merge(ctor, Message, true);
|
|
171
|
-
|
|
172
|
-
this._ctor = ctor;
|
|
173
|
-
|
|
174
|
-
// Messages have non-enumerable default values on their prototype
|
|
175
|
-
var i = 0;
|
|
176
|
-
for (; i < /* initializes */ this.fieldsArray.length; ++i)
|
|
177
|
-
this._fieldsArray[i].resolve(); // ensures a proper value
|
|
178
|
-
|
|
179
|
-
// Messages have non-enumerable getters and setters for each virtual oneof field
|
|
180
|
-
var ctorProperties = {};
|
|
181
|
-
for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)
|
|
182
|
-
ctorProperties[this._oneofsArray[i].resolve().name] = {
|
|
183
|
-
get: util.oneOfGetter(this._oneofsArray[i].oneof),
|
|
184
|
-
set: util.oneOfSetter(this._oneofsArray[i].oneof)
|
|
185
|
-
};
|
|
186
|
-
if (i)
|
|
187
|
-
Object.defineProperties(ctor.prototype, ctorProperties);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Generates a constructor function for the specified type.
|
|
194
|
-
* @param {Type} mtype Message type
|
|
195
|
-
* @returns {Codegen} Codegen instance
|
|
196
|
-
*/
|
|
197
|
-
Type.generateConstructor = function generateConstructor(mtype) {
|
|
198
|
-
/* eslint-disable no-unexpected-multiline */
|
|
199
|
-
var gen = util.codegen(["p"], mtype.name);
|
|
200
|
-
// explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype
|
|
201
|
-
for (var i = 0, field; i < mtype.fieldsArray.length; ++i)
|
|
202
|
-
if ((field = mtype._fieldsArray[i]).map) gen
|
|
203
|
-
("this%s={}", util.safeProp(field.name));
|
|
204
|
-
else if (field.repeated) gen
|
|
205
|
-
("this%s=[]", util.safeProp(field.name));
|
|
206
|
-
return gen
|
|
207
|
-
("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)") // omit undefined or null
|
|
208
|
-
("this[ks[i]]=p[ks[i]]");
|
|
209
|
-
/* eslint-enable no-unexpected-multiline */
|
|
210
|
-
};
|
|
211
|
-
|
|
212
|
-
function clearCache(type) {
|
|
213
|
-
type._fieldsById = type._fieldsArray = type._oneofsArray = null;
|
|
214
|
-
delete type.encode;
|
|
215
|
-
delete type.decode;
|
|
216
|
-
delete type.verify;
|
|
217
|
-
return type;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Message type descriptor.
|
|
222
|
-
* @interface IType
|
|
223
|
-
* @extends INamespace
|
|
224
|
-
* @property {Object.<string,IOneOf>} [oneofs] Oneof descriptors
|
|
225
|
-
* @property {Object.<string,IField>} fields Field descriptors
|
|
226
|
-
* @property {number[][]} [extensions] Extension ranges
|
|
227
|
-
* @property {number[]
|
|
228
|
-
* @property {boolean} [group=false] Whether a legacy group or not
|
|
229
|
-
*/
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Creates a message type from a message type descriptor.
|
|
233
|
-
* @param {string} name Message name
|
|
234
|
-
* @param {IType} json Message type descriptor
|
|
235
|
-
* @returns {Type} Created message type
|
|
236
|
-
*/
|
|
237
|
-
Type.fromJSON = function fromJSON(name, json) {
|
|
238
|
-
var type = new Type(name, json.options);
|
|
239
|
-
type.extensions = json.extensions;
|
|
240
|
-
type.reserved = json.reserved;
|
|
241
|
-
var names = Object.keys(json.fields),
|
|
242
|
-
i = 0;
|
|
243
|
-
for (; i < names.length; ++i)
|
|
244
|
-
type.add(
|
|
245
|
-
( typeof json.fields[names[i]].keyType !== "undefined"
|
|
246
|
-
? MapField.fromJSON
|
|
247
|
-
: Field.fromJSON )(names[i], json.fields[names[i]])
|
|
248
|
-
);
|
|
249
|
-
if (json.oneofs)
|
|
250
|
-
for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)
|
|
251
|
-
type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));
|
|
252
|
-
if (json.nested)
|
|
253
|
-
for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {
|
|
254
|
-
var nested = json.nested[names[i]];
|
|
255
|
-
type.add( // most to least likely
|
|
256
|
-
( nested.id !== undefined
|
|
257
|
-
? Field.fromJSON
|
|
258
|
-
: nested.fields !== undefined
|
|
259
|
-
? Type.fromJSON
|
|
260
|
-
: nested.values !== undefined
|
|
261
|
-
? Enum.fromJSON
|
|
262
|
-
: nested.methods !== undefined
|
|
263
|
-
? Service.fromJSON
|
|
264
|
-
: Namespace.fromJSON )(names[i], nested)
|
|
265
|
-
);
|
|
266
|
-
}
|
|
267
|
-
if (json.extensions && json.extensions.length)
|
|
268
|
-
type.extensions = json.extensions;
|
|
269
|
-
if (json.reserved && json.reserved.length)
|
|
270
|
-
type.reserved = json.reserved;
|
|
271
|
-
if (json.group)
|
|
272
|
-
type.group = true;
|
|
273
|
-
if (json.comment)
|
|
274
|
-
type.comment = json.comment;
|
|
275
|
-
return type;
|
|
276
|
-
};
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Converts this message type to a message type descriptor.
|
|
280
|
-
* @param {IToJSONOptions} [toJSONOptions] JSON conversion options
|
|
281
|
-
* @returns {IType} Message type descriptor
|
|
282
|
-
*/
|
|
283
|
-
Type.prototype.toJSON = function toJSON(toJSONOptions) {
|
|
284
|
-
var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);
|
|
285
|
-
var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;
|
|
286
|
-
return util.toObject([
|
|
287
|
-
"options" , inherited && inherited.options || undefined,
|
|
288
|
-
"oneofs" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),
|
|
289
|
-
"fields" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},
|
|
290
|
-
"extensions" , this.extensions && this.extensions.length ? this.extensions : undefined,
|
|
291
|
-
"reserved" , this.reserved && this.reserved.length ? this.reserved : undefined,
|
|
292
|
-
"group" , this.group || undefined,
|
|
293
|
-
"nested" , inherited && inherited.nested || undefined,
|
|
294
|
-
"comment" , keepComments ? this.comment : undefined
|
|
295
|
-
]);
|
|
296
|
-
};
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* @override
|
|
300
|
-
*/
|
|
301
|
-
Type.prototype.resolveAll = function resolveAll() {
|
|
302
|
-
var fields = this.fieldsArray, i = 0;
|
|
303
|
-
while (i < fields.length)
|
|
304
|
-
fields[i++].resolve();
|
|
305
|
-
var oneofs = this.oneofsArray; i = 0;
|
|
306
|
-
while (i < oneofs.length)
|
|
307
|
-
oneofs[i++].resolve();
|
|
308
|
-
return Namespace.prototype.resolveAll.call(this);
|
|
309
|
-
};
|
|
310
|
-
|
|
311
|
-
/**
|
|
312
|
-
* @override
|
|
313
|
-
*/
|
|
314
|
-
Type.prototype.get = function get(name) {
|
|
315
|
-
return this.fields[name]
|
|
316
|
-
|| this.oneofs && this.oneofs[name]
|
|
317
|
-
|| this.nested && this.nested[name]
|
|
318
|
-
|| null;
|
|
319
|
-
};
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* Adds a nested object to this type.
|
|
323
|
-
* @param {ReflectionObject} object Nested object to add
|
|
324
|
-
* @returns {Type} `this`
|
|
325
|
-
* @throws {TypeError} If arguments are invalid
|
|
326
|
-
* @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id
|
|
327
|
-
*/
|
|
328
|
-
Type.prototype.add = function add(object) {
|
|
329
|
-
|
|
330
|
-
if (this.get(object.name))
|
|
331
|
-
throw Error("duplicate name '" + object.name + "' in " + this);
|
|
332
|
-
|
|
333
|
-
if (object instanceof Field && object.extend === undefined) {
|
|
334
|
-
// NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.
|
|
335
|
-
// The root object takes care of adding distinct sister-fields to the respective extended
|
|
336
|
-
// type instead.
|
|
337
|
-
|
|
338
|
-
// avoids calling the getter if not absolutely necessary because it's called quite frequently
|
|
339
|
-
if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])
|
|
340
|
-
throw Error("duplicate id " + object.id + " in " + this);
|
|
341
|
-
if (this.isReservedId(object.id))
|
|
342
|
-
throw Error("id " + object.id + " is reserved in " + this);
|
|
343
|
-
if (this.isReservedName(object.name))
|
|
344
|
-
throw Error("name '" + object.name + "' is reserved in " + this);
|
|
345
|
-
|
|
346
|
-
if (object.parent)
|
|
347
|
-
object.parent.remove(object);
|
|
348
|
-
this.fields[object.name] = object;
|
|
349
|
-
object.message = this;
|
|
350
|
-
object.onAdd(this);
|
|
351
|
-
return clearCache(this);
|
|
352
|
-
}
|
|
353
|
-
if (object instanceof OneOf) {
|
|
354
|
-
if (!this.oneofs)
|
|
355
|
-
this.oneofs = {};
|
|
356
|
-
this.oneofs[object.name] = object;
|
|
357
|
-
object.onAdd(this);
|
|
358
|
-
return clearCache(this);
|
|
359
|
-
}
|
|
360
|
-
return Namespace.prototype.add.call(this, object);
|
|
361
|
-
};
|
|
362
|
-
|
|
363
|
-
/**
|
|
364
|
-
* Removes a nested object from this type.
|
|
365
|
-
* @param {ReflectionObject} object Nested object to remove
|
|
366
|
-
* @returns {Type} `this`
|
|
367
|
-
* @throws {TypeError} If arguments are invalid
|
|
368
|
-
* @throws {Error} If `object` is not a member of this type
|
|
369
|
-
*/
|
|
370
|
-
Type.prototype.remove = function remove(object) {
|
|
371
|
-
if (object instanceof Field && object.extend === undefined) {
|
|
372
|
-
// See Type#add for the reason why extension fields are excluded here.
|
|
373
|
-
|
|
374
|
-
/* istanbul ignore if */
|
|
375
|
-
if (!this.fields || this.fields[object.name] !== object)
|
|
376
|
-
throw Error(object + " is not a member of " + this);
|
|
377
|
-
|
|
378
|
-
delete this.fields[object.name];
|
|
379
|
-
object.parent = null;
|
|
380
|
-
object.onRemove(this);
|
|
381
|
-
return clearCache(this);
|
|
382
|
-
}
|
|
383
|
-
if (object instanceof OneOf) {
|
|
384
|
-
|
|
385
|
-
/* istanbul ignore if */
|
|
386
|
-
if (!this.oneofs || this.oneofs[object.name] !== object)
|
|
387
|
-
throw Error(object + " is not a member of " + this);
|
|
388
|
-
|
|
389
|
-
delete this.oneofs[object.name];
|
|
390
|
-
object.parent = null;
|
|
391
|
-
object.onRemove(this);
|
|
392
|
-
return clearCache(this);
|
|
393
|
-
}
|
|
394
|
-
return Namespace.prototype.remove.call(this, object);
|
|
395
|
-
};
|
|
396
|
-
|
|
397
|
-
/**
|
|
398
|
-
* Tests if the specified id is reserved.
|
|
399
|
-
* @param {number} id Id to test
|
|
400
|
-
* @returns {boolean} `true` if reserved, otherwise `false`
|
|
401
|
-
*/
|
|
402
|
-
Type.prototype.isReservedId = function isReservedId(id) {
|
|
403
|
-
return Namespace.isReservedId(this.reserved, id);
|
|
404
|
-
};
|
|
405
|
-
|
|
406
|
-
/**
|
|
407
|
-
* Tests if the specified name is reserved.
|
|
408
|
-
* @param {string} name Name to test
|
|
409
|
-
* @returns {boolean} `true` if reserved, otherwise `false`
|
|
410
|
-
*/
|
|
411
|
-
Type.prototype.isReservedName = function isReservedName(name) {
|
|
412
|
-
return Namespace.isReservedName(this.reserved, name);
|
|
413
|
-
};
|
|
414
|
-
|
|
415
|
-
/**
|
|
416
|
-
* Creates a new message of this type using the specified properties.
|
|
417
|
-
* @param {Object.<string,*>} [properties] Properties to set
|
|
418
|
-
* @returns {Message<{}>} Message instance
|
|
419
|
-
*/
|
|
420
|
-
Type.prototype.create = function create(properties) {
|
|
421
|
-
return new this.ctor(properties);
|
|
422
|
-
};
|
|
423
|
-
|
|
424
|
-
/**
|
|
425
|
-
* Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.
|
|
426
|
-
* @returns {Type} `this`
|
|
427
|
-
*/
|
|
428
|
-
Type.prototype.setup = function setup() {
|
|
429
|
-
// Sets up everything at once so that the prototype chain does not have to be re-evaluated
|
|
430
|
-
// multiple times (V8, soft-deopt prototype-check).
|
|
431
|
-
|
|
432
|
-
var fullName = this.fullName,
|
|
433
|
-
types = [];
|
|
434
|
-
for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)
|
|
435
|
-
types.push(this._fieldsArray[i].resolve().resolvedType);
|
|
436
|
-
|
|
437
|
-
// Replace setup methods with type-specific generated functions
|
|
438
|
-
this.encode = encoder(this)({
|
|
439
|
-
Writer : Writer,
|
|
440
|
-
types : types,
|
|
441
|
-
util : util
|
|
442
|
-
});
|
|
443
|
-
this.decode = decoder(this)({
|
|
444
|
-
Reader : Reader,
|
|
445
|
-
types : types,
|
|
446
|
-
util : util
|
|
447
|
-
});
|
|
448
|
-
this.verify = verifier(this)({
|
|
449
|
-
types : types,
|
|
450
|
-
util : util
|
|
451
|
-
});
|
|
452
|
-
this.fromObject = converter.fromObject(this)({
|
|
453
|
-
types : types,
|
|
454
|
-
util : util
|
|
455
|
-
});
|
|
456
|
-
this.toObject = converter.toObject(this)({
|
|
457
|
-
types : types,
|
|
458
|
-
util : util
|
|
459
|
-
});
|
|
460
|
-
|
|
461
|
-
// Inject custom wrappers for common types
|
|
462
|
-
var wrapper = wrappers[fullName];
|
|
463
|
-
if (wrapper) {
|
|
464
|
-
var originalThis = Object.create(this);
|
|
465
|
-
// if (wrapper.fromObject) {
|
|
466
|
-
originalThis.fromObject = this.fromObject;
|
|
467
|
-
this.fromObject = wrapper.fromObject.bind(originalThis);
|
|
468
|
-
// }
|
|
469
|
-
// if (wrapper.toObject) {
|
|
470
|
-
originalThis.toObject = this.toObject;
|
|
471
|
-
this.toObject = wrapper.toObject.bind(originalThis);
|
|
472
|
-
// }
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
return this;
|
|
476
|
-
};
|
|
477
|
-
|
|
478
|
-
/**
|
|
479
|
-
* Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.
|
|
480
|
-
* @param {Message<{}>|Object.<string,*>} message Message instance or plain object
|
|
481
|
-
* @param {Writer} [writer] Writer to encode to
|
|
482
|
-
* @returns {Writer} writer
|
|
483
|
-
*/
|
|
484
|
-
Type.prototype.encode = function encode_setup(message, writer) {
|
|
485
|
-
return this.setup().encode(message, writer); // overrides this method
|
|
486
|
-
};
|
|
487
|
-
|
|
488
|
-
/**
|
|
489
|
-
* Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.
|
|
490
|
-
* @param {Message<{}>|Object.<string,*>} message Message instance or plain object
|
|
491
|
-
* @param {Writer} [writer] Writer to encode to
|
|
492
|
-
* @returns {Writer} writer
|
|
493
|
-
*/
|
|
494
|
-
Type.prototype.encodeDelimited = function encodeDelimited(message, writer) {
|
|
495
|
-
return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();
|
|
496
|
-
};
|
|
497
|
-
|
|
498
|
-
/**
|
|
499
|
-
* Decodes a message of this type.
|
|
500
|
-
* @param {Reader|Uint8Array} reader Reader or buffer to decode from
|
|
501
|
-
* @param {number} [length] Length of the message, if known beforehand
|
|
502
|
-
* @returns {Message<{}>} Decoded message
|
|
503
|
-
* @throws {Error} If the payload is not a reader or valid buffer
|
|
504
|
-
* @throws {util.ProtocolError<{}>} If required fields are missing
|
|
505
|
-
*/
|
|
506
|
-
Type.prototype.decode = function decode_setup(reader, length) {
|
|
507
|
-
return this.setup().decode(reader, length); // overrides this method
|
|
508
|
-
};
|
|
509
|
-
|
|
510
|
-
/**
|
|
511
|
-
* Decodes a message of this type preceeded by its byte length as a varint.
|
|
512
|
-
* @param {Reader|Uint8Array} reader Reader or buffer to decode from
|
|
513
|
-
* @returns {Message<{}>} Decoded message
|
|
514
|
-
* @throws {Error} If the payload is not a reader or valid buffer
|
|
515
|
-
* @throws {util.ProtocolError} If required fields are missing
|
|
516
|
-
*/
|
|
517
|
-
Type.prototype.decodeDelimited = function decodeDelimited(reader) {
|
|
518
|
-
if (!(reader instanceof Reader))
|
|
519
|
-
reader = Reader.create(reader);
|
|
520
|
-
return this.decode(reader, reader.uint32());
|
|
521
|
-
};
|
|
522
|
-
|
|
523
|
-
/**
|
|
524
|
-
* Verifies that field values are valid and that required fields are present.
|
|
525
|
-
* @param {Object.<string,*>} message Plain object to verify
|
|
526
|
-
* @returns {null|string} `null` if valid, otherwise the reason why it is not
|
|
527
|
-
*/
|
|
528
|
-
Type.prototype.verify = function verify_setup(message) {
|
|
529
|
-
return this.setup().verify(message); // overrides this method
|
|
530
|
-
};
|
|
531
|
-
|
|
532
|
-
/**
|
|
533
|
-
* Creates a new message of this type from a plain object. Also converts values to their respective internal types.
|
|
534
|
-
* @param {Object.<string,*>} object Plain object to convert
|
|
535
|
-
* @returns {Message<{}>} Message instance
|
|
536
|
-
*/
|
|
537
|
-
Type.prototype.fromObject = function fromObject(object) {
|
|
538
|
-
return this.setup().fromObject(object);
|
|
539
|
-
};
|
|
540
|
-
|
|
541
|
-
/**
|
|
542
|
-
* Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.
|
|
543
|
-
* @interface IConversionOptions
|
|
544
|
-
* @property {Function} [longs] Long conversion type.
|
|
545
|
-
* Valid values are `String` and `Number` (the global types).
|
|
546
|
-
* Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.
|
|
547
|
-
* @property {Function} [enums] Enum value conversion type.
|
|
548
|
-
* Only valid value is `String` (the global type).
|
|
549
|
-
* Defaults to copy the present value, which is the numeric id.
|
|
550
|
-
* @property {Function} [bytes] Bytes value conversion type.
|
|
551
|
-
* Valid values are `Array` and (a base64 encoded) `String` (the global types).
|
|
552
|
-
* Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.
|
|
553
|
-
* @property {boolean} [defaults=false] Also sets default values on the resulting object
|
|
554
|
-
* @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`
|
|
555
|
-
* @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`
|
|
556
|
-
* @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any
|
|
557
|
-
* @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings
|
|
558
|
-
*/
|
|
559
|
-
|
|
560
|
-
/**
|
|
561
|
-
* Creates a plain object from a message of this type. Also converts values to other types if specified.
|
|
562
|
-
* @param {Message<{}>} message Message instance
|
|
563
|
-
* @param {IConversionOptions} [options] Conversion options
|
|
564
|
-
* @returns {Object.<string,*>} Plain object
|
|
565
|
-
*/
|
|
566
|
-
Type.prototype.toObject = function toObject(message, options) {
|
|
567
|
-
return this.setup().toObject(message, options);
|
|
568
|
-
};
|
|
569
|
-
|
|
570
|
-
/**
|
|
571
|
-
* Decorator function as returned by {@link Type.d} (TypeScript).
|
|
572
|
-
* @typedef TypeDecorator
|
|
573
|
-
* @type {function}
|
|
574
|
-
* @param {Constructor<T>} target Target constructor
|
|
575
|
-
* @returns {undefined}
|
|
576
|
-
* @template T extends Message<T>
|
|
577
|
-
*/
|
|
578
|
-
|
|
579
|
-
/**
|
|
580
|
-
* Type decorator (TypeScript).
|
|
581
|
-
* @param {string} [typeName] Type name, defaults to the constructor's name
|
|
582
|
-
* @returns {TypeDecorator<T>} Decorator function
|
|
583
|
-
* @template T extends Message<T>
|
|
584
|
-
*/
|
|
585
|
-
Type.d = function decorateType(typeName) {
|
|
586
|
-
return function typeDecorator(target) {
|
|
587
|
-
util.decorateType(target, typeName);
|
|
588
|
-
};
|
|
589
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
module.exports = Type;
|
|
3
|
+
|
|
4
|
+
// extends Namespace
|
|
5
|
+
var Namespace = require("./namespace");
|
|
6
|
+
((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = "Type";
|
|
7
|
+
|
|
8
|
+
var Enum = require("./enum"),
|
|
9
|
+
OneOf = require("./oneof"),
|
|
10
|
+
Field = require("./field"),
|
|
11
|
+
MapField = require("./mapfield"),
|
|
12
|
+
Service = require("./service"),
|
|
13
|
+
Message = require("./message"),
|
|
14
|
+
Reader = require("./reader"),
|
|
15
|
+
Writer = require("./writer"),
|
|
16
|
+
util = require("./util"),
|
|
17
|
+
encoder = require("./encoder"),
|
|
18
|
+
decoder = require("./decoder"),
|
|
19
|
+
verifier = require("./verifier"),
|
|
20
|
+
converter = require("./converter"),
|
|
21
|
+
wrappers = require("./wrappers");
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Constructs a new reflected message type instance.
|
|
25
|
+
* @classdesc Reflected message type.
|
|
26
|
+
* @extends NamespaceBase
|
|
27
|
+
* @constructor
|
|
28
|
+
* @param {string} name Message name
|
|
29
|
+
* @param {Object.<string,*>} [options] Declared options
|
|
30
|
+
*/
|
|
31
|
+
function Type(name, options) {
|
|
32
|
+
Namespace.call(this, name, options);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Message fields.
|
|
36
|
+
* @type {Object.<string,Field>}
|
|
37
|
+
*/
|
|
38
|
+
this.fields = {}; // toJSON, marker
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Oneofs declared within this namespace, if any.
|
|
42
|
+
* @type {Object.<string,OneOf>}
|
|
43
|
+
*/
|
|
44
|
+
this.oneofs = undefined; // toJSON
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Extension ranges, if any.
|
|
48
|
+
* @type {number[][]}
|
|
49
|
+
*/
|
|
50
|
+
this.extensions = undefined; // toJSON
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Reserved ranges, if any.
|
|
54
|
+
* @type {Array.<number[]|string>}
|
|
55
|
+
*/
|
|
56
|
+
this.reserved = undefined; // toJSON
|
|
57
|
+
|
|
58
|
+
/*?
|
|
59
|
+
* Whether this type is a legacy group.
|
|
60
|
+
* @type {boolean|undefined}
|
|
61
|
+
*/
|
|
62
|
+
this.group = undefined; // toJSON
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Cached fields by id.
|
|
66
|
+
* @type {Object.<number,Field>|null}
|
|
67
|
+
* @private
|
|
68
|
+
*/
|
|
69
|
+
this._fieldsById = null;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Cached fields as an array.
|
|
73
|
+
* @type {Field[]|null}
|
|
74
|
+
* @private
|
|
75
|
+
*/
|
|
76
|
+
this._fieldsArray = null;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Cached oneofs as an array.
|
|
80
|
+
* @type {OneOf[]|null}
|
|
81
|
+
* @private
|
|
82
|
+
*/
|
|
83
|
+
this._oneofsArray = null;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Cached constructor.
|
|
87
|
+
* @type {Constructor<{}>}
|
|
88
|
+
* @private
|
|
89
|
+
*/
|
|
90
|
+
this._ctor = null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
Object.defineProperties(Type.prototype, {
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Message fields by id.
|
|
97
|
+
* @name Type#fieldsById
|
|
98
|
+
* @type {Object.<number,Field>}
|
|
99
|
+
* @readonly
|
|
100
|
+
*/
|
|
101
|
+
fieldsById: {
|
|
102
|
+
get: function() {
|
|
103
|
+
|
|
104
|
+
/* istanbul ignore if */
|
|
105
|
+
if (this._fieldsById)
|
|
106
|
+
return this._fieldsById;
|
|
107
|
+
|
|
108
|
+
this._fieldsById = {};
|
|
109
|
+
for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {
|
|
110
|
+
var field = this.fields[names[i]],
|
|
111
|
+
id = field.id;
|
|
112
|
+
|
|
113
|
+
/* istanbul ignore if */
|
|
114
|
+
if (this._fieldsById[id])
|
|
115
|
+
throw Error("duplicate id " + id + " in " + this);
|
|
116
|
+
|
|
117
|
+
this._fieldsById[id] = field;
|
|
118
|
+
}
|
|
119
|
+
return this._fieldsById;
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Fields of this message as an array for iteration.
|
|
125
|
+
* @name Type#fieldsArray
|
|
126
|
+
* @type {Field[]}
|
|
127
|
+
* @readonly
|
|
128
|
+
*/
|
|
129
|
+
fieldsArray: {
|
|
130
|
+
get: function() {
|
|
131
|
+
return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Oneofs of this message as an array for iteration.
|
|
137
|
+
* @name Type#oneofsArray
|
|
138
|
+
* @type {OneOf[]}
|
|
139
|
+
* @readonly
|
|
140
|
+
*/
|
|
141
|
+
oneofsArray: {
|
|
142
|
+
get: function() {
|
|
143
|
+
return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* The registered constructor, if any registered, otherwise a generic constructor.
|
|
149
|
+
* Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.
|
|
150
|
+
* @name Type#ctor
|
|
151
|
+
* @type {Constructor<{}>}
|
|
152
|
+
*/
|
|
153
|
+
ctor: {
|
|
154
|
+
get: function() {
|
|
155
|
+
return this._ctor || (this.ctor = Type.generateConstructor(this)());
|
|
156
|
+
},
|
|
157
|
+
set: function(ctor) {
|
|
158
|
+
|
|
159
|
+
// Ensure proper prototype
|
|
160
|
+
var prototype = ctor.prototype;
|
|
161
|
+
if (!(prototype instanceof Message)) {
|
|
162
|
+
(ctor.prototype = new Message()).constructor = ctor;
|
|
163
|
+
util.merge(ctor.prototype, prototype);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Classes and messages reference their reflected type
|
|
167
|
+
ctor.$type = ctor.prototype.$type = this;
|
|
168
|
+
|
|
169
|
+
// Mix in static methods
|
|
170
|
+
util.merge(ctor, Message, true);
|
|
171
|
+
|
|
172
|
+
this._ctor = ctor;
|
|
173
|
+
|
|
174
|
+
// Messages have non-enumerable default values on their prototype
|
|
175
|
+
var i = 0;
|
|
176
|
+
for (; i < /* initializes */ this.fieldsArray.length; ++i)
|
|
177
|
+
this._fieldsArray[i].resolve(); // ensures a proper value
|
|
178
|
+
|
|
179
|
+
// Messages have non-enumerable getters and setters for each virtual oneof field
|
|
180
|
+
var ctorProperties = {};
|
|
181
|
+
for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)
|
|
182
|
+
ctorProperties[this._oneofsArray[i].resolve().name] = {
|
|
183
|
+
get: util.oneOfGetter(this._oneofsArray[i].oneof),
|
|
184
|
+
set: util.oneOfSetter(this._oneofsArray[i].oneof)
|
|
185
|
+
};
|
|
186
|
+
if (i)
|
|
187
|
+
Object.defineProperties(ctor.prototype, ctorProperties);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Generates a constructor function for the specified type.
|
|
194
|
+
* @param {Type} mtype Message type
|
|
195
|
+
* @returns {Codegen} Codegen instance
|
|
196
|
+
*/
|
|
197
|
+
Type.generateConstructor = function generateConstructor(mtype) {
|
|
198
|
+
/* eslint-disable no-unexpected-multiline */
|
|
199
|
+
var gen = util.codegen(["p"], mtype.name);
|
|
200
|
+
// explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype
|
|
201
|
+
for (var i = 0, field; i < mtype.fieldsArray.length; ++i)
|
|
202
|
+
if ((field = mtype._fieldsArray[i]).map) gen
|
|
203
|
+
("this%s={}", util.safeProp(field.name));
|
|
204
|
+
else if (field.repeated) gen
|
|
205
|
+
("this%s=[]", util.safeProp(field.name));
|
|
206
|
+
return gen
|
|
207
|
+
("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)") // omit undefined or null
|
|
208
|
+
("this[ks[i]]=p[ks[i]]");
|
|
209
|
+
/* eslint-enable no-unexpected-multiline */
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
function clearCache(type) {
|
|
213
|
+
type._fieldsById = type._fieldsArray = type._oneofsArray = null;
|
|
214
|
+
delete type.encode;
|
|
215
|
+
delete type.decode;
|
|
216
|
+
delete type.verify;
|
|
217
|
+
return type;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Message type descriptor.
|
|
222
|
+
* @interface IType
|
|
223
|
+
* @extends INamespace
|
|
224
|
+
* @property {Object.<string,IOneOf>} [oneofs] Oneof descriptors
|
|
225
|
+
* @property {Object.<string,IField>} fields Field descriptors
|
|
226
|
+
* @property {number[][]} [extensions] Extension ranges
|
|
227
|
+
* @property {Array.<number[]|string>} [reserved] Reserved ranges
|
|
228
|
+
* @property {boolean} [group=false] Whether a legacy group or not
|
|
229
|
+
*/
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Creates a message type from a message type descriptor.
|
|
233
|
+
* @param {string} name Message name
|
|
234
|
+
* @param {IType} json Message type descriptor
|
|
235
|
+
* @returns {Type} Created message type
|
|
236
|
+
*/
|
|
237
|
+
Type.fromJSON = function fromJSON(name, json) {
|
|
238
|
+
var type = new Type(name, json.options);
|
|
239
|
+
type.extensions = json.extensions;
|
|
240
|
+
type.reserved = json.reserved;
|
|
241
|
+
var names = Object.keys(json.fields),
|
|
242
|
+
i = 0;
|
|
243
|
+
for (; i < names.length; ++i)
|
|
244
|
+
type.add(
|
|
245
|
+
( typeof json.fields[names[i]].keyType !== "undefined"
|
|
246
|
+
? MapField.fromJSON
|
|
247
|
+
: Field.fromJSON )(names[i], json.fields[names[i]])
|
|
248
|
+
);
|
|
249
|
+
if (json.oneofs)
|
|
250
|
+
for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)
|
|
251
|
+
type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));
|
|
252
|
+
if (json.nested)
|
|
253
|
+
for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {
|
|
254
|
+
var nested = json.nested[names[i]];
|
|
255
|
+
type.add( // most to least likely
|
|
256
|
+
( nested.id !== undefined
|
|
257
|
+
? Field.fromJSON
|
|
258
|
+
: nested.fields !== undefined
|
|
259
|
+
? Type.fromJSON
|
|
260
|
+
: nested.values !== undefined
|
|
261
|
+
? Enum.fromJSON
|
|
262
|
+
: nested.methods !== undefined
|
|
263
|
+
? Service.fromJSON
|
|
264
|
+
: Namespace.fromJSON )(names[i], nested)
|
|
265
|
+
);
|
|
266
|
+
}
|
|
267
|
+
if (json.extensions && json.extensions.length)
|
|
268
|
+
type.extensions = json.extensions;
|
|
269
|
+
if (json.reserved && json.reserved.length)
|
|
270
|
+
type.reserved = json.reserved;
|
|
271
|
+
if (json.group)
|
|
272
|
+
type.group = true;
|
|
273
|
+
if (json.comment)
|
|
274
|
+
type.comment = json.comment;
|
|
275
|
+
return type;
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Converts this message type to a message type descriptor.
|
|
280
|
+
* @param {IToJSONOptions} [toJSONOptions] JSON conversion options
|
|
281
|
+
* @returns {IType} Message type descriptor
|
|
282
|
+
*/
|
|
283
|
+
Type.prototype.toJSON = function toJSON(toJSONOptions) {
|
|
284
|
+
var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);
|
|
285
|
+
var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;
|
|
286
|
+
return util.toObject([
|
|
287
|
+
"options" , inherited && inherited.options || undefined,
|
|
288
|
+
"oneofs" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),
|
|
289
|
+
"fields" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},
|
|
290
|
+
"extensions" , this.extensions && this.extensions.length ? this.extensions : undefined,
|
|
291
|
+
"reserved" , this.reserved && this.reserved.length ? this.reserved : undefined,
|
|
292
|
+
"group" , this.group || undefined,
|
|
293
|
+
"nested" , inherited && inherited.nested || undefined,
|
|
294
|
+
"comment" , keepComments ? this.comment : undefined
|
|
295
|
+
]);
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* @override
|
|
300
|
+
*/
|
|
301
|
+
Type.prototype.resolveAll = function resolveAll() {
|
|
302
|
+
var fields = this.fieldsArray, i = 0;
|
|
303
|
+
while (i < fields.length)
|
|
304
|
+
fields[i++].resolve();
|
|
305
|
+
var oneofs = this.oneofsArray; i = 0;
|
|
306
|
+
while (i < oneofs.length)
|
|
307
|
+
oneofs[i++].resolve();
|
|
308
|
+
return Namespace.prototype.resolveAll.call(this);
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* @override
|
|
313
|
+
*/
|
|
314
|
+
Type.prototype.get = function get(name) {
|
|
315
|
+
return this.fields[name]
|
|
316
|
+
|| this.oneofs && this.oneofs[name]
|
|
317
|
+
|| this.nested && this.nested[name]
|
|
318
|
+
|| null;
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Adds a nested object to this type.
|
|
323
|
+
* @param {ReflectionObject} object Nested object to add
|
|
324
|
+
* @returns {Type} `this`
|
|
325
|
+
* @throws {TypeError} If arguments are invalid
|
|
326
|
+
* @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id
|
|
327
|
+
*/
|
|
328
|
+
Type.prototype.add = function add(object) {
|
|
329
|
+
|
|
330
|
+
if (this.get(object.name))
|
|
331
|
+
throw Error("duplicate name '" + object.name + "' in " + this);
|
|
332
|
+
|
|
333
|
+
if (object instanceof Field && object.extend === undefined) {
|
|
334
|
+
// NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.
|
|
335
|
+
// The root object takes care of adding distinct sister-fields to the respective extended
|
|
336
|
+
// type instead.
|
|
337
|
+
|
|
338
|
+
// avoids calling the getter if not absolutely necessary because it's called quite frequently
|
|
339
|
+
if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])
|
|
340
|
+
throw Error("duplicate id " + object.id + " in " + this);
|
|
341
|
+
if (this.isReservedId(object.id))
|
|
342
|
+
throw Error("id " + object.id + " is reserved in " + this);
|
|
343
|
+
if (this.isReservedName(object.name))
|
|
344
|
+
throw Error("name '" + object.name + "' is reserved in " + this);
|
|
345
|
+
|
|
346
|
+
if (object.parent)
|
|
347
|
+
object.parent.remove(object);
|
|
348
|
+
this.fields[object.name] = object;
|
|
349
|
+
object.message = this;
|
|
350
|
+
object.onAdd(this);
|
|
351
|
+
return clearCache(this);
|
|
352
|
+
}
|
|
353
|
+
if (object instanceof OneOf) {
|
|
354
|
+
if (!this.oneofs)
|
|
355
|
+
this.oneofs = {};
|
|
356
|
+
this.oneofs[object.name] = object;
|
|
357
|
+
object.onAdd(this);
|
|
358
|
+
return clearCache(this);
|
|
359
|
+
}
|
|
360
|
+
return Namespace.prototype.add.call(this, object);
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* Removes a nested object from this type.
|
|
365
|
+
* @param {ReflectionObject} object Nested object to remove
|
|
366
|
+
* @returns {Type} `this`
|
|
367
|
+
* @throws {TypeError} If arguments are invalid
|
|
368
|
+
* @throws {Error} If `object` is not a member of this type
|
|
369
|
+
*/
|
|
370
|
+
Type.prototype.remove = function remove(object) {
|
|
371
|
+
if (object instanceof Field && object.extend === undefined) {
|
|
372
|
+
// See Type#add for the reason why extension fields are excluded here.
|
|
373
|
+
|
|
374
|
+
/* istanbul ignore if */
|
|
375
|
+
if (!this.fields || this.fields[object.name] !== object)
|
|
376
|
+
throw Error(object + " is not a member of " + this);
|
|
377
|
+
|
|
378
|
+
delete this.fields[object.name];
|
|
379
|
+
object.parent = null;
|
|
380
|
+
object.onRemove(this);
|
|
381
|
+
return clearCache(this);
|
|
382
|
+
}
|
|
383
|
+
if (object instanceof OneOf) {
|
|
384
|
+
|
|
385
|
+
/* istanbul ignore if */
|
|
386
|
+
if (!this.oneofs || this.oneofs[object.name] !== object)
|
|
387
|
+
throw Error(object + " is not a member of " + this);
|
|
388
|
+
|
|
389
|
+
delete this.oneofs[object.name];
|
|
390
|
+
object.parent = null;
|
|
391
|
+
object.onRemove(this);
|
|
392
|
+
return clearCache(this);
|
|
393
|
+
}
|
|
394
|
+
return Namespace.prototype.remove.call(this, object);
|
|
395
|
+
};
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Tests if the specified id is reserved.
|
|
399
|
+
* @param {number} id Id to test
|
|
400
|
+
* @returns {boolean} `true` if reserved, otherwise `false`
|
|
401
|
+
*/
|
|
402
|
+
Type.prototype.isReservedId = function isReservedId(id) {
|
|
403
|
+
return Namespace.isReservedId(this.reserved, id);
|
|
404
|
+
};
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Tests if the specified name is reserved.
|
|
408
|
+
* @param {string} name Name to test
|
|
409
|
+
* @returns {boolean} `true` if reserved, otherwise `false`
|
|
410
|
+
*/
|
|
411
|
+
Type.prototype.isReservedName = function isReservedName(name) {
|
|
412
|
+
return Namespace.isReservedName(this.reserved, name);
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* Creates a new message of this type using the specified properties.
|
|
417
|
+
* @param {Object.<string,*>} [properties] Properties to set
|
|
418
|
+
* @returns {Message<{}>} Message instance
|
|
419
|
+
*/
|
|
420
|
+
Type.prototype.create = function create(properties) {
|
|
421
|
+
return new this.ctor(properties);
|
|
422
|
+
};
|
|
423
|
+
|
|
424
|
+
/**
|
|
425
|
+
* Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.
|
|
426
|
+
* @returns {Type} `this`
|
|
427
|
+
*/
|
|
428
|
+
Type.prototype.setup = function setup() {
|
|
429
|
+
// Sets up everything at once so that the prototype chain does not have to be re-evaluated
|
|
430
|
+
// multiple times (V8, soft-deopt prototype-check).
|
|
431
|
+
|
|
432
|
+
var fullName = this.fullName,
|
|
433
|
+
types = [];
|
|
434
|
+
for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)
|
|
435
|
+
types.push(this._fieldsArray[i].resolve().resolvedType);
|
|
436
|
+
|
|
437
|
+
// Replace setup methods with type-specific generated functions
|
|
438
|
+
this.encode = encoder(this)({
|
|
439
|
+
Writer : Writer,
|
|
440
|
+
types : types,
|
|
441
|
+
util : util
|
|
442
|
+
});
|
|
443
|
+
this.decode = decoder(this)({
|
|
444
|
+
Reader : Reader,
|
|
445
|
+
types : types,
|
|
446
|
+
util : util
|
|
447
|
+
});
|
|
448
|
+
this.verify = verifier(this)({
|
|
449
|
+
types : types,
|
|
450
|
+
util : util
|
|
451
|
+
});
|
|
452
|
+
this.fromObject = converter.fromObject(this)({
|
|
453
|
+
types : types,
|
|
454
|
+
util : util
|
|
455
|
+
});
|
|
456
|
+
this.toObject = converter.toObject(this)({
|
|
457
|
+
types : types,
|
|
458
|
+
util : util
|
|
459
|
+
});
|
|
460
|
+
|
|
461
|
+
// Inject custom wrappers for common types
|
|
462
|
+
var wrapper = wrappers[fullName];
|
|
463
|
+
if (wrapper) {
|
|
464
|
+
var originalThis = Object.create(this);
|
|
465
|
+
// if (wrapper.fromObject) {
|
|
466
|
+
originalThis.fromObject = this.fromObject;
|
|
467
|
+
this.fromObject = wrapper.fromObject.bind(originalThis);
|
|
468
|
+
// }
|
|
469
|
+
// if (wrapper.toObject) {
|
|
470
|
+
originalThis.toObject = this.toObject;
|
|
471
|
+
this.toObject = wrapper.toObject.bind(originalThis);
|
|
472
|
+
// }
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
return this;
|
|
476
|
+
};
|
|
477
|
+
|
|
478
|
+
/**
|
|
479
|
+
* Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.
|
|
480
|
+
* @param {Message<{}>|Object.<string,*>} message Message instance or plain object
|
|
481
|
+
* @param {Writer} [writer] Writer to encode to
|
|
482
|
+
* @returns {Writer} writer
|
|
483
|
+
*/
|
|
484
|
+
Type.prototype.encode = function encode_setup(message, writer) {
|
|
485
|
+
return this.setup().encode(message, writer); // overrides this method
|
|
486
|
+
};
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.
|
|
490
|
+
* @param {Message<{}>|Object.<string,*>} message Message instance or plain object
|
|
491
|
+
* @param {Writer} [writer] Writer to encode to
|
|
492
|
+
* @returns {Writer} writer
|
|
493
|
+
*/
|
|
494
|
+
Type.prototype.encodeDelimited = function encodeDelimited(message, writer) {
|
|
495
|
+
return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();
|
|
496
|
+
};
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* Decodes a message of this type.
|
|
500
|
+
* @param {Reader|Uint8Array} reader Reader or buffer to decode from
|
|
501
|
+
* @param {number} [length] Length of the message, if known beforehand
|
|
502
|
+
* @returns {Message<{}>} Decoded message
|
|
503
|
+
* @throws {Error} If the payload is not a reader or valid buffer
|
|
504
|
+
* @throws {util.ProtocolError<{}>} If required fields are missing
|
|
505
|
+
*/
|
|
506
|
+
Type.prototype.decode = function decode_setup(reader, length) {
|
|
507
|
+
return this.setup().decode(reader, length); // overrides this method
|
|
508
|
+
};
|
|
509
|
+
|
|
510
|
+
/**
|
|
511
|
+
* Decodes a message of this type preceeded by its byte length as a varint.
|
|
512
|
+
* @param {Reader|Uint8Array} reader Reader or buffer to decode from
|
|
513
|
+
* @returns {Message<{}>} Decoded message
|
|
514
|
+
* @throws {Error} If the payload is not a reader or valid buffer
|
|
515
|
+
* @throws {util.ProtocolError} If required fields are missing
|
|
516
|
+
*/
|
|
517
|
+
Type.prototype.decodeDelimited = function decodeDelimited(reader) {
|
|
518
|
+
if (!(reader instanceof Reader))
|
|
519
|
+
reader = Reader.create(reader);
|
|
520
|
+
return this.decode(reader, reader.uint32());
|
|
521
|
+
};
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* Verifies that field values are valid and that required fields are present.
|
|
525
|
+
* @param {Object.<string,*>} message Plain object to verify
|
|
526
|
+
* @returns {null|string} `null` if valid, otherwise the reason why it is not
|
|
527
|
+
*/
|
|
528
|
+
Type.prototype.verify = function verify_setup(message) {
|
|
529
|
+
return this.setup().verify(message); // overrides this method
|
|
530
|
+
};
|
|
531
|
+
|
|
532
|
+
/**
|
|
533
|
+
* Creates a new message of this type from a plain object. Also converts values to their respective internal types.
|
|
534
|
+
* @param {Object.<string,*>} object Plain object to convert
|
|
535
|
+
* @returns {Message<{}>} Message instance
|
|
536
|
+
*/
|
|
537
|
+
Type.prototype.fromObject = function fromObject(object) {
|
|
538
|
+
return this.setup().fromObject(object);
|
|
539
|
+
};
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
+
* Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.
|
|
543
|
+
* @interface IConversionOptions
|
|
544
|
+
* @property {Function} [longs] Long conversion type.
|
|
545
|
+
* Valid values are `String` and `Number` (the global types).
|
|
546
|
+
* Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.
|
|
547
|
+
* @property {Function} [enums] Enum value conversion type.
|
|
548
|
+
* Only valid value is `String` (the global type).
|
|
549
|
+
* Defaults to copy the present value, which is the numeric id.
|
|
550
|
+
* @property {Function} [bytes] Bytes value conversion type.
|
|
551
|
+
* Valid values are `Array` and (a base64 encoded) `String` (the global types).
|
|
552
|
+
* Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.
|
|
553
|
+
* @property {boolean} [defaults=false] Also sets default values on the resulting object
|
|
554
|
+
* @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`
|
|
555
|
+
* @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`
|
|
556
|
+
* @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any
|
|
557
|
+
* @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings
|
|
558
|
+
*/
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* Creates a plain object from a message of this type. Also converts values to other types if specified.
|
|
562
|
+
* @param {Message<{}>} message Message instance
|
|
563
|
+
* @param {IConversionOptions} [options] Conversion options
|
|
564
|
+
* @returns {Object.<string,*>} Plain object
|
|
565
|
+
*/
|
|
566
|
+
Type.prototype.toObject = function toObject(message, options) {
|
|
567
|
+
return this.setup().toObject(message, options);
|
|
568
|
+
};
|
|
569
|
+
|
|
570
|
+
/**
|
|
571
|
+
* Decorator function as returned by {@link Type.d} (TypeScript).
|
|
572
|
+
* @typedef TypeDecorator
|
|
573
|
+
* @type {function}
|
|
574
|
+
* @param {Constructor<T>} target Target constructor
|
|
575
|
+
* @returns {undefined}
|
|
576
|
+
* @template T extends Message<T>
|
|
577
|
+
*/
|
|
578
|
+
|
|
579
|
+
/**
|
|
580
|
+
* Type decorator (TypeScript).
|
|
581
|
+
* @param {string} [typeName] Type name, defaults to the constructor's name
|
|
582
|
+
* @returns {TypeDecorator<T>} Decorator function
|
|
583
|
+
* @template T extends Message<T>
|
|
584
|
+
*/
|
|
585
|
+
Type.d = function decorateType(typeName) {
|
|
586
|
+
return function typeDecorator(target) {
|
|
587
|
+
util.decorateType(target, typeName);
|
|
588
|
+
};
|
|
589
|
+
};
|