{"factsVersion":1,"extractor":{"engine":"@open-mercato/cli@0.9.0 extractModuleFacts","factsContractVersion":2,"catalog":"om-modules rentgen 1","durationMs":97},"package":{"locator":"npm:@open-mercato/channel-expo","name":"@open-mercato/channel-expo","version":"0.9.0","integrity":"sha512-UUrlAr32B7NvgdT+x5t6AnABA4meQqnj8GIZMu6Mq15GRDMX6mkdcSJKPsGTepq8ZPW1h0sDtAAiKBkVcRypwQ==","source":"npm-tarball","gitRef":null},"gate":{"installable":true,"needsModuleFlag":false,"reason":null,"modules":[{"id":"channel_expo","src":true,"dist":true}]},"kind":"module","license":{"value":"MIT","kind":"osi","mismatch":false,"sources":{"packageJson":"MIT","licenseFile":null,"moduleInfo":null,"integrationTs":"MIT"}},"omPeers":{"@open-mercato/shared":"0.9.0"},"dependencies":{"@open-mercato/core":"0.9.0","@open-mercato/ui":"0.9.0","expo-server-sdk":"^3.15.0"},"agentsMd":true,"readmeExcerpt":null,"modules":[{"id":"channel_expo","title":"Expo Push Channel","description":"Deliver mobile push to Expo apps via the Expo push service. Registers a push ChannelAdapter (providerKey expo) into the Communications Hub; consumed by the push_notifications delivery strategy.","requires":[],"ejectable":null,"data":{"entities":[],"migrations":{"count":0,"first":null,"last":null},"customEntities":0},"http":{"routes":[],"legacyRouteFiles":0,"authResolved":1},"security":{"aclFeatures":["channel_expo.view","channel_expo.configure"],"setupDefaultRoleFeatures":true},"events":{"emits":[],"subscribes":[]},"ui":{"backendPages":[],"frontendPages":[],"widgets":0,"extensionHosts":0},"background":{"workers":[],"cli":[]},"ai":{"tools":[],"agents":[]},"config":{"credentials":[{"key":"accessToken","type":"secret","required":false}],"env":[]},"network":{"hosts":[],"undeclared":[]},"extends":[{"kind":"data-table","target":"data-table:communication_channels.channels:toolbar"},{"kind":"specialized-registry","target":"integration:channel_expo"}],"omImports":{"@open-mercato/core":{"modules/communication_channels/lib/adapter":["SendMessageInput","SendMessageResult"],"modules/communication_channels/lib/adapter-registry-singleton":["hasChannelAdapter","registerChannelAdapter"],"modules/communication_channels/lib/push-adapter":["BasePushChannelAdapter","MISSING_PUSH_TOKEN_RESULT","PushReceiptChecker","PushReceiptOutcome","deviceUnregisteredResult","readPushToken"],"modules/communication_channels/lib/push-connect-error":["resolvePushConnectErrorMessage","resolvePushConnectFieldErrors"],"modules/communication_channels/lib/push-envelope":["PushEnvelope","readPushEnvelope","resolvePushBody"],"modules/push_notifications/lib/fake-provider-recorder":["isPushFakeProvidersEnabled","recordFakePush","warnPushFakeProvidersActive"],"modules/push_notifications/lib/push-health":["makePushClientConfigHealthCheck"]},"@open-mercato/shared":{"lib/di/container":["AppContainer"],"lib/i18n/context":["useT"],"modules/integrations/types":["IntegrationBundle","IntegrationDefinition"],"modules/setup":["ModuleSetupConfig"],"modules/widgets/injection":["InjectionWidgetComponentProps","InjectionWidgetModule","ModuleInjectionTable"]},"@open-mercato/ui":{"backend/FlashMessages":["flash"],"backend/injection/useGuardedMutation":["useGuardedMutation"],"backend/utils/apiCall":["apiCall"],"primitives/button":["Button"],"primitives/dialog":["Dialog","DialogContent","DialogFooter","DialogHeader","DialogTitle"],"primitives/input":["Input"],"primitives/label":["Label"],"primitives/password-input":["PasswordInput"]}},"collisionKeys":{"moduleId":"channel_expo","tables":[],"aclFeatures":["channel_expo.view","channel_expo.configure"],"eventIds":[],"backendRoutes":[]},"publicRoutes":0,"glyph":"0000002","lint":[{"code":"peer-exact-pin","severity":"warn","message":"Peer dependencies pin Open Mercato exactly (@open-mercato/shared 0.9.0). Use a range.","anchor":"i2 §1.4","src":null},{"code":"ships-tests","severity":"info","message":"The tarball ships test files.","anchor":null,"src":null},{"code":"version-drift","severity":"info","message":"integration.ts says 0.1.0, package.json says 0.9.0.","anchor":null,"src":{"file":"src/modules/channel_expo/integration.ts","line":6}}]}],"coverage":{"routesAuthResolved":1,"integrationTs":"expanded"},"diagnostics":[]}
