qairt-visualizer 0.5.1__py3-none-win_amd64.whl → 0.7.0__py3-none-win_amd64.whl

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 (311) hide show
  1. qairt_visualizer/core/helpers/version.py +23 -0
  2. qairt_visualizer/core/launchers/base_ui_launcher_context.py +28 -7
  3. qairt_visualizer/core/launchers/electron_launcher_context.py +72 -3
  4. qairt_visualizer/core/parsers/dlc_parser/dlc_parser.py +105 -33
  5. qairt_visualizer/core/parsers/dlc_parser/get_source_topology.py +47 -0
  6. qairt_visualizer/core/parsers/dlc_parser/libDlModelToolsPy.pyd +0 -0
  7. qairt_visualizer/core/parsers/dlc_parser/libDlModelToolsPy.so +0 -0
  8. qairt_visualizer/core/parsers/dlc_parser/libPyIrGraph.pyd +0 -0
  9. qairt_visualizer/core/parsers/dlc_parser/libPyIrGraph.so +0 -0
  10. qairt_visualizer/core/parsers/dlc_parser/models/op_tensor_mappings.py +8 -4
  11. qairt_visualizer/core/ui/dist/browser/__init__.py +47 -0
  12. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/acuity.js → acuity.js} +3 -3
  13. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/app.js → app.js} +63 -57
  14. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/armnn-schema.js → armnn-schema.js} +590 -5
  15. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/armnn.js → armnn.js} +3 -5
  16. qairt_visualizer/core/ui/dist/browser/assets/i18n/common/en.json +8 -2
  17. qairt_visualizer/core/ui/dist/browser/assets/i18n/graph/en.json +44 -36
  18. qairt_visualizer/core/ui/dist/browser/assets/i18n/panels/en.json +9 -3
  19. qairt_visualizer/core/ui/dist/browser/assets/i18n/panels/model-diff/en.json +6 -0
  20. qairt_visualizer/core/ui/dist/browser/assets/i18n/workspaces/en.json +3 -0
  21. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/barracuda.js → barracuda.js} +3 -3
  22. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/base.js → base.js} +20 -16
  23. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/bigdl.js → bigdl.js} +2 -2
  24. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/browser.js → browser.js} +59 -49
  25. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe.js → caffe.js} +3 -3
  26. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe2-proto.js → caffe2-proto.js} +26 -26
  27. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe2.js → caffe2.js} +113 -114
  28. qairt_visualizer/core/ui/dist/browser/chunk-3SMGFPTN.js +11 -0
  29. qairt_visualizer/core/ui/dist/browser/chunk-43LQFSHA.js +1 -0
  30. qairt_visualizer/core/ui/dist/browser/chunk-447NKSFT.js +1 -0
  31. qairt_visualizer/core/ui/dist/browser/chunk-5MAR72QP.js +1 -0
  32. qairt_visualizer/core/ui/dist/browser/chunk-7PTY53DS.js +5 -0
  33. qairt_visualizer/core/ui/dist/browser/chunk-GAUD627J.js +1 -0
  34. qairt_visualizer/core/ui/dist/browser/chunk-H7TLLCSI.js +1 -0
  35. qairt_visualizer/core/ui/dist/browser/chunk-HISUA6LZ.js +4 -0
  36. qairt_visualizer/core/ui/dist/browser/chunk-HXB7IAZI.js +1 -0
  37. qairt_visualizer/core/ui/dist/browser/chunk-JPD5T7FP.js +120 -0
  38. qairt_visualizer/core/ui/dist/browser/chunk-L3QJ7DR2.js +1 -0
  39. qairt_visualizer/core/ui/dist/browser/{chunk-HBP6TEQ6.js → chunk-MCR4N53U.js} +1 -1
  40. qairt_visualizer/core/ui/dist/browser/chunk-QD7PA2I4.js +19 -0
  41. qairt_visualizer/core/ui/dist/browser/chunk-TKZG6FLW.js +12 -0
  42. qairt_visualizer/core/ui/dist/browser/chunk-WFAVWONI.js +5 -0
  43. qairt_visualizer/core/ui/dist/browser/chunk-WRMDGTCT.js +35 -0
  44. qairt_visualizer/core/ui/dist/browser/chunk-X25J6H7V.js +1 -0
  45. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/circle-schema.js → circle-schema.js} +17 -0
  46. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/circle.js → circle.js} +3 -3
  47. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/cntk.js → cntk.js} +1 -1
  48. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/coreml-proto.js → coreml-proto.js} +1 -0
  49. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/coreml.js → coreml.js} +24 -21
  50. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dagre.js → dagre.js} +5 -5
  51. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/darknet-metadata.json → darknet-metadata.json} +0 -1
  52. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/darknet.js → darknet.js} +3 -3
  53. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/electron.mjs → desktop.mjs} +44 -131
  54. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dl4j.js → dl4j.js} +5 -2
  55. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dlc-schema.js → dlc-schema.js} +8 -8
  56. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dlc.js → dlc.js} +110 -29
  57. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dnn.js → dnn.js} +2 -4
  58. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dot.js → dot.js} +1 -1
  59. qairt_visualizer/core/ui/dist/browser/eaix.js +24 -0
  60. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/espresso.js → espresso.js} +1 -1
  61. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/executorch-schema.js → executorch-schema.js} +363 -42
  62. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/executorch.js → executorch.js} +108 -40
  63. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flatbuffers.js → flatbuffers.js} +1 -1
  64. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flax.js → flax.js} +1 -1
  65. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flux.js → flux.js} +2 -2
  66. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/gguf.js → gguf.js} +44 -24
  67. qairt_visualizer/core/ui/dist/browser/grapher.css +145 -0
  68. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/grapher.js → grapher.js} +24 -48
  69. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hailo.js → hailo.js} +1 -1
  70. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hickle.js → hickle.js} +1 -1
  71. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/imgdnn.js → imgdnn.js} +1 -1
  72. qairt_visualizer/core/ui/dist/browser/index.html +15 -16
  73. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/index.js → index.js} +2 -24
  74. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/json.js → json.js} +28 -3
  75. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kann.js → kann.js} +1 -1
  76. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/keras-metadata.json → keras-metadata.json} +15 -7
  77. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/keras.js → keras.js} +13 -7
  78. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kmodel.js → kmodel.js} +3 -3
  79. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/lasagne.js → lasagne.js} +2 -2
  80. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/lightgbm.js → lightgbm.js} +1 -1
  81. qairt_visualizer/core/ui/dist/browser/main-EVI665MB.js +1 -0
  82. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mediapipe.js → mediapipe.js} +1 -1
  83. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/megengine.js → megengine.js} +1 -1
  84. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/message.js → message.js} +3 -2
  85. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mlir.js → mlir.js} +53 -17
  86. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mlnet.js → mlnet.js} +2 -3
  87. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mnn-schema.js → mnn-schema.js} +9 -6
  88. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mnn.js → mnn.js} +2 -2
  89. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mslite.js → mslite.js} +3 -3
  90. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mxnet.js → mxnet.js} +2 -2
  91. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/ncnn.js → ncnn.js} +3 -2
  92. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnabla.js → nnabla.js} +4 -4
  93. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnef.js → nnef.js} +1 -1
  94. qairt_visualizer/core/ui/dist/browser/node.js +102 -0
  95. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/numpy.js → numpy.js} +9 -9
  96. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/om.js → om.js} +2 -2
  97. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onednn.js → onednn.js} +1 -1
  98. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx-metadata.json → onnx-metadata.json} +3500 -233
  99. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx-proto.js → onnx-proto.js} +436 -4
  100. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx.js → onnx.js} +284 -199
  101. qairt_visualizer/core/ui/dist/browser/onnx.py +231 -0
  102. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/openvino.js → openvino.js} +36 -31
  103. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle-proto.js → paddle-proto.js} +54 -54
  104. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle.js → paddle.js} +22 -3
  105. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pickle.js → pickle.js} +3 -3
  106. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/python.js → python.js} +743 -325
  107. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch-metadata.json → pytorch-metadata.json} +3217 -2934
  108. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch-proto.js → pytorch-proto.js} +4 -4
  109. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch.js → pytorch.js} +172 -86
  110. qairt_visualizer/core/ui/dist/browser/pytorch.py +304 -0
  111. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/qnn.js → qnn.js} +6 -2
  112. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/rknn.js → rknn.js} +3 -3
  113. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/safetensors.js → safetensors.js} +2 -2
  114. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sentencepiece.js → sentencepiece.js} +1 -1
  115. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/server.py → server.py} +95 -103
  116. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sklearn-metadata.json → sklearn-metadata.json} +15 -10
  117. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sklearn.js → sklearn.js} +5 -5
  118. qairt_visualizer/core/ui/dist/browser/{styles-MRR6DOT2.css → styles-2Z5PB4WZ.css} +1 -1
  119. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tar.js → tar.js} +18 -1
  120. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tengine.js → tengine.js} +1 -1
  121. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tensorrt.js → tensorrt.js} +1 -1
  122. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tf-metadata.json → tf-metadata.json} +1255 -163
  123. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tf-proto.js → tf-proto.js} +46 -12
  124. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tf.js → tf.js} +36 -13
  125. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tflite.js → tflite.js} +18 -21
  126. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tnn.js → tnn.js} +1 -3
  127. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/torch.js → torch.js} +1 -1
  128. qairt_visualizer/core/ui/dist/browser/transformers.js +171 -0
  129. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tvm.js → tvm.js} +2 -2
  130. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/uff.js → uff.js} +2 -2
  131. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/view.js → view.js} +1406 -1115
  132. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/weka.js → weka.js} +3 -4
  133. qairt_visualizer/core/ui/dist/browser/worker-EHYFMTM7.js +1 -0
  134. qairt_visualizer/core/ui/dist/browser/worker-KX5DA6GL.js +4 -0
  135. qairt_visualizer/core/ui/dist/browser/xgboost.js +59 -0
  136. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/xml.js → xml.js} +2 -2
  137. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/xmodel.js → xmodel.js} +1 -1
  138. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/zip.js → zip.js} +38 -41
  139. qairt_visualizer/core/ui/dist/qairt_visualizer.exe +0 -0
  140. qairt_visualizer/core/ui/dist/resources/app.asar +0 -0
  141. {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.7.0.dist-info}/METADATA +1 -1
  142. qairt_visualizer-0.7.0.dist-info/RECORD +265 -0
  143. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/CITATION.cff +0 -10
  144. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/CONTRIBUTING.md +0 -29
  145. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/LICENSE +0 -21
  146. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/README.md +0 -36
  147. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/jenkins/Jenkinsfile +0 -69
  148. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package-lock.json +0 -5743
  149. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package.js +0 -689
  150. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package.json +0 -53
  151. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package.py +0 -87
  152. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/background.png +0 -0
  153. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/background.svg +0 -5
  154. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/background@2x.png +0 -0
  155. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/electron-builder.json +0 -109
  156. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/eslint.config.js +0 -231
  157. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/forge.config.js +0 -87
  158. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.html +0 -27
  159. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.icns +0 -0
  160. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.icns.svg +0 -175
  161. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.ico +0 -0
  162. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.png +0 -0
  163. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.svg +0 -179
  164. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/notarize.cjs +0 -24
  165. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/pyproject.toml +0 -63
  166. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/setup.py +0 -43
  167. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/resolve_upgrade_merge.sh +0 -10
  168. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/__init__.py +0 -41
  169. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/cambricon.js +0 -32
  170. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/favicon.ico +0 -0
  171. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/grapher.css +0 -602
  172. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/index.html +0 -2222
  173. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/modular.js +0 -81
  174. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/onnx.py +0 -227
  175. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/pytorch.py +0 -298
  176. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qcontrol.js +0 -207
  177. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qgraph-toolkit.js +0 -123
  178. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qsubgraph.js +0 -226
  179. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qsummary-panel.js +0 -89
  180. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/server.js +0 -250
  181. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/backend.py +0 -80
  182. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/measures.py +0 -27
  183. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/models.js +0 -359
  184. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/models.json +0 -8523
  185. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/worker.js +0 -859
  186. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/armnn +0 -33
  187. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/bigdl +0 -33
  188. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/caffe +0 -37
  189. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/caffe-script.js +0 -12
  190. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/circle +0 -43
  191. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/circle-script.js +0 -87
  192. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/circle_script.js +0 -73
  193. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/cntk +0 -33
  194. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/coreml +0 -49
  195. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dlc +0 -20
  196. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dlc.fbs +0 -165
  197. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dnn +0 -20
  198. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dnn.proto +0 -79
  199. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/executorch +0 -41
  200. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/flatc.js +0 -1315
  201. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/gguf +0 -22
  202. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/kann +0 -33
  203. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/keras +0 -62
  204. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/keras_metadata.py +0 -205
  205. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/keras_script.py +0 -204
  206. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mediapipe +0 -72
  207. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/megengine +0 -47
  208. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/megengine-script.js +0 -113
  209. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/megengine_script.js +0 -112
  210. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mnn +0 -40
  211. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mslite +0 -45
  212. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mslite-script.js +0 -83
  213. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mslite_metadata.js +0 -82
  214. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/nnabla +0 -79
  215. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/nnabla_script.py +0 -145
  216. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/om +0 -26
  217. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/om.proto +0 -204
  218. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/onnx +0 -135
  219. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/onnx_metadata.py +0 -233
  220. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/onnx_script.py +0 -332
  221. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/paddle +0 -38
  222. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/protoc.js +0 -1609
  223. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/pytorch +0 -85
  224. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/pytorch_metadata.py +0 -166
  225. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/pytorch_script.py +0 -404
  226. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/rknn +0 -20
  227. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/rknn.fbs +0 -78
  228. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sentencepiece +0 -39
  229. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sklearn +0 -65
  230. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sklearn_metadata.py +0 -126
  231. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sklearn_script.py +0 -129
  232. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tf +0 -97
  233. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tf_metadata.py +0 -403
  234. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tf_script.py +0 -422
  235. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tflite-script.js +0 -87
  236. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tflite_metadata.js +0 -73
  237. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/uff +0 -20
  238. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/uff.proto +0 -127
  239. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/xmodel +0 -36
  240. qairt_visualizer/core/ui/dist/browser/chunk-3NAQCYEU.js +0 -1
  241. qairt_visualizer/core/ui/dist/browser/chunk-NFKTPX3Z.js +0 -11
  242. qairt_visualizer/core/ui/dist/browser/chunk-OMI6HJ5Y.js +0 -19
  243. qairt_visualizer/core/ui/dist/browser/chunk-TTZXMRJ5.js +0 -34
  244. qairt_visualizer/core/ui/dist/browser/main-NXPVOKMG.js +0 -1
  245. qairt_visualizer/core/ui/dist/browser/worker-5VPKG2GV.js +0 -4
  246. qairt_visualizer/core/ui/dist/browser/worker-UVGWDZ5K.js +0 -1
  247. qairt_visualizer-0.5.1.dist-info/RECORD +0 -337
  248. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/acuity-metadata.json → acuity-metadata.json} +0 -0
  249. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/armnn-metadata.json → armnn-metadata.json} +0 -0
  250. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/bigdl-metadata.json → bigdl-metadata.json} +0 -0
  251. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/bigdl-proto.js → bigdl-proto.js} +0 -0
  252. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe-metadata.json → caffe-metadata.json} +0 -0
  253. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe-proto.js → caffe-proto.js} +0 -0
  254. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe2-metadata.json → caffe2-metadata.json} +0 -0
  255. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/catboost.js → catboost.js} +0 -0
  256. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/circle-metadata.json → circle-metadata.json} +0 -0
  257. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/cntk-metadata.json → cntk-metadata.json} +0 -0
  258. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/cntk-proto.js → cntk-proto.js} +0 -0
  259. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/coreml-metadata.json → coreml-metadata.json} +0 -0
  260. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dl4j-metadata.json → dl4j-metadata.json} +0 -0
  261. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dlc-metadata.json → dlc-metadata.json} +0 -0
  262. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dnn-metadata.json → dnn-metadata.json} +0 -0
  263. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dnn-proto.js → dnn-proto.js} +0 -0
  264. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/espresso-metadata.json → espresso-metadata.json} +0 -0
  265. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flexbuffers.js → flexbuffers.js} +0 -0
  266. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flux-metadata.json → flux-metadata.json} +0 -0
  267. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hailo-metadata.json → hailo-metadata.json} +0 -0
  268. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hdf5.js → hdf5.js} +0 -0
  269. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/icon.png → icon.png} +0 -0
  270. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kann-metadata.json → kann-metadata.json} +0 -0
  271. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kann-schema.js → kann-schema.js} +0 -0
  272. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/keras-proto.js → keras-proto.js} +0 -0
  273. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/lasagne-metadata.json → lasagne-metadata.json} +0 -0
  274. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/megengine-metadata.json → megengine-metadata.json} +0 -0
  275. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/megengine-schema.js → megengine-schema.js} +0 -0
  276. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mlnet-metadata.json → mlnet-metadata.json} +0 -0
  277. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mnn-metadata.json → mnn-metadata.json} +0 -0
  278. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mslite-metadata.json → mslite-metadata.json} +0 -0
  279. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mslite-schema.js → mslite-schema.js} +0 -0
  280. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mxnet-metadata.json → mxnet-metadata.json} +0 -0
  281. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/ncnn-metadata.json → ncnn-metadata.json} +0 -0
  282. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnabla-metadata.json → nnabla-metadata.json} +0 -0
  283. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnabla-proto.js → nnabla-proto.js} +0 -0
  284. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnc.js → nnc.js} +0 -0
  285. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/om-metadata.json → om-metadata.json} +0 -0
  286. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/om-proto.js → om-proto.js} +0 -0
  287. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onednn-metadata.json → onednn-metadata.json} +0 -0
  288. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx-schema.js → onnx-schema.js} +0 -0
  289. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/openvino-metadata.json → openvino-metadata.json} +0 -0
  290. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle-metadata.json → paddle-metadata.json} +0 -0
  291. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle-schema.js → paddle-schema.js} +0 -0
  292. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/protobuf.js → protobuf.js} +0 -0
  293. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch-schema.js → pytorch-schema.js} +0 -0
  294. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/qnn-metadata.json → qnn-metadata.json} +0 -0
  295. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/rknn-metadata.json → rknn-metadata.json} +0 -0
  296. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/rknn-schema.js → rknn-schema.js} +0 -0
  297. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sentencepiece-proto.js → sentencepiece-proto.js} +0 -0
  298. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tengine-metadata.json → tengine-metadata.json} +0 -0
  299. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/text.js → text.js} +0 -0
  300. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tflite-metadata.json → tflite-metadata.json} +0 -0
  301. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tflite-schema.js → tflite-schema.js} +0 -0
  302. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tnn-metadata.json → tnn-metadata.json} +0 -0
  303. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/torch-metadata.json → torch-metadata.json} +0 -0
  304. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/uff-metadata.json → uff-metadata.json} +0 -0
  305. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/uff-proto.js → uff-proto.js} +0 -0
  306. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/worker.js → worker.js} +0 -0
  307. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/xmodel-proto.js → xmodel-proto.js} +0 -0
  308. {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.7.0.dist-info}/LICENSE.pdf +0 -0
  309. {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.7.0.dist-info}/WHEEL +0 -0
  310. {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.7.0.dist-info}/entry_points.txt +0 -0
  311. {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.7.0.dist-info}/top_level.txt +0 -0
