@carrot-foundation/schemas 0.1.49 → 0.1.51

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 (26) hide show
  1. package/dist/index.cjs +213 -229
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +176 -168
  4. package/dist/index.d.ts +176 -168
  5. package/dist/index.js +208 -228
  6. package/dist/index.js.map +1 -1
  7. package/package.json +1 -1
  8. package/schemas/ipfs/collection/collection.example.json +5 -5
  9. package/schemas/ipfs/collection/collection.schema.json +2 -2
  10. package/schemas/ipfs/credit/credit.example.json +5 -5
  11. package/schemas/ipfs/credit/credit.schema.json +2 -2
  12. package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.example.json +8 -8
  13. package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.schema.json +6 -17
  14. package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.example.json +7 -7
  15. package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.schema.json +5 -16
  16. package/schemas/ipfs/gas-id/gas-id.example.json +17 -15
  17. package/schemas/ipfs/gas-id/gas-id.schema.json +29 -17
  18. package/schemas/ipfs/mass-id/mass-id.example.json +13 -13
  19. package/schemas/ipfs/mass-id/mass-id.schema.json +31 -62
  20. package/schemas/ipfs/mass-id-audit/mass-id-audit.example.json +150 -150
  21. package/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json +2 -2
  22. package/schemas/ipfs/methodology/methodology.example.json +89 -89
  23. package/schemas/ipfs/methodology/methodology.schema.json +2 -2
  24. package/schemas/ipfs/recycled-id/recycled-id.example.json +17 -15
  25. package/schemas/ipfs/recycled-id/recycled-id.schema.json +24 -13
  26. package/schemas/schema-hashes.json +10 -10
package/dist/index.js CHANGED
@@ -37,8 +37,8 @@ var NonNegativeFloatSchema = z.number().min(0).meta({
37
37
  examples: [0, 45.2, 72.5]
38
38
  });
39
39
  var WeightKgSchema = NonNegativeFloatSchema.meta({
40
- title: "Weight (kg)",
41
- description: "Weight measurement in kilograms",
40
+ title: "Weight",
41
+ description: "Weight measurement in kilograms (kg)",
42
42
  examples: [500.35, 3e3]
43
43
  });
