@xyo-network/xns-record-payload-plugins 2.95.5 → 2.96.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.
@@ -81,8 +81,7 @@ var isDomainRegistrationLeaseMeta = (0, import_payload_model5.isPayloadOfSchemaT
81
81
  // src/Duration/validation/validateBoundWitness.ts
82
82
  var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
83
83
  var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
84
- if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema)))
85
- return false;
84
+ if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false;
86
85
  const validator = new import_boundwitness_validator.BoundWitnessValidator(recordBw);
87
86
  const errors = await validator.validate();
88
87
  return errors.length === 0;
@@ -91,10 +90,8 @@ var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
91
90
  // src/Duration/validation/validateBoundWitnessAndDuration.ts
92
91
  var import_payload_builder = require("@xyo-network/payload-builder");
93
92
  var validateBoundWitnessAndDuration = async (recordBw, recordPayload) => {
94
- if (!await recordIsInBoundWitness(recordBw, recordPayload))
95
- return false;
96
- if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload))
97
- return false;
93
+ if (!await recordIsInBoundWitness(recordBw, recordPayload)) return false;
94
+ if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false;
98
95
  return true;
99
96
  };
100
97
  var recordIsInBoundWitness = async (recordBw, recordPayload) => {
@@ -109,8 +106,7 @@ var recordIsTemporallyValidToBoundWitness = (recordBw, recordPayload) => {
109
106
 
110
107
  // src/Duration/validation/validateDuration.ts
111
108
  var validateDuration = (recordPayload) => {
112
- if (!isWithinDelegatedTimeframe(recordPayload))
113
- return false;
109
+ if (!isWithinDelegatedTimeframe(recordPayload)) return false;
114
110
  return true;
115
111
  };
116
112
  var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
@@ -119,12 +115,9 @@ var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
119
115
 
120
116
  // src/Duration/validation/validateBoundWitnessWithDuration.ts
121
117
  var validateBoundWitnessWithDuration = async (recordBw, recordPayload) => {
122
- if (!await validateBoundWitness(recordBw, [recordPayload.schema]))
123
- return false;
124
- if (!validateDuration(recordPayload))
125
- return false;
126
- if (!await validateBoundWitnessAndDuration(recordBw, recordPayload))
127
- return false;
118
+ if (!await validateBoundWitness(recordBw, [recordPayload.schema])) return false;
119
+ if (!validateDuration(recordPayload)) return false;
120
+ if (!await validateBoundWitnessAndDuration(recordBw, recordPayload)) return false;
128
121
  return true;
129
122
  };
130
123
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["export * from './Address'\nexport * from './Domain'\nexport * from './DomainRegistration'\nexport * from './Duration'\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,2BAAyD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,sBAAkB,4CAAqC,mBAAmB;AAChF,IAAM,8BAA0B,4CAA+C,mBAAmB;;;ACrBzG,IAAAA,wBAAgH;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,eAAW,6CAA8B,YAAY;AAK3D,IAAM,0BAAsB,wDAAyC,YAAY;AAKjF,IAAM,uBAAmB,qDAAsC,YAAY;;;AC3ClF,IAAAC,wBAAgH;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,oBAAgB,6CAAmC,iBAAiB;AAK1E,IAAM,+BAA2B,wDAA8C,iBAAiB;AAKhG,IAAM,4BAAwB,qDAA2C,iBAAiB;;;AC9BjG,IAAAC,wBAAgH;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,2BAAuB,6CAA0C,wBAAwB;AAK/F,IAAM,sCAAkC,wDAAqD,wBAAwB;AAKrH,IAAM,mCAA+B,qDAAkD,wBAAwB;;;ACrCtH,IAAAC,wBAAgH;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,gCAA4B,6CAA+C,6BAA6B;AAK9G,IAAM,uCAAmC,wDAA0D,6BAA6B;AAKhI,IAAM,oCAAgC,qDAAuD,6BAA6B;;;AC3BjI,oCAAsC;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC;AAAG,WAAO;AAE1G,QAAM,YAAY,IAAI,oDAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,6BAA+B;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa;AAAI,WAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa;AAAG,WAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,sCAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa;AAAG,WAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC;AAAI,WAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa;AAAG,WAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa;AAAI,WAAO;AAC9E,SAAO;AACT;","names":["import_payload_model","import_payload_model","import_payload_model","import_payload_model"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["export * from './Address'\nexport * from './Domain'\nexport * from './DomainRegistration'\nexport * from './Duration'\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,2BAAyD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,sBAAkB,4CAAqC,mBAAmB;AAChF,IAAM,8BAA0B,4CAA+C,mBAAmB;;;ACrBzG,IAAAA,wBAAgH;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,eAAW,6CAA8B,YAAY;AAK3D,IAAM,0BAAsB,wDAAyC,YAAY;AAKjF,IAAM,uBAAmB,qDAAsC,YAAY;;;AC3ClF,IAAAC,wBAAgH;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,oBAAgB,6CAAmC,iBAAiB;AAK1E,IAAM,+BAA2B,wDAA8C,iBAAiB;AAKhG,IAAM,4BAAwB,qDAA2C,iBAAiB;;;AC9BjG,IAAAC,wBAAgH;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,2BAAuB,6CAA0C,wBAAwB;AAK/F,IAAM,sCAAkC,wDAAqD,wBAAwB;AAKrH,IAAM,mCAA+B,qDAAkD,wBAAwB;;;ACrCtH,IAAAC,wBAAgH;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,gCAA4B,6CAA+C,6BAA6B;AAK9G,IAAM,uCAAmC,wDAA0D,6BAA6B;AAKhI,IAAM,oCAAgC,qDAAuD,6BAA6B;;;AC3BjI,oCAAsC;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC,EAAG,QAAO;AAE1G,QAAM,YAAY,IAAI,oDAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,6BAA+B;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa,EAAI,QAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa,EAAG,QAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,sCAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa,EAAG,QAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC,EAAI,QAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa,EAAG,QAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa,EAAI,QAAO;AAC9E,SAAO;AACT;","names":["import_payload_model","import_payload_model","import_payload_model","import_payload_model"]}
@@ -35,8 +35,7 @@ var isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta4(DomainRegistr
35
35
  // src/Duration/validation/validateBoundWitness.ts
36
36
  import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
37
37
  var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
38
- if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema)))
39
- return false;
38
+ if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false;
40
39
  const validator = new BoundWitnessValidator(recordBw);
41
40
  const errors = await validator.validate();
42
41
  return errors.length === 0;
@@ -45,10 +44,8 @@ var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
45
44
  // src/Duration/validation/validateBoundWitnessAndDuration.ts
46
45
  import { PayloadBuilder } from "@xyo-network/payload-builder";
47
46
  var validateBoundWitnessAndDuration = async (recordBw, recordPayload) => {
48
- if (!await recordIsInBoundWitness(recordBw, recordPayload))
49
- return false;
50
- if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload))
51
- return false;
47
+ if (!await recordIsInBoundWitness(recordBw, recordPayload)) return false;
48
+ if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false;
52
49
  return true;
53
50
  };
