conductor-node 7.3.3 → 7.3.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conductor-node",
3
- "version": "7.3.3",
3
+ "version": "7.3.5",
4
4
  "description": "Easily integrate with the entire QuickBooks Desktop API with fully-typed async TypeScript",
5
5
  "author": "Danny Nemer <hi@DannyNemer.com>",
6
6
  "license": "MIT",
@@ -1,5 +1,5 @@
1
1
  import type { Environment } from "./environment";
2
- import type { GraphqlCreateIntegrationConnectionMutation, GraphqlGetConnectionStatusQuery, GraphqlGetConnectionStatusQueryVariables, GraphqlGetIntegrationConnectionQuery, GraphqlGetIntegrationConnectionQueryVariables, GraphqlGetIntegrationConnectionsQuery, GraphqlIntegrationRequestInput, GraphqlIntegrationRequestQuery, GraphqlIsIntegrationConnectionActiveQuery, GraphqlIsIntegrationConnectionActiveQueryVariables } from "./graphql/__generated__/operationTypes";
2
+ import type { GraphqlCreateIntegrationConnectionMutation, GraphqlGetConnectionStatusQuery, GraphqlGetConnectionStatusQueryVariables, GraphqlGetIntegrationConnectionQuery, GraphqlGetIntegrationConnectionQueryVariables, GraphqlGetIntegrationConnectionsQuery, GraphqlIsIntegrationConnectionActiveQuery, GraphqlIsIntegrationConnectionActiveQueryVariables, GraphqlSendIntegrationRequestInput, GraphqlSendIntegrationRequestMutation } from "./graphql/__generated__/operationTypes";
3
3
  import QbdIntegration from "./integrations/qbd/QbdIntegration";
