@fincuratech/stedi-sdk-js 1.6.0 → 1.7.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/dist/in-memory.js CHANGED
@@ -4,12 +4,12 @@ const PLACEHOLDER_EDI = 'ISA*00* *00* *ZZ*INMEMORY *ZZ*
4
4
  'ST*271*0001~SE*1*0001~GE*1*1~IEA*1*000000001~';
5
5
  const DEFAULT_SEED_PAYERS = [
6
6
  {
7
- aliases: ['INMEMORY', 'IMHP'],
8
- coverageTypes: ['medical'],
9
- displayName: 'In-Memory Health Plan',
10
- names: ['In-Memory Health Plan'],
11
- primaryPayerId: '00001',
12
- stediId: 'INMEMORY001',
7
+ aliases: ['vanguard', 'benefits', 'corp'],
8
+ coverageTypes: ['dental', 'medical'],
9
+ displayName: 'Vanguard Benefits Corp',
10
+ names: ['Vanguard Benefits', 'VANGUARD CARE'],
11
+ primaryPayerId: 'demo_63088',
12
+ stediId: '_GUAR',
13
13
  transactionSupport: {
14
14
  claimPayment: 'SUPPORTED',
15
15
  claimStatus: 'SUPPORTED',
@@ -21,12 +21,80 @@ const DEFAULT_SEED_PAYERS = [
21
21
  },
22
22
  },
23
23
  {
24
- aliases: ['EXAMPLE', 'EIC'],
25
- coverageTypes: ['medical'],
26
- displayName: 'Example Insurance Company',
27
- names: ['Example Insurance Company'],
28
- primaryPayerId: '00002',
29
- stediId: 'INMEMORY002',
24
+ aliases: ['group', 'benefits', 'nimbus'],
25
+ coverageTypes: ['dental', 'medical'],
26
+ displayName: 'Nimbus Benefits Group',
27
+ names: ['Nimbus', 'NIMBUS BENEFITS'],
28
+ primaryPayerId: 'demo_62308',
29
+ stediId: '_CIGN',
30
+ transactionSupport: {
31
+ claimPayment: 'SUPPORTED',
32
+ claimStatus: 'SUPPORTED',
33
+ claimSubmission: 'SUPPORTED',
34
+ coordinationOfBenefits: 'SUPPORTED',
35
+ eligibilityCheck: 'SUPPORTED',
36
+ institutionalClaimSubmission: 'SUPPORTED',
37
+ professionalClaimSubmission: 'SUPPORTED',
38
+ },
39
+ },
40
+ {
41
+ aliases: ['healthcoverage', 'meridian'],
42
+ coverageTypes: ['dental', 'medical'],
43
+ displayName: 'Meridian HealthCoverage',
44
+ names: ['Meridian Health', 'MHC Dental'],
45
+ primaryPayerId: 'demo_87726',
46
+ stediId: '_UHCD',
47
+ transactionSupport: {
48
+ claimPayment: 'SUPPORTED',
49
+ claimStatus: 'SUPPORTED',
50
+ claimSubmission: 'SUPPORTED',
51
+ coordinationOfBenefits: 'SUPPORTED',
52
+ eligibilityCheck: 'SUPPORTED',
53
+ institutionalClaimSubmission: 'SUPPORTED',
54
+ professionalClaimSubmission: 'SUPPORTED',
55
+ },
56
+ },
57
+ {
58
+ aliases: ['cobalt', 'plan', 'wellness'],
59
+ coverageTypes: ['dental', 'medical'],
60
+ displayName: 'Cobalt Wellness Plan',
61
+ names: ['Cobalt', 'COBALT WELLNESS'],
62
+ primaryPayerId: 'demo_60054',
63
+ stediId: '_AETN',
64
+ transactionSupport: {
65
+ claimPayment: 'SUPPORTED',
66
+ claimStatus: 'SUPPORTED',
67
+ claimSubmission: 'SUPPORTED',
68
+ coordinationOfBenefits: 'SUPPORTED',
69
+ eligibilityCheck: 'SUPPORTED',
70
+ institutionalClaimSubmission: 'SUPPORTED',
71
+ professionalClaimSubmission: 'SUPPORTED',
72
+ },
73
+ },
74
+ {
75
+ aliases: ['zephyr', 'dental', 'coverage'],
76
+ coverageTypes: ['dental', 'medical'],
77
+ displayName: 'Zephyr Dental Coverage',
78
+ names: ['Zephyr CA', 'ZDC'],
79
+ primaryPayerId: 'demo_94265',
80
+ stediId: '_DDCA',
81
+ transactionSupport: {
82
+ claimPayment: 'SUPPORTED',
83
+ claimStatus: 'SUPPORTED',
84
+ claimSubmission: 'SUPPORTED',
85
+ coordinationOfBenefits: 'SUPPORTED',
86
+ eligibilityCheck: 'SUPPORTED',
87
+ institutionalClaimSubmission: 'SUPPORTED',
88
+ professionalClaimSubmission: 'SUPPORTED',
89
+ },
90
+ },
91
+ {
92
+ aliases: ['pinnacle', 'care', 'partners'],
93
+ coverageTypes: ['dental', 'medical'],
94
+ displayName: 'Pinnacle Care Partners',
95
+ names: ['Pinnacle', 'PINNACLE CARE'],
96
+ primaryPayerId: 'demo_65978',
97
+ stediId: '_METL',
30
98
  transactionSupport: {
31
99
  claimPayment: 'SUPPORTED',
32
100
  claimStatus: 'SUPPORTED',
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.js","sourceRoot":"","sources":["../src/in-memory.ts"],"names":[],"mappings":"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","sourcesContent":["import { type StediClient } from './index.js';\nimport { StediApiError } from './lib/errors.js';\nimport {\n type StediEligibilityInput,\n type StediEligibilityResponse,\n type StediEnrollmentInput,\n type StediEnrollmentResponse,\n type StediListEnrollmentsParams,\n type StediListEnrollmentsResponse,\n type StediListProvidersParams,\n type StediPayerItem,\n type StediPayerResponse,\n type StediProviderInput,\n type StediProviderListResponse,\n type StediProviderResponse,\n type StediTransactionGetResponse,\n type StediTransactionListResponse,\n} from './lib/types.js';\n\n/**\n * In-memory storage backing a fake Stedi client.\n *\n * The store is the unit of read-after-write consistency: pass the same store to\n * several `createInMemoryStediClient` calls and they all observe the same data;\n * give each a fresh store (the default) and they stay isolated.\n *\n * @property enrollments - Created enrollments, keyed by their deterministic in-memory id.\n * @property providers - Created providers, keyed by their deterministic in-memory id.\n */\nexport type InMemoryStediStore = {\n enrollments: Map<string, StediEnrollmentResponse>;\n providers: Map<string, StediProviderResponse>;\n};\n\n/**\n * Options for {@link createInMemoryStediClient}. Everything specific to a\n * consumer (payers, fixtures, clock) is injected here; the SDK ships only\n * generic, environment-agnostic defaults.\n *\n * @property buildEligibilityResponse - Builds the response returned by `eligibility.check`. Defaults to a deterministic, schema-valid minimal response.\n * @property buildTransactionPage - Builds the page returned by `transactions.list` / `transactions.search`. Defaults to an empty page (`{ items: [] }`).\n * @property now - Clock used for deterministic `createdAt` / `updatedAt` timestamps. Defaults to `() => new Date().toISOString()`.\n * @property seedPayers - Payers returned by `payers.get` and filtered by `payers.search`. Defaults to a couple of generic, plausible payers.\n * @property store - Shared store enabling read-after-write consistency across clients. Defaults to a fresh, isolated store per call.\n */\nexport type InMemoryStediClientOptions = {\n buildEligibilityResponse?: (\n input: StediEligibilityInput,\n ) => StediEligibilityResponse;\n\n buildTransactionPage?: () => StediTransactionListResponse;\n\n now?: () => string;\n\n seedPayers?: StediPayerItem[];\n\n store?: InMemoryStediStore;\n};\n\n/**\n * Placeholder EDI payload returned by the in-memory `downloadFile`.\n */\nconst PLACEHOLDER_EDI =\n 'ISA*00* *00* *ZZ*INMEMORY *ZZ*INMEMORY *250101*0000*^*00501*000000001*0*T*:~' +\n 'GS*HB*INMEMORY*INMEMORY*20250101*0000*1*X*005010X279A1~' +\n 'ST*271*0001~SE*1*0001~GE*1*1~IEA*1*000000001~';\n\n/**\n * Generic, plausible payers used when no `seedPayers` are provided.\n */\nconst DEFAULT_SEED_PAYERS: StediPayerItem[] = [\n {\n aliases: ['INMEMORY', 'IMHP'],\n coverageTypes: ['medical'],\n displayName: 'In-Memory Health Plan',\n names: ['In-Memory Health Plan'],\n primaryPayerId: '00001',\n stediId: 'INMEMORY001',\n transactionSupport: {\n claimPayment: 'SUPPORTED',\n claimStatus: 'SUPPORTED',\n claimSubmission: 'SUPPORTED',\n coordinationOfBenefits: 'SUPPORTED',\n eligibilityCheck: 'SUPPORTED',\n institutionalClaimSubmission: 'SUPPORTED',\n professionalClaimSubmission: 'SUPPORTED',\n },\n },\n {\n aliases: ['EXAMPLE', 'EIC'],\n coverageTypes: ['medical'],\n displayName: 'Example Insurance Company',\n names: ['Example Insurance Company'],\n primaryPayerId: '00002',\n stediId: 'INMEMORY002',\n transactionSupport: {\n claimPayment: 'SUPPORTED',\n claimStatus: 'SUPPORTED',\n claimSubmission: 'SUPPORTED',\n coordinationOfBenefits: 'SUPPORTED',\n eligibilityCheck: 'SUPPORTED',\n institutionalClaimSubmission: 'SUPPORTED',\n professionalClaimSubmission: 'SUPPORTED',\n },\n },\n];\n\n/**\n * Deterministic, schema-valid minimal eligibility response derived from the input.\n *\n * @param input - The eligibility check parameters.\n * @returns A minimal {@link StediEligibilityResponse}.\n */\nconst defaultBuildEligibilityResponse = (\n input: StediEligibilityInput,\n): StediEligibilityResponse => ({\n benefitsInformation: [],\n controlNumber: input.controlNumber,\n eligibilitySearchId: `in-memory-eligibility-${input.controlNumber}`,\n errors: [],\n meta: {\n applicationMode: 'inmemory',\n outboundTraceId: `in-memory-${input.controlNumber}`,\n senderId: 'in-memory',\n submitterId: 'in-memory',\n traceId: `in-memory-${input.controlNumber}`,\n },\n payer: {},\n planDateInformation: {},\n planInformation: {},\n provider: {\n entityIdentifier: '',\n entityType: '',\n npi: input.provider.npi,\n providerName: input.provider.organizationName,\n },\n reassociationKey: `in-memory-${input.controlNumber}`,\n subscriber: {},\n tradingPartnerServiceId: input.tradingPartnerServiceId,\n});\n\n/**\n * Empty transaction page used when no `buildTransactionPage` is provided.\n *\n * @returns An empty {@link StediTransactionListResponse}.\n */\nconst defaultBuildTransactionPage = (): StediTransactionListResponse => ({\n items: [],\n});\n\n/**\n * Create an empty, isolated in-memory store.\n *\n * @returns A fresh {@link InMemoryStediStore}.\n */\nexport const createInMemoryStediStore = (): InMemoryStediStore => ({\n enrollments: new Map(),\n providers: new Map(),\n});\n\n/**\n * Clear every entity from a store in place.\n *\n * Optional convenience for reusing a single shared store across test cases.\n * Creating a fresh store with {@link createInMemoryStediStore} is the primary\n * way to isolate state.\n *\n * @param store - The store to clear.\n */\nexport const clearInMemoryStediStore = (store: InMemoryStediStore): void => {\n store.enrollments.clear();\n store.providers.clear();\n};\n\n/**\n * Create an in-memory double of the Stedi client.\n *\n * The returned client satisfies the exact {@link StediClient} contract but never\n * performs any network or filesystem I/O: writes land in the injected (or\n * default) {@link InMemoryStediStore} and reads come back from it. It carries no\n * notion of environment, production, or any consumer-specific data — the\n * real-vs-fake decision and business fixtures remain the consumer's\n * responsibility.\n *\n * @param [options] - Store, seed payers, response builders and clock overrides.\n * @returns A {@link StediClient} backed entirely by memory.\n */\nexport const createInMemoryStediClient = (\n options?: InMemoryStediClientOptions,\n): StediClient => {\n const store = options?.store ?? createInMemoryStediStore();\n const seedPayers = options?.seedPayers ?? DEFAULT_SEED_PAYERS;\n const buildEligibilityResponse =\n options?.buildEligibilityResponse ?? defaultBuildEligibilityResponse;\n const buildTransactionPage =\n options?.buildTransactionPage ?? defaultBuildTransactionPage;\n const now = options?.now ?? (() => new Date().toISOString());\n\n return {\n downloadFile: async (): Promise<string> => PLACEHOLDER_EDI,\n\n eligibility: {\n check: async (\n input: StediEligibilityInput,\n ): Promise<StediEligibilityResponse> => buildEligibilityResponse(input),\n },\n\n enrollment: {\n create: async (\n input: StediEnrollmentInput,\n ): Promise<StediEnrollmentResponse> => {\n const id = `in-memory-enrollment-${input.provider.id}-${input.payer.idOrAlias}`;\n const linkedProvider = store.providers.get(input.provider.id);\n const existing = store.enrollments.get(id);\n const timestamp = now();\n\n const created: StediEnrollmentResponse = {\n createdAt: existing?.createdAt ?? timestamp,\n id,\n payer: {\n stediPayerId: input.payer.idOrAlias,\n submittedPayerIdOrAlias: input.payer.idOrAlias,\n },\n primaryContact: input.primaryContact,\n provider: {\n id: input.provider.id,\n name: linkedProvider?.name,\n npi: linkedProvider?.npi,\n taxId: linkedProvider?.taxId,\n taxIdType: linkedProvider?.taxIdType,\n },\n source: input.source,\n status: input.status,\n transactions: input.transactions,\n updatedAt: timestamp,\n userEmail: input.userEmail,\n };\n\n store.enrollments.set(id, created);\n\n return created;\n },\n\n get: async (enrollmentId: string): Promise<StediEnrollmentResponse> => {\n const found = store.enrollments.get(enrollmentId);\n\n if (!found) {\n throw new StediApiError('Not found', 404, undefined);\n }\n\n return found;\n },\n\n list: async (\n params: StediListEnrollmentsParams = {},\n ): Promise<StediListEnrollmentsResponse> => {\n const { payerIds, providerTaxIds, status } = params;\n\n const items = [...store.enrollments.values()].filter((enrollment) => {\n if (\n providerTaxIds &&\n (enrollment.provider.taxId === undefined ||\n !providerTaxIds.includes(enrollment.provider.taxId))\n ) {\n return false;\n }\n\n if (payerIds && !payerIds.includes(enrollment.payer.stediPayerId)) {\n return false;\n }\n\n if (status && !status.includes(enrollment.status)) {\n return false;\n }\n\n return true;\n });\n\n return { items, totalCount: items.length };\n },\n },\n\n payers: {\n get: async (): Promise<StediPayerResponse['items']> => [...seedPayers],\n\n search: async (\n queryParameters: Record<string, string[] | number | string>,\n ): Promise<StediPayerResponse['items']> => {\n const query =\n typeof queryParameters.query === 'string'\n ? queryParameters.query.toLowerCase()\n : undefined;\n const eligibilityCheck =\n typeof queryParameters.eligibilityCheck === 'string'\n ? queryParameters.eligibilityCheck\n : undefined;\n\n return seedPayers.filter((payer) => {\n if (query !== undefined) {\n const haystack = [\n payer.displayName,\n payer.primaryPayerId,\n payer.stediId,\n ...payer.names,\n ...payer.aliases,\n ]\n .join(' ')\n .toLowerCase();\n\n if (!haystack.includes(query)) {\n return false;\n }\n }\n\n if (\n eligibilityCheck !== undefined &&\n payer.transactionSupport.eligibilityCheck !== eligibilityCheck\n ) {\n return false;\n }\n\n return true;\n });\n },\n },\n\n provider: {\n create: async (\n input: StediProviderInput,\n ): Promise<StediProviderResponse> => {\n const id = `in-memory-provider-${input.npi}`;\n const existing = store.providers.get(id);\n\n // Idempotent on duplicate NPI: same id, no double entry. Mirrors\n // Stedi's 409-on-duplicate semantics by returning the existing record.\n if (existing) {\n return existing;\n }\n\n const timestamp = now();\n const created: StediProviderResponse = {\n contacts: input.contacts,\n createdAt: timestamp,\n id,\n name: input.name,\n npi: input.npi,\n taxId: input.taxId,\n taxIdType: input.taxIdType,\n updatedAt: timestamp,\n };\n\n store.providers.set(id, created);\n\n return created;\n },\n\n get: async (providerId: string): Promise<StediProviderResponse> => {\n const found = store.providers.get(providerId);\n\n if (!found) {\n throw new StediApiError('Not found', 404, undefined);\n }\n\n return found;\n },\n\n list: async (\n params: StediListProvidersParams = {},\n ): Promise<StediProviderListResponse> => {\n const { providerNpis, providerTaxIds } = params;\n\n const items = [...store.providers.values()]\n .filter(\n (provider) => !providerNpis || providerNpis.includes(provider.npi),\n )\n .filter(\n (provider) =>\n !providerTaxIds || providerTaxIds.includes(provider.taxId),\n )\n .map((provider) => ({\n id: provider.id,\n name: provider.name,\n npi: provider.npi,\n taxId: provider.taxId,\n taxIdType: provider.taxIdType,\n }));\n\n return { items };\n },\n },\n\n transactions: {\n get: async (): Promise<StediTransactionGetResponse> => {\n throw new StediApiError('Not found', 404, undefined);\n },\n\n list: async (): Promise<StediTransactionListResponse> =>\n buildTransactionPage(),\n\n search: async (): Promise<StediTransactionListResponse> =>\n buildTransactionPage(),\n },\n };\n};\n"]}
1
+ {"version":3,"file":"in-memory.js","sourceRoot":"","sources":["../src/in-memory.ts"],"names":[],"mappings":"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","sourcesContent":["import { type StediClient } from './index.js';\nimport { StediApiError } from './lib/errors.js';\nimport {\n type StediEligibilityInput,\n type StediEligibilityResponse,\n type StediEnrollmentInput,\n type StediEnrollmentResponse,\n type StediListEnrollmentsParams,\n type StediListEnrollmentsResponse,\n type StediListProvidersParams,\n type StediPayerItem,\n type StediPayerResponse,\n type StediProviderInput,\n type StediProviderListResponse,\n type StediProviderResponse,\n type StediTransactionGetResponse,\n type StediTransactionListResponse,\n} from './lib/types.js';\n\n/**\n * In-memory storage backing a fake Stedi client.\n *\n * The store is the unit of read-after-write consistency: pass the same store to\n * several `createInMemoryStediClient` calls and they all observe the same data;\n * give each a fresh store (the default) and they stay isolated.\n *\n * @property enrollments - Created enrollments, keyed by their deterministic in-memory id.\n * @property providers - Created providers, keyed by their deterministic in-memory id.\n */\nexport type InMemoryStediStore = {\n enrollments: Map<string, StediEnrollmentResponse>;\n providers: Map<string, StediProviderResponse>;\n};\n\n/**\n * Options for {@link createInMemoryStediClient}. Everything specific to a\n * consumer (payers, fixtures, clock) is injected here; the SDK ships only\n * generic, environment-agnostic defaults.\n *\n * @property buildEligibilityResponse - Builds the response returned by `eligibility.check`. Defaults to a deterministic, schema-valid minimal response.\n * @property buildTransactionPage - Builds the page returned by `transactions.list` / `transactions.search`. Defaults to an empty page (`{ items: [] }`).\n * @property now - Clock used for deterministic `createdAt` / `updatedAt` timestamps. Defaults to `() => new Date().toISOString()`.\n * @property seedPayers - Payers returned by `payers.get` and filtered by `payers.search`. Defaults to a couple of generic, plausible payers.\n * @property store - Shared store enabling read-after-write consistency across clients. Defaults to a fresh, isolated store per call.\n */\nexport type InMemoryStediClientOptions = {\n buildEligibilityResponse?: (\n input: StediEligibilityInput,\n ) => StediEligibilityResponse;\n\n buildTransactionPage?: () => StediTransactionListResponse;\n\n now?: () => string;\n\n seedPayers?: StediPayerItem[];\n\n store?: InMemoryStediStore;\n};\n\n/**\n * Placeholder EDI payload returned by the in-memory `downloadFile`.\n */\nconst PLACEHOLDER_EDI =\n 'ISA*00* *00* *ZZ*INMEMORY *ZZ*INMEMORY *250101*0000*^*00501*000000001*0*T*:~' +\n 'GS*HB*INMEMORY*INMEMORY*20250101*0000*1*X*005010X279A1~' +\n 'ST*271*0001~SE*1*0001~GE*1*1~IEA*1*000000001~';\n\n/**\n * Generic, plausible payers used when no `seedPayers` are provided.\n */\nconst DEFAULT_SEED_PAYERS: StediPayerItem[] = [\n {\n aliases: ['vanguard', 'benefits', 'corp'],\n coverageTypes: ['dental', 'medical'],\n displayName: 'Vanguard Benefits Corp',\n names: ['Vanguard Benefits', 'VANGUARD CARE'],\n primaryPayerId: 'demo_63088',\n stediId: '_GUAR',\n transactionSupport: {\n claimPayment: 'SUPPORTED',\n claimStatus: 'SUPPORTED',\n claimSubmission: 'SUPPORTED',\n coordinationOfBenefits: 'SUPPORTED',\n eligibilityCheck: 'SUPPORTED',\n institutionalClaimSubmission: 'SUPPORTED',\n professionalClaimSubmission: 'SUPPORTED',\n },\n },\n {\n aliases: ['group', 'benefits', 'nimbus'],\n coverageTypes: ['dental', 'medical'],\n displayName: 'Nimbus Benefits Group',\n names: ['Nimbus', 'NIMBUS BENEFITS'],\n primaryPayerId: 'demo_62308',\n stediId: '_CIGN',\n transactionSupport: {\n claimPayment: 'SUPPORTED',\n claimStatus: 'SUPPORTED',\n claimSubmission: 'SUPPORTED',\n coordinationOfBenefits: 'SUPPORTED',\n eligibilityCheck: 'SUPPORTED',\n institutionalClaimSubmission: 'SUPPORTED',\n professionalClaimSubmission: 'SUPPORTED',\n },\n },\n {\n aliases: ['healthcoverage', 'meridian'],\n coverageTypes: ['dental', 'medical'],\n displayName: 'Meridian HealthCoverage',\n names: ['Meridian Health', 'MHC Dental'],\n primaryPayerId: 'demo_87726',\n stediId: '_UHCD',\n transactionSupport: {\n claimPayment: 'SUPPORTED',\n claimStatus: 'SUPPORTED',\n claimSubmission: 'SUPPORTED',\n coordinationOfBenefits: 'SUPPORTED',\n eligibilityCheck: 'SUPPORTED',\n institutionalClaimSubmission: 'SUPPORTED',\n professionalClaimSubmission: 'SUPPORTED',\n },\n },\n {\n aliases: ['cobalt', 'plan', 'wellness'],\n coverageTypes: ['dental', 'medical'],\n displayName: 'Cobalt Wellness Plan',\n names: ['Cobalt', 'COBALT WELLNESS'],\n primaryPayerId: 'demo_60054',\n stediId: '_AETN',\n transactionSupport: {\n claimPayment: 'SUPPORTED',\n claimStatus: 'SUPPORTED',\n claimSubmission: 'SUPPORTED',\n coordinationOfBenefits: 'SUPPORTED',\n eligibilityCheck: 'SUPPORTED',\n institutionalClaimSubmission: 'SUPPORTED',\n professionalClaimSubmission: 'SUPPORTED',\n },\n },\n {\n aliases: ['zephyr', 'dental', 'coverage'],\n coverageTypes: ['dental', 'medical'],\n displayName: 'Zephyr Dental Coverage',\n names: ['Zephyr CA', 'ZDC'],\n primaryPayerId: 'demo_94265',\n stediId: '_DDCA',\n transactionSupport: {\n claimPayment: 'SUPPORTED',\n claimStatus: 'SUPPORTED',\n claimSubmission: 'SUPPORTED',\n coordinationOfBenefits: 'SUPPORTED',\n eligibilityCheck: 'SUPPORTED',\n institutionalClaimSubmission: 'SUPPORTED',\n professionalClaimSubmission: 'SUPPORTED',\n },\n },\n {\n aliases: ['pinnacle', 'care', 'partners'],\n coverageTypes: ['dental', 'medical'],\n displayName: 'Pinnacle Care Partners',\n names: ['Pinnacle', 'PINNACLE CARE'],\n primaryPayerId: 'demo_65978',\n stediId: '_METL',\n transactionSupport: {\n claimPayment: 'SUPPORTED',\n claimStatus: 'SUPPORTED',\n claimSubmission: 'SUPPORTED',\n coordinationOfBenefits: 'SUPPORTED',\n eligibilityCheck: 'SUPPORTED',\n institutionalClaimSubmission: 'SUPPORTED',\n professionalClaimSubmission: 'SUPPORTED',\n },\n },\n];\n\n/**\n * Deterministic, schema-valid minimal eligibility response derived from the input.\n *\n * @param input - The eligibility check parameters.\n * @returns A minimal {@link StediEligibilityResponse}.\n */\nconst defaultBuildEligibilityResponse = (\n input: StediEligibilityInput,\n): StediEligibilityResponse => ({\n benefitsInformation: [],\n controlNumber: input.controlNumber,\n eligibilitySearchId: `in-memory-eligibility-${input.controlNumber}`,\n errors: [],\n meta: {\n applicationMode: 'inmemory',\n outboundTraceId: `in-memory-${input.controlNumber}`,\n senderId: 'in-memory',\n submitterId: 'in-memory',\n traceId: `in-memory-${input.controlNumber}`,\n },\n payer: {},\n planDateInformation: {},\n planInformation: {},\n provider: {\n entityIdentifier: '',\n entityType: '',\n npi: input.provider.npi,\n providerName: input.provider.organizationName,\n },\n reassociationKey: `in-memory-${input.controlNumber}`,\n subscriber: {},\n tradingPartnerServiceId: input.tradingPartnerServiceId,\n});\n\n/**\n * Empty transaction page used when no `buildTransactionPage` is provided.\n *\n * @returns An empty {@link StediTransactionListResponse}.\n */\nconst defaultBuildTransactionPage = (): StediTransactionListResponse => ({\n items: [],\n});\n\n/**\n * Create an empty, isolated in-memory store.\n *\n * @returns A fresh {@link InMemoryStediStore}.\n */\nexport const createInMemoryStediStore = (): InMemoryStediStore => ({\n enrollments: new Map(),\n providers: new Map(),\n});\n\n/**\n * Clear every entity from a store in place.\n *\n * Optional convenience for reusing a single shared store across test cases.\n * Creating a fresh store with {@link createInMemoryStediStore} is the primary\n * way to isolate state.\n *\n * @param store - The store to clear.\n */\nexport const clearInMemoryStediStore = (store: InMemoryStediStore): void => {\n store.enrollments.clear();\n store.providers.clear();\n};\n\n/**\n * Create an in-memory double of the Stedi client.\n *\n * The returned client satisfies the exact {@link StediClient} contract but never\n * performs any network or filesystem I/O: writes land in the injected (or\n * default) {@link InMemoryStediStore} and reads come back from it. It carries no\n * notion of environment, production, or any consumer-specific data — the\n * real-vs-fake decision and business fixtures remain the consumer's\n * responsibility.\n *\n * @param [options] - Store, seed payers, response builders and clock overrides.\n * @returns A {@link StediClient} backed entirely by memory.\n */\nexport const createInMemoryStediClient = (\n options?: InMemoryStediClientOptions,\n): StediClient => {\n const store = options?.store ?? createInMemoryStediStore();\n const seedPayers = options?.seedPayers ?? DEFAULT_SEED_PAYERS;\n const buildEligibilityResponse =\n options?.buildEligibilityResponse ?? defaultBuildEligibilityResponse;\n const buildTransactionPage =\n options?.buildTransactionPage ?? defaultBuildTransactionPage;\n const now = options?.now ?? (() => new Date().toISOString());\n\n return {\n downloadFile: async (): Promise<string> => PLACEHOLDER_EDI,\n\n eligibility: {\n check: async (\n input: StediEligibilityInput,\n ): Promise<StediEligibilityResponse> => buildEligibilityResponse(input),\n },\n\n enrollment: {\n create: async (\n input: StediEnrollmentInput,\n ): Promise<StediEnrollmentResponse> => {\n const id = `in-memory-enrollment-${input.provider.id}-${input.payer.idOrAlias}`;\n const linkedProvider = store.providers.get(input.provider.id);\n const existing = store.enrollments.get(id);\n const timestamp = now();\n\n const created: StediEnrollmentResponse = {\n createdAt: existing?.createdAt ?? timestamp,\n id,\n payer: {\n stediPayerId: input.payer.idOrAlias,\n submittedPayerIdOrAlias: input.payer.idOrAlias,\n },\n primaryContact: input.primaryContact,\n provider: {\n id: input.provider.id,\n name: linkedProvider?.name,\n npi: linkedProvider?.npi,\n taxId: linkedProvider?.taxId,\n taxIdType: linkedProvider?.taxIdType,\n },\n source: input.source,\n status: input.status,\n transactions: input.transactions,\n updatedAt: timestamp,\n userEmail: input.userEmail,\n };\n\n store.enrollments.set(id, created);\n\n return created;\n },\n\n get: async (enrollmentId: string): Promise<StediEnrollmentResponse> => {\n const found = store.enrollments.get(enrollmentId);\n\n if (!found) {\n throw new StediApiError('Not found', 404, undefined);\n }\n\n return found;\n },\n\n list: async (\n params: StediListEnrollmentsParams = {},\n ): Promise<StediListEnrollmentsResponse> => {\n const { payerIds, providerTaxIds, status } = params;\n\n const items = [...store.enrollments.values()].filter((enrollment) => {\n if (\n providerTaxIds &&\n (enrollment.provider.taxId === undefined ||\n !providerTaxIds.includes(enrollment.provider.taxId))\n ) {\n return false;\n }\n\n if (payerIds && !payerIds.includes(enrollment.payer.stediPayerId)) {\n return false;\n }\n\n if (status && !status.includes(enrollment.status)) {\n return false;\n }\n\n return true;\n });\n\n return { items, totalCount: items.length };\n },\n },\n\n payers: {\n get: async (): Promise<StediPayerResponse['items']> => [...seedPayers],\n\n search: async (\n queryParameters: Record<string, string[] | number | string>,\n ): Promise<StediPayerResponse['items']> => {\n const query =\n typeof queryParameters.query === 'string'\n ? queryParameters.query.toLowerCase()\n : undefined;\n const eligibilityCheck =\n typeof queryParameters.eligibilityCheck === 'string'\n ? queryParameters.eligibilityCheck\n : undefined;\n\n return seedPayers.filter((payer) => {\n if (query !== undefined) {\n const haystack = [\n payer.displayName,\n payer.primaryPayerId,\n payer.stediId,\n ...payer.names,\n ...payer.aliases,\n ]\n .join(' ')\n .toLowerCase();\n\n if (!haystack.includes(query)) {\n return false;\n }\n }\n\n if (\n eligibilityCheck !== undefined &&\n payer.transactionSupport.eligibilityCheck !== eligibilityCheck\n ) {\n return false;\n }\n\n return true;\n });\n },\n },\n\n provider: {\n create: async (\n input: StediProviderInput,\n ): Promise<StediProviderResponse> => {\n const id = `in-memory-provider-${input.npi}`;\n const existing = store.providers.get(id);\n\n // Idempotent on duplicate NPI: same id, no double entry. Mirrors\n // Stedi's 409-on-duplicate semantics by returning the existing record.\n if (existing) {\n return existing;\n }\n\n const timestamp = now();\n const created: StediProviderResponse = {\n contacts: input.contacts,\n createdAt: timestamp,\n id,\n name: input.name,\n npi: input.npi,\n taxId: input.taxId,\n taxIdType: input.taxIdType,\n updatedAt: timestamp,\n };\n\n store.providers.set(id, created);\n\n return created;\n },\n\n get: async (providerId: string): Promise<StediProviderResponse> => {\n const found = store.providers.get(providerId);\n\n if (!found) {\n throw new StediApiError('Not found', 404, undefined);\n }\n\n return found;\n },\n\n list: async (\n params: StediListProvidersParams = {},\n ): Promise<StediProviderListResponse> => {\n const { providerNpis, providerTaxIds } = params;\n\n const items = [...store.providers.values()]\n .filter(\n (provider) => !providerNpis || providerNpis.includes(provider.npi),\n )\n .filter(\n (provider) =>\n !providerTaxIds || providerTaxIds.includes(provider.taxId),\n )\n .map((provider) => ({\n id: provider.id,\n name: provider.name,\n npi: provider.npi,\n taxId: provider.taxId,\n taxIdType: provider.taxIdType,\n }));\n\n return { items };\n },\n },\n\n transactions: {\n get: async (): Promise<StediTransactionGetResponse> => {\n throw new StediApiError('Not found', 404, undefined);\n },\n\n list: async (): Promise<StediTransactionListResponse> =>\n buildTransactionPage(),\n\n search: async (): Promise<StediTransactionListResponse> =>\n buildTransactionPage(),\n },\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/in-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAE7B,KAAK,uBAAuB,EAI5B,KAAK,cAAc,EAInB,KAAK,qBAAqB,EAE1B,KAAK,4BAA4B,EAClC,MAAM,gBAAgB,CAAC;AAYxB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAClD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAC/C,CAAC;AAaF,MAAM,MAAM,0BAA0B,GAAG;IACvC,wBAAwB,CAAC,EAAE,CACzB,KAAK,EAAE,qBAAqB,KACzB,wBAAwB,CAAC;IAE9B,oBAAoB,CAAC,EAAE,MAAM,4BAA4B,CAAC;IAE1D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAkGF,eAAO,MAAM,wBAAwB,QAAO,kBAG1C,CAAC;AAWH,eAAO,MAAM,uBAAuB,GAAI,OAAO,kBAAkB,KAAG,IAGnE,CAAC;AAeF,eAAO,MAAM,yBAAyB,GACpC,UAAU,0BAA0B,KACnC,WAsNF,CAAC"}
1
+ {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/in-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAE7B,KAAK,uBAAuB,EAI5B,KAAK,cAAc,EAInB,KAAK,qBAAqB,EAE1B,KAAK,4BAA4B,EAClC,MAAM,gBAAgB,CAAC;AAYxB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAClD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAC/C,CAAC;AAaF,MAAM,MAAM,0BAA0B,GAAG;IACvC,wBAAwB,CAAC,EAAE,CACzB,KAAK,EAAE,qBAAqB,KACzB,wBAAwB,CAAC;IAE9B,oBAAoB,CAAC,EAAE,MAAM,4BAA4B,CAAC;IAE1D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAsKF,eAAO,MAAM,wBAAwB,QAAO,kBAG1C,CAAC;AAWH,eAAO,MAAM,uBAAuB,GAAI,OAAO,kBAAkB,KAAG,IAGnE,CAAC;AAeF,eAAO,MAAM,yBAAyB,GACpC,UAAU,0BAA0B,KACnC,WAsNF,CAAC"}
package/package.json CHANGED
@@ -43,5 +43,5 @@
43
43
  },
44
44
  "type": "module",
45
45
  "types": "dist/types/index.d.ts",
46
- "version": "1.6.0"
46
+ "version": "1.7.0"
47
47
  }