@carrot-foundation/schemas 0.1.47 → 0.1.48
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.
- package/dist/index.cjs +223 -134
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +166 -129
- package/dist/index.d.ts +166 -129
- package/dist/index.js +221 -133
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/schemas/ipfs/collection/collection.schema.json +2 -2
- package/schemas/ipfs/credit/credit.schema.json +2 -2
- package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.example.json +6 -6
- package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.schema.json +4 -4
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.example.json +5 -5
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.schema.json +4 -4
- package/schemas/ipfs/gas-id/gas-id.example.json +8 -8
- package/schemas/ipfs/gas-id/gas-id.schema.json +27 -24
- package/schemas/ipfs/mass-id/mass-id.example.json +3 -3
- package/schemas/ipfs/mass-id/mass-id.schema.json +3 -3
- package/schemas/ipfs/mass-id-audit/mass-id-audit.example.json +203 -109
- package/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json +111 -88
- package/schemas/ipfs/methodology/methodology.example.json +87 -87
- package/schemas/ipfs/methodology/methodology.schema.json +14 -12
- package/schemas/ipfs/recycled-id/recycled-id.example.json +9 -9
- package/schemas/ipfs/recycled-id/recycled-id.schema.json +27 -24
- package/schemas/schema-hashes.json +7 -7
package/dist/index.cjs
CHANGED
|
@@ -66,7 +66,7 @@ var CreditAmountSchema = NonNegativeFloatSchema.meta({
|
|
|
66
66
|
title: "Credit Amount",
|
|
67
67
|
description: "Amount of credits issued"
|
|
68
68
|
});
|
|
69
|
-
var
|
|
69
|
+
var IsoDateTimeSchema = zod.z.iso.datetime({
|
|
70
70
|
message: "Must be a valid ISO 8601 timestamp with timezone information",
|
|
71
71
|
offset: true
|
|
72
72
|
}).meta({
|
|
@@ -28325,7 +28325,7 @@ var MethodologyNameSchema = zod.z.enum([
|
|
|
28325
28325
|
"AMS-III.F. | BOLD Recycling Credit"
|
|
28326
28326
|
]).meta({
|
|
28327
28327
|
title: "Methodology Name",
|
|
28328
|
-
description: "
|
|
28328
|
+
description: "Full official name of the methodology",
|
|
28329
28329
|
examples: [
|
|
28330
28330
|
"AMS-III.F. | BOLD Carbon (CH\u2084) - SSC",
|
|
28331
28331
|
"AMS-III.F. | BOLD Recycling Credit"
|
|
@@ -28333,7 +28333,7 @@ var MethodologyNameSchema = zod.z.enum([
|
|
|
28333
28333
|
});
|
|
28334
28334
|
var MethodologyShortNameSchema = zod.z.enum(["BOLD Carbon (CH\u2084)", "BOLD Recycling"]).meta({
|
|
28335
28335
|
title: "Methodology Short Name",
|
|
28336
|
-
description: "Abbreviated name for UI display and references",
|
|
28336
|
+
description: "Abbreviated/short name of the methodology used for UI display and references",
|
|
28337
28337
|
examples: ["BOLD Carbon (CH\u2084)", "BOLD Recycling"]
|
|
28338
28338
|
});
|
|
28339
28339
|
var MethodologySlugSchema = zod.z.enum(["bold-recycling", "bold-carbon-ch4"]).meta({
|
|
@@ -28398,7 +28398,7 @@ var BaseIpfsSchema = zod.z.strictObject({
|
|
|
28398
28398
|
example: "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/shared/base/base.schema.json"
|
|
28399
28399
|
}),
|
|
28400
28400
|
schema: SchemaInfoSchema,
|
|
28401
|
-
created_at:
|
|
28401
|
+
created_at: IsoDateTimeSchema.meta({
|
|
28402
28402
|
title: "Created At",
|
|
28403
28403
|
description: "ISO 8601 creation timestamp for this record"
|
|
28404
28404
|
}),
|
|
@@ -28682,15 +28682,15 @@ var MassIDRecyclingDateAttributeSchema = NftAttributeSchema.omit({
|
|
|
28682
28682
|
title: "MassID Recycling Date Attribute",
|
|
28683
28683
|
description: "MassID recycling date attribute using Unix timestamp in milliseconds"
|
|
28684
28684
|
});
|
|
28685
|
-
var
|
|
28686
|
-
title: "
|
|
28687
|
-
description: "Result of
|
|
28685
|
+
var AuditResultSchema = zod.z.enum(["PASSED", "FAILED"]).meta({
|
|
28686
|
+
title: "Audit Result",
|
|
28687
|
+
description: "Result of audit execution",
|
|
28688
28688
|
examples: ["PASSED", "FAILED"]
|
|
28689
28689
|
});
|
|
28690
28690
|
var AuditReferenceSchema = zod.z.strictObject({
|
|
28691
|
-
|
|
28692
|
-
title: "Audit
|
|
28693
|
-
description: "
|
|
28691
|
+
completed_at: IsoDateTimeSchema.meta({
|
|
28692
|
+
title: "Audit Completion Timestamp",
|
|
28693
|
+
description: "ISO 8601 timestamp when the audit was completed"
|
|
28694
28694
|
}),
|
|
28695
28695
|
external_id: ExternalIdSchema.meta({
|
|
28696
28696
|
title: "Audit External ID",
|
|
@@ -28700,15 +28700,15 @@ var AuditReferenceSchema = zod.z.strictObject({
|
|
|
28700
28700
|
title: "Audit External URL",
|
|
28701
28701
|
description: "URL to view the audit on Carrot Explorer"
|
|
28702
28702
|
}),
|
|
28703
|
-
|
|
28704
|
-
title: "
|
|
28705
|
-
description: "Result of
|
|
28703
|
+
result: AuditResultSchema.meta({
|
|
28704
|
+
title: "Audit Result",
|
|
28705
|
+
description: "Result of audit execution"
|
|
28706
28706
|
}),
|
|
28707
28707
|
rules_executed: NonNegativeIntegerSchema.meta({
|
|
28708
28708
|
title: "Rules Executed",
|
|
28709
28709
|
description: "Number of rules executed during the audit"
|
|
28710
28710
|
}),
|
|
28711
|
-
|
|
28711
|
+
report_uri: IpfsUriSchema.meta({
|
|
28712
28712
|
title: "Audit Report",
|
|
28713
28713
|
description: "IPFS URI of the audit report"
|
|
28714
28714
|
})
|
|
@@ -28716,18 +28716,82 @@ var AuditReferenceSchema = zod.z.strictObject({
|
|
|
28716
28716
|
title: "Audit Reference",
|
|
28717
28717
|
description: "Reference to an audit record"
|
|
28718
28718
|
});
|
|
28719
|
+
var GasIDReferenceSchema = zod.z.strictObject({
|
|
28720
|
+
external_id: ExternalIdSchema.meta({
|
|
28721
|
+
title: "GasID External ID",
|
|
28722
|
+
description: "Unique identifier for the GasID"
|
|
28723
|
+
}),
|
|
28724
|
+
token_id: TokenIdSchema.meta({
|
|
28725
|
+
title: "GasID Token ID",
|
|
28726
|
+
description: "NFT token ID of the GasID"
|
|
28727
|
+
}),
|
|
28728
|
+
external_url: ExternalUrlSchema.meta({
|
|
28729
|
+
title: "GasID External URL",
|
|
28730
|
+
description: "URL to view the GasID on Carrot Explorer"
|
|
28731
|
+
}),
|
|
28732
|
+
ipfs_uri: IpfsUriSchema.meta({
|
|
28733
|
+
title: "GasID IPFS URI",
|
|
28734
|
+
description: "IPFS URI of the GasID record"
|
|
28735
|
+
})
|
|
28736
|
+
}).meta({
|
|
28737
|
+
title: "GasID Reference",
|
|
28738
|
+
description: "Reference to a GasID record"
|
|
28739
|
+
});
|
|
28740
|
+
var MassIDReferenceSchema = zod.z.strictObject({
|
|
28741
|
+
external_id: ExternalIdSchema.meta({
|
|
28742
|
+
title: "MassID External ID",
|
|
28743
|
+
description: "Unique identifier for the MassID"
|
|
28744
|
+
}),
|
|
28745
|
+
token_id: TokenIdSchema.meta({
|
|
28746
|
+
title: "MassID Token ID",
|
|
28747
|
+
description: "NFT token ID of the MassID"
|
|
28748
|
+
}),
|
|
28749
|
+
external_url: ExternalUrlSchema.meta({
|
|
28750
|
+
title: "MassID External URL",
|
|
28751
|
+
description: "URL to view the MassID on Carrot Explorer"
|
|
28752
|
+
}),
|
|
28753
|
+
ipfs_uri: IpfsUriSchema.meta({
|
|
28754
|
+
title: "MassID IPFS URI",
|
|
28755
|
+
description: "IPFS URI of the MassID record"
|
|
28756
|
+
})
|
|
28757
|
+
}).meta({
|
|
28758
|
+
title: "MassID Reference",
|
|
28759
|
+
description: "Reference to a MassID record"
|
|
28760
|
+
});
|
|
28761
|
+
var MethodologyReferenceSchema = zod.z.strictObject({
|
|
28762
|
+
external_id: ExternalIdSchema.meta({
|
|
28763
|
+
title: "Methodology External ID",
|
|
28764
|
+
description: "Unique identifier for the methodology"
|
|
28765
|
+
}),
|
|
28766
|
+
name: MethodologyNameSchema,
|
|
28767
|
+
version: SemanticVersionSchema.meta({
|
|
28768
|
+
title: "Methodology Version",
|
|
28769
|
+
description: "Version of the methodology"
|
|
28770
|
+
}),
|
|
28771
|
+
external_url: ExternalUrlSchema.meta({
|
|
28772
|
+
title: "Methodology External URL",
|
|
28773
|
+
description: "URL to view the methodology on Carrot Explorer"
|
|
28774
|
+
}),
|
|
28775
|
+
ipfs_uri: IpfsUriSchema.meta({
|
|
28776
|
+
title: "Methodology IPFS URI",
|
|
28777
|
+
description: "IPFS URI to the methodology record"
|
|
28778
|
+
})
|
|
28779
|
+
}).meta({
|
|
28780
|
+
title: "Methodology Reference",
|
|
28781
|
+
description: "Reference to a methodology record"
|
|
28782
|
+
});
|
|
28719
28783
|
|
|
28720
28784
|
// src/shared/schemas/audit.schema.ts
|
|
28721
28785
|
var AuditRuleDefinitionSchema = zod.z.strictObject({
|
|
28722
|
-
|
|
28786
|
+
id: UuidSchema.meta({
|
|
28723
28787
|
title: "Rule ID",
|
|
28724
28788
|
description: "Unique identifier for the audit rule"
|
|
28725
28789
|
}),
|
|
28726
|
-
|
|
28790
|
+
slug: SlugSchema.meta({
|
|
28727
28791
|
title: "Rule Slug",
|
|
28728
28792
|
description: "URL-friendly identifier for the rule"
|
|
28729
28793
|
}),
|
|
28730
|
-
|
|
28794
|
+
name: NonEmptyStringSchema.max(100).meta({
|
|
28731
28795
|
title: "Rule Name",
|
|
28732
28796
|
description: "Human-readable name of the rule",
|
|
28733
28797
|
examples: ["Waste Mass is Unique", "No Conflicting GasID or Credit"]
|
|
@@ -28754,35 +28818,103 @@ var AuditRuleDefinitionSchema = zod.z.strictObject({
|
|
|
28754
28818
|
title: "Audit Rule Definition",
|
|
28755
28819
|
description: "Definition of an audit rule that must be executed for methodology compliance"
|
|
28756
28820
|
});
|
|
28757
|
-
var AuditRuleDefinitionsSchema = zod.z.array(AuditRuleDefinitionSchema).min(1).
|
|
28821
|
+
var AuditRuleDefinitionsSchema = zod.z.array(AuditRuleDefinitionSchema).min(1).superRefine((rules, ctx) => {
|
|
28822
|
+
const ruleIds = /* @__PURE__ */ new Set();
|
|
28823
|
+
const ruleSlugs = /* @__PURE__ */ new Set();
|
|
28824
|
+
const executionOrders = /* @__PURE__ */ new Set();
|
|
28825
|
+
for (let i = 0; i < rules.length; i++) {
|
|
28826
|
+
const rule = rules[i];
|
|
28827
|
+
if (ruleIds.has(rule.id)) {
|
|
28828
|
+
ctx.addIssue({
|
|
28829
|
+
code: "custom",
|
|
28830
|
+
message: `Duplicate id found: ${rule.id}`,
|
|
28831
|
+
path: [i, "id"]
|
|
28832
|
+
});
|
|
28833
|
+
} else {
|
|
28834
|
+
ruleIds.add(rule.id);
|
|
28835
|
+
}
|
|
28836
|
+
if (ruleSlugs.has(rule.slug)) {
|
|
28837
|
+
ctx.addIssue({
|
|
28838
|
+
code: "custom",
|
|
28839
|
+
message: `Duplicate slug found: ${rule.slug}`,
|
|
28840
|
+
path: [i, "slug"]
|
|
28841
|
+
});
|
|
28842
|
+
} else {
|
|
28843
|
+
ruleSlugs.add(rule.slug);
|
|
28844
|
+
}
|
|
28845
|
+
if (executionOrders.has(rule.execution_order)) {
|
|
28846
|
+
ctx.addIssue({
|
|
28847
|
+
code: "custom",
|
|
28848
|
+
message: `Duplicate execution_order found: ${rule.execution_order}`,
|
|
28849
|
+
path: [i, "execution_order"]
|
|
28850
|
+
});
|
|
28851
|
+
} else {
|
|
28852
|
+
executionOrders.add(rule.execution_order);
|
|
28853
|
+
}
|
|
28854
|
+
}
|
|
28855
|
+
for (let i = 1; i < rules.length; i++) {
|
|
28856
|
+
const previousOrder = rules[i - 1].execution_order;
|
|
28857
|
+
const currentOrder = rules[i].execution_order;
|
|
28858
|
+
if (currentOrder < previousOrder) {
|
|
28859
|
+
ctx.addIssue({
|
|
28860
|
+
code: "custom",
|
|
28861
|
+
message: `Rules must be sorted by execution_order. Found order ${currentOrder} after ${previousOrder}`,
|
|
28862
|
+
path: [i, "execution_order"]
|
|
28863
|
+
});
|
|
28864
|
+
}
|
|
28865
|
+
}
|
|
28866
|
+
}).meta({
|
|
28758
28867
|
title: "Audit Rule Definitions",
|
|
28759
|
-
description: "List of audit rules that must be executed to check methodology compliance"
|
|
28868
|
+
description: "List of audit rules that must be executed to check methodology compliance, sorted by execution order"
|
|
28760
28869
|
});
|
|
28761
28870
|
var AuditRuleExecutionResultSchema = zod.z.strictObject({
|
|
28762
|
-
rule_name: NonEmptyStringSchema.meta({
|
|
28763
|
-
title: "Rule Name",
|
|
28764
|
-
description: "Human-readable name of the audit rule"
|
|
28765
|
-
}),
|
|
28766
28871
|
rule_id: UuidSchema.meta({
|
|
28767
28872
|
title: "Rule ID",
|
|
28768
|
-
description: "Unique identifier for the rule"
|
|
28873
|
+
description: "Unique identifier for the audit rule"
|
|
28769
28874
|
}),
|
|
28770
28875
|
rule_slug: SlugSchema.meta({
|
|
28771
28876
|
title: "Rule Slug",
|
|
28772
28877
|
description: "URL-friendly identifier for the rule"
|
|
28773
28878
|
}),
|
|
28774
|
-
|
|
28879
|
+
rule_name: NonEmptyStringSchema.max(100).meta({
|
|
28880
|
+
title: "Rule Name",
|
|
28881
|
+
description: "Human-readable name of the rule",
|
|
28882
|
+
examples: ["Waste Mass is Unique", "No Conflicting GasID or Credit"]
|
|
28883
|
+
}),
|
|
28884
|
+
rule_description: zod.z.string().min(10).max(500).meta({
|
|
28885
|
+
title: "Rule Description",
|
|
28886
|
+
description: "Detailed description of what the rule validates and why it is necessary",
|
|
28887
|
+
examples: [
|
|
28888
|
+
"Validates that each MassID is unique within the system to prevent duplicate entries"
|
|
28889
|
+
]
|
|
28890
|
+
}),
|
|
28891
|
+
rule_source_code_url: zod.z.url().regex(/^https:\/\/github\.com\/.*$/, "Must be a GitHub URL").meta({
|
|
28892
|
+
title: "Rule Source Code URL",
|
|
28893
|
+
description: "GitHub URL pointing to the implementation source code for this rule",
|
|
28894
|
+
examples: [
|
|
28895
|
+
"https://github.com/carrot-foundation/methodologies/blob/main/bold-carbon/rules/waste-mass-unique.js"
|
|
28896
|
+
]
|
|
28897
|
+
}),
|
|
28898
|
+
rule_execution_order: PositiveIntegerSchema.meta({
|
|
28775
28899
|
title: "Rule Execution Order",
|
|
28776
|
-
description: "Sequential order in which this rule
|
|
28900
|
+
description: "Sequential order in which this rule must be executed"
|
|
28901
|
+
}),
|
|
28902
|
+
execution_id: UuidSchema.meta({
|
|
28903
|
+
title: "Execution ID",
|
|
28904
|
+
description: "Unique identifier for this specific rule execution"
|
|
28777
28905
|
}),
|
|
28778
|
-
|
|
28906
|
+
execution_started_at: IsoDateTimeSchema.meta({
|
|
28907
|
+
title: "Execution Started At",
|
|
28908
|
+
description: "ISO 8601 timestamp when the rule execution started"
|
|
28909
|
+
}),
|
|
28910
|
+
execution_completed_at: IsoDateTimeSchema.meta({
|
|
28911
|
+
title: "Execution Completed At",
|
|
28912
|
+
description: "ISO 8601 timestamp when the rule execution completed"
|
|
28913
|
+
}),
|
|
28914
|
+
result: AuditResultSchema.meta({
|
|
28779
28915
|
title: "Rule Execution Result",
|
|
28780
28916
|
description: "Result of the rule execution"
|
|
28781
28917
|
}),
|
|
28782
|
-
description: zod.z.string().min(1).max(2e3).meta({
|
|
28783
|
-
title: "Rule Description",
|
|
28784
|
-
description: "Detailed description of what this rule validates"
|
|
28785
|
-
}),
|
|
28786
28918
|
rule_processor_checksum: NonEmptyStringSchema.max(200).meta({
|
|
28787
28919
|
title: "Rule Processor Checksum",
|
|
28788
28920
|
description: "Checksum for rule processor integrity verification"
|
|
@@ -28795,9 +28927,38 @@ var AuditRuleExecutionResultSchema = zod.z.strictObject({
|
|
|
28795
28927
|
title: "Audit Rule Execution Result",
|
|
28796
28928
|
description: "Detailed result of an audit rule execution"
|
|
28797
28929
|
});
|
|
28798
|
-
var AuditRuleExecutionResultsSchema = zod.z.array(AuditRuleExecutionResultSchema).
|
|
28930
|
+
var AuditRuleExecutionResultsSchema = zod.z.array(AuditRuleExecutionResultSchema).min(1).superRefine((results, ctx) => {
|
|
28931
|
+
const executionIds = /* @__PURE__ */ new Set();
|
|
28932
|
+
for (let i = 0; i < results.length; i++) {
|
|
28933
|
+
const result = results[i];
|
|
28934
|
+
if (executionIds.has(result.execution_id)) {
|
|
28935
|
+
ctx.addIssue({
|
|
28936
|
+
code: "custom",
|
|
28937
|
+
message: `Duplicate execution_id found: ${result.execution_id}`,
|
|
28938
|
+
path: [i, "execution_id"]
|
|
28939
|
+
});
|
|
28940
|
+
} else {
|
|
28941
|
+
executionIds.add(result.execution_id);
|
|
28942
|
+
}
|
|
28943
|
+
}
|
|
28944
|
+
for (let i = 1; i < results.length; i++) {
|
|
28945
|
+
const previousStartedAt = new Date(
|
|
28946
|
+
results[i - 1].execution_started_at
|
|
28947
|
+
).getTime();
|
|
28948
|
+
const currentStartedAt = new Date(
|
|
28949
|
+
results[i].execution_started_at
|
|
28950
|
+
).getTime();
|
|
28951
|
+
if (currentStartedAt < previousStartedAt) {
|
|
28952
|
+
ctx.addIssue({
|
|
28953
|
+
code: "custom",
|
|
28954
|
+
message: `Results must be sorted by execution_started_at. Found timestamp ${results[i].execution_started_at} before ${results[i - 1].execution_started_at}`,
|
|
28955
|
+
path: [i, "execution_started_at"]
|
|
28956
|
+
});
|
|
28957
|
+
}
|
|
28958
|
+
}
|
|
28959
|
+
}).meta({
|
|
28799
28960
|
title: "Audit Rule Execution Results",
|
|
28800
|
-
description: "Detailed results of each audit rule execution"
|
|
28961
|
+
description: "Detailed results of each audit rule execution, sorted by execution_started_at"
|
|
28801
28962
|
});
|
|
28802
28963
|
var ParticipantSchema = zod.z.strictObject({
|
|
28803
28964
|
id_hash: Sha256HashSchema.meta({
|
|
@@ -28841,74 +29002,6 @@ var LocationSchema = zod.z.strictObject({
|
|
|
28841
29002
|
title: "Location",
|
|
28842
29003
|
description: "Geographic location with address and coordinate information"
|
|
28843
29004
|
});
|
|
28844
|
-
var GasIDReferenceSchema = zod.z.strictObject({
|
|
28845
|
-
external_id: ExternalIdSchema.meta({
|
|
28846
|
-
title: "GasID External ID",
|
|
28847
|
-
description: "Unique identifier for the GasID"
|
|
28848
|
-
}),
|
|
28849
|
-
token_id: TokenIdSchema.meta({
|
|
28850
|
-
title: "GasID Token ID",
|
|
28851
|
-
description: "NFT token ID of the GasID"
|
|
28852
|
-
}),
|
|
28853
|
-
external_url: ExternalUrlSchema.meta({
|
|
28854
|
-
title: "GasID External URL",
|
|
28855
|
-
description: "URL to view the GasID on Carrot Explorer"
|
|
28856
|
-
}),
|
|
28857
|
-
uri: IpfsUriSchema.meta({
|
|
28858
|
-
title: "GasID IPFS URI",
|
|
28859
|
-
description: "IPFS URI of the GasID record"
|
|
28860
|
-
})
|
|
28861
|
-
}).meta({
|
|
28862
|
-
title: "GasID Reference",
|
|
28863
|
-
description: "Reference to a GasID record"
|
|
28864
|
-
});
|
|
28865
|
-
var MassIDReferenceSchema = zod.z.strictObject({
|
|
28866
|
-
external_id: ExternalIdSchema.meta({
|
|
28867
|
-
title: "MassID External ID",
|
|
28868
|
-
description: "Unique identifier for the MassID"
|
|
28869
|
-
}),
|
|
28870
|
-
token_id: TokenIdSchema.meta({
|
|
28871
|
-
title: "MassID Token ID",
|
|
28872
|
-
description: "NFT token ID of the MassID"
|
|
28873
|
-
}),
|
|
28874
|
-
external_url: ExternalUrlSchema.meta({
|
|
28875
|
-
title: "MassID External URL",
|
|
28876
|
-
description: "URL to view the MassID on Carrot Explorer"
|
|
28877
|
-
}),
|
|
28878
|
-
uri: IpfsUriSchema.meta({
|
|
28879
|
-
title: "MassID IPFS URI",
|
|
28880
|
-
description: "IPFS URI of the MassID record"
|
|
28881
|
-
})
|
|
28882
|
-
}).meta({
|
|
28883
|
-
title: "MassID Reference",
|
|
28884
|
-
description: "Reference to a MassID record"
|
|
28885
|
-
});
|
|
28886
|
-
var MethodologyReferenceSchema = zod.z.strictObject({
|
|
28887
|
-
external_id: ExternalIdSchema.meta({
|
|
28888
|
-
title: "Methodology External ID",
|
|
28889
|
-
description: "Unique identifier for the methodology"
|
|
28890
|
-
}),
|
|
28891
|
-
name: NonEmptyStringSchema.min(5).max(150).meta({
|
|
28892
|
-
title: "Methodology Name",
|
|
28893
|
-
description: "Human-readable name of the methodology",
|
|
28894
|
-
examples: ["BOLD Carbon (CH\u2084)", "BOLD Recycling"]
|
|
28895
|
-
}),
|
|
28896
|
-
version: SemanticVersionSchema.meta({
|
|
28897
|
-
title: "Methodology Version",
|
|
28898
|
-
description: "Version of the methodology"
|
|
28899
|
-
}),
|
|
28900
|
-
external_url: ExternalUrlSchema.meta({
|
|
28901
|
-
title: "Methodology External URL",
|
|
28902
|
-
description: "URL to view the methodology on Carrot Explorer"
|
|
28903
|
-
}),
|
|
28904
|
-
uri: IpfsUriSchema.optional().meta({
|
|
28905
|
-
title: "Methodology IPFS URI",
|
|
28906
|
-
description: "IPFS URI to the methodology record"
|
|
28907
|
-
})
|
|
28908
|
-
}).meta({
|
|
28909
|
-
title: "Methodology Reference",
|
|
28910
|
-
description: "Reference to a methodology record"
|
|
28911
|
-
});
|
|
28912
29005
|
var WasteClassificationSchema = zod.z.strictObject({
|
|
28913
29006
|
primary_type: WasteTypeSchema.meta({
|
|
28914
29007
|
title: "Source Waste Primary Type",
|
|
@@ -29200,7 +29293,7 @@ function buildSchemaUrl(schemaPath) {
|
|
|
29200
29293
|
return `${getSchemaBaseUrl()}/${cleanPath}`;
|
|
29201
29294
|
}
|
|
29202
29295
|
function getSchemaVersionOrDefault() {
|
|
29203
|
-
return "0.1.
|
|
29296
|
+
return "0.1.48";
|
|
29204
29297
|
}
|
|
29205
29298
|
|
|
29206
29299
|
// src/shared/schema-validation.ts
|
|
@@ -29514,7 +29607,7 @@ var MassIDAttributesSchema = uniqueBy(
|
|
|
29514
29607
|
(attr) => attr.trait_type
|
|
29515
29608
|
).min(9).max(14).meta({
|
|
29516
29609
|
title: "MassID Attributes",
|
|
29517
|
-
description: "
|
|
29610
|
+
description: "Array of NFT attributes describing waste characteristics, origin, logistics, and lifecycle events."
|
|
29518
29611
|
});
|
|
29519
29612
|
var MassIDLocalClassificationSchema = zod.z.strictObject({
|
|
29520
29613
|
code: IbamaWasteClassificationSchema,
|
|
@@ -29558,7 +29651,7 @@ var MassIDAttachmentSchema = zod.z.strictObject({
|
|
|
29558
29651
|
description: "Official document number if applicable",
|
|
29559
29652
|
examples: ["2353", "12345"]
|
|
29560
29653
|
}),
|
|
29561
|
-
issued_at:
|
|
29654
|
+
issued_at: IsoDateTimeSchema.optional().meta({
|
|
29562
29655
|
title: "Issued At",
|
|
29563
29656
|
description: "ISO 8601 timestamp when the attachment was issued"
|
|
29564
29657
|
}),
|
|
@@ -29575,7 +29668,7 @@ var MassIDBaseEventSchema = zod.z.strictObject({
|
|
|
29575
29668
|
title: "Event ID",
|
|
29576
29669
|
description: "Unique event identifier"
|
|
29577
29670
|
}),
|
|
29578
|
-
timestamp:
|
|
29671
|
+
timestamp: IsoDateTimeSchema.meta({
|
|
29579
29672
|
title: "Event Timestamp",
|
|
29580
29673
|
description: "ISO 8601 timestamp when the event occurred"
|
|
29581
29674
|
}),
|
|
@@ -31285,15 +31378,8 @@ var CreditSchema = BaseIpfsSchema.safeExtend({
|
|
|
31285
31378
|
})
|
|
31286
31379
|
}).meta(CreditSchemaMeta);
|
|
31287
31380
|
var MethodologyDataSchema = zod.z.strictObject({
|
|
31288
|
-
name: MethodologyNameSchema
|
|
31289
|
-
|
|
31290
|
-
description: "Full official name of the methodology"
|
|
31291
|
-
}),
|
|
31292
|
-
short_name: NonEmptyStringSchema.max(50).meta({
|
|
31293
|
-
title: "Methodology Short Name",
|
|
31294
|
-
description: "Abbreviated name for UI display and references",
|
|
31295
|
-
examples: ["BOLD Carbon", "BOLD Recycling"]
|
|
31296
|
-
}),
|
|
31381
|
+
name: MethodologyNameSchema,
|
|
31382
|
+
short_name: MethodologyShortNameSchema,
|
|
31297
31383
|
slug: MethodologySlugSchema,
|
|
31298
31384
|
version: SemanticVersionSchema.meta({
|
|
31299
31385
|
title: "Methodology Version",
|
|
@@ -31341,26 +31427,28 @@ var MethodologySchema = BaseIpfsSchema.safeExtend({
|
|
|
31341
31427
|
data: MethodologyDataSchema
|
|
31342
31428
|
}).meta(MethodologySchemaMeta);
|
|
31343
31429
|
var MassIDAuditSummarySchema = zod.z.strictObject({
|
|
31344
|
-
|
|
31345
|
-
title: "Audit
|
|
31346
|
-
description: "
|
|
31347
|
-
}),
|
|
31348
|
-
methodology_compliance: MethodologyComplianceSchema.meta({
|
|
31349
|
-
title: "Methodology Compliance",
|
|
31350
|
-
description: "Overall outcome of the audit process"
|
|
31351
|
-
}),
|
|
31352
|
-
total_rules_executed: NonNegativeIntegerSchema.meta({
|
|
31353
|
-
title: "Total Rules Executed",
|
|
31354
|
-
description: "Total number of audit rules executed"
|
|
31430
|
+
started_at: IsoDateTimeSchema.meta({
|
|
31431
|
+
title: "Audit Start Timestamp",
|
|
31432
|
+
description: "ISO 8601 timestamp when the audit was started"
|
|
31355
31433
|
}),
|
|
31356
|
-
|
|
31357
|
-
title: "
|
|
31358
|
-
description: "
|
|
31434
|
+
completed_at: IsoDateTimeSchema.meta({
|
|
31435
|
+
title: "Audit Completion Timestamp",
|
|
31436
|
+
description: "ISO 8601 timestamp when the audit was completed"
|
|
31359
31437
|
}),
|
|
31360
|
-
|
|
31361
|
-
title: "
|
|
31362
|
-
description: "
|
|
31438
|
+
result: AuditResultSchema.meta({
|
|
31439
|
+
title: "Audit Result",
|
|
31440
|
+
description: "Overall outcome of the audit process"
|
|
31363
31441
|
})
|
|
31442
|
+
}).superRefine((data, ctx) => {
|
|
31443
|
+
const startedAt = new Date(data.started_at).getTime();
|
|
31444
|
+
const completedAt = new Date(data.completed_at).getTime();
|
|
31445
|
+
if (completedAt < startedAt) {
|
|
31446
|
+
ctx.addIssue({
|
|
31447
|
+
code: "custom",
|
|
31448
|
+
path: ["completed_at"],
|
|
31449
|
+
message: "completed_at must be greater than or equal to started_at"
|
|
31450
|
+
});
|
|
31451
|
+
}
|
|
31364
31452
|
}).meta({
|
|
31365
31453
|
title: "Audit Summary",
|
|
31366
31454
|
description: "Summary of audit execution results"
|
|
@@ -31370,7 +31458,7 @@ var MassIDAuditDataSchema = zod.z.strictObject({
|
|
|
31370
31458
|
mass_id: MassIDReferenceSchema,
|
|
31371
31459
|
gas_id: GasIDReferenceSchema,
|
|
31372
31460
|
audit_summary: MassIDAuditSummarySchema,
|
|
31373
|
-
|
|
31461
|
+
rule_execution_results: AuditRuleExecutionResultsSchema
|
|
31374
31462
|
}).meta({
|
|
31375
31463
|
title: "MassID Audit Data",
|
|
31376
31464
|
description: "Complete data structure for MassID Audit records"
|
|
@@ -31397,6 +31485,7 @@ exports.ALLOWED_BLOCKCHAIN_NETWORKS = ALLOWED_BLOCKCHAIN_NETWORKS;
|
|
|
31397
31485
|
exports.AccreditedParticipantSchema = AccreditedParticipantSchema;
|
|
31398
31486
|
exports.AccreditedParticipantsSchema = AccreditedParticipantsSchema;
|
|
31399
31487
|
exports.AuditReferenceSchema = AuditReferenceSchema;
|
|
31488
|
+
exports.AuditResultSchema = AuditResultSchema;
|
|
31400
31489
|
exports.AuditRuleDefinitionSchema = AuditRuleDefinitionSchema;
|
|
31401
31490
|
exports.AuditRuleDefinitionsSchema = AuditRuleDefinitionsSchema;
|
|
31402
31491
|
exports.AuditRuleExecutionResultSchema = AuditRuleExecutionResultSchema;
|
|
@@ -31454,7 +31543,7 @@ exports.IpnsSchema = IpnsSchema;
|
|
|
31454
31543
|
exports.IsoCountryCodeSchema = IsoCountryCodeSchema;
|
|
31455
31544
|
exports.IsoCountrySubdivisionCodeSchema = IsoCountrySubdivisionCodeSchema;
|
|
31456
31545
|
exports.IsoDateSchema = IsoDateSchema;
|
|
31457
|
-
exports.
|
|
31546
|
+
exports.IsoDateTimeSchema = IsoDateTimeSchema;
|
|
31458
31547
|
exports.LatitudeSchema = LatitudeSchema;
|
|
31459
31548
|
exports.LocationSchema = LocationSchema;
|
|
31460
31549
|
exports.LongitudeSchema = LongitudeSchema;
|
|
@@ -31462,6 +31551,7 @@ exports.MassIDAttributesSchema = MassIDAttributesSchema;
|
|
|
31462
31551
|
exports.MassIDAuditDataSchema = MassIDAuditDataSchema;
|
|
31463
31552
|
exports.MassIDAuditSchema = MassIDAuditSchema;
|
|
31464
31553
|
exports.MassIDAuditSchemaMeta = MassIDAuditSchemaMeta;
|
|
31554
|
+
exports.MassIDAuditSummarySchema = MassIDAuditSummarySchema;
|
|
31465
31555
|
exports.MassIDDataSchema = MassIDDataSchema;
|
|
31466
31556
|
exports.MassIDIpfsSchema = MassIDIpfsSchema;
|
|
31467
31557
|
exports.MassIDIpfsSchemaMeta = MassIDIpfsSchemaMeta;
|
|
@@ -31470,7 +31560,6 @@ exports.MassIDReferenceSchema = MassIDReferenceSchema;
|
|
|
31470
31560
|
exports.MassIDTokenIdAttributeSchema = MassIDTokenIdAttributeSchema;
|
|
31471
31561
|
exports.MassIdReferenceWithContractSchema = MassIdReferenceWithContractSchema;
|
|
31472
31562
|
exports.MethodologyAttributeSchema = MethodologyAttributeSchema;
|
|
31473
|
-
exports.MethodologyComplianceSchema = MethodologyComplianceSchema;
|
|
31474
31563
|
exports.MethodologyDataSchema = MethodologyDataSchema;
|
|
31475
31564
|
exports.MethodologyNameSchema = MethodologyNameSchema;
|
|
31476
31565
|
exports.MethodologyReferenceSchema = MethodologyReferenceSchema;
|