4
4
  export interface ClientOptions {
5
5
  /** Log each request and response. */
@@ -16,26 +16,6 @@ export default class Client {
16
16
  constructor(apiKey: string, { verbose, serverEnvironment }?: ClientOptions);
17
17
  getIntegrationConnection(integrationConnectionId: GraphqlGetIntegrationConnectionQueryVariables["integrationConnectionId"]): Promise<GraphqlGetIntegrationConnectionQuery["integrationConnection"]>;
18
18
  getIntegrationConnections(): Promise<GraphqlGetIntegrationConnectionsQuery["integrationConnections"]>;
19
- /**
20
- * Create a new integration connection.
21
- *
22
- * @param input - The input object to create the integration connection.
23
- * @param input.integrationKey The identifier of the third-party platform to
24
- * integrate.
25
- * @param input.endUserEmail Your end-user's email address for identification
26
- * only. No emails will be sent. Must be distinct from your other connections
27
- * for the same integration.
28
- * @param input.endUserCompanyName Your end-user's company name that will be
29
- * shown elsewhere in Conductor.
30
- * @returns The newly created integration connection.
31
- */
32
- createIntegrationConnection(input: {
33
- endUserEmail: string;
34
- /** @deprecated Use endUserCompanyName instead */
35
- endUserName?: string;
36
- endUserCompanyName?: string;
37
- integrationKey: "quickbooks-desktop";
38
- }): Promise<GraphqlCreateIntegrationConnectionMutation["createIntegrationConnection"]>;
39
19
  isIntegrationConnectionActive(integrationConnectionId: GraphqlIsIntegrationConnectionActiveQueryVariables["integrationConnectionId"], secondsSinceLastActive?: GraphqlIsIntegrationConnectionActiveQueryVariables["secondsSinceLastActive"]): Promise<GraphqlIsIntegrationConnectionActiveQuery["integrationConnection"]["isActive"]>;
40
20
  /**
41
21
  * Check whether we can successfully connect to the end-user's QBD instance.
@@ -56,7 +36,27 @@ export default class Client {
56
36
  * computer is on and QuickBooks Desktop is open".
57
37
  */
58
38
  getConnectionStatus(integrationConnectionId: GraphqlGetConnectionStatusQueryVariables["integrationConnectionId"]): Promise<GraphqlGetConnectionStatusQuery["integrationConnection"]["connectionStatus"]>;
59
- integrationRequest(input: GraphqlIntegrationRequestInput): Promise<GraphqlIntegrationRequestQuery["integrationRequest"]>;
39
+ /**
40
+ * Create a new integration connection.
41
+ *
42
+ * @param input - The input object to create the integration connection.
43
+ * @param input.integrationKey The identifier of the third-party platform to
44
+ * integrate.
45
+ * @param input.endUserEmail Your end-user's email address for identification
46
+ * only. No emails will be sent. Must be distinct from your other connections
47
+ * for the same integration.
48
+ * @param input.endUserCompanyName Your end-user's company name that will be
49
+ * shown elsewhere in Conductor.
50
+ * @returns The newly created integration connection.
51
+ */
52
+ createIntegrationConnection(input: {
53
+ endUserEmail: string;
54
+ /** @deprecated Use endUserCompanyName instead */
55
+ endUserName?: string;
56
+ endUserCompanyName?: string;
57
+ integrationKey: "quickbooks-desktop";
58
+ }): Promise<GraphqlCreateIntegrationConnectionMutation["createIntegrationConnection"]>;
59
+ sendIntegrationRequest(input: GraphqlSendIntegrationRequestInput): Promise<GraphqlSendIntegrationRequestMutation["sendIntegrationRequest"]["response"]>;
60
60
  private graphqlOperationWrapper;
61
61
  private checkForUpdates;
62
62
  }
@@ -47,6 +47,37 @@ class Client {
47
47
  .getIntegrationConnections()
48
48
  .then((result) => result.integrationConnections);
49
49
  }
50
+ async isIntegrationConnectionActive(integrationConnectionId, secondsSinceLastActive = 60) {
51
+ return this.graphqlOperations
52
+ .isIntegrationConnectionActive({
53
+ integrationConnectionId,
54
+ secondsSinceLastActive,
55
+ })
56
+ .then((result) => result.integrationConnection.isActive);
57
+ }
58
+ /**
59
+ * Check whether we can successfully connect to the end-user's QBD instance.
60
+ *
61
+ * Unlike `lastHeartbeatAt`, which only checks if QBWC is running (i.e., is
62
+ * the user's computer on), this check fails if the user's computer is on but
63
+ * QBD is not running, the wrong company file is open, or there is a modal
64
+ * dialog open in QBD.
65
+ *
66
+ * @param integrationConnectionId The ID of the integration connection.
67
+ * @returns result Object with the following properties:
68
+ * @returns result.isConnected Whether we can connect to QBD.
69
+ * @returns result.devErrorMessage If `isConnected=false`, this will be the
70
+ * corresponding error message for the developer; e.g., "The end-user's
71
+ * computer is likely off".
72
+ * @returns result.endUserErrorMessage If `isConnected=false`, this will be
73
+ * the corresponding error message for the end-user; e.g., "Please ensure your
74
+ * computer is on and QuickBooks Desktop is open".
75
+ */
76
+ async getConnectionStatus(integrationConnectionId) {
77
+ return this.graphqlOperations
78
+ .getConnectionStatus({ integrationConnectionId })
79
+ .then((result) => result.integrationConnection.connectionStatus);
80
+ }
50
81
  /**
51
82
  * Create a new integration connection.
52
83
  *
@@ -81,43 +112,12 @@ class Client {
81
112
  })
82
113
  .then((result) => result.createIntegrationConnection);
83
114
  }
84
- async isIntegrationConnectionActive(integrationConnectionId, secondsSinceLastActive = 60) {
85
- return this.graphqlOperations
86
- .isIntegrationConnectionActive({
87
- integrationConnectionId,
88
- secondsSinceLastActive,
89
- })
90
- .then((result) => result.integrationConnection.isActive);
91
- }
92
- /**
93
- * Check whether we can successfully connect to the end-user's QBD instance.
94
- *
95
- * Unlike `lastHeartbeatAt`, which only checks if QBWC is running (i.e., is
96
- * the user's computer on), this check fails if the user's computer is on but
97
- * QBD is not running, the wrong company file is open, or there is a modal
98
- * dialog open in QBD.
99
- *
100
- * @param integrationConnectionId The ID of the integration connection.
101
- * @returns result Object with the following properties:
102
- * @returns result.isConnected Whether we can connect to QBD.
103
- * @returns result.devErrorMessage If `isConnected=false`, this will be the
104
- * corresponding error message for the developer; e.g., "The end-user's
105
- * computer is likely off".
106
- * @returns result.endUserErrorMessage If `isConnected=false`, this will be
107
- * the corresponding error message for the end-user; e.g., "Please ensure your
108
- * computer is on and QuickBooks Desktop is open".
109
- */
110
- async getConnectionStatus(integrationConnectionId) {
111
- return this.graphqlOperations
112
- .getConnectionStatus({ integrationConnectionId })
113
- .then((result) => result.integrationConnection.connectionStatus);
114
- }
115
115
  // TODO: Hide this method from the dev-user while still allowing the
116
116
  // integration clients to access it.
117
- async integrationRequest(input) {
117
+ async sendIntegrationRequest(input) {
118
118
  return this.graphqlOperations
119
- .integrationRequest({ input })
120
- .then((result) => result.integrationRequest);
119
+ .sendIntegrationRequest({ input })
120
+ .then((result) => result.sendIntegrationRequest.response);
121
121
  }
122
122
  async graphqlOperationWrapper(operationName, variables, operation) {
123
123
  if (this.verbose) {
@@ -62,26 +62,29 @@ export type GraphqlIntegrationConnection = {
62
62
  export type GraphqlIntegrationConnectionIsActiveArgs = {
63
63
  secondsSinceLastActive: Scalars["Int"];
64
64
  };
65
- export type GraphqlIntegrationRequestInput = {
66
- integrationConnectionId: Scalars["ID"];
67
- requestObject: Scalars["JSONObject"];
68
- };
69
65
  export type GraphqlMutation = {
70
66
  createIntegrationConnection: GraphqlCreateIntegrationConnectionResult;
67
+ sendIntegrationRequest: GraphqlSendIntegrationRequestResult;
71
68
  };
72
69
  export type GraphqlMutationCreateIntegrationConnectionArgs = {
73
70
  input: GraphqlCreateIntegrationConnectionInput;
74
71
  };
72
+ export type GraphqlMutationSendIntegrationRequestArgs = {
73
+ input: GraphqlSendIntegrationRequestInput;
74
+ };
75
75
  export type GraphqlQuery = {
76
76
  integrationConnection: GraphqlIntegrationConnection;
77
77
  integrationConnections: Array<GraphqlIntegrationConnection>;
78
- integrationRequest: Scalars["JSONObject"];
79
78
  };
80
79
  export type GraphqlQueryIntegrationConnectionArgs = {
81
80
  id: Scalars["ID"];
82
81
  };
83
- export type GraphqlQueryIntegrationRequestArgs = {
84
- input: GraphqlIntegrationRequestInput;
82
+ export type GraphqlSendIntegrationRequestInput = {
83
+ integrationConnectionId: Scalars["ID"];
84
+ requestObject: Scalars["JSONObject"];
85
+ };
86
+ export type GraphqlSendIntegrationRequestResult = {
87
+ response: Scalars["JSONObject"];
85
88
  };
86
89
  export type GraphqlIntegrationConnectionFragment = {
87
90
  id: string;
@@ -114,22 +117,6 @@ export type GraphqlGetIntegrationConnectionsQuery = {
114
117
  lastHeartbeatAt: Date | null;
115
118
  }>;
116
119
  };
117
- export type GraphqlCreateIntegrationConnectionMutationVariables = Exact<{
118
- input: GraphqlCreateIntegrationConnectionInput;
119
- }>;
120
- export type GraphqlCreateIntegrationConnectionMutation = {
121
- createIntegrationConnection: {
122
- qbwcPassword: string;
123
- qwcFileDownloadUrl: string;
124
- integrationConnection: {
125
- id: string;
126
- integrationKey: string;
127
- endUserEmail: string;
128
- endUserCompanyName: string;
129
- lastHeartbeatAt: Date | null;
130
- };
131
- };
132
- };
133
120
  export type GraphqlIsIntegrationConnectionActiveQueryVariables = Exact<{
134
121
  integrationConnectionId: Scalars["ID"];
135
122
  secondsSinceLastActive: Scalars["Int"];
@@ -151,26 +138,44 @@ export type GraphqlGetConnectionStatusQuery = {
151
138
  };
152
139
  };
153
140
  };
154
- export type GraphqlIntegrationRequestQueryVariables = Exact<{
155
- input: GraphqlIntegrationRequestInput;
141
+ export type GraphqlCreateIntegrationConnectionMutationVariables = Exact<{
142
+ input: GraphqlCreateIntegrationConnectionInput;
143
+ }>;
144
+ export type GraphqlCreateIntegrationConnectionMutation = {
145
+ createIntegrationConnection: {
146
+ qbwcPassword: string;
147
+ qwcFileDownloadUrl: string;
148
+ integrationConnection: {
149
+ id: string;
150
+ integrationKey: string;
151
+ endUserEmail: string;
152
+ endUserCompanyName: string;
153
+ lastHeartbeatAt: Date | null;
154
+ };
155
+ };
156
+ };
157
+ export type GraphqlSendIntegrationRequestMutationVariables = Exact<{
158
+ input: GraphqlSendIntegrationRequestInput;
156
159
  }>;
157
- export type GraphqlIntegrationRequestQuery = {
158
- integrationRequest: object;
160
+ export type GraphqlSendIntegrationRequestMutation = {
161
+ sendIntegrationRequest: {
162
+ response: object;
163
+ };
159
164
  };
160
165
  export declare const IntegrationConnectionFragmentDoc = "\n fragment IntegrationConnection on IntegrationConnection {\n id\n integrationKey\n endUserEmail\n endUserCompanyName\n lastHeartbeatAt\n}\n ";
161
166
  export declare const GetIntegrationConnectionDocument: string;
162
167
  export declare const GetIntegrationConnectionsDocument: string;
163
- export declare const CreateIntegrationConnectionDocument: string;
164
168
  export declare const IsIntegrationConnectionActiveDocument = "\n query isIntegrationConnectionActive($integrationConnectionId: ID!, $secondsSinceLastActive: Int!) {\n integrationConnection(id: $integrationConnectionId) {\n isActive(secondsSinceLastActive: $secondsSinceLastActive)\n }\n}\n ";
165
169
  export declare const GetConnectionStatusDocument = "\n query getConnectionStatus($integrationConnectionId: ID!) {\n integrationConnection(id: $integrationConnectionId) {\n connectionStatus {\n isConnected\n devErrorMessage\n endUserErrorMessage\n }\n }\n}\n ";
166
- export declare const IntegrationRequestDocument = "\n query integrationRequest($input: IntegrationRequestInput!) {\n integrationRequest(input: $input)\n}\n ";
170
+ export declare const CreateIntegrationConnectionDocument: string;
171
+ export declare const SendIntegrationRequestDocument = "\n mutation sendIntegrationRequest($input: SendIntegrationRequestInput!) {\n sendIntegrationRequest(input: $input) {\n response\n }\n}\n ";
167
172
  export type SdkFunctionWrapper = <T>(action: (requestHeaders?: Record<string, string>) => Promise<T>, operationName: string, operationType?: string) => Promise<T>;
168
173
  export declare function getSdk(client: GraphQLClient, withWrapper?: SdkFunctionWrapper): {
169
174
  getIntegrationConnection(variables: GraphqlGetIntegrationConnectionQueryVariables, requestHeaders?: (Record<string, string> | Dom.Headers | string[][]) | undefined): Promise<GraphqlGetIntegrationConnectionQuery>;
170
175
  getIntegrationConnections(variables?: GraphqlGetIntegrationConnectionsQueryVariables, requestHeaders?: (Record<string, string> | Dom.Headers | string[][]) | undefined): Promise<GraphqlGetIntegrationConnectionsQuery>;
171
- createIntegrationConnection(variables: GraphqlCreateIntegrationConnectionMutationVariables, requestHeaders?: (Record<string, string> | Dom.Headers | string[][]) | undefined): Promise<GraphqlCreateIntegrationConnectionMutation>;
172
176
  isIntegrationConnectionActive(variables: GraphqlIsIntegrationConnectionActiveQueryVariables, requestHeaders?: (Record<string, string> | Dom.Headers | string[][]) | undefined): Promise<GraphqlIsIntegrationConnectionActiveQuery>;
173
177
  getConnectionStatus(variables: GraphqlGetConnectionStatusQueryVariables, requestHeaders?: (Record<string, string> | Dom.Headers | string[][]) | undefined): Promise<GraphqlGetConnectionStatusQuery>;
174
- integrationRequest(variables: GraphqlIntegrationRequestQueryVariables, requestHeaders?: (Record<string, string> | Dom.Headers | string[][]) | undefined): Promise<GraphqlIntegrationRequestQuery>;
178
+ createIntegrationConnection(variables: GraphqlCreateIntegrationConnectionMutationVariables, requestHeaders?: (Record<string, string> | Dom.Headers | string[][]) | undefined): Promise<GraphqlCreateIntegrationConnectionMutation>;
179
+ sendIntegrationRequest(variables: GraphqlSendIntegrationRequestMutationVariables, requestHeaders?: (Record<string, string> | Dom.Headers | string[][]) | undefined): Promise<GraphqlSendIntegrationRequestMutation>;
175
180
  };
176
181
  export type Sdk = ReturnType<typeof getSdk>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSdk = exports.IntegrationRequestDocument = exports.GetConnectionStatusDocument = exports.IsIntegrationConnectionActiveDocument = exports.CreateIntegrationConnectionDocument = exports.GetIntegrationConnectionsDocument = exports.GetIntegrationConnectionDocument = exports.IntegrationConnectionFragmentDoc = void 0;
3
+ exports.getSdk = exports.SendIntegrationRequestDocument = exports.CreateIntegrationConnectionDocument = exports.GetConnectionStatusDocument = exports.IsIntegrationConnectionActiveDocument = exports.GetIntegrationConnectionsDocument = exports.GetIntegrationConnectionDocument = exports.IntegrationConnectionFragmentDoc = void 0;
4
4
  exports.IntegrationConnectionFragmentDoc = `
5
5
  fragment IntegrationConnection on IntegrationConnection {
6
6
  id
@@ -24,17 +24,6 @@ exports.GetIntegrationConnectionsDocument = `
24
24
  }
25
25
  }
26
26
  ${exports.IntegrationConnectionFragmentDoc}`;
27
- exports.CreateIntegrationConnectionDocument = `
28
- mutation createIntegrationConnection($input: CreateIntegrationConnectionInput!) {
29
- createIntegrationConnection(input: $input) {
30
- integrationConnection {
31
- ...IntegrationConnection
32
- }
33
- qbwcPassword
34
- qwcFileDownloadUrl
35
- }
36
- }
37
- ${exports.IntegrationConnectionFragmentDoc}`;
38
27
  exports.IsIntegrationConnectionActiveDocument = `
39
28
  query isIntegrationConnectionActive($integrationConnectionId: ID!, $secondsSinceLastActive: Int!) {
40
29
  integrationConnection(id: $integrationConnectionId) {
@@ -53,9 +42,22 @@ exports.GetConnectionStatusDocument = `
53
42
  }
54
43
  }
55
44
  `;
56
- exports.IntegrationRequestDocument = `
57
- query integrationRequest($input: IntegrationRequestInput!) {
58
- integrationRequest(input: $input)
45
+ exports.CreateIntegrationConnectionDocument = `
46
+ mutation createIntegrationConnection($input: CreateIntegrationConnectionInput!) {
47
+ createIntegrationConnection(input: $input) {
48
+ integrationConnection {
49
+ ...IntegrationConnection
50
+ }
51
+ qbwcPassword
52
+ qwcFileDownloadUrl
53
+ }
54
+ }
55
+ ${exports.IntegrationConnectionFragmentDoc}`;
56
+ exports.SendIntegrationRequestDocument = `
57
+ mutation sendIntegrationRequest($input: SendIntegrationRequestInput!) {
58
+ sendIntegrationRequest(input: $input) {
59
+ response
60
+ }
59
61
  }
60
62
  `;
61
63
  const defaultWrapper = (action, _operationName, _operationType) => action();
@@ -67,17 +69,17 @@ function getSdk(client, withWrapper = defaultWrapper) {
67
69
  getIntegrationConnections(variables, requestHeaders) {
68
70
  return withWrapper((wrappedRequestHeaders) => client.request(exports.GetIntegrationConnectionsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getIntegrationConnections", "query");
69
71
  },
70
- createIntegrationConnection(variables, requestHeaders) {
71
- return withWrapper((wrappedRequestHeaders) => client.request(exports.CreateIntegrationConnectionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "createIntegrationConnection", "mutation");
72
- },
73
72
  isIntegrationConnectionActive(variables, requestHeaders) {
74
73
  return withWrapper((wrappedRequestHeaders) => client.request(exports.IsIntegrationConnectionActiveDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "isIntegrationConnectionActive", "query");
75
74
  },
76
75
  getConnectionStatus(variables, requestHeaders) {
77
76
  return withWrapper((wrappedRequestHeaders) => client.request(exports.GetConnectionStatusDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getConnectionStatus", "query");
78
77
  },
79
- integrationRequest(variables, requestHeaders) {
80
- return withWrapper((wrappedRequestHeaders) => client.request(exports.IntegrationRequestDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "integrationRequest", "query");
78
+ createIntegrationConnection(variables, requestHeaders) {
79
+ return withWrapper((wrappedRequestHeaders) => client.request(exports.CreateIntegrationConnectionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "createIntegrationConnection", "mutation");
80
+ },
81
+ sendIntegrationRequest(variables, requestHeaders) {
82
+ return withWrapper((wrappedRequestHeaders) => client.request(exports.SendIntegrationRequestDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "sendIntegrationRequest", "mutation");
81
83
  },
82
84
  };
83
85
  }
@@ -668,7 +668,7 @@ class QbdIntegration extends BaseIntegration_1.default {
668
668
  * https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop
669
669
  */
670
670
  async sendRequest(integrationConnectionId, requestObject) {
671
- return this.client.integrationRequest({
671
+ return this.client.sendIntegrationRequest({
672
672
  integrationConnectionId,
673
673
  requestObject,
674
674
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conductor-node",
3
- "version": "7.3.3",
3
+ "version": "7.3.5",
4
4
  "description": "Easily integrate with the entire QuickBooks Desktop API with fully-typed async TypeScript",
5
5
  "author": "Danny Nemer <hi@DannyNemer.com>",
6
6
  "license": "MIT",