@emilgroup/billing-sdk 1.63.1-beta.2 → 1.63.1-beta.20

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 CHANGED
@@ -17,11 +17,11 @@ Although this package can be used in both TypeScript and JavaScript, it is inten
17
17
  Navigate to the folder of your consuming project and run one of the following commands:
18
18
 
19
19
  ```
20
- npm install @emilgroup/billing-sdk@1.63.1-beta.2 --save
20
+ npm install @emilgroup/billing-sdk@1.63.1-beta.20 --save
21
21
  ```
22
22
  or
23
23
  ```
24
- yarn add @emilgroup/billing-sdk@1.63.1-beta.2
24
+ yarn add @emilgroup/billing-sdk@1.63.1-beta.20
25
25
  ```
26
26
 
27
27
  And then you can import `InvoicesApi`.
@@ -146,11 +146,11 @@ export const InvoicesApiAxiosParamCreator = function (configuration?: Configurat
146
146
  * @param {string} [authorization] Bearer Token
147
147
  * @param {number} [pageSize] A limit on the number of objects to be returned. Limit ranges between 1 and 50. Default: 10.
148
148
  * @param {string} [pageToken] A cursor for use in pagination. pageToken is an ID that defines your place in the list. For instance, if you make a list request and receive 100 objects and pageToken=1, your subsequent call can include pageToken=2 in order to fetch the next page of the list.
149
- * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp</i>
149
+ * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp</i>
150
150
  * @param {string} [search] To search the list by any field, pass search=xxx to fetch the result.
151
151
  * @param {string} [order] Order allows you to specify the desired order of entities retrieved from the server by ascending (ASC) or descending (DESC) order.<br/> <br/> <i>Allowed values: invoiceNumber, status, netAmount, grossAmount, createdAt, dueDate, id, paymentMethodType, paymentMethodPsp</i>
152
152
  * @param {string} [expand] Expand to fetch additional information about the list items. Expanding resources can reduce the number of API calls required to accomplish a task. Use with discretion as some expanded fields can drastically increase payload size.<br/> <br/> <i>Allowed values: statuses, payments, invoiceItems<i>
153
- * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp</i>
153
+ * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp</i>
154
154
  * @param {*} [options] Override http request option.
155
155
  * @throws {RequiredError}
156
156
  */
@@ -335,11 +335,11 @@ export const InvoicesApiFp = function(configuration?: Configuration) {
335
335
  * @param {string} [authorization] Bearer Token
336
336
  * @param {number} [pageSize] A limit on the number of objects to be returned. Limit ranges between 1 and 50. Default: 10.
337
337
  * @param {string} [pageToken] A cursor for use in pagination. pageToken is an ID that defines your place in the list. For instance, if you make a list request and receive 100 objects and pageToken=1, your subsequent call can include pageToken=2 in order to fetch the next page of the list.
338
- * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp</i>
338
+ * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp</i>
339
339
  * @param {string} [search] To search the list by any field, pass search=xxx to fetch the result.
340
340
  * @param {string} [order] Order allows you to specify the desired order of entities retrieved from the server by ascending (ASC) or descending (DESC) order.<br/> <br/> <i>Allowed values: invoiceNumber, status, netAmount, grossAmount, createdAt, dueDate, id, paymentMethodType, paymentMethodPsp</i>
341
341
  * @param {string} [expand] Expand to fetch additional information about the list items. Expanding resources can reduce the number of API calls required to accomplish a task. Use with discretion as some expanded fields can drastically increase payload size.<br/> <br/> <i>Allowed values: statuses, payments, invoiceItems<i>
342
- * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp</i>
342
+ * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp</i>
343
343
  * @param {*} [options] Override http request option.
344
344
  * @throws {RequiredError}
345
345
  */
@@ -406,11 +406,11 @@ export const InvoicesApiFactory = function (configuration?: Configuration, baseP
406
406
  * @param {string} [authorization] Bearer Token
407
407
  * @param {number} [pageSize] A limit on the number of objects to be returned. Limit ranges between 1 and 50. Default: 10.
408
408
  * @param {string} [pageToken] A cursor for use in pagination. pageToken is an ID that defines your place in the list. For instance, if you make a list request and receive 100 objects and pageToken=1, your subsequent call can include pageToken=2 in order to fetch the next page of the list.
409
- * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp</i>
409
+ * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp</i>
410
410
  * @param {string} [search] To search the list by any field, pass search=xxx to fetch the result.
411
411
  * @param {string} [order] Order allows you to specify the desired order of entities retrieved from the server by ascending (ASC) or descending (DESC) order.<br/> <br/> <i>Allowed values: invoiceNumber, status, netAmount, grossAmount, createdAt, dueDate, id, paymentMethodType, paymentMethodPsp</i>
412
412
  * @param {string} [expand] Expand to fetch additional information about the list items. Expanding resources can reduce the number of API calls required to accomplish a task. Use with discretion as some expanded fields can drastically increase payload size.<br/> <br/> <i>Allowed values: statuses, payments, invoiceItems<i>
413
- * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp</i>
413
+ * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp</i>
414
414
  * @param {*} [options] Override http request option.
415
415
  * @throws {RequiredError}
416
416
  */
@@ -522,7 +522,7 @@ export interface InvoicesApiListInvoicesRequest {
522
522
  readonly pageToken?: string
523
523
 
524
524
  /**
525
- * Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp</i>
525
+ * Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp</i>
526
526
  * @type {string}
527
527
  * @memberof InvoicesApiListInvoices
528
528
  */
@@ -550,7 +550,7 @@ export interface InvoicesApiListInvoicesRequest {
550
550
  readonly expand?: string
551
551
 
552
552
  /**
553
- * Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp</i>
553
+ * Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.<br/> <br/> <i>Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp</i>
554
554
  * @type {string}
555
555
  * @memberof InvoicesApiListInvoices
556
556
  */
package/base.ts CHANGED
@@ -102,10 +102,14 @@ export class BaseAPI {
102
102
  this.configuration = configuration;
103
103
  this.basePath = configuration.basePath || this.basePath;
104
104
 
105
- // Use config token if provided, otherwise use tokenData token
106
- const configToken = this.configuration.accessToken;
107
- const storedToken = accessToken ? `Bearer ${accessToken}` : '';
108
- this.configuration.accessToken = configToken || storedToken;
105
+ if (configuration.cookieAuth) {
106
+ this.useCookieAuth();
107
+ } else {
108
+ // Use config token if provided, otherwise use tokenData token
109
+ const configToken = this.configuration.accessToken;
110
+ const storedToken = accessToken ? `Bearer ${accessToken}` : '';
111
+ this.configuration.accessToken = configToken || storedToken;
112
+ }
109
113
  } else {
110
114
  const { accessToken, username } = this.tokenData;
111
115
 
@@ -119,6 +123,12 @@ export class BaseAPI {
119
123
  this.attachInterceptor(axios);
120
124
  }
121
125
 
126
+ // Cookie mode: the browser sends the HttpOnly access cookie, so no token is read from storage.
127
+ private useCookieAuth() {
128
+ this.configuration.username = this.configuration.username || this.tokenData.username;
129
+ this.configuration.baseOptions = { ...this.configuration.baseOptions, withCredentials: true };
130
+ }
131
+
122
132
  selectEnvironment(env: Environment) {
123
133
  this.selectBasePath(env);
124
134
  }
@@ -152,10 +162,12 @@ export class BaseAPI {
152
162
  const { data: { accessToken, permissions } } = response;
153
163
 
154
164
  this.configuration.username = username;
155
- this.configuration.accessToken = `Bearer ${accessToken}`;
156
165
  this.tokenData.username = username;
157
- this.tokenData.accessToken = accessToken;
158
166
  this.tokenData.permissions = permissions;
167
+ if (!this.configuration.cookieAuth) {
168
+ this.configuration.accessToken = `Bearer ${accessToken}`;
169
+ this.tokenData.accessToken = accessToken;
170
+ }
159
171
 
160
172
  // Switch workspace if provided
161
173
  if (targetWorkspace) {
@@ -178,7 +190,7 @@ export class BaseAPI {
178
190
  url: `${this.configuration.basePath}/authservice/v1/workspaces/switch`,
179
191
  headers: {
180
192
  'Content-Type': 'application/json',
181
- 'Authorization': `Bearer ${this.configuration.accessToken}`,
193
+ ...(this.configuration.cookieAuth ? {} : { 'Authorization': `Bearer ${this.configuration.accessToken}` }),
182
194
  },
183
195
  data: {
184
196
  username: this.configuration.username,
@@ -190,10 +202,12 @@ export class BaseAPI {
190
202
  const response = await globalAxios.request<SwitchWorkspaceResponseClass>(options);
191
203
 
192
204
  const { data: { accessToken, permissions } } = response;
193
-
194
- this.configuration.accessToken = `Bearer ${accessToken}`;
195
- this.tokenData.accessToken = accessToken;
205
+
196
206
  this.tokenData.permissions = permissions;
207
+ if (!this.configuration.cookieAuth) {
208
+ this.configuration.accessToken = `Bearer ${accessToken}`;
209
+ this.tokenData.accessToken = accessToken;
210
+ }
197
211
 
198
212
  this.storeTokenData({
199
213
  ...this.tokenData
@@ -233,6 +247,11 @@ export class BaseAPI {
233
247
 
234
248
  private storeTokenData(tokenData?: TokenData) {
235
249
  if (typeof window !== 'undefined') {
250
+ if (tokenData && this.configuration?.cookieAuth) {
251
+ // Cookie mode saves who is logged in, never the token; a token saved by apps not yet migrated stays.
252
+ const { username, permissions } = tokenData;
253
+ tokenData = { ...(defaultStorage().get<TokenData>(TOKEN_DATA) || {}), username, permissions };
254
+ }
236
255
  defaultStorage().set<TokenData>(TOKEN_DATA, tokenData);
237
256
  }
238
257
  }
@@ -263,15 +282,17 @@ export class BaseAPI {
263
282
  originalConfig._retry = true;
264
283
  try {
265
284
  const { accessToken: tokenString, permissions } = await this.refreshTokenInternal();
266
- const accessToken = `Bearer ${tokenString}`;
267
285
  this.tokenData.permissions = permissions;
268
286
 
269
287
  delete originalConfig.headers['Authorization']
270
288
 
271
- originalConfig.headers['Authorization'] = accessToken;
272
-
273
- this.configuration.accessToken = accessToken;
274
- this.tokenData.accessToken = tokenString;
289
+ // In cookie mode the refresh reply renewed the access cookie, so retry without a header.
290
+ if (!this.configuration.cookieAuth) {
291
+ const accessToken = `Bearer ${tokenString}`;
292
+ originalConfig.headers['Authorization'] = accessToken;
293
+ this.configuration.accessToken = accessToken;
294
+ this.tokenData.accessToken = tokenString;
295
+ }
275
296
 
276
297
  this.storeTokenData(this.tokenData);
277
298
 
package/configuration.ts CHANGED
@@ -21,6 +21,7 @@ export interface ConfigurationParameters {
21
21
  basePath?: string;
22
22
  baseOptions?: any;
23
23
  formDataCtor?: new () => any;
24
+ cookieAuth?: boolean;
24
25
  }
25
26
 
26
27
  export class Configuration {
@@ -74,6 +75,15 @@ export class Configuration {
74
75
  */
75
76
  formDataCtor?: new () => any;
76
77
 
78
+ /**
79
+ * Authenticate with the HttpOnly access cookie instead of a stored token: every call sends credentials.
80
+ * The browser holds one cookie, so use it with one logged-in account; log out through the auth service.
81
+ *
82
+ * @type {boolean}
83
+ * @memberof Configuration
84
+ */
85
+ cookieAuth?: boolean;
86
+
77
87
  constructor(param: ConfigurationParameters = {}) {
78
88
  this.apiKey = param.apiKey;
79
89
  this.username = param.username;
@@ -82,6 +92,7 @@ export class Configuration {
82
92
  this.basePath = param.basePath;
83
93
  this.baseOptions = param.baseOptions;
84
94
  this.formDataCtor = param.formDataCtor;
95
+ this.cookieAuth = param.cookieAuth;
85
96
  }
86
97
 
87
98
  /**
@@ -48,11 +48,11 @@ export declare const InvoicesApiAxiosParamCreator: (configuration?: Configuratio
48
48
  * @param {string} [authorization] Bearer Token
49
49
  * @param {number} [pageSize] A limit on the number of objects to be returned. Limit ranges between 1 and 50. Default: 10.
50
50
  * @param {string} [pageToken] A cursor for use in pagination. pageToken is an ID that defines your place in the list. For instance, if you make a list request and receive 100 objects and pageToken&#x3D;1, your subsequent call can include pageToken&#x3D;2 in order to fetch the next page of the list.
51
- * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
51
+ * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
52
52
  * @param {string} [search] To search the list by any field, pass search&#x3D;xxx to fetch the result.
53
53
  * @param {string} [order] Order allows you to specify the desired order of entities retrieved from the server by ascending (ASC) or descending (DESC) order.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: invoiceNumber, status, netAmount, grossAmount, createdAt, dueDate, id, paymentMethodType, paymentMethodPsp&lt;/i&gt;
54
54
  * @param {string} [expand] Expand to fetch additional information about the list items. Expanding resources can reduce the number of API calls required to accomplish a task. Use with discretion as some expanded fields can drastically increase payload size.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: statuses, payments, invoiceItems&lt;i&gt;
55
- * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
55
+ * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
56
56
  * @param {*} [options] Override http request option.
57
57
  * @throws {RequiredError}
58
58
  */
@@ -105,11 +105,11 @@ export declare const InvoicesApiFp: (configuration?: Configuration) => {
105
105
  * @param {string} [authorization] Bearer Token
106
106
  * @param {number} [pageSize] A limit on the number of objects to be returned. Limit ranges between 1 and 50. Default: 10.
107
107
  * @param {string} [pageToken] A cursor for use in pagination. pageToken is an ID that defines your place in the list. For instance, if you make a list request and receive 100 objects and pageToken&#x3D;1, your subsequent call can include pageToken&#x3D;2 in order to fetch the next page of the list.
108
- * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
108
+ * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
109
109
  * @param {string} [search] To search the list by any field, pass search&#x3D;xxx to fetch the result.
110
110
  * @param {string} [order] Order allows you to specify the desired order of entities retrieved from the server by ascending (ASC) or descending (DESC) order.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: invoiceNumber, status, netAmount, grossAmount, createdAt, dueDate, id, paymentMethodType, paymentMethodPsp&lt;/i&gt;
111
111
  * @param {string} [expand] Expand to fetch additional information about the list items. Expanding resources can reduce the number of API calls required to accomplish a task. Use with discretion as some expanded fields can drastically increase payload size.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: statuses, payments, invoiceItems&lt;i&gt;
112
- * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
112
+ * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
113
113
  * @param {*} [options] Override http request option.
114
114
  * @throws {RequiredError}
115
115
  */
@@ -162,11 +162,11 @@ export declare const InvoicesApiFactory: (configuration?: Configuration, basePat
162
162
  * @param {string} [authorization] Bearer Token
163
163
  * @param {number} [pageSize] A limit on the number of objects to be returned. Limit ranges between 1 and 50. Default: 10.
164
164
  * @param {string} [pageToken] A cursor for use in pagination. pageToken is an ID that defines your place in the list. For instance, if you make a list request and receive 100 objects and pageToken&#x3D;1, your subsequent call can include pageToken&#x3D;2 in order to fetch the next page of the list.
165
- * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
165
+ * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
166
166
  * @param {string} [search] To search the list by any field, pass search&#x3D;xxx to fetch the result.
167
167
  * @param {string} [order] Order allows you to specify the desired order of entities retrieved from the server by ascending (ASC) or descending (DESC) order.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: invoiceNumber, status, netAmount, grossAmount, createdAt, dueDate, id, paymentMethodType, paymentMethodPsp&lt;/i&gt;
168
168
  * @param {string} [expand] Expand to fetch additional information about the list items. Expanding resources can reduce the number of API calls required to accomplish a task. Use with discretion as some expanded fields can drastically increase payload size.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: statuses, payments, invoiceItems&lt;i&gt;
169
- * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
169
+ * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
170
170
  * @param {*} [options] Override http request option.
171
171
  * @throws {RequiredError}
172
172
  */
@@ -263,7 +263,7 @@ export interface InvoicesApiListInvoicesRequest {
263
263
  */
264
264
  readonly pageToken?: string;
265
265
  /**
266
- * Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
266
+ * Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
267
267
  * @type {string}
268
268
  * @memberof InvoicesApiListInvoices
269
269
  */
@@ -287,7 +287,7 @@ export interface InvoicesApiListInvoicesRequest {
287
287
  */
288
288
  readonly expand?: string;
289
289
  /**
290
- * Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
290
+ * Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
291
291
  * @type {string}
292
292
  * @memberof InvoicesApiListInvoices
293
293
  */
@@ -205,11 +205,11 @@ var InvoicesApiAxiosParamCreator = function (configuration) {
205
205
  * @param {string} [authorization] Bearer Token
206
206
  * @param {number} [pageSize] A limit on the number of objects to be returned. Limit ranges between 1 and 50. Default: 10.
207
207
  * @param {string} [pageToken] A cursor for use in pagination. pageToken is an ID that defines your place in the list. For instance, if you make a list request and receive 100 objects and pageToken&#x3D;1, your subsequent call can include pageToken&#x3D;2 in order to fetch the next page of the list.
208
- * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
208
+ * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
209
209
  * @param {string} [search] To search the list by any field, pass search&#x3D;xxx to fetch the result.
210
210
  * @param {string} [order] Order allows you to specify the desired order of entities retrieved from the server by ascending (ASC) or descending (DESC) order.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: invoiceNumber, status, netAmount, grossAmount, createdAt, dueDate, id, paymentMethodType, paymentMethodPsp&lt;/i&gt;
211
211
  * @param {string} [expand] Expand to fetch additional information about the list items. Expanding resources can reduce the number of API calls required to accomplish a task. Use with discretion as some expanded fields can drastically increase payload size.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: statuses, payments, invoiceItems&lt;i&gt;
212
- * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
212
+ * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
213
213
  * @param {*} [options] Override http request option.
214
214
  * @throws {RequiredError}
215
215
  */
@@ -404,11 +404,11 @@ var InvoicesApiFp = function (configuration) {
404
404
  * @param {string} [authorization] Bearer Token
405
405
  * @param {number} [pageSize] A limit on the number of objects to be returned. Limit ranges between 1 and 50. Default: 10.
406
406
  * @param {string} [pageToken] A cursor for use in pagination. pageToken is an ID that defines your place in the list. For instance, if you make a list request and receive 100 objects and pageToken&#x3D;1, your subsequent call can include pageToken&#x3D;2 in order to fetch the next page of the list.
407
- * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
407
+ * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
408
408
  * @param {string} [search] To search the list by any field, pass search&#x3D;xxx to fetch the result.
409
409
  * @param {string} [order] Order allows you to specify the desired order of entities retrieved from the server by ascending (ASC) or descending (DESC) order.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: invoiceNumber, status, netAmount, grossAmount, createdAt, dueDate, id, paymentMethodType, paymentMethodPsp&lt;/i&gt;
410
410
  * @param {string} [expand] Expand to fetch additional information about the list items. Expanding resources can reduce the number of API calls required to accomplish a task. Use with discretion as some expanded fields can drastically increase payload size.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: statuses, payments, invoiceItems&lt;i&gt;
411
- * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
411
+ * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
412
412
  * @param {*} [options] Override http request option.
413
413
  * @throws {RequiredError}
414
414
  */
@@ -493,11 +493,11 @@ var InvoicesApiFactory = function (configuration, basePath, axios) {
493
493
  * @param {string} [authorization] Bearer Token
494
494
  * @param {number} [pageSize] A limit on the number of objects to be returned. Limit ranges between 1 and 50. Default: 10.
495
495
  * @param {string} [pageToken] A cursor for use in pagination. pageToken is an ID that defines your place in the list. For instance, if you make a list request and receive 100 objects and pageToken&#x3D;1, your subsequent call can include pageToken&#x3D;2 in order to fetch the next page of the list.
496
- * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
496
+ * @param {string} [filter] Filter the response by one or multiple fields. In general, fetching filtered responses will conserve bandwidth and reduce response time.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
497
497
  * @param {string} [search] To search the list by any field, pass search&#x3D;xxx to fetch the result.
498
498
  * @param {string} [order] Order allows you to specify the desired order of entities retrieved from the server by ascending (ASC) or descending (DESC) order.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: invoiceNumber, status, netAmount, grossAmount, createdAt, dueDate, id, paymentMethodType, paymentMethodPsp&lt;/i&gt;
499
499
  * @param {string} [expand] Expand to fetch additional information about the list items. Expanding resources can reduce the number of API calls required to accomplish a task. Use with discretion as some expanded fields can drastically increase payload size.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: statuses, payments, invoiceItems&lt;i&gt;
500
- * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, paymentMethodType, paymentMethodPsp&lt;/i&gt;
500
+ * @param {string} [filters] Filters the response by one or multiple fields. Advanced filter functionality allows you to perform more complex filtering operations.&lt;br/&gt; &lt;br/&gt; &lt;i&gt;Allowed values: code, policyCode, invoiceNumber, id, type, accountNumber, status, billingIntervalFrom, billingIntervalTo, createdAt, dueDate, grossAmount, paymentMethodType, paymentMethodPsp&lt;/i&gt;
501
501
  * @param {*} [options] Override http request option.
502
502
  * @throws {RequiredError}
503
503
  */
package/dist/base.d.ts CHANGED
@@ -63,6 +63,7 @@ export declare class BaseAPI {
63
63
  protected configuration: Configuration | undefined;
64
64
  private tokenData?;
65
65
  constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
66
+ private useCookieAuth;
66
67
  selectEnvironment(env: Environment): void;
67
68
  selectBasePath(path: string): void;
68
69
  getPermissions(): Array<string>;
package/dist/base.js CHANGED
@@ -128,10 +128,15 @@ var BaseAPI = /** @class */ (function () {
128
128
  var accessToken = this.tokenData.accessToken;
129
129
  this.configuration = configuration;
130
130
  this.basePath = configuration.basePath || this.basePath;
131
- // Use config token if provided, otherwise use tokenData token
132
- var configToken = this.configuration.accessToken;
133
- var storedToken = accessToken ? "Bearer ".concat(accessToken) : '';
134
- this.configuration.accessToken = configToken || storedToken;
131
+ if (configuration.cookieAuth) {
132
+ this.useCookieAuth();
133
+ }
134
+ else {
135
+ // Use config token if provided, otherwise use tokenData token
136
+ var configToken = this.configuration.accessToken;
137
+ var storedToken = accessToken ? "Bearer ".concat(accessToken) : '';
138
+ this.configuration.accessToken = configToken || storedToken;
139
+ }
135
140
  }
136
141
  else {
137
142
  var _a = this.tokenData, accessToken = _a.accessToken, username = _a.username;
@@ -143,6 +148,11 @@ var BaseAPI = /** @class */ (function () {
143
148
  }
144
149
  this.attachInterceptor(axios);
145
150
  }
151
+ // Cookie mode: the browser sends the HttpOnly access cookie, so no token is read from storage.
152
+ BaseAPI.prototype.useCookieAuth = function () {
153
+ this.configuration.username = this.configuration.username || this.tokenData.username;
154
+ this.configuration.baseOptions = __assign(__assign({}, this.configuration.baseOptions), { withCredentials: true });
155
+ };
146
156
  BaseAPI.prototype.selectEnvironment = function (env) {
147
157
  this.selectBasePath(env);
148
158
  };
@@ -177,10 +187,12 @@ var BaseAPI = /** @class */ (function () {
177
187
  response = _b.sent();
178
188
  _a = response.data, accessToken = _a.accessToken, permissions = _a.permissions;
179
189
  this.configuration.username = username;
180
- this.configuration.accessToken = "Bearer ".concat(accessToken);
181
190
  this.tokenData.username = username;
182
- this.tokenData.accessToken = accessToken;
183
191
  this.tokenData.permissions = permissions;
192
+ if (!this.configuration.cookieAuth) {
193
+ this.configuration.accessToken = "Bearer ".concat(accessToken);
194
+ this.tokenData.accessToken = accessToken;
195
+ }
184
196
  if (!targetWorkspace) return [3 /*break*/, 3];
185
197
  return [4 /*yield*/, this.switchWorkspace(targetWorkspace)];
186
198
  case 2:
@@ -206,10 +218,7 @@ var BaseAPI = /** @class */ (function () {
206
218
  options = {
207
219
  method: 'POST',
208
220
  url: "".concat(this.configuration.basePath, "/authservice/v1/workspaces/switch"),
209
- headers: {
210
- 'Content-Type': 'application/json',
211
- 'Authorization': "Bearer ".concat(this.configuration.accessToken),
212
- },
221
+ headers: __assign({ 'Content-Type': 'application/json' }, (this.configuration.cookieAuth ? {} : { 'Authorization': "Bearer ".concat(this.configuration.accessToken) })),
213
222
  data: {
214
223
  username: this.configuration.username,
215
224
  targetWorkspace: targetWorkspace,
@@ -220,9 +229,11 @@ var BaseAPI = /** @class */ (function () {
220
229
  case 1:
221
230
  response = _b.sent();
222
231
  _a = response.data, accessToken = _a.accessToken, permissions = _a.permissions;
223
- this.configuration.accessToken = "Bearer ".concat(accessToken);
224
- this.tokenData.accessToken = accessToken;
225
232
  this.tokenData.permissions = permissions;
233
+ if (!this.configuration.cookieAuth) {
234
+ this.configuration.accessToken = "Bearer ".concat(accessToken);
235
+ this.tokenData.accessToken = accessToken;
236
+ }
226
237
  this.storeTokenData(__assign({}, this.tokenData));
227
238
  return [2 /*return*/];
228
239
  }
@@ -265,7 +276,13 @@ var BaseAPI = /** @class */ (function () {
265
276
  });
266
277
  };
267
278
  BaseAPI.prototype.storeTokenData = function (tokenData) {
279
+ var _a;
268
280
  if (typeof window !== 'undefined') {
281
+ if (tokenData && ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.cookieAuth)) {
282
+ // Cookie mode saves who is logged in, never the token; a token saved by apps not yet migrated stays.
283
+ var username = tokenData.username, permissions = tokenData.permissions;
284
+ tokenData = __assign(__assign({}, ((0, common_1.defaultStorage)().get(TOKEN_DATA) || {})), { username: username, permissions: permissions });
285
+ }
269
286
  (0, common_1.defaultStorage)().set(TOKEN_DATA, tokenData);
270
287
  }
271
288
  };
@@ -300,12 +317,15 @@ var BaseAPI = /** @class */ (function () {
300
317
  return [4 /*yield*/, this.refreshTokenInternal()];
301
318
  case 2:
302
319
  _a = _c.sent(), tokenString = _a.accessToken, permissions = _a.permissions;
303
- accessToken = "Bearer ".concat(tokenString);
304
320
  this.tokenData.permissions = permissions;
305
321
  delete originalConfig.headers['Authorization'];
306
- originalConfig.headers['Authorization'] = accessToken;
307
- this.configuration.accessToken = accessToken;
308
- this.tokenData.accessToken = tokenString;
322
+ // In cookie mode the refresh reply renewed the access cookie, so retry without a header.
323
+ if (!this.configuration.cookieAuth) {
324
+ accessToken = "Bearer ".concat(tokenString);
325
+ originalConfig.headers['Authorization'] = accessToken;
326
+ this.configuration.accessToken = accessToken;
327
+ this.tokenData.accessToken = tokenString;
328
+ }
309
329
  this.storeTokenData(this.tokenData);
310
330
  return [2 /*return*/, axios(originalConfig)];
311
331
  case 3:
@@ -17,6 +17,7 @@ export interface ConfigurationParameters {
17
17
  basePath?: string;
18
18
  baseOptions?: any;
19
19
  formDataCtor?: new () => any;
20
+ cookieAuth?: boolean;
20
21
  }
21
22
  export declare class Configuration {
22
23
  /**
@@ -68,6 +69,14 @@ export declare class Configuration {
68
69
  * @type {new () => FormData}
69
70
  */
70
71
  formDataCtor?: new () => any;
72
+ /**
73
+ * Authenticate with the HttpOnly access cookie instead of a stored token: every call sends credentials.
74
+ * The browser holds one cookie, so use it with one logged-in account; log out through the auth service.
75
+ *
76
+ * @type {boolean}
77
+ * @memberof Configuration
78
+ */
79
+ cookieAuth?: boolean;
71
80
  constructor(param?: ConfigurationParameters);
72
81
  /**
73
82
  * Check if the given MIME is a JSON MIME.
@@ -24,6 +24,7 @@ var Configuration = /** @class */ (function () {
24
24
  this.basePath = param.basePath;
25
25
  this.baseOptions = param.baseOptions;
26
26
  this.formDataCtor = param.formDataCtor;
27
+ this.cookieAuth = param.cookieAuth;
27
28
  }
28
29
  /**
29
30
  * Check if the given MIME is a JSON MIME.
@@ -27,6 +27,12 @@ export interface InvoiceItemClass {
27
27
  * @memberof InvoiceItemClass
28
28
  */
29
29
  'premiumFormulaId': number;
30
+ /**
31
+ * Unique identifier of the premium formula that this object belongs to.
32
+ * @type {string}
33
+ * @memberof InvoiceItemClass
34
+ */
35
+ 'premiumFormulaCode'?: string;
30
36
  /**
31
37
  * Product name.
32
38
  * @type {string}
@@ -32,6 +32,12 @@ export interface InvoiceItemClass {
32
32
  * @memberof InvoiceItemClass
33
33
  */
34
34
  'premiumFormulaId': number;
35
+ /**
36
+ * Unique identifier of the premium formula that this object belongs to.
37
+ * @type {string}
38
+ * @memberof InvoiceItemClass
39
+ */
40
+ 'premiumFormulaCode'?: string;
35
41
  /**
36
42
  * Product name.
37
43
  * @type {string}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emilgroup/billing-sdk",
3
- "version": "1.63.1-beta.2",
3
+ "version": "1.63.1-beta.20",
4
4
  "description": "OpenAPI client for @emilgroup/billing-sdk",
5
5
  "author": "OpenAPI-Generator Contributors",
6
6
  "keywords": [