@crvouga/mockingbird-service-junction 0.1.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 +319 -0
- package/dist/catalog.d.ts +63 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +736 -0
- package/dist/catalog.js.map +1 -0
- package/dist/coverage-corpus.d.ts +76 -0
- package/dist/coverage-corpus.d.ts.map +1 -0
- package/dist/coverage-corpus.js +166 -0
- package/dist/coverage-corpus.js.map +1 -0
- package/dist/generated/openapi.d.ts +7 -0
- package/dist/generated/openapi.d.ts.map +1 -0
- package/dist/generated/openapi.js +5 -0
- package/dist/generated/openapi.js.map +1 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +121 -0
- package/dist/index.js.map +1 -0
- package/dist/lab-accounts.d.ts +38 -0
- package/dist/lab-accounts.d.ts.map +1 -0
- package/dist/lab-accounts.js +213 -0
- package/dist/lab-accounts.js.map +1 -0
- package/dist/orders.d.ts +18 -0
- package/dist/orders.d.ts.map +1 -0
- package/dist/orders.js +1247 -0
- package/dist/orders.js.map +1 -0
- package/dist/prefetch.d.ts +43 -0
- package/dist/prefetch.d.ts.map +1 -0
- package/dist/prefetch.js +131 -0
- package/dist/prefetch.js.map +1 -0
- package/dist/reshape.d.ts +22 -0
- package/dist/reshape.d.ts.map +1 -0
- package/dist/reshape.js +190 -0
- package/dist/reshape.js.map +1 -0
- package/dist/results.d.ts +19 -0
- package/dist/results.d.ts.map +1 -0
- package/dist/results.js +221 -0
- package/dist/results.js.map +1 -0
- package/dist/scheduling.d.ts +113 -0
- package/dist/scheduling.d.ts.map +1 -0
- package/dist/scheduling.js +1508 -0
- package/dist/scheduling.js.map +1 -0
- package/dist/sealed-corpus.d.ts +28 -0
- package/dist/sealed-corpus.d.ts.map +1 -0
- package/dist/sealed-corpus.js +17 -0
- package/dist/sealed-corpus.js.map +1 -0
- package/dist/seed-from.d.ts +27 -0
- package/dist/seed-from.d.ts.map +1 -0
- package/dist/seed-from.js +523 -0
- package/dist/seed-from.js.map +1 -0
- package/dist/seeds.d.ts +9 -0
- package/dist/seeds.d.ts.map +1 -0
- package/dist/seeds.js +9 -0
- package/dist/seeds.js.map +1 -0
- package/dist/state.d.ts +270 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +448 -0
- package/dist/state.js.map +1 -0
- package/dist/users.d.ts +13 -0
- package/dist/users.d.ts.map +1 -0
- package/dist/users.js +669 -0
- package/dist/users.js.map +1 -0
- package/package.json +80 -0
package/dist/state.d.ts
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { Collection, IdSequence } from "@crvouga/mockingbird-service";
|
|
2
|
+
import type { SqliteClient } from "@crvouga/mockingbird-sqlite";
|
|
3
|
+
import { type ExpectedResult, type LabTestRecord } from "./catalog.js";
|
|
4
|
+
export type { CatalogMarker, ExpectedResult, LabTestRecord } from "./catalog.js";
|
|
5
|
+
export { expectedResultsFor, LAB_TEST_CATALOG, labTestById, TEAM_LABS } from "./catalog.js";
|
|
6
|
+
export type GetCacheEntry = {
|
|
7
|
+
status: number;
|
|
8
|
+
headers: Record<string, string>;
|
|
9
|
+
body: unknown;
|
|
10
|
+
};
|
|
11
|
+
export declare const observationCacheKey: (url: URL | string, method?: string, body?: unknown) => string;
|
|
12
|
+
export type UserInfoRecord = Record<string, unknown>;
|
|
13
|
+
export type AppointmentModality = "phlebotomy" | "patient_service_center";
|
|
14
|
+
export type AppointmentProviderName = "getlabs" | "phlebfinders" | "quest";
|
|
15
|
+
export type AppointmentStatus = "confirmed" | "pending" | "reserved" | "in_progress" | "completed" | "cancelled";
|
|
16
|
+
export type AppointmentEventStatus = "pending" | "reserved" | "scheduled" | "completed" | "cancelled" | "in_progress";
|
|
17
|
+
export type AppointmentEventRecord = {
|
|
18
|
+
created_at: string;
|
|
19
|
+
status: AppointmentEventStatus;
|
|
20
|
+
data: Record<string, unknown> | null;
|
|
21
|
+
};
|
|
22
|
+
export type AppointmentRecord = {
|
|
23
|
+
id: string;
|
|
24
|
+
order_id: string;
|
|
25
|
+
user_id: string;
|
|
26
|
+
provider_id: string;
|
|
27
|
+
external_id: string | null;
|
|
28
|
+
type: AppointmentModality;
|
|
29
|
+
provider: AppointmentProviderName;
|
|
30
|
+
status: AppointmentStatus;
|
|
31
|
+
event_status: AppointmentEventStatus;
|
|
32
|
+
start_at: string | null;
|
|
33
|
+
end_at: string | null;
|
|
34
|
+
iana_timezone: string | null;
|
|
35
|
+
address: Record<string, unknown>;
|
|
36
|
+
location: {
|
|
37
|
+
lng: number;
|
|
38
|
+
lat: number;
|
|
39
|
+
};
|
|
40
|
+
can_reschedule: boolean;
|
|
41
|
+
booking_key: string | null;
|
|
42
|
+
site_code: string | null;
|
|
43
|
+
appointment_notes: string | null;
|
|
44
|
+
order_transaction_id: string | null;
|
|
45
|
+
event_data: Record<string, unknown> | null;
|
|
46
|
+
events: AppointmentEventRecord[];
|
|
47
|
+
created_at: string;
|
|
48
|
+
updated_at: string;
|
|
49
|
+
};
|
|
50
|
+
export type BookingKeyRecord = {
|
|
51
|
+
key: string;
|
|
52
|
+
start: string;
|
|
53
|
+
end: string;
|
|
54
|
+
expires_at: string | null;
|
|
55
|
+
price: number;
|
|
56
|
+
is_priority: boolean;
|
|
57
|
+
num_appointments_available: number;
|
|
58
|
+
modality: AppointmentModality;
|
|
59
|
+
provider: AppointmentProviderName;
|
|
60
|
+
site_code: string | null;
|
|
61
|
+
zip_code: string;
|
|
62
|
+
address: Record<string, unknown>;
|
|
63
|
+
location: {
|
|
64
|
+
lng: number;
|
|
65
|
+
lat: number;
|
|
66
|
+
};
|
|
67
|
+
consumed_by_order_id: string | null;
|
|
68
|
+
created_at: string;
|
|
69
|
+
};
|
|
70
|
+
export type PendingSimulateTransition = {
|
|
71
|
+
order_id: string;
|
|
72
|
+
due_at: number;
|
|
73
|
+
final_status: string;
|
|
74
|
+
flags: Record<string, unknown> | null;
|
|
75
|
+
};
|
|
76
|
+
export type JunctionWebhookEvent = {
|
|
77
|
+
event_type: "labtest.order.created" | "labtest.order.updated" | "labtest.appointment.updated";
|
|
78
|
+
data: Record<string, unknown>;
|
|
79
|
+
team_id: string;
|
|
80
|
+
user_id: string;
|
|
81
|
+
client_user_id: string;
|
|
82
|
+
};
|
|
83
|
+
export type WebhookEventRecord = {
|
|
84
|
+
sequence: number;
|
|
85
|
+
event: JunctionWebhookEvent;
|
|
86
|
+
};
|
|
87
|
+
export type WebhookDeliveryAttempt = {
|
|
88
|
+
message_id: string;
|
|
89
|
+
event: JunctionWebhookEvent;
|
|
90
|
+
attempt: number;
|
|
91
|
+
scheduled_at: string;
|
|
92
|
+
timeout_ms: number;
|
|
93
|
+
acknowledged: boolean;
|
|
94
|
+
};
|
|
95
|
+
export declare const WEBHOOK_RETRY_DELAYS_MS: readonly [0, 5000, 300000, 1800000, 7200000, 18000000, 36000000, 36000000];
|
|
96
|
+
export type UserRecord = {
|
|
97
|
+
user_id: string;
|
|
98
|
+
team_id: string;
|
|
99
|
+
client_user_id: string;
|
|
100
|
+
created_on: string;
|
|
101
|
+
connected_sources: unknown[];
|
|
102
|
+
fallback_time_zone: {
|
|
103
|
+
id: string;
|
|
104
|
+
source_slug: string;
|
|
105
|
+
updated_at: string;
|
|
106
|
+
} | null;
|
|
107
|
+
fallback_birth_date: {
|
|
108
|
+
value: string;
|
|
109
|
+
source_slug: string;
|
|
110
|
+
updated_at: string;
|
|
111
|
+
} | null;
|
|
112
|
+
ingestion_start: string | null;
|
|
113
|
+
ingestion_end: string | null;
|
|
114
|
+
};
|
|
115
|
+
/** Fixed mock team id — volatile on the real side, stable in the mock. */
|
|
116
|
+
export declare const MOCK_TEAM_ID = "11111111-1111-4111-8111-111111111111";
|
|
117
|
+
/** Deterministic UUID derived from a salt + sequence (version/variant bits fixed). */
|
|
118
|
+
export declare const deterministicUuid: (input: string) => string;
|
|
119
|
+
export type OrderEventRecord = {
|
|
120
|
+
id: number;
|
|
121
|
+
created_at: string;
|
|
122
|
+
status: string;
|
|
123
|
+
status_detail: null;
|
|
124
|
+
};
|
|
125
|
+
export type OrderTransactionEmbed = {
|
|
126
|
+
id: string;
|
|
127
|
+
status: "active" | "completed" | "cancelled";
|
|
128
|
+
orders: Array<{
|
|
129
|
+
id: string;
|
|
130
|
+
low_level_status: string;
|
|
131
|
+
low_level_status_created_at: string;
|
|
132
|
+
origin: string;
|
|
133
|
+
parent_id: null;
|
|
134
|
+
created_at: string;
|
|
135
|
+
updated_at: string;
|
|
136
|
+
}>;
|
|
137
|
+
};
|
|
138
|
+
export type OrderRecord = {
|
|
139
|
+
id: string;
|
|
140
|
+
user_id: string;
|
|
141
|
+
team_id: string;
|
|
142
|
+
patient_details: Record<string, unknown>;
|
|
143
|
+
patient_address: Record<string, unknown>;
|
|
144
|
+
lab_test: LabTestRecord;
|
|
145
|
+
details: Record<string, unknown>;
|
|
146
|
+
sample_id: string | null;
|
|
147
|
+
notes: null;
|
|
148
|
+
clinical_notes: string | null;
|
|
149
|
+
passthrough: string | null;
|
|
150
|
+
/** Echoed from the request's opaque provider account id; absent when the order had none. */
|
|
151
|
+
lab_account_id?: string;
|
|
152
|
+
created_at: string;
|
|
153
|
+
updated_at: string;
|
|
154
|
+
events: OrderEventRecord[];
|
|
155
|
+
status: string;
|
|
156
|
+
last_event: OrderEventRecord;
|
|
157
|
+
physician: {
|
|
158
|
+
first_name: string;
|
|
159
|
+
last_name: string;
|
|
160
|
+
npi: string;
|
|
161
|
+
};
|
|
162
|
+
health_insurance_id: null;
|
|
163
|
+
requisition_form_url: string | null;
|
|
164
|
+
shipping_details: null;
|
|
165
|
+
has_abn: boolean;
|
|
166
|
+
billing_type: string;
|
|
167
|
+
priority: boolean;
|
|
168
|
+
activate_by: null;
|
|
169
|
+
icd_codes: string[] | null;
|
|
170
|
+
interpretation: string | null;
|
|
171
|
+
has_missing_results: boolean | null;
|
|
172
|
+
result_types: string[] | null;
|
|
173
|
+
expected_result_by_date: string | null;
|
|
174
|
+
worst_case_result_by_date: string | null;
|
|
175
|
+
origin: string;
|
|
176
|
+
order_transaction: OrderTransactionEmbed;
|
|
177
|
+
};
|
|
178
|
+
export type WebhookPublisher = (event: JunctionWebhookEvent) => void;
|
|
179
|
+
export type JunctionWebhookOptions = {
|
|
180
|
+
seed?: number;
|
|
181
|
+
jitterRatio?: number;
|
|
182
|
+
timeoutMs?: number;
|
|
183
|
+
};
|
|
184
|
+
export declare class JunctionState {
|
|
185
|
+
private readonly publishEvent;
|
|
186
|
+
private readonly webhookRandom;
|
|
187
|
+
private readonly webhookJitterRatio;
|
|
188
|
+
private readonly webhookTimeoutMs;
|
|
189
|
+
readonly users: Collection<UserRecord>;
|
|
190
|
+
readonly ids: IdSequence;
|
|
191
|
+
readonly byClientId: Collection<{
|
|
192
|
+
user_id: string;
|
|
193
|
+
}>;
|
|
194
|
+
readonly deletedUsers: Collection<{
|
|
195
|
+
user_id: string;
|
|
196
|
+
}>;
|
|
197
|
+
readonly userInfo: Collection<UserInfoRecord>;
|
|
198
|
+
readonly orders: Collection<OrderRecord>;
|
|
199
|
+
readonly orderIdempotency: Collection<{
|
|
200
|
+
order_id: string;
|
|
201
|
+
response: unknown;
|
|
202
|
+
fingerprint: string;
|
|
203
|
+
}>;
|
|
204
|
+
readonly cancelIdempotency: Collection<{
|
|
205
|
+
order_id: string;
|
|
206
|
+
response: unknown;
|
|
207
|
+
}>;
|
|
208
|
+
readonly appointments: Collection<AppointmentRecord>;
|
|
209
|
+
readonly appointmentsByOrder: Collection<{
|
|
210
|
+
appointment_id: string;
|
|
211
|
+
}>;
|
|
212
|
+
readonly bookingKeys: Collection<BookingKeyRecord>;
|
|
213
|
+
readonly pendingSimulateTransitions: Collection<PendingSimulateTransition>;
|
|
214
|
+
readonly orderByTransaction: Collection<{
|
|
215
|
+
order_id: string;
|
|
216
|
+
}>;
|
|
217
|
+
readonly webhookEvents: Collection<WebhookEventRecord>;
|
|
218
|
+
readonly webhookDeliveryAttempts: Collection<WebhookDeliveryAttempt>;
|
|
219
|
+
readonly labTests: Collection<LabTestRecord>;
|
|
220
|
+
readonly labs: Collection<Record<string, unknown>>;
|
|
221
|
+
readonly labAccounts: Collection<Record<string, unknown>>;
|
|
222
|
+
readonly expectedResults: Collection<ExpectedResult[]>;
|
|
223
|
+
readonly getCache: Collection<GetCacheEntry>;
|
|
224
|
+
constructor(sqlite: SqliteClient, namespace: string, publisher?: WebhookPublisher, webhookOptions?: JunctionWebhookOptions);
|
|
225
|
+
seedDefaultCatalog(): void;
|
|
226
|
+
private clearCollection;
|
|
227
|
+
labKeyOf(lab: Record<string, unknown>): string;
|
|
228
|
+
labAccountKeyOf(account: Record<string, unknown>): string;
|
|
229
|
+
labTestById(id: string): LabTestRecord | undefined;
|
|
230
|
+
upsertLabTest(test: LabTestRecord, expectedResults?: readonly ExpectedResult[]): void;
|
|
231
|
+
listLabTests(): LabTestRecord[];
|
|
232
|
+
listLabs(): Record<string, unknown>[];
|
|
233
|
+
listLabAccounts(): Record<string, unknown>[];
|
|
234
|
+
expectedResultsFor(labTestId: string): ExpectedResult[];
|
|
235
|
+
replaceCatalog(input: {
|
|
236
|
+
labTests: readonly LabTestRecord[];
|
|
237
|
+
labs: readonly Record<string, unknown>[];
|
|
238
|
+
expectedResults: Readonly<Record<string, readonly ExpectedResult[]>>;
|
|
239
|
+
}): void;
|
|
240
|
+
replaceLabAccounts(entries: readonly Record<string, unknown>[]): void;
|
|
241
|
+
putGetCache(key: string, entry: GetCacheEntry): void;
|
|
242
|
+
getGetCache(key: string): GetCacheEntry | undefined;
|
|
243
|
+
installGetCache(entries: Iterable<[string, GetCacheEntry]>): void;
|
|
244
|
+
/**
|
|
245
|
+
* Materialize booking_key records from a cached availability payload so subsequent
|
|
246
|
+
* book/reschedule calls succeed against observation-seeded mocks.
|
|
247
|
+
*/
|
|
248
|
+
hydrateBookingKeysFromAvailability(body: unknown, nowMs: number, zipCode?: string, modalityHint?: AppointmentModality): void;
|
|
249
|
+
cacheKeyForRequest(method: string, pathname: string, searchParams?: URLSearchParams | string | Record<string, string> | null, body?: unknown): string;
|
|
250
|
+
insertUser(user: UserRecord): void;
|
|
251
|
+
insertOrder(order: OrderRecord): void;
|
|
252
|
+
insertAppointment(appointment: AppointmentRecord): void;
|
|
253
|
+
nextUserId(): string;
|
|
254
|
+
nextOrderId(): string;
|
|
255
|
+
nextAppointmentId(): string;
|
|
256
|
+
bookingKeyFor(input: string): string;
|
|
257
|
+
appointmentProviderIdFor(input: string): string;
|
|
258
|
+
transactionIdFor(orderId: string): string;
|
|
259
|
+
testkitIdFor(orderId: string): string;
|
|
260
|
+
publishWebhook(event: JunctionWebhookEvent, now?: number): void;
|
|
261
|
+
webhookEventsInOrder(): JunctionWebhookEvent[];
|
|
262
|
+
webhookDeliveryAttemptsInOrder(): WebhookDeliveryAttempt[];
|
|
263
|
+
publishOrderWebhook(order: OrderRecord, eventType: JunctionWebhookEvent["event_type"], now?: number): void;
|
|
264
|
+
publishAppointmentWebhook(appointment: AppointmentRecord, teamId: string, now?: number): void;
|
|
265
|
+
queueSimulateTransition(transition: PendingSimulateTransition): void;
|
|
266
|
+
/** Apply any simulate transitions whose delay has elapsed; called lazily on reads. */
|
|
267
|
+
applyDueSimulateTransitions(nowMs: number, apply: (order: OrderRecord, finalStatus: string, flags: Record<string, unknown> | null) => void): void;
|
|
268
|
+
isoNow(now: () => number): string;
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|