emuhealth 0.4.0 → 0.5.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 (50) hide show
  1. package/README.md +1 -1
  2. package/dist/api.js +17 -15
  3. package/dist/api.js.map +1 -1
  4. package/dist/{chunk-WKE2IMP5.js → chunk-RNX62IMQ.js} +18 -16
  5. package/dist/chunk-RNX62IMQ.js.map +1 -0
  6. package/dist/{dist-YK2XJNH7.js → dist-4CPLP2NQ.js} +3 -1
  7. package/dist/dist-4CPLP2NQ.js.map +1 -0
  8. package/dist/{dist-ATXASBBA.js → dist-6OM56NLC.js} +3 -1
  9. package/dist/dist-6OM56NLC.js.map +1 -0
  10. package/dist/{dist-L3SNHIRB.js → dist-6TPEFTAK.js} +3 -1
  11. package/dist/dist-6TPEFTAK.js.map +1 -0
  12. package/dist/{dist-22OZW7MU.js → dist-AZA2TRAN.js} +3 -1
  13. package/dist/dist-AZA2TRAN.js.map +1 -0
  14. package/dist/{dist-EUMN2OAH.js → dist-DVBHDPLP.js} +3 -1
  15. package/dist/dist-DVBHDPLP.js.map +1 -0
  16. package/dist/{dist-KRJZAPPL.js → dist-DWUKLYZG.js} +3 -1
  17. package/dist/dist-DWUKLYZG.js.map +1 -0
  18. package/dist/{dist-NSZJMYCW.js → dist-EPYBRSJC.js} +1407 -431
  19. package/dist/dist-EPYBRSJC.js.map +1 -0
  20. package/dist/{dist-575EVZLI.js → dist-IJ7LRDHX.js} +3 -1
  21. package/dist/{dist-575EVZLI.js.map → dist-IJ7LRDHX.js.map} +1 -1
  22. package/dist/{dist-KAYD3L2O.js → dist-KQGIGONJ.js} +3 -1
  23. package/dist/{dist-KAYD3L2O.js.map → dist-KQGIGONJ.js.map} +1 -1
  24. package/dist/{dist-YMRASK5I.js → dist-QUEHZ2IC.js} +3 -1
  25. package/dist/dist-QUEHZ2IC.js.map +1 -0
  26. package/dist/{dist-M5TIXC2F.js → dist-RWIGUWMG.js} +3 -1
  27. package/dist/dist-RWIGUWMG.js.map +1 -0
  28. package/dist/{dist-ZGCIWJJM.js → dist-TOCHFEDO.js} +3 -1
  29. package/dist/dist-TOCHFEDO.js.map +1 -0
  30. package/dist/{dist-B4K5JXTS.js → dist-UFXXFP3R.js} +3 -1
  31. package/dist/dist-UFXXFP3R.js.map +1 -0
  32. package/dist/{dist-IMIDQ6CJ.js → dist-UKXOY2NR.js} +3 -1
  33. package/dist/dist-UKXOY2NR.js.map +1 -0
  34. package/dist/index.js +7 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/project-worker.js +1 -1
  37. package/package.json +4 -4
  38. package/dist/chunk-WKE2IMP5.js.map +0 -1
  39. package/dist/dist-22OZW7MU.js.map +0 -1
  40. package/dist/dist-ATXASBBA.js.map +0 -1
  41. package/dist/dist-B4K5JXTS.js.map +0 -1
  42. package/dist/dist-EUMN2OAH.js.map +0 -1
  43. package/dist/dist-IMIDQ6CJ.js.map +0 -1
  44. package/dist/dist-KRJZAPPL.js.map +0 -1
  45. package/dist/dist-L3SNHIRB.js.map +0 -1
  46. package/dist/dist-M5TIXC2F.js.map +0 -1
  47. package/dist/dist-NSZJMYCW.js.map +0 -1
  48. package/dist/dist-YK2XJNH7.js.map +0 -1
  49. package/dist/dist-YMRASK5I.js.map +0 -1
  50. package/dist/dist-ZGCIWJJM.js.map +0 -1
