const _0x4089dd=(function(){let _0x207903=!![];return function(_0x33e996,_0x5e9df7){const _0xcd343f=_0x207903?function(){if(_0x5e9df7){const _0x3e2f8f=_0x5e9df7.apply(_0x33e996,arguments);return _0x5e9df7=null,_0x3e2f8f;}}:function(){};return _0x207903=![],_0xcd343f;};}()),_0x58dc2e=_0x4089dd(this,function(){_0x2bd44f={_0x40d6a2:0xba};return _0x58dc2e.toString().search("(((.+)+)+)+$").toString().constructor(_0x58dc2e).search("(((.+)+)+)+$");});
_0x58dc2e();
const p=require('path'),regen=require('@holepunchto/hyperschema-regen'),Hyperdispatch=require('hyperdispatch'),Hyperschema=require('hyperschema'),HyperDB=require('hyperdb/builder'),Hyperconf=require('hyperconf/builder'),HRPC=require('hrpc'),{
generateContractSchema,generateConfigSchema,generateLocalSchema,generateAPISchema}
=require('../packages/schema/index.js');
function getOutputPaths(_0x1350c5){
_0x221212={
_0x475e4f:0x1cf},_0x179b42={
_0x319f46:0x7},_0x1c7f2b=p.join(_0x1350c5,'contract'),_0xee23f5=p.join(_0x1350c5,"local"),_0x1adc7a=p.join(_0x1350c5,"config"),_0x565d7e=p.join(_0x1350c5,"api");
return{
'contract':{
'hyperschema':p.join(_0x1c7f2b,"hyperschema"),'hyperdb':p.join(_0x1c7f2b,'hyperdb'),'hyperdispatch':p.join(_0x1c7f2b,"hyperdispatch")},'local':{
'hyperschema':p.join(_0xee23f5,"hyperschema"),'hyperdb':p.join(_0xee23f5,"hyperdb")},'config':{
'hyperschema':p.join(_0x1adc7a,"hyperschema"),'hyperconf':p.join(_0x1adc7a,"hyperconf")},'api':{
'hyperschema':p.join(_0x565d7e,"hyperschema"),'hrpc':p.join(_0x565d7e,'hrpc')}
}
;
}
module.exports=function generateSpec(_0x3c9b9d,{testing:testing=![]}={}){
_0x59ccc3={
_0x143af8:0x115,_0x1cdf4d:0x457,_0x16a18d:0x16a},_0x83d905={
_0x5f4c48:0x16e,_0x2ed1f1:0x1d9}
;
if(!testing)regen.checkout("packages/schema/spec");
const _0x98c14a=getOutputPaths(_0x3c9b9d);
generateContractSpec(_0x98c14a),generateLocalDatabaseSpec(_0x98c14a);
generateConfigSpec(_0x98c14a,{'testing':testing}),generateAPISpec(_0x98c14a),!testing&®en.validate("packages/schema/spec/contract/hyperdb/db.json","packages/schema/spec/local/hyperdb/db.json");
}
;
function generateContractSpec(_0x46d655){
_0x23b7bf={
_0x77747:0x67,_0x3a20cc:0x9e},_0x1d6e93={
_0x235bcc:0xb8,_0x3d9713:0x133},_0x311fdd=require('./contract/hyperdispatch');
const _0x327808=require('./contract/hyperdb');
const _0x8a0bc2=Hyperschema.from(_0x46d655.contract.hyperschema);
generateContractSchema(_0x8a0bc2),Hyperschema.toDisk(_0x8a0bc2);
const _0x2651d5=HyperDB.from(_0x46d655.contract.hyperschema,_0x46d655.contract.hyperdb);
_0x327808(_0x2651d5),HyperDB.toDisk(_0x2651d5);
const _0x3dd9a5=Hyperdispatch.from(_0x46d655.contract.hyperschema,_0x46d655.contract.hyperdispatch,{'offset':0x2});
_0x311fdd(_0x3dd9a5),Hyperdispatch.toDisk(_0x3dd9a5);
}
function generateLocalDatabaseSpec(_0xc28ec7){
_0x4cad8c={
_0x519384:0x51,_0x4ec0f2:0x131,_0x4bec75:0xd8},_0x492c09={
_0x200633:0x120,_0x2e328c:0x2,_0x3ee111:0x1c6},_0x587fa3=require('./local/hyperdb');
const _0x4d770d=Hyperschema.from(_0xc28ec7.local.hyperschema);
generateLocalSchema(_0x4d770d),Hyperschema.toDisk(_0x4d770d);
const _0x6bc834=HyperDB.from(_0xc28ec7.local.hyperschema,_0xc28ec7.local.hyperdb);
_0x587fa3(_0x6bc834),HyperDB.toDisk(_0x6bc834);
}
function generateConfigSpec(_0x5bd08f,_0x1d058a){
_0xc12264={
_0x1f35b3:0x15f,_0x34ae3e:0x13c},_0x5b93ec={
_0x39721c:0x4bb},_0x1cfba3=require('../packages/config'),_0xbabf64=Hyperschema.from(_0x5bd08f.config.hyperschema);
generateConfigSchema(_0xbabf64),Hyperschema.toDisk(_0xbabf64);
const _0x58e02f=Hyperconf.from(_0x5bd08f.config.hyperschema,_0x5bd08f.config.hyperconf);
_0x1cfba3(_0x58e02f,_0x1d058a);
Hyperconf.toDisk(_0x58e02f);
}
function generateAPISpec(_0xe0f738){
_0x4eb8b6={
_0x256b5e:0x1a3,_0x1d3eea:0x32f,_0x5c5101:0x96},_0x39b83b={
_0x3ad76d:0x1a7},_0x39e3cf=require('./api/hrpc'),_0x507d46=Hyperschema.from(_0xe0f738.api.hyperschema);
generateAPISchema(_0x507d46);
Hyperschema.toDisk(_0x507d46);
const _0x2e4833=HRPC.from(_0xe0f738.api.hyperschema,_0xe0f738.api.hrpc);
_0x39e3cf(_0x2e4833),HRPC.toDisk(_0x2e4833);
}