@carrot-foundation/schemas 0.2.4 → 0.3.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.
- package/README.md +144 -116
- package/dist/index.cjs +115 -113
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +115 -113
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/schemas/ipfs/collection/collection.example.json +3 -3
- package/schemas/ipfs/collection/collection.schema.json +7 -7
- package/schemas/ipfs/credit/credit.example.json +4 -4
- package/schemas/ipfs/credit/credit.schema.json +6 -6
- package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.example.json +15 -15
- package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.schema.json +56 -56
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.example.json +15 -15
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.schema.json +54 -54
- package/schemas/ipfs/gas-id/gas-id.example.json +9 -9
- package/schemas/ipfs/gas-id/gas-id.schema.json +49 -41
- package/schemas/ipfs/mass-id/mass-id.example.json +7 -7
- package/schemas/ipfs/mass-id/mass-id.schema.json +60 -43
- package/schemas/ipfs/mass-id-audit/mass-id-audit.example.json +57 -57
- package/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json +14 -14
- package/schemas/ipfs/methodology/methodology.example.json +5 -5
- package/schemas/ipfs/methodology/methodology.schema.json +7 -7
- package/schemas/ipfs/recycled-id/recycled-id.example.json +9 -9
- package/schemas/ipfs/recycled-id/recycled-id.schema.json +43 -35
- package/schemas/schema-hashes.json +10 -10
package/dist/index.cjs
CHANGED
|
@@ -13,8 +13,8 @@ var canonicalize__default = /*#__PURE__*/_interopDefault(canonicalize);
|
|
|
13
13
|
// src/mass-id/mass-id.attributes.ts
|
|
14
14
|
var NonEmptyStringSchema = zod.z.string().min(1, "Cannot be empty").meta({
|
|
15
15
|
title: "Non-Empty String",
|
|
16
|
-
description: "A string
|
|
17
|
-
examples: ["
|
|
16
|
+
description: "A non-empty string (minimum one character)",
|
|
17
|
+
examples: ["example-value", "Hello World"]
|
|
18
18
|
});
|
|
19
19
|
var SlugSchema = NonEmptyStringSchema.regex(
|
|
20
20
|
/^[a-z0-9-]+$/,
|
|
@@ -64,7 +64,8 @@ var PositiveIntegerSchema = zod.z.number().int().min(1).meta({
|
|
|
64
64
|
});
|
|
65
65
|
var CreditAmountSchema = NonNegativeFloatSchema.meta({
|
|
66
66
|
title: "Credit Amount",
|
|
67
|
-
description: "
|
|
67
|
+
description: "Number of environmental impact credits issued, purchased, or retired",
|
|
68
|
+
examples: [1.5, 100, 2500.75]
|
|
68
69
|
});
|
|
69
70
|
var UsdcAmountSchema = NonNegativeFloatSchema.refine(
|
|
70
71
|
(value) => {
|
|
@@ -28041,16 +28042,16 @@ var IsoCountrySubdivisionCodeSchema = zod.z.string().regex(
|
|
|
28041
28042
|
"Must be a valid Brazil subdivision code"
|
|
28042
28043
|
).meta({
|
|
28043
28044
|
title: "Country Subdivision Code",
|
|
28044
|
-
description: "
|
|
28045
|
-
examples: ["BR-AP", "BR-DF"]
|
|
28045
|
+
description: "State or region code following the ISO 3166-2 standard (e.g., BR-SP for S\xE3o Paulo)",
|
|
28046
|
+
examples: ["BR-SP", "BR-RS", "BR-AP", "BR-DF"]
|
|
28046
28047
|
});
|
|
28047
28048
|
var CitySchema = NonEmptyStringSchema.max(50).refine(
|
|
28048
28049
|
(data) => BRAZIL_MUNICIPALITIES.some((municipality) => municipality.name === data),
|
|
28049
28050
|
"Must be a valid Brazil municipality"
|
|
28050
28051
|
).meta({
|
|
28051
28052
|
title: "City",
|
|
28052
|
-
description: "
|
|
28053
|
-
examples: ["Bras\xEDlia", "S\xE3o Paulo"]
|
|
28053
|
+
description: "Name of the Brazilian municipality where the activity takes place",
|
|
28054
|
+
examples: ["Bras\xEDlia", "S\xE3o Paulo", "Carazinho", "Jundia\xED"]
|
|
28054
28055
|
});
|
|
28055
28056
|
var LatitudeSchema = zod.z.number().min(-90).max(90).multipleOf(0.1).meta({
|
|
28056
28057
|
title: "Latitude",
|
|
@@ -28117,7 +28118,7 @@ var UuidSchema = zod.z.uuidv4().meta({
|
|
|
28117
28118
|
});
|
|
28118
28119
|
var ExternalIdSchema = UuidSchema.meta({
|
|
28119
28120
|
title: "External ID",
|
|
28120
|
-
description: "UUID identifier
|
|
28121
|
+
description: "UUID v4 identifier linking this IPFS record to its counterpart in the Carrot platform and other consuming systems"
|
|
28121
28122
|
});
|
|
28122
28123
|
var TokenIdSchema = NonEmptyStringSchema.regex(
|
|
28123
28124
|
/^\d+$/,
|
|
@@ -28131,9 +28132,10 @@ var StringifiedTokenIdSchema = NonEmptyStringSchema.regex(
|
|
|
28131
28132
|
/^#\d+$/,
|
|
28132
28133
|
"Must match pattern #<token_id>"
|
|
28133
28134
|
).meta({
|
|
28134
|
-
title: "Token ID",
|
|
28135
|
-
description: "
|
|
28136
|
-
|
|
28135
|
+
title: "Display Token ID",
|
|
28136
|
+
description: "Human-readable token ID prefixed with # for display purposes (e.g., #456789)",
|
|
28137
|
+
examples: ["#456789", "#1000000"],
|
|
28138
|
+
example: "#456789"
|
|
28137
28139
|
});
|
|
28138
28140
|
var Sha256HashSchema = zod.z.hash("sha256", {
|
|
28139
28141
|
error: "Must be a SHA256 hash as 32-byte hex string"
|
|
@@ -28147,7 +28149,7 @@ var Sha256HashSchema = zod.z.hash("sha256", {
|
|
|
28147
28149
|
});
|
|
28148
28150
|
var ParticipantIdHashSchema = Sha256HashSchema.meta({
|
|
28149
28151
|
title: "Participant ID Hash",
|
|
28150
|
-
description: "SHA-256 hash
|
|
28152
|
+
description: "SHA-256 hash anonymizing a participant identity \u2014 used to link records without exposing personal data",
|
|
28151
28153
|
examples: [
|
|
28152
28154
|
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489"
|
|
28153
28155
|
]
|
|
@@ -28222,8 +28224,8 @@ var RecordSchemaTypeSchema = zod.z.enum([
|
|
|
28222
28224
|
"Collection"
|
|
28223
28225
|
]).meta({
|
|
28224
28226
|
title: "Schema Type",
|
|
28225
|
-
description: "
|
|
28226
|
-
examples: ["MassID", "
|
|
28227
|
+
description: "Identifies the record type within the Carrot ecosystem (e.g., MassID for waste tracking, GasID for prevented emissions certificates)",
|
|
28228
|
+
examples: ["MassID", "GasID", "Credit", "CreditPurchaseReceipt"]
|
|
28227
28229
|
});
|
|
28228
28230
|
var CreditTokenNameSchema = zod.z.enum(["Carrot Carbon (CH\u2084)", "Carrot Biowaste"]).meta({
|
|
28229
28231
|
title: "Credit Token Name",
|
|
@@ -28242,12 +28244,12 @@ var CreditTokenSymbolSchema = zod.z.enum(["C-CARB.CH4", "C-BIOW"]).meta({
|
|
|
28242
28244
|
});
|
|
28243
28245
|
var CreditTypeSchema = zod.z.enum(["Biowaste", "Carbon (CH\u2084)"]).meta({
|
|
28244
28246
|
title: "Credit Type",
|
|
28245
|
-
description: "
|
|
28247
|
+
description: "Category of environmental credit \u2014 indicates the impact pathway (biowaste diversion or methane prevention)",
|
|
28246
28248
|
examples: ["Biowaste", "Carbon (CH\u2084)"]
|
|
28247
28249
|
});
|
|
28248
28250
|
var GasTypeSchema = zod.z.enum(["Methane (CH\u2084)"]).meta({
|
|
28249
28251
|
title: "Gas Type",
|
|
28250
|
-
description: "
|
|
28252
|
+
description: "Greenhouse gas type whose emission was prevented through the waste management activity",
|
|
28251
28253
|
examples: ["Methane (CH\u2084)"]
|
|
28252
28254
|
});
|
|
28253
28255
|
var VehicleTypeSchema = zod.z.enum([
|
|
@@ -28263,8 +28265,8 @@ var VehicleTypeSchema = zod.z.enum([
|
|
|
28263
28265
|
"Truck"
|
|
28264
28266
|
]).meta({
|
|
28265
28267
|
title: "Vehicle Type",
|
|
28266
|
-
description: "Type of vehicle used
|
|
28267
|
-
examples: ["Truck"]
|
|
28268
|
+
description: "Type of vehicle used to transport waste between collection and processing sites",
|
|
28269
|
+
examples: ["Truck", "Motorcycle", "Cart"]
|
|
28268
28270
|
});
|
|
28269
28271
|
var ScaleTypeSchema = zod.z.enum([
|
|
28270
28272
|
"Bin Scale",
|
|
@@ -28279,18 +28281,18 @@ var ScaleTypeSchema = zod.z.enum([
|
|
|
28279
28281
|
"Weighbridge (Truck Scale)"
|
|
28280
28282
|
]).meta({
|
|
28281
28283
|
title: "Scale Type",
|
|
28282
|
-
description: "Type of
|
|
28283
|
-
examples: ["Weighbridge (Truck Scale)"]
|
|
28284
|
+
description: "Type of weighing equipment used to measure the waste load at a collection or processing site",
|
|
28285
|
+
examples: ["Weighbridge (Truck Scale)", "Floor Scale"]
|
|
28284
28286
|
});
|
|
28285
28287
|
var WeighingCaptureMethodSchema = zod.z.enum(["Digital", "Manual", "Photo (Scale + Cargo)", "Transport Manifest"]).meta({
|
|
28286
28288
|
title: "Weighing Capture Method",
|
|
28287
|
-
description: "
|
|
28288
|
-
examples: ["Digital", "
|
|
28289
|
+
description: "How the weight measurement was recorded \u2014 digital readout, manual entry, photo evidence, or transport manifest",
|
|
28290
|
+
examples: ["Digital", "Photo (Scale + Cargo)"]
|
|
28289
28291
|
});
|
|
28290
28292
|
var ContainerTypeSchema = zod.z.enum(["Bag", "Bin", "Drum", "Pail", "Street Bin", "Truck", "Waste Box"]).meta({
|
|
28291
28293
|
title: "Container Type",
|
|
28292
|
-
description: "Type of container
|
|
28293
|
-
examples: ["Bag", "Bin"]
|
|
28294
|
+
description: "Type of container used to hold or transport the waste material",
|
|
28295
|
+
examples: ["Bag", "Bin", "Truck"]
|
|
28294
28296
|
});
|
|
28295
28297
|
var CollectionSlugSchema = zod.z.enum([
|
|
28296
28298
|
"bold-innovators",
|
|
@@ -28299,7 +28301,7 @@ var CollectionSlugSchema = zod.z.enum([
|
|
|
28299
28301
|
"bold-brazil"
|
|
28300
28302
|
]).meta({
|
|
28301
28303
|
title: "Collection Slug",
|
|
28302
|
-
description: "URL-friendly identifier for
|
|
28304
|
+
description: "URL-friendly identifier for an environmental credit collection, used in URIs and API references",
|
|
28303
28305
|
examples: ["bold-cold-start-carazinho", "bold-brazil"]
|
|
28304
28306
|
});
|
|
28305
28307
|
var ParticipantRoleSchema = zod.z.enum([
|
|
@@ -28319,7 +28321,7 @@ var ParticipantRoleSchema = zod.z.enum([
|
|
|
28319
28321
|
});
|
|
28320
28322
|
var WasteTypeSchema = zod.z.enum(["Organic"]).meta({
|
|
28321
28323
|
title: "Waste Type",
|
|
28322
|
-
description: "
|
|
28324
|
+
description: "Broad classification of the waste material being tracked (e.g., Organic)",
|
|
28323
28325
|
examples: ["Organic"]
|
|
28324
28326
|
});
|
|
28325
28327
|
var WasteSubtypeSchema = zod.z.enum([
|
|
@@ -28332,8 +28334,8 @@ var WasteSubtypeSchema = zod.z.enum([
|
|
|
28332
28334
|
"Wood and Wood Products"
|
|
28333
28335
|
]).meta({
|
|
28334
28336
|
title: "Waste Subtype",
|
|
28335
|
-
description: "
|
|
28336
|
-
examples: ["Food, Food Waste and Beverages", "
|
|
28337
|
+
description: "Detailed subcategory of the waste material, refining the broad waste type classification",
|
|
28338
|
+
examples: ["Food, Food Waste and Beverages", "Garden, Yard and Park Waste"]
|
|
28337
28339
|
});
|
|
28338
28340
|
var CollectionNameSchema = zod.z.enum([
|
|
28339
28341
|
"BOLD Innovators",
|
|
@@ -28342,7 +28344,7 @@ var CollectionNameSchema = zod.z.enum([
|
|
|
28342
28344
|
"BOLD Brazil"
|
|
28343
28345
|
]).meta({
|
|
28344
28346
|
title: "Collection Name",
|
|
28345
|
-
description: "
|
|
28347
|
+
description: "Human-readable display name for the environmental credit collection",
|
|
28346
28348
|
examples: ["BOLD Cold Start - Carazinho", "BOLD Brazil"]
|
|
28347
28349
|
});
|
|
28348
28350
|
var MethodologyNameSchema = zod.z.enum([
|
|
@@ -28368,7 +28370,7 @@ var MethodologySlugSchema = zod.z.enum(["bold-recycling", "bold-carbon-ch4"]).me
|
|
|
28368
28370
|
});
|
|
28369
28371
|
var CertificateTypeSchema = zod.z.enum(["GasID", "RecycledID"]).meta({
|
|
28370
28372
|
title: "Certificate Type",
|
|
28371
|
-
description: "Type of certificate
|
|
28373
|
+
description: "Type of certificate \u2014 GasID for methane prevention, RecycledID for waste recycling",
|
|
28372
28374
|
examples: ["GasID", "RecycledID"]
|
|
28373
28375
|
});
|
|
28374
28376
|
|
|
@@ -28670,7 +28672,7 @@ function buildShortNameSchemas(config) {
|
|
|
28670
28672
|
).meta(meta);
|
|
28671
28673
|
return { schema, createSchema };
|
|
28672
28674
|
}
|
|
28673
|
-
var
|
|
28675
|
+
var massIDName = buildNameSchemas({
|
|
28674
28676
|
prefix: "MassID",
|
|
28675
28677
|
regexSuffix: " \u2022 .+ \u2022 .+t",
|
|
28676
28678
|
formatHint: "[waste_type] \u2022 [weight]t",
|
|
@@ -28678,13 +28680,13 @@ var massIdName = buildNameSchemas({
|
|
|
28678
28680
|
description: 'Full display name for this MassID NFT. Format: "MassID #[token_id] \u2022 [waste_type] \u2022 [weight]t"',
|
|
28679
28681
|
examples: ["MassID #1034 \u2022 Organic \u2022 3.25t", "MassID #123 \u2022 Plastic \u2022 2.5t"]
|
|
28680
28682
|
});
|
|
28681
|
-
var
|
|
28683
|
+
var massIDShortName = buildShortNameSchemas({
|
|
28682
28684
|
prefix: "MassID",
|
|
28683
28685
|
title: "MassID Short Name",
|
|
28684
28686
|
description: 'Compact name for UI summaries, tables, or tooltips. Format: "MassID #[token_id]"',
|
|
28685
28687
|
examples: ["MassID #1034", "MassID #123"]
|
|
28686
28688
|
});
|
|
28687
|
-
var
|
|
28689
|
+
var gasIDName = buildNameSchemas({
|
|
28688
28690
|
prefix: "GasID",
|
|
28689
28691
|
regexSuffix: " \u2022 .+ \u2022 .+t CO\u2082e",
|
|
28690
28692
|
formatHint: "[methodology] \u2022 [co2e]t CO\u2082e",
|
|
@@ -28695,13 +28697,13 @@ var gasIdName = buildNameSchemas({
|
|
|
28695
28697
|
"GasID #789 \u2022 BOLD Carbon (CH\u2084) \u2022 1.2t CO\u2082e"
|
|
28696
28698
|
]
|
|
28697
28699
|
});
|
|
28698
|
-
var
|
|
28700
|
+
var gasIDShortName = buildShortNameSchemas({
|
|
28699
28701
|
prefix: "GasID",
|
|
28700
28702
|
title: "GasID Short Name",
|
|
28701
28703
|
description: 'Compact name for UI summaries, tables, or tooltips. Format: "GasID #[token_id]"',
|
|
28702
28704
|
examples: ["GasID #456", "GasID #789"]
|
|
28703
28705
|
});
|
|
28704
|
-
var
|
|
28706
|
+
var recycledIDName = buildNameSchemas({
|
|
28705
28707
|
prefix: "RecycledID",
|
|
28706
28708
|
regexSuffix: " \u2022 .+ \u2022 .+t Recycled",
|
|
28707
28709
|
formatHint: "[methodology] \u2022 [weight]t Recycled",
|
|
@@ -28712,7 +28714,7 @@ var recycledIdName = buildNameSchemas({
|
|
|
28712
28714
|
"RecycledID #456 \u2022 BOLD Recycling \u2022 2.5t Recycled"
|
|
28713
28715
|
]
|
|
28714
28716
|
});
|
|
28715
|
-
var
|
|
28717
|
+
var recycledIDShortName = buildShortNameSchemas({
|
|
28716
28718
|
prefix: "RecycledID",
|
|
28717
28719
|
title: "RecycledID Short Name",
|
|
28718
28720
|
description: 'Compact name for UI summaries, tables, or tooltips. Format: "RecycledID #[token_id]"',
|
|
@@ -28752,18 +28754,18 @@ var creditRetirementReceiptShortName = buildShortNameSchemas({
|
|
|
28752
28754
|
description: 'Compact name for UI summaries, tables, or tooltips. Format: "Retirement Receipt #[token_id]"',
|
|
28753
28755
|
examples: ["Retirement Receipt #1245", "Retirement Receipt #1200"]
|
|
28754
28756
|
});
|
|
28755
|
-
var MassIDNameSchema =
|
|
28756
|
-
var MassIDShortNameSchema =
|
|
28757
|
-
var createMassIDNameSchema =
|
|
28758
|
-
var createMassIDShortNameSchema =
|
|
28759
|
-
var GasIDNameSchema =
|
|
28760
|
-
var GasIDShortNameSchema =
|
|
28761
|
-
var createGasIDNameSchema =
|
|
28762
|
-
var createGasIDShortNameSchema =
|
|
28763
|
-
var RecycledIDNameSchema =
|
|
28764
|
-
var RecycledIDShortNameSchema =
|
|
28765
|
-
var createRecycledIDNameSchema =
|
|
28766
|
-
var createRecycledIDShortNameSchema =
|
|
28757
|
+
var MassIDNameSchema = massIDName.schema;
|
|
28758
|
+
var MassIDShortNameSchema = massIDShortName.schema;
|
|
28759
|
+
var createMassIDNameSchema = massIDName.createSchema;
|
|
28760
|
+
var createMassIDShortNameSchema = massIDShortName.createSchema;
|
|
28761
|
+
var GasIDNameSchema = gasIDName.schema;
|
|
28762
|
+
var GasIDShortNameSchema = gasIDShortName.schema;
|
|
28763
|
+
var createGasIDNameSchema = gasIDName.createSchema;
|
|
28764
|
+
var createGasIDShortNameSchema = gasIDShortName.createSchema;
|
|
28765
|
+
var RecycledIDNameSchema = recycledIDName.schema;
|
|
28766
|
+
var RecycledIDShortNameSchema = recycledIDShortName.schema;
|
|
28767
|
+
var createRecycledIDNameSchema = recycledIDName.createSchema;
|
|
28768
|
+
var createRecycledIDShortNameSchema = recycledIDShortName.createSchema;
|
|
28767
28769
|
var CreditPurchaseReceiptNameSchema = creditPurchaseReceiptName.schema;
|
|
28768
28770
|
var CreditPurchaseReceiptShortNameSchema = creditPurchaseReceiptShortName.schema;
|
|
28769
28771
|
var createCreditPurchaseReceiptNameSchema = creditPurchaseReceiptName.createSchema;
|
|
@@ -29315,7 +29317,7 @@ var AuditRuleExecutionResultsSchema = zod.z.array(AuditRuleExecutionResultSchema
|
|
|
29315
29317
|
var ParticipantSchema = zod.z.strictObject({
|
|
29316
29318
|
id_hash: Sha256HashSchema.meta({
|
|
29317
29319
|
title: "Participant ID Hash",
|
|
29318
|
-
description: "
|
|
29320
|
+
description: "SHA-256 hash anonymizing the real participant identifier for privacy"
|
|
29319
29321
|
}),
|
|
29320
29322
|
roles: uniqueArrayItems(
|
|
29321
29323
|
ParticipantRoleSchema,
|
|
@@ -29326,26 +29328,26 @@ var ParticipantSchema = zod.z.strictObject({
|
|
|
29326
29328
|
})
|
|
29327
29329
|
}).meta({
|
|
29328
29330
|
title: "Participant",
|
|
29329
|
-
description: "
|
|
29331
|
+
description: "An entity (person, company, or cooperative) involved in the waste management supply chain"
|
|
29330
29332
|
});
|
|
29331
29333
|
var CoordinatesSchema = zod.z.strictObject({
|
|
29332
29334
|
latitude: LatitudeSchema,
|
|
29333
29335
|
longitude: LongitudeSchema
|
|
29334
29336
|
}).meta({
|
|
29335
29337
|
title: "Coordinates",
|
|
29336
|
-
description: "GPS coordinates of the
|
|
29338
|
+
description: "Approximate GPS coordinates of the site (city-level precision for privacy)"
|
|
29337
29339
|
});
|
|
29338
29340
|
var LocationSchema = zod.z.strictObject({
|
|
29339
29341
|
id_hash: Sha256HashSchema.meta({
|
|
29340
29342
|
title: "Location ID Hash",
|
|
29341
|
-
description: "
|
|
29343
|
+
description: "SHA-256 hash anonymizing the real location identifier for privacy"
|
|
29342
29344
|
}),
|
|
29343
29345
|
city: CitySchema,
|
|
29344
29346
|
subdivision_code: IsoCountrySubdivisionCodeSchema,
|
|
29345
29347
|
country_code: IsoCountryCodeSchema,
|
|
29346
29348
|
responsible_participant_id_hash: Sha256HashSchema.meta({
|
|
29347
29349
|
title: "Responsible Participant ID Hash",
|
|
29348
|
-
description: "
|
|
29350
|
+
description: "SHA-256 hash identifying the participant responsible for operations at this location"
|
|
29349
29351
|
}),
|
|
29350
29352
|
coordinates: CoordinatesSchema
|
|
29351
29353
|
}).superRefine((record, ctx) => {
|
|
@@ -29374,17 +29376,17 @@ var WastePropertiesSchema = zod.z.strictObject({
|
|
|
29374
29376
|
var SummaryBaseSchema = zod.z.strictObject({
|
|
29375
29377
|
total_certificates: PositiveIntegerSchema.meta({
|
|
29376
29378
|
title: "Total Certificates",
|
|
29377
|
-
description: "Total number of certificates
|
|
29379
|
+
description: "Total number of certificates (GasID or RecycledID) included in this receipt"
|
|
29378
29380
|
})
|
|
29379
29381
|
});
|
|
29380
29382
|
var CreditPurchaseReceiptSummarySchema = SummaryBaseSchema.safeExtend({
|
|
29381
29383
|
total_amount_usdc: UsdcAmountSchema.meta({
|
|
29382
29384
|
title: "Total Amount (USDC)",
|
|
29383
|
-
description: "Total amount paid in USDC for the purchase"
|
|
29385
|
+
description: "Total amount paid in USDC stablecoin for the credit purchase"
|
|
29384
29386
|
}),
|
|
29385
29387
|
total_credits: CreditAmountSchema.meta({
|
|
29386
29388
|
title: "Total Credits",
|
|
29387
|
-
description: "Total
|
|
29389
|
+
description: "Total number of environmental impact credits purchased in this transaction"
|
|
29388
29390
|
}),
|
|
29389
29391
|
purchased_at: IsoDateTimeSchema.meta({
|
|
29390
29392
|
title: "Purchased At",
|
|
@@ -29392,12 +29394,12 @@ var CreditPurchaseReceiptSummarySchema = SummaryBaseSchema.safeExtend({
|
|
|
29392
29394
|
})
|
|
29393
29395
|
}).meta({
|
|
29394
29396
|
title: "Credit Purchase Receipt Summary",
|
|
29395
|
-
description: "Summary totals for the credit purchase including
|
|
29397
|
+
description: "Summary totals for the credit purchase including payment amount, credit quantity, certificate count, and timestamp"
|
|
29396
29398
|
});
|
|
29397
29399
|
var CreditRetirementReceiptSummarySchema = SummaryBaseSchema.safeExtend({
|
|
29398
29400
|
total_credits_retired: CreditAmountSchema.meta({
|
|
29399
29401
|
title: "Total Credits Retired",
|
|
29400
|
-
description: "Total
|
|
29402
|
+
description: "Total number of environmental impact credits permanently retired (removed from circulation)"
|
|
29401
29403
|
}),
|
|
29402
29404
|
retired_at: IsoDateTimeSchema.meta({
|
|
29403
29405
|
title: "Retired At",
|
|
@@ -29405,25 +29407,25 @@ var CreditRetirementReceiptSummarySchema = SummaryBaseSchema.safeExtend({
|
|
|
29405
29407
|
})
|
|
29406
29408
|
}).meta({
|
|
29407
29409
|
title: "Credit Retirement Receipt Summary",
|
|
29408
|
-
description: "Summary totals for the credit retirement including
|
|
29410
|
+
description: "Summary totals for the credit retirement including credit quantity, certificate count, and timestamp"
|
|
29409
29411
|
});
|
|
29410
29412
|
var ReceiptIdentitySchema = zod.z.strictObject({
|
|
29411
29413
|
name: NonEmptyStringSchema.max(100).meta({
|
|
29412
29414
|
title: "Identity Name",
|
|
29413
|
-
description: "Display name
|
|
29415
|
+
description: "Display name of the buyer or beneficiary on the receipt",
|
|
29414
29416
|
examples: ["EcoTech Solutions Inc.", "Climate Action Corp"]
|
|
29415
29417
|
}),
|
|
29416
29418
|
external_id: ExternalIdSchema.meta({
|
|
29417
29419
|
title: "Identity External ID",
|
|
29418
|
-
description: "
|
|
29420
|
+
description: "Unique identifier for the buyer or beneficiary in the Carrot platform"
|
|
29419
29421
|
}),
|
|
29420
29422
|
external_url: ExternalUrlSchema.meta({
|
|
29421
29423
|
title: "Identity External URL",
|
|
29422
|
-
description: "
|
|
29424
|
+
description: "Link to the buyer or beneficiary profile page on the Carrot platform"
|
|
29423
29425
|
})
|
|
29424
29426
|
}).meta({
|
|
29425
29427
|
title: "Identity",
|
|
29426
|
-
description: "
|
|
29428
|
+
description: "Identity information for the buyer or beneficiary associated with this receipt"
|
|
29427
29429
|
});
|
|
29428
29430
|
function createReceiptCollectionSchema(params) {
|
|
29429
29431
|
const { meta } = params;
|
|
@@ -29431,27 +29433,27 @@ function createReceiptCollectionSchema(params) {
|
|
|
29431
29433
|
slug: CollectionSlugSchema,
|
|
29432
29434
|
external_id: ExternalIdSchema.meta({
|
|
29433
29435
|
title: "Collection External ID",
|
|
29434
|
-
description: "
|
|
29436
|
+
description: "Unique identifier for the collection in the Carrot platform"
|
|
29435
29437
|
}),
|
|
29436
29438
|
name: CollectionNameSchema,
|
|
29437
29439
|
external_url: ExternalUrlSchema.meta({
|
|
29438
29440
|
title: "Collection External URL",
|
|
29439
|
-
description: "
|
|
29441
|
+
description: "Link to the collection page on the Carrot platform"
|
|
29440
29442
|
}),
|
|
29441
29443
|
ipfs_uri: IpfsUriSchema.meta({
|
|
29442
29444
|
title: "Collection IPFS URI",
|
|
29443
|
-
description: "IPFS URI
|
|
29445
|
+
description: "IPFS URI pointing to the immutable collection metadata record"
|
|
29444
29446
|
})
|
|
29445
29447
|
}).meta(meta);
|
|
29446
29448
|
}
|
|
29447
29449
|
var CertificateCollectionItemPurchaseSchema = zod.z.strictObject({
|
|
29448
29450
|
slug: CollectionSlugSchema.meta({
|
|
29449
29451
|
title: "Collection Slug",
|
|
29450
|
-
description: "
|
|
29452
|
+
description: "URL-friendly identifier of the collection this certificate belongs to"
|
|
29451
29453
|
}),
|
|
29452
29454
|
purchased_amount: CreditAmountSchema.meta({
|
|
29453
|
-
title: "
|
|
29454
|
-
description: "
|
|
29455
|
+
title: "Purchased Amount",
|
|
29456
|
+
description: "Number of credits purchased from this collection for this certificate"
|
|
29455
29457
|
}),
|
|
29456
29458
|
retired_amount: CreditAmountSchema.meta({
|
|
29457
29459
|
title: "Collection Retired Amount",
|
|
@@ -29479,7 +29481,7 @@ function buildSchemaUrl(schemaPath) {
|
|
|
29479
29481
|
return `${getSchemaBaseUrl()}/${cleanPath}`;
|
|
29480
29482
|
}
|
|
29481
29483
|
function getSchemaVersionOrDefault() {
|
|
29482
|
-
return "0.
|
|
29484
|
+
return "0.3.0";
|
|
29483
29485
|
}
|
|
29484
29486
|
|
|
29485
29487
|
// src/shared/schema-validation.ts
|
|
@@ -30082,7 +30084,7 @@ var MassIDAttachmentSchema = zod.z.strictObject({
|
|
|
30082
30084
|
})
|
|
30083
30085
|
}).meta({
|
|
30084
30086
|
title: "MassID Attachment",
|
|
30085
|
-
description: "
|
|
30087
|
+
description: "Regulatory document (Transport Manifest or Recycling Manifest) linked to a specific lifecycle event via event_id"
|
|
30086
30088
|
});
|
|
30087
30089
|
var MassIDBaseEventSchema = zod.z.strictObject({
|
|
30088
30090
|
event_id: UuidSchema.meta({
|
|
@@ -30100,7 +30102,7 @@ var MassIDBaseEventSchema = zod.z.strictObject({
|
|
|
30100
30102
|
})
|
|
30101
30103
|
}).meta({
|
|
30102
30104
|
title: "MassID Base Event",
|
|
30103
|
-
description: "
|
|
30105
|
+
description: "Common fields for all MassID lifecycle events: identifier, timestamp, participant reference, and location reference"
|
|
30104
30106
|
});
|
|
30105
30107
|
var buildMassIDEventSchema = (eventName, description) => MassIDBaseEventSchema.safeExtend({
|
|
30106
30108
|
event_name: zod.z.literal(eventName).meta({
|
|
@@ -30126,7 +30128,7 @@ var PickUpEventSchema = buildMassIDEventSchema(
|
|
|
30126
30128
|
})
|
|
30127
30129
|
}).optional().meta({
|
|
30128
30130
|
title: "Pick-up Event Data",
|
|
30129
|
-
description: "
|
|
30131
|
+
description: "Optional vehicle and weight details captured during waste pick-up"
|
|
30130
30132
|
})
|
|
30131
30133
|
});
|
|
30132
30134
|
var WeighingEventSchema = buildMassIDEventSchema(
|
|
@@ -30273,7 +30275,7 @@ var MassIDDataSchema = zod.z.strictObject({
|
|
|
30273
30275
|
);
|
|
30274
30276
|
}, "All responsible participant ID hashes in locations must exist in participants array").meta({
|
|
30275
30277
|
title: "MassID Data",
|
|
30276
|
-
description: "MassID data
|
|
30278
|
+
description: "Complete MassID data including waste properties, geographic locations, supply-chain participants, chronological lifecycle events, and regulatory attachments"
|
|
30277
30279
|
});
|
|
30278
30280
|
var isPickUpEvent = (event) => event.event_name === "Pick-up";
|
|
30279
30281
|
var isWeighingEvent = (event) => event.event_name === "Weighing";
|
|
@@ -30281,7 +30283,7 @@ var isDropOffEvent = (event) => event.event_name === "Drop-off";
|
|
|
30281
30283
|
var isRecyclingEvent = (event) => event.event_name === "Recycling";
|
|
30282
30284
|
var MassIDIpfsSchemaMeta = {
|
|
30283
30285
|
title: "MassID NFT IPFS Record",
|
|
30284
|
-
description: "Complete MassID NFT IPFS record
|
|
30286
|
+
description: "Complete MassID NFT IPFS record including waste classification, chain-of-custody lifecycle events, geographic locations, supply-chain participants, and NFT display attributes",
|
|
30285
30287
|
$id: buildSchemaUrl("mass-id/mass-id.schema.json"),
|
|
30286
30288
|
version: getSchemaVersionOrDefault()
|
|
30287
30289
|
};
|
|
@@ -30289,7 +30291,7 @@ var MassIDIpfsSchema = NftIpfsSchema.safeExtend({
|
|
|
30289
30291
|
schema: NftIpfsSchema.shape.schema.safeExtend({
|
|
30290
30292
|
type: zod.z.literal("MassID").meta({
|
|
30291
30293
|
title: "MassID Schema Type",
|
|
30292
|
-
description: "
|
|
30294
|
+
description: "Discriminator value identifying this record as a MassID waste-traceability certificate"
|
|
30293
30295
|
})
|
|
30294
30296
|
}),
|
|
30295
30297
|
name: MassIDNameSchema,
|
|
@@ -30457,7 +30459,7 @@ var GasIDAttributeGasTypeSchema = NftAttributeSchema.safeExtend({
|
|
|
30457
30459
|
value: GasTypeSchema
|
|
30458
30460
|
}).meta({
|
|
30459
30461
|
title: "Gas Type Attribute",
|
|
30460
|
-
description: "
|
|
30462
|
+
description: "Type of greenhouse gas whose emissions were prevented (e.g., Methane (CH\u2084))"
|
|
30461
30463
|
});
|
|
30462
30464
|
var GasIDAttributeCo2ePreventedSchema = createNumericAttributeSchema({
|
|
30463
30465
|
traitType: "CO\u2082e Prevented (kg)",
|
|
@@ -30511,7 +30513,7 @@ var GasIDSummarySchema = zod.z.strictObject({
|
|
|
30511
30513
|
})
|
|
30512
30514
|
}).meta({
|
|
30513
30515
|
title: "GasID Summary",
|
|
30514
|
-
description: "
|
|
30516
|
+
description: "Key metrics for the GasID certificate including gas type, credit details, prevented emissions, and issuance timestamps"
|
|
30515
30517
|
});
|
|
30516
30518
|
var CalculationValueSchema = zod.z.strictObject({
|
|
30517
30519
|
reference: NonEmptyStringSchema.max(3).meta({
|
|
@@ -30535,7 +30537,7 @@ var CalculationValueSchema = zod.z.strictObject({
|
|
|
30535
30537
|
})
|
|
30536
30538
|
}).meta({
|
|
30537
30539
|
title: "Calculation Value",
|
|
30538
|
-
description: "
|
|
30540
|
+
description: "Named parameter or computed result used in the prevented emissions formula"
|
|
30539
30541
|
});
|
|
30540
30542
|
var PreventedEmissionsCalculationSchema = zod.z.strictObject({
|
|
30541
30543
|
formula: NonEmptyStringSchema.max(100).meta({
|
|
@@ -30554,11 +30556,11 @@ var PreventedEmissionsCalculationSchema = zod.z.strictObject({
|
|
|
30554
30556
|
}),
|
|
30555
30557
|
values: zod.z.array(CalculationValueSchema).min(1).meta({
|
|
30556
30558
|
title: "Calculation Values",
|
|
30557
|
-
description: "
|
|
30559
|
+
description: "Input parameters and computed result used in the prevented emissions formula"
|
|
30558
30560
|
})
|
|
30559
30561
|
}).meta({
|
|
30560
30562
|
title: "Prevented Emissions Calculation",
|
|
30561
|
-
description: "
|
|
30563
|
+
description: "Methodology-based calculation of prevented CO\u2082e emissions, including formula, method, input values, and computation timestamp"
|
|
30562
30564
|
});
|
|
30563
30565
|
var GasIDDataSchema = zod.z.strictObject({
|
|
30564
30566
|
summary: GasIDSummarySchema,
|
|
@@ -30568,16 +30570,16 @@ var GasIDDataSchema = zod.z.strictObject({
|
|
|
30568
30570
|
waste_properties: WastePropertiesSchema,
|
|
30569
30571
|
origin_location: LocationSchema.meta({
|
|
30570
30572
|
title: "Source Waste Origin Location",
|
|
30571
|
-
description: "
|
|
30573
|
+
description: "Geographic location where the source waste was originally collected"
|
|
30572
30574
|
}),
|
|
30573
30575
|
prevented_emissions_calculation: PreventedEmissionsCalculationSchema
|
|
30574
30576
|
}).meta({
|
|
30575
30577
|
title: "GasID Data",
|
|
30576
|
-
description: "Complete data
|
|
30578
|
+
description: "Complete GasID certificate data including summary metrics, methodology reference, audit trail, source MassID, waste properties, origin location, and emissions calculation"
|
|
30577
30579
|
});
|
|
30578
30580
|
var GasIDIpfsSchemaMeta = {
|
|
30579
30581
|
title: "GasID NFT IPFS Record",
|
|
30580
|
-
description: "Complete GasID NFT IPFS record including
|
|
30582
|
+
description: "Complete GasID NFT IPFS record including prevented emissions calculation, source waste provenance, methodology reference, and NFT display attributes",
|
|
30581
30583
|
$id: buildSchemaUrl("gas-id/gas-id.schema.json"),
|
|
30582
30584
|
version: getSchemaVersionOrDefault()
|
|
30583
30585
|
};
|
|
@@ -30585,7 +30587,7 @@ var GasIDIpfsSchema = NftIpfsSchema.safeExtend({
|
|
|
30585
30587
|
schema: NftIpfsSchema.shape.schema.safeExtend({
|
|
30586
30588
|
type: zod.z.literal("GasID").meta({
|
|
30587
30589
|
title: "GasID Schema Type",
|
|
30588
|
-
description: "GasID
|
|
30590
|
+
description: "Discriminator value identifying this record as a GasID prevented-emissions certificate"
|
|
30589
30591
|
})
|
|
30590
30592
|
}),
|
|
30591
30593
|
name: GasIDNameSchema,
|
|
@@ -30795,7 +30797,7 @@ var RecycledIDSummarySchema = zod.z.strictObject({
|
|
|
30795
30797
|
})
|
|
30796
30798
|
}).meta({
|
|
30797
30799
|
title: "RecycledID Summary",
|
|
30798
|
-
description: "
|
|
30800
|
+
description: "Key metrics for the RecycledID certificate including recycled weight, credit details, and issuance timestamps"
|
|
30799
30801
|
});
|
|
30800
30802
|
var RecycledIDDataSchema = zod.z.strictObject({
|
|
30801
30803
|
summary: RecycledIDSummarySchema,
|
|
@@ -30805,15 +30807,15 @@ var RecycledIDDataSchema = zod.z.strictObject({
|
|
|
30805
30807
|
waste_properties: WastePropertiesSchema,
|
|
30806
30808
|
origin_location: LocationSchema.meta({
|
|
30807
30809
|
title: "RecycledID Origin Location",
|
|
30808
|
-
description: "
|
|
30810
|
+
description: "Geographic location where the source waste was originally collected"
|
|
30809
30811
|
})
|
|
30810
30812
|
}).meta({
|
|
30811
30813
|
title: "RecycledID Data",
|
|
30812
|
-
description: "Complete data
|
|
30814
|
+
description: "Complete RecycledID certificate data including summary metrics, methodology reference, audit trail, source MassID, waste properties, and origin location"
|
|
30813
30815
|
});
|
|
30814
30816
|
var RecycledIDIpfsSchemaMeta = {
|
|
30815
30817
|
title: "RecycledID NFT IPFS Record",
|
|
30816
|
-
description: "Complete RecycledID NFT IPFS record including
|
|
30818
|
+
description: "Complete RecycledID NFT IPFS record including recycling outcome metrics, source waste provenance, methodology reference, and NFT display attributes",
|
|
30817
30819
|
$id: buildSchemaUrl("recycled-id/recycled-id.schema.json"),
|
|
30818
30820
|
version: getSchemaVersionOrDefault()
|
|
30819
30821
|
};
|
|
@@ -30821,7 +30823,7 @@ var RecycledIDIpfsSchema = NftIpfsSchema.safeExtend({
|
|
|
30821
30823
|
schema: NftIpfsSchema.shape.schema.safeExtend({
|
|
30822
30824
|
type: zod.z.literal("RecycledID").meta({
|
|
30823
30825
|
title: "RecycledID Schema Type",
|
|
30824
|
-
description: "RecycledID
|
|
30826
|
+
description: "Discriminator value identifying this record as a RecycledID recycling-outcome certificate"
|
|
30825
30827
|
})
|
|
30826
30828
|
}),
|
|
30827
30829
|
name: RecycledIDNameSchema,
|
|
@@ -31099,7 +31101,7 @@ var CreditPurchaseReceiptDataSchema = zod.z.strictObject({
|
|
|
31099
31101
|
"Collection slugs must be unique"
|
|
31100
31102
|
).min(1).meta({
|
|
31101
31103
|
title: "Collections",
|
|
31102
|
-
description: "
|
|
31104
|
+
description: "Impact collections referenced by this purchase, each identified by a unique slug"
|
|
31103
31105
|
}),
|
|
31104
31106
|
credits: uniqueBy(
|
|
31105
31107
|
CreditPurchaseReceiptCreditSchema,
|
|
@@ -31107,7 +31109,7 @@ var CreditPurchaseReceiptDataSchema = zod.z.strictObject({
|
|
|
31107
31109
|
"Credit slugs must be unique"
|
|
31108
31110
|
).min(1).meta({
|
|
31109
31111
|
title: "Credits",
|
|
31110
|
-
description: "
|
|
31112
|
+
description: "Credit token types involved in this purchase, each identified by a unique slug and symbol"
|
|
31111
31113
|
}),
|
|
31112
31114
|
certificates: uniqueBy(
|
|
31113
31115
|
CreditPurchaseReceiptCertificateSchema,
|
|
@@ -31115,7 +31117,7 @@ var CreditPurchaseReceiptDataSchema = zod.z.strictObject({
|
|
|
31115
31117
|
"Certificate token_ids must be unique"
|
|
31116
31118
|
).min(1).meta({
|
|
31117
31119
|
title: "Certificates",
|
|
31118
|
-
description: "
|
|
31120
|
+
description: "Environmental certificates allocated in this purchase, each linking a credit type to collection-level purchased and retired amounts"
|
|
31119
31121
|
}),
|
|
31120
31122
|
retirement_receipt: CreditPurchaseReceiptRetirementReceiptSchema.optional()
|
|
31121
31123
|
}).superRefine((data, ctx) => {
|
|
@@ -31215,7 +31217,7 @@ var CreditPurchaseReceiptDataSchema = zod.z.strictObject({
|
|
|
31215
31217
|
});
|
|
31216
31218
|
var CreditPurchaseReceiptIpfsSchemaMeta = {
|
|
31217
31219
|
title: "CreditPurchaseReceipt NFT IPFS Record",
|
|
31218
|
-
description: "Complete CreditPurchaseReceipt NFT IPFS record including
|
|
31220
|
+
description: "Complete CreditPurchaseReceipt NFT IPFS record including purchase summary, buyer details, credit breakdowns, certificate allocations, and NFT display attributes",
|
|
31219
31221
|
$id: buildSchemaUrl(
|
|
31220
31222
|
"credit-purchase-receipt/credit-purchase-receipt.schema.json"
|
|
31221
31223
|
),
|
|
@@ -31225,7 +31227,7 @@ var CreditPurchaseReceiptIpfsSchema = NftIpfsSchema.safeExtend({
|
|
|
31225
31227
|
schema: NftIpfsSchema.shape.schema.safeExtend({
|
|
31226
31228
|
type: zod.z.literal("CreditPurchaseReceipt").meta({
|
|
31227
31229
|
title: "CreditPurchaseReceipt Schema Type",
|
|
31228
|
-
description: "
|
|
31230
|
+
description: "Discriminator value identifying this record as a CreditPurchaseReceipt transaction proof"
|
|
31229
31231
|
})
|
|
31230
31232
|
}),
|
|
31231
31233
|
name: CreditPurchaseReceiptNameSchema,
|
|
@@ -31561,7 +31563,7 @@ var CreditRetirementReceiptDataSchema = zod.z.strictObject({
|
|
|
31561
31563
|
"Collection slugs must be unique"
|
|
31562
31564
|
).min(1).meta({
|
|
31563
31565
|
title: "Collections",
|
|
31564
|
-
description: "
|
|
31566
|
+
description: "Impact collections referenced by this retirement, each identified by a unique slug"
|
|
31565
31567
|
}),
|
|
31566
31568
|
credits: uniqueBy(
|
|
31567
31569
|
CreditRetirementReceiptCreditSchema,
|
|
@@ -31569,7 +31571,7 @@ var CreditRetirementReceiptDataSchema = zod.z.strictObject({
|
|
|
31569
31571
|
"Credit slugs must be unique"
|
|
31570
31572
|
).min(1).meta({
|
|
31571
31573
|
title: "Credits",
|
|
31572
|
-
description: "
|
|
31574
|
+
description: "Credit token types retired in this receipt, each identified by a unique slug and symbol"
|
|
31573
31575
|
}),
|
|
31574
31576
|
certificates: uniqueBy(
|
|
31575
31577
|
CreditRetirementReceiptCertificateSchema,
|
|
@@ -31577,7 +31579,7 @@ var CreditRetirementReceiptDataSchema = zod.z.strictObject({
|
|
|
31577
31579
|
"Certificate token_ids must be unique"
|
|
31578
31580
|
).min(1).meta({
|
|
31579
31581
|
title: "Certificates",
|
|
31580
|
-
description: "
|
|
31582
|
+
description: "Environmental certificates retired in this receipt, each linking collection-level retired amounts to per-credit breakdowns"
|
|
31581
31583
|
}),
|
|
31582
31584
|
purchase_receipt: CreditPurchaseReceiptReferenceSchema.optional()
|
|
31583
31585
|
}).superRefine((data, ctx) => {
|
|
@@ -31702,7 +31704,7 @@ var CreditRetirementReceiptDataSchema = zod.z.strictObject({
|
|
|
31702
31704
|
});
|
|
31703
31705
|
var CreditRetirementReceiptIpfsSchemaMeta = {
|
|
31704
31706
|
title: "CreditRetirementReceipt NFT IPFS Record",
|
|
31705
|
-
description: "Complete CreditRetirementReceipt NFT IPFS record including
|
|
31707
|
+
description: "Complete CreditRetirementReceipt NFT IPFS record including retirement summary, beneficiary and credit holder details, credit breakdowns, certificate allocations, and NFT display attributes",
|
|
31706
31708
|
$id: buildSchemaUrl(
|
|
31707
31709
|
"credit-retirement-receipt/credit-retirement-receipt.schema.json"
|
|
31708
31710
|
),
|
|
@@ -31712,7 +31714,7 @@ var CreditRetirementReceiptIpfsSchema = NftIpfsSchema.safeExtend({
|
|
|
31712
31714
|
schema: NftIpfsSchema.shape.schema.safeExtend({
|
|
31713
31715
|
type: zod.z.literal("CreditRetirementReceipt").meta({
|
|
31714
31716
|
title: "CreditRetirementReceipt Schema Type",
|
|
31715
|
-
description: "
|
|
31717
|
+
description: "Discriminator value identifying this record as a CreditRetirementReceipt permanent-offset proof"
|
|
31716
31718
|
})
|
|
31717
31719
|
}),
|
|
31718
31720
|
name: CreditRetirementReceiptNameSchema,
|
|
@@ -31865,7 +31867,7 @@ var CollectionSchema = BaseIpfsSchema.safeExtend({
|
|
|
31865
31867
|
schema: BaseIpfsSchema.shape.schema.safeExtend({
|
|
31866
31868
|
type: zod.z.literal("Collection").meta({
|
|
31867
31869
|
title: "Collection Schema Type",
|
|
31868
|
-
description: "
|
|
31870
|
+
description: "Discriminator value identifying this record as a Collection grouping of credits and receipts"
|
|
31869
31871
|
})
|
|
31870
31872
|
}),
|
|
31871
31873
|
data: zod.z.record(zod.z.string(), zod.z.unknown()).optional().meta({
|
|
@@ -31899,7 +31901,7 @@ var CreditSchema = BaseIpfsSchema.safeExtend({
|
|
|
31899
31901
|
schema: BaseIpfsSchema.shape.schema.safeExtend({
|
|
31900
31902
|
type: zod.z.literal("Credit").meta({
|
|
31901
31903
|
title: "Credit Schema Type",
|
|
31902
|
-
description: "
|
|
31904
|
+
description: "Discriminator value identifying this record as a Credit environmental-impact token"
|
|
31903
31905
|
})
|
|
31904
31906
|
}),
|
|
31905
31907
|
data: zod.z.record(zod.z.string(), zod.z.unknown()).optional().meta({
|
|
@@ -31925,7 +31927,7 @@ var CreditSchema = BaseIpfsSchema.safeExtend({
|
|
|
31925
31927
|
title: "Token Description",
|
|
31926
31928
|
description: "Comprehensive description of the credit token, its purpose, and impact",
|
|
31927
31929
|
examples: [
|
|
31928
|
-
"Carrot Carbon (C-CARB.CH4) represents verified
|
|
31930
|
+
"Carrot Carbon (C-CARB.CH4) represents verified prevented emissions from organic waste composting projects. Each token equals one metric ton of CO\u2082 equivalent (CO\u2082e) prevented from entering the atmosphere through sustainable waste management practices."
|
|
31929
31931
|
]
|
|
31930
31932
|
})
|
|
31931
31933
|
}).meta(CreditSchemaMeta);
|
|
@@ -31935,7 +31937,7 @@ var MethodologyDataSchema = zod.z.strictObject({
|
|
|
31935
31937
|
slug: MethodologySlugSchema,
|
|
31936
31938
|
version: SemanticVersionSchema.meta({
|
|
31937
31939
|
title: "Methodology Version",
|
|
31938
|
-
description: "
|
|
31940
|
+
description: "Semantic version of this methodology revision (e.g., 1.0.0)"
|
|
31939
31941
|
}),
|
|
31940
31942
|
description: zod.z.string().min(50).max(2e3).meta({
|
|
31941
31943
|
title: "Methodology Description",
|
|
@@ -31965,7 +31967,7 @@ var MethodologyDataSchema = zod.z.strictObject({
|
|
|
31965
31967
|
// src/methodology/methodology.schema.ts
|
|
31966
31968
|
var MethodologySchemaMeta = {
|
|
31967
31969
|
title: "Methodology IPFS Record",
|
|
31968
|
-
description: "Methodology metadata stored in IPFS,
|
|
31970
|
+
description: "Methodology metadata stored in IPFS, defining the environmental impact measurement approach including versioning, documentation, and MassID audit rules",
|
|
31969
31971
|
$id: buildSchemaUrl("methodology/methodology.schema.json"),
|
|
31970
31972
|
version: getSchemaVersionOrDefault()
|
|
31971
31973
|
};
|
|
@@ -31973,7 +31975,7 @@ var MethodologySchema = BaseIpfsSchema.safeExtend({
|
|
|
31973
31975
|
schema: BaseIpfsSchema.shape.schema.safeExtend({
|
|
31974
31976
|
type: zod.z.literal("Methodology").meta({
|
|
31975
31977
|
title: "Methodology Schema Type",
|
|
31976
|
-
description: "
|
|
31978
|
+
description: "Discriminator value identifying this record as a Methodology impact-measurement definition"
|
|
31977
31979
|
})
|
|
31978
31980
|
}),
|
|
31979
31981
|
data: MethodologyDataSchema
|
|
@@ -32003,7 +32005,7 @@ var MassIDAuditSummarySchema = zod.z.strictObject({
|
|
|
32003
32005
|
}
|
|
32004
32006
|
}).meta({
|
|
32005
32007
|
title: "Audit Summary",
|
|
32006
|
-
description: "
|
|
32008
|
+
description: "Overview of the audit execution including start time, completion time, and overall pass/fail result"
|
|
32007
32009
|
});
|
|
32008
32010
|
var MassIDAuditDataSchema = zod.z.strictObject({
|
|
32009
32011
|
methodology: MethodologyReferenceSchema,
|
|
@@ -32013,9 +32015,9 @@ var MassIDAuditDataSchema = zod.z.strictObject({
|
|
|
32013
32015
|
audit_summary: MassIDAuditSummarySchema,
|
|
32014
32016
|
rule_execution_results: AuditRuleExecutionResultsSchema
|
|
32015
32017
|
}).superRefine((data, ctx) => {
|
|
32016
|
-
const
|
|
32017
|
-
const
|
|
32018
|
-
if (!
|
|
32018
|
+
const hasGasID = !!data.gas_id;
|
|
32019
|
+
const hasRecycledID = !!data.recycled_id;
|
|
32020
|
+
if (!hasGasID && !hasRecycledID) {
|
|
32019
32021
|
ctx.addIssue({
|
|
32020
32022
|
code: "custom",
|
|
32021
32023
|
path: ["gas_id"],
|
|
@@ -32027,7 +32029,7 @@ var MassIDAuditDataSchema = zod.z.strictObject({
|
|
|
32027
32029
|
message: "Either gas_id or recycled_id must be provided"
|
|
32028
32030
|
});
|
|
32029
32031
|
}
|
|
32030
|
-
if (
|
|
32032
|
+
if (hasGasID && hasRecycledID) {
|
|
32031
32033
|
ctx.addIssue({
|
|
32032
32034
|
code: "custom",
|
|
32033
32035
|
path: ["gas_id"],
|
|
@@ -32047,7 +32049,7 @@ var MassIDAuditDataSchema = zod.z.strictObject({
|
|
|
32047
32049
|
// src/mass-id-audit/mass-id-audit.schema.ts
|
|
32048
32050
|
var MassIDAuditSchemaMeta = {
|
|
32049
32051
|
title: "MassID Audit IPFS Record",
|
|
32050
|
-
description: "MassID audit
|
|
32052
|
+
description: "MassID audit record stored in IPFS, containing methodology reference, audit summary, rule execution results, and links to the source MassID and resulting GasID or RecycledID",
|
|
32051
32053
|
$id: buildSchemaUrl("mass-id-audit/mass-id-audit.schema.json"),
|
|
32052
32054
|
version: getSchemaVersionOrDefault()
|
|
32053
32055
|
};
|
|
@@ -32055,7 +32057,7 @@ var MassIDAuditSchema = BaseIpfsSchema.safeExtend({
|
|
|
32055
32057
|
schema: BaseIpfsSchema.shape.schema.safeExtend({
|
|
32056
32058
|
type: zod.z.literal("MassID Audit").meta({
|
|
32057
32059
|
title: "MassID Audit Schema Type",
|
|
32058
|
-
description: "MassID Audit
|
|
32060
|
+
description: "Discriminator value identifying this record as a MassID Audit methodology-rule execution report"
|
|
32059
32061
|
})
|
|
32060
32062
|
}),
|
|
32061
32063
|
data: MassIDAuditDataSchema
|