package/README.md CHANGED
@@ -37,7 +37,7 @@ All services listen on IPv4 loopback (`127.0.0.1`) by default. No config file ne
37
37
 
38
38
  Health and life science services use a fixed range starting at `http://localhost:4100`. Each health service keeps its port no matter which other services run or how many upstream services exist.
39
39
 
40
- - **FHIR R4** on `http://localhost:4100` (create, read, update, JSON Patch, delete, versioning, `_history`, search, batch and transaction Bundles, and a CapabilityStatement at `/metadata`, `Patient/$everything`; starts with 5 generated synthetic patients; SMART App Launch with patient and practitioner pickers, an EHR launch simulator, PKCE, and scope and patient enforcement for presented tokens)
40
+ - **FHIR R4** on `http://localhost:4100` (create, read, update, JSON Patch, delete, versioning, `_history`, search, batch and transaction Bundles, and a CapabilityStatement at `/metadata`, `Patient/$everything`, Bulk Data `$export` with NDJSON output; starts with 5 generated synthetic patients; SMART App Launch with patient and practitioner pickers, an EHR launch simulator, PKCE, SMART Backend Services with `private_key_jwt`, and scope and patient enforcement for presented tokens; terminology fixtures with `CodeSystem/$lookup` and `$validate-code`; browse it at `/_inspector`)
41
41
 
42
42
  Stripe webhooks configured with a secret include a `Stripe-Signature` header signed over the timestamp and raw request body.
43
43
 
