scanoss 0.9.2 → 0.10.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.
Files changed (127) hide show
  1. package/README.md +23 -15
  2. package/assets/ReportHTMLTemplate/index.html +74 -59
  3. package/build/main/cli/commands/scan.js +29 -18
  4. package/build/main/index.d.ts +10 -6
  5. package/build/main/index.js +11 -8
  6. package/build/main/sdk/Constants.d.ts +4 -0
  7. package/build/main/sdk/Constants.js +7 -0
  8. package/build/main/sdk/Dependencies/DependencyScanner.d.ts +2 -2
  9. package/build/main/sdk/Dependencies/DependencyScanner.js +6 -6
  10. package/build/main/sdk/Errors.d.ts +1 -0
  11. package/build/main/sdk/Errors.js +4 -0
  12. package/build/main/sdk/FileCount/FileCount.d.ts +1 -1
  13. package/build/main/sdk/FileCount/FileCount.js +10 -3
  14. package/build/main/sdk/{DataLayer → Report/DataLayer}/DataLayerTypes.d.ts +11 -4
  15. package/build/main/sdk/{DataLayer → Report/DataLayer}/DataLayerTypes.js +1 -4
  16. package/build/main/sdk/{DataLayer → Report/DataLayer}/DataProviderManager.d.ts +1 -1
  17. package/build/main/sdk/Report/DataLayer/DataProviderManager.js +25 -0
  18. package/build/main/sdk/{DataLayer → Report/DataLayer}/DataProviders/ComponentDataProvider.d.ts +3 -3
  19. package/build/main/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.js +175 -0
  20. package/build/main/sdk/{DataLayer → Report/DataLayer}/DataProviders/DependencyDataProvider.d.ts +2 -2
  21. package/build/main/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.js +42 -0
  22. package/build/main/sdk/{DataLayer → Report/DataLayer}/DataProviders/LicenseDataProvider.d.ts +3 -5
  23. package/build/main/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.js +118 -0
  24. package/build/main/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.d.ts +13 -0
  25. package/build/main/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.js +65 -0
  26. package/build/{module/sdk → main/sdk/Report}/DataLayer/DataProviders/SummaryDataProvider.d.ts +4 -2
  27. package/build/main/sdk/Report/DataLayer/DataProviders/SummaryDataProvider.js +38 -0
  28. package/build/main/sdk/Report/Report.d.ts +7 -1
  29. package/build/main/sdk/Report/Report.js +19 -6
  30. package/build/main/sdk/Services/Grpc/BaseService.d.ts +18 -0
  31. package/build/main/sdk/Services/Grpc/BaseService.js +94 -0
  32. package/build/main/sdk/Services/Grpc/CryptographyService.d.ts +9 -0
  33. package/build/main/sdk/Services/Grpc/CryptographyService.js +35 -0
  34. package/build/{module/sdk/grpc/GrpcDependencyService.d.ts → main/sdk/Services/Grpc/DependencyService.d.ts} +1 -1
  35. package/build/main/sdk/{grpc/GrpcDependencyService.js → Services/Grpc/DependencyService.js} +4 -4
  36. package/build/main/sdk/Services/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  37. package/build/main/sdk/Services/Grpc/scanoss/api/common/v2/scanoss-common_pb.js +746 -0
  38. package/build/main/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +39 -0
  39. package/build/main/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +98 -0
  40. package/build/main/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +562 -0
  41. package/build/{module/sdk/grpc → main/sdk/Services/Grpc}/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +2 -2
  42. package/build/main/sdk/Services/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1397 -0
  43. package/build/main/sdk/scanner/Dispatcher/Dispatcher.js +2 -2
  44. package/build/main/sdk/scanner/Scanner.js +2 -2
  45. package/build/main/sdk/scanner/ScannerCfg.js +5 -5
  46. package/build/main/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +2 -2
  47. package/build/main/tsconfig.tsbuildinfo +299 -217
  48. package/build/module/cli/commands/scan.js +31 -20
  49. package/build/module/index.d.ts +10 -6
  50. package/build/module/index.js +11 -8
  51. package/build/module/sdk/Constants.d.ts +4 -0
  52. package/build/module/sdk/Constants.js +5 -0
  53. package/build/module/sdk/Dependencies/DependencyScanner.d.ts +2 -2
  54. package/build/module/sdk/Dependencies/DependencyScanner.js +9 -9
  55. package/build/module/sdk/Errors.d.ts +1 -0
  56. package/build/module/sdk/Errors.js +2 -0
  57. package/build/module/sdk/FileCount/FileCount.d.ts +1 -1
  58. package/build/module/sdk/FileCount/FileCount.js +13 -6
  59. package/build/module/sdk/{DataLayer → Report/DataLayer}/DataLayerTypes.d.ts +11 -4
  60. package/build/module/sdk/Report/DataLayer/DataLayerTypes.js +2 -0
  61. package/build/module/sdk/{DataLayer → Report/DataLayer}/DataProviderManager.d.ts +1 -1
  62. package/build/module/sdk/Report/DataLayer/DataProviderManager.js +22 -0
  63. package/build/module/sdk/{DataLayer → Report/DataLayer}/DataProviders/ComponentDataProvider.d.ts +3 -3
  64. package/build/module/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.js +170 -0
  65. package/build/module/sdk/{DataLayer → Report/DataLayer}/DataProviders/DependencyDataProvider.d.ts +2 -2
  66. package/build/module/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.js +39 -0
  67. package/build/module/sdk/{DataLayer → Report/DataLayer}/DataProviders/LicenseDataProvider.d.ts +3 -5
  68. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.js +115 -0
  69. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.d.ts +13 -0
  70. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.js +60 -0
  71. package/build/{main/sdk → module/sdk/Report}/DataLayer/DataProviders/SummaryDataProvider.d.ts +4 -2
  72. package/build/module/sdk/Report/DataLayer/DataProviders/SummaryDataProvider.js +35 -0
  73. package/build/module/sdk/Report/Report.d.ts +7 -1
  74. package/build/module/sdk/Report/Report.js +19 -6
  75. package/build/module/sdk/Services/Grpc/BaseService.d.ts +18 -0
  76. package/build/module/sdk/Services/Grpc/BaseService.js +61 -0
  77. package/build/module/sdk/Services/Grpc/CryptographyService.d.ts +9 -0
  78. package/build/module/sdk/Services/Grpc/CryptographyService.js +32 -0
  79. package/build/{main/sdk/grpc/GrpcDependencyService.d.ts → module/sdk/Services/Grpc/DependencyService.d.ts} +1 -1
  80. package/build/module/sdk/Services/Grpc/DependencyService.js +62 -0
  81. package/build/module/sdk/Services/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
  82. package/build/module/sdk/Services/Grpc/scanoss/api/common/v2/scanoss-common_pb.js +746 -0
  83. package/build/module/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +39 -0
  84. package/build/module/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +98 -0
  85. package/build/module/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +562 -0
  86. package/build/{main/sdk/grpc → module/sdk/Services/Grpc}/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +2 -2
  87. package/build/module/sdk/Services/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1397 -0
  88. package/build/module/sdk/scanner/Dispatcher/Dispatcher.js +2 -2
  89. package/build/module/sdk/scanner/Scanner.js +2 -2
  90. package/build/module/sdk/scanner/ScannerCfg.js +5 -5
  91. package/build/module/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +2 -2
  92. package/build/module/tsconfig.module.tsbuildinfo +299 -217
  93. package/package.json +2 -2
  94. package/build/main/sdk/DataLayer/DataProviderManager.js +0 -24
  95. package/build/main/sdk/DataLayer/DataProviders/ComponentDataProvider.js +0 -164
  96. package/build/main/sdk/DataLayer/DataProviders/DependencyDataProvider.js +0 -37
  97. package/build/main/sdk/DataLayer/DataProviders/LicenseDataProvider.js +0 -148
  98. package/build/main/sdk/DataLayer/DataProviders/SummaryDataProvider.js +0 -33
  99. package/build/main/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
  100. package/build/main/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -404
  101. package/build/main/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1197
  102. package/build/main/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -19
  103. package/build/main/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -66
  104. package/build/main/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -14
  105. package/build/module/sdk/DataLayer/DataLayerTypes.js +0 -5
  106. package/build/module/sdk/DataLayer/DataProviderManager.js +0 -21
  107. package/build/module/sdk/DataLayer/DataProviders/ComponentDataProvider.js +0 -159
  108. package/build/module/sdk/DataLayer/DataProviders/DependencyDataProvider.js +0 -34
  109. package/build/module/sdk/DataLayer/DataProviders/LicenseDataProvider.js +0 -145
  110. package/build/module/sdk/DataLayer/DataProviders/SummaryDataProvider.js +0 -30
  111. package/build/module/sdk/grpc/GrpcDependencyService.js +0 -62
  112. package/build/module/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
  113. package/build/module/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -404
  114. package/build/module/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1197
  115. package/build/module/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -19
  116. package/build/module/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -66
  117. package/build/module/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -14
  118. /package/build/main/sdk/{grpc → Services/Grpc}/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  119. /package/build/main/sdk/{grpc → Services/Grpc}/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -0
  120. /package/build/main/sdk/{grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts → Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.d.ts} +0 -0
  121. /package/build/main/sdk/{grpc → Services/Grpc}/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -0
  122. /package/build/{module/sdk/grpc → main/sdk/Services/Grpc}/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -0
  123. /package/build/module/sdk/{grpc → Services/Grpc}/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  124. /package/build/module/sdk/{grpc → Services/Grpc}/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -0
  125. /package/build/{main/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts → module/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.d.ts} +0 -0
  126. /package/build/module/sdk/{grpc → Services/Grpc}/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -0
  127. /package/build/module/sdk/{grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts → Services/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts} +0 -0
