@icanbwell/bwell-sdk-ts 1.95.0 → 1.96.0-rc.1781282292

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.
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * This file is automatically generated. Please do not edit this file directly.
3
3
  */
4
- export declare const VERSION = "1.95.0";
4
+ export declare const VERSION = "1.96.0-rc.1781282292";
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * This file is automatically generated. Please do not edit this file directly.
3
3
  */
4
- export const VERSION = "1.95.0";
4
+ export const VERSION = "1.96.0-rc.1781282292";
@@ -3,6 +3,13 @@ import { type PersonGender } from "./types.js";
3
3
  export type UpdateProfileRequestInput = {
4
4
  id?: string;
5
5
  firstName?: string;
6
+ /**
7
+ * All middle names for the person. This replaces the entire `given[1..n]`
8
+ * array on the FHIR Person resource — partial updates are not supported.
9
+ * Callers must pass the complete list of middle names on every save.
10
+ * Requires {@link firstName} to be provided when this array is non-empty.
11
+ */
12
+ middleNames?: string[];
6
13
  lastName?: string;
7
14
  addressStreet?: string;
8
15
  addressUnit?: string;
@@ -6,6 +6,11 @@ export class UpdateProfileRequestValidator {
6
6
  if (!isUndefined(data.gender) && !isValidPersonGender(data.gender)) {
7
7
  errors.add(`Invalid gender value: "${data.gender}"`);
8
8
  }
9
+ if (!isUndefined(data.middleNames) &&
10
+ data.middleNames.length > 0 &&
11
+ isUndefined(data.firstName)) {
12
+ errors.add("middleNames requires firstName to be provided");
13
+ }
9
14
  }
10
15
  }
11
16
  /**
@@ -36,9 +36,9 @@ export interface UserManager {
36
36
  /**
37
37
  * Updates demographic information on the user profile.
38
38
  *
39
- * @return {Promise<BWellTransactionResult<UpdateProfileResults, BaseManagerError>>} A promise resolving to an object representing the updated user profile
39
+ * @return {Promise<BWellTransactionResult<UpdateProfileResults, BaseManagerError | ValidationError>>} A promise resolving to an object representing the updated user profile
40
40
  */
