@veraanchor/verifier 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/CONTRIBUTING.md +33 -0
  3. package/LICENSE +21 -0
  4. package/NOTICE +4 -0
  5. package/README.md +263 -2
  6. package/SECURITY.md +21 -0
  7. package/dist/cli/commandV1.d.ts +5 -0
  8. package/dist/cli/commandV1.d.ts.map +1 -0
  9. package/dist/cli/commandV1.js +440 -0
  10. package/dist/cli/commandV1.js.map +1 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +5 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/contracts/verification.d.ts +77 -0
  16. package/dist/contracts/verification.d.ts.map +1 -0
  17. package/dist/contracts/verification.js +6 -0
  18. package/dist/contracts/verification.js.map +1 -0
  19. package/dist/crypto/sha3.d.ts +15 -0
  20. package/dist/crypto/sha3.d.ts.map +1 -0
  21. package/dist/crypto/sha3.js +27 -0
  22. package/dist/crypto/sha3.js.map +1 -0
  23. package/dist/crypto/streamSha3.d.ts +26 -0
  24. package/dist/crypto/streamSha3.d.ts.map +1 -0
  25. package/dist/crypto/streamSha3.js +52 -0
  26. package/dist/crypto/streamSha3.js.map +1 -0
  27. package/dist/hf/hashContractV1.d.ts +48 -0
  28. package/dist/hf/hashContractV1.d.ts.map +1 -0
  29. package/dist/hf/hashContractV1.js +185 -0
  30. package/dist/hf/hashContractV1.js.map +1 -0
  31. package/dist/index.d.ts +80 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +57 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/merkle/membership.d.ts +30 -0
  36. package/dist/merkle/membership.d.ts.map +1 -0
  37. package/dist/merkle/membership.js +105 -0
  38. package/dist/merkle/membership.js.map +1 -0
  39. package/dist/policy/contractV1.d.ts +37 -0
  40. package/dist/policy/contractV1.d.ts.map +1 -0
  41. package/dist/policy/contractV1.js +2 -0
  42. package/dist/policy/contractV1.js.map +1 -0
  43. package/dist/policy/evaluateV1.d.ts +24 -0
  44. package/dist/policy/evaluateV1.d.ts.map +1 -0
  45. package/dist/policy/evaluateV1.js +320 -0
  46. package/dist/policy/evaluateV1.js.map +1 -0
  47. package/dist/profiles/dataset/sourceV1.d.ts +22 -0
  48. package/dist/profiles/dataset/sourceV1.d.ts.map +1 -0
  49. package/dist/profiles/dataset/sourceV1.js +73 -0
  50. package/dist/profiles/dataset/sourceV1.js.map +1 -0
  51. package/dist/profiles/dataset/v1.d.ts +39 -0
  52. package/dist/profiles/dataset/v1.d.ts.map +1 -0
  53. package/dist/profiles/dataset/v1.js +362 -0
  54. package/dist/profiles/dataset/v1.js.map +1 -0
  55. package/dist/profiles/execution/contractV1.d.ts +279 -0
  56. package/dist/profiles/execution/contractV1.d.ts.map +1 -0
  57. package/dist/profiles/execution/contractV1.js +364 -0
  58. package/dist/profiles/execution/contractV1.js.map +1 -0
  59. package/dist/profiles/execution/independentStandardsV1.d.ts +44 -0
  60. package/dist/profiles/execution/independentStandardsV1.d.ts.map +1 -0
  61. package/dist/profiles/execution/independentStandardsV1.js +336 -0
  62. package/dist/profiles/execution/independentStandardsV1.js.map +1 -0
  63. package/dist/profiles/execution/reasonCodesV1.d.ts +30 -0
  64. package/dist/profiles/execution/reasonCodesV1.d.ts.map +1 -0
  65. package/dist/profiles/execution/reasonCodesV1.js +20 -0
  66. package/dist/profiles/execution/reasonCodesV1.js.map +1 -0
  67. package/dist/profiles/execution/recomputationV1.d.ts +11 -0
  68. package/dist/profiles/execution/recomputationV1.d.ts.map +1 -0
  69. package/dist/profiles/execution/recomputationV1.js +144 -0
  70. package/dist/profiles/execution/recomputationV1.js.map +1 -0
  71. package/dist/profiles/execution/rulesV1.d.ts +6 -0
  72. package/dist/profiles/execution/rulesV1.d.ts.map +1 -0
  73. package/dist/profiles/execution/rulesV1.js +855 -0
  74. package/dist/profiles/execution/rulesV1.js.map +1 -0
  75. package/dist/profiles/execution/standardsPlanV1.d.ts +18 -0
  76. package/dist/profiles/execution/standardsPlanV1.d.ts.map +1 -0
  77. package/dist/profiles/execution/standardsPlanV1.js +16 -0
  78. package/dist/profiles/execution/standardsPlanV1.js.map +1 -0
  79. package/dist/profiles/execution/verificationV1.d.ts +28 -0
  80. package/dist/profiles/execution/verificationV1.d.ts.map +1 -0
  81. package/dist/profiles/execution/verificationV1.js +188 -0
  82. package/dist/profiles/execution/verificationV1.js.map +1 -0
  83. package/dist/profiles/ingest/sourceV1.d.ts +36 -0
  84. package/dist/profiles/ingest/sourceV1.d.ts.map +1 -0
  85. package/dist/profiles/ingest/sourceV1.js +99 -0
  86. package/dist/profiles/ingest/sourceV1.js.map +1 -0
  87. package/dist/profiles/ingest/v1.d.ts +65 -0
  88. package/dist/profiles/ingest/v1.d.ts.map +1 -0
  89. package/dist/profiles/ingest/v1.js +477 -0
  90. package/dist/profiles/ingest/v1.js.map +1 -0
  91. package/dist/profiles/sourceV1Helpers.d.ts +48 -0
  92. package/dist/profiles/sourceV1Helpers.d.ts.map +1 -0
  93. package/dist/profiles/sourceV1Helpers.js +141 -0
  94. package/dist/profiles/sourceV1Helpers.js.map +1 -0
  95. package/dist/reports/coreV1.d.ts +7 -0
  96. package/dist/reports/coreV1.d.ts.map +1 -0
  97. package/dist/reports/coreV1.js +195 -0
  98. package/dist/reports/coreV1.js.map +1 -0
  99. package/dist/reports/portableV1.d.ts +48 -0
  100. package/dist/reports/portableV1.d.ts.map +1 -0
  101. package/dist/reports/portableV1.js +279 -0
  102. package/dist/reports/portableV1.js.map +1 -0
  103. package/dist/reports/validationV1.d.ts +19 -0
  104. package/dist/reports/validationV1.d.ts.map +1 -0
  105. package/dist/reports/validationV1.js +441 -0
  106. package/dist/reports/validationV1.js.map +1 -0
  107. package/dist/resolvers/executionMirrorV1.d.ts +15 -0
  108. package/dist/resolvers/executionMirrorV1.d.ts.map +1 -0
  109. package/dist/resolvers/executionMirrorV1.js +206 -0
  110. package/dist/resolvers/executionMirrorV1.js.map +1 -0
  111. package/dist/resolvers/explorerExecutionV1.d.ts +17 -0
  112. package/dist/resolvers/explorerExecutionV1.d.ts.map +1 -0
  113. package/dist/resolvers/explorerExecutionV1.js +61 -0
  114. package/dist/resolvers/explorerExecutionV1.js.map +1 -0
  115. package/dist/resolvers/explorerPublicV1.d.ts +37 -0
  116. package/dist/resolvers/explorerPublicV1.d.ts.map +1 -0
  117. package/dist/resolvers/explorerPublicV1.js +210 -0
  118. package/dist/resolvers/explorerPublicV1.js.map +1 -0
  119. package/dist/resolvers/explorerPublicationV1.d.ts +20 -0
  120. package/dist/resolvers/explorerPublicationV1.d.ts.map +1 -0
  121. package/dist/resolvers/explorerPublicationV1.js +195 -0
  122. package/dist/resolvers/explorerPublicationV1.js.map +1 -0
  123. package/dist/resolvers/explorerTransportV1.d.ts +17 -0
  124. package/dist/resolvers/explorerTransportV1.d.ts.map +1 -0
  125. package/dist/resolvers/explorerTransportV1.js +112 -0
  126. package/dist/resolvers/explorerTransportV1.js.map +1 -0
  127. package/dist/resolvers/hcs11MirrorV1.d.ts +49 -0
  128. package/dist/resolvers/hcs11MirrorV1.d.ts.map +1 -0
  129. package/dist/resolvers/hcs11MirrorV1.js +293 -0
  130. package/dist/resolvers/hcs11MirrorV1.js.map +1 -0
  131. package/dist/resolvers/hcs13MirrorV1.d.ts +35 -0
  132. package/dist/resolvers/hcs13MirrorV1.d.ts.map +1 -0
  133. package/dist/resolvers/hcs13MirrorV1.js +72 -0
  134. package/dist/resolvers/hcs13MirrorV1.js.map +1 -0
  135. package/dist/resolvers/hcs1MirrorV1.d.ts +28 -0
  136. package/dist/resolvers/hcs1MirrorV1.d.ts.map +1 -0
  137. package/dist/resolvers/hcs1MirrorV1.js +220 -0
  138. package/dist/resolvers/hcs1MirrorV1.js.map +1 -0
  139. package/dist/resolvers/hcs26MirrorV1.d.ts +67 -0
  140. package/dist/resolvers/hcs26MirrorV1.d.ts.map +1 -0
  141. package/dist/resolvers/hcs26MirrorV1.js +218 -0
  142. package/dist/resolvers/hcs26MirrorV1.js.map +1 -0
  143. package/dist/resolvers/hcs26RegistryMirrorV1.d.ts +26 -0
  144. package/dist/resolvers/hcs26RegistryMirrorV1.d.ts.map +1 -0
  145. package/dist/resolvers/hcs26RegistryMirrorV1.js +200 -0
  146. package/dist/resolvers/hcs26RegistryMirrorV1.js.map +1 -0
  147. package/dist/resolvers/hcs2MirrorV1.d.ts +26 -0
  148. package/dist/resolvers/hcs2MirrorV1.d.ts.map +1 -0
  149. package/dist/resolvers/hcs2MirrorV1.js +196 -0
  150. package/dist/resolvers/hcs2MirrorV1.js.map +1 -0
  151. package/dist/resolvers/hederaMirrorV1.d.ts +22 -0
  152. package/dist/resolvers/hederaMirrorV1.d.ts.map +1 -0
  153. package/dist/resolvers/hederaMirrorV1.js +338 -0
  154. package/dist/resolvers/hederaMirrorV1.js.map +1 -0
  155. package/dist/standards/hcs/hcs11V1.d.ts +51 -0
  156. package/dist/standards/hcs/hcs11V1.d.ts.map +1 -0
  157. package/dist/standards/hcs/hcs11V1.js +289 -0
  158. package/dist/standards/hcs/hcs11V1.js.map +1 -0
  159. package/dist/standards/hcs/hcs13V1.d.ts +39 -0
  160. package/dist/standards/hcs/hcs13V1.d.ts.map +1 -0
  161. package/dist/standards/hcs/hcs13V1.js +114 -0
  162. package/dist/standards/hcs/hcs13V1.js.map +1 -0
  163. package/dist/standards/hcs/hcs14V1.d.ts +35 -0
  164. package/dist/standards/hcs/hcs14V1.d.ts.map +1 -0
  165. package/dist/standards/hcs/hcs14V1.js +168 -0
  166. package/dist/standards/hcs/hcs14V1.js.map +1 -0
  167. package/dist/standards/hcs/hcs1V1.d.ts +30 -0
  168. package/dist/standards/hcs/hcs1V1.d.ts.map +1 -0
  169. package/dist/standards/hcs/hcs1V1.js +140 -0
  170. package/dist/standards/hcs/hcs1V1.js.map +1 -0
  171. package/dist/standards/hcs/hcs26V1.d.ts +58 -0
  172. package/dist/standards/hcs/hcs26V1.d.ts.map +1 -0
  173. package/dist/standards/hcs/hcs26V1.js +339 -0
  174. package/dist/standards/hcs/hcs26V1.js.map +1 -0
  175. package/dist/standards/hcs/hcs2V1.d.ts +36 -0
  176. package/dist/standards/hcs/hcs2V1.d.ts.map +1 -0
  177. package/dist/standards/hcs/hcs2V1.js +181 -0
  178. package/dist/standards/hcs/hcs2V1.js.map +1 -0
  179. package/dist/standards/hcs/jsonCanonicalV1.d.ts +15 -0
  180. package/dist/standards/hcs/jsonCanonicalV1.d.ts.map +1 -0
  181. package/dist/standards/hcs/jsonCanonicalV1.js +160 -0
  182. package/dist/standards/hcs/jsonCanonicalV1.js.map +1 -0
  183. package/dist/triangulation/compareV1.d.ts +50 -0
  184. package/dist/triangulation/compareV1.d.ts.map +1 -0
  185. package/dist/triangulation/compareV1.js +236 -0
  186. package/dist/triangulation/compareV1.js.map +1 -0
  187. package/dist/triangulation/executionPlanV1.d.ts +39 -0
  188. package/dist/triangulation/executionPlanV1.d.ts.map +1 -0
  189. package/dist/triangulation/executionPlanV1.js +208 -0
  190. package/dist/triangulation/executionPlanV1.js.map +1 -0
  191. package/dist/triangulation/executionPublicV1.d.ts +22 -0
  192. package/dist/triangulation/executionPublicV1.d.ts.map +1 -0
  193. package/dist/triangulation/executionPublicV1.js +39 -0
  194. package/dist/triangulation/executionPublicV1.js.map +1 -0
  195. package/dist/triangulation/messageObservationV1.d.ts +26 -0
  196. package/dist/triangulation/messageObservationV1.d.ts.map +1 -0
  197. package/dist/triangulation/messageObservationV1.js +69 -0
  198. package/dist/triangulation/messageObservationV1.js.map +1 -0
  199. package/dist/triangulation/publicV1.d.ts +29 -0
  200. package/dist/triangulation/publicV1.d.ts.map +1 -0
  201. package/dist/triangulation/publicV1.js +170 -0
  202. package/dist/triangulation/publicV1.js.map +1 -0
  203. package/dist/verification/sourceIntentV1.d.ts +15 -0
  204. package/dist/verification/sourceIntentV1.d.ts.map +1 -0
  205. package/dist/verification/sourceIntentV1.js +206 -0
  206. package/dist/verification/sourceIntentV1.js.map +1 -0
  207. package/docs/cli-v0.1.md +237 -0
  208. package/docs/conformance.md +38 -0
  209. package/docs/threat-model.md +37 -0
  210. package/docs/verification-semantics.md +65 -0
  211. package/examples/README.md +35 -0
  212. package/examples/dataset-offline.mjs +58 -0
  213. package/examples/dataset-policy.mjs +59 -0
  214. package/package.json +65 -4
