synapse 3.3.0__tar.gz → 3.4.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.
- {synapse-3.3.0/synapse.egg-info → synapse-3.4.0}/PKG-INFO +1 -1
- {synapse-3.3.0 → synapse-3.4.0}/pyproject.toml +1 -1
- {synapse-3.3.0 → synapse-3.4.0}/synapse/cortex.py +17 -3
- {synapse-3.3.0 → synapse-3.4.0}/synapse/datamodel.py +38 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/cmd.py +3 -3
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/node.py +19 -2
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/parser.py +62 -2
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/pkg.py +228 -10
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/stix.py +4 -2
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormtypes.py +59 -3
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/version.py +2 -2
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/auth.py +19 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/infotech.py +4 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_cortex.py +102 -0
- synapse-3.4.0/synapse/tests/test_lib_cmd.py +75 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_grammar.py +64 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_pkg.py +255 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_stix.py +8 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormtypes.py +130 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_types.py +65 -0
- synapse-3.4.0/synapse/tests/test_model_auth.py +66 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_infotech.py +2 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_axon_copy.py +11 -1
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_cortex_csv.py +18 -1
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_service_healthcheck.py +16 -0
- synapse-3.4.0/synapse/tests/test_tools_utils_optimize.py +134 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/axon/copy.py +1 -5
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/cortex/csv.py +1 -4
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/healthcheck.py +1 -4
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/shutdown.py +1 -1
- synapse-3.4.0/synapse/tools/utils/optimize.py +181 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/utils/stormcov.py +6 -5
- {synapse-3.3.0 → synapse-3.4.0/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-3.3.0 → synapse-3.4.0}/synapse.egg-info/SOURCES.txt +3 -0
- synapse-3.3.0/synapse/tests/test_model_auth.py +0 -22
- {synapse-3.3.0 → synapse-3.4.0}/LICENSE +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/README.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/setup.cfg +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/assets/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/axon.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/cells.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/common.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/daemon.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA (2026).crt +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/certs/cas/The Vertex Project ROOT CA (2026).crt +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA (2026).crl +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/certs/crls/The Vertex Project ROOT CA (2026).crl +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/iana.uris.mpk +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/json-schema.org/draft-07/schema +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/lark/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/lark/imap.lark +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/lark/storm.lark +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/skills/storm/SKILL.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/data/v2modelmap.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/exc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/glob.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/_http.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/agenda.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/aha.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/ast.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/auth.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/autodoc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/base.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/boss.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/cache.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/cell.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/certdir.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/chop.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/cli.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/cluster.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/config.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/const.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/coro.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/crypto/jwk.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/crypto/utils.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/datfile.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/drive.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/editor.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/gis.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/grammar.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/hashitem.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/hashset.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/health.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/httpapi.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/httpclient.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/json.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/jsrpc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/layer.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/link.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/logging.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/mcp.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/mddocs.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/mdstorm.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/modelrev.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/msgpack.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/nexus.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/nodefuse.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/oauth.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/output.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/process.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/processpool.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/provision.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/queue.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/reflect.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/schemas.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/scope.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/scrape.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/share.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/spawner.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/spooled.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/storm.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/storm_format.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/bytes.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/cryptoutils.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/ecc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/file.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/index.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/jwt.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/model.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/quorum.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/rsa.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/tabular.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/task.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/utils.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/vertex.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/task.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/thishost.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/thisplat.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/threads.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/time.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/trigger.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/types.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lib/view.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lookup/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lookup/cvss.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lookup/iana.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lookup/macho.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lookup/pe.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/lookup/timezones.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/base.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/belief.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/biz.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/crypto.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/dns.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/doc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/economic.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/entity.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/files.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/geopol.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/geospace.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/gov.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/ind.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/inet.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/language.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/material.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/orgs.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/person.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/planning.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/proj.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/risk.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/science.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/syn.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/telco.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/models/transport.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/servers/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/servers/aha.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/servers/axon.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/servers/cell.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/servers/cortex.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/telepath.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/aha/certs/cas/synapse.crt.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/aha/certs/cas/synapse.key.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/aha/certs/users/root@synapse.crt.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/aha/certs/users/root@synapse.key.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/certdir/cas/ca.crt.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/certdir/cas/ca.key.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/certdir/hosts/localhost.crt.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/certdir/hosts/localhost.key.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/certdir/users/root.crt.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/certdir/users/root.key.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/certdir/users/user.crt.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/certdir/users/user.key.tinfoil +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/mdstorm/httprespmulti.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/mdstorm/testsvc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stix_import/scos.json +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/argvquery2.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/argvquery3.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/argvquery4.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/argvquery5.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/badstorm.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/continueloop.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/dupewarn.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/dupfunc.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/embedquery.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/embedquery2.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/embedquery3.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/embedquery4.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/embedquery5.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/emptybody.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/exprdict.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/forloop.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/ifelif.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/ifelse.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/runtsafety.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/stopreturn.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/switch.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/switchnodefault.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/trycatch.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/whilebackedge.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/whilecontinue.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/whileloop.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormcov/whilewithnode.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/badvaultskeys.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/badvaultsschema.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/declaredfiles.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/docs/index.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/dotstorm_noevents/dotstorm.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/files/data.dat +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/files/sub/nested.dat +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/storm/modules/apimod.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/storm/modules/testmod.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/test.dat +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/docs/index.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/docs/mocks/cassette.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/docs/stormpackage.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/docs/sub/image.svg +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/docs/sub/nested.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/docs/userguide.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs_no_h1/docs/index.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs_no_h1/docs/noh1.md +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/files/testpkg_build_docs_no_h1/testpkg.yaml +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/nopmod.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_assets.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_axon.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_common.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_data.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_datamodel.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_docs_stormref.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_exc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_glob.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_ast.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_auth.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_cell.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_cluster.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_crypto_jwk.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_crypto_rsa.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_drive.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_http.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_httpclient.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_json.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_jsrpc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_layer.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_logging.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_mcp.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_mddocs.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_mdstorm.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_process.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_processpool.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_provision.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_spawner.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_storm.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormctrl.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_ecc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_file.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_jwt.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_quorum.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_rsa.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_task.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_vertex.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_doc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_entity.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_gov.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_inet.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_risk.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_axon_dump_load.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_axon_get.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_axon_put.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_cortex_docmodel.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_cortex_feed.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_service_apikey.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_service_backup.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_service_demote.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_service_modrole.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_service_moduser.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_service_promote.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_service_reload.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_service_shutdown.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_service_snapshot.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_storm_cli.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_storm_pkg_doc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_storm_pkg_gen.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_storm_pkg_publish.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_storm_printer.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_storm_tester.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_storm_validate.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_utils_doc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_utils_docmanifest.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_utils_easycert.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_utils_guid.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_utils_json2mpk.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_tools_utils_mdstorm.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_utils.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tests/utils.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/aha/clone.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/aha/del.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/aha/list.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/aha/mirror.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/axon/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/axon/dump.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/axon/get.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/axon/load.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/axon/put.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/cortex/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/cortex/docmodel.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/cortex/feed.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/cortex/layer/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/cortex/layer/dump.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/cortex/layer/load.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/apikey.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/backup.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/demote.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/modrole.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/moduser.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/promote.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/reload.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/service/snapshot.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/storm/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/storm/__main__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/storm/_cli.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/storm/_printer.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/storm/pkg/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/storm/pkg/doc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/storm/pkg/gen.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/storm/pkg/publish.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/storm/tester.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/storm/validate.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/utils/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/utils/doc.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/utils/docmanifest.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/utils/easycert.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/utils/guid.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/utils/json2mpk.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/tools/utils/mdstorm.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/utils/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/utils/getrefs.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/LICENSE +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/json.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/test/test_email/test_parseaddr.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/utils.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse.egg-info/requires.txt +0 -0
- {synapse-3.3.0 → synapse-3.4.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -742,6 +742,7 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
|
|
|
742
742
|
self.viewsbylayer = collections.defaultdict(list)
|
|
743
743
|
|
|
744
744
|
self.stormcmds = {}
|
|
745
|
+
self._stormdocs = None
|
|
745
746
|
|
|
746
747
|
self.maxnodes = self.conf.get('max:nodes')
|
|
747
748
|
self.nodecount = 0
|
|
@@ -2103,9 +2104,11 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
|
|
|
2103
2104
|
|
|
2104
2105
|
name = cdef.get('name')
|
|
2105
2106
|
self.stormcmds[name] = ctor
|
|
2107
|
+
self._stormdocs = None
|
|
2106
2108
|
|
|
2107
2109
|
def _popStormCmd(self, name):
|
|
2108
2110
|
self.stormcmds.pop(name, None)
|
|
2111
|
+
self._stormdocs = None
|
|
2109
2112
|
|
|
2110
2113
|
async def delStormCmd(self, name):
|
|
2111
2114
|
'''
|
|
@@ -2135,6 +2138,7 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
|
|
|
2135
2138
|
if not self.readonly:
|
|
2136
2139
|
self.cmddefs.pop(name)
|
|
2137
2140
|
self.stormcmds.pop(name, None)
|
|
2141
|
+
self._stormdocs = None
|
|
2138
2142
|
|
|
2139
2143
|
async def addStormPkg(self, pkgdef, verify=False):
|
|
2140
2144
|
'''
|
|
@@ -2332,13 +2336,13 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
|
|
|
2332
2336
|
'''
|
|
2333
2337
|
Resolve a dependency/conflict name to a currently loaded package def.
|
|
2334
2338
|
|
|
2335
|
-
The reserved names in self.PKG_PROVIDES refer to
|
|
2336
|
-
|
|
2339
|
+
The reserved names in self.PKG_PROVIDES refer to self.VERSION rather than to a
|
|
2340
|
+
loaded Storm package.
|
|
2337
2341
|
'''
|
|
2338
2342
|
if pkgname in self.PKG_PROVIDES:
|
|
2339
2343
|
return {
|
|
2340
2344
|
'name': pkgname,
|
|
2341
|
-
'version':
|
|
2345
|
+
'version': self.VERSION
|
|
2342
2346
|
}
|
|
2343
2347
|
|
|
2344
2348
|
return await self.getStormPkg(pkgname)
|
|
@@ -5344,6 +5348,7 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
|
|
|
5344
5348
|
raise s_exc.BadCmdName(name=ctor.name)
|
|
5345
5349
|
|
|
5346
5350
|
self.stormcmds[ctor.name] = ctor
|
|
5351
|
+
self._stormdocs = None
|
|
5347
5352
|
|
|
5348
5353
|
async def addStormDmon(self, ddef):
|
|
5349
5354
|
'''
|
|
@@ -6116,10 +6121,18 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
|
|
|
6116
6121
|
'''
|
|
6117
6122
|
Get a struct containing the Storm Types documentation.
|
|
6118
6123
|
|
|
6124
|
+
Notes:
|
|
6125
|
+
The return value is a cached structure shared across callers and
|
|
6126
|
+
must not be mutated.
|
|
6127
|
+
|
|
6119
6128
|
Returns:
|
|
6120
6129
|
dict: A Dictionary of storm documentation information.
|
|
6121
6130
|
'''
|
|
6122
6131
|
|
|
6132
|
+
stormdocs = self._stormdocs
|
|
6133
|
+
if stormdocs is not None:
|
|
6134
|
+
return stormdocs
|
|
6135
|
+
|
|
6123
6136
|
cmds = []
|
|
6124
6137
|
|
|
6125
6138
|
for name, cmd in self.stormcmds.items():
|
|
@@ -6142,6 +6155,7 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
|
|
|
6142
6155
|
'commands': cmds,
|
|
6143
6156
|
# 'packages': ... # TODO - Support inline information for packages?
|
|
6144
6157
|
}
|
|
6158
|
+
self._stormdocs = ret
|
|
6145
6159
|
return ret
|
|
6146
6160
|
|
|
6147
6161
|
async def reqFeedDataAllowed(self, items, user, viewiden=None):
|
|
@@ -679,6 +679,8 @@ class Model:
|
|
|
679
679
|
self._lookup_hints = None
|
|
680
680
|
self._virts_by_type = None
|
|
681
681
|
|
|
682
|
+
self._modeldict = None
|
|
683
|
+
|
|
682
684
|
self._type_pends = collections.defaultdict(list)
|
|
683
685
|
self._modeldef = {
|
|
684
686
|
'types': [],
|
|
@@ -1210,6 +1212,20 @@ class Model:
|
|
|
1210
1212
|
return resolved
|
|
1211
1213
|
|
|
1212
1214
|
def getModelDict(self):
|
|
1215
|
+
'''
|
|
1216
|
+
Get a dictionary which describes the data model.
|
|
1217
|
+
|
|
1218
|
+
Notes:
|
|
1219
|
+
The return value is a cached structure shared across callers and
|
|
1220
|
+
must not be mutated.
|
|
1221
|
+
|
|
1222
|
+
Returns:
|
|
1223
|
+
dict: A dictionary representation of the data model.
|
|
1224
|
+
'''
|
|
1225
|
+
modeldict = self._modeldict
|
|
1226
|
+
if modeldict is not None:
|
|
1227
|
+
return modeldict
|
|
1228
|
+
|
|
1213
1229
|
retn = {
|
|
1214
1230
|
'metas': (
|
|
1215
1231
|
('created', ('time', {}), {
|
|
@@ -1240,6 +1256,7 @@ class Model:
|
|
|
1240
1256
|
for eobj in self.edges.values():
|
|
1241
1257
|
retn['edges'].append(eobj.pack())
|
|
1242
1258
|
|
|
1259
|
+
self._modeldict = retn
|
|
1243
1260
|
return retn
|
|
1244
1261
|
|
|
1245
1262
|
def convertPolyinfo(self, propdef):
|
|
@@ -1589,6 +1606,12 @@ class Model:
|
|
|
1589
1606
|
self.metatypes['created'] = self.getTypeClone(('time', {'ismin': True}))
|
|
1590
1607
|
self.metatypes['updated'] = self.getTypeClone(('time', {}))
|
|
1591
1608
|
|
|
1609
|
+
# addType()/addForm()/addEdge()/addTagProp()/addIface() above each
|
|
1610
|
+
# already clear the cache, but the ctor-based type pass above (which
|
|
1611
|
+
# writes self.types / self.ifacepolys directly) does not, so clear
|
|
1612
|
+
# once more to be certain.
|
|
1613
|
+
self._modeldict = None
|
|
1614
|
+
|
|
1592
1615
|
def _getFormsMaybeIface(self, name):
|
|
1593
1616
|
|
|
1594
1617
|
form = self.forms.get(name)
|
|
@@ -1636,6 +1659,8 @@ class Model:
|
|
|
1636
1659
|
for n2form in n2forms:
|
|
1637
1660
|
self._valid_edges[(n1form, verb, n2form)] = edge
|
|
1638
1661
|
|
|
1662
|
+
self._modeldict = None
|
|
1663
|
+
|
|
1639
1664
|
def delEdge(self, edgetype):
|
|
1640
1665
|
|
|
1641
1666
|
edge = self.edges.get(edgetype)
|
|
@@ -1662,6 +1687,8 @@ class Model:
|
|
|
1662
1687
|
for n2form in n2forms:
|
|
1663
1688
|
self._valid_edges.pop((n1form, verb, n2form), None)
|
|
1664
1689
|
|
|
1690
|
+
self._modeldict = None
|
|
1691
|
+
|
|
1665
1692
|
def _reqFormName(self, name):
|
|
1666
1693
|
form = self.forms.get(name)
|
|
1667
1694
|
if form is None:
|
|
@@ -1694,6 +1721,8 @@ class Model:
|
|
|
1694
1721
|
if not skipinit:
|
|
1695
1722
|
self._modeldef['types'].append(newtype.getTypeDef())
|
|
1696
1723
|
|
|
1724
|
+
self._modeldict = None
|
|
1725
|
+
|
|
1697
1726
|
def reqVirtTypes(self, virts):
|
|
1698
1727
|
|
|
1699
1728
|
for (name, tdef, info) in virts:
|
|
@@ -1819,6 +1848,7 @@ class Model:
|
|
|
1819
1848
|
self.pivchaincache.clear()
|
|
1820
1849
|
self._lookup_hints = None
|
|
1821
1850
|
self._virts_by_type = None
|
|
1851
|
+
self._modeldict = None
|
|
1822
1852
|
|
|
1823
1853
|
return form
|
|
1824
1854
|
|
|
@@ -1934,6 +1964,7 @@ class Model:
|
|
|
1934
1964
|
self.pivchaincache.clear()
|
|
1935
1965
|
self._lookup_hints = None
|
|
1936
1966
|
self._virts_by_type = None
|
|
1967
|
+
self._modeldict = None
|
|
1937
1968
|
|
|
1938
1969
|
if parentform:
|
|
1939
1970
|
self.childforms[parentform.name].remove(formname)
|
|
@@ -1947,6 +1978,7 @@ class Model:
|
|
|
1947
1978
|
raise s_exc.DupName(mesg=f'Interface name conflicts with existing interface: {name}')
|
|
1948
1979
|
|
|
1949
1980
|
self.ifaces[name] = info
|
|
1981
|
+
self._modeldict = None
|
|
1950
1982
|
|
|
1951
1983
|
def reqTypeNotInUse(self, typename):
|
|
1952
1984
|
if self.propsbytype.get(typename):
|
|
@@ -1978,6 +2010,7 @@ class Model:
|
|
|
1978
2010
|
self.propsbytype.pop(typename, None)
|
|
1979
2011
|
self.arraysbytype.pop(typename, None)
|
|
1980
2012
|
self.tagpropsbytype.pop(typename, None)
|
|
2013
|
+
self._modeldict = None
|
|
1981
2014
|
|
|
1982
2015
|
def addFormProp(self, formname, propname, tdef, info):
|
|
1983
2016
|
form = self.forms.get(formname)
|
|
@@ -2090,6 +2123,7 @@ class Model:
|
|
|
2090
2123
|
self.childpropcache.clear()
|
|
2091
2124
|
self.pivchaincache.clear()
|
|
2092
2125
|
self._lookup_hints = None
|
|
2126
|
+
self._modeldict = None
|
|
2093
2127
|
|
|
2094
2128
|
return prop
|
|
2095
2129
|
|
|
@@ -2238,6 +2272,7 @@ class Model:
|
|
|
2238
2272
|
def delTagProp(self, name):
|
|
2239
2273
|
if (prop := self.tagprops.pop(name, None)) is not None:
|
|
2240
2274
|
self.tagpropsbytype[prop.type.name].pop(name, None)
|
|
2275
|
+
self._modeldict = None
|
|
2241
2276
|
return prop
|
|
2242
2277
|
|
|
2243
2278
|
def addTagProp(self, name, tdef, info):
|
|
@@ -2252,6 +2287,8 @@ class Model:
|
|
|
2252
2287
|
f' be removed in 4.0.0'
|
|
2253
2288
|
logger.warning(mesg)
|
|
2254
2289
|
|
|
2290
|
+
self._modeldict = None
|
|
2291
|
+
|
|
2255
2292
|
return prop
|
|
2256
2293
|
|
|
2257
2294
|
def getTagProp(self, name):
|
|
@@ -2302,6 +2339,7 @@ class Model:
|
|
|
2302
2339
|
self.childpropcache.clear()
|
|
2303
2340
|
self.pivchaincache.clear()
|
|
2304
2341
|
self._lookup_hints = None
|
|
2342
|
+
self._modeldict = None
|
|
2305
2343
|
|
|
2306
2344
|
def type(self, name):
|
|
2307
2345
|
'''
|
|
@@ -36,7 +36,7 @@ class Parser(argparse.ArgumentParser):
|
|
|
36
36
|
if message is not None:
|
|
37
37
|
self.outp.printf(message)
|
|
38
38
|
|
|
39
|
-
raise s_exc.ParserExit(mesg=message,
|
|
39
|
+
raise s_exc.ParserExit(mesg=message, exitcode=status)
|
|
40
40
|
|
|
41
41
|
def _print_message(self, text, fd=None):
|
|
42
42
|
'''
|
|
@@ -54,8 +54,8 @@ async def wrapmain(func, logconf=None): # pragma: no cover
|
|
|
54
54
|
try:
|
|
55
55
|
return await func(sys.argv[1:])
|
|
56
56
|
|
|
57
|
-
except s_exc.ParserExit:
|
|
58
|
-
return 1
|
|
57
|
+
except s_exc.ParserExit as e:
|
|
58
|
+
return e.get('exitcode', 1)
|
|
59
59
|
|
|
60
60
|
except Exception as e:
|
|
61
61
|
print(f'ERROR: {s_exc.reprexc(e)}')
|
|
@@ -363,16 +363,33 @@ class NodeBase:
|
|
|
363
363
|
def valuvirts(self, defv=None):
|
|
364
364
|
return defv
|
|
365
365
|
|
|
366
|
+
def _nidNormValu(self, ptyp, valu):
|
|
367
|
+
# fold a normalized value of type ptyp the same way the index and nid
|
|
368
|
+
# deconfliction do (e.g. case folding a text value)
|
|
369
|
+
if valu is None:
|
|
370
|
+
return None
|
|
371
|
+
|
|
372
|
+
if ptyp.isarray:
|
|
373
|
+
# a whole array value is a tuple of typed values
|
|
374
|
+
return self.view.wlyr.arraytype.nidNorm(valu)
|
|
375
|
+
|
|
376
|
+
typename, tvalu = valu
|
|
377
|
+
if (ntyp := self.view.core.model.type(typename)) is None:
|
|
378
|
+
return valu
|
|
379
|
+
|
|
380
|
+
return (typename, self.view.wlyr.stortypes[ntyp.stortype].nidNorm(tvalu))
|
|
381
|
+
|
|
366
382
|
def hasPropAltsValu(self, prop, valu):
|
|
367
383
|
# valu must be normalized in advance
|
|
384
|
+
valu = self._nidNormValu(prop.type, valu)
|
|
368
385
|
prophash = prop.type.typehash
|
|
369
386
|
for prop in prop.getAlts():
|
|
370
387
|
if prop.type.isarray and prop.type.arraytype.typehash is prophash:
|
|
371
388
|
arryvalu = self.get(prop.name)
|
|
372
|
-
if arryvalu is not None and valu in arryvalu:
|
|
389
|
+
if arryvalu is not None and any(self._nidNormValu(prop.type.arraytype, v) == valu for v in arryvalu):
|
|
373
390
|
return True
|
|
374
391
|
else:
|
|
375
|
-
if self.get(prop.name) == valu:
|
|
392
|
+
if self._nidNormValu(prop.type, self.get(prop.name)) == valu:
|
|
376
393
|
return True
|
|
377
394
|
|
|
378
395
|
return False
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import os
|
|
1
2
|
import ast
|
|
3
|
+
import logging
|
|
2
4
|
import collections
|
|
3
5
|
|
|
4
6
|
import lark # type: ignore
|
|
5
7
|
import regex # type: ignore
|
|
8
|
+
import lark.lexer # type: ignore
|
|
9
|
+
import lark.grammar # type: ignore
|
|
6
10
|
|
|
7
11
|
import synapse.exc as s_exc
|
|
8
12
|
import synapse.data as s_data
|
|
@@ -10,8 +14,11 @@ import synapse.common as s_common
|
|
|
10
14
|
|
|
11
15
|
import synapse.lib.ast as s_ast
|
|
12
16
|
import synapse.lib.cache as s_cache
|
|
17
|
+
import synapse.lib.msgpack as s_msgpack
|
|
13
18
|
import synapse.lib.processpool as s_processpool
|
|
14
19
|
|
|
20
|
+
logger = logging.getLogger(__name__)
|
|
21
|
+
|
|
15
22
|
# TL;DR: *rules* are the internal nodes of an abstract syntax tree (AST), *terminals* are the leaves
|
|
16
23
|
|
|
17
24
|
# Note: this file is coupled strongly to synapse/data/lark/storm.lark. Any changes to that file will probably require
|
|
@@ -543,8 +550,61 @@ class AstConverter(lark.Transformer):
|
|
|
543
550
|
return s_ast.TryCatch(astinfo, kids)
|
|
544
551
|
|
|
545
552
|
_grammar = s_data.getLark('storm')
|
|
546
|
-
|
|
547
|
-
|
|
553
|
+
_larkopts = {
|
|
554
|
+
'regex': True,
|
|
555
|
+
'start': ['query', 'lookup', 'cmdargs', 'evalvalu'],
|
|
556
|
+
'maybe_placeholders': False,
|
|
557
|
+
'propagate_positions': True,
|
|
558
|
+
'parser': 'lalr',
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
LARK_CACHE_PATH = s_data.path('lark', 'storm.lark.mpk')
|
|
562
|
+
|
|
563
|
+
def _getLarkIden():
|
|
564
|
+
return s_common.guid((lark.__version__, _grammar, sorted(_larkopts.items())))
|
|
565
|
+
|
|
566
|
+
def loadLarkParser(path=LARK_CACHE_PATH):
|
|
567
|
+
'''
|
|
568
|
+
Load the Storm grammar parser from a cache written by saveLarkParser(), or build it.
|
|
569
|
+
|
|
570
|
+
Notes:
|
|
571
|
+
Building the LALR tables takes seconds per process. The cache is only used when
|
|
572
|
+
it was written from the same grammar, options, and lark version.
|
|
573
|
+
|
|
574
|
+
Returns:
|
|
575
|
+
(lark.Lark, bool): The parser and True if it was loaded from the cache.
|
|
576
|
+
'''
|
|
577
|
+
if os.path.isfile(path):
|
|
578
|
+
try:
|
|
579
|
+
with open(path, 'rb') as fd:
|
|
580
|
+
info = s_msgpack.un(fd.read(), use_list=True)
|
|
581
|
+
|
|
582
|
+
if info.get('iden') == _getLarkIden():
|
|
583
|
+
return lark.Lark.load({'data': info['data'], 'memo': info['memo']}), True
|
|
584
|
+
|
|
585
|
+
except Exception as e:
|
|
586
|
+
logger.warning(f'Failed to load the Storm grammar cache at {path}: {e}')
|
|
587
|
+
|
|
588
|
+
return lark.Lark(_grammar, **_larkopts), False
|
|
589
|
+
|
|
590
|
+
def saveLarkParser(path=LARK_CACHE_PATH):
|
|
591
|
+
'''
|
|
592
|
+
Write the Storm grammar parser to a cache which loadLarkParser() reads.
|
|
593
|
+
|
|
594
|
+
Notes:
|
|
595
|
+
The cache is msgpack rather than lark.Lark.save() so that loading it does not
|
|
596
|
+
unpickle anything.
|
|
597
|
+
'''
|
|
598
|
+
parser = lark.Lark(_grammar, **_larkopts)
|
|
599
|
+
data, memo = parser.memo_serialize([lark.lexer.TerminalDef, lark.grammar.Rule])
|
|
600
|
+
|
|
601
|
+
with open(path, 'wb') as fd:
|
|
602
|
+
fd.write(s_msgpack.en({'iden': _getLarkIden(), 'data': data, 'memo': memo}))
|
|
603
|
+
|
|
604
|
+
if not loadLarkParser(path=path)[1]:
|
|
605
|
+
raise s_exc.BadState(mesg=f'The Storm grammar cache at {path} could not be loaded.')
|
|
606
|
+
|
|
607
|
+
LarkParser, larkcached = loadLarkParser()
|
|
548
608
|
|
|
549
609
|
class Parser:
|
|
550
610
|
'''
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
|
|
3
3
|
import synapse.exc as s_exc
|
|
4
|
+
import synapse.common as s_common
|
|
4
5
|
|
|
6
|
+
import synapse.lib.json as s_json
|
|
7
|
+
import synapse.lib.const as s_const
|
|
5
8
|
import synapse.lib.stormtypes as s_stormtypes
|
|
6
9
|
|
|
10
|
+
MAX_DOC_SIZE = 25 * s_const.mebibyte
|
|
11
|
+
|
|
7
12
|
stormcmds = [
|
|
8
13
|
{
|
|
9
14
|
'name': 'pkg.list',
|
|
@@ -127,26 +132,98 @@ stormcmds = [
|
|
|
127
132
|
'name': 'pkg.docs',
|
|
128
133
|
'desc': 'Display documentation included in a storm package.',
|
|
129
134
|
'cmdargs': (
|
|
130
|
-
('name', {'help': 'The name
|
|
135
|
+
('name', {'help': 'The name of the package.'}),
|
|
136
|
+
('doc', {'nargs': '?', 'default': None,
|
|
137
|
+
'help': 'The path or title of a single document to display.'}),
|
|
131
138
|
),
|
|
132
139
|
'storm': '''
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
140
|
+
function printDocs(docs) {
|
|
141
|
+
$conf = ({
|
|
142
|
+
"columns": [
|
|
143
|
+
{"name": "Path", "width": 30},
|
|
144
|
+
{"name": "Title"},
|
|
145
|
+
],
|
|
146
|
+
})
|
|
147
|
+
$printer = $lib.tabular.printer($conf)
|
|
148
|
+
|
|
149
|
+
$lib.print($printer.header())
|
|
150
|
+
|
|
151
|
+
for $doc in $docs {
|
|
152
|
+
$title = $doc.title
|
|
153
|
+
if (not $title) { $title = '' }
|
|
154
|
+
$lib.print($printer.row(($doc.path, $title)))
|
|
138
155
|
}
|
|
156
|
+
|
|
157
|
+
return()
|
|
139
158
|
}
|
|
140
159
|
|
|
160
|
+
$pdef = $lib.pkg.get($cmdopts.name)
|
|
161
|
+
|
|
141
162
|
if (not $pdef) {
|
|
142
163
|
$lib.warn(`Package ({$cmdopts.name}) not found!`)
|
|
164
|
+
$lib.exit()
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
$docs = $lib.pkg.docs.list($pdef.name)
|
|
168
|
+
|
|
169
|
+
if ($lib.len($docs) = 0) {
|
|
170
|
+
$lib.print(`Package ({$pdef.name}) contains no documentation.`)
|
|
171
|
+
$lib.exit()
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (not $cmdopts.doc) {
|
|
175
|
+
|
|
176
|
+
$lib.print(`Documentation for package ({$pdef.name}):`)
|
|
177
|
+
$lib.print('')
|
|
178
|
+
|
|
179
|
+
$printDocs($docs)
|
|
180
|
+
|
|
181
|
+
$lib.print('')
|
|
182
|
+
$lib.print(`Use: pkg.docs {$pdef.name} <doc>`)
|
|
183
|
+
|
|
143
184
|
} else {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
185
|
+
|
|
186
|
+
$needle = $cmdopts.doc.lower()
|
|
187
|
+
$matches = ([])
|
|
188
|
+
|
|
189
|
+
for $doc in $docs {
|
|
190
|
+
|
|
191
|
+
$relpath = $doc.path
|
|
192
|
+
$stem = $relpath
|
|
193
|
+
if $stem.endswith('.md') { $stem = $stem.slice(0, -3) }
|
|
194
|
+
$title = $doc.title
|
|
195
|
+
|
|
196
|
+
$fullpath = `docs/{$relpath}`
|
|
197
|
+
$cands = ([$fullpath.lower(), $relpath.lower(), $stem.lower()])
|
|
198
|
+
if $title { $cands.append($title.lower()) }
|
|
199
|
+
|
|
200
|
+
if ($needle in $cands) {
|
|
201
|
+
$matches.append($relpath)
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if ($lib.len($matches) = 0) {
|
|
206
|
+
|
|
207
|
+
$lib.warn(`No document matches "{$cmdopts.doc}" in package ({$pdef.name}).`)
|
|
208
|
+
$lib.print('')
|
|
209
|
+
$printDocs($docs)
|
|
210
|
+
|
|
211
|
+
} elif ($lib.len($matches) > 1) {
|
|
212
|
+
|
|
213
|
+
$lib.warn(`Multiple documents match "{$cmdopts.doc}" in package ({$pdef.name}):`)
|
|
214
|
+
for $relpath in $matches {
|
|
215
|
+
$lib.print($relpath)
|
|
147
216
|
}
|
|
217
|
+
|
|
148
218
|
} else {
|
|
149
|
-
|
|
219
|
+
|
|
220
|
+
$relpath = $matches.index(0)
|
|
221
|
+
try {
|
|
222
|
+
$doctext = $lib.pkg.docs.get($pdef.name, doc=$relpath)
|
|
223
|
+
$lib.print($doctext.$relpath)
|
|
224
|
+
} catch NoSuchFile as err {
|
|
225
|
+
$lib.warn($err.mesg)
|
|
226
|
+
}
|
|
150
227
|
}
|
|
151
228
|
}
|
|
152
229
|
'''
|
|
@@ -336,6 +413,147 @@ class LibPkg(s_stormtypes.Lib):
|
|
|
336
413
|
name = await s_stormtypes.tostr(name)
|
|
337
414
|
return PkgState(self.runt, name)
|
|
338
415
|
|
|
416
|
+
@s_stormtypes.registry.registerLib
|
|
417
|
+
class LibPkgDocs(s_stormtypes.Lib):
|
|
418
|
+
'''
|
|
419
|
+
A Storm Library for reading a Storm Package's documentation.
|
|
420
|
+
'''
|
|
421
|
+
_storm_locals = (
|
|
422
|
+
{'name': 'list', 'desc': "List a Storm Package's documentation pages.",
|
|
423
|
+
'type': {'type': 'function', '_funcname': '_libPkgDocsList',
|
|
424
|
+
'args': (
|
|
425
|
+
{'name': 'name', 'type': 'str', 'desc': 'A Storm Package name.', },
|
|
426
|
+
),
|
|
427
|
+
'returns': {'type': 'list', 'desc': 'A list of `{"path": ..., "title": ...}` dicts, or null if '
|
|
428
|
+
'the package does not exist.', }}},
|
|
429
|
+
{'name': 'get', 'desc': "Get a Storm Package's documentation.",
|
|
430
|
+
'type': {'type': 'function', '_funcname': '_libPkgDocsGet',
|
|
431
|
+
'args': (
|
|
432
|
+
{'name': 'name', 'type': 'str', 'desc': 'A Storm Package name.', },
|
|
433
|
+
{'name': 'doc', 'type': 'str', 'default': None,
|
|
434
|
+
'desc': 'The path (relative to docs/) of a single document to retrieve.', },
|
|
435
|
+
),
|
|
436
|
+
'returns': {'type': 'dict',
|
|
437
|
+
'desc': 'A dict of {path: text} -- every document, or just the named one '
|
|
438
|
+
'if doc was specified -- or null if the package or document does not exist.', }}},
|
|
439
|
+
)
|
|
440
|
+
_storm_lib_path = ('pkg', 'docs')
|
|
441
|
+
|
|
442
|
+
def getObjLocals(self):
|
|
443
|
+
return {
|
|
444
|
+
'list': self._libPkgDocsList,
|
|
445
|
+
'get': self._libPkgDocsGet,
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
async def _getPkgDocs(self, name):
|
|
449
|
+
|
|
450
|
+
pkgdef = await self.runt.view.core.getStormPkg(name)
|
|
451
|
+
if pkgdef is None:
|
|
452
|
+
return None
|
|
453
|
+
|
|
454
|
+
# a package's documentation ships as ordinary files under docs/
|
|
455
|
+
# rather than inline pkgdef content -- a doc page is a files:
|
|
456
|
+
# entry whose path starts with docs/ and ends in .md, which
|
|
457
|
+
# excludes docs/metadata.json (not .md) and any images.
|
|
458
|
+
docs = {}
|
|
459
|
+
for docpath, filedef in (pkgdef.get('files') or {}).items():
|
|
460
|
+
if docpath.startswith('docs/') and docpath.endswith('.md'):
|
|
461
|
+
docs[docpath[5:]] = filedef.get('sha256')
|
|
462
|
+
|
|
463
|
+
return pkgdef, docs
|
|
464
|
+
|
|
465
|
+
async def _readPkgFile(self, axon, relpath, sha256):
|
|
466
|
+
|
|
467
|
+
sha256b = s_common.uhex(sha256)
|
|
468
|
+
|
|
469
|
+
size = await axon.size(sha256b)
|
|
470
|
+
if size is None:
|
|
471
|
+
mesg = f'Document ({relpath}) is missing from the Axon.'
|
|
472
|
+
raise s_exc.NoSuchFile(mesg=mesg)
|
|
473
|
+
|
|
474
|
+
if size > MAX_DOC_SIZE:
|
|
475
|
+
mesg = f'Document ({relpath}) is larger than the {MAX_DOC_SIZE} byte limit.'
|
|
476
|
+
raise s_exc.StormRuntimeError(mesg=mesg)
|
|
477
|
+
|
|
478
|
+
byts = b''
|
|
479
|
+
async for chunk in axon.get(sha256b):
|
|
480
|
+
byts += chunk
|
|
481
|
+
|
|
482
|
+
return byts
|
|
483
|
+
|
|
484
|
+
async def _getDocTitles(self, axon, pkgdef):
|
|
485
|
+
|
|
486
|
+
titles = {}
|
|
487
|
+
|
|
488
|
+
metafiledef = (pkgdef.get('files') or {}).get('docs/metadata.json')
|
|
489
|
+
if metafiledef is None:
|
|
490
|
+
return titles
|
|
491
|
+
|
|
492
|
+
metasha256 = metafiledef['sha256']
|
|
493
|
+
|
|
494
|
+
try:
|
|
495
|
+
byts = await self._readPkgFile(axon, 'metadata.json', metasha256)
|
|
496
|
+
meta = s_json.loads(byts)
|
|
497
|
+
except (s_exc.NoSuchFile, s_exc.StormRuntimeError, s_exc.BadJsonText):
|
|
498
|
+
return titles
|
|
499
|
+
|
|
500
|
+
queue = list(meta.get('toc') or ())
|
|
501
|
+
while queue:
|
|
502
|
+
entry = queue.pop(0)
|
|
503
|
+
href = entry.get('href')
|
|
504
|
+
if href:
|
|
505
|
+
titles[href] = entry.get('title')
|
|
506
|
+
queue.extend(entry.get('children') or ())
|
|
507
|
+
|
|
508
|
+
return titles
|
|
509
|
+
|
|
510
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
511
|
+
async def _libPkgDocsList(self, name):
|
|
512
|
+
|
|
513
|
+
name = await s_stormtypes.tostr(name)
|
|
514
|
+
|
|
515
|
+
retn = await self._getPkgDocs(name)
|
|
516
|
+
if retn is None:
|
|
517
|
+
return None
|
|
518
|
+
|
|
519
|
+
pkgdef, docs = retn
|
|
520
|
+
|
|
521
|
+
if not docs:
|
|
522
|
+
return []
|
|
523
|
+
|
|
524
|
+
axon = await self.runt.view.core.getAxon()
|
|
525
|
+
titles = await self._getDocTitles(axon, pkgdef)
|
|
526
|
+
|
|
527
|
+
return [{'path': relpath, 'title': titles.get(relpath)} for relpath in sorted(docs.keys())]
|
|
528
|
+
|
|
529
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
530
|
+
async def _libPkgDocsGet(self, name, doc=None):
|
|
531
|
+
|
|
532
|
+
name = await s_stormtypes.tostr(name)
|
|
533
|
+
doc = await s_stormtypes.tostr(doc, noneok=True)
|
|
534
|
+
|
|
535
|
+
retn = await self._getPkgDocs(name)
|
|
536
|
+
if retn is None:
|
|
537
|
+
return None
|
|
538
|
+
|
|
539
|
+
_, docs = retn
|
|
540
|
+
|
|
541
|
+
axon = await self.runt.view.core.getAxon()
|
|
542
|
+
|
|
543
|
+
if doc is not None:
|
|
544
|
+
sha256 = docs.get(doc)
|
|
545
|
+
if sha256 is None:
|
|
546
|
+
return None
|
|
547
|
+
byts = await self._readPkgFile(axon, doc, sha256)
|
|
548
|
+
return {doc: byts.decode('utf8', errors='ignore')}
|
|
549
|
+
|
|
550
|
+
retn = {}
|
|
551
|
+
for relpath, sha256 in docs.items():
|
|
552
|
+
byts = await self._readPkgFile(axon, relpath, sha256)
|
|
553
|
+
retn[relpath] = byts.decode('utf8', errors='ignore')
|
|
554
|
+
|
|
555
|
+
return retn
|
|
556
|
+
|
|
339
557
|
@s_stormtypes.registry.registerType
|
|
340
558
|
class PkgVars(s_stormtypes.Prim):
|
|
341
559
|
'''
|
|
@@ -15,8 +15,6 @@ import synapse.lib.stormctrl as s_stormctrl
|
|
|
15
15
|
import synapse.lib.stormtypes as s_stormtypes
|
|
16
16
|
import synapse.lib.processpool as s_processpool
|
|
17
17
|
|
|
18
|
-
import stix2validator
|
|
19
|
-
|
|
20
18
|
logger = logging.getLogger(__name__)
|
|
21
19
|
|
|
22
20
|
def uuid5(valu=None):
|
|
@@ -594,6 +592,10 @@ def _validateConfig(runt, config):
|
|
|
594
592
|
raise s_exc.BadConfValu(mesg=mesg)
|
|
595
593
|
|
|
596
594
|
def validateStix(bundle, version='2.1'):
|
|
595
|
+
|
|
596
|
+
# stix2validator is slow to import, so it only loads in the process which validates a bundle.
|
|
597
|
+
import stix2validator
|
|
598
|
+
|
|
597
599
|
ret = {
|
|
598
600
|
'ok': False,
|
|
599
601
|
'mesg': '',
|