54
51
  var recordIsInBoundWitness = async (recordBw, recordPayload) => {
@@ -63,8 +60,7 @@ var recordIsTemporallyValidToBoundWitness = (recordBw, recordPayload) => {
63
60
 
64
61
  // src/Duration/validation/validateDuration.ts
65
62
  var validateDuration = (recordPayload) => {
66
- if (!isWithinDelegatedTimeframe(recordPayload))
67
- return false;
63
+ if (!isWithinDelegatedTimeframe(recordPayload)) return false;
68
64
  return true;
69
65
  };
70
66
  var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
@@ -73,12 +69,9 @@ var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
73
69
 
74
70
  // src/Duration/validation/validateBoundWitnessWithDuration.ts
75
71
  var validateBoundWitnessWithDuration = async (recordBw, recordPayload) => {
76
- if (!await validateBoundWitness(recordBw, [recordPayload.schema]))
77
- return false;
78
- if (!validateDuration(recordPayload))
79
- return false;
80
- if (!await validateBoundWitnessAndDuration(recordBw, recordPayload))
81
- return false;
72
+ if (!await validateBoundWitness(recordBw, [recordPayload.schema])) return false;
73
+ if (!validateDuration(recordPayload)) return false;
74
+ if (!await validateBoundWitnessAndDuration(recordBw, recordPayload)) return false;
82
75
  return true;
83
76
  };
84
77
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";AACA,SAAS,6BAAgD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,kBAAkB,sBAAqC,mBAAmB;AAChF,IAAM,0BAA0B,sBAA+C,mBAAmB;;;ACrBzG,SAAS,yBAAAA,wBAAuB,+BAA+B,wCAAiD;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,WAAWA,uBAA8B,YAAY;AAK3D,IAAM,sBAAsB,iCAAyC,YAAY;AAKjF,IAAM,mBAAmB,8BAAsC,YAAY;;;AC3ClF,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,gBAAgBF,uBAAmC,iBAAiB;AAK1E,IAAM,2BAA2BE,kCAA8C,iBAAiB;AAKhG,IAAM,wBAAwBD,+BAA2C,iBAAiB;;;AC9BjG,SAAS,yBAAAE,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,uBAAuBC,uBAA0C,wBAAwB;AAK/F,IAAM,kCAAkCC,kCAAqD,wBAAwB;AAKrH,IAAM,+BAA+BC,+BAAkD,wBAAwB;;;ACrCtH,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,4BAA4BC,uBAA+C,6BAA6B;AAK9G,IAAM,mCAAmCC,kCAA0D,6BAA6B;AAKhI,IAAM,gCAAgCC,+BAAuD,6BAA6B;;;AC3BjI,SAAS,6BAA6B;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC;AAAG,WAAO;AAE1G,QAAM,YAAY,IAAI,sBAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,SAAS,sBAAsB;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa;AAAI,WAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa;AAAG,WAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,eAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa;AAAG,WAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC;AAAI,WAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa;AAAG,WAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa;AAAI,WAAO;AAC9E,SAAO;AACT;","names":["isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta"]}
1
+ {"version":3,"sources":["../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";AACA,SAAS,6BAAgD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,kBAAkB,sBAAqC,mBAAmB;AAChF,IAAM,0BAA0B,sBAA+C,mBAAmB;;;ACrBzG,SAAS,yBAAAA,wBAAuB,+BAA+B,wCAAiD;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,WAAWA,uBAA8B,YAAY;AAK3D,IAAM,sBAAsB,iCAAyC,YAAY;AAKjF,IAAM,mBAAmB,8BAAsC,YAAY;;;AC3ClF,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,gBAAgBF,uBAAmC,iBAAiB;AAK1E,IAAM,2BAA2BE,kCAA8C,iBAAiB;AAKhG,IAAM,wBAAwBD,+BAA2C,iBAAiB;;;AC9BjG,SAAS,yBAAAE,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,uBAAuBC,uBAA0C,wBAAwB;AAK/F,IAAM,kCAAkCC,kCAAqD,wBAAwB;AAKrH,IAAM,+BAA+BC,+BAAkD,wBAAwB;;;ACrCtH,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,4BAA4BC,uBAA+C,6BAA6B;AAK9G,IAAM,mCAAmCC,kCAA0D,6BAA6B;AAKhI,IAAM,gCAAgCC,+BAAuD,6BAA6B;;;AC3BjI,SAAS,6BAA6B;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC,EAAG,QAAO;AAE1G,QAAM,YAAY,IAAI,sBAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,SAAS,sBAAsB;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa,EAAI,QAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa,EAAG,QAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,eAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa,EAAG,QAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC,EAAI,QAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa,EAAG,QAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa,EAAI,QAAO;AAC9E,SAAO;AACT;","names":["isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta"]}
@@ -81,8 +81,7 @@ var isDomainRegistrationLeaseMeta = (0, import_payload_model5.isPayloadOfSchemaT
81
81
  // src/Duration/validation/validateBoundWitness.ts
82
82
  var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
83
83
  var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
84
- if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema)))
85
- return false;
84
+ if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false;
86
85
  const validator = new import_boundwitness_validator.BoundWitnessValidator(recordBw);
87
86
  const errors = await validator.validate();
88
87
  return errors.length === 0;
@@ -91,10 +90,8 @@ var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
91
90
  // src/Duration/validation/validateBoundWitnessAndDuration.ts
92
91
  var import_payload_builder = require("@xyo-network/payload-builder");
93
92
  var validateBoundWitnessAndDuration = async (recordBw, recordPayload) => {
94
- if (!await recordIsInBoundWitness(recordBw, recordPayload))
95
- return false;
96
- if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload))
97
- return false;
93
+ if (!await recordIsInBoundWitness(recordBw, recordPayload)) return false;
94
+ if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false;
98
95
  return true;
