UNPKG

@metamask/ocap-kernel

Version:
1 lines 4.24 kB
{"version":3,"file":"deliver.cjs","sourceRoot":"","sources":["../../../src/rpc/vat/deliver.ts"],"names":[],"mappings":";;;AACA,uDAO+B;AAE/B,2CAAmD;AAEnD,4CAAsD;AACtD,8CAIwB;AAGxB,MAAM,qBAAqB,GAAG,IAAA,mBAAK,EAAC;IAClC,IAAA,qBAAO,EAAC,SAAS,CAAC;IAClB,IAAA,oBAAM,GAAE;IACR,wBAAa;CACd,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,IAAA,mBAAK,EAAC;IACjC,IAAA,qBAAO,EAAC,QAAQ,CAAC;IACjB,IAAA,mBAAK,EAAC,iCAAsB,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,IAAA,mBAAK,EAAC;IACtC,IAAA,qBAAO,EAAC,aAAa,CAAC;IACtB,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,IAAA,mBAAK,EAAC;IACxC,IAAA,qBAAO,EAAC,eAAe,CAAC;IACxB,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,IAAA,mBAAK,EAAC;IACxC,IAAA,qBAAO,EAAC,eAAe,CAAC;IACxB,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG,IAAA,mBAAK,EAAC;IAC3C,IAAA,qBAAO,EAAC,kBAAkB,CAAC;IAC3B,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,wBAAgB,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,UAAU,CAAC,EAAE,wBAAa,CAAC,CAAC,CAAC;AAE3E,MAAM,qBAAqB,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,SAAS,CAAC,EAAE,wBAAa,CAAC,CAAC,CAAC;AAEzE,MAAM,8BAA8B,GAAG,IAAA,mBAAK,EAAC,CAAC,IAAA,qBAAO,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAE5E,MAAM,uBAAuB,GAAG,IAAA,mBAAK,EAAC;IACpC,qBAAqB;IACrB,oBAAoB;IACpB,yBAAyB;IACzB,2BAA2B;IAC3B,2BAA2B;IAC3B,8BAA8B;IAC9B,sBAAsB;IACtB,qBAAqB;IACrB,8BAA8B;CAC/B,CAAC,CAAC;AAUU,QAAA,WAAW,GAAgB;IACtC,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,uBAAuB;IAC/B,MAAM,EAAE,mCAAuB;CACvB,CAAC;AAiBE,QAAA,cAAc,GAAmB;IAC5C,GAAG,mBAAW;IACd,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAC/B,cAAc,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE;QACnD,OAAO,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACO,CAAC","sourcesContent":["import type { Handler, MethodSpec } from '@metamask/kernel-rpc-methods';\nimport {\n tuple,\n literal,\n array,\n string,\n record,\n union,\n} from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\nimport { UnsafeJsonStruct } from '@metamask/utils';\n\nimport { VatDeliveryResultStruct } from './shared.ts';\nimport {\n CapDataStruct,\n MessageStruct,\n VatOneResolutionStruct,\n} from '../../types.ts';\nimport type { VatDeliveryResult } from '../../types.ts';\n\nconst MessageDeliveryStruct = tuple([\n literal('message'),\n string(),\n MessageStruct,\n]);\n\nconst NotifyDeliveryStruct = tuple([\n literal('notify'),\n array(VatOneResolutionStruct),\n]);\n\nconst DropExportsDeliveryStruct = tuple([\n literal('dropExports'),\n array(string()),\n]);\n\nconst RetireExportsDeliveryStruct = tuple([\n literal('retireExports'),\n array(string()),\n]);\n\nconst RetireImportsDeliveryStruct = tuple([\n literal('retireImports'),\n array(string()),\n]);\n\nconst ChangeVatOptionsDeliveryStruct = tuple([\n literal('changeVatOptions'),\n record(string(), UnsafeJsonStruct),\n]);\n\nconst StartVatDeliveryStruct = tuple([literal('startVat'), CapDataStruct]);\n\nconst StopVatDeliveryStruct = tuple([literal('stopVat'), CapDataStruct]);\n\nconst BringOutYourDeadDeliveryStruct = tuple([literal('bringOutYourDead')]);\n\nconst VatDeliveryParamsStruct = union([\n MessageDeliveryStruct,\n NotifyDeliveryStruct,\n DropExportsDeliveryStruct,\n RetireExportsDeliveryStruct,\n RetireImportsDeliveryStruct,\n ChangeVatOptionsDeliveryStruct,\n StartVatDeliveryStruct,\n StopVatDeliveryStruct,\n BringOutYourDeadDeliveryStruct,\n]);\n\ntype VatDeliveryParams = Infer<typeof VatDeliveryParamsStruct>;\n\nexport type DeliverSpec = MethodSpec<\n 'deliver',\n VatDeliveryParams,\n Promise<VatDeliveryResult>\n>;\n\nexport const deliverSpec: DeliverSpec = {\n method: 'deliver',\n params: VatDeliveryParamsStruct,\n result: VatDeliveryResultStruct,\n} as const;\n\nexport type HandleDelivery = (\n params: VatDeliveryParams,\n) => Promise<VatDeliveryResult>;\n\ntype DeliverHooks = {\n handleDelivery: HandleDelivery;\n};\n\nexport type DeliverHandler = Handler<\n 'deliver',\n VatDeliveryParams,\n Promise<VatDeliveryResult>,\n DeliverHooks\n>;\n\nexport const deliverHandler: DeliverHandler = {\n ...deliverSpec,\n hooks: { handleDelivery: true },\n implementation: async ({ handleDelivery }, params) => {\n return await handleDelivery(params);\n },\n} as const;\n"]}