@learncard/network-brain-service 3.19.1 → 4.0.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.
Files changed (312) hide show
  1. package/.env.example +44 -111
  2. package/AGENTS.md +52 -0
  3. package/CHANGELOG.md +109 -0
  4. package/README.md +9 -2
  5. package/bootstrapLambda.test.ts +72 -0
  6. package/config/config.dev.json +29 -0
  7. package/config/config.example.json +29 -0
  8. package/config/config.json +1 -0
  9. package/config/config.production.json +29 -0
  10. package/config/config.scouts.dev.json +24 -0
  11. package/config/config.scouts.production.json +24 -0
  12. package/contractEventsLambda.ts +18 -0
  13. package/contractEventsLambdaApp.ts +19 -0
  14. package/didWebLambda.ts +13 -18
  15. package/didWebLambdaApp.ts +22 -0
  16. package/dist/accesslayer/app-manifest-version/create.d.ts +10 -0
  17. package/dist/accesslayer/app-manifest-version/create.d.ts.map +1 -0
  18. package/dist/accesslayer/app-manifest-version/read.d.ts +11 -0
  19. package/dist/accesslayer/app-manifest-version/read.d.ts.map +1 -0
  20. package/dist/accesslayer/app-manifest-version/update.d.ts +7 -0
  21. package/dist/accesslayer/app-manifest-version/update.d.ts.map +1 -0
  22. package/dist/accesslayer/app-store-listing/read.d.ts +2 -1
  23. package/dist/accesslayer/app-store-listing/read.d.ts.map +1 -1
  24. package/dist/accesslayer/app-store-listing/relationships/create.d.ts +1 -0
  25. package/dist/accesslayer/app-store-listing/relationships/create.d.ts.map +1 -1
  26. package/dist/accesslayer/app-store-listing/relationships/read.d.ts +2 -0
  27. package/dist/accesslayer/app-store-listing/relationships/read.d.ts.map +1 -1
  28. package/dist/accesslayer/app-store-listing/update.d.ts +1 -0
  29. package/dist/accesslayer/app-store-listing/update.d.ts.map +1 -1
  30. package/dist/accesslayer/boost/relationships/create.d.ts +2 -1
  31. package/dist/accesslayer/boost/relationships/create.d.ts.map +1 -1
  32. package/dist/accesslayer/consentflowcontract/create.d.ts +9 -1
  33. package/dist/accesslayer/consentflowcontract/create.d.ts.map +1 -1
  34. package/dist/accesslayer/consentflowcontract/read.d.ts +34 -3
  35. package/dist/accesslayer/consentflowcontract/read.d.ts.map +1 -1
  36. package/dist/accesslayer/consentflowcontract/relationships/create.d.ts +4 -1
  37. package/dist/accesslayer/consentflowcontract/relationships/create.d.ts.map +1 -1
  38. package/dist/accesslayer/consentflowcontract/relationships/delete.d.ts.map +1 -1
  39. package/dist/accesslayer/consentflowcontract/relationships/read.d.ts +3 -2
  40. package/dist/accesslayer/consentflowcontract/relationships/read.d.ts.map +1 -1
  41. package/dist/accesslayer/consentflowcontract/relationships/recipients.d.ts +12 -0
  42. package/dist/accesslayer/consentflowcontract/relationships/recipients.d.ts.map +1 -0
  43. package/dist/accesslayer/consentflowcontract/relationships/smartResume.d.ts +12 -0
  44. package/dist/accesslayer/consentflowcontract/relationships/smartResume.d.ts.map +1 -0
  45. package/dist/accesslayer/consentflowcontract/relationships/update.d.ts +8 -5
  46. package/dist/accesslayer/consentflowcontract/relationships/update.d.ts.map +1 -1
  47. package/dist/accesslayer/credential/create.d.ts +2 -1
  48. package/dist/accesslayer/credential/create.d.ts.map +1 -1
  49. package/dist/accesslayer/credential/relationships/create.d.ts +4 -3
  50. package/dist/accesslayer/credential/relationships/create.d.ts.map +1 -1
  51. package/dist/accesslayer/inbox-credential/relationships/create.d.ts +2 -1
  52. package/dist/accesslayer/inbox-credential/relationships/create.d.ts.map +1 -1
  53. package/dist/accesslayer/inbox-credential/update.d.ts +2 -1
  54. package/dist/accesslayer/inbox-credential/update.d.ts.map +1 -1
  55. package/dist/accesslayer/share-link/abandon.d.ts.map +1 -1
  56. package/dist/accesslayer/share-link/attachment.d.ts +37 -0
  57. package/dist/accesslayer/share-link/attachment.d.ts.map +1 -0
  58. package/dist/accesslayer/share-link/finalize.d.ts.map +1 -1
  59. package/dist/accesslayer/share-link/helpers.d.ts +3 -0
  60. package/dist/accesslayer/share-link/helpers.d.ts.map +1 -1
  61. package/dist/accesslayer/share-link/recovery.d.ts.map +1 -1
  62. package/dist/accesslayer/share-link/reserve.d.ts.map +1 -1
  63. package/dist/accesslayer/share-link/revoke.d.ts.map +1 -1
  64. package/dist/accesslayer/share-link/types.d.ts +8 -3
  65. package/dist/accesslayer/share-link/types.d.ts.map +1 -1
  66. package/dist/cache/app-store.caches.d.ts +49 -0
  67. package/dist/cache/app-store.caches.d.ts.map +1 -1
  68. package/dist/config/applyDockerStageConfig.d.ts +2 -0
  69. package/dist/config/applyDockerStageConfig.d.ts.map +1 -0
  70. package/dist/config/environment.d.ts +5 -0
  71. package/dist/config/environment.d.ts.map +1 -1
  72. package/dist/config/serverlessFunctionEnv.test.d.ts +2 -0
  73. package/dist/config/serverlessFunctionEnv.test.d.ts.map +1 -0
  74. package/dist/config/stageConfig.d.ts +112 -0
  75. package/dist/config/stageConfig.d.ts.map +1 -0
  76. package/dist/config/stageConfig.test.d.ts +2 -0
  77. package/dist/config/stageConfig.test.d.ts.map +1 -0
  78. package/dist/didkit_wasm_bg.wasm +0 -0
  79. package/dist/docker-entry.d.ts +1 -1
  80. package/dist/docker-entry.d.ts.map +1 -1
  81. package/dist/helpers/app-manifest.helpers.d.ts +5 -0
  82. package/dist/helpers/app-manifest.helpers.d.ts.map +1 -0
  83. package/dist/helpers/claim-hooks.helpers.d.ts +2 -1
  84. package/dist/helpers/claim-hooks.helpers.d.ts.map +1 -1
  85. package/dist/helpers/consent-referral.helpers.d.ts +2 -0
  86. package/dist/helpers/consent-referral.helpers.d.ts.map +1 -0
  87. package/dist/helpers/consent-scopes.helpers.d.ts +7 -0
  88. package/dist/helpers/consent-scopes.helpers.d.ts.map +1 -0
  89. package/dist/helpers/contract-event-maintenance.helpers.d.ts +3 -0
  90. package/dist/helpers/contract-event-maintenance.helpers.d.ts.map +1 -0
  91. package/dist/helpers/contract-events.helpers.d.ts +25 -0
  92. package/dist/helpers/contract-events.helpers.d.ts.map +1 -0
  93. package/dist/helpers/contract-requests.helpers.d.ts +19 -0
  94. package/dist/helpers/contract-requests.helpers.d.ts.map +1 -0
  95. package/dist/helpers/finalize-inbox.helpers.d.ts +3 -3
  96. package/dist/helpers/finalize-inbox.helpers.d.ts.map +1 -1
  97. package/dist/helpers/inbox.helpers.d.ts.map +1 -1
  98. package/dist/helpers/inline-template.helpers.d.ts +45 -0
  99. package/dist/helpers/inline-template.helpers.d.ts.map +1 -0
  100. package/dist/helpers/notificationMessages.d.ts +1 -1
  101. package/dist/helpers/notificationMessages.d.ts.map +1 -1
  102. package/dist/helpers/notificationQueue.helpers.d.ts.map +1 -1
  103. package/dist/helpers/notifications.helpers.d.ts +6 -0
  104. package/dist/helpers/notifications.helpers.d.ts.map +1 -1
  105. package/dist/helpers/profile.helpers.d.ts +1 -0
  106. package/dist/helpers/profile.helpers.d.ts.map +1 -1
  107. package/dist/helpers/share-link-attachment-access.d.ts +4 -0
  108. package/dist/helpers/share-link-attachment-access.d.ts.map +1 -0
  109. package/dist/helpers/share-link-attachment.d.ts +18 -0
  110. package/dist/helpers/share-link-attachment.d.ts.map +1 -0
  111. package/dist/helpers/share-link-coordinator/attachment-stat.d.ts +5 -0
  112. package/dist/helpers/share-link-coordinator/attachment-stat.d.ts.map +1 -0
  113. package/dist/helpers/share-link-coordinator/coordinator.d.ts.map +1 -1
  114. package/dist/helpers/share-link-coordinator/recovery-runner.d.ts.map +1 -1
  115. package/dist/helpers/share-link-maintenance/runner.d.ts +1 -0
  116. package/dist/helpers/share-link-maintenance/runner.d.ts.map +1 -1
  117. package/dist/helpers/share-link-maintenance/runtime.d.ts +2 -0
  118. package/dist/helpers/share-link-maintenance/runtime.d.ts.map +1 -1
  119. package/dist/helpers/share-link-maintenance/telemetry.d.ts.map +1 -1
  120. package/dist/helpers/share-link-maintenance/types.d.ts +4 -1
  121. package/dist/helpers/share-link-maintenance/types.d.ts.map +1 -1
  122. package/dist/helpers/share-link-owner-projection.d.ts.map +1 -1
  123. package/dist/helpers/share-link-policy/production.d.ts +3 -5
  124. package/dist/helpers/share-link-policy/production.d.ts.map +1 -1
  125. package/dist/helpers/share-link-policy/resolver.d.ts +1 -1
  126. package/dist/helpers/share-link-policy/resolver.d.ts.map +1 -1
  127. package/dist/helpers/share-link-policy/types.d.ts +8 -2
  128. package/dist/helpers/share-link-policy/types.d.ts.map +1 -1
  129. package/dist/helpers/signingAuthority.helpers.d.ts.map +1 -1
  130. package/dist/helpers/smartResume.helpers.d.ts +3 -0
  131. package/dist/helpers/smartResume.helpers.d.ts.map +1 -0
  132. package/dist/index.js +2 -2
  133. package/dist/models/AppManifestVersion.d.ts +20 -0
  134. package/dist/models/AppManifestVersion.d.ts.map +1 -0
  135. package/dist/models/AppStoreListing.d.ts +13 -0
  136. package/dist/models/AppStoreListing.d.ts.map +1 -1
  137. package/dist/models/ConsentFlowContract.d.ts +13 -2
  138. package/dist/models/ConsentFlowContract.d.ts.map +1 -1
  139. package/dist/models/ConsentFlowTerms.d.ts.map +1 -1
  140. package/dist/models/ConsentFlowTransaction.d.ts.map +1 -1
  141. package/dist/models/Integration.d.ts +2 -0
  142. package/dist/models/Integration.d.ts.map +1 -1
  143. package/dist/models/ShareLink.d.ts +2 -0
  144. package/dist/models/ShareLink.d.ts.map +1 -1
  145. package/dist/models/index.d.ts +1 -0
  146. package/dist/models/index.d.ts.map +1 -1
  147. package/dist/models/share-link-constraints.d.ts.map +1 -1
  148. package/dist/openapi.d.ts +1 -1
  149. package/dist/openapi.d.ts.map +1 -1
  150. package/dist/routes/app-store.d.ts +619 -0
  151. package/dist/routes/app-store.d.ts.map +1 -1
  152. package/dist/routes/boosts.d.ts +2 -2
  153. package/dist/routes/boosts.d.ts.map +1 -1
  154. package/dist/routes/contracts.d.ts +146 -3
  155. package/dist/routes/contracts.d.ts.map +1 -1
  156. package/dist/routes/credentials.d.ts +34 -0
  157. package/dist/routes/credentials.d.ts.map +1 -1
  158. package/dist/routes/inbox.d.ts +52 -2
  159. package/dist/routes/inbox.d.ts.map +1 -1
  160. package/dist/routes/index.d.ts.map +1 -1
  161. package/dist/routes/profile-manager.d.ts.map +1 -1
  162. package/dist/routes/profiles.d.ts.map +1 -1
  163. package/dist/routes/public-share-links.d.ts +55 -0
  164. package/dist/routes/public-share-links.d.ts.map +1 -1
  165. package/dist/routes/share-links.d.ts +175 -14
  166. package/dist/routes/share-links.d.ts.map +1 -1
  167. package/dist/routes/test.d.ts +5 -0
  168. package/dist/routes/test.d.ts.map +1 -1
  169. package/dist/routes/workflows.d.ts.map +1 -1
  170. package/dist/types/app-manifest.d.ts +339 -0
  171. package/dist/types/app-manifest.d.ts.map +1 -0
  172. package/dist/types/app-store-listing.d.ts +34 -0
  173. package/dist/types/app-store-listing.d.ts.map +1 -1
  174. package/dist/types/consentflowcontract.d.ts +30 -3
  175. package/dist/types/consentflowcontract.d.ts.map +1 -1
  176. package/dist/types/credential-refresh.d.ts +1 -1
  177. package/esbuildPlugins.cjs +1 -0
  178. package/lambda.ts +49 -195
  179. package/lambdaApp.ts +203 -0
  180. package/package.json +20 -18
  181. package/scripts/export-openapi.ts +20 -0
  182. package/scripts/offline-schema-environment.ts +18 -0
  183. package/scripts/verify-python-contracts.ts +72 -0
  184. package/serverless-local.yml +3 -6
  185. package/serverless.function-env.cjs +50 -0
  186. package/serverless.local.yml +0 -1
  187. package/serverless.yml +27 -74
  188. package/shareLinkMaintenanceLambda.ts +13 -44
  189. package/shareLinkMaintenanceLambdaApp.ts +50 -0
  190. package/src/accesslayer/app-manifest-version/create.ts +57 -0
  191. package/src/accesslayer/app-manifest-version/read.ts +129 -0
  192. package/src/accesslayer/app-manifest-version/update.ts +61 -0
  193. package/src/accesslayer/app-store-listing/read.ts +6 -0
  194. package/src/accesslayer/app-store-listing/relationships/create.ts +20 -0
  195. package/src/accesslayer/app-store-listing/relationships/read.ts +24 -1
  196. package/src/accesslayer/app-store-listing/update.ts +15 -0
  197. package/src/accesslayer/boost/relationships/create.ts +8 -2
  198. package/src/accesslayer/consentflowcontract/create.ts +81 -8
  199. package/src/accesslayer/consentflowcontract/read.ts +84 -10
  200. package/src/accesslayer/consentflowcontract/relationships/create.ts +116 -93
  201. package/src/accesslayer/consentflowcontract/relationships/delete.ts +1 -0
  202. package/src/accesslayer/consentflowcontract/relationships/read.ts +184 -108
  203. package/src/accesslayer/consentflowcontract/relationships/recipients.ts +125 -0
  204. package/src/accesslayer/consentflowcontract/relationships/smartResume.ts +125 -0
  205. package/src/accesslayer/consentflowcontract/relationships/update.ts +240 -189
  206. package/src/accesslayer/credential/create.test.ts +2 -115
  207. package/src/accesslayer/credential/create.ts +11 -6
  208. package/src/accesslayer/credential/relationships/create.ts +17 -10
  209. package/src/accesslayer/inbox-credential/relationships/create.ts +70 -48
  210. package/src/accesslayer/inbox-credential/update.ts +4 -2
  211. package/src/accesslayer/share-link/abandon.ts +20 -0
  212. package/src/accesslayer/share-link/attachment.ts +360 -0
  213. package/src/accesslayer/share-link/finalize.ts +55 -7
  214. package/src/accesslayer/share-link/helpers.ts +33 -2
  215. package/src/accesslayer/share-link/recovery.ts +20 -0
  216. package/src/accesslayer/share-link/reserve.ts +85 -6
  217. package/src/accesslayer/share-link/revoke.ts +35 -0
  218. package/src/accesslayer/share-link/types.ts +9 -4
  219. package/src/cache/app-store.caches.ts +35 -0
  220. package/src/config/applyDockerStageConfig.ts +6 -0
  221. package/src/config/environment.test.ts +17 -12
  222. package/src/config/environment.ts +1 -0
  223. package/src/config/serverlessFunctionEnv.test.ts +105 -0
  224. package/src/config/stageConfig.test.ts +25 -0
  225. package/src/config/stageConfig.ts +24 -0
  226. package/src/docker-entry.ts +24 -0
  227. package/src/helpers/app-manifest.helpers.ts +185 -0
  228. package/src/helpers/claim-hooks.helpers.ts +20 -7
  229. package/src/helpers/consent-referral.helpers.ts +6 -0
  230. package/src/helpers/consent-scopes.helpers.ts +58 -0
  231. package/src/helpers/contract-event-maintenance.helpers.ts +43 -0
  232. package/src/helpers/contract-events.helpers.ts +540 -0
  233. package/src/helpers/contract-requests.helpers.ts +211 -0
  234. package/src/helpers/finalize-inbox.helpers.ts +163 -44
  235. package/src/helpers/inbox.helpers.ts +51 -66
  236. package/src/helpers/inline-template.helpers.ts +560 -0
  237. package/src/helpers/notificationMessages.ts +59 -0
  238. package/src/helpers/notificationQueue.helpers.ts +23 -5
  239. package/src/helpers/notifications.helpers.ts +25 -1
  240. package/src/helpers/profile.helpers.ts +6 -0
  241. package/src/helpers/share-link-attachment-access.ts +87 -0
  242. package/src/helpers/share-link-attachment.ts +115 -0
  243. package/src/helpers/share-link-coordinator/attachment-stat.ts +41 -0
  244. package/src/helpers/share-link-coordinator/coordinator.ts +15 -2
  245. package/src/helpers/share-link-coordinator/recovery-runner.ts +15 -0
  246. package/src/helpers/share-link-maintenance/runner.ts +28 -0
  247. package/src/helpers/share-link-maintenance/runtime.ts +6 -0
  248. package/src/helpers/share-link-maintenance/telemetry.ts +3 -0
  249. package/src/helpers/share-link-maintenance/types.ts +2 -0
  250. package/src/helpers/share-link-owner-projection.ts +2 -0
  251. package/src/helpers/share-link-policy/production.ts +37 -17
  252. package/src/helpers/share-link-policy/resolver.ts +16 -11
  253. package/src/helpers/share-link-policy/types.ts +15 -7
  254. package/src/helpers/signingAuthority.helpers.ts +23 -14
  255. package/src/helpers/smartResume.helpers.ts +123 -0
  256. package/src/models/AppManifestVersion.ts +43 -0
  257. package/src/models/AppStoreListing.ts +32 -0
  258. package/src/models/ConsentFlowContract.ts +34 -3
  259. package/src/models/ConsentFlowTerms.ts +10 -0
  260. package/src/models/ConsentFlowTransaction.ts +3 -0
  261. package/src/models/Integration.ts +2 -0
  262. package/src/models/ShareLink.ts +4 -0
  263. package/src/models/index.ts +23 -0
  264. package/src/models/share-link-constraints.ts +5 -0
  265. package/src/openapi.ts +44 -8
  266. package/src/routes/app-store.ts +1054 -27
  267. package/src/routes/boosts.ts +12 -14
  268. package/src/routes/contracts.ts +382 -262
  269. package/src/routes/inbox.ts +4 -2
  270. package/src/routes/index.ts +4 -1
  271. package/src/routes/profile-manager.ts +19 -0
  272. package/src/routes/profiles.ts +12 -0
  273. package/src/routes/public-share-links.ts +169 -0
  274. package/src/routes/share-links.ts +69 -0
  275. package/src/routes/workflows.ts +3 -2
  276. package/src/types/app-manifest.ts +28 -0
  277. package/src/types/app-store-listing.ts +13 -0
  278. package/src/types/consentflowcontract.ts +25 -4
  279. package/test/app-manifest.helpers.spec.ts +170 -0
  280. package/test/app-manifest.routes.spec.ts +299 -0
  281. package/test/app-store-listing-updates.spec.ts +236 -0
  282. package/test/app-store-listing.spec.ts +65 -3
  283. package/test/consent-data-boundaries.spec.ts +352 -0
  284. package/test/consent-recipients.spec.ts +513 -0
  285. package/test/consent-scopes.helpers.spec.ts +67 -0
  286. package/test/consentflow.spec.ts +63 -2
  287. package/test/contract-requests.spec.ts +1588 -0
  288. package/test/credential-storage.neo4j.spec.ts +122 -0
  289. package/test/guardian-gated-routes.spec.ts +36 -0
  290. package/test/inbox-security.e2e.ts +26 -10
  291. package/test/inbox.spec.ts +184 -8
  292. package/test/inline-template.helpers.spec.ts +49 -0
  293. package/test/managed-recipient-inbox.spec.ts +24 -2
  294. package/test/openapi.spec.ts +14 -73
  295. package/test/profiles.spec.ts +30 -0
  296. package/test/share-link-attachment.neo4j.spec.ts +262 -0
  297. package/test/share-link-attachment.unit.spec.ts +244 -0
  298. package/test/share-link-lifecycle.neo4j.spec.ts +145 -2
  299. package/test/share-link-maintenance.unit.spec.ts +32 -5
  300. package/test/share-link-owner-route.unit.spec.ts +70 -2
  301. package/test/share-link-policy.unit.spec.ts +18 -4
  302. package/test/share-link-production-policy.unit.spec.ts +58 -9
  303. package/test/share-link-public-route.unit.spec.ts +279 -0
  304. package/test/share-link-service-policy.neo4j.spec.ts +403 -0
  305. package/test/signing-authority-encryption.spec.ts +75 -0
  306. package/test/smart-resume-consent.spec.ts +233 -0
  307. package/test/smart-resume-upload.spec.ts +65 -0
  308. package/tsconfig.build.json +1 -1
  309. package/tsconfig.json +1 -0
  310. package/vitest.config.ts +13 -0
  311. package/vitest.inbox-e2e.config.ts +2 -0
  312. package/workerLambda.test.ts +100 -0