99
96
  };
100
97
  var recordIsInBoundWitness = async (recordBw, recordPayload) => {
@@ -109,8 +106,7 @@ var recordIsTemporallyValidToBoundWitness = (recordBw, recordPayload) => {
109
106
 
110
107
  // src/Duration/validation/validateDuration.ts
111
108
  var validateDuration = (recordPayload) => {
112
- if (!isWithinDelegatedTimeframe(recordPayload))
113
- return false;
109
+ if (!isWithinDelegatedTimeframe(recordPayload)) return false;
114
110
  return true;
115
111
  };
116
112
  var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
@@ -119,12 +115,9 @@ var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
119
115
 
120
116
  // src/Duration/validation/validateBoundWitnessWithDuration.ts
121
117
  var validateBoundWitnessWithDuration = async (recordBw, recordPayload) => {
122
- if (!await validateBoundWitness(recordBw, [recordPayload.schema]))
123
- return false;
124
- if (!validateDuration(recordPayload))
125
- return false;
126
- if (!await validateBoundWitnessAndDuration(recordBw, recordPayload))
127
- return false;
118
+ if (!await validateBoundWitness(recordBw, [recordPayload.schema])) return false;
119
+ if (!validateDuration(recordPayload)) return false;
120
+ if (!await validateBoundWitnessAndDuration(recordBw, recordPayload)) return false;
128
121
  return true;
129
122
  };
130
123
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["export * from './Address'\nexport * from './Domain'\nexport * from './DomainRegistration'\nexport * from './Duration'\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,2BAAyD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,sBAAkB,4CAAqC,mBAAmB;AAChF,IAAM,8BAA0B,4CAA+C,mBAAmB;;;ACrBzG,IAAAA,wBAAgH;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,eAAW,6CAA8B,YAAY;AAK3D,IAAM,0BAAsB,wDAAyC,YAAY;AAKjF,IAAM,uBAAmB,qDAAsC,YAAY;;;AC3ClF,IAAAC,wBAAgH;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,oBAAgB,6CAAmC,iBAAiB;AAK1E,IAAM,+BAA2B,wDAA8C,iBAAiB;AAKhG,IAAM,4BAAwB,qDAA2C,iBAAiB;;;AC9BjG,IAAAC,wBAAgH;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,2BAAuB,6CAA0C,wBAAwB;AAK/F,IAAM,sCAAkC,wDAAqD,wBAAwB;AAKrH,IAAM,mCAA+B,qDAAkD,wBAAwB;;;ACrCtH,IAAAC,wBAAgH;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,gCAA4B,6CAA+C,6BAA6B;AAK9G,IAAM,uCAAmC,wDAA0D,6BAA6B;AAKhI,IAAM,oCAAgC,qDAAuD,6BAA6B;;;AC3BjI,oCAAsC;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC;AAAG,WAAO;AAE1G,QAAM,YAAY,IAAI,oDAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,6BAA+B;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa;AAAI,WAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa;AAAG,WAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,sCAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa;AAAG,WAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC;AAAI,WAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa;AAAG,WAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa;AAAI,WAAO;AAC9E,SAAO;AACT;","names":["import_payload_model","import_payload_model","import_payload_model","import_payload_model"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["export * from './Address'\nexport * from './Domain'\nexport * from './DomainRegistration'\nexport * from './Duration'\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,2BAAyD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,sBAAkB,4CAAqC,mBAAmB;AAChF,IAAM,8BAA0B,4CAA+C,mBAAmB;;;ACrBzG,IAAAA,wBAAgH;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,eAAW,6CAA8B,YAAY;AAK3D,IAAM,0BAAsB,wDAAyC,YAAY;AAKjF,IAAM,uBAAmB,qDAAsC,YAAY;;;AC3ClF,IAAAC,wBAAgH;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,oBAAgB,6CAAmC,iBAAiB;AAK1E,IAAM,+BAA2B,wDAA8C,iBAAiB;AAKhG,IAAM,4BAAwB,qDAA2C,iBAAiB;;;AC9BjG,IAAAC,wBAAgH;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,2BAAuB,6CAA0C,wBAAwB;AAK/F,IAAM,sCAAkC,wDAAqD,wBAAwB;AAKrH,IAAM,mCAA+B,qDAAkD,wBAAwB;;;ACrCtH,IAAAC,wBAAgH;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,gCAA4B,6CAA+C,6BAA6B;AAK9G,IAAM,uCAAmC,wDAA0D,6BAA6B;AAKhI,IAAM,oCAAgC,qDAAuD,6BAA6B;;;AC3BjI,oCAAsC;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC,EAAG,QAAO;AAE1G,QAAM,YAAY,IAAI,oDAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,6BAA+B;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa,EAAI,QAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa,EAAG,QAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,sCAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa,EAAG,QAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC,EAAI,QAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa,EAAG,QAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa,EAAI,QAAO;AAC9E,SAAO;AACT;","names":["import_payload_model","import_payload_model","import_payload_model","import_payload_model"]}
@@ -35,8 +35,7 @@ var isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta4(DomainRegistr
35
35
  // src/Duration/validation/validateBoundWitness.ts
36
36
  import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
37
37
  var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
38
- if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema)))
39
- return false;
38
+ if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false;
40
39
  const validator = new BoundWitnessValidator(recordBw);
41
40
  const errors = await validator.validate();
42
41
  return errors.length === 0;
@@ -45,10 +44,8 @@ var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
45
44
  // src/Duration/validation/validateBoundWitnessAndDuration.ts
46
45
  import { PayloadBuilder } from "@xyo-network/payload-builder";
47
46
  var validateBoundWitnessAndDuration = async (recordBw, recordPayload) => {
48
- if (!await recordIsInBoundWitness(recordBw, recordPayload))
49
- return false;
50
- if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload))
51
- return false;
47
+ if (!await recordIsInBoundWitness(recordBw, recordPayload)) return false;
48
+ if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false;
52
49
  return true;
53
50
  };