41
- updateProfile(request: UpdateProfileRequest): Promise<BWellTransactionResult<UpdateProfileResults, BaseManagerError>>;
41
+ updateProfile(request: UpdateProfileRequest): Promise<BWellTransactionResult<UpdateProfileResults, BaseManagerError | ValidationError>>;
42
42
  /**
43
43
  * Retreives a list of Consents.
44
44
  *
@@ -16,6 +16,7 @@ export type GraphQLClientInitializeResult = {
16
16
  client: GraphQLClient;
17
17
  sdk: GraphQLSdk;
18
18
  };
19
+ export declare const SDK_CLIENT_NAME = "bwell-typescript-v1";
19
20
  export declare function graphQLSDKFactory(endpoint: string, tokenManager?: TokenManager, language?: Nullable<Language>): GraphQLClientInitializeResult;
20
21
  /**
21
22
  * Create a graphql-request request middleware that uses the provided token manager
@@ -8,13 +8,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { GraphQLClient } from "graphql-request";
11
+ import { VERSION } from "../../../__version__.js";
11
12
  import { getSdk } from "../../../graphql/index.js";
13
+ import { getPlatformHeader } from "../../../utils/platform.js";
14
+ export const SDK_CLIENT_NAME = "bwell-typescript-v1";
12
15
  export function graphQLSDKFactory(endpoint, tokenManager, language) {
13
16
  let requestMiddleware = undefined;
14
17
  if (tokenManager !== undefined) {
15
18
  requestMiddleware = createAuthMiddleware(tokenManager);
16
19
  }
17
- const headers = {};
20
+ const headers = {
21
+ "apollographql-client-name": SDK_CLIENT_NAME,
22
+ "apollographql-client-version": VERSION,
23
+ "bwell-platform": getPlatformHeader(),
24
+ };
18
25
  if (language !== undefined && language !== null) {
19
26
  headers["accept-language"] = language;
20
27
  }
@@ -13,7 +13,7 @@ export declare class GraphQLUserManager extends GraphQLManager implements UserMa
13
13
  constructor(sdk: GraphQLSdk, loggerProvider?: LoggerProvider);
14
14
  getProfile(): Promise<BWellQueryResult<ProfileResults, BaseManagerError>>;
15
15
  delete(): Promise<BWellTransactionResult<null, BaseManagerError>>;
16
- updateProfile(request: UpdateProfileRequest): Promise<BWellTransactionResult<UpdateProfileResults, BaseManagerError>>;
16
+ updateProfile(request: UpdateProfileRequest): Promise<BWellTransactionResult<UpdateProfileResults, BaseManagerError | ValidationError>>;
17
17
  getConsents(request?: GetConsentsRequest): Promise<BWellQueryResult<GetConsentsResults, BaseManagerError | ValidationError>>;
18
18
  createConsent(request: CreateConsentRequest): Promise<BWellTransactionResult<CreateConsentResults, BaseManagerError | ValidationError>>;
19
19
  createDataExportDirectDownloadUrl(request: CreateDataExportDirectDownloadUrlRequest): Promise<BWellTransactionResult<CreateDataExportDirectDownloadUrlResults, BaseManagerError>>;
@@ -70,6 +70,10 @@ export class GraphQLUserManager extends GraphQLManager {
70
70
  }
71
71
  updateProfile(request) {
72
72
  return __awaiter(this, void 0, void 0, function* () {
73
+ const validationResult = request.validate();
74
+ if (validationResult.failure()) {
75
+ return validationResult;
76
+ }
73
77
  __classPrivateFieldGet(this, _GraphQLUserManager_logger, "f").verbose("calling updateUserProfile");
74
78
  const result = yield this.handleTransaction(__classPrivateFieldGet(this, _GraphQLUserManager_sdk, "f").updateUserProfile(__classPrivateFieldGet(this, _GraphQLUserManager_updateProfileRequestFactory, "f").create(request)));
75
79
  __classPrivateFieldGet(this, _GraphQLUserManager_logger, "f").verbose("updateUserProfile complete");
@@ -33,11 +33,14 @@ _UpdateProfileRequestFactory_instances = new WeakSet(), _UpdateProfileRequestFac
33
33
  data[key] = inputVal;
34
34
  }, _UpdateProfileRequestFactory_transformNameInput = function _UpdateProfileRequestFactory_transformNameInput(input, data) {
35
35
  let includeName = false;
36
- const { firstName, lastName } = input;
36
+ const { firstName, middleNames, lastName } = input;
37
37
  const name = {};
38
38
  if (isNotNullOrUndefined(firstName)) {
39
39
  includeName = true;
40
- name.given = [firstName];
40
+ name.given =
41
+ isNotNullOrUndefined(middleNames) && middleNames.length > 0
42
+ ? [firstName, ...middleNames]
43
+ : [firstName];
41
44
  }
42
45
  if (isNotNullOrUndefined(lastName)) {
43
46
  includeName = true;
@@ -100,7 +100,7 @@ export declare const ActivateDirectConnectionDocument = "\n mutation activate
100
100
  export declare const CreateConnectionDocument = "\n mutation createConnection($connectionId: String!, $username: String, $password: String, $integrationType: IntegrationType) {\n createConnection(\n connectionId: $connectionId\n username: $username\n password: $password\n integrationType: $integrationType\n ) {\n id\n status\n name\n category\n type\n isDirect\n syncStatus\n statusUpdated\n lastSynced\n created\n }\n}\n ";
101
101
  export declare const DeleteConnectionDocument = "\n mutation deleteConnection($connectionId: String!) {\n deleteConnection(connectionId: $connectionId) {\n status\n statusUpdated\n }\n}\n ";
102
102
  export declare const DisconnectConnectionDocument = "\n mutation disconnectConnection($connectionId: String!) {\n disconnectConnection(connectionId: $connectionId) {\n status\n statusUpdated\n }\n}\n ";
103
- export declare const GetDataSourceDocument = "\n query getDataSource($connectionId: String!) {\n getDataSource(connectionId: $connectionId) {\n id\n name\n category\n type\n isDirect\n }\n}\n ";
103
+ export declare const GetDataSourceDocument = "\n query getDataSource($connectionId: String!) {\n getDataSource(connectionId: $connectionId) {\n id\n name\n category\n type\n isDirect\n consentPolicyUrl\n consentValidityDuration\n integrationType\n endpointStatus\n }\n}\n ";
104
104
  export declare const GetMemberConnectionsDocument = "\n query getMemberConnections($integrationType: [String!] = null, $status: [String!] = null) {\n getMemberConnections(integrationType: $integrationType, status: $status) {\n id\n name\n category\n type\n status\n syncStatus\n statusUpdated\n lastSynced\n created\n isDirect\n integrationType\n }\n subscription_subscription {\n entry {\n resource {\n service_slug\n subscriptionStatus {\n error {\n ...CodeableConceptFields\n }\n extension {\n id\n url\n valueString\n }\n }\n }\n }\n }\n}\n \n fragment CodeableConceptFields on CodeableConcept {\n text\n coding {\n ...CodingFields\n }\n}\n \n fragment CodingFields on Coding {\n system\n code\n display\n}\n ";
105
105
  export declare const GetOauthUrlDocument = "\n query getOauthUrl($connectionId: String!) {\n getOauthUrl(connectionId: $connectionId) {\n redirectUrl\n }\n}\n ";
106
106
  export declare const AcceptDataSharingInvitationDocument = "\n mutation AcceptDataSharingInvitation($code: String!) {\n acceptDataSharingInvitation(input: {code: $code}) {\n resourceType\n id\n issue {\n severity\n code\n details {\n text\n coding {\n system\n code\n display\n }\n }\n }\n }\n}\n ";
@@ -2006,6 +2006,10 @@ export const GetDataSourceDocument = `
2006
2006
  category
2007
2007
  type
2008
2008
  isDirect
2009
+ consentPolicyUrl
2010
+ consentValidityDuration
2011
+ integrationType
2012
+ endpointStatus
2009
2013
  }
2010
2014
  }
2011
2015
  `;
@@ -9079,6 +9079,10 @@ export type GetDataSourceQueryResults = {
9079
9079
  category: Types.ConnectionCategory;
9080
9080
  type: Types.DataConnectionType;
9081
9081
  isDirect: boolean;
9082
+ consentPolicyUrl: string | null;
9083
+ consentValidityDuration: string | null;
9084
+ integrationType: string | null;
9085
+ endpointStatus: string | null;
9082
9086
  };
9083
9087
  };
9084
9088
  export type GetMemberConnectionsQueryVariables = Types.Exact<{
@@ -1244,10 +1244,16 @@ export type Connection = {
1244
1244
  __typename?: 'Connection';
1245
1245
  /** Category of data source */
