{"version":3,"file":"vat-syscall.cjs","sourceRoot":"","sources":["../../../src/rpc/vat-syscall/vat-syscall.ts"],"names":[],"mappings":";;;AACA,uDAO+B;AAG/B,8CAIwB;AAExB,MAAM,UAAU,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,MAAM,CAAC,EAAE,IAAA,oBAAM,GAAE,EAAE,wBAAa,CAAC,CAAC,CAAC;AACrE,MAAM,eAAe,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,WAAW,CAAC,EAAE,IAAA,oBAAM,GAAE,CAAC,CAAC,CAAC;AAChE,MAAM,aAAa,GAAG,IAAA,mBAAK,EAAC;IAC1B,IAAA,qBAAO,EAAC,SAAS,CAAC;IAClB,IAAA,mBAAK,EAAC,iCAAsB,CAAC;CAC9B,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,MAAM,CAAC,EAAE,IAAA,qBAAO,GAAE,EAAE,wBAAa,CAAC,CAAC,CAAC;AACtE,MAAM,iBAAiB,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,aAAa,CAAC,EAAE,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,MAAM,mBAAmB,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,eAAe,CAAC,EAAE,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC,CAAC,CAAC,CAAC;AAC/E,MAAM,mBAAmB,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,eAAe,CAAC,EAAE,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC,CAAC,CAAC,CAAC;AAC/E,MAAM,oBAAoB,GAAG,IAAA,mBAAK,EAAC;IACjC,IAAA,qBAAO,EAAC,gBAAgB,CAAC;IACzB,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC;CAChB,CAAC,CAAC;AACH,2DAA2D;AAC3D,MAAM,aAAa,GAAG,IAAA,mBAAK,EAAC;IAC1B,IAAA,qBAAO,EAAC,SAAS,CAAC;IAClB,IAAA,oBAAM,GAAE;IACR,IAAA,oBAAM,GAAE;IACR,wBAAa;CACd,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,aAAa,CAAC,EAAE,IAAA,oBAAM,GAAE,CAAC,CAAC,CAAC;AACpE,MAAM,wBAAwB,GAAG,IAAA,mBAAK,EAAC;IACrC,IAAA,qBAAO,EAAC,oBAAoB,CAAC;IAC7B,IAAA,oBAAM,GAAE;CACT,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,aAAa,CAAC,EAAE,IAAA,oBAAM,GAAE,EAAE,IAAA,oBAAM,GAAE,CAAC,CAAC,CAAC;AAC9E,MAAM,oBAAoB,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,gBAAgB,CAAC,EAAE,IAAA,oBAAM,GAAE,CAAC,CAAC,CAAC;AAE1E,MAAM,sBAAsB,GAAG,IAAA,mBAAK,EAAC;IACnC,UAAU;IACV,eAAe;IACf,aAAa;IACb,UAAU;IACV,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,2DAA2D;IAC3D,aAAa;IACb,iBAAiB;IACjB,wBAAwB;IACxB,iBAAiB;IACjB,oBAAoB;CACrB,CAAC,CAAC;AAIU,QAAA,cAAc,GAAkD;IAC3E,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,sBAAsB;CACtB,CAAC;AAQE,QAAA,iBAAiB,GAK1B;IACF,GAAG,sBAAc;IACjB,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;IAC9B,cAAc,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE;QAC5C,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;CACO,CAAC","sourcesContent":["import type { Handler, MethodSpec } from '@metamask/kernel-rpc-methods';\nimport {\n  tuple,\n  literal,\n  array,\n  string,\n  union,\n  boolean,\n} from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\n\nimport {\n  CapDataStruct,\n  MessageStruct,\n  VatOneResolutionStruct,\n} from '../../types.ts';\n\nconst SendStruct = tuple([literal('send'), string(), MessageStruct]);\nconst SubscribeStruct = tuple([literal('subscribe'), string()]);\nconst ResolveStruct = tuple([\n  literal('resolve'),\n  array(VatOneResolutionStruct),\n]);\nconst ExitStruct = tuple([literal('exit'), boolean(), CapDataStruct]);\nconst DropImportsStruct = tuple([literal('dropImports'), array(string())]);\nconst RetireImportsStruct = tuple([literal('retireImports'), array(string())]);\nconst RetireExportsStruct = tuple([literal('retireExports'), array(string())]);\nconst AbandonExportsStruct = tuple([\n  literal('abandonExports'),\n  array(string()),\n]);\n// These are bogus, but are needed to keep TypeScript happy\nconst CallNowStruct = tuple([\n  literal('callNow'),\n  string(),\n  string(),\n  CapDataStruct,\n]);\nconst VatstoreGetStruct = tuple([literal('vatstoreGet'), string()]);\nconst VatstoreGetNextKeyStruct = tuple([\n  literal('vatstoreGetNextKey'),\n  string(),\n]);\nconst VatstoreSetStruct = tuple([literal('vatstoreSet'), string(), string()]);\nconst VatstoreDeleteStruct = tuple([literal('vatstoreDelete'), string()]);\n\nconst VatSyscallParamsStruct = union([\n  SendStruct,\n  SubscribeStruct,\n  ResolveStruct,\n  ExitStruct,\n  DropImportsStruct,\n  RetireImportsStruct,\n  RetireExportsStruct,\n  AbandonExportsStruct,\n  // These are bogus, but are needed to keep TypeScript happy\n  CallNowStruct,\n  VatstoreGetStruct,\n  VatstoreGetNextKeyStruct,\n  VatstoreSetStruct,\n  VatstoreDeleteStruct,\n]);\n\ntype VatSyscallParams = Infer<typeof VatSyscallParamsStruct>;\n\nexport const vatSyscallSpec: MethodSpec<'syscall', VatSyscallParams, void> = {\n  method: 'syscall',\n  params: VatSyscallParamsStruct,\n} as const;\n\nexport type HandleSyscall = (params: VatSyscallParams) => void;\n\ntype SyscallHooks = {\n  handleSyscall: HandleSyscall;\n};\n\nexport const vatSyscallHandler: Handler<\n  'syscall',\n  VatSyscallParams,\n  void,\n  SyscallHooks\n> = {\n  ...vatSyscallSpec,\n  hooks: { handleSyscall: true },\n  implementation: ({ handleSyscall }, params) => {\n    handleSyscall(params);\n  },\n} as const;\n"]}