54
51
  var recordIsInBoundWitness = async (recordBw, recordPayload) => {
@@ -63,8 +60,7 @@ var recordIsTemporallyValidToBoundWitness = (recordBw, recordPayload) => {
63
60
 
64
61
  // src/Duration/validation/validateDuration.ts
65
62
  var validateDuration = (recordPayload) => {
66
- if (!isWithinDelegatedTimeframe(recordPayload))
67
- return false;
63
+ if (!isWithinDelegatedTimeframe(recordPayload)) return false;
68
64
  return true;
69
65
  };
70
66
  var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
@@ -73,12 +69,9 @@ var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
73
69
 
74
70
  // src/Duration/validation/validateBoundWitnessWithDuration.ts
75
71
  var validateBoundWitnessWithDuration = async (recordBw, recordPayload) => {
76
- if (!await validateBoundWitness(recordBw, [recordPayload.schema]))
77
- return false;
78
- if (!validateDuration(recordPayload))
79
- return false;
80
- if (!await validateBoundWitnessAndDuration(recordBw, recordPayload))
81
- return false;
72
+ if (!await validateBoundWitness(recordBw, [recordPayload.schema])) return false;
73
+ if (!validateDuration(recordPayload)) return false;
74
+ if (!await validateBoundWitnessAndDuration(recordBw, recordPayload)) return false;
82
75
  return true;
83
76
  };
84
77
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";AACA,SAAS,6BAAgD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,kBAAkB,sBAAqC,mBAAmB;AAChF,IAAM,0BAA0B,sBAA+C,mBAAmB;;;ACrBzG,SAAS,yBAAAA,wBAAuB,+BAA+B,wCAAiD;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,WAAWA,uBAA8B,YAAY;AAK3D,IAAM,sBAAsB,iCAAyC,YAAY;AAKjF,IAAM,mBAAmB,8BAAsC,YAAY;;;AC3ClF,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,gBAAgBF,uBAAmC,iBAAiB;AAK1E,IAAM,2BAA2BE,kCAA8C,iBAAiB;AAKhG,IAAM,wBAAwBD,+BAA2C,iBAAiB;;;AC9BjG,SAAS,yBAAAE,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,uBAAuBC,uBAA0C,wBAAwB;AAK/F,IAAM,kCAAkCC,kCAAqD,wBAAwB;AAKrH,IAAM,+BAA+BC,+BAAkD,wBAAwB;;;ACrCtH,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,4BAA4BC,uBAA+C,6BAA6B;AAK9G,IAAM,mCAAmCC,kCAA0D,6BAA6B;AAKhI,IAAM,gCAAgCC,+BAAuD,6BAA6B;;;AC3BjI,SAAS,6BAA6B;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC;AAAG,WAAO;AAE1G,QAAM,YAAY,IAAI,sBAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,SAAS,sBAAsB;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa;AAAI,WAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa;AAAG,WAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,eAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa;AAAG,WAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC;AAAI,WAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa;AAAG,WAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa;AAAI,WAAO;AAC9E,SAAO;AACT;","names":["isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta"]}
1
+ {"version":3,"sources":["../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";AACA,SAAS,6BAAgD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,kBAAkB,sBAAqC,mBAAmB;AAChF,IAAM,0BAA0B,sBAA+C,mBAAmB;;;ACrBzG,SAAS,yBAAAA,wBAAuB,+BAA+B,wCAAiD;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,WAAWA,uBAA8B,YAAY;AAK3D,IAAM,sBAAsB,iCAAyC,YAAY;AAKjF,IAAM,mBAAmB,8BAAsC,YAAY;;;AC3ClF,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,gBAAgBF,uBAAmC,iBAAiB;AAK1E,IAAM,2BAA2BE,kCAA8C,iBAAiB;AAKhG,IAAM,wBAAwBD,+BAA2C,iBAAiB;;;AC9BjG,SAAS,yBAAAE,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,uBAAuBC,uBAA0C,wBAAwB;AAK/F,IAAM,kCAAkCC,kCAAqD,wBAAwB;AAKrH,IAAM,+BAA+BC,+BAAkD,wBAAwB;;;ACrCtH,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,4BAA4BC,uBAA+C,6BAA6B;AAK9G,IAAM,mCAAmCC,kCAA0D,6BAA6B;AAKhI,IAAM,gCAAgCC,+BAAuD,6BAA6B;;;AC3BjI,SAAS,6BAA6B;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC,EAAG,QAAO;AAE1G,QAAM,YAAY,IAAI,sBAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,SAAS,sBAAsB;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa,EAAI,QAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa,EAAG,QAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,eAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa,EAAG,QAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC,EAAI,QAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa,EAAG,QAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa,EAAI,QAAO;AAC9E,SAAO;AACT;","names":["isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta"]}
@@ -81,8 +81,7 @@ var isDomainRegistrationLeaseMeta = (0, import_payload_model5.isPayloadOfSchemaT
81
81
  // src/Duration/validation/validateBoundWitness.ts
82
82
  var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
83
83
  var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
84
- if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema)))
85
- return false;
84
+ if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false;
86
85
  const validator = new import_boundwitness_validator.BoundWitnessValidator(recordBw);
87
86
  const errors = await validator.validate();
88
87
  return errors.length === 0;
@@ -91,10 +90,8 @@ var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
91
90
  // src/Duration/validation/validateBoundWitnessAndDuration.ts
92
91
  var import_payload_builder = require("@xyo-network/payload-builder");
93
92
  var validateBoundWitnessAndDuration = async (recordBw, recordPayload) => {
94
- if (!await recordIsInBoundWitness(recordBw, recordPayload))
95
- return false;
96
- if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload))
97
- return false;
93
+ if (!await recordIsInBoundWitness(recordBw, recordPayload)) return false;
94
+ if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false;
98
95
  return true;