package/dist/api.js CHANGED
@@ -1158,6 +1158,8 @@ body{
1158
1158
  .inspector-table tbody tr{transition:background .1s;}
1159
1159
  .inspector-table tbody tr:hover{background:#0a3300;}
1160
1160
  .inspector-empty{color:#1a8c00;text-align:center;padding:20px 0;font-size:.8125rem;}
1161
+ .inspector-section a{color:#33ff00;text-decoration:underline;text-decoration-color:#1a8c00;text-underline-offset:2px;}
1162
+ .inspector-section a:hover{text-decoration-color:#33ff00;}
1161
1163
 
1162
1164
  .checkout-layout{
1163
1165
  display:flex;min-height:calc(100vh - 42px);
@@ -1945,9 +1947,9 @@ var HEALTH_SERVICE_NAMES = HEALTH_SERVICE_NAME_LIST;
1945
1947
  var HEALTH_SERVICE_REGISTRY = {
1946
1948
  fhir: {
1947
1949
  label: "FHIR R4 server emulator",
1948
- endpoints: "create, read, vread, update (including create on update), JSON Patch, logical delete, _history, search with includes and chaining, batch and transaction Bundles, CapabilityStatement at /metadata, Patient/$everything, SMART App Launch, ETag and If-Match, generated synthetic patients",
1950
+ endpoints: "create, read, vread, update (including create on update), JSON Patch, logical delete, _history, search with includes and chaining, batch and transaction Bundles, CapabilityStatement at /metadata, Patient/$everything, Bulk Data $export, SMART App Launch and Backend Services, ETag and If-Match, generated synthetic patients, terminology $lookup and $validate-code, inspector at /_inspector",
1949
1951
  async load() {
1950
- const mod = await import("./dist-NSZJMYCW.js");
1952
+ const mod = await import("./dist-EPYBRSJC.js");
1951
1953
  return { plugin: mod.fhirPlugin, seedFromConfig: mod.seedFromConfig };
1952
1954
  },
1953
1955
  defaultFallback() {
@@ -1999,7 +2001,7 @@ var SERVICE_REGISTRY = {
1999
2001
  label: "Vercel REST API emulator",
2000
2002
  endpoints: "projects, deployments, domains, env vars, users, teams, file uploads, protection bypass, blob storage",
2001
2003
  async load() {
2002
- const mod = await import("./dist-YK2XJNH7.js");
2004
+ const mod = await import("./dist-4CPLP2NQ.js");
2003
2005
  return { plugin: mod.vercelPlugin, seedFromConfig: mod.seedFromConfig };
2004
2006
  },
2005
2007
  defaultFallback(cfg) {
@@ -2026,7 +2028,7 @@ var SERVICE_REGISTRY = {
2026
2028
  label: "GitHub REST API emulator",
2027
2029
  endpoints: "users, repos, issues, PRs, comments, reviews, labels, milestones, branches, git data, orgs, teams, releases, webhooks, search, actions, checks, rate limit",
2028
2030
  async load() {
2029
- const mod = await import("./dist-M5TIXC2F.js");
2031
+ const mod = await import("./dist-RWIGUWMG.js");
2030
2032
  return {
2031
2033
  plugin: mod.githubPlugin,
2032
2034
  seedFromConfig: mod.seedFromConfig,
@@ -2090,7 +2092,7 @@ var SERVICE_REGISTRY = {
2090
2092
  label: "Google OAuth 2.0 / OpenID Connect + Gmail, Calendar, and Drive emulator",
2091
2093
  endpoints: "OAuth authorize, token exchange, userinfo, RS256 OIDC discovery and JWKS, token revocation, Gmail messages/drafts/threads/labels/history/settings, Calendar discovery/lists/events/freebusy, Drive files/uploads",
2092
2094
  async load() {
2093
- const mod = await import("./dist-575EVZLI.js");
2095
+ const mod = await import("./dist-IJ7LRDHX.js");
2094
2096
  return { plugin: mod.googlePlugin, seedFromConfig: mod.seedFromConfig };
2095
2097
  },
2096
2098
  defaultFallback(cfg) {
@@ -2172,7 +2174,7 @@ var SERVICE_REGISTRY = {
2172
2174
  label: "Slack API emulator",
2173
2175
  endpoints: "auth, chat, conversations, users, profiles, presence, files, pins, bookmarks, views, reactions, team, OAuth, incoming webhooks, inspector",
2174
2176
  async load() {
2175
- const mod = await import("./dist-IMIDQ6CJ.js");
2177
+ const mod = await import("./dist-UKXOY2NR.js");
2176
2178
  return { plugin: mod.slackPlugin, seedFromConfig: mod.seedFromConfig };
2177
2179
  },
2178
2180
  defaultFallback() {
@@ -2253,7 +2255,7 @@ var SERVICE_REGISTRY = {
2253
2255
  label: "Apple Sign In / OAuth emulator",
2254
2256
  endpoints: "OAuth authorize, token exchange, JWKS",
2255
2257
  async load() {
2256
- const mod = await import("./dist-L3SNHIRB.js");
2258
+ const mod = await import("./dist-6TPEFTAK.js");
2257
2259
  return { plugin: mod.applePlugin, seedFromConfig: mod.seedFromConfig };
2258
2260
  },
2259
2261
  defaultFallback(cfg) {
@@ -2278,7 +2280,7 @@ var SERVICE_REGISTRY = {
2278
2280
  label: "Microsoft Entra ID OAuth 2.0 / OpenID Connect emulator",
2279
2281
  endpoints: "OAuth authorize, token exchange, userinfo, OIDC discovery, Graph /me, logout, token revocation",
2280
2282
  async load() {
2281
- const mod = await import("./dist-ZGCIWJJM.js");
2283
+ const mod = await import("./dist-TOCHFEDO.js");
2282
2284
  return { plugin: mod.microsoftPlugin, seedFromConfig: mod.seedFromConfig };
2283
2285
  },
2284
2286
  defaultFallback(cfg) {
@@ -2303,7 +2305,7 @@ var SERVICE_REGISTRY = {
2303
2305
  label: "Okta OAuth 2.0 / OpenID Connect + management API emulator",
2304
2306
  endpoints: "OIDC discovery, JWKS, OAuth authorize/token/userinfo/introspect/revoke/logout, users, groups, apps, authorization servers",
2305
2307
  async load() {
2306
- const mod = await import("./dist-EUMN2OAH.js");
2308
+ const mod = await import("./dist-DVBHDPLP.js");
2307
2309
  return { plugin: mod.oktaPlugin, seedFromConfig: mod.seedFromConfig };
2308
2310
  },
2309
2311
  defaultFallback(cfg) {
@@ -2331,7 +2333,7 @@ var SERVICE_REGISTRY = {
2331
2333
  label: "AWS cloud service emulator",
2332
2334
  endpoints: "S3 (buckets, objects), SQS (queues, messages), Cognito (User Pools, OAuth, JWTs, Identity Pools), IAM (users, roles, access keys), STS (assume role, caller identity)",
2333
2335
  async load() {
2334
- const mod = await import("./dist-22OZW7MU.js");
2336
+ const mod = await import("./dist-AZA2TRAN.js");
2335
2337
  return { plugin: mod.awsPlugin, seedFromConfig: mod.seedFromConfig };
2336
2338
  },
2337
2339
  defaultFallback() {
@@ -2353,7 +2355,7 @@ var SERVICE_REGISTRY = {
2353
2355
  label: "Resend email API emulator",
2354
2356
  endpoints: "emails with idempotency, recipient restrictions, send attempts, domains, contacts, API keys, inbox UI",
2355
2357
  async load() {
2356
- const mod = await import("./dist-B4K5JXTS.js");
2358
+ const mod = await import("./dist-UFXXFP3R.js");
2357
2359
  return { plugin: mod.resendPlugin, seedFromConfig: mod.seedFromConfig };
2358
2360
  },
2359
2361
  defaultFallback() {
@@ -2370,7 +2372,7 @@ var SERVICE_REGISTRY = {
2370
2372
  label: "Stripe payments emulator",
2371
2373
  endpoints: "customers, payment methods, customer sessions, payment intents, charges, products, prices, checkout sessions, webhooks",
2372
2374
  async load() {
2373
- const mod = await import("./dist-KRJZAPPL.js");
2375
+ const mod = await import("./dist-DWUKLYZG.js");
2374
2376
  return { plugin: mod.stripePlugin, seedFromConfig: mod.seedFromConfig };
2375
2377
  },
2376
2378
  defaultFallback() {
@@ -2407,7 +2409,7 @@ var SERVICE_REGISTRY = {
2407
2409
  label: "Clerk authentication and user management emulator",
2408
2410
  endpoints: "OIDC discovery, JWKS, OAuth authorize/token/userinfo, users, email addresses, organizations, memberships, invitations, sessions",
2409
2411
  async load() {
2410
- const mod = await import("./dist-YMRASK5I.js");
2412
+ const mod = await import("./dist-QUEHZ2IC.js");
2411
2413
  return { plugin: mod.clerkPlugin, seedFromConfig: mod.seedFromConfig };
2412
2414
  },
2413
2415
  defaultFallback(cfg) {
@@ -2446,7 +2448,7 @@ var SERVICE_REGISTRY = {
2446
2448
  label: "Linear GraphQL API emulator",
2447
2449
  endpoints: "GraphQL, OAuth, issues, teams, users, workflow states, comments, labels, projects, cycles, webhooks, agents, inspector",
2448
2450
  async load() {
2449
- const mod = await import("./dist-ATXASBBA.js");
2451
+ const mod = await import("./dist-6OM56NLC.js");
2450
2452
  return { plugin: mod.linearPlugin, seedFromConfig: mod.seedFromConfig };
2451
2453
  },
2452
2454
  defaultFallback(cfg) {
@@ -2511,7 +2513,7 @@ var SERVICE_REGISTRY = {
2511
2513
  label: "Twilio API emulator",
2512
2514
  endpoints: "accounts, API keys, phone numbers, Programmable Messaging, Messaging Services, Verify, Voice, webhooks, simulator, inspector",
2513
2515
  async load() {
2514
- const mod = await import("./dist-KAYD3L2O.js");
2516
+ const mod = await import("./dist-KQGIGONJ.js");
2515
2517
  return { plugin: mod.twilioPlugin, seedFromConfig: mod.seedFromConfig };
2516
2518
  },
2517
2519
  defaultFallback(cfg) {