@@ -0,0 +1,1397 @@
1
+ // source: scanoss/api/dependencies/v2/scanoss-dependencies.proto
2
+ /**
3
+ * @fileoverview
4
+ * @enhanceable
5
+ * @suppress {missingRequire} reports error on implicit type usages.
6
+ * @suppress {messageConventions} JS Compiler reports an error if a variable or
7
+ * field starts with 'MSG_' and isn't a translatable message.
8
+ * @public
9
+ */
10
+ // GENERATED CODE -- DO NOT EDIT!
11
+ /* eslint-disable */
12
+ // @ts-nocheck
13
+ var jspb = require('google-protobuf');
14
+ var goog = jspb;
15
+ var global = (typeof globalThis !== 'undefined' && globalThis) ||
16
+ (typeof window !== 'undefined' && window) ||
17
+ (typeof global !== 'undefined' && global) ||
18
+ (typeof self !== 'undefined' && self) ||
19
+ (function () { return this; }).call(null) ||
20
+ Function('return this')();
21
+ var scanoss_api_common_v2_scanoss$common_pb = require('../../../../scanoss/api/common/v2/scanoss-common_pb.js');
22
+ goog.object.extend(proto, scanoss_api_common_v2_scanoss$common_pb);
23
+ goog.exportSymbol('proto.scanoss.api.dependencies.v2.DependencyRequest', null, global);
24
+ goog.exportSymbol('proto.scanoss.api.dependencies.v2.DependencyRequest.Files', null, global);
25
+ goog.exportSymbol('proto.scanoss.api.dependencies.v2.DependencyRequest.Purls', null, global);
26
+ goog.exportSymbol('proto.scanoss.api.dependencies.v2.DependencyResponse', null, global);
27
+ goog.exportSymbol('proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies', null, global);
28
+ goog.exportSymbol('proto.scanoss.api.dependencies.v2.DependencyResponse.Files', null, global);
29
+ goog.exportSymbol('proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses', null, global);
30
+ /**
31
+ * Generated by JsPbCodeGenerator.
32
+ * @param {Array=} opt_data Optional initial data array, typically from a
33
+ * server response, or constructed directly in Javascript. The array is used
34
+ * in place and becomes part of the constructed object. It is not cloned.
35
+ * If no data is provided, the constructed object will be empty, but still
36
+ * valid.
37
+ * @extends {jspb.Message}
38
+ * @constructor
39
+ */
40
+ proto.scanoss.api.dependencies.v2.DependencyRequest = function (opt_data) {
41
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.scanoss.api.dependencies.v2.DependencyRequest.repeatedFields_, null);
42
+ };
43
+ goog.inherits(proto.scanoss.api.dependencies.v2.DependencyRequest, jspb.Message);
44
+ if (goog.DEBUG && !COMPILED) {
45
+ /**
46
+ * @public
47
+ * @override
48
+ */
49
+ proto.scanoss.api.dependencies.v2.DependencyRequest.displayName = 'proto.scanoss.api.dependencies.v2.DependencyRequest';
50
+ }
51
+ /**
52
+ * Generated by JsPbCodeGenerator.
53
+ * @param {Array=} opt_data Optional initial data array, typically from a
54
+ * server response, or constructed directly in Javascript. The array is used
55
+ * in place and becomes part of the constructed object. It is not cloned.
56
+ * If no data is provided, the constructed object will be empty, but still
57
+ * valid.
58
+ * @extends {jspb.Message}
59
+ * @constructor
60
+ */
61
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls = function (opt_data) {
62
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
63
+ };
64
+ goog.inherits(proto.scanoss.api.dependencies.v2.DependencyRequest.Purls, jspb.Message);
65
+ if (goog.DEBUG && !COMPILED) {
66
+ /**
67
+ * @public
68
+ * @override
69
+ */
70
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.displayName = 'proto.scanoss.api.dependencies.v2.DependencyRequest.Purls';
71
+ }
72
+ /**
73
+ * Generated by JsPbCodeGenerator.
74
+ * @param {Array=} opt_data Optional initial data array, typically from a
75
+ * server response, or constructed directly in Javascript. The array is used
76
+ * in place and becomes part of the constructed object. It is not cloned.
77
+ * If no data is provided, the constructed object will be empty, but still
78
+ * valid.
79
+ * @extends {jspb.Message}
80
+ * @constructor
81
+ */
82
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files = function (opt_data) {
83
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.scanoss.api.dependencies.v2.DependencyRequest.Files.repeatedFields_, null);
84
+ };
85
+ goog.inherits(proto.scanoss.api.dependencies.v2.DependencyRequest.Files, jspb.Message);
86
+ if (goog.DEBUG && !COMPILED) {
87
+ /**
88
+ * @public
89
+ * @override
90
+ */
91
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.displayName = 'proto.scanoss.api.dependencies.v2.DependencyRequest.Files';
92
+ }
93
+ /**
94
+ * Generated by JsPbCodeGenerator.
95
+ * @param {Array=} opt_data Optional initial data array, typically from a
96
+ * server response, or constructed directly in Javascript. The array is used
97
+ * in place and becomes part of the constructed object. It is not cloned.
98
+ * If no data is provided, the constructed object will be empty, but still
99
+ * valid.
100
+ * @extends {jspb.Message}
101
+ * @constructor
102
+ */
103
+ proto.scanoss.api.dependencies.v2.DependencyResponse = function (opt_data) {
104
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.scanoss.api.dependencies.v2.DependencyResponse.repeatedFields_, null);
105
+ };
106
+ goog.inherits(proto.scanoss.api.dependencies.v2.DependencyResponse, jspb.Message);
107
+ if (goog.DEBUG && !COMPILED) {
108
+ /**
109
+ * @public
110
+ * @override
111
+ */
112
+ proto.scanoss.api.dependencies.v2.DependencyResponse.displayName = 'proto.scanoss.api.dependencies.v2.DependencyResponse';
113
+ }
114
+ /**
115
+ * Generated by JsPbCodeGenerator.
116
+ * @param {Array=} opt_data Optional initial data array, typically from a
117
+ * server response, or constructed directly in Javascript. The array is used
118
+ * in place and becomes part of the constructed object. It is not cloned.
119
+ * If no data is provided, the constructed object will be empty, but still
120
+ * valid.
121
+ * @extends {jspb.Message}
122
+ * @constructor
123
+ */
124
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses = function (opt_data) {
125
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
126
+ };
127
+ goog.inherits(proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses, jspb.Message);
128
+ if (goog.DEBUG && !COMPILED) {
129
+ /**
130
+ * @public
131
+ * @override
132
+ */
133
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.displayName = 'proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses';
134
+ }
135
+ /**
136
+ * Generated by JsPbCodeGenerator.
137
+ * @param {Array=} opt_data Optional initial data array, typically from a
138
+ * server response, or constructed directly in Javascript. The array is used
139
+ * in place and becomes part of the constructed object. It is not cloned.
140
+ * If no data is provided, the constructed object will be empty, but still
141
+ * valid.
142
+ * @extends {jspb.Message}
143
+ * @constructor
144
+ */
145
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies = function (opt_data) {
146
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.repeatedFields_, null);
147
+ };
148
+ goog.inherits(proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies, jspb.Message);
149
+ if (goog.DEBUG && !COMPILED) {
150
+ /**
151
+ * @public
152
+ * @override
153
+ */
154
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.displayName = 'proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies';
155
+ }
156
+ /**
157
+ * Generated by JsPbCodeGenerator.
158
+ * @param {Array=} opt_data Optional initial data array, typically from a
159
+ * server response, or constructed directly in Javascript. The array is used
160
+ * in place and becomes part of the constructed object. It is not cloned.
161
+ * If no data is provided, the constructed object will be empty, but still
162
+ * valid.
163
+ * @extends {jspb.Message}
164
+ * @constructor
165
+ */
166
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files = function (opt_data) {
167
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.scanoss.api.dependencies.v2.DependencyResponse.Files.repeatedFields_, null);
168
+ };
169
+ goog.inherits(proto.scanoss.api.dependencies.v2.DependencyResponse.Files, jspb.Message);
170
+ if (goog.DEBUG && !COMPILED) {
171
+ /**
172
+ * @public
173
+ * @override
174
+ */
175
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.displayName = 'proto.scanoss.api.dependencies.v2.DependencyResponse.Files';
176
+ }
177
+ /**
178
+ * List of repeated fields within this message type.
179
+ * @private {!Array<number>}
180
+ * @const
181
+ */
182
+ proto.scanoss.api.dependencies.v2.DependencyRequest.repeatedFields_ = [1];
183
+ if (jspb.Message.GENERATE_TO_OBJECT) {
184
+ /**
185
+ * Creates an object representation of this proto.
186
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
187
+ * Optional fields that are not set will be set to undefined.
188
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
189
+ * For the list of reserved names please see:
190
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
191
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
192
+ * JSPB instance for transitional soy proto support:
193
+ * http://goto/soy-param-migration
194
+ * @return {!Object}
195
+ */
196
+ proto.scanoss.api.dependencies.v2.DependencyRequest.prototype.toObject = function (opt_includeInstance) {
197
+ return proto.scanoss.api.dependencies.v2.DependencyRequest.toObject(opt_includeInstance, this);
198
+ };
199
+ /**
200
+ * Static version of the {@see toObject} method.
201
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
202
+ * the JSPB instance for transitional soy proto support:
203
+ * http://goto/soy-param-migration
204
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest} msg The msg instance to transform.
205
+ * @return {!Object}
206
+ * @suppress {unusedLocalVariables} f is only used for nested messages
207
+ */
208
+ proto.scanoss.api.dependencies.v2.DependencyRequest.toObject = function (includeInstance, msg) {
209
+ var f, obj = {
210
+ filesList: jspb.Message.toObjectList(msg.getFilesList(), proto.scanoss.api.dependencies.v2.DependencyRequest.Files.toObject, includeInstance),
211
+ depth: jspb.Message.getFieldWithDefault(msg, 2, 0)
212
+ };
213
+ if (includeInstance) {
214
+ obj.$jspbMessageInstance = msg;
215
+ }
216
+ return obj;
217
+ };
218
+ }
219
+ /**
220
+ * Deserializes binary data (in protobuf wire format).
221
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
222
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest}
223
+ */
224
+ proto.scanoss.api.dependencies.v2.DependencyRequest.deserializeBinary = function (bytes) {
225
+ var reader = new jspb.BinaryReader(bytes);
226
+ var msg = new proto.scanoss.api.dependencies.v2.DependencyRequest;
227
+ return proto.scanoss.api.dependencies.v2.DependencyRequest.deserializeBinaryFromReader(msg, reader);
228
+ };
229
+ /**
230
+ * Deserializes binary data (in protobuf wire format) from the
231
+ * given reader into the given message object.
232
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest} msg The message object to deserialize into.
233
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
234
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest}
235
+ */
236
+ proto.scanoss.api.dependencies.v2.DependencyRequest.deserializeBinaryFromReader = function (msg, reader) {
237
+ while (reader.nextField()) {
238
+ if (reader.isEndGroup()) {
239
+ break;
240
+ }
241
+ var field = reader.getFieldNumber();
242
+ switch (field) {
243
+ case 1:
244
+ var value = new proto.scanoss.api.dependencies.v2.DependencyRequest.Files;
245
+ reader.readMessage(value, proto.scanoss.api.dependencies.v2.DependencyRequest.Files.deserializeBinaryFromReader);
246
+ msg.addFiles(value);
247
+ break;
248
+ case 2:
249
+ var value = /** @type {number} */ (reader.readInt32());
250
+ msg.setDepth(value);
251
+ break;
252
+ default:
253
+ reader.skipField();
254
+ break;
255
+ }
256
+ }
257
+ return msg;
258
+ };
259
+ /**
260
+ * Serializes the message to binary data (in protobuf wire format).
261
+ * @return {!Uint8Array}
262
+ */
263
+ proto.scanoss.api.dependencies.v2.DependencyRequest.prototype.serializeBinary = function () {
264
+ var writer = new jspb.BinaryWriter();
265
+ proto.scanoss.api.dependencies.v2.DependencyRequest.serializeBinaryToWriter(this, writer);
266
+ return writer.getResultBuffer();
267
+ };
268
+ /**
269
+ * Serializes the given message to binary data (in protobuf wire
270
+ * format), writing to the given BinaryWriter.
271
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest} message
272
+ * @param {!jspb.BinaryWriter} writer
273
+ * @suppress {unusedLocalVariables} f is only used for nested messages
274
+ */
275
+ proto.scanoss.api.dependencies.v2.DependencyRequest.serializeBinaryToWriter = function (message, writer) {
276
+ var f = undefined;
277
+ f = message.getFilesList();
278
+ if (f.length > 0) {
279
+ writer.writeRepeatedMessage(1, f, proto.scanoss.api.dependencies.v2.DependencyRequest.Files.serializeBinaryToWriter);
280
+ }
281
+ f = message.getDepth();
282
+ if (f !== 0) {
283
+ writer.writeInt32(2, f);
284
+ }
285
+ };
286
+ if (jspb.Message.GENERATE_TO_OBJECT) {
287
+ /**
288
+ * Creates an object representation of this proto.
289
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
290
+ * Optional fields that are not set will be set to undefined.
291
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
292
+ * For the list of reserved names please see:
293
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
294
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
295
+ * JSPB instance for transitional soy proto support:
296
+ * http://goto/soy-param-migration
297
+ * @return {!Object}
298
+ */
299
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.prototype.toObject = function (opt_includeInstance) {
300
+ return proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.toObject(opt_includeInstance, this);
301
+ };
302
+ /**
303
+ * Static version of the {@see toObject} method.
304
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
305
+ * the JSPB instance for transitional soy proto support:
306
+ * http://goto/soy-param-migration
307
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls} msg The msg instance to transform.
308
+ * @return {!Object}
309
+ * @suppress {unusedLocalVariables} f is only used for nested messages
310
+ */
311
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.toObject = function (includeInstance, msg) {
312
+ var f, obj = {
313
+ purl: jspb.Message.getFieldWithDefault(msg, 1, ""),
314
+ requirement: jspb.Message.getFieldWithDefault(msg, 2, "")
315
+ };
316
+ if (includeInstance) {
317
+ obj.$jspbMessageInstance = msg;
318
+ }
319
+ return obj;
320
+ };
321
+ }
322
+ /**
323
+ * Deserializes binary data (in protobuf wire format).
324
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
325
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls}
326
+ */
327
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.deserializeBinary = function (bytes) {
328
+ var reader = new jspb.BinaryReader(bytes);
329
+ var msg = new proto.scanoss.api.dependencies.v2.DependencyRequest.Purls;
330
+ return proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.deserializeBinaryFromReader(msg, reader);
331
+ };
332
+ /**
333
+ * Deserializes binary data (in protobuf wire format) from the
334
+ * given reader into the given message object.
335
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls} msg The message object to deserialize into.
336
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
337
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls}
338
+ */
339
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.deserializeBinaryFromReader = function (msg, reader) {
340
+ while (reader.nextField()) {
341
+ if (reader.isEndGroup()) {
342
+ break;
343
+ }
344
+ var field = reader.getFieldNumber();
345
+ switch (field) {
346
+ case 1:
347
+ var value = /** @type {string} */ (reader.readString());
348
+ msg.setPurl(value);
349
+ break;
350
+ case 2:
351
+ var value = /** @type {string} */ (reader.readString());
352
+ msg.setRequirement(value);
353
+ break;
354
+ default:
355
+ reader.skipField();
356
+ break;
357
+ }
358
+ }
359
+ return msg;
360
+ };
361
+ /**
362
+ * Serializes the message to binary data (in protobuf wire format).
363
+ * @return {!Uint8Array}
364
+ */
365
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.prototype.serializeBinary = function () {
366
+ var writer = new jspb.BinaryWriter();
367
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.serializeBinaryToWriter(this, writer);
368
+ return writer.getResultBuffer();
369
+ };
370
+ /**
371
+ * Serializes the given message to binary data (in protobuf wire
372
+ * format), writing to the given BinaryWriter.
373
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls} message
374
+ * @param {!jspb.BinaryWriter} writer
375
+ * @suppress {unusedLocalVariables} f is only used for nested messages
376
+ */
377
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.serializeBinaryToWriter = function (message, writer) {
378
+ var f = undefined;
379
+ f = message.getPurl();
380
+ if (f.length > 0) {
381
+ writer.writeString(1, f);
382
+ }
383
+ f = message.getRequirement();
384
+ if (f.length > 0) {
385
+ writer.writeString(2, f);
386
+ }
387
+ };
388
+ /**
389
+ * optional string purl = 1;
390
+ * @return {string}
391
+ */
392
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.prototype.getPurl = function () {
393
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
394
+ };
395
+ /**
396
+ * @param {string} value
397
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls} returns this
398
+ */
399
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.prototype.setPurl = function (value) {
400
+ return jspb.Message.setProto3StringField(this, 1, value);
401
+ };
402
+ /**
403
+ * optional string requirement = 2;
404
+ * @return {string}
405
+ */
406
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.prototype.getRequirement = function () {
407
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
408
+ };
409
+ /**
410
+ * @param {string} value
411
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls} returns this
412
+ */
413
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.prototype.setRequirement = function (value) {
414
+ return jspb.Message.setProto3StringField(this, 2, value);
415
+ };
416
+ /**
417
+ * List of repeated fields within this message type.
418
+ * @private {!Array<number>}
419
+ * @const
420
+ */
421
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.repeatedFields_ = [2];
422
+ if (jspb.Message.GENERATE_TO_OBJECT) {
423
+ /**
424
+ * Creates an object representation of this proto.
425
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
426
+ * Optional fields that are not set will be set to undefined.
427
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
428
+ * For the list of reserved names please see:
429
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
430
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
431
+ * JSPB instance for transitional soy proto support:
432
+ * http://goto/soy-param-migration
433
+ * @return {!Object}
434
+ */
435
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.prototype.toObject = function (opt_includeInstance) {
436
+ return proto.scanoss.api.dependencies.v2.DependencyRequest.Files.toObject(opt_includeInstance, this);
437
+ };
438
+ /**
439
+ * Static version of the {@see toObject} method.
440
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
441
+ * the JSPB instance for transitional soy proto support:
442
+ * http://goto/soy-param-migration
443
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest.Files} msg The msg instance to transform.
444
+ * @return {!Object}
445
+ * @suppress {unusedLocalVariables} f is only used for nested messages
446
+ */
447
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.toObject = function (includeInstance, msg) {
448
+ var f, obj = {
449
+ file: jspb.Message.getFieldWithDefault(msg, 1, ""),
450
+ purlsList: jspb.Message.toObjectList(msg.getPurlsList(), proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.toObject, includeInstance)
451
+ };
452
+ if (includeInstance) {
453
+ obj.$jspbMessageInstance = msg;
454
+ }
455
+ return obj;
456
+ };
457
+ }
458
+ /**
459
+ * Deserializes binary data (in protobuf wire format).
460
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
461
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Files}
462
+ */
463
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.deserializeBinary = function (bytes) {
464
+ var reader = new jspb.BinaryReader(bytes);
465
+ var msg = new proto.scanoss.api.dependencies.v2.DependencyRequest.Files;
466
+ return proto.scanoss.api.dependencies.v2.DependencyRequest.Files.deserializeBinaryFromReader(msg, reader);
467
+ };
468
+ /**
469
+ * Deserializes binary data (in protobuf wire format) from the
470
+ * given reader into the given message object.
471
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest.Files} msg The message object to deserialize into.
472
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
473
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Files}
474
+ */
475
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.deserializeBinaryFromReader = function (msg, reader) {
476
+ while (reader.nextField()) {
477
+ if (reader.isEndGroup()) {
478
+ break;
479
+ }
480
+ var field = reader.getFieldNumber();
481
+ switch (field) {
482
+ case 1:
483
+ var value = /** @type {string} */ (reader.readString());
484
+ msg.setFile(value);
485
+ break;
486
+ case 2:
487
+ var value = new proto.scanoss.api.dependencies.v2.DependencyRequest.Purls;
488
+ reader.readMessage(value, proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.deserializeBinaryFromReader);
489
+ msg.addPurls(value);
490
+ break;
491
+ default:
492
+ reader.skipField();
493
+ break;
494
+ }
495
+ }
496
+ return msg;
497
+ };
498
+ /**
499
+ * Serializes the message to binary data (in protobuf wire format).
500
+ * @return {!Uint8Array}
501
+ */
502
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.prototype.serializeBinary = function () {
503
+ var writer = new jspb.BinaryWriter();
504
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.serializeBinaryToWriter(this, writer);
505
+ return writer.getResultBuffer();
506
+ };
507
+ /**
508
+ * Serializes the given message to binary data (in protobuf wire
509
+ * format), writing to the given BinaryWriter.
510
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest.Files} message
511
+ * @param {!jspb.BinaryWriter} writer
512
+ * @suppress {unusedLocalVariables} f is only used for nested messages
513
+ */
514
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.serializeBinaryToWriter = function (message, writer) {
515
+ var f = undefined;
516
+ f = message.getFile();
517
+ if (f.length > 0) {
518
+ writer.writeString(1, f);
519
+ }
520
+ f = message.getPurlsList();
521
+ if (f.length > 0) {
522
+ writer.writeRepeatedMessage(2, f, proto.scanoss.api.dependencies.v2.DependencyRequest.Purls.serializeBinaryToWriter);
523
+ }
524
+ };
525
+ /**
526
+ * optional string file = 1;
527
+ * @return {string}
528
+ */
529
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.prototype.getFile = function () {
530
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
531
+ };
532
+ /**
533
+ * @param {string} value
534
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Files} returns this
535
+ */
536
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.prototype.setFile = function (value) {
537
+ return jspb.Message.setProto3StringField(this, 1, value);
538
+ };
539
+ /**
540
+ * repeated Purls purls = 2;
541
+ * @return {!Array<!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls>}
542
+ */
543
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.prototype.getPurlsList = function () {
544
+ return /** @type{!Array<!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls>} */ (jspb.Message.getRepeatedWrapperField(this, proto.scanoss.api.dependencies.v2.DependencyRequest.Purls, 2));
545
+ };
546
+ /**
547
+ * @param {!Array<!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls>} value
548
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Files} returns this
549
+ */
550
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.prototype.setPurlsList = function (value) {
551
+ return jspb.Message.setRepeatedWrapperField(this, 2, value);
552
+ };
553
+ /**
554
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls=} opt_value
555
+ * @param {number=} opt_index
556
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Purls}
557
+ */
558
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.prototype.addPurls = function (opt_value, opt_index) {
559
+ return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.scanoss.api.dependencies.v2.DependencyRequest.Purls, opt_index);
560
+ };
561
+ /**
562
+ * Clears the list making it empty but non-null.
563
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Files} returns this
564
+ */
565
+ proto.scanoss.api.dependencies.v2.DependencyRequest.Files.prototype.clearPurlsList = function () {
566
+ return this.setPurlsList([]);
567
+ };
568
+ /**
569
+ * repeated Files files = 1;
570
+ * @return {!Array<!proto.scanoss.api.dependencies.v2.DependencyRequest.Files>}
571
+ */
572
+ proto.scanoss.api.dependencies.v2.DependencyRequest.prototype.getFilesList = function () {
573
+ return /** @type{!Array<!proto.scanoss.api.dependencies.v2.DependencyRequest.Files>} */ (jspb.Message.getRepeatedWrapperField(this, proto.scanoss.api.dependencies.v2.DependencyRequest.Files, 1));
574
+ };
575
+ /**
576
+ * @param {!Array<!proto.scanoss.api.dependencies.v2.DependencyRequest.Files>} value
577
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest} returns this
578
+ */
579
+ proto.scanoss.api.dependencies.v2.DependencyRequest.prototype.setFilesList = function (value) {
580
+ return jspb.Message.setRepeatedWrapperField(this, 1, value);
581
+ };
582
+ /**
583
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyRequest.Files=} opt_value
584
+ * @param {number=} opt_index
585
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest.Files}
586
+ */
587
+ proto.scanoss.api.dependencies.v2.DependencyRequest.prototype.addFiles = function (opt_value, opt_index) {
588
+ return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.scanoss.api.dependencies.v2.DependencyRequest.Files, opt_index);
589
+ };
590
+ /**
591
+ * Clears the list making it empty but non-null.
592
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest} returns this
593
+ */
594
+ proto.scanoss.api.dependencies.v2.DependencyRequest.prototype.clearFilesList = function () {
595
+ return this.setFilesList([]);
596
+ };
597
+ /**
598
+ * optional int32 depth = 2;
599
+ * @return {number}
600
+ */
601
+ proto.scanoss.api.dependencies.v2.DependencyRequest.prototype.getDepth = function () {
602
+ return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
603
+ };
604
+ /**
605
+ * @param {number} value
606
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyRequest} returns this
607
+ */
608
+ proto.scanoss.api.dependencies.v2.DependencyRequest.prototype.setDepth = function (value) {
609
+ return jspb.Message.setProto3IntField(this, 2, value);
610
+ };
611
+ /**
612
+ * List of repeated fields within this message type.
613
+ * @private {!Array<number>}
614
+ * @const
615
+ */
616
+ proto.scanoss.api.dependencies.v2.DependencyResponse.repeatedFields_ = [1];
617
+ if (jspb.Message.GENERATE_TO_OBJECT) {
618
+ /**
619
+ * Creates an object representation of this proto.
620
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
621
+ * Optional fields that are not set will be set to undefined.
622
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
623
+ * For the list of reserved names please see:
624
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
625
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
626
+ * JSPB instance for transitional soy proto support:
627
+ * http://goto/soy-param-migration
628
+ * @return {!Object}
629
+ */
630
+ proto.scanoss.api.dependencies.v2.DependencyResponse.prototype.toObject = function (opt_includeInstance) {
631
+ return proto.scanoss.api.dependencies.v2.DependencyResponse.toObject(opt_includeInstance, this);
632
+ };
633
+ /**
634
+ * Static version of the {@see toObject} method.
635
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
636
+ * the JSPB instance for transitional soy proto support:
637
+ * http://goto/soy-param-migration
638
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse} msg The msg instance to transform.
639
+ * @return {!Object}
640
+ * @suppress {unusedLocalVariables} f is only used for nested messages
641
+ */
642
+ proto.scanoss.api.dependencies.v2.DependencyResponse.toObject = function (includeInstance, msg) {
643
+ var f, obj = {
644
+ filesList: jspb.Message.toObjectList(msg.getFilesList(), proto.scanoss.api.dependencies.v2.DependencyResponse.Files.toObject, includeInstance),
645
+ status: (f = msg.getStatus()) && scanoss_api_common_v2_scanoss$common_pb.StatusResponse.toObject(includeInstance, f)
646
+ };
647
+ if (includeInstance) {
648
+ obj.$jspbMessageInstance = msg;
649
+ }
650
+ return obj;
651
+ };
652
+ }
653
+ /**
654
+ * Deserializes binary data (in protobuf wire format).
655
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
656
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse}
657
+ */
658
+ proto.scanoss.api.dependencies.v2.DependencyResponse.deserializeBinary = function (bytes) {
659
+ var reader = new jspb.BinaryReader(bytes);
660
+ var msg = new proto.scanoss.api.dependencies.v2.DependencyResponse;
661
+ return proto.scanoss.api.dependencies.v2.DependencyResponse.deserializeBinaryFromReader(msg, reader);
662
+ };
663
+ /**
664
+ * Deserializes binary data (in protobuf wire format) from the
665
+ * given reader into the given message object.
666
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse} msg The message object to deserialize into.
667
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
668
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse}
669
+ */
670
+ proto.scanoss.api.dependencies.v2.DependencyResponse.deserializeBinaryFromReader = function (msg, reader) {
671
+ while (reader.nextField()) {
672
+ if (reader.isEndGroup()) {
673
+ break;
674
+ }
675
+ var field = reader.getFieldNumber();
676
+ switch (field) {
677
+ case 1:
678
+ var value = new proto.scanoss.api.dependencies.v2.DependencyResponse.Files;
679
+ reader.readMessage(value, proto.scanoss.api.dependencies.v2.DependencyResponse.Files.deserializeBinaryFromReader);
680
+ msg.addFiles(value);
681
+ break;
682
+ case 2:
683
+ var value = new scanoss_api_common_v2_scanoss$common_pb.StatusResponse;
684
+ reader.readMessage(value, scanoss_api_common_v2_scanoss$common_pb.StatusResponse.deserializeBinaryFromReader);
685
+ msg.setStatus(value);
686
+ break;
687
+ default:
688
+ reader.skipField();
689
+ break;
690
+ }
691
+ }
692
+ return msg;
693
+ };
694
+ /**
695
+ * Serializes the message to binary data (in protobuf wire format).
696
+ * @return {!Uint8Array}
697
+ */
698
+ proto.scanoss.api.dependencies.v2.DependencyResponse.prototype.serializeBinary = function () {
699
+ var writer = new jspb.BinaryWriter();
700
+ proto.scanoss.api.dependencies.v2.DependencyResponse.serializeBinaryToWriter(this, writer);
701
+ return writer.getResultBuffer();
702
+ };
703
+ /**
704
+ * Serializes the given message to binary data (in protobuf wire
705
+ * format), writing to the given BinaryWriter.
706
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse} message
707
+ * @param {!jspb.BinaryWriter} writer
708
+ * @suppress {unusedLocalVariables} f is only used for nested messages
709
+ */
710
+ proto.scanoss.api.dependencies.v2.DependencyResponse.serializeBinaryToWriter = function (message, writer) {
711
+ var f = undefined;
712
+ f = message.getFilesList();
713
+ if (f.length > 0) {
714
+ writer.writeRepeatedMessage(1, f, proto.scanoss.api.dependencies.v2.DependencyResponse.Files.serializeBinaryToWriter);
715
+ }
716
+ f = message.getStatus();
717
+ if (f != null) {
718
+ writer.writeMessage(2, f, scanoss_api_common_v2_scanoss$common_pb.StatusResponse.serializeBinaryToWriter);
719
+ }
720
+ };
721
+ if (jspb.Message.GENERATE_TO_OBJECT) {
722
+ /**
723
+ * Creates an object representation of this proto.
724
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
725
+ * Optional fields that are not set will be set to undefined.
726
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
727
+ * For the list of reserved names please see:
728
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
729
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
730
+ * JSPB instance for transitional soy proto support:
731
+ * http://goto/soy-param-migration
732
+ * @return {!Object}
733
+ */
734
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.prototype.toObject = function (opt_includeInstance) {
735
+ return proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.toObject(opt_includeInstance, this);
736
+ };
737
+ /**
738
+ * Static version of the {@see toObject} method.
739
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
740
+ * the JSPB instance for transitional soy proto support:
741
+ * http://goto/soy-param-migration
742
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses} msg The msg instance to transform.
743
+ * @return {!Object}
744
+ * @suppress {unusedLocalVariables} f is only used for nested messages
745
+ */
746
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.toObject = function (includeInstance, msg) {
747
+ var f, obj = {
748
+ name: jspb.Message.getFieldWithDefault(msg, 1, ""),
749
+ spdxId: jspb.Message.getFieldWithDefault(msg, 2, ""),
750
+ isSpdxApproved: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
751
+ url: jspb.Message.getFieldWithDefault(msg, 4, "")
752
+ };
753
+ if (includeInstance) {
754
+ obj.$jspbMessageInstance = msg;
755
+ }
756
+ return obj;
757
+ };
758
+ }
759
+ /**
760
+ * Deserializes binary data (in protobuf wire format).
761
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
762
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses}
763
+ */
764
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.deserializeBinary = function (bytes) {
765
+ var reader = new jspb.BinaryReader(bytes);
766
+ var msg = new proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses;
767
+ return proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.deserializeBinaryFromReader(msg, reader);
768
+ };
769
+ /**
770
+ * Deserializes binary data (in protobuf wire format) from the
771
+ * given reader into the given message object.
772
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses} msg The message object to deserialize into.
773
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
774
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses}
775
+ */
776
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.deserializeBinaryFromReader = function (msg, reader) {
777
+ while (reader.nextField()) {
778
+ if (reader.isEndGroup()) {
779
+ break;
780
+ }
781
+ var field = reader.getFieldNumber();
782
+ switch (field) {
783
+ case 1:
784
+ var value = /** @type {string} */ (reader.readString());
785
+ msg.setName(value);
786
+ break;
787
+ case 2:
788
+ var value = /** @type {string} */ (reader.readString());
789
+ msg.setSpdxId(value);
790
+ break;
791
+ case 3:
792
+ var value = /** @type {boolean} */ (reader.readBool());
793
+ msg.setIsSpdxApproved(value);
794
+ break;
795
+ case 4:
796
+ var value = /** @type {string} */ (reader.readString());
797
+ msg.setUrl(value);
798
+ break;
799
+ default:
800
+ reader.skipField();
801
+ break;
802
+ }
803
+ }
804
+ return msg;
805
+ };
806
+ /**
807
+ * Serializes the message to binary data (in protobuf wire format).
808
+ * @return {!Uint8Array}
809
+ */
810
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.prototype.serializeBinary = function () {
811
+ var writer = new jspb.BinaryWriter();
812
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.serializeBinaryToWriter(this, writer);
813
+ return writer.getResultBuffer();
814
+ };
815
+ /**
816
+ * Serializes the given message to binary data (in protobuf wire
817
+ * format), writing to the given BinaryWriter.
818
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses} message
819
+ * @param {!jspb.BinaryWriter} writer
820
+ * @suppress {unusedLocalVariables} f is only used for nested messages
821
+ */
822
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.serializeBinaryToWriter = function (message, writer) {
823
+ var f = undefined;
824
+ f = message.getName();
825
+ if (f.length > 0) {
826
+ writer.writeString(1, f);
827
+ }
828
+ f = message.getSpdxId();
829
+ if (f.length > 0) {
830
+ writer.writeString(2, f);
831
+ }
832
+ f = message.getIsSpdxApproved();
833
+ if (f) {
834
+ writer.writeBool(3, f);
835
+ }
836
+ f = message.getUrl();
837
+ if (f.length > 0) {
838
+ writer.writeString(4, f);
839
+ }
840
+ };
841
+ /**
842
+ * optional string name = 1;
843
+ * @return {string}
844
+ */
845
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.prototype.getName = function () {
846
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
847
+ };
848
+ /**
849
+ * @param {string} value
850
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses} returns this
851
+ */
852
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.prototype.setName = function (value) {
853
+ return jspb.Message.setProto3StringField(this, 1, value);
854
+ };
855
+ /**
856
+ * optional string spdx_id = 2;
857
+ * @return {string}
858
+ */
859
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.prototype.getSpdxId = function () {
860
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
861
+ };
862
+ /**
863
+ * @param {string} value
864
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses} returns this
865
+ */
866
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.prototype.setSpdxId = function (value) {
867
+ return jspb.Message.setProto3StringField(this, 2, value);
868
+ };
869
+ /**
870
+ * optional bool is_spdx_approved = 3;
871
+ * @return {boolean}
872
+ */
873
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.prototype.getIsSpdxApproved = function () {
874
+ return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));
875
+ };
876
+ /**
877
+ * @param {boolean} value
878
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses} returns this
879
+ */
880
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.prototype.setIsSpdxApproved = function (value) {
881
+ return jspb.Message.setProto3BooleanField(this, 3, value);
882
+ };
883
+ /**
884
+ * optional string url = 4;
885
+ * @return {string}
886
+ */
887
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.prototype.getUrl = function () {
888
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
889
+ };
890
+ /**
891
+ * @param {string} value
892
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses} returns this
893
+ */
894
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.prototype.setUrl = function (value) {
895
+ return jspb.Message.setProto3StringField(this, 4, value);
896
+ };
897
+ /**
898
+ * List of repeated fields within this message type.
899
+ * @private {!Array<number>}
900
+ * @const
901
+ */
902
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.repeatedFields_ = [4];
903
+ if (jspb.Message.GENERATE_TO_OBJECT) {
904
+ /**
905
+ * Creates an object representation of this proto.
906
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
907
+ * Optional fields that are not set will be set to undefined.
908
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
909
+ * For the list of reserved names please see:
910
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
911
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
912
+ * JSPB instance for transitional soy proto support:
913
+ * http://goto/soy-param-migration
914
+ * @return {!Object}
915
+ */
916
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.toObject = function (opt_includeInstance) {
917
+ return proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.toObject(opt_includeInstance, this);
918
+ };
919
+ /**
920
+ * Static version of the {@see toObject} method.
921
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
922
+ * the JSPB instance for transitional soy proto support:
923
+ * http://goto/soy-param-migration
924
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies} msg The msg instance to transform.
925
+ * @return {!Object}
926
+ * @suppress {unusedLocalVariables} f is only used for nested messages
927
+ */
928
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.toObject = function (includeInstance, msg) {
929
+ var f, obj = {
930
+ component: jspb.Message.getFieldWithDefault(msg, 1, ""),
931
+ purl: jspb.Message.getFieldWithDefault(msg, 2, ""),
932
+ version: jspb.Message.getFieldWithDefault(msg, 3, ""),
933
+ licensesList: jspb.Message.toObjectList(msg.getLicensesList(), proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.toObject, includeInstance),
934
+ url: jspb.Message.getFieldWithDefault(msg, 5, ""),
935
+ comment: jspb.Message.getFieldWithDefault(msg, 6, "")
936
+ };
937
+ if (includeInstance) {
938
+ obj.$jspbMessageInstance = msg;
939
+ }
940
+ return obj;
941
+ };
942
+ }
943
+ /**
944
+ * Deserializes binary data (in protobuf wire format).
945
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
946
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies}
947
+ */
948
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.deserializeBinary = function (bytes) {
949
+ var reader = new jspb.BinaryReader(bytes);
950
+ var msg = new proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies;
951
+ return proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.deserializeBinaryFromReader(msg, reader);
952
+ };
953
+ /**
954
+ * Deserializes binary data (in protobuf wire format) from the
955
+ * given reader into the given message object.
956
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies} msg The message object to deserialize into.
957
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
958
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies}
959
+ */
960
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.deserializeBinaryFromReader = function (msg, reader) {
961
+ while (reader.nextField()) {
962
+ if (reader.isEndGroup()) {
963
+ break;
964
+ }
965
+ var field = reader.getFieldNumber();
966
+ switch (field) {
967
+ case 1:
968
+ var value = /** @type {string} */ (reader.readString());
969
+ msg.setComponent(value);
970
+ break;
971
+ case 2:
972
+ var value = /** @type {string} */ (reader.readString());
973
+ msg.setPurl(value);
974
+ break;
975
+ case 3:
976
+ var value = /** @type {string} */ (reader.readString());
977
+ msg.setVersion(value);
978
+ break;
979
+ case 4:
980
+ var value = new proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses;
981
+ reader.readMessage(value, proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.deserializeBinaryFromReader);
982
+ msg.addLicenses(value);
983
+ break;
984
+ case 5:
985
+ var value = /** @type {string} */ (reader.readString());
986
+ msg.setUrl(value);
987
+ break;
988
+ case 6:
989
+ var value = /** @type {string} */ (reader.readString());
990
+ msg.setComment(value);
991
+ break;
992
+ default:
993
+ reader.skipField();
994
+ break;
995
+ }
996
+ }
997
+ return msg;
998
+ };
999
+ /**
1000
+ * Serializes the message to binary data (in protobuf wire format).
1001
+ * @return {!Uint8Array}
1002
+ */
1003
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.serializeBinary = function () {
1004
+ var writer = new jspb.BinaryWriter();
1005
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.serializeBinaryToWriter(this, writer);
1006
+ return writer.getResultBuffer();
1007
+ };
1008
+ /**
1009
+ * Serializes the given message to binary data (in protobuf wire
1010
+ * format), writing to the given BinaryWriter.
1011
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies} message
1012
+ * @param {!jspb.BinaryWriter} writer
1013
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1014
+ */
1015
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.serializeBinaryToWriter = function (message, writer) {
1016
+ var f = undefined;
1017
+ f = message.getComponent();
1018
+ if (f.length > 0) {
1019
+ writer.writeString(1, f);
1020
+ }
1021
+ f = message.getPurl();
1022
+ if (f.length > 0) {
1023
+ writer.writeString(2, f);
1024
+ }
1025
+ f = message.getVersion();
1026
+ if (f.length > 0) {
1027
+ writer.writeString(3, f);
1028
+ }
1029
+ f = message.getLicensesList();
1030
+ if (f.length > 0) {
1031
+ writer.writeRepeatedMessage(4, f, proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses.serializeBinaryToWriter);
1032
+ }
1033
+ f = message.getUrl();
1034
+ if (f.length > 0) {
1035
+ writer.writeString(5, f);
1036
+ }
1037
+ f = message.getComment();
1038
+ if (f.length > 0) {
1039
+ writer.writeString(6, f);
1040
+ }
1041
+ };
1042
+ /**
1043
+ * optional string component = 1;
1044
+ * @return {string}
1045
+ */
1046
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.getComponent = function () {
1047
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
1048
+ };
1049
+ /**
1050
+ * @param {string} value
1051
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies} returns this
1052
+ */
1053
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.setComponent = function (value) {
1054
+ return jspb.Message.setProto3StringField(this, 1, value);
1055
+ };
1056
+ /**
1057
+ * optional string purl = 2;
1058
+ * @return {string}
1059
+ */
1060
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.getPurl = function () {
1061
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
1062
+ };
1063
+ /**
1064
+ * @param {string} value
1065
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies} returns this
1066
+ */
1067
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.setPurl = function (value) {
1068
+ return jspb.Message.setProto3StringField(this, 2, value);
1069
+ };
1070
+ /**
1071
+ * optional string version = 3;
1072
+ * @return {string}
1073
+ */
1074
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.getVersion = function () {
1075
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
1076
+ };
1077
+ /**
1078
+ * @param {string} value
1079
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies} returns this
1080
+ */
1081
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.setVersion = function (value) {
1082
+ return jspb.Message.setProto3StringField(this, 3, value);
1083
+ };
1084
+ /**
1085
+ * repeated Licenses licenses = 4;
1086
+ * @return {!Array<!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses>}
1087
+ */
1088
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.getLicensesList = function () {
1089
+ return /** @type{!Array<!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses>} */ (jspb.Message.getRepeatedWrapperField(this, proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses, 4));
1090
+ };
1091
+ /**
1092
+ * @param {!Array<!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses>} value
1093
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies} returns this
1094
+ */
1095
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.setLicensesList = function (value) {
1096
+ return jspb.Message.setRepeatedWrapperField(this, 4, value);
1097
+ };
1098
+ /**
1099
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses=} opt_value
1100
+ * @param {number=} opt_index
1101
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses}
1102
+ */
1103
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.addLicenses = function (opt_value, opt_index) {
1104
+ return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.scanoss.api.dependencies.v2.DependencyResponse.Licenses, opt_index);
1105
+ };
1106
+ /**
1107
+ * Clears the list making it empty but non-null.
1108
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies} returns this
1109
+ */
1110
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.clearLicensesList = function () {
1111
+ return this.setLicensesList([]);
1112
+ };
1113
+ /**
1114
+ * optional string url = 5;
1115
+ * @return {string}
1116
+ */
1117
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.getUrl = function () {
1118
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
1119
+ };
1120
+ /**
1121
+ * @param {string} value
1122
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies} returns this
1123
+ */
1124
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.setUrl = function (value) {
1125
+ return jspb.Message.setProto3StringField(this, 5, value);
1126
+ };
1127
+ /**
1128
+ * optional string comment = 6;
1129
+ * @return {string}
1130
+ */
1131
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.getComment = function () {
1132
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
1133
+ };
1134
+ /**
1135
+ * @param {string} value
1136
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies} returns this
1137
+ */
1138
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.prototype.setComment = function (value) {
1139
+ return jspb.Message.setProto3StringField(this, 6, value);
1140
+ };
1141
+ /**
1142
+ * List of repeated fields within this message type.
1143
+ * @private {!Array<number>}
1144
+ * @const
1145
+ */
1146
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.repeatedFields_ = [4];
1147
+ if (jspb.Message.GENERATE_TO_OBJECT) {
1148
+ /**
1149
+ * Creates an object representation of this proto.
1150
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
1151
+ * Optional fields that are not set will be set to undefined.
1152
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
1153
+ * For the list of reserved names please see:
1154
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
1155
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
1156
+ * JSPB instance for transitional soy proto support:
1157
+ * http://goto/soy-param-migration
1158
+ * @return {!Object}
1159
+ */
1160
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.toObject = function (opt_includeInstance) {
1161
+ return proto.scanoss.api.dependencies.v2.DependencyResponse.Files.toObject(opt_includeInstance, this);
1162
+ };
1163
+ /**
1164
+ * Static version of the {@see toObject} method.
1165
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
1166
+ * the JSPB instance for transitional soy proto support:
1167
+ * http://goto/soy-param-migration
1168
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files} msg The msg instance to transform.
1169
+ * @return {!Object}
1170
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1171
+ */
1172
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.toObject = function (includeInstance, msg) {
1173
+ var f, obj = {
1174
+ file: jspb.Message.getFieldWithDefault(msg, 1, ""),
1175
+ id: jspb.Message.getFieldWithDefault(msg, 2, ""),
1176
+ status: jspb.Message.getFieldWithDefault(msg, 3, ""),
1177
+ dependenciesList: jspb.Message.toObjectList(msg.getDependenciesList(), proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.toObject, includeInstance)
1178
+ };
1179
+ if (includeInstance) {
1180
+ obj.$jspbMessageInstance = msg;
1181
+ }
1182
+ return obj;
1183
+ };
1184
+ }
1185
+ /**
1186
+ * Deserializes binary data (in protobuf wire format).
1187
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
1188
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files}
1189
+ */
1190
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.deserializeBinary = function (bytes) {
1191
+ var reader = new jspb.BinaryReader(bytes);
1192
+ var msg = new proto.scanoss.api.dependencies.v2.DependencyResponse.Files;
1193
+ return proto.scanoss.api.dependencies.v2.DependencyResponse.Files.deserializeBinaryFromReader(msg, reader);
1194
+ };
1195
+ /**
1196
+ * Deserializes binary data (in protobuf wire format) from the
1197
+ * given reader into the given message object.
1198
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files} msg The message object to deserialize into.
1199
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
1200
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files}
1201
+ */
1202
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.deserializeBinaryFromReader = function (msg, reader) {
1203
+ while (reader.nextField()) {
1204
+ if (reader.isEndGroup()) {
1205
+ break;
1206
+ }
1207
+ var field = reader.getFieldNumber();
1208
+ switch (field) {
1209
+ case 1:
1210
+ var value = /** @type {string} */ (reader.readString());
1211
+ msg.setFile(value);
1212
+ break;
1213
+ case 2:
1214
+ var value = /** @type {string} */ (reader.readString());
1215
+ msg.setId(value);
1216
+ break;
1217
+ case 3:
1218
+ var value = /** @type {string} */ (reader.readString());
1219
+ msg.setStatus(value);
1220
+ break;
1221
+ case 4:
1222
+ var value = new proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies;
1223
+ reader.readMessage(value, proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.deserializeBinaryFromReader);
1224
+ msg.addDependencies(value);
1225
+ break;
1226
+ default:
1227
+ reader.skipField();
1228
+ break;
1229
+ }
1230
+ }
1231
+ return msg;
1232
+ };
1233
+ /**
1234
+ * Serializes the message to binary data (in protobuf wire format).
1235
+ * @return {!Uint8Array}
1236
+ */
1237
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.serializeBinary = function () {
1238
+ var writer = new jspb.BinaryWriter();
1239
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.serializeBinaryToWriter(this, writer);
1240
+ return writer.getResultBuffer();
1241
+ };
1242
+ /**
1243
+ * Serializes the given message to binary data (in protobuf wire
1244
+ * format), writing to the given BinaryWriter.
1245
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files} message
1246
+ * @param {!jspb.BinaryWriter} writer
1247
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1248
+ */
1249
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.serializeBinaryToWriter = function (message, writer) {
1250
+ var f = undefined;
1251
+ f = message.getFile();
1252
+ if (f.length > 0) {
1253
+ writer.writeString(1, f);
1254
+ }
1255
+ f = message.getId();
1256
+ if (f.length > 0) {
1257
+ writer.writeString(2, f);
1258
+ }
1259
+ f = message.getStatus();
1260
+ if (f.length > 0) {
1261
+ writer.writeString(3, f);
1262
+ }
1263
+ f = message.getDependenciesList();
1264
+ if (f.length > 0) {
1265
+ writer.writeRepeatedMessage(4, f, proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies.serializeBinaryToWriter);
1266
+ }
1267
+ };
1268
+ /**
1269
+ * optional string file = 1;
1270
+ * @return {string}
1271
+ */
1272
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.getFile = function () {
1273
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
1274
+ };
1275
+ /**
1276
+ * @param {string} value
1277
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files} returns this
1278
+ */
1279
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.setFile = function (value) {
1280
+ return jspb.Message.setProto3StringField(this, 1, value);
1281
+ };
1282
+ /**
1283
+ * optional string id = 2;
1284
+ * @return {string}
1285
+ */
1286
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.getId = function () {
1287
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
1288
+ };
1289
+ /**
1290
+ * @param {string} value
1291
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files} returns this
1292
+ */
1293
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.setId = function (value) {
1294
+ return jspb.Message.setProto3StringField(this, 2, value);
1295
+ };
1296
+ /**
1297
+ * optional string status = 3;
1298
+ * @return {string}
1299
+ */
1300
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.getStatus = function () {
1301
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
1302
+ };
1303
+ /**
1304
+ * @param {string} value
1305
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files} returns this
1306
+ */
1307
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.setStatus = function (value) {
1308
+ return jspb.Message.setProto3StringField(this, 3, value);
1309
+ };
1310
+ /**
1311
+ * repeated Dependencies dependencies = 4;
1312
+ * @return {!Array<!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies>}
1313
+ */
1314
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.getDependenciesList = function () {
1315
+ return /** @type{!Array<!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies>} */ (jspb.Message.getRepeatedWrapperField(this, proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies, 4));
1316
+ };
1317
+ /**
1318
+ * @param {!Array<!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies>} value
1319
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files} returns this
1320
+ */
1321
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.setDependenciesList = function (value) {
1322
+ return jspb.Message.setRepeatedWrapperField(this, 4, value);
1323
+ };
1324
+ /**
1325
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies=} opt_value
1326
+ * @param {number=} opt_index
1327
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies}
1328
+ */
1329
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.addDependencies = function (opt_value, opt_index) {
1330
+ return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.scanoss.api.dependencies.v2.DependencyResponse.Dependencies, opt_index);
1331
+ };
1332
+ /**
1333
+ * Clears the list making it empty but non-null.
1334
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files} returns this
1335
+ */
1336
+ proto.scanoss.api.dependencies.v2.DependencyResponse.Files.prototype.clearDependenciesList = function () {
1337
+ return this.setDependenciesList([]);
1338
+ };
1339
+ /**
1340
+ * repeated Files files = 1;
1341
+ * @return {!Array<!proto.scanoss.api.dependencies.v2.DependencyResponse.Files>}
1342
+ */
1343
+ proto.scanoss.api.dependencies.v2.DependencyResponse.prototype.getFilesList = function () {
1344
+ return /** @type{!Array<!proto.scanoss.api.dependencies.v2.DependencyResponse.Files>} */ (jspb.Message.getRepeatedWrapperField(this, proto.scanoss.api.dependencies.v2.DependencyResponse.Files, 1));
1345
+ };
1346
+ /**
1347
+ * @param {!Array<!proto.scanoss.api.dependencies.v2.DependencyResponse.Files>} value
1348
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse} returns this
1349
+ */
1350
+ proto.scanoss.api.dependencies.v2.DependencyResponse.prototype.setFilesList = function (value) {
1351
+ return jspb.Message.setRepeatedWrapperField(this, 1, value);
1352
+ };
1353
+ /**
1354
+ * @param {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files=} opt_value
1355
+ * @param {number=} opt_index
1356
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse.Files}
1357
+ */
1358
+ proto.scanoss.api.dependencies.v2.DependencyResponse.prototype.addFiles = function (opt_value, opt_index) {
1359
+ return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.scanoss.api.dependencies.v2.DependencyResponse.Files, opt_index);
1360
+ };
1361
+ /**
1362
+ * Clears the list making it empty but non-null.
1363
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse} returns this
1364
+ */
1365
+ proto.scanoss.api.dependencies.v2.DependencyResponse.prototype.clearFilesList = function () {
1366
+ return this.setFilesList([]);
1367
+ };
1368
+ /**
1369
+ * optional scanoss.api.common.v2.StatusResponse status = 2;
1370
+ * @return {?proto.scanoss.api.common.v2.StatusResponse}
1371
+ */
1372
+ proto.scanoss.api.dependencies.v2.DependencyResponse.prototype.getStatus = function () {
1373
+ return /** @type{?proto.scanoss.api.common.v2.StatusResponse} */ (jspb.Message.getWrapperField(this, scanoss_api_common_v2_scanoss$common_pb.StatusResponse, 2));
1374
+ };
1375
+ /**
1376
+ * @param {?proto.scanoss.api.common.v2.StatusResponse|undefined} value
1377
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse} returns this
1378
+ */
1379
+ proto.scanoss.api.dependencies.v2.DependencyResponse.prototype.setStatus = function (value) {
1380
+ return jspb.Message.setWrapperField(this, 2, value);
1381
+ };
1382
+ /**
1383
+ * Clears the message field making it undefined.
1384
+ * @return {!proto.scanoss.api.dependencies.v2.DependencyResponse} returns this
1385
+ */
1386
+ proto.scanoss.api.dependencies.v2.DependencyResponse.prototype.clearStatus = function () {
1387
+ return this.setStatus(undefined);
1388
+ };
1389
+ /**
1390
+ * Returns whether this field is set.
1391
+ * @return {boolean}
1392
+ */
1393
+ proto.scanoss.api.dependencies.v2.DependencyResponse.prototype.hasStatus = function () {
1394
+ return jspb.Message.getField(this, 2) != null;
1395
+ };
1396
+ goog.object.extend(exports, proto.scanoss.api.dependencies.v2);
1397
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1kZXBlbmRlbmNpZXNfcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL1NlcnZpY2VzL0dycGMvc2Nhbm9zcy9hcGkvZGVwZW5kZW5jaWVzL3YyL3NjYW5vc3MtZGVwZW5kZW5jaWVzX3BiLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlFQUFpRTtBQUNqRTs7Ozs7OztHQU9HO0FBQ0gsaUNBQWlDO0FBQ2pDLG9CQUFvQjtBQUNwQixjQUFjO0FBRWQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2hCLElBQUksTUFBTSxHQUNOLENBQUMsT0FBTyxVQUFVLEtBQUssV0FBVyxJQUFJLFVBQVUsQ0FBQztJQUNqRCxDQUFDLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUM7SUFDekMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDO0lBQ3pDLENBQUMsT0FBTyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQztJQUNyQyxDQUFDLGNBQWMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3pDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0FBRTlCLElBQUksdUNBQXVDLEdBQUcsT0FBTyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7QUFDaEgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLHVDQUF1QyxDQUFDLENBQUM7QUFDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxxREFBcUQsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkYsSUFBSSxDQUFDLFlBQVksQ0FBQywyREFBMkQsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDN0Ys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