99
96
  };
100
97
  var recordIsInBoundWitness = async (recordBw, recordPayload) => {
@@ -109,8 +106,7 @@ var recordIsTemporallyValidToBoundWitness = (recordBw, recordPayload) => {
109
106
 
110
107
  // src/Duration/validation/validateDuration.ts
111
108
  var validateDuration = (recordPayload) => {
112
- if (!isWithinDelegatedTimeframe(recordPayload))
113
- return false;
109
+ if (!isWithinDelegatedTimeframe(recordPayload)) return false;
114
110
  return true;
115
111
  };
116
112
  var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
@@ -119,12 +115,9 @@ var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
119
115
 
120
116
  // src/Duration/validation/validateBoundWitnessWithDuration.ts
121
117
  var validateBoundWitnessWithDuration = async (recordBw, recordPayload) => {
122
- if (!await validateBoundWitness(recordBw, [recordPayload.schema]))
123
- return false;
124
- if (!validateDuration(recordPayload))
125
- return false;
126
- if (!await validateBoundWitnessAndDuration(recordBw, recordPayload))
127
- return false;
118
+ if (!await validateBoundWitness(recordBw, [recordPayload.schema])) return false;
119
+ if (!validateDuration(recordPayload)) return false;
120
+ if (!await validateBoundWitnessAndDuration(recordBw, recordPayload)) return false;
128
121
  return true;
129
122
  };
130
123
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["export * from './Address'\nexport * from './Domain'\nexport * from './DomainRegistration'\nexport * from './Duration'\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,2BAAyD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,sBAAkB,4CAAqC,mBAAmB;AAChF,IAAM,8BAA0B,4CAA+C,mBAAmB;;;ACrBzG,IAAAA,wBAAgH;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,eAAW,6CAA8B,YAAY;AAK3D,IAAM,0BAAsB,wDAAyC,YAAY;AAKjF,IAAM,uBAAmB,qDAAsC,YAAY;;;AC3ClF,IAAAC,wBAAgH;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,oBAAgB,6CAAmC,iBAAiB;AAK1E,IAAM,+BAA2B,wDAA8C,iBAAiB;AAKhG,IAAM,4BAAwB,qDAA2C,iBAAiB;;;AC9BjG,IAAAC,wBAAgH;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,2BAAuB,6CAA0C,wBAAwB;AAK/F,IAAM,sCAAkC,wDAAqD,wBAAwB;AAKrH,IAAM,mCAA+B,qDAAkD,wBAAwB;;;ACrCtH,IAAAC,wBAAgH;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,gCAA4B,6CAA+C,6BAA6B;AAK9G,IAAM,uCAAmC,wDAA0D,6BAA6B;AAKhI,IAAM,oCAAgC,qDAAuD,6BAA6B;;;AC3BjI,oCAAsC;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC;AAAG,WAAO;AAE1G,QAAM,YAAY,IAAI,oDAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,6BAA+B;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa;AAAI,WAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa;AAAG,WAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,sCAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa;AAAG,WAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC;AAAI,WAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa;AAAG,WAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa;AAAI,WAAO;AAC9E,SAAO;AACT;","names":["import_payload_model","import_payload_model","import_payload_model","import_payload_model"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["export * from './Address'\nexport * from './Domain'\nexport * from './DomainRegistration'\nexport * from './Duration'\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,2BAAyD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,sBAAkB,4CAAqC,mBAAmB;AAChF,IAAM,8BAA0B,4CAA+C,mBAAmB;;;ACrBzG,IAAAA,wBAAgH;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,eAAW,6CAA8B,YAAY;AAK3D,IAAM,0BAAsB,wDAAyC,YAAY;AAKjF,IAAM,uBAAmB,qDAAsC,YAAY;;;AC3ClF,IAAAC,wBAAgH;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,oBAAgB,6CAAmC,iBAAiB;AAK1E,IAAM,+BAA2B,wDAA8C,iBAAiB;AAKhG,IAAM,4BAAwB,qDAA2C,iBAAiB;;;AC9BjG,IAAAC,wBAAgH;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,2BAAuB,6CAA0C,wBAAwB;AAK/F,IAAM,sCAAkC,wDAAqD,wBAAwB;AAKrH,IAAM,mCAA+B,qDAAkD,wBAAwB;;;ACrCtH,IAAAC,wBAAgH;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,gCAA4B,6CAA+C,6BAA6B;AAK9G,IAAM,uCAAmC,wDAA0D,6BAA6B;AAKhI,IAAM,oCAAgC,qDAAuD,6BAA6B;;;AC3BjI,oCAAsC;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC,EAAG,QAAO;AAE1G,QAAM,YAAY,IAAI,oDAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,6BAA+B;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa,EAAI,QAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa,EAAG,QAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,sCAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa,EAAG,QAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC,EAAI,QAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa,EAAG,QAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa,EAAI,QAAO;AAC9E,SAAO;AACT;","names":["import_payload_model","import_payload_model","import_payload_model","import_payload_model"]}
@@ -35,8 +35,7 @@ var isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta4(DomainRegistr
35
35
  // src/Duration/validation/validateBoundWitness.ts
36
36
  import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
37
37
  var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
38
- if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema)))
39
- return false;
38
+ if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false;
40
39
  const validator = new BoundWitnessValidator(recordBw);
41
40
  const errors = await validator.validate();
42
41
  return errors.length === 0;
@@ -45,10 +44,8 @@ var validateBoundWitness = async (recordBw, requiredSchemas = []) => {
45
44
  // src/Duration/validation/validateBoundWitnessAndDuration.ts
46
45
  import { PayloadBuilder } from "@xyo-network/payload-builder";
47
46
  var validateBoundWitnessAndDuration = async (recordBw, recordPayload) => {
48
- if (!await recordIsInBoundWitness(recordBw, recordPayload))
49
- return false;
50
- if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload))
51
- return false;
47
+ if (!await recordIsInBoundWitness(recordBw, recordPayload)) return false;
48
+ if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false;
52
49
  return true;
53
50
  };
54
51
  var recordIsInBoundWitness = async (recordBw, recordPayload) => {
@@ -63,8 +60,7 @@ var recordIsTemporallyValidToBoundWitness = (recordBw, recordPayload) => {
63
60
 
64
61
  // src/Duration/validation/validateDuration.ts
65
62
  var validateDuration = (recordPayload) => {
66
- if (!isWithinDelegatedTimeframe(recordPayload))
67
- return false;
63
+ if (!isWithinDelegatedTimeframe(recordPayload)) return false;
68
64
  return true;
69
65
  };
70
66
  var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
@@ -73,12 +69,9 @@ var isWithinDelegatedTimeframe = (recordPayload, now = Date.now()) => {
73
69
 
74
70
  // src/Duration/validation/validateBoundWitnessWithDuration.ts
75
71
  var validateBoundWitnessWithDuration = async (recordBw, recordPayload) => {
76
- if (!await validateBoundWitness(recordBw, [recordPayload.schema]))
77
- return false;
78
- if (!validateDuration(recordPayload))
79
- return false;
80
- if (!await validateBoundWitnessAndDuration(recordBw, recordPayload))
81
- return false;
72
+ if (!await validateBoundWitness(recordBw, [recordPayload.schema])) return false;
73
+ if (!validateDuration(recordPayload)) return false;
74
+ if (!await validateBoundWitnessAndDuration(recordBw, recordPayload)) return false;
82
75
  return true;
83
76
  };
84
77
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";AACA,SAAS,6BAAgD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,kBAAkB,sBAAqC,mBAAmB;AAChF,IAAM,0BAA0B,sBAA+C,mBAAmB;;;ACrBzG,SAAS,yBAAAA,wBAAuB,+BAA+B,wCAAiD;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,WAAWA,uBAA8B,YAAY;AAK3D,IAAM,sBAAsB,iCAAyC,YAAY;AAKjF,IAAM,mBAAmB,8BAAsC,YAAY;;;AC3ClF,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,gBAAgBF,uBAAmC,iBAAiB;AAK1E,IAAM,2BAA2BE,kCAA8C,iBAAiB;AAKhG,IAAM,wBAAwBD,+BAA2C,iBAAiB;;;AC9BjG,SAAS,yBAAAE,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,uBAAuBC,uBAA0C,wBAAwB;AAK/F,IAAM,kCAAkCC,kCAAqD,wBAAwB;AAKrH,IAAM,+BAA+BC,+BAAkD,wBAAwB;;;ACrCtH,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,4BAA4BC,uBAA+C,6BAA6B;AAK9G,IAAM,mCAAmCC,kCAA0D,6BAA6B;AAKhI,IAAM,gCAAgCC,+BAAuD,6BAA6B;;;AC3BjI,SAAS,6BAA6B;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC;AAAG,WAAO;AAE1G,QAAM,YAAY,IAAI,sBAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,SAAS,sBAAsB;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa;AAAI,WAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa;AAAG,WAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,eAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa;AAAG,WAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC;AAAI,WAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa;AAAG,WAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa;AAAI,WAAO;AAC9E,SAAO;AACT;","names":["isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta"]}
1
+ {"version":3,"sources":["../../src/Address/Payload.ts","../../src/Domain/Domain.ts","../../src/Domain/DomainLease.ts","../../src/DomainRegistration/DomainRegistration.ts","../../src/DomainRegistration/DomainRegistrationLease.ts","../../src/Duration/validation/validateBoundWitness.ts","../../src/Duration/validation/validateBoundWitnessAndDuration.ts","../../src/Duration/validation/validateDuration.ts","../../src/Duration/validation/validateBoundWitnessWithDuration.ts"],"sourcesContent":["import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, Payload, WithMeta } from '@xyo-network/payload-model'\n\nimport { DomainFields } from '../Domain'\n\nexport type AddressRecordSchema = 'network.xyo.ns.record.address'\nexport const AddressRecordSchema: AddressRecordSchema = 'network.xyo.ns.record.address'\n\nexport interface AddressRecordFields extends DomainFields {\n /**\n * The address the record points to\n */\n address: Address[]\n}\n\n/**\n * An address record points a domain to an address\n */\nexport type AddressRecord = Payload<AddressRecordFields, AddressRecordSchema>\n\nexport const isAddressRecord = isPayloadOfSchemaType<AddressRecord>(AddressRecordSchema)\nexport const isAddressRecordWithMeta = isPayloadOfSchemaType<WithMeta<AddressRecord>>(AddressRecordSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nexport type DomainSchema = 'network.xyo.ns.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.ns.domain'\n\n/**\n * The supported TLDs for XNS\n */\nexport type TopLevelDomain = 'xyo'\n\n/**\n * The fields for a domain record\n */\nexport interface DomainFields {\n /**\n * The XNS domain of the record\n */\n domain: string\n\n /**\n * The Top-Level Domain of the domain\n */\n tld: TopLevelDomain\n}\n\n/**\n * A domain record is a record of a domain\n */\nexport type Domain = Payload<DomainFields, DomainSchema>\n\n/**\n * Identity function for Domain payload\n */\nexport const isDomain = isPayloadOfSchemaType<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with sources\n */\nexport const isDomainWithSources = isPayloadOfSchemaTypeWithSources<Domain>(DomainSchema)\n\n/**\n * Identity function for Domain payload with meta\n */\nexport const isDomainWithMeta = isPayloadOfSchemaTypeWithMeta<Domain>(DomainSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainFields } from './Domain'\n\nexport type DomainLeaseSchema = 'network.xyo.ns.domain.lease'\nexport const DomainLeaseSchema: DomainLeaseSchema = 'network.xyo.ns.domain.lease'\n\n/**\n * A domain is leased for a duration\n */\nexport interface DomainLeaseFields extends DomainFields, DurationFields {}\n\n/**\n * A domain lease is a record of a domain and the duration it is leased for\n */\nexport type DomainLease = Payload<DomainLeaseFields, DomainLeaseSchema>\n\n/**\n * Identity function for DomainLease payload\n */\nexport const isDomainLease = isPayloadOfSchemaType<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with sources\n */\nexport const isDomainLeaseWithSources = isPayloadOfSchemaTypeWithSources<DomainLease>(DomainLeaseSchema)\n\n/**\n * Identity function for DomainLease payload with meta\n */\nexport const isDomainLeaseWithMeta = isPayloadOfSchemaTypeWithMeta<DomainLease>(DomainLeaseSchema)\n","import { Address } from '@xylabs/hex'\nimport { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DomainFields, DomainSchema } from '../Domain'\n\nexport const DomainRegistrationSchema = `${DomainSchema}.registration` as const\nexport type DomainRegistrationSchema = typeof DomainRegistrationSchema\n\nexport interface DomainRegistrationFields extends DomainFields {\n /**\n * The registrant of the domain\n */\n registrant: Address[]\n /**\n * The registrar of the domain\n */\n registrar: Address[]\n}\n\n/**\n * Delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistration = Payload<DomainRegistrationFields, DomainRegistrationSchema>\n\n/**\n * Identity function for DomainRegistration payload\n */\nexport const isDomainRegistration = isPayloadOfSchemaType<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with sources\n */\nexport const isDomainRegistrationWithSources = isPayloadOfSchemaTypeWithSources<DomainRegistration>(DomainRegistrationSchema)\n\n/**\n * Identity function for DomainRegistration payload with meta\n */\nexport const isDomainRegistrationWithMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistration>(DomainRegistrationSchema)\n","import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, isPayloadOfSchemaTypeWithSources, Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { DomainRegistrationFields, DomainRegistrationSchema } from './DomainRegistration'\n\nexport const DomainRegistrationLeaseSchema = `${DomainRegistrationSchema}.lease` as const\nexport type DomainRegistrationLeaseSchema = typeof DomainRegistrationLeaseSchema\n\nexport interface DomainRegistrationLeaseFields extends DomainRegistrationFields, DurationFields {}\n\n/**\n * Temporal delegation of a domain to a registrar by a registrant\n */\nexport type DomainRegistrationLease = Payload<DomainRegistrationLeaseFields, DomainRegistrationLeaseSchema>\n\n/**\n * Identity function for DomainRegistrationLease payload\n */\nexport const isDomainRegistrationLease = isPayloadOfSchemaType<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with sources\n */\nexport const isDomainRegistrationLeaseSources = isPayloadOfSchemaTypeWithSources<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n\n/**\n * Identity function for DomainRegistrationLease payload with meta\n */\nexport const isDomainRegistrationLeaseMeta = isPayloadOfSchemaTypeWithMeta<DomainRegistrationLease>(DomainRegistrationLeaseSchema)\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\n\n// BW Validations\nexport const validateBoundWitness = async (recordBw: BoundWitness, requiredSchemas: string[] = []): Promise<boolean> => {\n // If the BW does not include all of the required schemas\n if (!requiredSchemas.every((requiredSchema) => recordBw.payload_schemas.includes(requiredSchema))) return false\n // If the BW is valid (does not include any errors)\n const validator = new BoundWitnessValidator(recordBw)\n const errors = await validator.validate()\n return errors.length === 0\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// BW & Record Validations\nexport const validateBoundWitnessAndDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n if (!(await recordIsInBoundWitness(recordBw, recordPayload))) return false\n if (!recordIsTemporallyValidToBoundWitness(recordBw, recordPayload)) return false\n return true\n}\n\nconst recordIsInBoundWitness = async (recordBw: BoundWitness, recordPayload: Payload): Promise<boolean> => {\n const hash = await PayloadBuilder.dataHash(recordPayload)\n return recordBw.payload_hashes.includes(hash)\n}\n\nconst recordIsTemporallyValidToBoundWitness = (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): boolean => {\n const { timestamp } = recordBw\n const { exp } = recordPayload\n return exp > timestamp\n}\n","// import { isAddress } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\n\n// Record Validations\nexport const validateDuration = (recordPayload: Payload<DurationFields>): boolean => {\n // if (!isValidAddress(recordPayload)) return false\n if (!isWithinDelegatedTimeframe(recordPayload)) return false\n return true\n}\n\n// const isValidAddress = (recordPayload: Payload<DomainLeaseFields>): boolean => {\n// return isAddress(recordPayload.nameserver, { prefix: false })\n// }\n\nconst isWithinDelegatedTimeframe = (recordPayload: Payload<DurationFields>, now = Date.now()): boolean => {\n // nbf < now < exp\n return recordPayload.nbf < now && now < recordPayload.exp\n}\n","import { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { DurationFields } from '../Duration'\nimport { validateBoundWitness } from './validateBoundWitness'\nimport { validateBoundWitnessAndDuration } from './validateBoundWitnessAndDuration'\nimport { validateDuration } from './validateDuration'\n\nexport const validateBoundWitnessWithDuration = async (recordBw: BoundWitness, recordPayload: Payload<DurationFields>): Promise<boolean> => {\n // Validate the BW\n if (!(await validateBoundWitness(recordBw, [recordPayload.schema]))) return false\n // Validate the record\n if (!validateDuration(recordPayload)) return false\n // Validate the record relative to the BW\n if (!(await validateBoundWitnessAndDuration(recordBw, recordPayload))) return false\n return true\n}\n"],"mappings":";AACA,SAAS,6BAAgD;AAKlD,IAAM,sBAA2C;AAcjD,IAAM,kBAAkB,sBAAqC,mBAAmB;AAChF,IAAM,0BAA0B,sBAA+C,mBAAmB;;;ACrBzG,SAAS,yBAAAA,wBAAuB,+BAA+B,wCAAiD;AAGzG,IAAM,eAA6B;AA8BnC,IAAM,WAAWA,uBAA8B,YAAY;AAK3D,IAAM,sBAAsB,iCAAyC,YAAY;AAKjF,IAAM,mBAAmB,8BAAsC,YAAY;;;AC3ClF,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAMzG,IAAM,oBAAuC;AAe7C,IAAM,gBAAgBF,uBAAmC,iBAAiB;AAK1E,IAAM,2BAA2BE,kCAA8C,iBAAiB;AAKhG,IAAM,wBAAwBD,+BAA2C,iBAAiB;;;AC9BjG,SAAS,yBAAAE,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAIzG,IAAM,2BAA2B,GAAG,YAAY;AAsBhD,IAAM,uBAAuBC,uBAA0C,wBAAwB;AAK/F,IAAM,kCAAkCC,kCAAqD,wBAAwB;AAKrH,IAAM,+BAA+BC,+BAAkD,wBAAwB;;;ACrCtH,SAAS,yBAAAC,wBAAuB,iCAAAC,gCAA+B,oCAAAC,yCAAiD;AAKzG,IAAM,gCAAgC,GAAG,wBAAwB;AAajE,IAAM,4BAA4BC,uBAA+C,6BAA6B;AAK9G,IAAM,mCAAmCC,kCAA0D,6BAA6B;AAKhI,IAAM,gCAAgCC,+BAAuD,6BAA6B;;;AC3BjI,SAAS,6BAA6B;AAG/B,IAAM,uBAAuB,OAAO,UAAwB,kBAA4B,CAAC,MAAwB;AAEtH,MAAI,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,SAAS,gBAAgB,SAAS,cAAc,CAAC,EAAG,QAAO;AAE1G,QAAM,YAAY,IAAI,sBAAsB,QAAQ;AACpD,QAAM,SAAS,MAAM,UAAU,SAAS;AACxC,SAAO,OAAO,WAAW;AAC3B;;;ACVA,SAAS,sBAAsB;AAMxB,IAAM,kCAAkC,OAAO,UAAwB,kBAA6D;AACzI,MAAI,CAAE,MAAM,uBAAuB,UAAU,aAAa,EAAI,QAAO;AACrE,MAAI,CAAC,sCAAsC,UAAU,aAAa,EAAG,QAAO;AAC5E,SAAO;AACT;AAEA,IAAM,yBAAyB,OAAO,UAAwB,kBAA6C;AACzG,QAAM,OAAO,MAAM,eAAe,SAAS,aAAa;AACxD,SAAO,SAAS,eAAe,SAAS,IAAI;AAC9C;AAEA,IAAM,wCAAwC,CAAC,UAAwB,kBAAoD;AACzH,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,MAAM;AACf;;;AChBO,IAAM,mBAAmB,CAAC,kBAAoD;AAEnF,MAAI,CAAC,2BAA2B,aAAa,EAAG,QAAO;AACvD,SAAO;AACT;AAMA,IAAM,6BAA6B,CAAC,eAAwC,MAAM,KAAK,IAAI,MAAe;AAExG,SAAO,cAAc,MAAM,OAAO,MAAM,cAAc;AACxD;;;ACXO,IAAM,mCAAmC,OAAO,UAAwB,kBAA6D;AAE1I,MAAI,CAAE,MAAM,qBAAqB,UAAU,CAAC,cAAc,MAAM,CAAC,EAAI,QAAO;AAE5E,MAAI,CAAC,iBAAiB,aAAa,EAAG,QAAO;AAE7C,MAAI,CAAE,MAAM,gCAAgC,UAAU,aAAa,EAAI,QAAO;AAC9E,SAAO;AACT;","names":["isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithMeta","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","isPayloadOfSchemaTypeWithMeta"]}
package/package.json CHANGED
@@ -10,17 +10,17 @@
10
10
  "url": "https://github.com/XYOracleNetwork/plugins/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/hex": "^3.3.3",
14
- "@xyo-network/boundwitness-model": "^2.103.1",
15
- "@xyo-network/boundwitness-validator": "^2.103.1",
16
- "@xyo-network/payload-builder": "^2.103.1",
17
- "@xyo-network/payload-model": "^2.103.1"
13
+ "@xylabs/hex": "^3.5.1",
14
+ "@xyo-network/boundwitness-model": "^2.105.0",
15
+ "@xyo-network/boundwitness-validator": "^2.105.0",
16
+ "@xyo-network/payload-builder": "^2.105.0",
17
+ "@xyo-network/payload-model": "^2.105.0"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@xylabs/ts-scripts-yarn3": "^3.10.4",
21
21
  "@xylabs/tsconfig": "^3.10.4",
22
- "@xyo-network/account": "^2.103.1",
23
- "@xyo-network/boundwitness-builder": "^2.103.1",
22
+ "@xyo-network/account": "^2.105.0",
23
+ "@xyo-network/boundwitness-builder": "^2.105.0",
24
24
  "typescript": "^5.4.5"
25
25
  },
26
26
  "description": "Typescript/Javascript Plugins for XYO Platform",
@@ -62,6 +62,6 @@
62
62
  "url": "https://github.com/XYOracleNetwork/plugins.git"
63
63
  },
64
64
  "sideEffects": false,
65
- "version": "2.95.5",
65
+ "version": "2.96.0",
66
66
  "type": "module"
67
67
  }