44
44
  var PercentageSchema = NonNegativeFloatSchema.max(100).meta({
@@ -28219,6 +28219,11 @@ var CreditTypeSchema = z.enum(["Biowaste", "Carbon (CH\u2084)"]).meta({
28219
28219
  description: "Type of credit issued",
28220
28220
  examples: ["Biowaste", "Carbon (CH\u2084)"]
28221
28221
  });
28222
+ var GasTypeSchema = z.enum(["Methane (CH\u2084)"]).meta({
28223
+ title: "Gas Type",
28224
+ description: "Type of gas prevented",
28225
+ examples: ["Methane (CH\u2084)"]
28226
+ });
28222
28227
  var VehicleTypeSchema = z.enum([
28223
28228
  "Bicycle",
28224
28229
  "Boat",
@@ -28594,6 +28599,70 @@ var NftIpfsSchema = BaseIpfsSchema.safeExtend({
28594
28599
  title: "NFT IPFS Record",
28595
28600
  description: "NFT-specific fields for Carrot IPFS records"
28596
28601
  });
28602
+ function getSchemaMetadata(schema) {
28603
+ return schema._def?.metadata;
28604
+ }
28605
+ function mergeSchemaMeta(schema, newMeta) {
28606
+ const baseMeta = getSchemaMetadata(schema);
28607
+ const merged = {
28608
+ title: newMeta.title,
28609
+ description: newMeta.description
28610
+ };
28611
+ if (baseMeta?.examples) {
28612
+ merged.examples = baseMeta.examples;
28613
+ }
28614
+ return merged;
28615
+ }
28616
+ function createDateAttributeSchema(params) {
28617
+ const { omitMaxValue = true } = params;
28618
+ const base = omitMaxValue ? NftAttributeSchema.omit({ max_value: true }) : NftAttributeSchema;
28619
+ const descriptionLower = params.description.toLowerCase();
28620
+ const alreadyMentionsUnix = descriptionLower.includes("unix") || descriptionLower.includes("unix timestamp");
28621
+ const metaDescription = alreadyMentionsUnix ? `${params.description} attribute` : `${params.description} attribute using Unix timestamp in milliseconds`;
28622
+ return base.safeExtend({
28623
+ trait_type: z.literal(params.traitType),
28624
+ value: UnixTimestampSchema.meta(
28625
+ mergeSchemaMeta(UnixTimestampSchema, {
28626
+ title: params.title,
28627
+ description: params.description
28628
+ })
28629
+ ),
28630
+ display_type: z.literal("date")
28631
+ }).meta({
28632
+ title: `${params.title} Attribute`,
28633
+ description: metaDescription
28634
+ });
28635
+ }
28636
+ function createWeightAttributeSchema(params) {
28637
+ return NftAttributeSchema.safeExtend({
28638
+ trait_type: z.literal(params.traitType),
28639
+ value: WeightKgSchema.meta(
28640
+ mergeSchemaMeta(WeightKgSchema, {
28641
+ title: params.title,
28642
+ description: params.description
28643
+ })
28644
+ ),
28645
+ display_type: z.literal("number")
28646
+ }).meta({
28647
+ title: `${params.title} Attribute`,
28648
+ description: `${params.description} attribute with numeric display`
28649
+ });
28650
+ }
28651
+ function createNumericAttributeSchema(params) {
28652
+ return NftAttributeSchema.safeExtend({
28653
+ trait_type: z.literal(params.traitType),
28654
+ value: params.valueSchema.meta(
28655
+ mergeSchemaMeta(params.valueSchema, {
28656
+ title: params.title,
28657
+ description: params.description
28658
+ })
28659
+ ),
28660
+ display_type: z.literal("number")
28661
+ }).meta({
28662
+ title: `${params.title} Attribute`,
28663
+ description: `${params.description} attribute with numeric display`
28664
+ });
28665
+ }
28597
28666
  var MethodologyAttributeSchema = NftAttributeSchema.safeExtend({
28598
28667
  trait_type: z.literal("Methodology"),
28599
28668
  value: MethodologyNameSchema
@@ -28601,13 +28670,11 @@ var MethodologyAttributeSchema = NftAttributeSchema.safeExtend({
28601
28670
  title: "Methodology Attribute",
28602
28671
  description: "Methodology used for certification"
28603
28672
  });
28604
- var CreditAmountAttributeSchema = NftAttributeSchema.safeExtend({
28605
- trait_type: z.literal("Credit Amount"),
28606
- value: CreditAmountSchema,
28607
- display_type: z.literal("number")
28608
- }).meta({
28609
- title: "Credit Amount Attribute",
28610
- description: "Credit amount attribute with numeric display"
28673
+ var CreditAmountAttributeSchema = createNumericAttributeSchema({
28674
+ traitType: "Credit Amount",
28675
+ title: "Credit Amount",
28676
+ description: "Credit amount",
28677
+ valueSchema: CreditAmountSchema
28611
28678
  });
28612
28679
  var CreditTypeAttributeSchema = NftAttributeSchema.safeExtend({
28613
28680
  trait_type: z.literal("Credit Type"),
@@ -28623,34 +28690,10 @@ var SourceWasteTypeAttributeSchema = NftAttributeSchema.safeExtend({
28623
28690
  title: "Source Waste Type Attribute",
28624
28691
  description: "Source waste type attribute"
28625
28692
  });
28626
- var SourceWeightAttributeSchema = NftAttributeSchema.safeExtend({
28627
- trait_type: z.literal("Source Weight (kg)"),
28628
- value: WeightKgSchema.meta({
28629
- title: "Source Weight",
28630
- description: "Weight of the source waste in kilograms"
28631
- }),
28632
- display_type: z.literal("number")
28633
- }).meta({
28634
- title: "Source Weight Attribute",
28635
- description: "Source weight attribute with numeric display"
28636
- });
28637
- var OriginCityAttributeSchema = NftAttributeSchema.safeExtend({
28638
- trait_type: z.literal("Origin City"),
28639
- value: CitySchema
28640
- }).meta({
28641
- title: "Origin City Attribute",
28642
- description: "Origin municipality attribute"
28643
- });
28644
- var RecyclerAttributeSchema = NftAttributeSchema.safeExtend({
28645
- trait_type: z.literal("Recycler"),
28646
- value: NonEmptyStringSchema.max(100).meta({
28647
- title: "Recycler",
28648
- description: "Organization that processed the waste",
28649
- example: "Eco Reciclagem"
28650
- })
28651
- }).meta({
28652
- title: "Recycler Attribute",
28653
- description: "Recycler attribute"
28693
+ var SourceWeightAttributeSchema = createWeightAttributeSchema({
28694
+ traitType: "Source Weight (kg)",
28695
+ title: "Source Weight",
28696
+ description: "Weight of the source waste in kilograms"
28654
28697
  });
28655
28698
  var MassIDTokenIdAttributeSchema = NftAttributeSchema.safeExtend({
28656
28699
  trait_type: z.literal("MassID"),
@@ -28662,18 +28705,24 @@ var MassIDTokenIdAttributeSchema = NftAttributeSchema.safeExtend({
28662
28705
  title: "MassID Token ID Attribute",
28663
28706
  description: "MassID token ID attribute"
28664
28707
  });
28665
- var MassIDRecyclingDateAttributeSchema = NftAttributeSchema.omit({
28666
- max_value: true
28667
- }).safeExtend({
28668
- trait_type: z.literal("MassID Recycling Date"),
28669
- value: UnixTimestampSchema.meta({
28670
- title: "MassID Recycling Date",
28671
- description: "Unix timestamp in milliseconds when the source waste was recycled"
28672
- }),
28673
- display_type: z.literal("date")
28708
+ var MassIDRecyclingDateAttributeSchema = createDateAttributeSchema({
28709
+ traitType: "MassID Recycling Date",
28710
+ title: "MassID Recycling Date",
28711
+ description: "Unix timestamp in milliseconds when the source waste was recycled"
28712
+ });
28713
+ var CertificateIssuanceDateAttributeSchema = createDateAttributeSchema(
28714
+ {
28715
+ traitType: "Certificate Issuance Date",
28716
+ title: "Certificate Issuance Date",
28717
+ description: "Unix timestamp in milliseconds when the certificate was issued"
28718
+ }
28719
+ );
28720
+ var OriginCityAttributeSchema = NftAttributeSchema.safeExtend({
28721
+ trait_type: z.literal("Origin City"),
28722
+ value: CitySchema
28674
28723
  }).meta({
28675
- title: "MassID Recycling Date Attribute",
28676
- description: "MassID recycling date attribute using Unix timestamp in milliseconds"
28724
+ title: "Origin City Attribute",
28725
+ description: "Origin municipality attribute"
28677
28726
  });
28678
28727
  var AuditResultSchema = z.enum(["PASSED", "FAILED"]).meta({
28679
28728
  title: "Audit Result",
@@ -28995,10 +29044,10 @@ var LocationSchema = z.strictObject({
28995
29044
  title: "Location",
28996
29045
  description: "Geographic location with address and coordinate information"
28997
29046
  });
28998
- var WasteClassificationSchema = z.strictObject({
28999
- primary_type: WasteTypeSchema.meta({
29000
- title: "Source Waste Primary Type",
29001
- description: "Primary type of the source waste"
29047
+ var WastePropertiesSchema = z.strictObject({
29048
+ type: WasteTypeSchema.meta({
29049
+ title: "Source Waste Type",
29050
+ description: "Type of the source waste"
29002
29051
  }),
29003
29052
  subtype: WasteSubtypeSchema.meta({
29004
29053
  title: "Source Waste Subtype",
@@ -29006,11 +29055,11 @@ var WasteClassificationSchema = z.strictObject({
29006
29055
  }),
29007
29056
  net_weight_kg: WeightKgSchema.meta({
29008
29057
  title: "Source Waste Net Weight",
29009
- description: "Net weight of the source waste"
29058
+ description: "Net weight of the source waste in kilograms (kg)"
29010
29059
  })
29011
29060
  }).meta({
29012
- title: "Waste Classification",
29013
- description: "Classification of the source waste (MassID)"
29061
+ title: "Waste Properties",
29062
+ description: "Properties of the source waste (MassID)"
29014
29063
  });
29015
29064
  var AccreditedParticipantSchema = z.strictObject({
29016
29065
  participant_id: UuidSchema.meta({
@@ -29286,7 +29335,7 @@ function buildSchemaUrl(schemaPath) {
29286
29335
  return `${getSchemaBaseUrl()}/${cleanPath}`;
29287
29336
  }
29288
29337
  function getSchemaVersionOrDefault() {
29289
- return "0.1.49";
29338
+ return "0.1.51";
29290
29339
  }
29291
29340
 
29292
29341
  // src/shared/schema-validation.ts
@@ -29472,17 +29521,12 @@ var MassIDAttributeWasteSubtypeSchema = NftAttributeSchema.safeExtend({
29472
29521
  title: "Waste Subtype Attribute",
29473
29522
  description: "Regulatory or operational waste subtype (e.g., Food, Food Waste and Beverages)"
29474
29523
  });
29475
- var MassIDAttributeWeightSchema = NftAttributeSchema.safeExtend({
29476
- trait_type: z.literal("Weight (kg)"),
29477
- value: WeightKgSchema,
29478
- display_type: z.literal("number")
29479
- }).meta({
29480
- title: "Weight Attribute (kg)",
29524
+ var MassIDAttributeWeightSchema = createWeightAttributeSchema({
29525
+ traitType: "Weight (kg)",
29526
+ title: "Weight",
29481
29527
  description: "Net batch weight in kilograms (kg) for this MassID"
29482
29528
  });
29483
- var MassIDAttributeOriginCitySchema = OriginCityAttributeSchema.safeExtend({
29484
- value: CitySchema
29485
- });
29529
+ var MassIDAttributeOriginCitySchema = OriginCityAttributeSchema;
29486
29530
  var MassIDAttributePickUpVehicleTypeSchema = NftAttributeSchema.safeExtend({
29487
29531
  trait_type: z.literal("Pick-up Vehicle Type"),
29488
29532
  value: VehicleTypeSchema.meta({
@@ -29547,38 +29591,20 @@ var MassIDAttributeScaleTypeSchema = NftAttributeSchema.safeExtend({
29547
29591
  title: "Scale Type Attribute",
29548
29592
  description: "Scale type attribute (optional)"
29549
29593
  });
29550
- var MassIDAttributePickUpDateSchema = NftAttributeSchema.safeExtend({
29551
- trait_type: z.literal("Pick-up Date"),
29552
- value: UnixTimestampSchema.meta({
29553
- title: "Pick-up Date",
29554
- description: "Unix timestamp in milliseconds when the waste was picked up from the source"
29555
- }),
29556
- display_type: z.literal("date")
29557
- }).meta({
29558
- title: "Pick-up Date Attribute",
29559
- description: "Pick-up date attribute with Unix timestamp"
29594
+ var MassIDAttributePickUpDateSchema = createDateAttributeSchema({
29595
+ traitType: "Pick-up Date",
29596
+ title: "Pick-up Date",
29597
+ description: "Unix timestamp in milliseconds when the waste was picked up from the source"
29560
29598
  });
29561
- var MassIDAttributeDropOffDateSchema = NftAttributeSchema.safeExtend({
29562
- trait_type: z.literal("Drop-off Date"),
29563
- value: UnixTimestampSchema.meta({
29564
- title: "Drop-off Date",
29565
- description: "Unix timestamp in milliseconds when the waste was dropped off at the destination"
29566
- }),
29567
- display_type: z.literal("date")
29568
- }).meta({
29569
- title: "Drop-off Date Attribute",
29570
- description: "Drop-off date attribute with Unix timestamp"
29599
+ var MassIDAttributeDropOffDateSchema = createDateAttributeSchema({
29600
+ traitType: "Drop-off Date",
29601
+ title: "Drop-off Date",
29602
+ description: "Unix timestamp in milliseconds when the waste was dropped off at the destination"
29571
29603
  });
29572
- var MassIDAttributeRecyclingDateSchema = NftAttributeSchema.safeExtend({
29573
- trait_type: z.literal("Recycling Date"),
29574
- value: UnixTimestampSchema.meta({
29575
- title: "Recycling Date",
29576
- description: "Unix timestamp in milliseconds when the waste was recycled/processed"
29577
- }),
29578
- display_type: z.literal("date")
29579
- }).meta({
29580
- title: "Recycling Date Attribute",
29581
- description: "Recycling date attribute with Unix timestamp"
29604
+ var MassIDAttributeRecyclingDateSchema = createDateAttributeSchema({
29605
+ traitType: "Recycling Date",
29606
+ title: "Recycling Date",
29607
+ description: "Unix timestamp in milliseconds when the waste was recycled/processed"
29582
29608
  });
29583
29609
  var MassIDAttributesSchema = uniqueBy(
29584
29610
  z.union([
@@ -29623,8 +29649,8 @@ var MassIDWastePropertiesSchema = z.strictObject({
29623
29649
  description: "Specific subcategory of waste material"
29624
29650
  }),
29625
29651
  local_classification: MassIDLocalClassificationSchema.optional(),
29626
- net_weight: WeightKgSchema.meta({
29627
- title: "Net Weight (kg)",
29652
+ net_weight_kg: WeightKgSchema.meta({
29653
+ title: "Net Weight",
29628
29654
  description: "Net weight of the waste batch in kilograms (kg)",
29629
29655
  examples: [3e3]
29630
29656
  })
@@ -29695,8 +29721,8 @@ var PickUpEventSchema = buildMassIDEventSchema(
29695
29721
  vehicle_type: VehicleTypeSchema.optional().meta({
29696
29722
  description: "Type of vehicle used for pick-up operations"
29697
29723
  }),
29698
- weight: WeightKgSchema.optional().meta({
29699
- title: "Pick-up Waste Weight (kg)",
29724
+ weight_kg: WeightKgSchema.optional().meta({
29725
+ title: "Pick-up Waste Weight",
29700
29726
  description: "Weight of the waste picked up at the origin location in kilograms (kg)"
29701
29727
  })
29702
29728
  }).optional().meta({
@@ -29717,17 +29743,17 @@ var WeighingEventSchema = buildMassIDEventSchema(
29717
29743
  vehicle_type: VehicleTypeSchema.optional().meta({
29718
29744
  description: "Type of vehicle used during weighing"
29719
29745
  }),
29720
- container_capacity: WeightKgSchema.optional().meta({
29721
- title: "Container Capacity (kg)",
29722
- description: "Maximum container capacity in kilograms"
29746
+ container_capacity_kg: WeightKgSchema.optional().meta({
29747
+ title: "Container Capacity",
29748
+ description: "Maximum container capacity in kilograms (kg)"
29723
29749
  }),
29724
- gross_weight: WeightKgSchema.optional().meta({
29725
- title: "Gross Weight (kg)",
29726
- description: "Total weight including vehicle/container before tare"
29750
+ gross_weight_kg: WeightKgSchema.optional().meta({
29751
+ title: "Gross Weight",
29752
+ description: "Total weight including vehicle/container before tare in kilograms (kg)"
29727
29753
  }),
29728
- tare: WeightKgSchema.optional().meta({
29729
- title: "Tare Weight (kg)",
29730
- description: "Weight of the empty vehicle or container"
29754
+ tare_kg: WeightKgSchema.optional().meta({
29755
+ title: "Tare Weight",
29756
+ description: "Weight of the empty vehicle or container in kilograms (kg)"
29731
29757
  })
29732
29758
  }).optional().meta({
29733
29759
  title: "Weighing Event Data",
@@ -29743,13 +29769,13 @@ var SortingEventSchema = buildMassIDEventSchema(
29743
29769
  "Sorting or segregation of waste materials"
29744
29770
  ).safeExtend({
29745
29771
  data: z.strictObject({
29746
- initial_weight: WeightKgSchema.optional().meta({
29747
- title: "Initial Weight (kg)",
29748
- description: "Weight of the material entering the sorting process in kilograms"
29772
+ initial_weight_kg: WeightKgSchema.optional().meta({
29773
+ title: "Initial Weight",
29774
+ description: "Weight of the material entering the sorting process in kilograms (kg)"
29749
29775
  }),
29750
- deducted_weight: WeightKgSchema.optional().meta({
29751
- title: "Deducted Weight (kg)",
29752
- description: "Weight removed during sorting (e.g., contaminants or moisture) in kilograms"
29776
+ deducted_weight_kg: WeightKgSchema.optional().meta({
29777
+ title: "Deducted Weight",
29778
+ description: "Weight removed during sorting (e.g., contaminants or moisture) in kilograms (kg)"
29753
29779
  })
29754
29780
  }).optional().meta({
29755
29781
  title: "Sorting Event Data",
@@ -29931,8 +29957,8 @@ var MassIDIpfsSchema = NftIpfsSchema.safeExtend({
29931
29957
  );
29932
29958
  assertAttributeMatches(
29933
29959
  "Weight (kg)",
29934
- data.waste_properties.net_weight,
29935
- "waste_properties.net_weight"
29960
+ data.waste_properties.net_weight_kg,
29961
+ "waste_properties.net_weight_kg"
29936
29962
  );
29937
29963
  assertAttributeMatches(
29938
29964
  "Local Waste Classification ID",
@@ -30001,34 +30027,25 @@ var MassIDIpfsSchema = NftIpfsSchema.safeExtend({
30001
30027
  var GasIDAttributeMethodologySchema = MethodologyAttributeSchema;
30002
30028
  var GasIDAttributeGasTypeSchema = NftAttributeSchema.safeExtend({
30003
30029
  trait_type: z.literal("Gas Type"),
30004
- value: NonEmptyStringSchema.max(100).meta({
30005
- title: "Gas Type",
30006
- description: "Type of gas prevented",
30007
- examples: ["Methane (CH\u2084)", "Carbon Dioxide (CO\u2082)"]
30008
- })
30030
+ value: GasTypeSchema
30009
30031
  }).meta({
30010
30032
  title: "Gas Type Attribute",
30011
30033
  description: "Gas type attribute"
30012
30034
  });
30013
- var GasIDAttributeCo2ePreventedSchema = NftAttributeSchema.safeExtend({
30014
- trait_type: z.literal("CO\u2082e Prevented (kg)"),
30015
- value: NonNegativeFloatSchema.meta({
30016
- title: "CO\u2082e Prevented",
30017
- description: "Total CO\u2082 equivalent emissions prevented in kilograms"
30018
- }),
30019
- display_type: z.literal("number")
30020
- }).meta({
30021
- title: "CO\u2082e Prevented Attribute",
30022
- description: "CO\u2082e prevented attribute with numeric display"
30035
+ var GasIDAttributeCo2ePreventedSchema = createNumericAttributeSchema({
30036
+ traitType: "CO\u2082e Prevented (kg)",
30037
+ title: "CO\u2082e Prevented",
30038
+ description: "Total CO\u2082 equivalent emissions prevented in kilograms",
30039
+ valueSchema: NonNegativeFloatSchema
30023
30040
  });
30024
30041
  var GasIDAttributeCreditAmountSchema = CreditAmountAttributeSchema;
30025
30042
  var GasIDAttributeCreditTypeSchema = CreditTypeAttributeSchema;
30026
30043
  var GasIDAttributeSourceWasteTypeSchema = SourceWasteTypeAttributeSchema;
30027
30044
  var GasIDAttributeSourceWeightSchema = SourceWeightAttributeSchema;
30028
30045
  var GasIDAttributeOriginCitySchema = OriginCityAttributeSchema;
30029
- var GasIDAttributeRecyclerSchema = RecyclerAttributeSchema;
30030
30046
  var GasIDAttributeMassIDTokenIdSchema = MassIDTokenIdAttributeSchema;
30031
30047
  var GasIDAttributeMassIDRecyclingDateSchema = MassIDRecyclingDateAttributeSchema;
30048
+ var GasIDAttributeCertificateIssuanceDateSchema = CertificateIssuanceDateAttributeSchema;
30032
30049
  var GasIDAttributesSchema = z.tuple([
30033
30050
  GasIDAttributeMethodologySchema,
30034
30051
  GasIDAttributeGasTypeSchema,
@@ -30038,24 +30055,24 @@ var GasIDAttributesSchema = z.tuple([
30038
30055
  GasIDAttributeSourceWasteTypeSchema,
30039
30056
  GasIDAttributeSourceWeightSchema,
30040
30057
  GasIDAttributeOriginCitySchema,
30041
- GasIDAttributeRecyclerSchema,
30042
30058
  GasIDAttributeMassIDTokenIdSchema,
30043
- GasIDAttributeMassIDRecyclingDateSchema
30059
+ GasIDAttributeMassIDRecyclingDateSchema,
30060
+ GasIDAttributeCertificateIssuanceDateSchema
30044
30061
  ]).meta({
30045
30062
  title: "GasID NFT Attribute Array",
30046
30063
  description: "Schema for the fixed set of GasID NFT attributes, enforcing order and type for each trait"
30047
30064
  });
30048
30065
  var GasIDSummarySchema = z.strictObject({
30049
- gas_type: NonEmptyStringSchema.meta({
30050
- title: "Gas Type",
30051
- description: "Type of gas prevented",
30052
- examples: ["Methane (CH\u2084)", "Carbon Dioxide (CO\u2082)"]
30053
- }),
30066
+ gas_type: GasTypeSchema,
30054
30067
  credit_type: CreditTypeSchema,
30055
30068
  credit_amount: CreditAmountSchema,
30056
30069
  prevented_co2e_kg: WeightKgSchema.meta({
30057
- title: "Prevented Emissions (CO\u2082e kg)",
30058
- description: "CO\u2082e weight of the prevented emissions"
30070
+ title: "Prevented Emissions (CO\u2082e)",
30071
+ description: "CO\u2082e weight of the prevented emissions in kilograms (kg)"
30072
+ }),
30073
+ issued_at: IsoDateTimeSchema.meta({
30074
+ title: "Issued At",
30075
+ description: "ISO 8601 timestamp when the certificate was issued"
30059
30076
  })
30060
30077
  }).meta({
30061
30078
  title: "GasID Summary",
@@ -30113,7 +30130,7 @@ var GasIDDataSchema = z.strictObject({
30113
30130
  methodology: MethodologyReferenceSchema,
30114
30131
  audit: AuditReferenceSchema,
30115
30132
  mass_id: MassIDReferenceSchema,
30116
- waste_classification: WasteClassificationSchema,
30133
+ waste_properties: WastePropertiesSchema,
30117
30134
  origin_location: LocationSchema.meta({
30118
30135
  title: "Source Waste Origin Location",
30119
30136
  description: "Location of the waste origin"
@@ -30151,25 +30168,21 @@ var GasIDIpfsSchema = NftIpfsSchema.safeExtend({
30151
30168
  }
30152
30169
  }).meta(GasIDIpfsSchemaMeta);
30153
30170
  var RecycledIDAttributeMethodologySchema = MethodologyAttributeSchema;
30154
- var RecycledIDAttributeRecycledMassWeightSchema = NftAttributeSchema.safeExtend({
30155
- trait_type: z.literal("Recycled Mass Weight (kg)"),
30156
- value: WeightKgSchema.meta({
30171
+ var RecycledIDAttributeRecycledMassWeightSchema = createWeightAttributeSchema(
30172
+ {
30173
+ traitType: "Recycled Mass Weight (kg)",
30157
30174
  title: "Recycled Mass Weight",
30158
30175
  description: "Total weight of recycled materials in kilograms"
30159
- }),
30160
- display_type: z.literal("number")
30161
- }).meta({
30162
- title: "Recycled Mass Weight Attribute",
30163
- description: "Recycled mass weight attribute with numeric display"
30164
- });
30176
+ }
30177
+ );
30165
30178
  var RecycledIDAttributeCreditAmountSchema = CreditAmountAttributeSchema;
30166
30179
  var RecycledIDAttributeCreditTypeSchema = CreditTypeAttributeSchema;
30167
30180
  var RecycledIDAttributeSourceWasteTypeSchema = SourceWasteTypeAttributeSchema;
30168
30181
  var RecycledIDAttributeSourceWeightSchema = SourceWeightAttributeSchema;
30169
30182
  var RecycledIDAttributeOriginCitySchema = OriginCityAttributeSchema;
30170
- var RecycledIDAttributeRecyclerSchema = RecyclerAttributeSchema;
30171
30183
  var RecycledIDAttributeMassIDTokenIdSchema = MassIDTokenIdAttributeSchema;
30172
30184
  var RecycledIDAttributeMassIDRecyclingDateSchema = MassIDRecyclingDateAttributeSchema;
30185
+ var RecycledIDAttributeCertificateIssuanceDateSchema = CertificateIssuanceDateAttributeSchema;
30173
30186
  var RecycledIDAttributesSchema = z.tuple([
30174
30187
  RecycledIDAttributeMethodologySchema,
30175
30188
  RecycledIDAttributeRecycledMassWeightSchema,
@@ -30178,9 +30191,9 @@ var RecycledIDAttributesSchema = z.tuple([
30178
30191
  RecycledIDAttributeSourceWasteTypeSchema,
30179
30192
  RecycledIDAttributeSourceWeightSchema,
30180
30193
  RecycledIDAttributeOriginCitySchema,
30181
- RecycledIDAttributeRecyclerSchema,
30182
30194
  RecycledIDAttributeMassIDTokenIdSchema,
30183
- RecycledIDAttributeMassIDRecyclingDateSchema
30195
+ RecycledIDAttributeMassIDRecyclingDateSchema,
30196
+ RecycledIDAttributeCertificateIssuanceDateSchema
30184
30197
  ]).meta({
30185
30198
  title: "RecycledID NFT Attribute Array",
30186
30199
  description: "Schema for the fixed set of RecycledID NFT attributes, enforcing order and type for each trait"
@@ -30188,10 +30201,14 @@ var RecycledIDAttributesSchema = z.tuple([
30188
30201
  var RecycledIDSummarySchema = z.strictObject({
30189
30202
  recycled_mass_kg: WeightKgSchema.meta({
30190
30203
  title: "Recycled Mass Weight",
30191
- description: "Total weight of materials successfully recycled"
30204
+ description: "Total weight of materials successfully recycled in kilograms (kg)"
30192
30205
  }),
30193
30206
  credit_type: CreditTypeSchema,
30194
- credit_amount: CreditAmountSchema
30207
+ credit_amount: CreditAmountSchema,
30208
+ issued_at: IsoDateTimeSchema.meta({
30209
+ title: "Issued At",
30210
+ description: "ISO 8601 timestamp when the certificate was issued"
30211
+ })
30195
30212
  }).meta({
30196
30213
  title: "RecycledID Summary",
30197
30214
  description: "Summary information for the RecycledID certificate"
@@ -30201,7 +30218,7 @@ var RecycledIDDataSchema = z.strictObject({
30201
30218
  methodology: MethodologyReferenceSchema,
30202
30219
  audit: AuditReferenceSchema,
30203
30220
  mass_id: MassIDReferenceSchema,
30204
- waste_classification: WasteClassificationSchema,
30221
+ waste_properties: WastePropertiesSchema,
30205
30222
  origin_location: LocationSchema.meta({
30206
30223
  title: "RecycledID Origin Location",
30207
30224
  description: "Source waste origin location details"
@@ -30250,49 +30267,28 @@ var CreditPurchaseReceiptCreditAttributeSchema = NftAttributeSchema.safeExtend({
30250
30267
  title: "Credit Attribute",
30251
30268
  description: "Attribute representing purchased amount per credit token symbol"
30252
30269
  });
30253
- var CreditPurchaseReceiptTotalCreditsAttributeSchema = NftAttributeSchema.safeExtend({
30254
- trait_type: z.literal("Total Credits Purchased"),
30255
- value: CreditAmountSchema.meta({
30256
- title: "Total Credits Purchased",
30257
- description: "Total number of credits purchased across all tokens"
30258
- }),
30259
- display_type: z.literal("number")
30260
- }).meta({
30261
- title: "Total Credits Purchased Attribute",
30262
- description: "Aggregate credits purchased attribute"
30270
+ var CreditPurchaseReceiptTotalCreditsAttributeSchema = createNumericAttributeSchema({
30271
+ traitType: "Total Credits Purchased",
30272
+ title: "Total Credits Purchased",
30273
+ description: "Total number of credits purchased across all tokens",
30274
+ valueSchema: CreditAmountSchema
30263
30275
  });
30264
- var CreditPurchaseReceiptTotalUsdcAttributeSchema = NftAttributeSchema.safeExtend({
30265
- trait_type: z.literal("Total USDC Amount"),
30266
- value: CreditAmountSchema.meta({
30267
- title: "Total USDC Amount",
30268
- description: "Total USDC amount paid for the purchase"
30269
- }),
30270
- display_type: z.literal("number")
30271
- }).meta({
30272
- title: "Total USDC Amount Attribute",
30273
- description: "Aggregate USDC amount attribute"
30276
+ var CreditPurchaseReceiptTotalUsdcAttributeSchema = createNumericAttributeSchema({
30277
+ traitType: "Total USDC Amount",
30278
+ title: "Total USDC Amount",
30279
+ description: "Total USDC amount paid for the purchase",
30280
+ valueSchema: CreditAmountSchema
30274
30281
  });
30275
- var CreditPurchaseReceiptPurchaseDateAttributeSchema = NftAttributeSchema.safeExtend({
30276
- trait_type: z.literal("Purchase Date"),
30277
- value: UnixTimestampSchema.meta({
30278
- title: "Purchase Date",
30279
- description: "Unix timestamp in milliseconds when the purchase was completed"
30280
- }),
30281
- display_type: z.literal("date")
30282
- }).meta({
30283
- title: "Purchase Date Attribute",
30284
- description: "Purchase date attribute using Unix timestamp in milliseconds"
30282
+ var CreditPurchaseReceiptPurchaseDateAttributeSchema = createDateAttributeSchema({
30283
+ traitType: "Purchase Date",
30284
+ title: "Purchase Date",
30285
+ description: "Unix timestamp in milliseconds when the purchase was completed"
30285
30286
  });
30286
- var CreditPurchaseReceiptCertificatesAttributeSchema = NftAttributeSchema.safeExtend({
30287
- trait_type: z.literal("Certificates Purchased"),
30288
- value: PositiveIntegerSchema.meta({
30289
- title: "Certificates Purchased",
30290
- description: "Total number of certificates purchased"
30291
- }),
30292
- display_type: z.literal("number")
30293
- }).meta({
30294
- title: "Certificates Purchased Attribute",
30295
- description: "Attribute representing how many certificates were purchased"
30287
+ var CreditPurchaseReceiptCertificatesAttributeSchema = createNumericAttributeSchema({
30288
+ traitType: "Certificates Purchased",
30289
+ title: "Certificates Purchased",
30290
+ description: "Total number of certificates purchased",
30291
+ valueSchema: PositiveIntegerSchema
30296
30292
  });
30297
30293
  var CreditPurchaseReceiptReceiverAttributeSchema = NftAttributeSchema.omit({
30298
30294
  display_type: true,
@@ -30794,16 +30790,11 @@ var CreditRetirementReceiptCreditAttributeSchema = NftAttributeSchema.safeExtend
30794
30790
  title: "Credit Attribute",
30795
30791
  description: "Attribute representing retired amount per credit token symbol"
30796
30792
  });
30797
- var CreditRetirementReceiptTotalCreditsAttributeSchema = NftAttributeSchema.safeExtend({
30798
- trait_type: z.literal("Total Credits Retired"),
30799
- value: CreditAmountSchema.meta({
30800
- title: "Total Credits Retired",
30801
- description: "Total number of credits retired across all tokens"
30802
- }),
30803
- display_type: z.literal("number")
30804
- }).meta({
30805
- title: "Total Credits Retired Attribute",
30806
- description: "Aggregate credits retired attribute"
30793
+ var CreditRetirementReceiptTotalCreditsAttributeSchema = createNumericAttributeSchema({
30794
+ traitType: "Total Credits Retired",
30795
+ title: "Total Credits Retired",
30796
+ description: "Total number of credits retired across all tokens",
30797
+ valueSchema: CreditAmountSchema
30807
30798
  });
30808
30799
  var CreditRetirementReceiptBeneficiaryAttributeSchema = NftAttributeSchema.safeExtend({
30809
30800
  trait_type: z.literal("Beneficiary"),
@@ -30827,27 +30818,16 @@ var CreditRetirementReceiptCreditHolderAttributeSchema = NftAttributeSchema.safe
30827
30818
  title: "Credit Holder Attribute",
30828
30819
  description: "Attribute containing the credit holder display name"
30829
30820
  });
30830
- var CreditRetirementReceiptRetirementDateAttributeSchema = NftAttributeSchema.safeExtend({
30831
- trait_type: z.literal("Retirement Date"),
30832
- value: UnixTimestampSchema.meta({
30833
- title: "Retirement Date",
30834
- description: "Unix timestamp in milliseconds when the retirement was completed"
30835
- }),
30836
- display_type: z.literal("date")
30837
- }).meta({
30838
- title: "Retirement Date Attribute",
30839
- description: "Retirement date attribute using Unix timestamp in milliseconds"
30821
+ var CreditRetirementReceiptRetirementDateAttributeSchema = createDateAttributeSchema({
30822
+ traitType: "Retirement Date",
30823
+ title: "Retirement Date",
30824
+ description: "Unix timestamp in milliseconds when the retirement was completed"
30840
30825
  });
30841
- var CreditRetirementReceiptCertificatesAttributeSchema = NftAttributeSchema.safeExtend({
30842
- trait_type: z.literal("Certificates Retired"),
30843
- value: PositiveIntegerSchema.meta({
30844
- title: "Certificates Retired",
30845
- description: "Total number of certificates retired"
30846
- }),
30847
- display_type: z.literal("number")
30848
- }).meta({
30849
- title: "Certificates Retired Attribute",
30850
- description: "Attribute representing how many certificates were retired in total"
30826
+ var CreditRetirementReceiptCertificatesAttributeSchema = createNumericAttributeSchema({
30827
+ traitType: "Certificates Retired",
30828
+ title: "Certificates Retired",
30829
+ description: "Total number of certificates retired",
30830
+ valueSchema: PositiveIntegerSchema
30851
30831
  });
30852
30832
  var CreditRetirementReceiptCollectionAttributeSchema = NftAttributeSchema.safeExtend({
30853
30833
  trait_type: CollectionNameSchema,
@@ -31474,6 +31454,6 @@ var MassIDAuditSchema = BaseIpfsSchema.safeExtend({
31474
31454
  data: MassIDAuditDataSchema
31475
31455
  }).meta(MassIDAuditSchemaMeta);
31476
31456
 
31477
- export { ALLOWED_BLOCKCHAIN_NETWORKS, AccreditedParticipantSchema, AccreditedParticipantsSchema, AuditReferenceSchema, AuditResultSchema, AuditRuleDefinitionSchema, AuditRuleDefinitionsSchema, AuditRuleExecutionResultSchema, AuditRuleExecutionResultsSchema, BLOCKCHAIN_NETWORK_CONFIG, BRAZIL_COUNTRY_CODE, BRAZIL_MUNICIPALITIES, BRAZIL_MUNICIPALITIES_NAMES, BRAZIL_SUBDIVISION_CODES, BaseIpfsSchema, BlockchainChainIdSchema, BlockchainNetworkNameSchema, CitySchema, CollectionNameSchema, CollectionSchema, CollectionSchemaMeta, CollectionSlugSchema, ContainerTypeSchema, CoordinatesSchema, CreditAmountAttributeSchema, CreditAmountSchema, CreditPurchaseReceiptAttributesSchema, CreditPurchaseReceiptDataSchema, CreditPurchaseReceiptIpfsSchema, CreditPurchaseReceiptIpfsSchemaMeta, CreditPurchaseReceiptSummarySchema, CreditRetirementReceiptAttributesSchema, CreditRetirementReceiptDataSchema, CreditRetirementReceiptIpfsSchema, CreditRetirementReceiptIpfsSchemaMeta, CreditRetirementReceiptSummarySchema, CreditSchema, CreditSchemaMeta, CreditTokenNameSchema, CreditTokenSlugSchema, CreditTokenSymbolSchema, CreditTypeAttributeSchema, CreditTypeSchema, DistributionNotesSchema, EPSILON, EnsDomainSchema, EthereumAddressSchema, ExternalIdSchema, ExternalUrlSchema, GasIDAttributesSchema, GasIDDataSchema, GasIDIpfsSchema, GasIDIpfsSchemaMeta, GasIDReferenceSchema, HexColorSchema, IbamaWasteClassificationSchema, IpfsCidSchema, IpfsUriSchema, IpnsSchema, IsoCountryCodeSchema, IsoCountrySubdivisionCodeSchema, IsoDateSchema, IsoDateTimeSchema, LatitudeSchema, LocationSchema, LongitudeSchema, MassIDAttributesSchema, MassIDAuditDataSchema, MassIDAuditSchema, MassIDAuditSchemaMeta, MassIDAuditSummarySchema, MassIDDataSchema, MassIDIpfsSchema, MassIDIpfsSchemaMeta, MassIDRecyclingDateAttributeSchema, MassIDReferenceSchema, MassIDTokenIdAttributeSchema, MassIdReferenceWithContractSchema, MethodologyAttributeSchema, MethodologyDataSchema, MethodologyNameSchema, MethodologyReferenceSchema, MethodologySchema, MethodologySchemaMeta, MethodologyShortNameSchema, MethodologySlugSchema, NftAttributeSchema, NftIpfsSchema, NonEmptyStringSchema, NonNegativeFloatSchema, NonNegativeIntegerSchema, OriginCityAttributeSchema, ParticipantRewardsSchema, ParticipantRoleSchema, ParticipantSchema, PercentageSchema, PositiveIntegerSchema, ReceiptIdentitySchema, RecordEnvironmentSchema, RecordSchemaTypeSchema, RecycledIDAttributesSchema, RecycledIDDataSchema, RecycledIDIpfsSchema, RecycledIDIpfsSchemaMeta, RecyclerAttributeSchema, RewardAllocationSchema, ScaleTypeSchema, SchemaInfoSchema, SemanticVersionSchema, Sha256HashSchema, SlugSchema, SmartContractAddressSchema, SmartContractSchema, SourceWasteTypeAttributeSchema, SourceWeightAttributeSchema, StringifiedTokenIdSchema, TokenIdSchema, UnixTimestampSchema, UuidSchema, VehicleTypeSchema, ViewerReferenceSchema, WasteClassificationSchema, WasteSubtypeSchema, WasteTypeSchema, WeighingCaptureMethodSchema, WeightKgSchema, buildSchemaUrl, canonicalizeForHash, createAttributeMap, createReceiptCertificateSchema, createReceiptCollectionSchema, createReceiptCreditSchema, getSchemaBaseUrl, getSchemaVersionOrDefault, hashCanonicalJson, hashObject, nearlyEqual, uniqueArrayItems, uniqueBy, validateAttributeValue, validateAttributesForItems, validateCountMatches, validateDateAttribute, validateLocationBrazilData, validateSummaryListMatchesData, validateTotalMatches };
31457
+ export { ALLOWED_BLOCKCHAIN_NETWORKS, AccreditedParticipantSchema, AccreditedParticipantsSchema, AuditReferenceSchema, AuditResultSchema, AuditRuleDefinitionSchema, AuditRuleDefinitionsSchema, AuditRuleExecutionResultSchema, AuditRuleExecutionResultsSchema, BLOCKCHAIN_NETWORK_CONFIG, BRAZIL_COUNTRY_CODE, BRAZIL_MUNICIPALITIES, BRAZIL_MUNICIPALITIES_NAMES, BRAZIL_SUBDIVISION_CODES, BaseIpfsSchema, BlockchainChainIdSchema, BlockchainNetworkNameSchema, CertificateIssuanceDateAttributeSchema, CitySchema, CollectionNameSchema, CollectionSchema, CollectionSchemaMeta, CollectionSlugSchema, ContainerTypeSchema, CoordinatesSchema, CreditAmountAttributeSchema, CreditAmountSchema, CreditPurchaseReceiptAttributesSchema, CreditPurchaseReceiptDataSchema, CreditPurchaseReceiptIpfsSchema, CreditPurchaseReceiptIpfsSchemaMeta, CreditPurchaseReceiptSummarySchema, CreditRetirementReceiptAttributesSchema, CreditRetirementReceiptDataSchema, CreditRetirementReceiptIpfsSchema, CreditRetirementReceiptIpfsSchemaMeta, CreditRetirementReceiptSummarySchema, CreditSchema, CreditSchemaMeta, CreditTokenNameSchema, CreditTokenSlugSchema, CreditTokenSymbolSchema, CreditTypeAttributeSchema, CreditTypeSchema, DistributionNotesSchema, EPSILON, EnsDomainSchema, EthereumAddressSchema, ExternalIdSchema, ExternalUrlSchema, GasIDAttributesSchema, GasIDDataSchema, GasIDIpfsSchema, GasIDIpfsSchemaMeta, GasIDReferenceSchema, GasTypeSchema, HexColorSchema, IbamaWasteClassificationSchema, IpfsCidSchema, IpfsUriSchema, IpnsSchema, IsoCountryCodeSchema, IsoCountrySubdivisionCodeSchema, IsoDateSchema, IsoDateTimeSchema, LatitudeSchema, LocationSchema, LongitudeSchema, MassIDAttributesSchema, MassIDAuditDataSchema, MassIDAuditSchema, MassIDAuditSchemaMeta, MassIDAuditSummarySchema, MassIDDataSchema, MassIDIpfsSchema, MassIDIpfsSchemaMeta, MassIDRecyclingDateAttributeSchema, MassIDReferenceSchema, MassIDTokenIdAttributeSchema, MassIdReferenceWithContractSchema, MethodologyAttributeSchema, MethodologyDataSchema, MethodologyNameSchema, MethodologyReferenceSchema, MethodologySchema, MethodologySchemaMeta, MethodologyShortNameSchema, MethodologySlugSchema, NftAttributeSchema, NftIpfsSchema, NonEmptyStringSchema, NonNegativeFloatSchema, NonNegativeIntegerSchema, OriginCityAttributeSchema, ParticipantRewardsSchema, ParticipantRoleSchema, ParticipantSchema, PercentageSchema, PositiveIntegerSchema, ReceiptIdentitySchema, RecordEnvironmentSchema, RecordSchemaTypeSchema, RecycledIDAttributesSchema, RecycledIDDataSchema, RecycledIDIpfsSchema, RecycledIDIpfsSchemaMeta, RewardAllocationSchema, ScaleTypeSchema, SchemaInfoSchema, SemanticVersionSchema, Sha256HashSchema, SlugSchema, SmartContractAddressSchema, SmartContractSchema, SourceWasteTypeAttributeSchema, SourceWeightAttributeSchema, StringifiedTokenIdSchema, TokenIdSchema, UnixTimestampSchema, UuidSchema, VehicleTypeSchema, ViewerReferenceSchema, WastePropertiesSchema, WasteSubtypeSchema, WasteTypeSchema, WeighingCaptureMethodSchema, WeightKgSchema, buildSchemaUrl, canonicalizeForHash, createAttributeMap, createDateAttributeSchema, createNumericAttributeSchema, createReceiptCertificateSchema, createReceiptCollectionSchema, createReceiptCreditSchema, createWeightAttributeSchema, getSchemaBaseUrl, getSchemaVersionOrDefault, hashCanonicalJson, hashObject, nearlyEqual, uniqueArrayItems, uniqueBy, validateAttributeValue, validateAttributesForItems, validateCountMatches, validateDateAttribute, validateLocationBrazilData, validateSummaryListMatchesData, validateTotalMatches };
31478
31458
  //# sourceMappingURL=index.js.map
31479
31459
  //# sourceMappingURL=index.js.map