synapse 2.219.0__tar.gz → 2.221.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of synapse might be problematic. Click here for more details.

Files changed (659) hide show
  1. {synapse-2.219.0/synapse.egg-info → synapse-2.221.0}/PKG-INFO +1 -2
  2. {synapse-2.219.0 → synapse-2.221.0}/pyproject.toml +2 -3
  3. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/__init__.py +4 -0
  4. synapse-2.221.0/synapse/data/lark/imap.lark +8 -0
  5. {synapse-2.219.0 → synapse-2.221.0}/synapse/exc.py +2 -0
  6. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/json.py +6 -5
  7. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/layer.py +134 -0
  8. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/link.py +49 -50
  9. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/parser.py +3 -5
  10. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/rstorm.py +65 -2
  11. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/snap.py +21 -13
  12. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/storm.py +1 -0
  13. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormhttp.py +10 -10
  14. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/aha.py +3 -3
  15. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/auth.py +11 -11
  16. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/cell.py +1 -1
  17. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/cortex.py +9 -9
  18. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/env.py +4 -5
  19. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/ethereum.py +1 -1
  20. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/gen.py +3 -3
  21. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/hex.py +2 -2
  22. synapse-2.221.0/synapse/lib/stormlib/imap.py +817 -0
  23. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/infosec.py +2 -2
  24. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/iters.py +2 -2
  25. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/model.py +5 -5
  26. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/notifications.py +1 -1
  27. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/oauth.py +2 -2
  28. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/project.py +3 -3
  29. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/scrape.py +2 -1
  30. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/smtp.py +3 -3
  31. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/stats.py +2 -2
  32. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/stix.py +2 -2
  33. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/utils.py +19 -0
  34. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/vault.py +1 -1
  35. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/xml.py +2 -2
  36. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/yaml.py +1 -1
  37. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormtypes.py +203 -60
  38. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/version.py +2 -2
  39. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_grammar.py +2 -4
  40. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_json.py +29 -0
  41. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_layer.py +86 -67
  42. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_rstorm.py +132 -0
  43. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_storm.py +11 -1
  44. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_env.py +3 -1
  45. synapse-2.221.0/synapse/tests/test_lib_stormlib_imap.py +1359 -0
  46. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_utils.py +10 -0
  47. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormtypes.py +583 -2
  48. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/list.py +9 -9
  49. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/provision/service.py +2 -2
  50. {synapse-2.219.0 → synapse-2.221.0}/synapse/utils/stormcov/plugin.py +2 -5
  51. synapse-2.221.0/synapse/vendor/xrpl/tests/__init__.py +0 -0
  52. {synapse-2.219.0 → synapse-2.221.0/synapse.egg-info}/PKG-INFO +1 -2
  53. {synapse-2.219.0 → synapse-2.221.0}/synapse.egg-info/SOURCES.txt +3 -1
  54. {synapse-2.219.0 → synapse-2.221.0}/synapse.egg-info/requires.txt +0 -1
  55. synapse-2.219.0/synapse/lib/stormlib/imap.py +0 -376
  56. synapse-2.219.0/synapse/tests/test_lib_stormlib_imap.py +0 -282
  57. {synapse-2.219.0 → synapse-2.221.0}/LICENSE +0 -0
  58. {synapse-2.219.0 → synapse-2.221.0}/README.rst +0 -0
  59. {synapse-2.219.0 → synapse-2.221.0}/setup.cfg +0 -0
  60. {synapse-2.219.0 → synapse-2.221.0}/synapse/__init__.py +0 -0
  61. {synapse-2.219.0 → synapse-2.221.0}/synapse/axon.py +0 -0
  62. {synapse-2.219.0 → synapse-2.221.0}/synapse/cells.py +0 -0
  63. {synapse-2.219.0 → synapse-2.221.0}/synapse/cmds/__init__.py +0 -0
  64. {synapse-2.219.0 → synapse-2.221.0}/synapse/cmds/boss.py +0 -0
  65. {synapse-2.219.0 → synapse-2.221.0}/synapse/cmds/cortex.py +0 -0
  66. {synapse-2.219.0 → synapse-2.221.0}/synapse/cmds/hive.py +0 -0
  67. {synapse-2.219.0 → synapse-2.221.0}/synapse/common.py +0 -0
  68. {synapse-2.219.0 → synapse-2.221.0}/synapse/cortex.py +0 -0
  69. {synapse-2.219.0 → synapse-2.221.0}/synapse/cryotank.py +0 -0
  70. {synapse-2.219.0 → synapse-2.221.0}/synapse/daemon.py +0 -0
  71. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  72. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/attack-flow/README.md +0 -0
  73. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  74. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  75. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  76. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  77. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  78. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/iana.tlds.mpk +0 -0
  79. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/iana.uris.mpk +0 -0
  80. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/README.md +0 -0
  81. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  82. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  83. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  84. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  85. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  86. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  87. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  88. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  89. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  90. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  91. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  92. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  93. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  94. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  95. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  96. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  97. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  98. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  99. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  100. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  101. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  102. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  103. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  104. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  105. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  106. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  107. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  108. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  109. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  110. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  111. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  112. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  113. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  114. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  115. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  116. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  117. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  118. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  119. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  120. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  121. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  122. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  123. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  124. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  125. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  126. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  127. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  128. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  129. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  130. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  131. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  132. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  133. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  134. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  135. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  136. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  137. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  138. {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  139. {synapse-2.219.0/synapse/lib/crypto → synapse-2.221.0/synapse/data/lark}/__init__.py +0 -0
  140. {synapse-2.219.0/synapse/lib → synapse-2.221.0/synapse/data/lark}/storm.lark +0 -0
  141. {synapse-2.219.0 → synapse-2.221.0}/synapse/datamodel.py +0 -0
  142. {synapse-2.219.0 → synapse-2.221.0}/synapse/glob.py +0 -0
  143. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/__init__.py +0 -0
  144. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/agenda.py +0 -0
  145. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/aha.py +0 -0
  146. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/ast.py +0 -0
  147. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/auth.py +0 -0
  148. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/autodoc.py +0 -0
  149. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/base.py +0 -0
  150. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/boss.py +0 -0
  151. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/cache.py +0 -0
  152. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/cell.py +0 -0
  153. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/certdir.py +0 -0
  154. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/chop.py +0 -0
  155. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/cli.py +0 -0
  156. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/cmd.py +0 -0
  157. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/cmdr.py +0 -0
  158. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/config.py +0 -0
  159. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/const.py +0 -0
  160. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/coro.py +0 -0
  161. {synapse-2.219.0/synapse/lib/stormlib → synapse-2.221.0/synapse/lib/crypto}/__init__.py +0 -0
  162. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/crypto/coin.py +0 -0
  163. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/crypto/ecc.py +0 -0
  164. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/crypto/passwd.py +0 -0
  165. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/crypto/rsa.py +0 -0
  166. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/crypto/tinfoil.py +0 -0
  167. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/datfile.py +0 -0
  168. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/drive.py +0 -0
  169. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/dyndeps.py +0 -0
  170. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/encoding.py +0 -0
  171. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/gis.py +0 -0
  172. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/grammar.py +0 -0
  173. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/hashitem.py +0 -0
  174. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/hashset.py +0 -0
  175. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/health.py +0 -0
  176. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/hive.py +0 -0
  177. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/httpapi.py +0 -0
  178. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/ingest.py +0 -0
  179. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/interval.py +0 -0
  180. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/jsonstor.py +0 -0
  181. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/lmdbslab.py +0 -0
  182. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/modelrev.py +0 -0
  183. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/module.py +0 -0
  184. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/modules.py +0 -0
  185. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/msgpack.py +0 -0
  186. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/multislabseqn.py +0 -0
  187. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/nexus.py +0 -0
  188. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/node.py +0 -0
  189. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/oauth.py +0 -0
  190. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/output.py +0 -0
  191. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/__init__.py +0 -0
  192. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/common.py +0 -0
  193. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/darwin.py +0 -0
  194. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/freebsd.py +0 -0
  195. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/linux.py +0 -0
  196. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/windows.py +0 -0
  197. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/queue.py +0 -0
  198. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/ratelimit.py +0 -0
  199. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/reflect.py +0 -0
  200. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/schemas.py +0 -0
  201. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/scope.py +0 -0
  202. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/scrape.py +0 -0
  203. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/share.py +0 -0
  204. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/slaboffs.py +0 -0
  205. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/slabseqn.py +0 -0
  206. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/spooled.py +0 -0
  207. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/storm_format.py +0 -0
  208. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormctrl.py +0 -0
  209. {synapse-2.219.0/synapse/lookup → synapse-2.221.0/synapse/lib/stormlib}/__init__.py +0 -0
  210. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/backup.py +0 -0
  211. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/basex.py +0 -0
  212. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/cache.py +0 -0
  213. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/compression.py +0 -0
  214. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/easyperm.py +0 -0
  215. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/gis.py +0 -0
  216. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/graph.py +0 -0
  217. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/hashes.py +0 -0
  218. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/index.py +0 -0
  219. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/ipv6.py +0 -0
  220. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/json.py +0 -0
  221. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/log.py +0 -0
  222. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/macro.py +0 -0
  223. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/math.py +0 -0
  224. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/mime.py +0 -0
  225. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/modelext.py +0 -0
  226. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/pack.py +0 -0
  227. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/random.py +0 -0
  228. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/spooled.py +0 -0
  229. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/storm.py +0 -0
  230. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/tabular.py +0 -0
  231. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/version.py +0 -0
  232. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormsvc.py +0 -0
  233. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormwhois.py +0 -0
  234. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/structlog.py +0 -0
  235. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/task.py +0 -0
  236. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/thishost.py +0 -0
  237. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/thisplat.py +0 -0
  238. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/threads.py +0 -0
  239. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/time.py +0 -0
  240. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/trigger.py +0 -0
  241. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/types.py +0 -0
  242. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/urlhelp.py +0 -0
  243. {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/view.py +0 -0
  244. {synapse-2.219.0/synapse/models → synapse-2.221.0/synapse/lookup}/__init__.py +0 -0
  245. {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/cvss.py +0 -0
  246. {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/iana.py +0 -0
  247. {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/iso3166.py +0 -0
  248. {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/macho.py +0 -0
  249. {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/pe.py +0 -0
  250. {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/phonenum.py +0 -0
  251. {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/timezones.py +0 -0
  252. {synapse-2.219.0 → synapse-2.221.0}/synapse/mindmeld.py +0 -0
  253. {synapse-2.219.0/synapse/models/gov → synapse-2.221.0/synapse/models}/__init__.py +0 -0
  254. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/auth.py +0 -0
  255. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/base.py +0 -0
  256. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/belief.py +0 -0
  257. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/biz.py +0 -0
  258. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/crypto.py +0 -0
  259. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/dns.py +0 -0
  260. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/doc.py +0 -0
  261. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/economic.py +0 -0
  262. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/entity.py +0 -0
  263. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/files.py +0 -0
  264. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/geopol.py +0 -0
  265. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/geospace.py +0 -0
  266. {synapse-2.219.0/synapse/servers → synapse-2.221.0/synapse/models/gov}/__init__.py +0 -0
  267. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/gov/cn.py +0 -0
  268. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/gov/intl.py +0 -0
  269. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/gov/us.py +0 -0
  270. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/inet.py +0 -0
  271. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/infotech.py +0 -0
  272. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/language.py +0 -0
  273. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/material.py +0 -0
  274. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/math.py +0 -0
  275. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/media.py +0 -0
  276. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/orgs.py +0 -0
  277. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/person.py +0 -0
  278. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/planning.py +0 -0
  279. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/proj.py +0 -0
  280. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/risk.py +0 -0
  281. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/science.py +0 -0
  282. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/syn.py +0 -0
  283. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/telco.py +0 -0
  284. {synapse-2.219.0 → synapse-2.221.0}/synapse/models/transport.py +0 -0
  285. {synapse-2.219.0/synapse/tests → synapse-2.221.0/synapse/servers}/__init__.py +0 -0
  286. {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/aha.py +0 -0
  287. {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/axon.py +0 -0
  288. {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/cell.py +0 -0
  289. {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/cortex.py +0 -0
  290. {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/cryotank.py +0 -0
  291. {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/jsonstor.py +0 -0
  292. {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/stemcell.py +0 -0
  293. {synapse-2.219.0 → synapse-2.221.0}/synapse/telepath.py +0 -0
  294. {synapse-2.219.0/synapse/tools → synapse-2.221.0/synapse/tests}/__init__.py +0 -0
  295. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  296. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/__init__.py +0 -0
  297. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
  298. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
  299. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
  300. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
  301. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
  302. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
  303. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  304. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  305. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  306. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  307. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  308. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  309. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  310. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/users/root.key +0 -0
  311. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  312. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/users/user.key +0 -0
  313. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
  314. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
  315. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/cpedata.json +0 -0
  316. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  317. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  318. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  319. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  320. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  321. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stix_export/basic.json +0 -0
  322. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  323. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  324. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  325. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  326. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  327. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  328. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  329. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  330. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
  331. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  332. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  333. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormmod/common +0 -0
  334. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  335. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  336. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
  337. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
  338. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  339. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  340. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  341. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  342. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  343. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  344. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  345. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  346. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  347. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  348. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  349. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  350. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  351. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  352. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  353. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  354. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  355. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  356. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  357. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  358. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  359. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/test.dat +0 -0
  360. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  361. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/docs/bar.rst +0 -0
  362. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/docs/foo.rst +0 -0
  363. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
  364. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
  365. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
  366. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
  367. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
  368. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/nopmod.py +0 -0
  369. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_axon.py +0 -0
  370. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_cmds_boss.py +0 -0
  371. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_cmds_cortex.py +0 -0
  372. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_cmds_hive.py +0 -0
  373. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_common.py +0 -0
  374. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_cortex.py +0 -0
  375. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_cryotank.py +0 -0
  376. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_daemon.py +0 -0
  377. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_data.py +0 -0
  378. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_datamodel.py +0 -0
  379. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_exc.py +0 -0
  380. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_glob.py +0 -0
  381. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_init.py +0 -0
  382. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_agenda.py +0 -0
  383. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_aha.py +0 -0
  384. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_ast.py +0 -0
  385. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_auth.py +0 -0
  386. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_autodoc.py +0 -0
  387. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_base.py +0 -0
  388. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_boss.py +0 -0
  389. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_cache.py +0 -0
  390. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_cell.py +0 -0
  391. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_certdir.py +0 -0
  392. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_chop.py +0 -0
  393. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_cli.py +0 -0
  394. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_config.py +0 -0
  395. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_const.py +0 -0
  396. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_coro.py +0 -0
  397. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  398. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  399. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  400. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  401. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_datfile.py +0 -0
  402. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  403. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_encoding.py +0 -0
  404. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_gis.py +0 -0
  405. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_hashitem.py +0 -0
  406. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_hashset.py +0 -0
  407. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_health.py +0 -0
  408. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_hive.py +0 -0
  409. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_httpapi.py +0 -0
  410. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_interval.py +0 -0
  411. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  412. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_link.py +0 -0
  413. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  414. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_modelrev.py +0 -0
  415. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_module.py +0 -0
  416. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_msgpack.py +0 -0
  417. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  418. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_nexus.py +0 -0
  419. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_node.py +0 -0
  420. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_output.py +0 -0
  421. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  422. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_queue.py +0 -0
  423. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  424. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_reflect.py +0 -0
  425. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_scope.py +0 -0
  426. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_scrape.py +0 -0
  427. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  428. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  429. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_snap.py +0 -0
  430. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_spooled.py +0 -0
  431. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_storm_format.py +0 -0
  432. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormctrl.py +0 -0
  433. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  434. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  435. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  436. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  437. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  438. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  439. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  440. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  441. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
  442. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  443. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  444. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  445. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  446. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  447. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  448. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
  449. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  450. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  451. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  452. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  453. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  454. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  455. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  456. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  457. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  458. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  459. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  460. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  461. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  462. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  463. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  464. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  465. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  466. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  467. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
  468. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  469. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  470. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  471. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  472. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  473. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_structlog.py +0 -0
  474. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_task.py +0 -0
  475. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_thishost.py +0 -0
  476. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_time.py +0 -0
  477. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_trigger.py +0 -0
  478. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_types.py +0 -0
  479. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  480. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_version.py +0 -0
  481. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_view.py +0 -0
  482. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  483. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  484. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_mindmeld.py +0 -0
  485. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_auth.py +0 -0
  486. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_base.py +0 -0
  487. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_belief.py +0 -0
  488. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_biz.py +0 -0
  489. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_crypto.py +0 -0
  490. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_dns.py +0 -0
  491. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_doc.py +0 -0
  492. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_economic.py +0 -0
  493. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_entity.py +0 -0
  494. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_files.py +0 -0
  495. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_geopol.py +0 -0
  496. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_geospace.py +0 -0
  497. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_gov_cn.py +0 -0
  498. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_gov_intl.py +0 -0
  499. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_gov_us.py +0 -0
  500. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_inet.py +0 -0
  501. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_infotech.py +0 -0
  502. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_language.py +0 -0
  503. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_material.py +0 -0
  504. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_math.py +0 -0
  505. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_media.py +0 -0
  506. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_orgs.py +0 -0
  507. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_person.py +0 -0
  508. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_planning.py +0 -0
  509. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_proj.py +0 -0
  510. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_risk.py +0 -0
  511. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_science.py +0 -0
  512. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_syn.py +0 -0
  513. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_telco.py +0 -0
  514. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_transport.py +0 -0
  515. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_servers_axon.py +0 -0
  516. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_servers_cortex.py +0 -0
  517. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_servers_cryotank.py +0 -0
  518. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_servers_stemcell.py +0 -0
  519. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_servers_univ.py +0 -0
  520. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_telepath.py +0 -0
  521. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_aha.py +0 -0
  522. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_apikey.py +0 -0
  523. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_autodoc.py +0 -0
  524. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_axon.py +0 -0
  525. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  526. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_backup.py +0 -0
  527. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_cellauth.py +0 -0
  528. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_changelog.py +0 -0
  529. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
  530. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  531. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  532. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_csvtool.py +0 -0
  533. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_demote.py +0 -0
  534. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  535. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_easycert.py +0 -0
  536. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_feed.py +0 -0
  537. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_genpkg.py +0 -0
  538. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_guid.py +0 -0
  539. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  540. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_hiveload.py +0 -0
  541. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_hivesave.py +0 -0
  542. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  543. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_livebackup.py +0 -0
  544. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_modrole.py +0 -0
  545. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_moduser.py +0 -0
  546. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_pkgs_gendocs.py +0 -0
  547. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_promote.py +0 -0
  548. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_pullfile.py +0 -0
  549. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_pushfile.py +0 -0
  550. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_reload.py +0 -0
  551. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_rstorm.py +0 -0
  552. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_shutdown.py +0 -0
  553. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_snapshot.py +0 -0
  554. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_storm.py +0 -0
  555. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_utils.py +0 -0
  556. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_utils_getrefs.py +0 -0
  557. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_utils_stormcov.py +0 -0
  558. {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/utils.py +0 -0
  559. {synapse-2.219.0/synapse/tools/aha → synapse-2.221.0/synapse/tools}/__init__.py +0 -0
  560. {synapse-2.219.0/synapse/tools/aha/provision → synapse-2.221.0/synapse/tools/aha}/__init__.py +0 -0
  561. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/clone.py +0 -0
  562. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/easycert.py +0 -0
  563. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/enroll.py +0 -0
  564. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/mirror.py +0 -0
  565. {synapse-2.219.0/synapse/tools/axon → synapse-2.221.0/synapse/tools/aha/provision}/__init__.py +0 -0
  566. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/provision/user.py +0 -0
  567. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/apikey.py +0 -0
  568. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/autodoc.py +0 -0
  569. {synapse-2.219.0/synapse/tools/cortex → synapse-2.221.0/synapse/tools/axon}/__init__.py +0 -0
  570. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/axon/dump.py +0 -0
  571. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/axon/load.py +0 -0
  572. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/axon2axon.py +0 -0
  573. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/backup.py +0 -0
  574. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cellauth.py +0 -0
  575. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/changelog.py +0 -0
  576. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cmdr.py +0 -0
  577. {synapse-2.219.0/synapse/tools/cortex/layer → synapse-2.221.0/synapse/tools/cortex}/__init__.py +0 -0
  578. {synapse-2.219.0/synapse/tools/cryo → synapse-2.221.0/synapse/tools/cortex/layer}/__init__.py +0 -0
  579. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cortex/layer/dump.py +0 -0
  580. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cortex/layer/load.py +0 -0
  581. {synapse-2.219.0/synapse/tools/docker → synapse-2.221.0/synapse/tools/cryo}/__init__.py +0 -0
  582. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cryo/cat.py +0 -0
  583. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cryo/list.py +0 -0
  584. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/csvtool.py +0 -0
  585. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/demote.py +0 -0
  586. {synapse-2.219.0/synapse/tools/hive → synapse-2.221.0/synapse/tools/docker}/__init__.py +0 -0
  587. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/docker/validate.py +0 -0
  588. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/easycert.py +0 -0
  589. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/feed.py +0 -0
  590. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/genpkg.py +0 -0
  591. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/guid.py +0 -0
  592. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/healthcheck.py +0 -0
  593. {synapse-2.219.0/synapse/utils → synapse-2.221.0/synapse/tools/hive}/__init__.py +0 -0
  594. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/hive/load.py +0 -0
  595. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/hive/save.py +0 -0
  596. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/json2mpk.py +0 -0
  597. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/livebackup.py +0 -0
  598. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/modrole.py +0 -0
  599. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/moduser.py +0 -0
  600. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/pkgs/gendocs.py +0 -0
  601. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/pkgs/pandoc_filter.py +0 -0
  602. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/promote.py +0 -0
  603. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/pullfile.py +0 -0
  604. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/pushfile.py +0 -0
  605. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/reload.py +0 -0
  606. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/rstorm.py +0 -0
  607. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/shutdown.py +0 -0
  608. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/snapshot.py +0 -0
  609. {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/storm.py +0 -0
  610. {synapse-2.219.0/synapse/vendor → synapse-2.221.0/synapse/utils}/__init__.py +0 -0
  611. {synapse-2.219.0 → synapse-2.221.0}/synapse/utils/getrefs.py +0 -0
  612. {synapse-2.219.0 → synapse-2.221.0}/synapse/utils/stormcov/__init__.py +0 -0
  613. {synapse-2.219.0/synapse/vendor/cashaddress/tests → synapse-2.221.0/synapse/vendor}/__init__.py +0 -0
  614. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  615. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  616. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/base58.py +0 -0
  617. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/convert.py +0 -0
  618. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  619. {synapse-2.219.0/synapse/vendor/cpython → synapse-2.221.0/synapse/vendor/cashaddress/tests}/__init__.py +0 -0
  620. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  621. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/LICENSE +0 -0
  622. {synapse-2.219.0/synapse/vendor/cpython/lib → synapse-2.221.0/synapse/vendor/cpython}/__init__.py +0 -0
  623. {synapse-2.219.0/synapse/vendor/cpython/lib/email → synapse-2.221.0/synapse/vendor/cpython/lib}/__init__.py +0 -0
  624. {synapse-2.219.0/synapse/vendor/cpython/lib/http → synapse-2.221.0/synapse/vendor/cpython/lib/email}/__init__.py +0 -0
  625. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
  626. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
  627. {synapse-2.219.0/synapse/vendor/cpython/lib/test → synapse-2.221.0/synapse/vendor/cpython/lib/http}/__init__.py +0 -0
  628. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/http/cookies.py +0 -0
  629. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
  630. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/json.py +0 -0
  631. {synapse-2.219.0/synapse/vendor/cpython/lib/test/test_email → synapse-2.221.0/synapse/vendor/cpython/lib/test}/__init__.py +0 -0
  632. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
  633. {synapse-2.219.0/synapse/vendor/substrateinterface/tests → synapse-2.221.0/synapse/vendor/cpython/lib/test/test_email}/__init__.py +0 -0
  634. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
  635. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
  636. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/test_http_cookies.py +0 -0
  637. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
  638. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
  639. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  640. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  641. {synapse-2.219.0/synapse/vendor/xrpl → synapse-2.221.0/synapse/vendor/substrateinterface}/tests/__init__.py +0 -0
  642. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  643. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  644. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  645. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/utils.py +0 -0
  646. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/LICENSE +0 -0
  647. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/__init__.py +0 -0
  648. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/constants.py +0 -0
  649. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  650. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  651. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  652. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  653. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  654. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  655. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  656. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  657. {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  658. {synapse-2.219.0 → synapse-2.221.0}/synapse.egg-info/dependency_links.txt +0 -0
  659. {synapse-2.219.0 → synapse-2.221.0}/synapse.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse
3
- Version: 2.219.0
3
+ Version: 2.221.0
4
4
  Summary: Synapse Intelligence Analysis Framework
5
5
  Author-email: The Vertex Project LLC <root@vertex.link>
6
6
  License-Expression: Apache-2.0
@@ -28,7 +28,6 @@ Requires-Dist: regex>=2022.9.11
28
28
  Requires-Dist: PyYAML<6.1.0,>=5.4
29
29
  Requires-Dist: aiohttp<4.0,>=3.10.0
30
30
  Requires-Dist: aiohttp-socks<0.11.0,>=0.9.0
31
- Requires-Dist: aioimaplib<1.2.0,>=1.1.0
32
31
  Requires-Dist: aiosmtplib<3.1.0,>=3.0.0
33
32
  Requires-Dist: prompt_toolkit<3.1.0,>=3.0.29
34
33
  Requires-Dist: lark==1.2.2
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'synapse'
7
- version = '2.219.0'
7
+ version = '2.221.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -32,7 +32,6 @@ dependencies = [
32
32
  'PyYAML>=5.4,<6.1.0',
33
33
  'aiohttp>=3.10.0,<4.0',
34
34
  'aiohttp-socks>=0.9.0,<0.11.0',
35
- 'aioimaplib>=1.1.0,<1.2.0',
36
35
  'aiosmtplib>=3.0.0,<3.1.0',
37
36
  'prompt_toolkit>=3.0.29,<3.1.0',
38
37
  'lark==1.2.2',
@@ -86,9 +85,9 @@ include-package-data = true
86
85
  'synapse' = [
87
86
  'data/*.mpk',
88
87
  'data/certs/**',
88
+ 'data/lark/*.lark',
89
89
  'data/attack-flow/**',
90
90
  'data/jsonschemas/**',
91
- 'lib/storm.lark',
92
91
  'tests/files/**',
93
92
  'vendor/*/LICENSE'
94
93
  ]
@@ -29,5 +29,9 @@ def getJSON(name):
29
29
  with s_datfile.openDatFile(f'synapse.data/{name}.json') as fd:
30
30
  return s_json.load(fd)
31
31
 
32
+ def getLark(name):
33
+ with s_datfile.openDatFile(f'synapse.data.lark/{name}.lark') as larkf:
34
+ return larkf.read().decode()
35
+
32
36
  def path(*names):
33
37
  return s_common.genpath(dirname, *names)
@@ -0,0 +1,8 @@
1
+ UNQUOTED_CHAR: /(?!\r|\n|\\"|\\\\)./
2
+ QUOTED_SPECIALS: "\"" | "\\"
3
+
4
+ QUOTED_CHAR: /(?!\r|\n|\\|\")./
5
+ quoted: "\"" (QUOTED_CHAR | "\\" QUOTED_SPECIALS)* "\""
6
+ unquoted: UNQUOTED_CHAR+
7
+ _string: quoted | unquoted
8
+ input: (_string " ")* _string
@@ -216,6 +216,8 @@ class DupEdgeType(SynErr):
216
216
 
217
217
  class FileExists(SynErr): pass
218
218
 
219
+ class ImapError(SynErr): pass
220
+
219
221
  class InconsistentStorage(SynErr):
220
222
  '''
221
223
  Stored persistent data is inconsistent
@@ -88,12 +88,13 @@ def _dumps(obj, sort_keys=False, indent=False, default=None, newline=False):
88
88
  mesg = 'Object of type bytes is not JSON serializable'
89
89
  raise s_exc.MustBeJsonSafe(mesg=mesg)
90
90
 
91
- # Raw strings have to be double-quoted. This is because the default behavior for `yyjson.Document`
92
- # is to attempt to parse the string as a serialized JSON string into objects, so we escape string
93
- # values so we can get the JSON encoded string as output.
94
91
  if isinstance(obj, str) and obj not in ('null', 'true', 'false'):
95
- # TODO in 3xx convert this into obj = f'''"{obj.replace('"', '\\"')}"'''
96
- obj = ''.join(('"', obj.replace('"', '\\"'), '"'))
92
+ # Raw strings have to be double-quoted. This is because the default behavior for `yyjson.Document` is to attempt
93
+ # to parse the string as a serialized JSON string into objects. Instead of trying to manually escape the string,
94
+ # we wrap it in a list, serialize it, and then strip off the leading/trailing [] so we can get the JSON encoded
95
+ # string as output.
96
+ doc = yyjson.Document([obj], default=default, flags=rflags)
97
+ return doc.dumps(flags=wflags)[1:-1].encode()
97
98
 
98
99
  doc = yyjson.Document(obj, default=default, flags=rflags)
99
100
  return doc.dumps(flags=wflags).encode()
@@ -3352,6 +3352,98 @@ class Layer(s_nexus.Pusher):
3352
3352
  _, changes = await self.saveNodeEdits(nodeedits, meta)
3353
3353
  return bool(changes[0][2])
3354
3354
 
3355
+ async def delStorNode(self, buid, meta):
3356
+ '''
3357
+ Delete all node information in this layer.
3358
+
3359
+ Deletes props, tagprops, tags, n1edges, n2edges, nodedata, and node valu.
3360
+ '''
3361
+ sode = self._getStorNode(buid)
3362
+ if sode is None:
3363
+ return False
3364
+
3365
+ formname = sode.get('form')
3366
+
3367
+ edits = []
3368
+ nodeedits = []
3369
+
3370
+ for propname, propvalu in sode.get('props', {}).items():
3371
+ edits.append(
3372
+ (EDIT_PROP_DEL, (propname, *propvalu), ())
3373
+ )
3374
+
3375
+ for tagname, tprops in sode.get('tagprops', {}).items():
3376
+ for propname, propvalu in tprops.items():
3377
+ edits.append(
3378
+ (EDIT_TAGPROP_DEL, (tagname, propname, *propvalu), ())
3379
+ )
3380
+
3381
+ for tagname, tagvalu in sode.get('tags', {}).items():
3382
+ edits.append(
3383
+ (EDIT_TAG_DEL, (tagname, tagvalu), ())
3384
+ )
3385
+
3386
+ # EDIT_NODE_DEL will delete all nodedata and n1 edges if there is a valu in the sode
3387
+ if (valu := sode.get('valu')):
3388
+ edits.append(
3389
+ (EDIT_NODE_DEL, valu, ())
3390
+ )
3391
+ else:
3392
+ async for item in self.iterNodeData(buid):
3393
+ edits.append(
3394
+ (EDIT_NODEDATA_DEL, item, ())
3395
+ )
3396
+ await asyncio.sleep(0)
3397
+
3398
+ async for edge in self.iterNodeEdgesN1(buid):
3399
+ edits.append(
3400
+ (EDIT_EDGE_DEL, edge, ())
3401
+ )
3402
+ await asyncio.sleep(0)
3403
+
3404
+ nodeedits.append((buid, formname, edits))
3405
+
3406
+ n2edges = {}
3407
+ n1iden = s_common.ehex(buid)
3408
+ async for verb, n2iden in self.iterNodeEdgesN2(buid):
3409
+ n2edges.setdefault(n2iden, []).append((verb, n1iden))
3410
+ await asyncio.sleep(0)
3411
+
3412
+ n2forms = {}
3413
+ @s_cache.memoize()
3414
+ def getN2Form(n2iden):
3415
+ buid = s_common.uhex(n2iden)
3416
+ if (form := n2forms.get(buid)) is not None: # pragma: no cover
3417
+ return form
3418
+
3419
+ n2sode = self._getStorNode(buid)
3420
+ form = n2sode.get('form')
3421
+ n2forms[buid] = form
3422
+ return form
3423
+
3424
+ changed = False
3425
+
3426
+ async def batchEdits(size=1000):
3427
+ if len(nodeedits) < size:
3428
+ return changed
3429
+
3430
+ _, changes = await self.saveNodeEdits(nodeedits, meta)
3431
+
3432
+ nodeedits.clear()
3433
+
3434
+ if changed: # pragma: no cover
3435
+ return changed
3436
+
3437
+ return bool(changes[0][2])
3438
+
3439
+ for n2iden, edges in n2edges.items():
3440
+ edits = [(EDIT_EDGE_DEL, edge, ()) for edge in edges]
3441
+ nodeedits.append((s_common.uhex(n2iden), getN2Form(n2iden), edits))
3442
+
3443
+ changed = await batchEdits()
3444
+
3445
+ return await batchEdits(size=1)
3446
+
3355
3447
  async def delStorNodeProp(self, buid, prop, meta):
3356
3448
  pprop = self.core.model.reqProp(prop)
3357
3449
 
@@ -3365,6 +3457,48 @@ class Layer(s_nexus.Pusher):
3365
3457
  _, changes = await self.saveNodeEdits(nodeedits, meta)
3366
3458
  return bool(changes[0][2])
3367
3459
 
3460
+ async def delNodeData(self, buid, meta, name=None):
3461
+ '''
3462
+ Delete nodedata from a node in this layer. If name is not specified, delete all nodedata.
3463
+ '''
3464
+ sode = self._getStorNode(buid)
3465
+ if sode is None: # pragma: no cover
3466
+ return False
3467
+
3468
+ edits = []
3469
+ if name is None:
3470
+ async for item in self.iterNodeData(buid):
3471
+ edits.append((EDIT_NODEDATA_DEL, item, ()))
3472
+ await asyncio.sleep(0)
3473
+
3474
+ elif await self.hasNodeData(buid, name):
3475
+ edits.append((EDIT_NODEDATA_DEL, (name, None), ()))
3476
+
3477
+ if not edits:
3478
+ return False
3479
+
3480
+ nodeedits = [(buid, sode.get('form'), edits)]
3481
+
3482
+ _, changes = await self.saveNodeEdits(nodeedits, meta)
3483
+ return bool(changes[0][2])
3484
+
3485
+ async def delEdge(self, n1buid, verb, n2buid, meta):
3486
+ sode = self._getStorNode(n1buid)
3487
+ if sode is None: # pragma: no cover
3488
+ return False
3489
+
3490
+ if not await self.hasNodeEdge(n1buid, verb, n2buid): # pragma: no cover
3491
+ return False
3492
+
3493
+ edits = [
3494
+ (EDIT_EDGE_DEL, (verb, s_common.ehex(n2buid)), ())
3495
+ ]
3496
+
3497
+ nodeedits = [(n1buid, sode.get('form'), edits)]
3498
+
3499
+ _, changes = await self.saveNodeEdits(nodeedits, meta)
3500
+ return bool(changes[0][2])
3501
+
3368
3502
  async def storNodeEdits(self, nodeedits, meta):
3369
3503
 
3370
3504
  saveoff, results = await self.saveNodeEdits(nodeedits, meta)
@@ -18,34 +18,6 @@ import synapse.lib.msgpack as s_msgpack
18
18
  READSIZE = 16 * s_const.mebibyte
19
19
  MAXWRITE = 64 * s_const.mebibyte
20
20
 
21
- async def connect(host, port, ssl=None, hostname=None, linkinfo=None):
22
- '''
23
- Async connect and return a Link().
24
- '''
25
- info = {'host': host, 'port': port, 'ssl': ssl, 'hostname': hostname, 'tls': bool(ssl)}
26
- if linkinfo is not None:
27
- info.update(linkinfo)
28
-
29
- ssl = info.get('ssl')
30
- hostname = info.get('hostname')
31
-
32
- reader, writer = await asyncio.open_connection(host, port, ssl=ssl, server_hostname=hostname)
33
- return await Link.anit(reader, writer, info=info)
34
-
35
- async def listen(host, port, onlink, ssl=None):
36
- '''
37
- Listen on the given host/port and fire onlink(Link).
38
-
39
- Returns a server object that contains the listening sockets
40
- '''
41
- async def onconn(reader, writer):
42
- info = {'tls': bool(ssl)}
43
- link = await Link.anit(reader, writer, info=info)
44
- link.schedCoro(onlink(link))
45
-
46
- server = await asyncio.start_server(onconn, host=host, port=port, ssl=ssl)
47
- return server
48
-
49
21
  async def unixlisten(path, onlink):
50
22
  '''
51
23
  Start an PF_UNIX server listening on the given path.
@@ -247,30 +219,9 @@ class Link(s_base.Base):
247
219
  offs = 0
248
220
  size = len(byts)
249
221
 
250
- async with self._txlock:
251
-
252
- while offs < size:
253
-
254
- self.writer.write(byts[offs:offs + MAXWRITE])
255
- offs += MAXWRITE
256
-
257
- await self.writer.drain()
258
-
259
- async def tx(self, mesg):
260
- '''
261
- Async transmit routine which will wait for writer drain().
262
- '''
263
- if self.isfini:
264
- raise s_exc.IsFini()
265
-
266
- offs = 0
267
- byts = s_msgpack.en(mesg)
268
- size = len(byts)
269
-
270
222
  async with self._txlock:
271
223
 
272
224
  try:
273
-
274
225
  while offs < size:
275
226
 
276
227
  self.writer.write(byts[offs:offs + MAXWRITE])
@@ -287,6 +238,16 @@ class Link(s_base.Base):
287
238
 
288
239
  raise
289
240
 
241
+ async def tx(self, mesg):
242
+ '''
243
+ Async transmit routine which will wait for writer drain().
244
+ '''
245
+ if self.isfini:
246
+ raise s_exc.IsFini()
247
+
248
+ byts = await self.pack(mesg)
249
+ await self.send(byts)
250
+
290
251
  def txfini(self):
291
252
  self.sock.shutdown(1)
292
253
 
@@ -353,6 +314,44 @@ class Link(s_base.Base):
353
314
 
354
315
  def feed(self, byts):
355
316
  '''
356
- Used by Plex() to unpack bytes.
317
+ Used by rx() to unpack messages from bytes.
357
318
  '''
358
319
  return self.unpk.feed(byts)
320
+
321
+ async def pack(self, mesg):
322
+ '''
323
+ Used by tx() to pack messages into bytes
324
+ '''
325
+ return s_msgpack.en(mesg)
326
+
327
+ async def connect(host, port, ssl=None, hostname=None, linkinfo=None, linkcls=Link):
328
+ '''
329
+ Async connect and return a <linkcls>.
330
+ '''
331
+ assert issubclass(linkcls, Link)
332
+
333
+ info = {'host': host, 'port': port, 'ssl': ssl, 'hostname': hostname, 'tls': bool(ssl)}
334
+ if linkinfo is not None:
335
+ info.update(linkinfo)
336
+
337
+ ssl = info.get('ssl')
338
+ hostname = info.get('hostname')
339
+
340
+ reader, writer = await asyncio.open_connection(host, port, ssl=ssl, server_hostname=hostname)
341
+ return await linkcls.anit(reader, writer, info=info)
342
+
343
+ async def listen(host, port, onlink, ssl=None, linkcls=Link):
344
+ '''
345
+ Listen on the given host/port and fire onlink(<linkcls>).
346
+
347
+ Returns a server object that contains the listening sockets
348
+ '''
349
+ assert issubclass(linkcls, Link)
350
+
351
+ async def onconn(reader, writer):
352
+ info = {'tls': bool(ssl)}
353
+ link = await linkcls.anit(reader, writer, info=info)
354
+ link.schedCoro(onlink(link))
355
+
356
+ server = await asyncio.start_server(onconn, host=host, port=port, ssl=ssl)
357
+ return server
@@ -6,16 +6,16 @@ import lark # type: ignore
6
6
  import regex # type: ignore
7
7
 
8
8
  import synapse.exc as s_exc
9
+ import synapse.data as s_data
9
10
  import synapse.common as s_common
10
11
 
11
12
  import synapse.lib.ast as s_ast
12
13
  import synapse.lib.coro as s_coro
13
14
  import synapse.lib.cache as s_cache
14
- import synapse.lib.datfile as s_datfile
15
15
 
16
16
  # TL;DR: *rules* are the internal nodes of an abstract syntax tree (AST), *terminals* are the leaves
17
17
 
18
- # Note: this file is coupled strongly to synapse/lib/storm.lark. Any changes to that file will probably require
18
+ # Note: this file is coupled strongly to synapse/data/lark/storm.lark. Any changes to that file will probably require
19
19
  # changes here
20
20
 
21
21
  # For easier-to-understand syntax errors
@@ -475,9 +475,7 @@ class AstConverter(lark.Transformer):
475
475
  kids[0].reverseLift(astinfo)
476
476
  return kids[0]
477
477
 
478
- with s_datfile.openDatFile('synapse.lib/storm.lark') as larkf:
479
- _grammar = larkf.read().decode()
480
-
478
+ _grammar = s_data.getLark('storm')
481
479
  LarkParser = lark.Lark(_grammar, regex=True, start=['query', 'lookup', 'cmdrargs', 'evalvalu', 'search'],
482
480
  maybe_placeholders=False, propagate_positions=True, parser='lalr')
483
481
 
@@ -1,8 +1,12 @@
1
1
  import os
2
+ import sys
2
3
  import copy
4
+ import shlex
3
5
  import pprint
4
6
  import logging
7
+ import argparse
5
8
  import contextlib
9
+ import subprocess
6
10
  import collections
7
11
 
8
12
  import vcr
@@ -25,7 +29,7 @@ import synapse.tools.storm as s_storm
25
29
  import synapse.tools.genpkg as s_genpkg
26
30
 
27
31
 
28
- re_directive = regex.compile(r'^\.\.\s(storm.*|[^:])::(?:\s(.*)$|$)')
32
+ re_directive = regex.compile(r'^\.\.\s(shell.*|storm.*|[^:])::(?:\s(.*)$|$)')
29
33
 
30
34
  logger = logging.getLogger(__name__)
31
35
 
@@ -48,7 +52,6 @@ class OutPutRst(s_output.OutPutStr):
48
52
 
49
53
  return s_output.OutPutStr.printf(self, mesg, addnl)
50
54
 
51
-
52
55
  class StormOutput(s_cmds_cortex.StormCmd):
53
56
  '''
54
57
  Produce standard output from a stream of storm runtime messages.
@@ -329,6 +332,8 @@ class StormRst(s_base.Base):
329
332
  self.core = None
330
333
 
331
334
  self.handlers = {
335
+ 'shell': self._handleShell,
336
+ 'shell-env': self._handleShellEnv,
332
337
  'storm': self._handleStorm,
333
338
  'storm-cli': self._handleStormCli,
334
339
  'storm-pkg': self._handleStormPkg,
@@ -596,6 +601,64 @@ class StormRst(s_base.Base):
596
601
  raise s_exc.NoSuchCtor(mesg=f'Failed to get callback "{text}"', ctor=text)
597
602
  self.context['storm-vcr-callback'] = cb
598
603
 
604
+ async def _handleShell(self, text):
605
+ '''
606
+ Execute shell with the supplied arguments.
607
+ '''
608
+ parser = argparse.ArgumentParser(add_help=False)
609
+ parser.add_argument('--include-stderr', action='store_true', help='Include stderr in output.')
610
+ parser.add_argument('--hide-query', action='store_true', help='Do not include the command in the output.')
611
+ parser.add_argument('--fail-ok', action='store_true', help='Non-zero return values are non-fatal.')
612
+ opts, args = parser.parse_known_args(shlex.split(text))
613
+
614
+ # Remove any command line arguments
615
+ query = text
616
+ query = query.replace('--include-stderr', '')
617
+ query = query.replace('--hide-query', '')
618
+ query = query.replace('--fail-ok', '')
619
+ query = query.strip()
620
+
621
+ env = self.context.get('shell-env')
622
+
623
+ stderr = None
624
+ if opts.include_stderr:
625
+ stderr = subprocess.STDOUT
626
+
627
+ proc = subprocess.run(args, stdout=subprocess.PIPE, stderr=stderr, env=env, text=True)
628
+ if proc.returncode != 0 and not opts.fail_ok:
629
+ mesg = f'Error when executing shell directive: {text} (rv: {proc.returncode})'
630
+ raise s_exc.SynErr(mesg=mesg)
631
+
632
+ self._printf('::\n\n')
633
+
634
+ if not opts.hide_query:
635
+ self._printf(f' {query}\n\n')
636
+
637
+ for line in proc.stdout.splitlines():
638
+ self._printf(f' {line}\n')
639
+
640
+ self._printf('\n\n')
641
+
642
+ async def _handleShellEnv(self, text):
643
+ '''
644
+ Env to use in subsequent shell queries.
645
+
646
+ Args:
647
+ text (str): [KEY=VALUE ...]
648
+ Note: No arguments will reset the shell environment.
649
+ '''
650
+ text = text.strip()
651
+ if not text:
652
+ return self.context.pop('shell-env')
653
+
654
+ env = {}
655
+
656
+ for item in text.split(' '):
657
+ key, val = item.split('=')
658
+ env[key] = val
659
+
660
+ self.context['shell-env'] = env
661
+
599
662
  async def _readline(self, line):
600
663
 
601
664
  match = re_directive.match(line)
@@ -1123,22 +1123,30 @@ class Snap(s_base.Base):
1123
1123
  mesg = f'No property named "{full}".'
1124
1124
  raise s_exc.NoSuchProp(mesg=mesg)
1125
1125
 
1126
- if isinstance(valu, dict) and isinstance(prop.type, s_types.Guid) and cmpr == '=':
1127
- if prop.isform:
1128
- if (node := await self._getGuidNodeByDict(prop, valu)) is not None:
1129
- yield node
1130
- return
1126
+ if isinstance(valu, dict) and isinstance(prop.type, s_types.Guid) and cmpr in ('=', '?='):
1127
+ excignore = ()
1128
+ if cmpr == '?=':
1129
+ excignore = (s_exc.BadTypeValu,)
1131
1130
 
1132
- fname = prop.type.name
1133
- if (form := prop.modl.form(fname)) is None:
1134
- mesg = f'The property "{full}" type "{fname}" is not a form and cannot be lifted using a dictionary.'
1135
- raise s_exc.BadTypeValu(mesg=mesg)
1131
+ try:
1132
+ if prop.isform:
1133
+ if (node := await self._getGuidNodeByDict(prop, valu)) is not None:
1134
+ yield node
1135
+ return
1136
1136
 
1137
- if (node := await self._getGuidNodeByDict(form, valu)) is None:
1138
- return
1137
+ fname = prop.type.name
1138
+ if (form := prop.modl.form(fname)) is None:
1139
+ mesg = f'The property "{full}" type "{fname}" is not a form and cannot be lifted using a dictionary.'
1140
+ raise s_exc.BadTypeValu(mesg=mesg)
1139
1141
 
1140
- norm = False
1141
- valu = node.ndef[1]
1142
+ if (node := await self._getGuidNodeByDict(form, valu)) is None:
1143
+ return
1144
+
1145
+ norm = False
1146
+ valu = node.ndef[1]
1147
+
1148
+ except excignore:
1149
+ return
1142
1150
 
1143
1151
  if norm:
1144
1152
  cmprvals = prop.type.getStorCmprs(cmpr, valu)
@@ -5796,6 +5796,7 @@ class IntersectCmd(Cmd):
5796
5796
  it:mitre:attack:group*in=(G0006, G0007) | intersect { -> it:mitre:attack:technique }
5797
5797
  '''
5798
5798
  name = 'intersect'
5799
+ readonly = True
5799
5800
 
5800
5801
  def getArgParser(self):
5801
5802
  pars = Cmd.getArgParser(self)
@@ -90,7 +90,7 @@ class LibHttp(s_stormtypes.Lib):
90
90
  For APIs that accept an ssl_opts argument, the dictionary may contain the following values::
91
91
 
92
92
  ({
93
- 'verify': <bool> - Perform SSL/TLS verification. Is overridden by the ssl_verify argument.
93
+ 'verify': <boolean> - Perform SSL/TLS verification. Is overridden by the ssl_verify argument.
94
94
  'client_cert': <str> - PEM encoded full chain certificate for use in mTLS.
95
95
  'client_key': <str> - PEM encoded key for use in mTLS. Alternatively, can be included in client_cert.
96
96
  'ca_cert': <str> - A PEM encoded full chain CA certificate for use when verifying the request.
@@ -116,9 +116,9 @@ class LibHttp(s_stormtypes.Lib):
116
116
  'default': None},
117
117
  {'name': 'timeout', 'type': 'int', 'desc': 'Total timeout for the request in seconds.',
118
118
  'default': 300},
119
- {'name': 'allow_redirects', 'type': 'bool', 'desc': 'If set to false, do not follow redirects.',
119
+ {'name': 'allow_redirects', 'type': 'boolean', 'desc': 'If set to false, do not follow redirects.',
120
120
  'default': True},
121
- {'name': 'proxy', 'type': ['bool', 'str'],
121
+ {'name': 'proxy', 'type': ['boolean', 'str'],
122
122
  'desc': 'Configure proxy usage. See $lib.inet.http help for additional details.', 'default': True},
123
123
  {'name': 'ssl_opts', 'type': 'dict',
124
124
  'desc': 'Optional SSL/TLS options. See $lib.inet.http help for additional details.',
@@ -141,7 +141,7 @@ class LibHttp(s_stormtypes.Lib):
141
141
  'default': None},
142
142
  {'name': 'timeout', 'type': 'int', 'desc': 'Total timeout for the request in seconds.',
143
143
  'default': 300},
144
- {'name': 'allow_redirects', 'type': 'bool', 'desc': 'If set to false, do not follow redirects.',
144
+ {'name': 'allow_redirects', 'type': 'boolean', 'desc': 'If set to false, do not follow redirects.',
145
145
  'default': True},
146
146
  {'name': 'fields', 'type': 'list',
147
147
  'desc': 'A list of info dictionaries containing the name, value or sha256, '
@@ -150,7 +150,7 @@ class LibHttp(s_stormtypes.Lib):
150
150
  'and the corresponding file will be uploaded as the value for '
151
151
  'the field.',
152
152
  'default': None},
153
- {'name': 'proxy', 'type': ['bool', 'str'],
153
+ {'name': 'proxy', 'type': ['boolean', 'str'],
154
154
  'desc': 'Configure proxy usage. See $lib.inet.http help for additional details.', 'default': True},
155
155
  {'name': 'ssl_opts', 'type': 'dict',
156
156
  'desc': 'Optional SSL/TLS options. See $lib.inet.http help for additional details.',
@@ -170,9 +170,9 @@ class LibHttp(s_stormtypes.Lib):
170
170
  'default': None},
171
171
  {'name': 'timeout', 'type': 'int', 'desc': 'Total timeout for the request in seconds.',
172
172
  'default': 300, },
173
- {'name': 'allow_redirects', 'type': 'bool', 'desc': 'If set to true, follow redirects.',
173
+ {'name': 'allow_redirects', 'type': 'boolean', 'desc': 'If set to true, follow redirects.',
174
174
  'default': False},
175
- {'name': 'proxy', 'type': ['bool', 'str'],
175
+ {'name': 'proxy', 'type': ['boolean', 'str'],
176
176
  'desc': 'Configure proxy usage. See $lib.inet.http help for additional details.', 'default': True},
177
177
  {'name': 'ssl_opts', 'type': 'dict',
178
178
  'desc': 'Optional SSL/TLS options. See $lib.inet.http help for additional details.',
@@ -196,7 +196,7 @@ class LibHttp(s_stormtypes.Lib):
196
196
  'default': None},
197
197
  {'name': 'timeout', 'type': 'int', 'desc': 'Total timeout for the request in seconds.',
198
198
  'default': 300},
199
- {'name': 'allow_redirects', 'type': 'bool', 'desc': 'If set to false, do not follow redirects.',
199
+ {'name': 'allow_redirects', 'type': 'boolean', 'desc': 'If set to false, do not follow redirects.',
200
200
  'default': True},
201
201
  {'name': 'fields', 'type': 'list',
202
202
  'desc': 'A list of info dictionaries containing the name, value or sha256, '
@@ -205,7 +205,7 @@ class LibHttp(s_stormtypes.Lib):
205
205
  'and the corresponding file will be uploaded as the value for '
206
206
  'the field.',
207
207
  'default': None},
208
- {'name': 'proxy', 'type': ['bool', 'str'],
208
+ {'name': 'proxy', 'type': ['boolean', 'str'],
209
209
  'desc': 'Configure proxy usage. See $lib.inet.http help for additional details.', 'default': True},
210
210
  {'name': 'ssl_opts', 'type': 'dict',
211
211
  'desc': 'Optional SSL/TLS options. See $lib.inet.http help for additional details.',
@@ -226,7 +226,7 @@ class LibHttp(s_stormtypes.Lib):
226
226
  'default': 300},
227
227
  {'name': 'params', 'type': 'dict', 'desc': 'Optional parameters which may be passed to the connection request.',
228
228
  'default': None},
229
- {'name': 'proxy', 'type': ['bool', 'str'],
229
+ {'name': 'proxy', 'type': ['boolean', 'str'],
230
230
  'desc': 'Configure proxy usage. See $lib.inet.http help for additional details.', 'default': True},
231
231
  {'name': 'ssl_opts', 'type': 'dict',
232
232
  'desc': 'Optional SSL/TLS options. See $lib.inet.http help for additional details.',
@@ -50,7 +50,7 @@ class AhaLib(s_stormtypes.Lib):
50
50
  'desc': 'The AHA service information dictionary, or ``(null))``.', }}},
51
51
  {'name': 'list', 'desc': 'Enumerate all of the AHA services.',
52
52
  'type': {'type': 'function', '_funcname': '_methAhaList', 'args': (),
53
- 'returns': {'name': 'Yields', 'type': 'list',
53
+ 'returns': {'name': 'yields', 'type': 'list',
54
54
  'desc': 'The AHA service dictionaries.', }}},
55
55
  {'name': 'callPeerApi', 'desc': '''Call an API on all peers (leader and mirrors) of an AHA service and yield the responses from each.
56
56
 
@@ -91,7 +91,7 @@ class AhaLib(s_stormtypes.Lib):
91
91
  '''},
92
92
  ),
93
93
  'returns': {'name': 'yields', 'type': 'list',
94
- 'desc': 'Yields the results of the API calls as tuples of (svcname, (ok, info)).', }}},
94
+ 'desc': 'Yields the results of the API calls as tuples of (svcname, (ok, info)).', }}},
95
95
  {'name': 'callPeerGenr', 'desc': '''Call a generator API on all peers (leader and mirrors) of an AHA service and yield the responses from each.
96
96
 
97
97
  Examples:
@@ -124,7 +124,7 @@ class AhaLib(s_stormtypes.Lib):
124
124
  '''},
125
125
  ),
126
126
  'returns': {'name': 'yields', 'type': 'list',
127
- 'desc': 'Yields the results of the API calls as tuples containing (svcname, (ok, info)).', }}}
127
+ 'desc': 'Yields the results of the API calls as tuples containing (svcname, (ok, info)).', }}}
128
128
 
129
129
  )
130
130
  _storm_lib_path = ('aha',)