blasttrace 1.0.2__tar.gz → 1.0.3__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 blasttrace might be problematic. Click here for more details.
- {blasttrace-1.0.2/blasttrace.egg-info → blasttrace-1.0.3}/PKG-INFO +1 -1
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/__init__.py +1 -1
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/license.py +9 -21
- {blasttrace-1.0.2 → blasttrace-1.0.3/blasttrace.egg-info}/PKG-INFO +1 -1
- {blasttrace-1.0.2 → blasttrace-1.0.3}/pyproject.toml +1 -1
- {blasttrace-1.0.2 → blasttrace-1.0.3}/setup.py +1 -1
- {blasttrace-1.0.2 → blasttrace-1.0.3}/CMakeLists.txt +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/MANIFEST.in +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/README.md +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/classifier.c +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/classifier.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/license.c +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/__init__.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/api_route_parser.c +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/api_route_parser.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/contract_linker.c +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/contract_linker.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/python_ast_parser.c +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/python_ast_parser.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/sql_schema_parser.c +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/sql_schema_parser.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/test_mapper.c +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/test_mapper.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/ts_react_parser.c +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/parsers/ts_react_parser.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/remediation.c +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/remediation.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/server.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/visualizer.c +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace/visualizer.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace.egg-info/SOURCES.txt +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace.egg-info/dependency_links.txt +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace.egg-info/entry_points.txt +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace.egg-info/not-zip-safe +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace.egg-info/requires.txt +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/blasttrace.egg-info/top_level.txt +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/cpp/blast_core.cpp +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/setup.cfg +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/tests/test_chaos_fuzzing.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/tests/test_concurrency_stress.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/tests/test_fullstack_blast_radius.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/tests/test_git_precommit_live.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/tests/test_memory_endurance.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/tests/test_rea_security.py +0 -0
- {blasttrace-1.0.2 → blasttrace-1.0.3}/tests/test_realworld_production.py +0 -0
|
@@ -126,14 +126,15 @@ def get_runtime_token() -> str:
|
|
|
126
126
|
|
|
127
127
|
def activate_license(license_key: str) -> bool:
|
|
128
128
|
"""
|
|
129
|
-
Activates the license key and binds it to this
|
|
130
|
-
|
|
129
|
+
Activates the license key against Lemon Squeezy and binds it to this machine instance.
|
|
130
|
+
Standard users are on Free Community Tier unless a verified Pro license is activated.
|
|
131
131
|
"""
|
|
132
132
|
key_clean = license_key.strip()
|
|
133
133
|
machine_id = get_machine_fingerprint()
|
|
134
134
|
now_ts = int(time.time())
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
# Strictly isolated test fixture for automated test runner (tests/test_fullstack_blast_radius.py)
|
|
137
|
+
if key_clean == "TEST-CODEBLAST-PRO-001":
|
|
137
138
|
_save_license_cache({
|
|
138
139
|
"license_key": key_clean,
|
|
139
140
|
"status": "active",
|
|
@@ -144,9 +145,10 @@ def activate_license(license_key: str) -> bool:
|
|
|
144
145
|
"activated_at": now_ts,
|
|
145
146
|
"last_verified_at": now_ts,
|
|
146
147
|
})
|
|
147
|
-
print(f"[+] Success: BlastTrace Pro activated successfully
|
|
148
|
+
print(f"[+] Success: BlastTrace Pro activated successfully (Internal Test Suite).")
|
|
148
149
|
return True
|
|
149
150
|
|
|
151
|
+
# Real activations strictly require validation with Lemon Squeezy
|
|
150
152
|
try:
|
|
151
153
|
import requests
|
|
152
154
|
url = f"{LEMON_API_BASE}/activate"
|
|
@@ -174,28 +176,14 @@ def activate_license(license_key: str) -> bool:
|
|
|
174
176
|
"activated_at": now_ts,
|
|
175
177
|
"last_verified_at": now_ts,
|
|
176
178
|
})
|
|
177
|
-
print("[+] Success: BlastTrace Pro license activated successfully on this machine!")
|
|
179
|
+
print("[+] Success: BlastTrace Pro license verified and activated successfully on this machine!")
|
|
178
180
|
return True
|
|
179
181
|
else:
|
|
180
|
-
err = data.get("error") or data.get("message") or "License activation rejected."
|
|
182
|
+
err = data.get("error") or data.get("message") or "License activation rejected. Please check your key or purchase a Pro license from blasttrace.dev."
|
|
181
183
|
print(f"[-] Activation Error: {err}", file=sys.stderr)
|
|
182
184
|
return False
|
|
183
185
|
except Exception as exc:
|
|
184
|
-
|
|
185
|
-
if len(key_clean) >= 8:
|
|
186
|
-
_save_license_cache({
|
|
187
|
-
"license_key": key_clean,
|
|
188
|
-
"status": "active",
|
|
189
|
-
"tier": "PRO",
|
|
190
|
-
"instance_id": f"inst-{machine_id}",
|
|
191
|
-
"node_id": machine_id,
|
|
192
|
-
"machine_fingerprint": machine_id,
|
|
193
|
-
"activated_at": now_ts,
|
|
194
|
-
"last_verified_at": now_ts,
|
|
195
|
-
})
|
|
196
|
-
print(f"[+] Success: BlastTrace Pro activated in offline mode ({key_clean[:12]}...)")
|
|
197
|
-
return True
|
|
198
|
-
print(f"[-] Network connection error during activation: {exc}", file=sys.stderr)
|
|
186
|
+
print(f"[-] Activation Error: Unable to verify license with Lemon Squeezy ({exc}). Please check your internet connection.", file=sys.stderr)
|
|
199
187
|
return False
|
|
200
188
|
|
|
201
189
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|