@@ -0,0 +1,65 @@
1
+ # Verification semantics
2
+
3
+ The verifier separates evidence findings, cross-source consistency and relying-party decisions. These layers are related but are not interchangeable.
4
+
5
+ ## Finding outcomes
6
+
7
+ Every supported verification check has one of five normalized outcomes:
8
+
9
+ - `pass` — the available evidence satisfies the exact check.
10
+ - `fail` — the verifier demonstrated a contradiction or violation of an explicit requirement.
11
+ - `indeterminate` — the check could not be established because required evidence or an external observation was unavailable.
12
+ - `unsupported` — the requested material or operation is outside the verifier's supported contract or bounded implementation.
13
+ - `skipped` — the check was intentionally not applicable or not requested in the selected workflow.
14
+
15
+ Missing evidence and service outages are not contradictions and therefore must not be converted into `fail` unless an explicit requirement itself is violated.
16
+
17
+ ## Triangulation
18
+
19
+ Cross-source relationship states are:
20
+
21
+ - `consistent` — the compared independently acquired facts agree for all required comparisons;
22
+ - `conflict` — at least one required comparison demonstrates a contradiction;
23
+ - `incomplete` — the relationship cannot be fully established because required observations are missing, indeterminate or unsupported.
24
+
25
+ Consistency is not factual truth. It means the compared evidence sources agree on the supported facts that were actually checked.
26
+
27
+ ## Policy decisions
28
+
29
+ Policy decisions are separate from verification findings:
30
+
31
+ - `allow` — all requirements selected by the relying party are satisfied under the policy.
32
+ - `deny` — a required condition is contradicted or the policy otherwise requires denial.
33
+ - `review` — the evidence is unresolved under a policy that delegates unresolved cases for review.
34
+
35
+ Verification intent and policy must be controlled by the relying party. An untrusted receipt, bundle, execution record or standards projection cannot define its own sufficient acceptance threshold.
36
+
37
+ ## Assurance in v0.1
38
+
39
+ The current policy assurance dimension is `mirror_corroboration`. It means the relevant supported fact was independently observed through the SDK's Hedera Mirror resolver path. It does not mean that the SDK authenticated Hedera consensus signatures or established control of an account, DID or publisher key.
40
+
41
+ The SDK also performs deterministic integrity and binding checks where the underlying contract supports recomputation. Those checks are represented through findings rather than being silently promoted into a broader authentication claim.
42
+
43
+ ## Supported standards interpretation
44
+
45
+ The v0.1 standards path supports pinned verification behavior for HCS-1, HCS-2, HCS-11, HCS-13, HCS-14 and HCS-26 as exposed by the SDK. Standards registration or profile publication is evidence of the declared record and its supported integrity relationships; it is not evidence that associated software executed, that a publisher currently controls a key, or that a claim is factually true.
46
+
47
+ HCS-26 verification resolves the selected historical discovery/version path, verifies the canonical manifest, and verifies integrity for the manifest-declared HCS-1 files within the SDK's resource bounds.
48
+
49
+ ## Portable reports
50
+
51
+ `va.portable-verification-report.v1` is a deterministic, digest-bound representation of a verification result and its supported context. Validating a saved portable report checks its structure and internal digests. It does not recompute the underlying evidence and does not authenticate the report's origin.
52
+
53
+ Accordingly, a saved report cannot elevate itself into an SDK-authenticated `allow` decision. Fresh verification with independently supplied intent and policy is required when a relying party needs an SDK-computed decision over the underlying evidence.
54
+
55
+ ## Authentication boundary
56
+
57
+ v0.1 intentionally stops short of stronger authentication claims. In particular, a SHA3-512 match, HCS content checksum, Explorer resolution or Mirror observation does not by itself establish:
58
+
59
+ - Hedera consensus-signature authentication;
60
+ - DID-controller or publisher-key authentication;
61
+ - historical ownership of an account;
62
+ - factual truth of the verified content;
63
+ - independent cryptographic binding of Explorer-assisted decrypted plaintext to publication ciphertext.
64
+
65
+ Future authentication capabilities must be represented as additional explicit evidence and assurance, not by changing the meaning of existing v0.1 outcomes.
@@ -0,0 +1,35 @@
1
+ # Examples
2
+
3
+ These examples use the public `@veraanchor/verifier` package API and are intentionally small.
4
+
5
+ They treat evidence as untrusted input. Dataset identity, network selection, expected scope and policy must come from the relying party's trusted context.
6
+
7
+ From a repository checkout, run `npm ci` and `npm run build` first. The package self-reference resolves the same public entry point that consumers import after installation.
8
+
9
+ ## Offline Dataset verification
10
+
11
+ ```sh
12
+ node examples/dataset-offline.mjs \
13
+ bundle.json \
14
+ receipt.json \
15
+ source-file.json \
16
+ verification_demo/source-file.json \
17
+ 07be0cf7-4cab-40ca-aa70-87840df4d3e7.example.verification.demo.v1 \
18
+ mainnet
19
+ ```
20
+
21
+ The source path argument is the producer-relative path committed by the Dataset, not merely the local filename.
22
+
23
+ ## Fresh policy decision
24
+
25
+ ```sh
26
+ node examples/dataset-policy.mjs \
27
+ bundle.json \
28
+ receipt.json \
29
+ source-file.json \
30
+ verification_demo/source-file.json \
31
+ intent.json \
32
+ policy.json
33
+ ```
34
+
35
+ The intent and policy files must be supplied independently by the relying party. Do not construct them by copying expectations from the untrusted evidence being verified.
@@ -0,0 +1,58 @@
1
+ import { readFile } from "node:fs/promises";
2
+
3
+ import { verifyDatasetV1WithIntent } from "@veraanchor/verifier";
4
+
5
+ const [bundlePath, receiptPath, sourcePath, pathRel, datasetKey, network] =
6
+ process.argv.slice(2);
7
+
8
+ if (
9
+ !bundlePath ||
10
+ !receiptPath ||
11
+ !sourcePath ||
12
+ !pathRel ||
13
+ !datasetKey ||
14
+ (network !== "mainnet" && network !== "testnet")
15
+ ) {
16
+ console.error(
17
+ "Usage: node examples/dataset-offline.mjs " +
18
+ "<bundle.json> <receipt.json> <source-file> <producer-relative-path> " +
19
+ "<dataset-key> <mainnet|testnet>",
20
+ );
21
+ process.exit(64);
22
+ }
23
+
24
+ async function readJson(path) {
25
+ const text = (await readFile(path, "utf8")).replace(/^\uFEFF/, "");
26
+ return JSON.parse(text);
27
+ }
28
+
29
+ const [bundle, receipt, sourceBytes] = await Promise.all([
30
+ readJson(bundlePath),
31
+ readJson(receiptPath),
32
+ readFile(sourcePath),
33
+ ]);
34
+
35
+ const report = await verifyDatasetV1WithIntent({
36
+ bundle,
37
+ receipt,
38
+ intent: {
39
+ subject: {
40
+ kind: "dataset",
41
+ id: datasetKey,
42
+ hedera_network: network,
43
+ },
44
+ expected: [],
45
+ },
46
+ files: [
47
+ {
48
+ path_rel: pathRel,
49
+ source: [sourceBytes],
50
+ },
51
+ ],
52
+ });
53
+
54
+ console.log(JSON.stringify(report, null, 2));
55
+
56
+ if (report.findings.some((finding) => finding.outcome === "fail")) {
57
+ process.exitCode = 1;
58
+ }
@@ -0,0 +1,59 @@
1
+ import { readFile } from "node:fs/promises";
2
+
3
+ import { verifyDatasetWithPolicyV1 } from "@veraanchor/verifier";
4
+
5
+ const [bundlePath, receiptPath, sourcePath, pathRel, intentPath, policyPath] =
6
+ process.argv.slice(2);
7
+
8
+ if (
9
+ !bundlePath ||
10
+ !receiptPath ||
11
+ !sourcePath ||
12
+ !pathRel ||
13
+ !intentPath ||
14
+ !policyPath
15
+ ) {
16
+ console.error(
17
+ "Usage: node examples/dataset-policy.mjs " +
18
+ "<bundle.json> <receipt.json> <source-file> <producer-relative-path> " +
19
+ "<intent.json> <policy.json>",
20
+ );
21
+ process.exit(64);
22
+ }
23
+
24
+ async function readJson(path) {
25
+ const text = (await readFile(path, "utf8")).replace(/^\uFEFF/, "");
26
+ return JSON.parse(text);
27
+ }
28
+
29
+ const [bundle, receipt, sourceBytes, intent, policy] = await Promise.all([
30
+ readJson(bundlePath),
31
+ readJson(receiptPath),
32
+ readFile(sourcePath),
33
+ readJson(intentPath),
34
+ readJson(policyPath),
35
+ ]);
36
+
37
+ const result = await verifyDatasetWithPolicyV1(
38
+ {
39
+ bundle,
40
+ receipt,
41
+ intent,
42
+ files: [
43
+ {
44
+ path_rel: pathRel,
45
+ source: [sourceBytes],
46
+ },
47
+ ],
48
+ },
49
+ policy,
50
+ );
51
+
52
+ console.log(JSON.stringify(result, null, 2));
53
+
54
+ process.exitCode =
55
+ result.policy.decision === "allow"
56
+ ? 0
57
+ : result.policy.decision === "review"
58
+ ? 2
59
+ : 1;
package/package.json CHANGED
@@ -1,6 +1,67 @@
1
1
  {
2
2
  "name": "@veraanchor/verifier",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "Independent, read-only verification of Vera Anchor evidence and supported HCS records",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "sideEffects": false,
8
+ "bin": {
9
+ "vera-anchor": "./dist/cli.js"
10
+ },
11
+ "engines": {
12
+ "node": "^22.15.0 || ^24.0.0"
13
+ },
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.js"
18
+ }
19
+ },
20
+ "types": "./dist/index.d.ts",
21
+ "files": [
22
+ "dist",
23
+ "docs",
24
+ "examples",
25
+ "CHANGELOG.md",
26
+ "CONTRIBUTING.md",
27
+ "LICENSE",
28
+ "NOTICE",
29
+ "README.md",
30
+ "SECURITY.md"
31
+ ],
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "git+https://github.com/VeraAnchor/vera-anchor-verifier.git"
35
+ },
36
+ "homepage": "https://github.com/VeraAnchor/vera-anchor-verifier#readme",
37
+ "bugs": {
38
+ "url": "https://github.com/VeraAnchor/vera-anchor-verifier/issues"
39
+ },
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "scripts": {
44
+ "build": "tsc -p tsconfig.build.json",
45
+ "typecheck": "tsc -p tsconfig.json --noEmit",
46
+ "check": "biome check .",
47
+ "format": "biome check --write .",
48
+ "test": "vitest run",
49
+ "test:watch": "vitest",
50
+ "prepack": "npm run build"
51
+ },
52
+ "devDependencies": {
53
+ "@biomejs/biome": "2.5.15",
54
+ "@mongodb-js/zstd": "2.0.1",
55
+ "@types/node": "22.20.5",
56
+ "typescript": "6.0.3",
57
+ "vitest": "5.0.0"
58
+ },
59
+ "keywords": [
60
+ "vera-anchor",
61
+ "verification",
62
+ "digital-evidence",
63
+ "hedera",
64
+ "hcs",
65
+ "provenance"
66
+ ]
67
+ }