1246
1246
  category: ConnectionCategory;
1247
+ /** URL of the consent policy */
1248
+ consentPolicyUrl?: Maybe<Scalars['String']['output']>;
1249
+ /** ISO 8601 duration (e.g. P1Y, P30D) for which member consent remains valid */
1250
+ consentValidityDuration?: Maybe<Scalars['String']['output']>;
1247
1251
  /** Token creation datetime */
1248
1252
  created: Scalars['DateTime']['output'];
1249
1253
  /** URL to disconnect this device connection */
1250
1254
  disconnectUrl?: Maybe<Scalars['String']['output']>;
1255
+ /** Operational status of the endpoint */
1256
+ endpointStatus?: Maybe<Scalars['String']['output']>;
1251
1257
  /** Uniquely identifies a data source */
1252
1258
  id: Scalars['String']['output'];
1253
1259
  /** Specifies whether the connection is direct or indirect or proa */
@@ -1873,6 +1879,12 @@ export type DataSource = {
1873
1879
  __typename?: 'DataSource';
1874
1880
  /** Category of data source */
1875
1881
  category: ConnectionCategory;
1882
+ /** URL of the consent policy */
1883
+ consentPolicyUrl?: Maybe<Scalars['String']['output']>;
1884
+ /** ISO 8601 duration (e.g. P1Y, P30D) for which member consent remains valid */
1885
+ consentValidityDuration?: Maybe<Scalars['String']['output']>;
1886
+ /** Operational status of the endpoint */
1887
+ endpointStatus?: Maybe<Scalars['String']['output']>;
1876
1888
  /** Uniquely identifies a data source */
1877
1889
  id: Scalars['String']['output'];
1878
1890
  /** Specifies whether the connection is direct or indirect or proa */
@@ -2302,6 +2314,7 @@ export type EmbeddableConfiguration = {
2302
2314
  authStrategy: Scalars['String']['output'];
2303
2315
  idleThreshold: Scalars['Int']['output'];
2304
2316
  routeDefinition: Array<RouteDefinition>;
2317
+ themeId?: Maybe<Scalars['String']['output']>;
2305
2318
  webSdkVersion: Scalars['String']['output'];
2306
2319
  };
2307
2320
  export declare enum EmpiType {
@@ -1,6 +1,7 @@
1
1
  export * from "./base64.js";
2
2
  export * from "./date-utils.js";
3
3
  export * from "./parsing-utils.js";
4
+ export * from "./platform.js";
4
5
  export * from "./runtime.js";
5
6
  export * from "./string-utils.js";
6
7
  export * from "./type-utils.js";
@@ -1,6 +1,7 @@
1
1
  export * from "./base64.js";
2
2
  export * from "./date-utils.js";
3
3
  export * from "./parsing-utils.js";
4
+ export * from "./platform.js";
4
5
  export * from "./runtime.js";
5
6
  export * from "./string-utils.js";
6
7
  export * from "./type-utils.js";
@@ -0,0 +1 @@
1
+ export declare function getPlatformHeader(): string;
@@ -0,0 +1,21 @@
1
+ import { executeForRuntime } from "./runtime.js";
2
+ const BROWSERS = [
3
+ { name: "Edge", tokens: ["Edg"] },
4
+ { name: "Chrome", tokens: ["CriOS", "Chrome"] },
5
+ { name: "Firefox", tokens: ["FxiOS", "Firefox"] },
6
+ { name: "Safari", tokens: ["Safari"] },
7
+ ];
8
+ function detectBrowser(ua) {
9
+ for (const browser of BROWSERS) {
10
+ if (browser.tokens.some((token) => ua.includes(token))) {
11
+ return browser.name;
12
+ }
13
+ }
14
+ return "Unknown";
15
+ }
16
+ export function getPlatformHeader() {
17
+ return executeForRuntime({
18
+ node: () => `Node/${process.versions.node}`,
19
+ browser: () => `Browser/${detectBrowser(navigator.userAgent)}`,
20
+ });
21
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icanbwell/bwell-sdk-ts",
3
- "version": "1.95.0",
3
+ "version": "1.96.0-rc.1781282292",
4
4
  "description": "b.well TypeScript SDK",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",