@@ -65,6 +65,32 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
65
65
  contact_email?: string | undefined;
66
66
  highlights?: string[] | undefined;
67
67
  screenshots?: string[] | undefined;
68
+ pending_update?: {
69
+ status: "DRAFT" | "PENDING_REVIEW";
70
+ changes: {
71
+ category?: string | undefined;
72
+ slug?: string | undefined;
73
+ launch_type?: "EMBEDDED_IFRAME" | "SECOND_SCREEN" | "DIRECT_LINK" | "CONSENT_REDIRECT" | "SERVER_HEADLESS" | "AI_TUTOR" | undefined;
74
+ display_name?: string | undefined;
75
+ tagline?: string | undefined;
76
+ full_description?: string | undefined;
77
+ icon_url?: string | undefined;
78
+ launch_config_json?: string | undefined;
79
+ promo_video_url?: string | undefined;
80
+ ios_app_store_id?: string | undefined;
81
+ android_app_store_id?: string | undefined;
82
+ privacy_policy_url?: string | undefined;
83
+ terms_url?: string | undefined;
84
+ highlights?: string[] | undefined;
85
+ screenshots?: string[] | undefined;
86
+ hero_background_color?: string | undefined;
87
+ min_age?: number | undefined;
88
+ age_rating?: "4+" | "9+" | "12+" | "17+" | undefined;
89
+ contact_email?: string | undefined;
90
+ };
91
+ submitted_at?: string | undefined;
92
+ manifest_version?: number | undefined;
93
+ } | undefined;
68
94
  submitter?: {
69
95
  profileId: string;
70
96
  displayName: string;
@@ -105,6 +131,32 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
105
131
  contact_email?: string | undefined;
106
132
  highlights?: string[] | undefined;
107
133
  screenshots?: string[] | undefined;
134
+ pending_update?: {
135
+ status: "DRAFT" | "PENDING_REVIEW";
136
+ changes: {
137
+ category?: string | undefined;
138
+ slug?: string | undefined;
139
+ launch_type?: "EMBEDDED_IFRAME" | "SECOND_SCREEN" | "DIRECT_LINK" | "CONSENT_REDIRECT" | "SERVER_HEADLESS" | "AI_TUTOR" | undefined;
140
+ display_name?: string | undefined;
141
+ tagline?: string | undefined;
142
+ full_description?: string | undefined;
143
+ icon_url?: string | undefined;
144
+ launch_config_json?: string | undefined;
145
+ promo_video_url?: string | undefined;
146
+ ios_app_store_id?: string | undefined;
147
+ android_app_store_id?: string | undefined;
148
+ privacy_policy_url?: string | undefined;
149
+ terms_url?: string | undefined;
150
+ highlights?: string[] | undefined;
151
+ screenshots?: string[] | undefined;
152
+ hero_background_color?: string | undefined;
153
+ min_age?: number | undefined;
154
+ age_rating?: "4+" | "9+" | "12+" | "17+" | undefined;
155
+ contact_email?: string | undefined;
156
+ };
157
+ submitted_at?: string | undefined;
158
+ manifest_version?: number | undefined;
159
+ } | undefined;
108
160
  submitter?: {
109
161
  profileId: string;
110
162
  displayName: string;
@@ -122,6 +174,340 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
122
174
  output: number;
123
175
  meta: import(".././routes/index").RouteMetadata;
124
176
  }>;
177
+ submitAppManifest: import("@trpc/server").TRPCMutationProcedure<{
178
+ input: {
179
+ integrationId: string;
180
+ manifest: {
181
+ [x: string]: unknown;
182
+ manifestVersion: 1;
183
+ appUrl: string;
184
+ usedLearnerContext: boolean;
185
+ usedNotifications: boolean;
186
+ firstCapturedAt: string;
187
+ lastUpdatedAt: string;
188
+ appKey?: string | undefined;
189
+ suggestedName?: string | undefined;
190
+ suggestedIconUrl?: string | undefined;
191
+ permissions?: string[] | undefined;
192
+ templates?: {
193
+ [x: string]: unknown;
194
+ alias: string;
195
+ template: {
196
+ [x: string]: unknown;
197
+ rawCredential: Record<string, unknown>;
198
+ category?: "Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation" | undefined;
199
+ walletSkills?: {
200
+ [x: string]: unknown;
201
+ frameworkId: string;
202
+ id: string;
203
+ proficiencyLevel?: string | undefined;
204
+ }[] | undefined;
205
+ } | {
206
+ [x: string]: unknown;
207
+ name: string;
208
+ rawCredential?: undefined;
209
+ description?: string | undefined;
210
+ image?: string | undefined;
211
+ issuerName?: string | undefined;
212
+ achievementType?: string | undefined;
213
+ category?: "Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation" | undefined;
214
+ criteria?: {
215
+ [x: string]: unknown;
216
+ narrative?: string | undefined;
217
+ url?: string | undefined;
218
+ } | undefined;
219
+ alignments?: {
220
+ [x: string]: unknown;
221
+ name: string;
222
+ url: string;
223
+ framework?: string | undefined;
224
+ code?: string | undefined;
225
+ }[] | undefined;
226
+ tags?: string[] | undefined;
227
+ activity?: {
228
+ [x: string]: unknown;
229
+ startDate?: string | undefined;
230
+ endDate?: string | undefined;
231
+ } | undefined;
232
+ credits?: {
233
+ [x: string]: unknown;
234
+ earned?: string | number | undefined;
235
+ available?: string | number | undefined;
236
+ } | undefined;
237
+ validUntil?: string | undefined;
238
+ evidence?: {
239
+ [x: string]: unknown;
240
+ id?: string | undefined;
241
+ name?: string | undefined;
242
+ narrative?: string | undefined;
243
+ }[] | undefined;
244
+ walletSkills?: {
245
+ [x: string]: unknown;
246
+ frameworkId: string;
247
+ id: string;
248
+ proficiencyLevel?: string | undefined;
249
+ }[] | undefined;
250
+ };
251
+ version: number;
252
+ lastUsedAt: string;
253
+ }[] | undefined;
254
+ consentRequests?: {
255
+ [x: string]: unknown;
256
+ scopes: {
257
+ read: {
258
+ credentialCategories?: ("Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation")[] | undefined;
259
+ personalFields?: ("name" | "email" | "country" | "phone" | "birthDate" | "avatar")[] | undefined;
260
+ };
261
+ write: {
262
+ credentialCategories?: ("Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation")[] | undefined;
263
+ };
264
+ };
265
+ lastUsedAt: string;
266
+ reason?: string | undefined;
267
+ }[] | undefined;
268
+ usedConsentContract?: boolean | undefined;
269
+ featuresLaunched?: string[] | undefined;
270
+ counterKeys?: string[] | undefined;
271
+ };
272
+ };
273
+ output: {
274
+ version: number;
275
+ manifestHash: string;
276
+ diff: {
277
+ permissions: {
278
+ added: string[];
279
+ removed: string[];
280
+ changed: string[];
281
+ };
282
+ templates: {
283
+ added: {
284
+ alias: string;
285
+ version: number;
286
+ }[];
287
+ removed: {
288
+ alias: string;
289
+ version: number;
290
+ }[];
291
+ changed: {
292
+ alias: string;
293
+ fromVersion: number;
294
+ toVersion: number;
295
+ }[];
296
+ };
297
+ consentScopes: {
298
+ added: string[];
299
+ removed: string[];
300
+ changed: string[];
301
+ };
302
+ featurePaths: {
303
+ added: string[];
304
+ removed: string[];
305
+ changed: string[];
306
+ };
307
+ counterKeys: {
308
+ added: string[];
309
+ removed: string[];
310
+ changed: string[];
311
+ };
312
+ requiresReview: boolean;
313
+ } | null;
314
+ noop: boolean;
315
+ };
316
+ meta: import(".././routes/index").RouteMetadata;
317
+ }>;
318
+ getManifestVersions: import("@trpc/server").TRPCQueryProcedure<{
319
+ input: {
320
+ integrationId: string;
321
+ limit?: number | undefined;
322
+ cursor?: string | undefined;
323
+ };
324
+ output: {
325
+ hasMore: boolean;
326
+ records: {
327
+ id: string;
328
+ createdAt: string;
329
+ status: "active" | "draft" | "superseded";
330
+ version: number;
331
+ manifestHash: string;
332
+ activatedAt?: string | undefined;
333
+ }[];
334
+ cursor?: string | undefined;
335
+ };
336
+ meta: import(".././routes/index").RouteMetadata;
337
+ }>;
338
+ getManifestVersion: import("@trpc/server").TRPCQueryProcedure<{
339
+ input: {
340
+ integrationId: string;
341
+ version: number;
342
+ };
343
+ output: {
344
+ id: string;
345
+ version: number;
346
+ manifestHash: string;
347
+ manifest: {
348
+ [x: string]: unknown;
349
+ manifestVersion: 1;
350
+ appUrl: string;
351
+ permissions: string[];
352
+ templates: {
353
+ [x: string]: unknown;
354
+ alias: string;
355
+ template: {
356
+ [x: string]: unknown;
357
+ rawCredential: Record<string, unknown>;
358
+ category?: "Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation" | undefined;
359
+ walletSkills?: {
360
+ [x: string]: unknown;
361
+ frameworkId: string;
362
+ id: string;
363
+ proficiencyLevel?: string | undefined;
364
+ }[] | undefined;
365
+ } | {
366
+ [x: string]: unknown;
367
+ name: string;
368
+ rawCredential?: undefined;
369
+ description?: string | undefined;
370
+ image?: string | undefined;
371
+ issuerName?: string | undefined;
372
+ achievementType?: string | undefined;
373
+ category?: "Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation" | undefined;
374
+ criteria?: {
375
+ [x: string]: unknown;
376
+ narrative?: string | undefined;
377
+ url?: string | undefined;
378
+ } | undefined;
379
+ alignments?: {
380
+ [x: string]: unknown;
381
+ name: string;
382
+ url: string;
383
+ framework?: string | undefined;
384
+ code?: string | undefined;
385
+ }[] | undefined;
386
+ tags?: string[] | undefined;
387
+ activity?: {
388
+ [x: string]: unknown;
389
+ startDate?: string | undefined;
390
+ endDate?: string | undefined;
391
+ } | undefined;
392
+ credits?: {
393
+ [x: string]: unknown;
394
+ earned?: string | number | undefined;
395
+ available?: string | number | undefined;
396
+ } | undefined;
397
+ validUntil?: string | undefined;
398
+ evidence?: {
399
+ [x: string]: unknown;
400
+ id?: string | undefined;
401
+ name?: string | undefined;
402
+ narrative?: string | undefined;
403
+ }[] | undefined;
404
+ walletSkills?: {
405
+ [x: string]: unknown;
406
+ frameworkId: string;
407
+ id: string;
408
+ proficiencyLevel?: string | undefined;
409
+ }[] | undefined;
410
+ };
411
+ version: number;
412
+ lastUsedAt: string;
413
+ }[];
414
+ consentRequests: {
415
+ [x: string]: unknown;
416
+ scopes: {
417
+ read: {
418
+ credentialCategories: ("Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation")[];
419
+ personalFields: ("name" | "email" | "country" | "phone" | "birthDate" | "avatar")[];
420
+ };
421
+ write: {
422
+ credentialCategories: ("Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation")[];
423
+ };
424
+ };
425
+ lastUsedAt: string;
426
+ reason?: string | undefined;
427
+ }[];
428
+ featuresLaunched: string[];
429
+ counterKeys: string[];
430
+ usedLearnerContext: boolean;
431
+ usedNotifications: boolean;
432
+ firstCapturedAt: string;
433
+ lastUpdatedAt: string;
434
+ appKey?: string | undefined;
435
+ suggestedName?: string | undefined;
436
+ suggestedIconUrl?: string | undefined;
437
+ usedConsentContract?: boolean | undefined;
438
+ };
439
+ status: "active" | "draft" | "superseded";
440
+ createdAt: string;
441
+ activatedAt?: string | undefined;
442
+ };
443
+ meta: import(".././routes/index").RouteMetadata;
444
+ }>;
445
+ getManifestDiff: import("@trpc/server").TRPCQueryProcedure<{
446
+ input: {
447
+ integrationId: string;
448
+ toVersion: number;
449
+ fromVersion?: number | undefined;
450
+ };
451
+ output: {
452
+ permissions: {
453
+ added: string[];
454
+ removed: string[];
455
+ changed: string[];
456
+ };
457
+ templates: {
458
+ added: {
459
+ alias: string;
460
+ version: number;
461
+ }[];
462
+ removed: {
463
+ alias: string;
464
+ version: number;
465
+ }[];
466
+ changed: {
467
+ alias: string;
468
+ fromVersion: number;
469
+ toVersion: number;
470
+ }[];
471
+ };
472
+ consentScopes: {
473
+ added: string[];
474
+ removed: string[];
475
+ changed: string[];
476
+ };
477
+ featurePaths: {
478
+ added: string[];
479
+ removed: string[];
480
+ changed: string[];
481
+ };
482
+ counterKeys: {
483
+ added: string[];
484
+ removed: string[];
485
+ changed: string[];
486
+ };
487
+ requiresReview: boolean;
488
+ };
489
+ meta: import(".././routes/index").RouteMetadata;
490
+ }>;
491
+ applyManifestVersion: import("@trpc/server").TRPCMutationProcedure<{
492
+ input: {
493
+ integrationId: string;
494
+ version: number;
495
+ listingId?: string | undefined;
496
+ };
497
+ output: {
498
+ applied: boolean;
499
+ version: number;
500
+ reconciled: {
501
+ templatesUpserted: number;
502
+ templatesSkipped: number;
503
+ contractsUpserted: number;
504
+ contractsSkipped: number;
505
+ signingAuthorityEnsured: boolean;
506
+ };
507
+ pendingReview?: boolean | undefined;
508
+ };
509
+ meta: import(".././routes/index").RouteMetadata;
510
+ }>;
125
511
  updateListing: import("@trpc/server").TRPCMutationProcedure<{
126
512
  input: {
127
513
  listingId: string;
@@ -204,6 +590,27 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
204
590
  output: boolean;
205
591
  meta: import(".././routes/index").RouteMetadata;
206
592
  }>;
593
+ submitListingUpdate: import("@trpc/server").TRPCMutationProcedure<{
594
+ input: {
595
+ listingId: string;
596
+ };
597
+ output: boolean;
598
+ meta: import(".././routes/index").RouteMetadata;
599
+ }>;
600
+ withdrawListingUpdate: import("@trpc/server").TRPCMutationProcedure<{
601
+ input: {
602
+ listingId: string;
603
+ };
604
+ output: boolean;
605
+ meta: import(".././routes/index").RouteMetadata;
606
+ }>;
607
+ discardListingUpdate: import("@trpc/server").TRPCMutationProcedure<{
608
+ input: {
609
+ listingId: string;
610
+ };
611
+ output: boolean;
612
+ meta: import(".././routes/index").RouteMetadata;
613
+ }>;
207
614
  deleteListing: import("@trpc/server").TRPCMutationProcedure<{
208
615
  input: {
209
616
  listingId: string;
@@ -244,6 +651,32 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
244
651
  contact_email?: string | undefined;
245
652
  highlights?: string[] | undefined;
246
653
  screenshots?: string[] | undefined;
654
+ pending_update?: {
655
+ status: "DRAFT" | "PENDING_REVIEW";
656
+ changes: {
657
+ category?: string | undefined;
658
+ slug?: string | undefined;
659
+ launch_type?: "EMBEDDED_IFRAME" | "SECOND_SCREEN" | "DIRECT_LINK" | "CONSENT_REDIRECT" | "SERVER_HEADLESS" | "AI_TUTOR" | undefined;
660
+ display_name?: string | undefined;
661
+ tagline?: string | undefined;
662
+ full_description?: string | undefined;
663
+ icon_url?: string | undefined;
664
+ launch_config_json?: string | undefined;
665
+ promo_video_url?: string | undefined;
666
+ ios_app_store_id?: string | undefined;
667
+ android_app_store_id?: string | undefined;
668
+ privacy_policy_url?: string | undefined;
669
+ terms_url?: string | undefined;
670
+ highlights?: string[] | undefined;
671
+ screenshots?: string[] | undefined;
672
+ hero_background_color?: string | undefined;
673
+ min_age?: number | undefined;
674
+ age_rating?: "4+" | "9+" | "12+" | "17+" | undefined;
675
+ contact_email?: string | undefined;
676
+ };
677
+ submitted_at?: string | undefined;
678
+ manifest_version?: number | undefined;
679
+ } | undefined;
247
680
  submitter?: {
248
681
  profileId: string;
249
682
  displayName: string;
@@ -282,6 +715,32 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
282
715
  contact_email?: string | undefined;
283
716
  highlights?: string[] | undefined;
284
717
  screenshots?: string[] | undefined;
718
+ pending_update?: {
719
+ status: "DRAFT" | "PENDING_REVIEW";
720
+ changes: {
721
+ category?: string | undefined;
722
+ slug?: string | undefined;
723
+ launch_type?: "EMBEDDED_IFRAME" | "SECOND_SCREEN" | "DIRECT_LINK" | "CONSENT_REDIRECT" | "SERVER_HEADLESS" | "AI_TUTOR" | undefined;
724
+ display_name?: string | undefined;
725
+ tagline?: string | undefined;
726
+ full_description?: string | undefined;
727
+ icon_url?: string | undefined;
728
+ launch_config_json?: string | undefined;
729
+ promo_video_url?: string | undefined;
730
+ ios_app_store_id?: string | undefined;
731
+ android_app_store_id?: string | undefined;
732
+ privacy_policy_url?: string | undefined;
733
+ terms_url?: string | undefined;
734
+ highlights?: string[] | undefined;
735
+ screenshots?: string[] | undefined;
736
+ hero_background_color?: string | undefined;
737
+ min_age?: number | undefined;
738
+ age_rating?: "4+" | "9+" | "12+" | "17+" | undefined;
739
+ contact_email?: string | undefined;
740
+ };
741
+ submitted_at?: string | undefined;
742
+ manifest_version?: number | undefined;
743
+ } | undefined;
285
744
  submitter?: {
286
745
  profileId: string;
287
746
  displayName: string;
@@ -318,6 +777,32 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
318
777
  contact_email?: string | undefined;
319
778
  highlights?: string[] | undefined;
320
779
  screenshots?: string[] | undefined;
780
+ pending_update?: {
781
+ status: "DRAFT" | "PENDING_REVIEW";
782
+ changes: {
783
+ category?: string | undefined;
784
+ slug?: string | undefined;
785
+ launch_type?: "EMBEDDED_IFRAME" | "SECOND_SCREEN" | "DIRECT_LINK" | "CONSENT_REDIRECT" | "SERVER_HEADLESS" | "AI_TUTOR" | undefined;
786
+ display_name?: string | undefined;
787
+ tagline?: string | undefined;
788
+ full_description?: string | undefined;
789
+ icon_url?: string | undefined;
790
+ launch_config_json?: string | undefined;
791
+ promo_video_url?: string | undefined;
792
+ ios_app_store_id?: string | undefined;
793
+ android_app_store_id?: string | undefined;
794
+ privacy_policy_url?: string | undefined;
795
+ terms_url?: string | undefined;
796
+ highlights?: string[] | undefined;
797
+ screenshots?: string[] | undefined;
798
+ hero_background_color?: string | undefined;
799
+ min_age?: number | undefined;
800
+ age_rating?: "4+" | "9+" | "12+" | "17+" | undefined;
801
+ contact_email?: string | undefined;
802
+ };
803
+ submitted_at?: string | undefined;
804
+ manifest_version?: number | undefined;
805
+ } | undefined;
321
806
  submitter?: {
322
807
  profileId: string;
323
808
  displayName: string;
@@ -379,6 +864,32 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
379
864
  contact_email?: string | undefined;
380
865
  highlights?: string[] | undefined;
381
866
  screenshots?: string[] | undefined;
867
+ pending_update?: {
868
+ status: "DRAFT" | "PENDING_REVIEW";
869
+ changes: {
870
+ category?: string | undefined;
871
+ slug?: string | undefined;
872
+ launch_type?: "EMBEDDED_IFRAME" | "SECOND_SCREEN" | "DIRECT_LINK" | "CONSENT_REDIRECT" | "SERVER_HEADLESS" | "AI_TUTOR" | undefined;
873
+ display_name?: string | undefined;
874
+ tagline?: string | undefined;
875
+ full_description?: string | undefined;
876
+ icon_url?: string | undefined;
877
+ launch_config_json?: string | undefined;
878
+ promo_video_url?: string | undefined;
879
+ ios_app_store_id?: string | undefined;
880
+ android_app_store_id?: string | undefined;
881
+ privacy_policy_url?: string | undefined;
882
+ terms_url?: string | undefined;
883
+ highlights?: string[] | undefined;
884
+ screenshots?: string[] | undefined;
885
+ hero_background_color?: string | undefined;
886
+ min_age?: number | undefined;
887
+ age_rating?: "4+" | "9+" | "12+" | "17+" | undefined;
888
+ contact_email?: string | undefined;
889
+ };
890
+ submitted_at?: string | undefined;
891
+ manifest_version?: number | undefined;
892
+ } | undefined;
382
893
  submitter?: {
383
894
  profileId: string;
384
895
  displayName: string;
@@ -473,6 +984,67 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
473
984
  templateAlias: string;
474
985
  templateData?: Record<string, unknown> | undefined;
475
986
  preventDuplicateClaim?: boolean | undefined;
987
+ } | {
988
+ type: "send-credential";
989
+ alias: string;
990
+ template: {
991
+ [x: string]: unknown;
992
+ rawCredential: Record<string, unknown>;
993
+ category?: "Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation" | undefined;
994
+ walletSkills?: {
995
+ [x: string]: unknown;
996
+ frameworkId: string;
997
+ id: string;
998
+ proficiencyLevel?: string | undefined;
999
+ }[] | undefined;
1000
+ } | {
1001
+ [x: string]: unknown;
1002
+ name: string;
1003
+ rawCredential?: undefined;
1004
+ description?: string | undefined;
1005
+ image?: string | undefined;
1006
+ issuerName?: string | undefined;
1007
+ achievementType?: string | undefined;
1008
+ category?: "Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation" | undefined;
1009
+ criteria?: {
1010
+ [x: string]: unknown;
1011
+ narrative?: string | undefined;
1012
+ url?: string | undefined;
1013
+ } | undefined;
1014
+ alignments?: {
1015
+ [x: string]: unknown;
1016
+ name: string;
1017
+ url: string;
1018
+ framework?: string | undefined;
1019
+ code?: string | undefined;
1020
+ }[] | undefined;
1021
+ tags?: string[] | undefined;
1022
+ activity?: {
1023
+ [x: string]: unknown;
1024
+ startDate?: string | undefined;
1025
+ endDate?: string | undefined;
1026
+ } | undefined;
1027
+ credits?: {
1028
+ [x: string]: unknown;
1029
+ earned?: string | number | undefined;
1030
+ available?: string | number | undefined;
1031
+ } | undefined;
1032
+ validUntil?: string | undefined;
1033
+ evidence?: {
1034
+ [x: string]: unknown;
1035
+ id?: string | undefined;
1036
+ name?: string | undefined;
1037
+ narrative?: string | undefined;
1038
+ }[] | undefined;
1039
+ walletSkills?: {
1040
+ [x: string]: unknown;
1041
+ frameworkId: string;
1042
+ id: string;
1043
+ proficiencyLevel?: string | undefined;
1044
+ }[] | undefined;
1045
+ };
1046
+ templateData?: Record<string, unknown> | undefined;
1047
+ preventDuplicateClaim?: boolean | undefined;
476
1048
  } | {
477
1049
  type: "check-credential";
478
1050
  templateAlias?: string | undefined;
@@ -541,6 +1113,18 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
541
1113
  } | {
542
1114
  type: "get-counters";
543
1115
  keys?: string[] | undefined;
1116
+ } | {
1117
+ type: "upsert-consent-contract";
1118
+ scopes: {
1119
+ read?: {
1120
+ credentialCategories?: ("Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation")[] | undefined;
1121
+ personalFields?: ("name" | "email" | "country" | "phone" | "birthDate" | "avatar")[] | undefined;
1122
+ } | undefined;
1123
+ write?: {
1124
+ credentialCategories?: ("Skill" | "Family" | "Achievement" | "ID" | "Learning History" | "Work History" | "Social Badges" | "Membership" | "Accomplishment" | "Experiences" | "Accommodation")[] | undefined;
1125
+ } | undefined;
1126
+ reason?: string | undefined;
1127
+ };
544
1128
  };
545
1129
  };
546
1130
  output: Record<string, unknown>;
@@ -554,6 +1138,14 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
554
1138
  output: boolean;
555
1139
  meta: import(".././routes/index").RouteMetadata;
556
1140
  }>;
1141
+ adminReviewListingUpdate: import("@trpc/server").TRPCMutationProcedure<{
1142
+ input: {
1143
+ listingId: string;
1144
+ approve: boolean;
1145
+ };
1146
+ output: boolean;
1147
+ meta: import(".././routes/index").RouteMetadata;
1148
+ }>;
557
1149
  adminUpdatePromotionLevel: import("@trpc/server").TRPCMutationProcedure<{
558
1150
  input: {
559
1151
  listingId: string;
@@ -567,6 +1159,7 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
567
1159
  limit?: number | undefined;
568
1160
  cursor?: string | undefined;
569
1161
  status?: "DRAFT" | "PENDING_REVIEW" | "LISTED" | "ARCHIVED" | undefined;
1162
+ pendingUpdatesOnly?: boolean | undefined;
570
1163
  } | undefined;
571
1164
  output: {
572
1165
  hasMore: boolean;
@@ -594,6 +1187,32 @@ export declare const appStoreRouter: import("@trpc/server").TRPCBuiltRouter<{
594
1187
  contact_email?: string | undefined;
595
1188
  highlights?: string[] | undefined;
596
1189
  screenshots?: string[] | undefined;
1190
+ pending_update?: {
1191
+ status: "DRAFT" | "PENDING_REVIEW";
1192
+ changes: {
1193
+ category?: string | undefined;
1194
+ slug?: string | undefined;
1195
+ launch_type?: "EMBEDDED_IFRAME" | "SECOND_SCREEN" | "DIRECT_LINK" | "CONSENT_REDIRECT" | "SERVER_HEADLESS" | "AI_TUTOR" | undefined;
1196
+ display_name?: string | undefined;
1197
+ tagline?: string | undefined;
1198
+ full_description?: string | undefined;
1199
+ icon_url?: string | undefined;
1200
+ launch_config_json?: string | undefined;
1201
+ promo_video_url?: string | undefined;
1202
+ ios_app_store_id?: string | undefined;
1203
+ android_app_store_id?: string | undefined;
1204
+ privacy_policy_url?: string | undefined;
1205
+ terms_url?: string | undefined;
1206
+ highlights?: string[] | undefined;
1207
+ screenshots?: string[] | undefined;
1208
+ hero_background_color?: string | undefined;
1209
+ min_age?: number | undefined;
1210
+ age_rating?: "4+" | "9+" | "12+" | "17+" | undefined;
1211
+ contact_email?: string | undefined;
1212
+ };
1213
+ submitted_at?: string | undefined;
1214
+ manifest_version?: number | undefined;
1215
+ } | undefined;
597
1216
  submitter?: {
598
1217
  profileId: string;
599
1218
  displayName: string;