emuhealth 0.4.0 → 0.6.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.
- package/README.md +9 -1
- package/THIRD_PARTY_NOTICES.md +15 -6
- package/dist/api.d.ts +1 -1
- package/dist/api.js +181 -16
- package/dist/api.js.map +1 -1
- package/dist/{chunk-WKE2IMP5.js → chunk-5PAJ6LLN.js} +182 -17
- package/dist/chunk-5PAJ6LLN.js.map +1 -0
- package/dist/{dist-YK2XJNH7.js → dist-4CPLP2NQ.js} +3 -1
- package/dist/dist-4CPLP2NQ.js.map +1 -0
- package/dist/dist-65JH5Z2J.js +5424 -0
- package/dist/dist-65JH5Z2J.js.map +1 -0
- package/dist/{dist-ATXASBBA.js → dist-6OM56NLC.js} +3 -1
- package/dist/dist-6OM56NLC.js.map +1 -0
- package/dist/{dist-L3SNHIRB.js → dist-6TPEFTAK.js} +3 -1
- package/dist/dist-6TPEFTAK.js.map +1 -0
- package/dist/{dist-22OZW7MU.js → dist-AZA2TRAN.js} +3 -1
- package/dist/dist-AZA2TRAN.js.map +1 -0
- package/dist/dist-CLJBPXNS.js +961 -0
- package/dist/dist-CLJBPXNS.js.map +1 -0
- package/dist/{dist-EUMN2OAH.js → dist-DVBHDPLP.js} +3 -1
- package/dist/dist-DVBHDPLP.js.map +1 -0
- package/dist/{dist-KRJZAPPL.js → dist-DWUKLYZG.js} +3 -1
- package/dist/dist-DWUKLYZG.js.map +1 -0
- package/dist/dist-HUDK42DK.js +555 -0
- package/dist/dist-HUDK42DK.js.map +1 -0
- package/dist/{dist-575EVZLI.js → dist-IJ7LRDHX.js} +3 -1
- package/dist/{dist-575EVZLI.js.map → dist-IJ7LRDHX.js.map} +1 -1
- package/dist/dist-JAQBQLBJ.js +1068 -0
- package/dist/dist-JAQBQLBJ.js.map +1 -0
- package/dist/{dist-NSZJMYCW.js → dist-JJIQYFJ4.js} +1938 -448
- package/dist/dist-JJIQYFJ4.js.map +1 -0
- package/dist/{dist-KAYD3L2O.js → dist-KQGIGONJ.js} +3 -1
- package/dist/{dist-KAYD3L2O.js.map → dist-KQGIGONJ.js.map} +1 -1
- package/dist/dist-MD4P4BXL.js +1023 -0
- package/dist/dist-MD4P4BXL.js.map +1 -0
- package/dist/dist-MRCWT2JC.js +799 -0
- package/dist/dist-MRCWT2JC.js.map +1 -0
- package/dist/{dist-YMRASK5I.js → dist-QUEHZ2IC.js} +3 -1
- package/dist/dist-QUEHZ2IC.js.map +1 -0
- package/dist/{dist-M5TIXC2F.js → dist-RWIGUWMG.js} +3 -1
- package/dist/dist-RWIGUWMG.js.map +1 -0
- package/dist/{dist-ZGCIWJJM.js → dist-TOCHFEDO.js} +3 -1
- package/dist/dist-TOCHFEDO.js.map +1 -0
- package/dist/{dist-B4K5JXTS.js → dist-UFXXFP3R.js} +3 -1
- package/dist/dist-UFXXFP3R.js.map +1 -0
- package/dist/{dist-IMIDQ6CJ.js → dist-UKXOY2NR.js} +3 -1
- package/dist/dist-UKXOY2NR.js.map +1 -0
- package/dist/dist-WDXPM6L6.js +664 -0
- package/dist/dist-WDXPM6L6.js.map +1 -0
- package/dist/dist-WRDU25DF.js +985 -0
- package/dist/dist-WRDU25DF.js.map +1 -0
- package/dist/index.js +65 -3
- package/dist/index.js.map +1 -1
- package/dist/project-worker.js +1 -1
- package/package.json +14 -6
- package/dist/chunk-WKE2IMP5.js.map +0 -1
- package/dist/dist-22OZW7MU.js.map +0 -1
- package/dist/dist-ATXASBBA.js.map +0 -1
- package/dist/dist-B4K5JXTS.js.map +0 -1
- package/dist/dist-EUMN2OAH.js.map +0 -1
- package/dist/dist-IMIDQ6CJ.js.map +0 -1
- package/dist/dist-KRJZAPPL.js.map +0 -1
- package/dist/dist-L3SNHIRB.js.map +0 -1
- package/dist/dist-M5TIXC2F.js.map +0 -1
- package/dist/dist-NSZJMYCW.js.map +0 -1
- package/dist/dist-YK2XJNH7.js.map +0 -1
- package/dist/dist-YMRASK5I.js.map +0 -1
- package/dist/dist-ZGCIWJJM.js.map +0 -1
package/README.md
CHANGED
|
@@ -37,7 +37,15 @@ 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
|
|
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
|
+
- **Epic** on `http://localhost:4101` (the FHIR R4 server under Epic's `/api/FHIR/R4` base, OAuth 2.0 at `/oauth2/authorize` and `/oauth2/token` with SMART App Launch and Backend Services, `__epic.dstu2.patient` in token responses, Epic's informational OperationOutcome on empty searches, and Schedules and Slots with `Appointment/$find` and `Appointment/$book`)
|
|
42
|
+
- **openFDA** on `http://localhost:4102` (`/drug/label.json`, `/drug/event.json`, and `/drug/enforcement.json`, `/device/enforcement.json`, `/food/enforcement.json` recalls with the openFDA query language: `search` with fields, phrases, `.exact`, ranges, `AND`/`OR`/`NOT`, plus `sort`, `count`, `limit`, and `skip`; synthetic labels, adverse event reports, and recalls; browse them at `/_inspector`)
|
|
43
|
+
- **RxNav** on `http://localhost:4103` (the RxNorm REST API under `/REST`: `rxcui`, `drugs`, `properties`, `related`, `allrelated`, `ndcs`, `approximateTerm`, `spellingsuggestions`, and `displaynames`, with or without `.json`, over a verified RxNorm subset plus concepts you add; browse it at `/_inspector`)
|
|
44
|
+
- **ClinicalTrials.gov** on `http://localhost:4104` (API v2 under `/api/v2`: `/studies` with `query.*`, `filter.overallStatus`, `filter.ids`, `filter.advanced` `AREA[]` clauses, `sort`, `fields`, `pageSize`, `pageToken`, and `countTotal`, plus `/studies/{nctId}`, `/version`, and `/stats/size`; synthetic studies with `NCT99` ids; browse them at `/_inspector`)
|
|
45
|
+
- **NCBI E-utilities** on `http://localhost:4105` (`/entrez/eutils/einfo`, `esearch` with field tags, `AND`/`OR`/`NOT`, date ranges, paging, and `usehistory`, `esummary`, `efetch` with PubMed XML and abstract text, and `elink` between Gene and PubMed, in JSON or XML; synthetic PubMed articles and a small set of real human genes; browse them at `/_inspector`)
|
|
46
|
+
- **NPPES NPI Registry** on `http://localhost:4106` (`/api/?version=2.1` with `number`, `enumeration_type`, names and organization names with `*` wildcards, `taxonomy_description`, `city`, `state`, `postal_code`, `limit`, and `skip`, and the registry's `Errors` responses; synthetic providers whose NPIs have valid check digits but start with 0, so they never match a real provider; browse them at `/_inspector`)
|
|
47
|
+
- **Benchling** on `http://localhost:4107` (API v2 under `/api/v2` with an API key as the Basic auth username or a client credentials token: DNA and AA sequences with filters, `nextToken` paging, create, update, archive, and registration through `registries/{id}:register-entities` and `tasks`, notebook `entries`, `assay-results` with schemas, `events`, and Svix-signed webhooks; a synthetic tenant; browse it at `/_inspector`)
|
|
48
|
+
- **REDCap** on `http://localhost:4108` (`POST /api/` with a token and `content`: `version`, `project`, `metadata`, `instrument`, `exportFieldNames`, and `record` export with `records`, `fields`, `forms`, `filterLogic`, labels, and flat or EAV output, import with validation against the data dictionary, and delete, in JSON, CSV, or XML; a synthetic project; browse it at `/_inspector`)
|
|
41
49
|
|
|
42
50
|
Stripe webhooks configured with a secret include a `Stripe-Signature` header signed over the timestamp and raw request body.
|
|
43
51
|
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -42,8 +42,9 @@ SOFTWARE.
|
|
|
42
42
|
|
|
43
43
|
The emuhealth synthetic data generator in
|
|
44
44
|
`packages/@emuhealth/fhir-core/src/generator.ts` uses a small number of codes from
|
|
45
|
-
the following code systems to make generated records realistic
|
|
46
|
-
|
|
45
|
+
the following code systems to make generated records realistic, and the RxNav
|
|
46
|
+
emulator in `packages/@emuhealth/rxnav` serves the same small RxNorm subset. No
|
|
47
|
+
full code system is redistributed.
|
|
47
48
|
|
|
48
49
|
### LOINC
|
|
49
50
|
|
|
@@ -60,8 +61,16 @@ Medicine (NLM), National Institutes of Health, Department of Health and Human
|
|
|
60
61
|
Services; NLM is not responsible for the product and does not endorse or
|
|
61
62
|
recommend this or any other product.
|
|
62
63
|
|
|
63
|
-
### ICD-10-CM and
|
|
64
|
+
### ICD-10-CM, ICD-10-PCS, CVX, and CDC Race and Ethnicity
|
|
64
65
|
|
|
65
|
-
ICD-10-CM codes are published by the National Center for Health Statistics
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
ICD-10-CM codes are published by the National Center for Health Statistics,
|
|
67
|
+
ICD-10-PCS codes by the Centers for Medicare & Medicaid Services, and CVX codes
|
|
68
|
+
and the Race and Ethnicity code set by the Centers for Disease Control and
|
|
69
|
+
Prevention. All are U.S. government works in the public domain.
|
|
70
|
+
|
|
71
|
+
### NCBI Gene
|
|
72
|
+
|
|
73
|
+
The E-utilities emulator in `packages/@emuhealth/ncbi` includes the ids, symbols,
|
|
74
|
+
names, and chromosomal locations of ten human genes as published by the National
|
|
75
|
+
Center for Biotechnology Information (NCBI), a U.S. government work in the public
|
|
76
|
+
domain. The gene summaries were written for emuhealth.
|
package/dist/api.d.ts
CHANGED
|
@@ -249,7 +249,7 @@ declare function defineConfig<Definitions extends Record<string, EmulatorDefinit
|
|
|
249
249
|
tokens?: EmulateConfig["tokens"];
|
|
250
250
|
}): typeof config;
|
|
251
251
|
|
|
252
|
-
declare const HEALTH_SERVICE_NAME_LIST: readonly ["fhir"];
|
|
252
|
+
declare const HEALTH_SERVICE_NAME_LIST: readonly ["fhir", "epic", "openfda", "rxnav", "clinicaltrials", "ncbi", "nppes", "benchling", "redcap"];
|
|
253
253
|
type HealthServiceName = (typeof HEALTH_SERVICE_NAME_LIST)[number];
|
|
254
254
|
|
|
255
255
|
declare const SERVICE_NAME_LIST: readonly ["vercel", "github", "google", "slack", "apple", "microsoft", "okta", "aws", "resend", "stripe", "mongoatlas", "clerk", "linear", "twilio"];
|
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);
|
|
@@ -1940,14 +1942,24 @@ function defineConfig(config) {
|
|
|
1940
1942
|
}
|
|
1941
1943
|
|
|
1942
1944
|
// src/registry-health.ts
|
|
1943
|
-
var HEALTH_SERVICE_NAME_LIST = [
|
|
1945
|
+
var HEALTH_SERVICE_NAME_LIST = [
|
|
1946
|
+
"fhir",
|
|
1947
|
+
"epic",
|
|
1948
|
+
"openfda",
|
|
1949
|
+
"rxnav",
|
|
1950
|
+
"clinicaltrials",
|
|
1951
|
+
"ncbi",
|
|
1952
|
+
"nppes",
|
|
1953
|
+
"benchling",
|
|
1954
|
+
"redcap"
|
|
1955
|
+
];
|
|
1944
1956
|
var HEALTH_SERVICE_NAMES = HEALTH_SERVICE_NAME_LIST;
|
|
1945
1957
|
var HEALTH_SERVICE_REGISTRY = {
|
|
1946
1958
|
fhir: {
|
|
1947
1959
|
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",
|
|
1960
|
+
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
1961
|
async load() {
|
|
1950
|
-
const mod = await import("./dist-
|
|
1962
|
+
const mod = await import("./dist-JJIQYFJ4.js");
|
|
1951
1963
|
return { plugin: mod.fhirPlugin, seedFromConfig: mod.seedFromConfig };
|
|
1952
1964
|
},
|
|
1953
1965
|
defaultFallback() {
|
|
@@ -1967,6 +1979,159 @@ var HEALTH_SERVICE_REGISTRY = {
|
|
|
1967
1979
|
]
|
|
1968
1980
|
}
|
|
1969
1981
|
}
|
|
1982
|
+
},
|
|
1983
|
+
epic: {
|
|
1984
|
+
label: "Epic FHIR R4 emulator",
|
|
1985
|
+
endpoints: "Epic URL shape (/api/FHIR/R4) over the full FHIR server, OAuth 2.0 at /oauth2/authorize and /oauth2/token with SMART App Launch and Backend Services, __epic.dstu2.patient in token responses, informational OperationOutcome (4101) on empty searches, Schedules and Slots with Appointment/$find and Appointment/$book, generated synthetic patients, inspector at /_inspector",
|
|
1986
|
+
async load() {
|
|
1987
|
+
const mod = await import("./dist-65JH5Z2J.js");
|
|
1988
|
+
return { plugin: mod.epicPlugin, seedFromConfig: mod.seedFromConfig };
|
|
1989
|
+
},
|
|
1990
|
+
defaultFallback() {
|
|
1991
|
+
return { login: "epic-user", id: 1, scopes: [] };
|
|
1992
|
+
},
|
|
1993
|
+
initConfig: {
|
|
1994
|
+
epic: {
|
|
1995
|
+
generate: { patients: 5, seed: 1 },
|
|
1996
|
+
scheduling: { days: 10 },
|
|
1997
|
+
smart: { clients: [{ client_id: "my-epic-app", redirect_uris: ["http://localhost:3000/callback"] }] }
|
|
1998
|
+
}
|
|
1999
|
+
}
|
|
2000
|
+
},
|
|
2001
|
+
openfda: {
|
|
2002
|
+
label: "openFDA API emulator",
|
|
2003
|
+
endpoints: "drug labels (/drug/label.json), adverse event reports (/drug/event.json), and recalls (/drug/enforcement.json, /device/enforcement.json, /food/enforcement.json) with the openFDA query language (search, sort, count, limit, skip), synthetic datasets, inspector at /_inspector",
|
|
2004
|
+
async load() {
|
|
2005
|
+
const mod = await import("./dist-WRDU25DF.js");
|
|
2006
|
+
return { plugin: mod.openfdaPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2007
|
+
},
|
|
2008
|
+
defaultFallback() {
|
|
2009
|
+
return { login: "openfda-user", id: 1, scopes: [] };
|
|
2010
|
+
},
|
|
2011
|
+
initConfig: {
|
|
2012
|
+
openfda: {
|
|
2013
|
+
generate: { seed: 1, events: 300 }
|
|
2014
|
+
}
|
|
2015
|
+
}
|
|
2016
|
+
},
|
|
2017
|
+
rxnav: {
|
|
2018
|
+
label: "NLM RxNav (RxNorm API) emulator",
|
|
2019
|
+
endpoints: "RxNorm REST API under /REST: rxcui by name, drugs, properties, related and allrelated concepts, ndcs, approximateTerm, spellingsuggestions, displaynames, with or without .json; built-in RxNorm subset plus configured concepts; inspector at /_inspector",
|
|
2020
|
+
async load() {
|
|
2021
|
+
const mod = await import("./dist-HUDK42DK.js");
|
|
2022
|
+
return { plugin: mod.rxnavPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2023
|
+
},
|
|
2024
|
+
defaultFallback() {
|
|
2025
|
+
return { login: "rxnav-user", id: 1, scopes: [] };
|
|
2026
|
+
},
|
|
2027
|
+
initConfig: {
|
|
2028
|
+
rxnav: {
|
|
2029
|
+
concepts: [
|
|
2030
|
+
{
|
|
2031
|
+
rxcui: "900001",
|
|
2032
|
+
name: "examplemab",
|
|
2033
|
+
tty: "IN"
|
|
2034
|
+
}
|
|
2035
|
+
]
|
|
2036
|
+
}
|
|
2037
|
+
}
|
|
2038
|
+
},
|
|
2039
|
+
clinicaltrials: {
|
|
2040
|
+
label: "ClinicalTrials.gov API v2 emulator",
|
|
2041
|
+
endpoints: "ClinicalTrials.gov API v2 under /api/v2: studies search (query.cond, query.term, query.intr, query.titles, query.locn, query.spons, query.id, filter.overallStatus, filter.ids, filter.advanced AREA[], sort, fields, pageSize, pageToken, countTotal), single studies, version, stats/size; synthetic studies in the NCT99 range; inspector at /_inspector",
|
|
2042
|
+
async load() {
|
|
2043
|
+
const mod = await import("./dist-MRCWT2JC.js");
|
|
2044
|
+
return { plugin: mod.clinicaltrialsPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2045
|
+
},
|
|
2046
|
+
defaultFallback() {
|
|
2047
|
+
return { login: "clinicaltrials-user", id: 1, scopes: [] };
|
|
2048
|
+
},
|
|
2049
|
+
initConfig: {
|
|
2050
|
+
clinicaltrials: {
|
|
2051
|
+
generate: {
|
|
2052
|
+
studies: 60,
|
|
2053
|
+
seed: 1
|
|
2054
|
+
}
|
|
2055
|
+
}
|
|
2056
|
+
}
|
|
2057
|
+
},
|
|
2058
|
+
ncbi: {
|
|
2059
|
+
label: "NCBI E-utilities emulator (PubMed and Gene)",
|
|
2060
|
+
endpoints: "E-utilities under /entrez/eutils: einfo, esearch (field tags, AND/OR/NOT, [dp] ranges, retstart/retmax, usehistory WebEnv), esummary, efetch (PubMed XML and abstract text), elink (gene and pubmed), GET or POST, JSON or XML; synthetic PubMed articles and real human genes; inspector at /_inspector",
|
|
2061
|
+
async load() {
|
|
2062
|
+
const mod = await import("./dist-MD4P4BXL.js");
|
|
2063
|
+
return { plugin: mod.ncbiPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2064
|
+
},
|
|
2065
|
+
defaultFallback() {
|
|
2066
|
+
return { login: "ncbi-user", id: 1, scopes: [] };
|
|
2067
|
+
},
|
|
2068
|
+
initConfig: {
|
|
2069
|
+
ncbi: {
|
|
2070
|
+
generate: {
|
|
2071
|
+
articles: 80,
|
|
2072
|
+
seed: 1
|
|
2073
|
+
}
|
|
2074
|
+
}
|
|
2075
|
+
}
|
|
2076
|
+
},
|
|
2077
|
+
nppes: {
|
|
2078
|
+
label: "NPPES NPI Registry API emulator",
|
|
2079
|
+
endpoints: "NPI Registry API at /api/?version=2.1: number, enumeration_type, first_name, last_name, organization_name (trailing * wildcards), taxonomy_description, address_purpose, city, state, postal_code, country_code, limit (max 200), skip; the registry's Errors shapes; synthetic providers with NPIs that start with 0; inspector at /_inspector",
|
|
2080
|
+
async load() {
|
|
2081
|
+
const mod = await import("./dist-WDXPM6L6.js");
|
|
2082
|
+
return { plugin: mod.nppesPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2083
|
+
},
|
|
2084
|
+
defaultFallback() {
|
|
2085
|
+
return { login: "nppes-user", id: 1, scopes: [] };
|
|
2086
|
+
},
|
|
2087
|
+
initConfig: {
|
|
2088
|
+
nppes: {
|
|
2089
|
+
generate: {
|
|
2090
|
+
individuals: 40,
|
|
2091
|
+
organizations: 15,
|
|
2092
|
+
seed: 1
|
|
2093
|
+
}
|
|
2094
|
+
}
|
|
2095
|
+
}
|
|
2096
|
+
},
|
|
2097
|
+
benchling: {
|
|
2098
|
+
label: "Benchling API v2 emulator",
|
|
2099
|
+
endpoints: "Benchling API v2 under /api/v2 with API key (Basic) or client credentials (Bearer) auth: dna-sequences and aa-sequences (list, filter, page, create, update, archive), entries, registries and register-entities with tasks, assay-results and schemas, projects, folders, events, Svix-signed webhooks; synthetic tenant; inspector at /_inspector",
|
|
2100
|
+
async load() {
|
|
2101
|
+
const mod = await import("./dist-JAQBQLBJ.js");
|
|
2102
|
+
return { plugin: mod.benchlingPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2103
|
+
},
|
|
2104
|
+
defaultFallback() {
|
|
2105
|
+
return { login: "benchling-user", id: 1, scopes: [] };
|
|
2106
|
+
},
|
|
2107
|
+
initConfig: {
|
|
2108
|
+
benchling: {
|
|
2109
|
+
generate: {
|
|
2110
|
+
seed: 1,
|
|
2111
|
+
dnaSequences: 10
|
|
2112
|
+
},
|
|
2113
|
+
webhooks: []
|
|
2114
|
+
}
|
|
2115
|
+
}
|
|
2116
|
+
},
|
|
2117
|
+
redcap: {
|
|
2118
|
+
label: "REDCap API emulator",
|
|
2119
|
+
endpoints: "REDCap API at POST /api/ with token and content: version, project, metadata, instrument, exportFieldNames, record export (records, fields, forms, filterLogic, rawOrLabel, flat or eav), record import (json or csv, overwriteBehavior, forceAutoNumber, returnContent), record delete, generateNextRecordName; json, csv, or xml; synthetic classic project; inspector at /_inspector",
|
|
2120
|
+
async load() {
|
|
2121
|
+
const mod = await import("./dist-CLJBPXNS.js");
|
|
2122
|
+
return { plugin: mod.redcapPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2123
|
+
},
|
|
2124
|
+
defaultFallback() {
|
|
2125
|
+
return { login: "redcap-user", id: 1, scopes: [] };
|
|
2126
|
+
},
|
|
2127
|
+
initConfig: {
|
|
2128
|
+
redcap: {
|
|
2129
|
+
generate: {
|
|
2130
|
+
records: 20,
|
|
2131
|
+
seed: 1
|
|
2132
|
+
}
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
1970
2135
|
}
|
|
1971
2136
|
};
|
|
1972
2137
|
var HEALTH_PORT_OFFSET = 100;
|
|
@@ -1999,7 +2164,7 @@ var SERVICE_REGISTRY = {
|
|
|
1999
2164
|
label: "Vercel REST API emulator",
|
|
2000
2165
|
endpoints: "projects, deployments, domains, env vars, users, teams, file uploads, protection bypass, blob storage",
|
|
2001
2166
|
async load() {
|
|
2002
|
-
const mod = await import("./dist-
|
|
2167
|
+
const mod = await import("./dist-4CPLP2NQ.js");
|
|
2003
2168
|
return { plugin: mod.vercelPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2004
2169
|
},
|
|
2005
2170
|
defaultFallback(cfg) {
|
|
@@ -2026,7 +2191,7 @@ var SERVICE_REGISTRY = {
|
|
|
2026
2191
|
label: "GitHub REST API emulator",
|
|
2027
2192
|
endpoints: "users, repos, issues, PRs, comments, reviews, labels, milestones, branches, git data, orgs, teams, releases, webhooks, search, actions, checks, rate limit",
|
|
2028
2193
|
async load() {
|
|
2029
|
-
const mod = await import("./dist-
|
|
2194
|
+
const mod = await import("./dist-RWIGUWMG.js");
|
|
2030
2195
|
return {
|
|
2031
2196
|
plugin: mod.githubPlugin,
|
|
2032
2197
|
seedFromConfig: mod.seedFromConfig,
|
|
@@ -2090,7 +2255,7 @@ var SERVICE_REGISTRY = {
|
|
|
2090
2255
|
label: "Google OAuth 2.0 / OpenID Connect + Gmail, Calendar, and Drive emulator",
|
|
2091
2256
|
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
2257
|
async load() {
|
|
2093
|
-
const mod = await import("./dist-
|
|
2258
|
+
const mod = await import("./dist-IJ7LRDHX.js");
|
|
2094
2259
|
return { plugin: mod.googlePlugin, seedFromConfig: mod.seedFromConfig };
|
|
2095
2260
|
},
|
|
2096
2261
|
defaultFallback(cfg) {
|
|
@@ -2172,7 +2337,7 @@ var SERVICE_REGISTRY = {
|
|
|
2172
2337
|
label: "Slack API emulator",
|
|
2173
2338
|
endpoints: "auth, chat, conversations, users, profiles, presence, files, pins, bookmarks, views, reactions, team, OAuth, incoming webhooks, inspector",
|
|
2174
2339
|
async load() {
|
|
2175
|
-
const mod = await import("./dist-
|
|
2340
|
+
const mod = await import("./dist-UKXOY2NR.js");
|
|
2176
2341
|
return { plugin: mod.slackPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2177
2342
|
},
|
|
2178
2343
|
defaultFallback() {
|
|
@@ -2253,7 +2418,7 @@ var SERVICE_REGISTRY = {
|
|
|
2253
2418
|
label: "Apple Sign In / OAuth emulator",
|
|
2254
2419
|
endpoints: "OAuth authorize, token exchange, JWKS",
|
|
2255
2420
|
async load() {
|
|
2256
|
-
const mod = await import("./dist-
|
|
2421
|
+
const mod = await import("./dist-6TPEFTAK.js");
|
|
2257
2422
|
return { plugin: mod.applePlugin, seedFromConfig: mod.seedFromConfig };
|
|
2258
2423
|
},
|
|
2259
2424
|
defaultFallback(cfg) {
|
|
@@ -2278,7 +2443,7 @@ var SERVICE_REGISTRY = {
|
|
|
2278
2443
|
label: "Microsoft Entra ID OAuth 2.0 / OpenID Connect emulator",
|
|
2279
2444
|
endpoints: "OAuth authorize, token exchange, userinfo, OIDC discovery, Graph /me, logout, token revocation",
|
|
2280
2445
|
async load() {
|
|
2281
|
-
const mod = await import("./dist-
|
|
2446
|
+
const mod = await import("./dist-TOCHFEDO.js");
|
|
2282
2447
|
return { plugin: mod.microsoftPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2283
2448
|
},
|
|
2284
2449
|
defaultFallback(cfg) {
|
|
@@ -2303,7 +2468,7 @@ var SERVICE_REGISTRY = {
|
|
|
2303
2468
|
label: "Okta OAuth 2.0 / OpenID Connect + management API emulator",
|
|
2304
2469
|
endpoints: "OIDC discovery, JWKS, OAuth authorize/token/userinfo/introspect/revoke/logout, users, groups, apps, authorization servers",
|
|
2305
2470
|
async load() {
|
|
2306
|
-
const mod = await import("./dist-
|
|
2471
|
+
const mod = await import("./dist-DVBHDPLP.js");
|
|
2307
2472
|
return { plugin: mod.oktaPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2308
2473
|
},
|
|
2309
2474
|
defaultFallback(cfg) {
|
|
@@ -2331,7 +2496,7 @@ var SERVICE_REGISTRY = {
|
|
|
2331
2496
|
label: "AWS cloud service emulator",
|
|
2332
2497
|
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
2498
|
async load() {
|
|
2334
|
-
const mod = await import("./dist-
|
|
2499
|
+
const mod = await import("./dist-AZA2TRAN.js");
|
|
2335
2500
|
return { plugin: mod.awsPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2336
2501
|
},
|
|
2337
2502
|
defaultFallback() {
|
|
@@ -2353,7 +2518,7 @@ var SERVICE_REGISTRY = {
|
|
|
2353
2518
|
label: "Resend email API emulator",
|
|
2354
2519
|
endpoints: "emails with idempotency, recipient restrictions, send attempts, domains, contacts, API keys, inbox UI",
|
|
2355
2520
|
async load() {
|
|
2356
|
-
const mod = await import("./dist-
|
|
2521
|
+
const mod = await import("./dist-UFXXFP3R.js");
|
|
2357
2522
|
return { plugin: mod.resendPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2358
2523
|
},
|
|
2359
2524
|
defaultFallback() {
|
|
@@ -2370,7 +2535,7 @@ var SERVICE_REGISTRY = {
|
|
|
2370
2535
|
label: "Stripe payments emulator",
|
|
2371
2536
|
endpoints: "customers, payment methods, customer sessions, payment intents, charges, products, prices, checkout sessions, webhooks",
|
|
2372
2537
|
async load() {
|
|
2373
|
-
const mod = await import("./dist-
|
|
2538
|
+
const mod = await import("./dist-DWUKLYZG.js");
|
|
2374
2539
|
return { plugin: mod.stripePlugin, seedFromConfig: mod.seedFromConfig };
|
|
2375
2540
|
},
|
|
2376
2541
|
defaultFallback() {
|
|
@@ -2407,7 +2572,7 @@ var SERVICE_REGISTRY = {
|
|
|
2407
2572
|
label: "Clerk authentication and user management emulator",
|
|
2408
2573
|
endpoints: "OIDC discovery, JWKS, OAuth authorize/token/userinfo, users, email addresses, organizations, memberships, invitations, sessions",
|
|
2409
2574
|
async load() {
|
|
2410
|
-
const mod = await import("./dist-
|
|
2575
|
+
const mod = await import("./dist-QUEHZ2IC.js");
|
|
2411
2576
|
return { plugin: mod.clerkPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2412
2577
|
},
|
|
2413
2578
|
defaultFallback(cfg) {
|
|
@@ -2446,7 +2611,7 @@ var SERVICE_REGISTRY = {
|
|
|
2446
2611
|
label: "Linear GraphQL API emulator",
|
|
2447
2612
|
endpoints: "GraphQL, OAuth, issues, teams, users, workflow states, comments, labels, projects, cycles, webhooks, agents, inspector",
|
|
2448
2613
|
async load() {
|
|
2449
|
-
const mod = await import("./dist-
|
|
2614
|
+
const mod = await import("./dist-6OM56NLC.js");
|
|
2450
2615
|
return { plugin: mod.linearPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2451
2616
|
},
|
|
2452
2617
|
defaultFallback(cfg) {
|
|
@@ -2511,7 +2676,7 @@ var SERVICE_REGISTRY = {
|
|
|
2511
2676
|
label: "Twilio API emulator",
|
|
2512
2677
|
endpoints: "accounts, API keys, phone numbers, Programmable Messaging, Messaging Services, Verify, Voice, webhooks, simulator, inspector",
|
|
2513
2678
|
async load() {
|
|
2514
|
-
const mod = await import("./dist-
|
|
2679
|
+
const mod = await import("./dist-KQGIGONJ.js");
|
|
2515
2680
|
return { plugin: mod.twilioPlugin, seedFromConfig: mod.seedFromConfig };
|
|
2516
2681
|
},
|
|
2517
2682
|
defaultFallback(cfg) {
|