@@ -1,1609 +0,0 @@
1
-
2
- import * as fs from 'fs/promises';
3
- import * as path from 'path';
4
-
5
- const protoc = {};
6
-
7
- protoc.Object = class {
8
-
9
- constructor(parent, name) {
10
- this.parent = parent;
11
- this.name = name;
12
- this.options = new Map();
13
- }
14
-
15
- get fullName() {
16
- const path = [this.name];
17
- let context = this.parent;
18
- while (context) {
19
- if (context.name) {
20
- path.unshift(context.name);
21
- }
22
- context = context.parent;
23
- }
24
- return path.join('.');
25
- }
26
- };
27
-
28
- protoc.Namespace = class extends protoc.Object {
29
-
30
- constructor(parent, name) {
31
- super(parent, name);
32
- this.children = new Map();
33
- if (!(this instanceof protoc.Root || this instanceof protoc.PrimitiveType)) {
34
- if (parent.get(this.name)) {
35
- throw new protoc.Error(`Duplicate name '${this.name}' in '${parent.name}'.`);
36
- }
37
- parent.children.set(this.name, this);
38
- }
39
- }
40
-
41
- defineNamespace(path) {
42
- path = path.split('.');
43
- if (path && path.length > 0 && path[0] === '') {
44
- throw new protoc.Error('Invalid path.');
45
- }
46
- let parent = this;
47
- while (path.length > 0) {
48
- const part = path.shift();
49
- if (parent.children && parent.children.get(part)) {
50
- parent = parent.children.get(part);
51
- if (!(parent instanceof protoc.Namespace)) {
52
- throw new protoc.Error('Invalid path.');
53
- }
54
- } else {
55
- parent = new protoc.Namespace(parent, part);
56
- }
57
- }
58
- return parent;
59
- }
60
-
61
- defineType(name) {
62
- const parts = name.split('.');
63
- const typeName = parts.pop();
64
- const parent = this.defineNamespace(parts.join('.'));
65
- const type = parent.get(name);
66
- if (type) {
67
- if (type instanceof protoc.Type) {
68
- return type;
69
- }
70
- throw new protoc.Error('Invalid type');
71
- }
72
- return new protoc.Type(parent, typeName);
73
- }
74
-
75
- get(name) {
76
- return this.children.get(name) || null;
77
- }
78
-
79
- find(path, filterType, parentAlreadyChecked) {
80
- if (path.length === 0) {
81
- return this;
82
- }
83
- if (path[0] === '') {
84
- return this.root.find(path.slice(1), filterType);
85
- }
86
- let found = this.get(path[0]);
87
- if (found) {
88
- if (path.length === 1) {
89
- if (found instanceof filterType) {
90
- return found;
91
- }
92
- } else if (found instanceof protoc.Namespace && (found = found.find(path.slice(1), filterType, true))) {
93
- return found;
94
- }
95
- } else {
96
- for (const child of this.children.values()) {
97
- if (child instanceof protoc.Namespace && (found = child.find(path, filterType, true))) {
98
- return found;
99
- }
100
- }
101
- }
102
-
103
- if (!this.parent || parentAlreadyChecked) {
104
- return null;
105
- }
106
- return this.parent.find(path, filterType);
107
- }
108
-
109
- findType(path) {
110
- const type = this.find(path.split('.'), protoc.Type);
111
- if (!type) {
112
- throw new protoc.Error(`Type or enum '${path}' not found in '${this.name}'.`);
113
- }
114
- return type;
115
- }
116
-
117
- static isReservedId(reserved, id) {
118
- if (reserved) {
119
- for (let i = 0; i < reserved.length; ++i) {
120
- if (typeof reserved[i] !== 'string' && reserved[i][0] <= id && reserved[i][1] > id) {
121
- return true;
122
- }
123
- }
124
- }
125
- return false;
126
- }
127
-
128
- static isReservedName(reserved, name) {
129
- if (reserved) {
130
- for (let i = 0; i < reserved.length; ++i) {
131
- if (reserved[i] === name) {
132
- return true;
133
- }
134
- }
135
- }
136
- return false;
137
- }
138
- };
139
-
140
- protoc.Root = class extends protoc.Namespace {
141
-
142
- constructor(alias) {
143
- super(null, '');
144
- this.alias = alias;
145
- this._files = new Set();
146
- this._library = new Map();
147
- this._library.set('google/protobuf/any.proto', () => {
148
- const type = this.defineType('google.protobuf.Any');
149
- type.defineField('type_url', 1, 'string');
150
- type.defineField('value', 2, 'bytes');
151
- });
152
- this._library.set('google/protobuf/wrappers.proto', () => {
153
- const type = this.defineType('google.protobuf.BoolValue');
154
- type.defineField('value', 1, 'bool');
155
- });
156
- }
157
-
158
- async load(paths, files) {
159
- for (const file of files) {
160
- /* eslint-disable no-await-in-loop */
161
- const resolved = await this._resolve(file, '', paths);
162
- /* eslint-enable no-await-in-loop */
163
- if (resolved) {
164
- /* eslint-disable no-await-in-loop */
165
- await this._loadFile(paths, resolved);
166
- /* eslint-enable no-await-in-loop */
167
- } else {
168
- throw new protoc.Error(`File '${file}' not found.`);
169
- }
170
- }
171
- return this;
172
- }
173
-
174
- async _loadFile(paths, file, weak) {
175
- if (!this._files.has(file)) {
176
- this._files.add(file);
177
- if (this._library.has(file)) {
178
- const callback = this._library.get(file);
179
- callback();
180
- } else {
181
- try {
182
- await this._parseFile(paths, file);
183
- } catch (error) {
184
- if (!weak) {
185
- throw error;
186
- }
187
- }
188
- }
189
- }
190
- }
191
-
192
- async _parseFile(paths, file) {
193
- const source = await fs.readFile(file, 'utf-8');
194
- const parser = new protoc.Parser(source, file, this);
195
- const parsed = parser.parse();
196
- for (const item of parsed.imports) {
197
- /* eslint-disable no-await-in-loop */
198
- const resolved = await this._resolve(item, file, paths);
199
- /* eslint-enable no-await-in-loop */
200
- if (!resolved) {
201
- throw new protoc.Error(`File '${item}' not found.`);
202
- }
203
- /* eslint-disable no-await-in-loop */
204
- await this._loadFile(paths, resolved);
205
- /* eslint-enable no-await-in-loop */
206
- }
207
- for (const item of parsed.weakImports) {
208
- /* eslint-disable no-await-in-loop */
209
- const resolved = await this._resolve(item, file, paths);
210
- /* eslint-enable no-await-in-loop */
211
- if (resolved) {
212
- /* eslint-disable no-await-in-loop */
213
- await this._loadFile(paths, resolved);
214
- /* eslint-enable no-await-in-loop */
215
- }
216
- }
217
- }
218
-
219
- async _resolve(target, source, paths) {
220
- const file = path.resolve(source, target);
221
- const posix = file.split(path.sep).join(path.posix.sep);
222
- const index = posix.lastIndexOf('google/protobuf/');
223
- if (index > -1) {
224
- const name = posix.substring(index);
225
- if (this._library.has(name)) {
226
- return name;
227
- }
228
- }
229
- const access = async (path) => {
230
- try {
231
- await fs.access(path);
232
- return true;
233
- } catch {
234
- return false;
235
- }
236
- };
237
- const exists = await access(file);
238
- if (exists) {
239
- return file;
240
- }
241
- for (const dir of paths) {
242
- const file = path.resolve(dir, target);
243
- /* eslint-disable no-await-in-loop */
244
- const exists = await access(file);
245
- if (exists) {
246
- return file;
247
- }
248
- /* eslint-enable no-await-in-loop */
249
- }
250
- return null;
251
- }
252
- };
253
-
254
- protoc.Type = class extends protoc.Namespace {
255
-
256
- constructor(parent, name) {
257
- super(parent, name);
258
- this.fields = new Map();
259
- this.oneofs = new Map();
260
- this.extensions = [];
261
- this.reserved = [];
262
- }
263
-
264
- get(name) {
265
- return this.fields.get(name) || this.oneofs.get(name) || this.children.get(name) || null;
266
- }
267
-
268
- defineField(name, id, type, rule, extend) {
269
- return new protoc.Field(this, name, id, type, rule, extend);
270
- }
271
- };
272
-
273
- protoc.Enum = class extends protoc.Type {
274
-
275
- constructor(parent, name) {
276
- super(parent, name);
277
- this.valuesById = new Map();
278
- this.values = {};
279
- this.reserved = [];
280
- }
281
-
282
- add(name, id) {
283
- if (!Number.isInteger(id)) {
284
- throw new protoc.Error('Identifier must be an integer.');
285
- }
286
- if (this.values[name] !== undefined) {
287
- throw new protoc.Error(`Duplicate name '${name}' in '${this.name}'.`);
288
- }
289
- if (protoc.Namespace.isReservedId(this.reserved, id)) {
290
- throw new protoc.Error(`Identifier '${id}' is reserved in '${this.name}'.`);
291
- }
292
- if (protoc.Namespace.isReservedName(this.reserved, name)) {
293
- throw new protoc.Error(`Name '${name}' is reserved in '${this.name}'.`);
294
- }
295
- if (this.valuesById.has(id)) {
296
- if (!this.options.has('allow_alias')) {
297
- throw new protoc.Error(`Duplicate identifier '${id}' in '${this.name}'.`);
298
- }
299
- } else {
300
- this.valuesById.set(id, name);
301
- }
302
- this.values[name] = id;
303
- }
304
- };
305
-
306
- protoc.PrimitiveType = class extends protoc.Type {
307
-
308
- constructor(name, long, mapKey, packed, defaultValue) {
309
- super(null, name);
310
- this.long = long;
311
- this.mapKey = mapKey;
312
- this.packed = packed;
313
- this.defaultValue = defaultValue;
314
- }
315
-
316
- static get(name) {
317
- if (!this._map) {
318
- this._map = new Map();
319
- const register = (type) => this._map.set(type.name, type);
320
- register(new protoc.PrimitiveType('double', false, false, true, 0));
321
- register(new protoc.PrimitiveType('float', false, false, true, 0));
322
- register(new protoc.PrimitiveType('int32', false, true, true, 0));
323
- register(new protoc.PrimitiveType('uint32', false, true, true, 0));
324
- register(new protoc.PrimitiveType('sint32', false, true, true, 0));
325
- register(new protoc.PrimitiveType('fixed32', false, true, true, 0));
326
- register(new protoc.PrimitiveType('sfixed32', false, true, true, 0));
327
- register(new protoc.PrimitiveType('int64', true, true, true, 0));
328
- register(new protoc.PrimitiveType('uint64', true, true, true, 0));
329
- register(new protoc.PrimitiveType('sint64', true, true, true, 0));
330
- register(new protoc.PrimitiveType('fixed64', true, true, true, 0));
331
- register(new protoc.PrimitiveType('sfixed64', true, true, true, 0));
332
- register(new protoc.PrimitiveType('bool', false, true, true, false));
333
- register(new protoc.PrimitiveType('string', false, true, false, ''));
334
- register(new protoc.PrimitiveType('bytes', false, true, false, []));
335
- }
336
- return this._map.get(name);
337
- }
338
- };
339
-
340
- protoc.Field = class extends protoc.Object {
341
-
342
- constructor(parent, name, id, type, rule, extend) {
343
- super(parent instanceof protoc.OneOf ? parent.parent : parent, name);
344
- if (!Number.isInteger(id) || id < 0) {
345
- throw new protoc.Error('Identifier must be a non-negative integer.');
346
- }
347
- if (rule && rule !== 'required' && rule !== 'optional' && rule !== 'repeated') {
348
- throw new protoc.Error('Rule must be a string.');
349
- }
350
- this.id = id;
351
- this._type = type;
352
- this.rule = rule && rule !== 'optional' ? rule : undefined;
353
- this.extend = extend;
354
- this.required = rule === 'required';
355
- this.repeated = rule === 'repeated';
356
- if (parent instanceof protoc.OneOf) {
357
- this.partOf = parent;
358
- parent.oneof.set(this.name, this);
359
- parent = parent.parent;
360
- }
361
- if (parent.get(this.name)) {
362
- throw new protoc.Error(`Duplicate name '${this.name}' in '${parent.name}'.`);
363
- }
364
- if (protoc.Namespace.isReservedId(parent.reserved, this.id)) {
365
- throw new protoc.Error(`Identifier '${this.id}' is reserved in '${parent.name}'.`);
366
- }
367
- if (protoc.Namespace.isReservedName(parent.reserved, this.name)) {
368
- throw new protoc.Error(`Name '${this.name}' is reserved in '${parent.name}'.`);
369
- }
370
- parent.fields.set(this.name, this);
371
- }
372
-
373
- get type() {
374
- if (typeof this._type === 'string') {
375
- this._type = protoc.PrimitiveType.get(this._type) || this.parent.findType(this._type);
376
- }
377
- return this._type;
378
- }
379
-
380
- get defaultValue() {
381
- const type = this.type;
382
- let value = null;
383
- if (type instanceof protoc.PrimitiveType) {
384
- value = type.defaultValue;
385
- } else if (type instanceof protoc.Enum) {
386
- value = type.values[Object.keys(type.values)[0]];
387
- }
388
- if (this.options.has('default')) {
389
- value = this.options.get('default');
390
- if (type instanceof protoc.Enum && typeof value === 'string') {
391
- value = type.values[value];
392
- }
393
- }
394
- if (type === 'bytes' && typeof value === 'string') {
395
- throw new protoc.Error('Unsupported bytes field.');
396
- }
397
- return value;
398
- }
399
- };
400
-
401
- protoc.OneOf = class extends protoc.Object {
402
-
403
- constructor(parent, name) {
404
- super(parent, name);
405
- this.oneof = new Map();
406
- if (parent.get(this.name)) {
407
- throw new protoc.Error(`Duplicate name '${this.name}' in '${parent.name}'.`);
408
- }
409
- parent.oneofs.set(this.name, this);
410
- }
411
- };
412
-
413
- protoc.MapField = class extends protoc.Field {
414
-
415
- constructor(parent, name, id, keyType, type) {
416
- super(parent, name, id, type);
417
- this.keyType = protoc.PrimitiveType.get(keyType);
418
- }
419
- };
420
-
421
- protoc.Parser = class {
422
-
423
- constructor(text, file, root) {
424
- this._context = root;
425
- this._tokenizer = new protoc.Tokenizer(text, file);
426
- this._head = true;
427
- this._imports = [];
428
- this._weakImports = [];
429
- }
430
-
431
- parse() {
432
- let token = '';
433
- while ((token = this._tokenizer.next()) !== null) {
434
- switch (token) {
435
- case 'package':
436
- if (!this._head) {
437
- throw this._parseError(token);
438
- }
439
- this._parsePackage();
440
- break;
441
- case 'import':
442
- if (!this._head) {
443
- throw this._parseError(token);
444
- }
445
- this._parseImport();
446
- break;
447
- case 'syntax':
448
- if (!this._head) {
449
- throw this._parseError(token);
450
- }
451
- this._parseSyntax();
452
- break;
453
- case 'option':
454
- this._parseOption(this._context, token);
455
- this._tokenizer.expect(';');
456
- break;
457
- default:
458
- if (this._parseCommon(this._context, token)) {
459
- this._head = false;
460
- continue;
461
- }
462
- throw this._parseError(token);
463
- }
464
- }
465
-
466
- return { package: this._package, imports: this._imports, weakImports: this._weakImports };
467
- }
468
-
469
- _parseId(token, acceptNegative) {
470
- switch (token) {
471
- case 'max':
472
- case 'Max':
473
- case 'MAX':
474
- return 0x1fffffff;
475
- case '0':
476
- return 0;
477
- default: {
478
- if (!acceptNegative && token.charAt(0) === "-") {
479
- throw this._parseError(token, 'id');
480
- }
481
- if (/^-?[1-9][0-9]*$/.test(token)) {
482
- return parseInt(token, 10);
483
- }
484
- if (/^-?0[x][0-9a-fA-F]+$/.test(token)) {
485
- return parseInt(token, 16);
486
- }
487
- if (/^-?0[0-7]+$/.test(token)) {
488
- return parseInt(token, 8);
489
- }
490
- throw this._parseError(token, 'id');
491
- }
492
- }
493
- }
494
-
495
- _parsePackage() {
496
- if (this._package) {
497
- throw this._parseError("package");
498
- }
499
- this._package = this._tokenizer.next();
500
- if (!protoc.Parser._isTypeReference(this._package)) {
501
- throw this._parseError(this._package, 'name');
502
- }
503
- this._context = this._context.defineNamespace(this._package);
504
- this._tokenizer.expect(";");
505
- }
506
-
507
- _parseImport() {
508
- let token = this._tokenizer.peek();
509
- if (token === 'weak') {
510
- this._tokenizer.next();
511
- token = this._readString();
512
- this._tokenizer.expect(";");
513
- this._weakImports.push(token);
514
- } else {
515
- if (token === 'public') {
516
- this._tokenizer.next();
517
- }
518
- token = this._readString();
519
- this._tokenizer.expect(";");
520
- this._imports.push(token);
521
- }
522
- }
523
-
524
- _parseSyntax() {
525
- this._tokenizer.expect("=");
526
- this._syntax = this._readString();
527
- if (this._syntax !== 'proto2' && this._syntax !== 'proto3') {
528
- throw this._parseError(this._syntax, 'syntax');
529
- }
530
- this._tokenizer.expect(";");
531
- }
532
-
533
- _parseCommon(parent, token) {
534
- switch (token) {
535
- case 'option':
536
- this._parseOption(parent, token);
537
- this._tokenizer.expect(";");
538
- return true;
539
- case 'message':
540
- this._parseType(parent, token);
541
- return true;
542
- case 'enum':
543
- this._parseEnum(parent, token);
544
- return true;
545
- case 'extend':
546
- this._parseExtend(parent, token);
547
- return true;
548
- case 'service':
549
- throw new protoc.Error(`Keyword '${token}' is not supported ${this._tokenizer.location()}`);
550
- default:
551
- return false;
552
- }
553
- }
554
-
555
- _ifBlock(obj, ifCallback, elseCallback) {
556
- if (obj) {
557
- obj.file = this._file;
558
- }
559
- if (this._tokenizer.eat("{")) {
560
- let token = '';
561
- while ((token = this._tokenizer.next()) !== "}") {
562
- ifCallback(token);
563
- }
564
- this._tokenizer.eat(";");
565
- } else {
566
- if (elseCallback) {
567
- elseCallback();
568
- }
569
- this._tokenizer.expect(";");
570
- }
571
- }
572
-
573
- _parseType(parent, token) {
574
- token = this._tokenizer.next();
575
- if (!protoc.Parser._isName(token)) {
576
- throw this._parseError(token, 'type');
577
- }
578
- const type = new protoc.Type(parent, token);
579
- this._ifBlock(type, (token) => {
580
- if (this._parseCommon(type, token)) {
581
- return;
582
- }
583
- switch (token) {
584
- case 'map':
585
- this._parseMapField(type, token);
586
- break;
587
- case 'required':
588
- case 'optional':
589
- case 'repeated':
590
- this._parseField(type, token);
591
- break;
592
- case 'oneof':
593
- this._parseOneOf(type, token);
594
- break;
595
- case 'reserved':
596
- this._readRanges(type.reserved, true);
597
- break;
598
- case 'extensions':
599
- this._readRanges(type.extensions);
600
- break;
601
- default:
602
- if (this._syntax !== 'proto3' || !protoc.Parser._isTypeReference(token)) {
603
- throw this._parseError(token);
604
- }
605
- this._tokenizer.push(token);
606
- this._parseField(type, 'optional');
607
- break;
608
- }
609
- });
610
- }
611
-
612
- _parseField(parent, rule, extend) {
613
- const type = this._tokenizer.next();
614
- if (type === "group") {
615
- this._parseGroup(parent, rule);
616
- return;
617
- }
618
- if (!protoc.Parser._isTypeReference(type)) {
619
- throw this._parseError(type, 'type');
620
- }
621
- const name = this._tokenizer.next();
622
- if (!protoc.Parser._isName(name)) {
623
- throw this._parseError(name, 'name');
624
- }
625
- this._tokenizer.expect("=");
626
- const id = this._parseId(this._tokenizer.next());
627
- const field = new protoc.Field(parent, name, id, type, rule, extend);
628
- this._ifBlock(field, (token) => {
629
- if (token === "option") {
630
- this._parseOption(field, token);
631
- this._tokenizer.expect(";");
632
- } else {
633
- throw this._parseError(token);
634
- }
635
- }, () => {
636
- this._parseInlineOptions(field);
637
- });
638
- }
639
-
640
- _parseGroup(parent, rule) {
641
- let name = this._tokenizer.next();
642
- if (!protoc.Parser._isName(name)) {
643
- throw this._parseError(name, 'name');
644
- }
645
- const fieldName = name.charAt(0).toLowerCase() + name.substring(1);
646
- if (name === fieldName) {
647
- name = name.charAt(0).toUpperCase() + name.substring(1);
648
- }
649
- this._tokenizer.expect("=");
650
- const id = this._parseId(this._tokenizer.next());
651
- const type = new protoc.Type(name);
652
- type.group = true;
653
- const field = new protoc.Field(parent, fieldName, id, name, rule);
654
- field.file = this._file;
655
- this._ifBlock(type, (token) => {
656
- switch (token) {
657
- case "option":
658
- this._parseOption(type, token);
659
- this._tokenizer.expect(";");
660
- break;
661
- case "required":
662
- case "optional":
663
- case "repeated":
664
- this._parseField(type, token);
665
- break;
666
- default:
667
- throw this._parseError(token); // there are no groups with proto3 semantics
668
- }
669
- });
670
- parent.add(type).add(field);
671
- }
672
-
673
- _parseMapField(parent) {
674
- this._tokenizer.expect("<");
675
- const keyType = this._tokenizer.next();
676
- const resolvedKeyType = protoc.PrimitiveType.get(keyType);
677
- if (!resolvedKeyType || !resolvedKeyType.mapKey) {
678
- throw this._parseError(keyType, 'type');
679
- }
680
- this._tokenizer.expect(",");
681
- const valueType = this._tokenizer.next();
682
- if (!protoc.Parser._isTypeReference(valueType)) {
683
- throw this._parseError(valueType, 'type');
684
- }
685
- this._tokenizer.expect(">");
686
- const name = this._tokenizer.next();
687
- if (!protoc.Parser._isName(name)) {
688
- throw this._parseError(name, 'name');
689
- }
690
- this._tokenizer.expect("=");
691
- const id = this._parseId(this._tokenizer.next());
692
- const field = new protoc.MapField(parent, name, id, keyType, valueType);
693
- this._ifBlock(field, (token) => {
694
- if (token === "option") {
695
- this._parseOption(field, token);
696
- this._tokenizer.expect(";");
697
- } else {
698
- throw this._parseError(token);
699
- }
700
- }, () => {
701
- this._parseInlineOptions(field);
702
- });
703
- }
704
-
705
- _parseOneOf(parent, token) {
706
-
707
- token = this._tokenizer.next();
708
- if (!protoc.Parser._isName(token)) {
709
- throw this._parseError(token, 'name');
710
- }
711
- const oneof = new protoc.OneOf(parent, token);
712
- this._ifBlock(oneof, (token) => {
713
- if (token === "option") {
714
- this._parseOption(oneof, token);
715
- this._tokenizer.expect(";");
716
- } else {
717
- this._tokenizer.push(token);
718
- this._parseField(oneof, 'optional');
719
- }
720
- });
721
- }
722
-
723
- _parseEnum(parent, token) {
724
- token = this._tokenizer.next();
725
- if (!protoc.Parser._isName(token)) {
726
- throw this._parseError(token, 'name');
727
- }
728
- const obj = new protoc.Enum(parent, token);
729
- this._ifBlock(obj, (token) => {
730
- switch (token) {
731
- case "option":
732
- this._parseOption(obj, token);
733
- this._tokenizer.expect(";");
734
- break;
735
- case "reserved":
736
- this._readRanges(obj.reserved, true);
737
- break;
738
- default:
739
- this._parseEnumValue(obj, token);
740
- break;
741
- }
742
- });
743
- }
744
-
745
- _parseEnumValue(parent, token) {
746
- if (!protoc.Parser._isName(token)) {
747
- throw this._parseError(token, 'name');
748
- }
749
- this._tokenizer.expect("=");
750
- const value = this._parseId(this._tokenizer.next(), true);
751
- const dummy = {};
752
- this._ifBlock(dummy, (token) => {
753
- if (token === "option") {
754
- this._parseOption(dummy, token); // skip
755
- this._tokenizer.expect(";");
756
- } else {
757
- throw this._parseError(token);
758
- }
759
-
760
- }, () => {
761
- this._parseInlineOptions(dummy); // skip
762
- });
763
- parent.add(token, value);
764
- }
765
-
766
- _parseExtend(parent, token) {
767
- token = this._tokenizer.next();
768
- if (!protoc.Parser._isTypeReference(token)) {
769
- throw this._parseError(token, 'reference');
770
- }
771
- const reference = token;
772
- this._ifBlock(null, (token) => {
773
- switch (token) {
774
- case "required":
775
- case "repeated":
776
- case "optional":
777
- this._parseField(parent, token, reference);
778
- break;
779
- default:
780
- if (this._syntax === 'proto3' || !protoc.Parser._isTypeReference(token)) {
781
- throw this._parseError(token);
782
- }
783
- this._tokenizer.push(token);
784
- this._parseField(parent, 'optional', reference);
785
- break;
786
- }
787
- });
788
- }
789
-
790
- _parseOption(parent, token) {
791
- const custom = this._tokenizer.eat("(");
792
- token = this._tokenizer.next();
793
- if (!protoc.Parser._isTypeReference(token)) {
794
- throw this._parseError(token, 'name');
795
- }
796
- let name = token;
797
- if (custom) {
798
- this._tokenizer.expect(")");
799
- name = `(${name})`;
800
- token = this._tokenizer.peek();
801
- if (/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token)) {
802
- name += token;
803
- this._tokenizer.next();
804
- }
805
- }
806
- this._tokenizer.expect("=");
807
- this._parseOptionValue(parent, name);
808
- }
809
-
810
- _parseOptionValue(parent, name) {
811
- if (this._tokenizer.eat('{')) {
812
- while (!this._tokenizer.eat('}')) {
813
- const token = this._tokenizer.next();
814
- if (!protoc.Parser._isName(token)) {
815
- throw this._parseError(token, 'name');
816
- }
817
- if (this._tokenizer.peek() === '{') {
818
- this._parseOptionValue(parent, `${name}.${token}`);
819
- } else {
820
- this._tokenizer.expect(':');
821
- if (this._tokenizer.peek() === '{') {
822
- this._parseOptionValue(parent, `${name}.${token}`);
823
- } else {
824
- parent.options.set(`${name}.${token}`, this._readValue());
825
- }
826
- }
827
- this._tokenizer.eat(',');
828
- }
829
- } else {
830
- parent.options.set(name, this._readValue());
831
- }
832
- }
833
-
834
- _parseInlineOptions(parent) {
835
- if (this._tokenizer.eat('[')) {
836
- do {
837
- this._parseOption(parent, 'option');
838
- }
839
- while (this._tokenizer.eat(','));
840
- this._tokenizer.expect(']');
841
- }
842
- return parent;
843
- }
844
-
845
- _readString() {
846
- const values = [];
847
- let token = '';
848
- do {
849
- if ((token = this._tokenizer.next()) !== '"' && token !== "'") {
850
- throw this._parseError(token);
851
- }
852
- values.push(this._tokenizer.next());
853
- this._tokenizer.expect(token);
854
- token = this._tokenizer.peek();
855
- }
856
- while (token === '"' || token === "'");
857
- return values.join('');
858
- }
859
-
860
- _readValue() {
861
- const token = this._tokenizer.next();
862
- switch (token) {
863
- case "'":
864
- case '"':
865
- this._tokenizer.push(token);
866
- return this._readString();
867
- case 'true':
868
- case 'TRUE':
869
- return true;
870
- case 'false':
871
- case 'FALSE':
872
- return false;
873
- default: {
874
- const value = this._parseNumber(token);
875
- if (value !== undefined) {
876
- return value;
877
- }
878
- if (protoc.Parser._isTypeReference(token)) {
879
- return token;
880
- }
881
- throw this._parseError(token, 'value');
882
- }
883
- }
884
- }
885
-
886
- _readRanges(target, acceptStrings) {
887
- do {
888
- let token = '';
889
- if (acceptStrings && ((token = this._tokenizer.peek()) === '"' || token === "'")) {
890
- target.push(this._readString());
891
- } else {
892
- const start = this._parseId(this._tokenizer.next());
893
- const end = this._tokenizer.eat('to') ? this._parseId(this._tokenizer.next()) : start;
894
- target.push([start, end]);
895
- }
896
- }
897
- while (this._tokenizer.eat(','));
898
- this._tokenizer.expect(';');
899
- }
900
-
901
- _parseNumber(token) {
902
- let sign = 1;
903
- if (token.charAt(0) === '-') {
904
- sign = -1;
905
- token = token.substring(1);
906
- }
907
- switch (token) {
908
- case 'inf':
909
- case 'INF':
910
- case 'Inf': {
911
- return sign * Infinity;
912
- }
913
- case 'nan':
914
- case 'NAN':
915
- case 'Nan':
916
- case 'NaN': {
917
- return NaN;
918
- }
919
- case '0': {
920
- return 0;
921
- }
922
- default: {
923
- if (/^[1-9][0-9]*$/.test(token)) {
924
- return sign * parseInt(token, 10);
925
- }
926
- if (/^0[x][0-9a-fA-F]+$/.test(token)) {
927
- return sign * parseInt(token, 16);
928
- }
929
- if (/^0[0-7]+$/.test(token)) {
930
- return sign * parseInt(token, 8);
931
- }
932
- if (/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/.test(token)) {
933
- return sign * parseFloat(token);
934
- }
935
- return undefined;
936
- }
937
- }
938
- }
939
-
940
- static _isName(value) {
941
- return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(value);
942
- }
943
-
944
- static _isTypeReference(value) {
945
- return /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/.test(value);
946
- }
947
-
948
- _parseError(token, name) {
949
- name = name || 'token';
950
- const location = this._tokenizer.location();
951
- return new protoc.Error(`Invalid ${name} '${token}' ${location}.`);
952
- }
953
- };
954
-
955
- protoc.Tokenizer = class {
956
-
957
- constructor(text, file) {
958
- this._text = text;
959
- this._file = file;
960
- this._position = 0;
961
- this._length = text.length;
962
- this._line = 1;
963
- this._stack = [];
964
- this._delimiter = null;
965
- }
966
-
967
- get file() {
968
- return this._file;
969
- }
970
-
971
- get line() {
972
- return this._line;
973
- }
974
-
975
- next() {
976
- if (this._stack.length > 0) {
977
- return this._stack.shift();
978
- }
979
- if (this._delimiter) {
980
- return this._readString();
981
- }
982
-
983
- let repeat = false;
984
- let prev = '';
985
- let curr = '';
986
- do {
987
- if (this._position === this._length) {
988
- return null;
989
- }
990
- repeat = false;
991
- while (/\s/.test(curr = this._get(this._position))) {
992
- if (curr === '\n') {
993
- this._line++;
994
- }
995
- this._position++;
996
- if (this._position === this._length) {
997
- return null;
998
- }
999
- }
1000
- if (this._get(this._position) === '/') {
1001
- this._position++;
1002
- if (this._position === this._length) {
1003
- throw this._readError('Invalid comment');
1004
- }
1005
- if (this._get(this._position) === '/') {
1006
- while (this._get(++this._position) !== '\n') {
1007
- if (this._position === this._length) {
1008
- return null;
1009
- }
1010
- }
1011
- this._position++;
1012
- this._line++;
1013
- repeat = true;
1014
- } else if ((curr = this._get(this._position)) === '*') {
1015
- do {
1016
- if (curr === '\n') {
1017
- this._line++;
1018
- }
1019
- this._position++;
1020
- if (this._position === this._length) {
1021
- throw this._readError('Invalid comment');
1022
- }
1023
- prev = curr;
1024
- curr = this._get(this._position);
1025
- } while (prev !== '*' || curr !== '/');
1026
- this._position++;
1027
- repeat = true;
1028
- } else {
1029
- return '/';
1030
- }
1031
- }
1032
- }
1033
- while (repeat);
1034
-
1035
- let end = this._position;
1036
- const delimRe = /[\s{}=;:[\],'"()<>]/g;
1037
- delimRe.lastIndex = 0;
1038
- const delim = delimRe.test(this._get(end++));
1039
- if (!delim) {
1040
- while (end < this._length && !delimRe.test(this._get(end))) {
1041
- end++;
1042
- }
1043
- }
1044
- const position = this._position;
1045
- this._position = end;
1046
- const token = this._text.substring(position, this._position);
1047
- if (token === '"' || token === "'") {
1048
- this._delimiter = token;
1049
- }
1050
- return token;
1051
- }
1052
-
1053
- peek() {
1054
- if (!this._stack.length) {
1055
- const token = this.next();
1056
- if (token === null) {
1057
- return null;
1058
- }
1059
- this.push(token);
1060
- }
1061
- return this._stack[0];
1062
- }
1063
-
1064
- push(value) {
1065
- this._stack.push(value);
1066
- }
1067
-
1068
- expect(value) {
1069
- const token = this.peek();
1070
- if (token !== value) {
1071
- throw this._readError(`Unexpected '${token}' instead of '${value}'`);
1072
- }
1073
- this.next();
1074
- }
1075
-
1076
- eat(value) {
1077
- const token = this.peek();
1078
- if (token === value) {
1079
- this.next();
1080
- return true;
1081
- }
1082
- return false;
1083
- }
1084
-
1085
- _get(pos) {
1086
- return this._text.charAt(pos);
1087
- }
1088
-
1089
- static _unescape(str) {
1090
- return str.replace(/\\(.?)/g, ($0, $1) => {
1091
- switch ($1) {
1092
- case '\\':
1093
- case '':
1094
- return $1;
1095
- case '0':
1096
- return '\0';
1097
- case 'r':
1098
- return '\r';
1099
- case 'n':
1100
- return '\n';
1101
- case 't':
1102
- return '\t';
1103
- default:
1104
- return '';
1105
- }
1106
- });
1107
- }
1108
-
1109
- _readString() {
1110
- const re = this._delimiter === "'" ? /(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g : /(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g;
1111
- re.lastIndex = this._position - 1;
1112
- const match = re.exec(this._text);
1113
- if (!match) {
1114
- throw this._readError('Invalid string');
1115
- }
1116
- this._position = re.lastIndex;
1117
- this.push(this._delimiter);
1118
- this._delimiter = null;
1119
- return protoc.Tokenizer._unescape(match[1]);
1120
- }
1121
-
1122
- _readError(message) {
1123
- const location = `at ${this._file}:${this._line}.`;
1124
- return new protoc.Error(`${message} ${location}`);
1125
- }
1126
-
1127
- location() {
1128
- return `at ${this.file}:${this.line}.`;
1129
- }
1130
- };
1131
-
1132
- protoc.Generator = class {
1133
-
1134
- constructor(root, options) {
1135
- this._root = root;
1136
- this._options = options;
1137
- this._builder = new protoc.Generator.StringBuilder();
1138
- const scopes = Array.from(this._root.children.values()).map((child) => child.fullName);
1139
- const exports = new Set(scopes.map((scope) => scope.split('.')[0]));
1140
- this._builder.add('');
1141
- for (const value of exports) {
1142
- this._builder.add(`export const ${value} = {};`);
1143
- }
1144
- this._buildContent(this._root);
1145
- this._content = this._builder.toString();
1146
- }
1147
-
1148
- get content() {
1149
- return this._content;
1150
- }
1151
-
1152
- _buildContent(namespace) {
1153
- for (const child of namespace.children.values()) {
1154
- if (child instanceof protoc.Enum) {
1155
- this._builder.add('');
1156
- this._buildEnum(child);
1157
- } else if (child instanceof protoc.Type) {
1158
- this._builder.add('');
1159
- this._buildType(child);
1160
- } else if (child instanceof protoc.Namespace) {
1161
- const name = child.fullName.split('.').map((name) => protoc.Generator._escapeName(name)).join('.');
1162
- if (name.indexOf('.') !== -1) {
1163
- this._builder.add('');
1164
- this._builder.add(`${name} = {};`);
1165
- }
1166
- this._buildContent(child);
1167
- } else {
1168
- throw new protoc.Error('Unsupportd namespace child.');
1169
- }
1170
- }
1171
- }
1172
-
1173
- _buildEnum(type) {
1174
- /* eslint-disable indent */
1175
- const name = type.fullName.split('.').map((name) => protoc.Generator._escapeName(name)).join('.');
1176
- this._builder.add(`${name} = {`);
1177
- this._builder.indent();
1178
- const keys = Object.keys(type.values);
1179
- for (let i = 0; i < keys.length; i++) {
1180
- const key = keys[i];
1181
- const value = type.values[key];
1182
- this._builder.add(`${JSON.stringify(key)}: ${value}${(i === keys.length - 1) ? '' : ','}`);
1183
- }
1184
- this._builder.outdent();
1185
- this._builder.add("};");
1186
- /* eslint-enable indent */
1187
- }
1188
-
1189
- _buildType(type) {
1190
-
1191
- const name = type.fullName.split('.').map((name) => protoc.Generator._escapeName(name)).join('.');
1192
- this._builder.add(`${name} = class ${protoc.Generator._escapeName(type.name)} {`);
1193
- this._builder.indent();
1194
-
1195
- this._buildConstructor(type);
1196
-
1197
- for (const oneof of type.oneofs.values()) {
1198
- /* eslint-disable indent */
1199
- this._builder.add('');
1200
- this._builder.add(`get ${oneof.name}() {`);
1201
- this._builder.indent();
1202
- this._builder.add(`${name}.${oneof.name}Set = ${name}.${oneof.name}Set || new Set([${Array.from(oneof.oneof.keys()).map(JSON.stringify).join(', ')}]);`);
1203
- this._builder.add(`return Object.keys(this).find((key) => ${name}.${oneof.name}Set.has(key) && this[key] !== null);`);
1204
- this._builder.outdent();
1205
- this._builder.add('}');
1206
- /* eslint-enable indent */
1207
- }
1208
-
1209
- if (this._options.binary) {
1210
- this._builder.add('');
1211
- this._buildDecodeFunction(type);
1212
- }
1213
-
1214
- if (this._options.text) {
1215
- this._builder.add('');
1216
- this._buildDecodeTextFunction(type);
1217
- }
1218
-
1219
- if (this._options.json) {
1220
- this._builder.add('');
1221
- this._buildDecodeJsonFunction(type);
1222
- }
1223
-
1224
- this._builder.outdent();
1225
- this._builder.add('};');
1226
-
1227
- let first = true;
1228
- for (const field of type.fields.values()) {
1229
- if (field.partOf || field.repeated || field instanceof protoc.MapField) {
1230
- continue;
1231
- }
1232
- if (first) {
1233
- this._builder.add('');
1234
- first = false;
1235
- }
1236
- if (field.type.long) {
1237
- if (field.type.name === 'uint64' || field.type.name === 'fixed64') {
1238
- this._builder.add(`${name}.prototype${protoc.Generator._propertyReference(field.name)} = ${field.defaultValue}n;`);
1239
- } else {
1240
- this._builder.add(`${name}.prototype${protoc.Generator._propertyReference(field.name)} = ${field.defaultValue}n;`);
1241
- }
1242
- } else if (field.type.name === 'bytes') {
1243
- this._builder.add(`${name}.prototype${protoc.Generator._propertyReference(field.name)} = new Uint8Array(${JSON.stringify(Array.prototype.slice.call(field.defaultValue))});`);
1244
- } else {
1245
- this._builder.add(`${name}.prototype${protoc.Generator._propertyReference(field.name)} = ${JSON.stringify(field.defaultValue)};`);
1246
- }
1247
- }
1248
-
1249
- this._buildContent(type);
1250
- }
1251
-
1252
- _buildConstructor(type) {
1253
- const filter = (field) => field instanceof protoc.MapField || field.repeated;
1254
- const fields = Array.from(type.fields.values()).filter(filter);
1255
- if (fields.length === 0) {
1256
- return;
1257
- }
1258
- /* eslint-disable indent */
1259
- this._builder.add('');
1260
- this._builder.add('constructor() {');
1261
- this._builder.indent();
1262
- for (const field of fields) {
1263
- if (field instanceof protoc.MapField) {
1264
- this._builder.add(`this${protoc.Generator._propertyReference(field.name)} = {};`);
1265
- } else if (field.repeated) {
1266
- this._builder.add(`this${protoc.Generator._propertyReference(field.name)} = [];`);
1267
- }
1268
- }
1269
- this._builder.outdent();
1270
- this._builder.add('}');
1271
- /* eslint-enable indent */
1272
- }
1273
-
1274
- _buildDecodeFunction(type) {
1275
- /* eslint-disable indent */
1276
- const fieldTypeName = (field) => `${field.type.fullName}`;
1277
- this._builder.add('static decode(reader, length) {');
1278
- this._builder.indent();
1279
- this._builder.add(`const message = new ${type.fullName}();`);
1280
- this._builder.add('const end = length === undefined ? reader.length : reader.position + length;');
1281
- this._builder.add("while (reader.position < end) {");
1282
- this._builder.indent();
1283
- this._builder.add("const tag = reader.uint32();");
1284
- if (type.group) {
1285
- this._builder.add("if ((tag&7) === 4)");
1286
- this._builder.indent();
1287
- this._builder.add("break;");
1288
- this._builder.outdent();
1289
- }
1290
- this._builder.add("switch (tag >>> 3) {");
1291
- this._builder.indent();
1292
- for (const field of type.fields.values()) {
1293
- const variable = `message${protoc.Generator._propertyReference(field.name)}`;
1294
- this._builder.add(`case ${field.id}:`);
1295
- this._builder.indent();
1296
- if (field instanceof protoc.MapField) {
1297
- const value = field.type instanceof protoc.PrimitiveType ?
1298
- `reader.${field.type.name}()` :
1299
- `${fieldTypeName(field)}.decode(reader, reader.uint32())`;
1300
- this._builder.add(`reader.entry(${variable}, () => reader.${field.keyType.name}(), () => ${value});`);
1301
- } else if (field.repeated) {
1302
- if (field.type.name === 'float' || field.type.name === 'double') {
1303
- this._builder.add(`${variable} = reader.${field.type.name}s(${variable}, tag);`);
1304
- } else if (field.type instanceof protoc.Enum) {
1305
- this._builder.add(`${variable} = reader.array(${variable}, () => reader.int32(), tag);`);
1306
- } else if (field.type instanceof protoc.PrimitiveType && field.type.packed) {
1307
- this._builder.add(`${variable} = reader.array(${variable}, () => reader.${field.type.name}(), tag);`);
1308
- } else if (field.type instanceof protoc.PrimitiveType) {
1309
- this._builder.add(`${variable}.push(reader.${field.type.name}());`);
1310
- } else if (field.type.group) {
1311
- this._builder.add(`${variable}.push(${fieldTypeName(field)}.decode(reader));`);
1312
- } else {
1313
- this._builder.add(`${variable}.push(${fieldTypeName(field)}.decode(reader, reader.uint32()));`);
1314
- }
1315
- } else if (field.type instanceof protoc.Enum) {
1316
- this._builder.add(`${variable} = reader.int32();`);
1317
- } else if (field.type instanceof protoc.PrimitiveType) {
1318
- this._builder.add(`${variable} = reader.${field.type.name}();`);
1319
- } else if (field.type.group) {
1320
- this._builder.add(`${variable} = ${fieldTypeName(field)}.decode(reader);`);
1321
- } else {
1322
- this._builder.add(`${variable} = ${fieldTypeName(field)}.decode(reader, reader.uint32());`);
1323
- }
1324
- this._builder.add('break;');
1325
- this._builder.outdent();
1326
- }
1327
-
1328
- this._builder.add('default:');
1329
- this._builder.indent();
1330
- this._builder.add("reader.skipType(tag & 7);");
1331
- this._builder.add("break;");
1332
- this._builder.outdent();
1333
- this._builder.outdent();
1334
- this._builder.add("}");
1335
- this._builder.outdent();
1336
- this._builder.add('}');
1337
-
1338
- for (const field of Array.from(type.fields.values()).filter((field) => field.required)) {
1339
- this._builder.add(`if (!Object.prototype.hasOwnProperty.call(message, '${field.name}')) {`);
1340
- this._builder.indent();
1341
- this._builder.add(`throw new Error("Excepted '${field.name}'.");`);
1342
- this._builder.outdent();
1343
- this._builder.add('}');
1344
- }
1345
-
1346
- this._builder.add('return message;');
1347
- this._builder.outdent();
1348
- this._builder.add('}');
1349
- /* eslint-enable indent */
1350
- }
1351
-
1352
- _buildDecodeTextFunction(type) {
1353
- /* eslint-disable indent */
1354
- this._builder.add('static decodeText(reader) {');
1355
- this._builder.indent();
1356
- if (type.fullName === 'google.protobuf.Any') {
1357
- this._builder.add(`return reader.any(() => new ${type.fullName}());`);
1358
- } else {
1359
- this._builder.add(`const message = new ${type.fullName}();`);
1360
- this._builder.add('reader.start();');
1361
- this._builder.add('while (!reader.end()) {');
1362
- this._builder.indent();
1363
- this._builder.add('const tag = reader.tag();');
1364
- this._builder.add('switch (tag) {');
1365
- this._builder.indent();
1366
- for (const field of type.fields.values()) {
1367
- const variable = `message${protoc.Generator._propertyReference(field.name)}`;
1368
- this._builder.add(`case "${field.name}":`);
1369
- this._builder.indent();
1370
- // Map fields
1371
- if (field instanceof protoc.MapField) {
1372
- const value = field.type instanceof protoc.PrimitiveType ?
1373
- `reader.${field.type.name}()` :
1374
- `${field.type.fullName}.decodeText(reader)`;
1375
- this._builder.add(`reader.entry(${variable}, () => reader.${field.keyType.name}(), () => ${value});`);
1376
- } else if (field.repeated) { // Repeated fields
1377
- if (field.type instanceof protoc.Enum) {
1378
- this._builder.add(`reader.array(${variable}, () => reader.enum(${field.type.fullName}));`);
1379
- } else if (field.type instanceof protoc.PrimitiveType) {
1380
- this._builder.add(`reader.array(${variable}, () => reader.${field.type.name}());`);
1381
- } else if (field.type.fullName === 'google.protobuf.Any') {
1382
- this._builder.add(`reader.anyarray(${variable}, () => new ${field.type.fullName}());`);
1383
- } else {
1384
- this._builder.add(`${variable}.push(${field.type.fullName}.decodeText(reader));`);
1385
- }
1386
- // Non-repeated
1387
- } else if (field.type instanceof protoc.Enum) {
1388
- this._builder.add(`${variable} = reader.enum(${field.type.fullName});`);
1389
- } else if (field.type instanceof protoc.PrimitiveType) {
1390
- this._builder.add(`${variable} = reader.${field.type.name}();`);
1391
- } else {
1392
- this._builder.add(`${variable} = ${field.type.fullName}.decodeText(reader);`);
1393
- }
1394
- this._builder.add("break;");
1395
- this._builder.outdent();
1396
- }
1397
- this._builder.add("default:");
1398
- this._builder.indent();
1399
- this._builder.add("reader.field(tag, message);");
1400
- this._builder.add("break;");
1401
- this._builder.outdent();
1402
- this._builder.outdent();
1403
- this._builder.add('}');
1404
- this._builder.outdent();
1405
- this._builder.add('}');
1406
- for (const field of Array.from(type.fields.values()).filter((field) => field.required)) {
1407
- this._builder.add(`if (!Object.prototype.hasOwnProperty.call(message, "${field.name}")) {`);
1408
- this._builder.indent();
1409
- this._builder.add(`throw new Error("Excepted '${field.name}'.");`);
1410
- this._builder.outdent();
1411
- this._builder.add('}');
1412
- }
1413
- this._builder.add('return message;');
1414
- }
1415
- this._builder.outdent();
1416
- this._builder.add('}');
1417
- /* eslint-enable indent */
1418
- }
1419
-
1420
- _buildDecodeJsonFunction(type) {
1421
- /* eslint-disable indent */
1422
- this._builder.add(`static decodeJson(${type.fullName === 'google.protobuf.Any' || type.fields.size === 0 ? '' : 'obj'}) {`);
1423
- this._builder.indent();
1424
- if (type.fullName === 'google.protobuf.Any') {
1425
- this._builder.add("throw new Error('Any fields not implemented.');");
1426
- } else {
1427
- this._builder.add(`const message = new ${type.fullName}();`);
1428
- for (const field of type.fields.values()) {
1429
- const json = field.name.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
1430
- const source = `obj.${json}`;
1431
- const target = `message${protoc.Generator._propertyReference(field.name)}`;
1432
- if (!field.required) {
1433
- this._builder.add(`if ('${json}' in obj) {`);
1434
- this._builder.indent();
1435
- }
1436
- if (field instanceof protoc.MapField) {
1437
- this._builder.add(`for (const [key, value] of Object.entries(obj.${json})) {`);
1438
- this._builder.indent();
1439
- const value = field.type instanceof protoc.PrimitiveType ? `value` : `${field.type.fullName}.decodeJson(value)`;
1440
- this._builder.add(`${target}[key] = ${value};`);
1441
- this._builder.outdent();
1442
- this._builder.add(`}`);
1443
- } else if (field.repeated) {
1444
- if (field.type instanceof protoc.PrimitiveType) {
1445
- if (field.type.name === 'float' || field.type.name === 'double' || field.type.name === 'int32' || field.type.name === 'uint32') {
1446
- this._builder.add(`${target} = ${source}.map((obj) => Number(obj));`);
1447
- } else if (field.type.name === 'int64' || field.type.name === 'uint64' || field.type.name === 'fixed64' || field.type.name === 'sint64') {
1448
- this._builder.add(`${target} = ${source}.map((obj) => BigInt(obj));`);
1449
- } else if (field.type.name === 'bytes') {
1450
- this._builder.add(`${target} = ${source}.map((obj) => typeof obj === 'string' ? Uint8Array.from(atob(obj), (c) => c.charCodeAt(0)) : Uint8Array.from(obj));`);
1451
- } else if (field.type.name === 'string' || field.type.name === 'bool') {
1452
- this._builder.add(`${target} = ${source};`);
1453
- } else {
1454
- throw new protoc.Error(`Repeated primitive field type '${field.type.name}' not implemented.`);
1455
- }
1456
- } else if (field.type instanceof protoc.Enum) {
1457
- this._builder.add(`${target} = ${source}.map((key) => typeof key === 'string' ? ${field.type.fullName}[key] : key);`);
1458
- } else {
1459
- this._builder.add(`${target} = ${source}.map((obj) => ${field.type.fullName}.decodeJson(obj));`);
1460
- }
1461
- } else if (field.type instanceof protoc.PrimitiveType) {
1462
- if (field.type.name === 'float' || field.type.name === 'double' || field.type.name === 'int32' || field.type.name === 'uint32' || field.type.name === 'fixed32') {
1463
- this._builder.add(`${target} = Number(${source});`);
1464
- } else if (field.type.name === 'int64' || field.type.name === 'uint64' || field.type.name === 'fixed64' || field.type.name === 'sint64') {
1465
- this._builder.add(`${target} = BigInt(${source});`);
1466
- } else if (field.type.name === 'bytes') {
1467
- this._builder.add(`${target} = typeof source === 'string' ? Uint8Array.from(atob(${source}), (c) => c.charCodeAt(0)) : Uint8Array.from(${source});`);
1468
- } else if (field.type.name === 'string' || field.type.name === 'bool') {
1469
- this._builder.add(`${target} = ${source};`);
1470
- } else {
1471
- throw new protoc.Error(`Primitive field type '${field.type.name}' not implemented.`);
1472
- }
1473
- } else if (field.type instanceof protoc.Enum) {
1474
- this._builder.add(`${target} = typeof ${source} === 'string' ? ${field.type.fullName}[${source}] : ${source};`);
1475
- } else {
1476
- this._builder.add(`${target} = ${field.type.fullName}.decodeJson(${source});`);
1477
- }
1478
- if (!field.required) {
1479
- this._builder.outdent();
1480
- this._builder.add('}');
1481
- }
1482
- }
1483
- this._builder.add('return message;');
1484
- }
1485
- this._builder.outdent();
1486
- this._builder.add('}');
1487
- /* eslint-enable indent */
1488
- }
1489
-
1490
- static _isKeyword(name) {
1491
- return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name);
1492
- }
1493
-
1494
- static _escapeName(name) {
1495
- return protoc.Generator._isKeyword(name) ? `${name}_` : name;
1496
- }
1497
-
1498
- static _propertyReference(name) {
1499
- if (!/^[$\w_]+$/.test(name)) {
1500
- return `["${name.replace(/\\/g, '\\\\').replace(/"/g, "\\\"")}"]`;
1501
- }
1502
- return `.${name}`;
1503
- }
1504
- };
1505
-
1506
- protoc.Generator.StringBuilder = class {
1507
-
1508
- constructor() {
1509
- this._indentation = '';
1510
- this._lines = [''];
1511
- this._newline = true;
1512
- }
1513
-
1514
- indent() {
1515
- this._indentation += ' ';
1516
- }
1517
-
1518
- outdent() {
1519
- if (this._indentation.length === 0) {
1520
- throw new protoc.Error('Invalid indentation.');
1521
- }
1522
- this._indentation = this._indentation.substring(0, this._indentation.length - 4);
1523
- }
1524
-
1525
- add(text, newline) {
1526
- if (this._newline) {
1527
- if (text !== '') {
1528
- this._lines.push(this._indentation);
1529
- }
1530
- }
1531
- this._lines[this._lines.length - 1] = this._lines[this._lines.length - 1] + text + (newline === false ? '' : '\n');
1532
- this._newline = newline === false ? false : true;
1533
- }
1534
-
1535
- toString() {
1536
- return this._lines.join('');
1537
- }
1538
- };
1539
-
1540
- protoc.Error = class extends Error {
1541
-
1542
- constructor(message) {
1543
- super(message);
1544
- this.name = 'Protocol Buffers Compiler Error';
1545
- }
1546
- };
1547
-
1548
- const main = async (args) => {
1549
-
1550
- const options = { verbose: false, root: 'default', out: '', text: false, paths: [], files: [] };
1551
- while (args.length > 0) {
1552
- const arg = args.shift();
1553
- switch (arg) {
1554
- case '--verbose':
1555
- options.verbose = true;
1556
- break;
1557
- case '--out':
1558
- options.out = args.shift();
1559
- break;
1560
- case '--root':
1561
- options.root = args.shift();
1562
- break;
1563
- case '--binary':
1564
- options.binary = true;
1565
- break;
1566
- case '--text':
1567
- options.text = true;
1568
- break;
1569
- case '--json':
1570
- options.json = true;
1571
- break;
1572
- case '--path':
1573
- options.paths.push(args.shift());
1574
- break;
1575
- default:
1576
- if (arg.startsWith('-')) {
1577
- throw new protoc.Error(`Invalid command line argument '${arg}'.`);
1578
- }
1579
- options.files.push(arg);
1580
- break;
1581
- }
1582
- }
1583
-
1584
- try {
1585
- const root = new protoc.Root(options.root);
1586
- await root.load(options.paths, options.files);
1587
- const generator = new protoc.Generator(root, options);
1588
- if (options.out) {
1589
- await fs.writeFile(options.out, generator.content, 'utf-8');
1590
- }
1591
- } catch (error) {
1592
- if (error instanceof protoc.Error && !options.verbose) {
1593
- process.stderr.write(`${error.message}\n`);
1594
- } else {
1595
- process.stderr.write(`${error.stack}\n`);
1596
- }
1597
- process.exit(1);
1598
- }
1599
- process.exit(0);
1600
- };
1601
-
1602
- if (typeof process === 'object' &&
1603
- Array.isArray(process.argv) && process.argv.length > 1 &&
1604
- path.basename(process.argv[1]) === 'protoc.js') {
1605
- const args = process.argv.slice(2);
1606
- await main(args);
1607
- }
1608
-
1609
- export const Root = protoc.Root;