@partium/js-sdk 15.20.0 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/core/constants/constants.d.ts +2 -2
  2. package/core/constants/constants.js +1 -1
  3. package/core/index.d.ts +2 -2
  4. package/core/index.js +1 -1
  5. package/core/integration-defaults/http/https-client/axios-https-client.service.d.ts +5 -0
  6. package/core/integration-defaults/http/https-client/axios-https-client.service.js +1 -1
  7. package/core/integration-defaults/http/https-client/fetch-api-https-client.service.js +1 -1
  8. package/core/integration-defaults/session/js-oauth-api-key-session.service.js +1 -1
  9. package/core/integration-defaults/session/js-oauth-keycloak-session.service.js +1 -1
  10. package/core/integration-defaults/session/js-oauth-web-cookie-session.service.js +1 -1
  11. package/core/models/log.d.ts +3 -1
  12. package/core/models/log.js +1 -1
  13. package/core/models/user.d.ts +7 -43
  14. package/core/models/user.js +1 -1
  15. package/core/services/http/https.service.interface.d.ts +20 -20
  16. package/core/services/http/https.service.interface.js +1 -1
  17. package/core/services/http/oauth-https.service.d.ts +3 -3
  18. package/core/services/local-storage.service.interface.d.ts +1 -1
  19. package/core/services/log.service.d.ts +1 -1
  20. package/core/services/organization/index.d.ts +6 -0
  21. package/core/services/organization/index.js +2 -0
  22. package/core/services/organization/models/get-organization-by-id-request.d.ts +10 -0
  23. package/core/services/organization/models/get-organization-by-name-request.d.ts +10 -0
  24. package/core/services/organization/models/get-organizations-request.d.ts +33 -0
  25. package/core/services/organization/models/get-organizations-request.js +2 -0
  26. package/core/services/organization/models/organization.d.ts +77 -0
  27. package/core/services/organization/models/organization.js +2 -0
  28. package/core/services/organization/organization.service.d.ts +81 -0
  29. package/core/services/organization/organization.service.js +2 -0
  30. package/core/services/recent-parts.service.d.ts +1 -1
  31. package/core/services/session/session.service.interface.d.ts +17 -5
  32. package/core/services/session/session.service.interface.js +1 -1
  33. package/core/utils/general-helper.d.ts +2 -1
  34. package/core/utils/general-helper.js +1 -1
  35. package/core/utils/multipart-upload.helper.d.ts +20 -0
  36. package/core/utils/multipart-upload.helper.js +2 -0
  37. package/data/models/attribute.d.ts +5 -5
  38. package/data/models/attribute.js +1 -1
  39. package/data/models/csa-request.d.ts +2 -3
  40. package/data/models/csa-request.js +1 -1
  41. package/data/models/image.d.ts +10 -13
  42. package/data/models/image.js +1 -1
  43. package/data/models/part-data.d.ts +1 -1
  44. package/data/models/part.d.ts +13 -9
  45. package/data/models/part.js +1 -1
  46. package/data/services/customer-service-assistance.service.d.ts +3 -22
  47. package/data/services/customer-service-assistance.service.js +1 -1
  48. package/data/services/data.service.js +1 -1
  49. package/data/services/filter.service.d.ts +0 -21
  50. package/data/services/filter.service.js +1 -1
  51. package/enrichment/models/enrichment-job-part.d.ts +2 -2
  52. package/enrichment/models/enrichment-job-part.js +1 -1
  53. package/enrichment/models/enrichment-job.d.ts +2 -2
  54. package/enrichment/models/enrichment-job.js +1 -1
  55. package/find/index.d.ts +1 -28
  56. package/find/index.js +1 -1
  57. package/find/models/image-crop-area.d.ts +7 -0
  58. package/find/models/search-input.d.ts +11 -3
  59. package/find/models/search-input.js +1 -1
  60. package/find/services/asset.service.d.ts +41 -102
  61. package/find/services/asset.service.js +1 -1
  62. package/find/services/search/search.service.d.ts +5 -218
  63. package/find/services/search/search.service.js +1 -1
  64. package/gen/sdk-version.d.ts +1 -1
  65. package/gen/sdk-version.js +1 -1
  66. package/index.d.ts +16 -8
  67. package/index.js +1 -1
  68. package/ocr/index.d.ts +1 -2
  69. package/ocr/index.js +1 -1
  70. package/ocr/models/ocr-response.d.ts +5 -0
  71. package/ocr/models/ocr-response.js +2 -0
  72. package/ocr/services/ocr.service.d.ts +9 -15
  73. package/ocr/services/ocr.service.js +1 -1
  74. package/package.json +1 -1
  75. package/selection/index.d.ts +17 -0
  76. package/selection/index.js +2 -0
  77. package/selection/models/add-all-search-session-parts-to-selection-request.d.ts +4 -0
  78. package/selection/models/add-all-search-session-parts-to-selection-request.js +2 -0
  79. package/selection/models/add-all-search-session-parts-to-selection-response.d.ts +5 -0
  80. package/selection/models/add-all-search-session-parts-to-selection-response.js +2 -0
  81. package/selection/models/add-parts-from-file-to-selection-request.d.ts +10 -0
  82. package/selection/models/add-parts-from-file-to-selection-request.js +2 -0
  83. package/selection/models/add-parts-from-file-to-selection-response.d.ts +33 -0
  84. package/selection/models/add-parts-from-file-to-selection-response.js +2 -0
  85. package/selection/models/add-parts-to-selection-request.d.ts +4 -0
  86. package/selection/models/add-parts-to-selection-request.js +2 -0
  87. package/selection/models/add-parts-to-selection-response.d.ts +5 -0
  88. package/selection/models/add-parts-to-selection-response.js +2 -0
  89. package/selection/models/check-which-parts-in-selection-request.d.ts +4 -0
  90. package/selection/models/check-which-parts-in-selection-request.js +2 -0
  91. package/selection/models/check-which-parts-in-selection-response.d.ts +4 -0
  92. package/selection/models/check-which-parts-in-selection-response.js +2 -0
  93. package/selection/models/create-selection-request.d.ts +6 -0
  94. package/selection/models/create-selection-request.js +2 -0
  95. package/selection/models/create-selection-response.d.ts +10 -0
  96. package/selection/models/create-selection-response.js +2 -0
  97. package/selection/models/remove-all-search-session-parts-from-selection-request.d.ts +4 -0
  98. package/selection/models/remove-all-search-session-parts-from-selection-request.js +2 -0
  99. package/selection/models/remove-all-search-session-parts-from-selection-response.d.ts +5 -0
  100. package/selection/models/remove-all-search-session-parts-from-selection-response.js +2 -0
  101. package/selection/models/remove-parts-from-selection-request.d.ts +4 -0
  102. package/selection/models/remove-parts-from-selection-request.js +2 -0
  103. package/selection/models/remove-parts-from-selection-response.d.ts +5 -0
  104. package/selection/models/remove-parts-from-selection-response.js +2 -0
  105. package/selection/models/selection-search-summary-response.d.ts +5 -0
  106. package/selection/models/selection-search-summary-response.js +2 -0
  107. package/selection/services/selection.service.d.ts +95 -0
  108. package/selection/services/selection.service.js +2 -0
  109. package/core/models/organization.d.ts +0 -127
  110. package/core/models/organization.js +0 -2
  111. package/core/services/organization.service.d.ts +0 -48
  112. package/core/services/organization.service.js +0 -2
  113. package/data/services/csa-helper.service.d.ts +0 -32
  114. package/data/services/csa-helper.service.js +0 -2
  115. package/find/models/assets/asset.d.ts +0 -24
  116. package/find/models/assets/asset.js +0 -2
  117. package/find/models/search-filter.d.ts +0 -87
  118. package/find/models/search-filter.js +0 -2
  119. package/find/models/search-result-status.d.ts +0 -33
  120. package/find/models/search-result-status.js +0 -2
  121. package/find/models/search-session-log-object.d.ts +0 -16
  122. package/find/models/search-session-log-object.js +0 -2
  123. package/find/models/search-status/cv-search-status.d.ts +0 -20
  124. package/find/models/search-status/cv-search-status.js +0 -2
  125. package/find/models/search-status/search-filter-status.d.ts +0 -33
  126. package/find/models/search-status/search-filter-status.js +0 -2
  127. package/find/models/search-status/search-status.d.ts +0 -34
  128. package/find/models/search-status/search-status.js +0 -2
  129. package/find/models/search-status/tag-search-status.d.ts +0 -16
  130. package/find/models/search-status/tag-search-status.js +0 -2
  131. package/find/models/search-status/text-search-status.d.ts +0 -15
  132. package/find/models/search-status/text-search-status.js +0 -2
  133. package/find/models/search-tag.d.ts +0 -12
  134. package/find/models/search-tag.js +0 -2
  135. package/find/models/tagable/i18n-tagable.d.ts +0 -10
  136. package/find/models/tagable/i18n-tagable.js +0 -2
  137. package/find/models/tagable/tagable-base.d.ts +0 -11
  138. package/find/models/tagable/tagable-base.js +0 -2
  139. package/find/models/tagable/tagable.d.ts +0 -10
  140. package/find/models/tagable/tagable.js +0 -2
  141. package/find/models/text-search-config.d.ts +0 -57
  142. package/find/models/text-search-config.js +0 -2
  143. package/find/models/text-search-manipulator.d.ts +0 -46
  144. package/find/models/text-search-manipulator.js +0 -2
  145. package/find/models/text-search-result-item/text-search-error.d.ts +0 -7
  146. package/find/models/text-search-result-item/text-search-error.js +0 -2
  147. package/find/models/text-search-result-item/text-search-result-item-document.d.ts +0 -10
  148. package/find/models/text-search-result-item/text-search-result-item-document.js +0 -2
  149. package/find/models/text-search-result-item/text-search-result-item-part.d.ts +0 -12
  150. package/find/models/text-search-result-item/text-search-result-item-part.js +0 -2
  151. package/find/models/text-search-result-item/text-search-result-item-recent-query.d.ts +0 -10
  152. package/find/models/text-search-result-item/text-search-result-item-recent-query.js +0 -2
  153. package/find/models/text-search-result-item/text-search-result-item-unknown.d.ts +0 -12
  154. package/find/models/text-search-result-item/text-search-result-item-unknown.js +0 -2
  155. package/find/models/text-search-result-item/text-search-result-item.d.ts +0 -16
  156. package/find/models/text-search-result-item/text-search-result-item.js +0 -2
  157. package/find/services/filter-uploaders/filter-uploader.d.ts +0 -13
  158. package/find/services/filter-uploaders/update-filters-uploader.d.ts +0 -17
  159. package/find/services/filter-uploaders/update-filters-uploader.js +0 -2
  160. package/find/services/filter-uploaders/update-filters.model.d.ts +0 -19
  161. package/find/services/filter-uploaders/update-filters.model.js +0 -2
  162. package/find/services/search/cv-search.service.d.ts +0 -103
  163. package/find/services/search/cv-search.service.js +0 -2
  164. package/find/services/search/search-result.service.d.ts +0 -142
  165. package/find/services/search/search-result.service.js +0 -2
  166. package/find/services/search/tag-search.service.d.ts +0 -66
  167. package/find/services/search/tag-search.service.js +0 -2
  168. package/find/services/search/text-search.service.d.ts +0 -116
  169. package/find/services/search/text-search.service.js +0 -2
  170. package/find/services/search-filter.service.d.ts +0 -223
  171. package/find/services/search-filter.service.js +0 -2
  172. package/find/utils/search-helper.d.ts +0 -14
  173. package/find/utils/search-helper.js +0 -2
  174. package/ocr/models/detect-response.d.ts +0 -5
  175. package/ocr/models/detected-text-entry.d.ts +0 -5
  176. /package/{find/services/filter-uploaders/filter-uploader.js → core/services/organization/models/get-organization-by-id-request.js} +0 -0
  177. /package/{ocr/models/detect-response.js → core/services/organization/models/get-organization-by-name-request.js} +0 -0
  178. /package/{ocr/models/detected-text-entry.js → find/models/image-crop-area.js} +0 -0
@@ -0,0 +1,6 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ export * from './organization.service';
3
+ export * from './models/get-organizations-request';
4
+ export * from './models/get-organization-by-id-request';
5
+ export * from './models/get-organization-by-name-request';
6
+ export * from './models/organization';
@@ -0,0 +1,2 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var i=Object.getOwnPropertyDescriptor(r,t);i&&!("get"in i?!r.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,i)}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./organization.service"),exports),__exportStar(require("./models/get-organizations-request"),exports),__exportStar(require("./models/get-organization-by-id-request"),exports),__exportStar(require("./models/get-organization-by-name-request"),exports),__exportStar(require("./models/organization"),exports);
@@ -0,0 +1,10 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ /**
3
+ * Request for getting organization by partium-id.
4
+ */
5
+ export interface GetOrganizationByIdRequest {
6
+ /**
7
+ * Organization partium-id.
8
+ */
9
+ partiumId: string;
10
+ }
@@ -0,0 +1,10 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ /**
3
+ * Request for getting organization by name.
4
+ */
5
+ export interface GetOrganizationByNameRequest {
6
+ /**
7
+ * Organization name.
8
+ */
9
+ name: string;
10
+ }
@@ -0,0 +1,33 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ import { BasePaginatedRequest } from "../../../models/base-paginated-request";
3
+ export declare enum SuborgResolutionMode {
4
+ ALL = "all",
5
+ ONLY_EXPLICIT = "onlyExplicit",
6
+ ONLY_TOP_ACCESSIBLE_LEVEL = "onlyTopAccessibleLevel"
7
+ }
8
+ /**
9
+ * Request for getting organizations.
10
+ */
11
+ export interface GetOrganizationsRequest extends BasePaginatedRequest {
12
+ /**
13
+ * Parent organization name.
14
+ */
15
+ parentName?: string;
16
+ /**
17
+ * Controls which sub-organizations are included. all (default): all accessible sub-orgs, including those reachable only via parent
18
+ * organization access (transitive / implicit sub-org access). onlyExplicit: only sub-orgs explicitly assigned in the token, including
19
+ * when their parent org is also listed. onlyTopAccessibleLevel: sub-orgs only when the user has no access to their parent org (parent
20
+ * orgs plus top-level sub-orgs for org listings).
21
+ * (default: all)
22
+ */
23
+ suborgResolutionMode?: SuborgResolutionMode;
24
+ /**
25
+ * list of role names (e.g. csa, admin, factoryWorker). When provided, limits the accessible organization set to those where the user has one
26
+ * of these roles via explicit (non-transitive) assignment. Transitive suborg expansion is controlled separately by `suborgResolutionMode`.
27
+ */
28
+ roles?: string[];
29
+ /**
30
+ * Search query.
31
+ */
32
+ query?: string;
33
+ }
@@ -0,0 +1,2 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ "use strict";var SuborgResolutionMode;Object.defineProperty(exports,"__esModule",{value:!0}),exports.SuborgResolutionMode=void 0,function(o){o.ALL="all",o.ONLY_EXPLICIT="onlyExplicit",o.ONLY_TOP_ACCESSIBLE_LEVEL="onlyTopAccessibleLevel"}(SuborgResolutionMode||(exports.SuborgResolutionMode=SuborgResolutionMode={}));
@@ -0,0 +1,77 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ export declare enum THEME {
3
+ LIGHT = "light",
4
+ DARK = "dark"
5
+ }
6
+ export interface OrganizationListItemFromAPI {
7
+ partiumId: string;
8
+ name: string;
9
+ displayName?: string;
10
+ parentName?: string;
11
+ hasSuborgs?: boolean;
12
+ requiresAdditionalAuthentication?: boolean;
13
+ }
14
+ export interface OrganizationFromAPI extends OrganizationListItemFromAPI {
15
+ config?: {
16
+ defaultSearchLanguage?: string;
17
+ availableSearchLanguages?: string[];
18
+ availableUiLanguages?: string[];
19
+ smmsLanguages?: string[];
20
+ ecr?: {
21
+ email?: string;
22
+ contactPhoneNumber?: string;
23
+ };
24
+ };
25
+ ci?: {
26
+ format?: string;
27
+ theme?: 'dark' | 'light';
28
+ colors?: {
29
+ [id: string]: string;
30
+ };
31
+ assets?: {
32
+ [id: string]: string;
33
+ };
34
+ };
35
+ /** List of enabled permissions for the current user in this organisation. */
36
+ permissions?: string[];
37
+ }
38
+ /**
39
+ * Advanced configuration parameters for this organization
40
+ */
41
+ export interface OrganizationConfig {
42
+ defaultSearchLanguage?: string;
43
+ availableSearchLanguages?: string[];
44
+ availableUiLanguages?: string[];
45
+ smmsLanguages?: string[];
46
+ ecr?: {
47
+ email?: string;
48
+ contactPhoneNumber?: string;
49
+ };
50
+ }
51
+ export interface OrganizationCI {
52
+ format?: string;
53
+ theme?: THEME;
54
+ colors?: {
55
+ [id: string]: string;
56
+ };
57
+ assets?: {
58
+ [id: string]: string;
59
+ };
60
+ }
61
+ export interface OrganizationListItem {
62
+ partiumId: string;
63
+ name: string;
64
+ displayName?: string;
65
+ requiresAdditionalAuthentication?: boolean;
66
+ hasSuborgs?: boolean;
67
+ parentName?: string;
68
+ }
69
+ export interface Organization extends OrganizationListItem {
70
+ config: OrganizationConfig;
71
+ ci: OrganizationCI;
72
+ /** list of all permissions, the user has in this organization */
73
+ permissions: string[];
74
+ }
75
+ export declare const organizationHasPermission: (organization: Organization | undefined, permission: string) => boolean;
76
+ export declare const organizationListItemFromAPIResponse: (data: OrganizationListItemFromAPI) => OrganizationListItem;
77
+ export declare const organizationFromAPIResponse: (data: OrganizationFromAPI) => Organization;
@@ -0,0 +1,2 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ "use strict";var THEME,__assign=this&&this.__assign||function(){return __assign=Object.assign||function(i){for(var n,a=1,o=arguments.length;a<o;a++)for(var e in n=arguments[a])Object.prototype.hasOwnProperty.call(n,e)&&(i[e]=n[e]);return i},__assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.organizationFromAPIResponse=exports.organizationListItemFromAPIResponse=exports.organizationHasPermission=exports.THEME=void 0,function(i){i.LIGHT="light",i.DARK="dark"}(THEME||(exports.THEME=THEME={}));var organizationHasPermission=function(i,n){var a,o;return null!==(o=null===(a=null==i?void 0:i.permissions)||void 0===a?void 0:a.includes(n))&&void 0!==o&&o};exports.organizationHasPermission=organizationHasPermission;var organizationListItemFromAPIResponse=function(i){return{partiumId:i.partiumId,name:i.name,displayName:i.displayName||i.name,requiresAdditionalAuthentication:i.requiresAdditionalAuthentication,hasSuborgs:i.hasSuborgs,parentName:i.parentName}};exports.organizationListItemFromAPIResponse=organizationListItemFromAPIResponse;var organizationFromAPIResponse=function(i){var n;return __assign(__assign({},(0,exports.organizationListItemFromAPIResponse)(i)),{config:mapOrgConfig(i),ci:mapCI(i),permissions:null!==(n=i.permissions)&&void 0!==n?n:[]})};exports.organizationFromAPIResponse=organizationFromAPIResponse;var mapOrgConfig=function(i){var n,a,o,e,s,r,t,g;return{defaultSearchLanguage:((null===(n=i.config)||void 0===n?void 0:n.defaultSearchLanguage)||"").toLowerCase(),availableSearchLanguages:((null===(a=i.config)||void 0===a?void 0:a.availableSearchLanguages)||[]).map((function(i){return i.toLowerCase()})),availableUiLanguages:((null===(e=null===(o=i.config)||void 0===o?void 0:o.availableUiLanguages)||void 0===e?void 0:e.length)>0?null===(s=i.config)||void 0===s?void 0:s.availableUiLanguages:(null===(r=i.config)||void 0===r?void 0:r.availableSearchLanguages)||[]).map((function(i){return i.toLowerCase()})),smmsLanguages:((null===(t=i.config)||void 0===t?void 0:t.smmsLanguages)||[]).map((function(i){return i.toLowerCase()})),ecr:null===(g=i.config)||void 0===g?void 0:g.ecr}},mapCI=function(i){var n;return __assign(__assign({},i.ci),{theme:"dark"===(null===(n=i.ci)||void 0===n?void 0:n.theme)?THEME.DARK:THEME.LIGHT})};
@@ -0,0 +1,81 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ import { Observable } from 'rxjs';
3
+ import { GetOrganizationByIdRequest } from './models/get-organization-by-id-request';
4
+ import { GetOrganizationByNameRequest } from './models/get-organization-by-name-request';
5
+ import { GetOrganizationsRequest } from './models/get-organizations-request';
6
+ import { Organization, OrganizationListItem } from './models/organization';
7
+ import { DefaultGetPaginatedRequestPaginationContext } from '../../models/default-get-paginated-request-pagination-context';
8
+ import { BaseService } from '../base.service';
9
+ export type OrganizationsResponse = {
10
+ organizations: OrganizationListItem[];
11
+ paginationContext: DefaultGetPaginatedRequestPaginationContext;
12
+ };
13
+ /**
14
+ * Service for loading Organizations.
15
+ */
16
+ export interface OrganizationService {
17
+ /**
18
+ * Load the first page of organizations.
19
+ *
20
+ * @param request - The request containing the parent organization name and other parameters.
21
+ * @returns An Observable that emits the first page of organizations with pagination context.
22
+ */
23
+ loadOrganizations(request: GetOrganizationsRequest): Observable<OrganizationsResponse>;
24
+ /**
25
+ * Load the next page of organizations.
26
+ *
27
+ * @param paginationContext - The pagination context from the most recent call.
28
+ * @returns An Observable that emits the next page of organizations with pagination context.
29
+ */
30
+ loadMoreOrganizations(paginationContext: DefaultGetPaginatedRequestPaginationContext): Observable<OrganizationsResponse>;
31
+ /**
32
+ * Check if there are more results available to load based on the current pagination context.
33
+ *
34
+ * @param paginationContext - The pagination context from the most recent call.
35
+ * @returns True if there are more results available to load, false otherwise.
36
+ */
37
+ hasMoreOrganizationsAvailable(paginationContext: DefaultGetPaginatedRequestPaginationContext): boolean;
38
+ /**
39
+ * Fetch the detail info of an organization by partium-id.
40
+ *
41
+ * @param request - The request containing partium-id of the organization to fetch.
42
+ * @returns An Observable that emits the detail info of the organization.
43
+ * Throws SDK_ERROR_CODES.ORGANIZATION_NOT_FOUND if no organization is found.
44
+ */
45
+ getOrganizationById(request: GetOrganizationByIdRequest): Observable<Organization>;
46
+ /**
47
+ * Fetch the detail info of an organization by name.
48
+ *
49
+ * @param request - The request containing name of the organization to fetch.
50
+ * @returns An Observable that emits the detail info of the organization.
51
+ * Throws SDK_ERROR_CODES.ORGANIZATION_NOT_FOUND if no organization is found.
52
+ */
53
+ getOrganizationByName(request: GetOrganizationByNameRequest): Observable<Organization>;
54
+ /**
55
+ * Fetch the detail info of the first organization of the organization that the logged-in user is associated with, which does not need
56
+ * additional authentication.
57
+ * Throws SDK_ERROR_CODES.ORGANIZATION_NOT_FOUND if no organization is found.
58
+ *
59
+ * @returns An Observable that emits the detail info of the first organization.
60
+ */
61
+ getFirstOrganization(): Observable<Organization>;
62
+ }
63
+ export declare class OrganizationServiceImpl extends BaseService implements OrganizationService {
64
+ private httpsService;
65
+ onCreate(): void;
66
+ loadOrganizations(request: GetOrganizationsRequest): Observable<OrganizationsResponse>;
67
+ loadMoreOrganizations(paginationContext: DefaultGetPaginatedRequestPaginationContext): Observable<OrganizationsResponse>;
68
+ hasMoreOrganizationsAvailable(paginationContext: DefaultGetPaginatedRequestPaginationContext): boolean;
69
+ getOrganizationById(request: GetOrganizationByIdRequest): Observable<Organization>;
70
+ getOrganizationByName(request: GetOrganizationByNameRequest): Observable<Organization>;
71
+ /**
72
+ * Gets the first organization of the organizations that the logged-in user is associated with, which does not need
73
+ * additional authentication.
74
+ * Since the get organizations endpoint is paginated and we don't want to risk loading all assigned organizations in a loop, because we don't know how many it may be,
75
+ * this method is only considering the first 100 organizations. If each of them requires additional authentication, the first of them will be returned, even though
76
+ * on a later page, there might be an organization without additional authentication.
77
+ */
78
+ getFirstOrganization(): Observable<Organization>;
79
+ private fetchOrganizationsPage;
80
+ private mapNotFound;
81
+ }
@@ -0,0 +1,2 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ "use strict";var __extends=this&&this.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])},r(e,t)};return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}}(),__assign=this&&this.__assign||function(){return __assign=Object.assign||function(r){for(var e,t=1,n=arguments.length;t<n;t++)for(var o in e=arguments[t])Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r},__assign.apply(this,arguments)},__decorate=this&&this.__decorate||function(r,e,t,n){var o,i=arguments.length,a=i<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,t):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(r,e,t,n);else for(var s=r.length-1;s>=0;s--)(o=r[s])&&(a=(i<3?o(a):i>3?o(e,t,a):o(e,t))||a);return i>3&&a&&Object.defineProperty(e,t,a),a},__rest=this&&this.__rest||function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(null!=r&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(r);o<n.length;o++)e.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(r,n[o])&&(t[n[o]]=r[n[o]])}return t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OrganizationServiceImpl=void 0;var rxjs_1=require("rxjs"),operators_1=require("rxjs/operators"),general_helper_1=require("../../utils/general-helper"),organization_1=require("./models/organization"),injection_identifier_1=require("../../decorators/injection-identifier"),error_1=require("../../models/error"),base_service_1=require("../base.service"),https_service_interface_1=require("../http/https.service.interface"),OrganizationServiceImpl=function(r){function e(){return null!==r&&r.apply(this,arguments)||this}return __extends(e,r),e.prototype.onCreate=function(){this.httpsService=this.serviceProvider.getService(https_service_interface_1.HttpsService)},e.prototype.loadOrganizations=function(r){return this.fetchOrganizationsPage(r).pipe((0,operators_1.map)((function(e){var t=e.organizations,n=e.nextCursor;return{organizations:t,paginationContext:{initialRequest:r,nextCursor:n}}})))},e.prototype.loadMoreOrganizations=function(r){if(!r.nextCursor)return(0,rxjs_1.throwError)((function(){return new error_1.SdkError(error_1.SDK_ERROR_CODES.NO_PAGINATION_CURSOR_AVAILABLE,null,"No cursor available")}));var e=__assign(__assign({},r.initialRequest),{cursor:r.nextCursor});return this.fetchOrganizationsPage(e).pipe((0,operators_1.map)((function(e){var t=e.organizations,n=e.nextCursor;return{organizations:t,paginationContext:__assign(__assign({},r),{nextCursor:n})}})))},e.prototype.hasMoreOrganizationsAvailable=function(r){return!!r.nextCursor},e.prototype.getOrganizationById=function(r){var e=r.partiumId,t=__rest(r,["partiumId"]);return this.httpsService.get("organizations/by-partium-id/".concat(encodeURIComponent(e)),(0,general_helper_1.toQueryParams)(t),https_service_interface_1.BACKEND_SERVICE.BACKOFFICE).pipe((0,operators_1.map)((function(r){return(0,organization_1.organizationFromAPIResponse)(r)})),this.mapNotFound({partiumId:e},"Could not find organization with id ".concat(e)))},e.prototype.getOrganizationByName=function(r){var e=r.name,t=__rest(r,["name"]);return this.httpsService.get("organizations/".concat(encodeURIComponent(e)),(0,general_helper_1.toQueryParams)(t),https_service_interface_1.BACKEND_SERVICE.BACKOFFICE).pipe((0,operators_1.map)((function(r){return(0,organization_1.organizationFromAPIResponse)(r)})),this.mapNotFound({name:e},"Could not find organization with name ".concat(e)))},e.prototype.getFirstOrganization=function(){var r=this;return this.loadOrganizations({pageSize:100}).pipe((0,operators_1.map)((function(r){var e=r.organizations;if(!e.length)throw new error_1.SdkError(error_1.SDK_ERROR_CODES.ORGANIZATION_NOT_FOUND,{},"Could not find any organization.");return e.find((function(r){return!r.requiresAdditionalAuthentication}))||e[0]})),(0,operators_1.mergeMap)((function(e){return r.getOrganizationById({partiumId:e.partiumId})})))},e.prototype.fetchOrganizationsPage=function(r){var e=(0,general_helper_1.toQueryParams)(r);return this.httpsService.get("organizations",e,https_service_interface_1.BACKEND_SERVICE.BACKOFFICE).pipe((0,operators_1.map)((function(r){var e,t;return{organizations:null!==(t=null===(e=r.results)||void 0===e?void 0:e.map((function(r){return(0,organization_1.organizationListItemFromAPIResponse)(r)})))&&void 0!==t?t:[],nextCursor:(0,general_helper_1.extractNextCursor)(r)}})))},e.prototype.mapNotFound=function(r,e){return(0,operators_1.catchError)((function(t){return t.code===error_1.SDK_ERROR_CODES.NOT_FOUND||t.code===error_1.SDK_ERROR_CODES.UNPROCESSABLE_ENTITY?(0,rxjs_1.throwError)((function(){return new error_1.SdkError(error_1.SDK_ERROR_CODES.ORGANIZATION_NOT_FOUND,r,e)})):(0,rxjs_1.throwError)((function(){return t}))}))},e=__decorate([(0,injection_identifier_1.InjectionIdentifier)("OrganizationService")],e)}(base_service_1.BaseService);exports.OrganizationServiceImpl=OrganizationServiceImpl;
@@ -3,7 +3,7 @@ import { Observable } from 'rxjs';
3
3
  import { ServiceProvider } from './service-provider';
4
4
  import { PartiumConfig } from '../models/partium-config';
5
5
  import { BaseLoginInitService } from './base-login-init.service';
6
- import { Organization } from '../models/organization';
6
+ import { Organization } from './organization/models/organization';
7
7
  /**
8
8
  * Service that provides functionality to locally store and retrieve a list of recently viewed parts.
9
9
  * The max length of the list can be controlled with the maxPartHistoryLength parameter passed in the Partium config in init.
@@ -7,7 +7,7 @@ import { BaseLoginInitService } from '../base-login-init.service';
7
7
  import { BaseService } from '../base.service';
8
8
  import { ServiceProvider } from '../service-provider';
9
9
  import { EventContext } from '../../models/log';
10
- import { Organization } from '../../models/organization';
10
+ import { Organization } from '../organization/models/organization';
11
11
  export declare enum SESSION_STATUS_EVENT {
12
12
  SESSION_STARTED = 0,
13
13
  SESSION_ENDED = 1
@@ -92,12 +92,19 @@ export declare class SessionService extends BaseService {
92
92
  */
93
93
  getUser(): User;
94
94
  /**
95
- * Set organization with the given identifier as the current organization to be used in the session.
95
+ * Set organization with the given partiumId as the current organization to be used in the session.
96
96
  *
97
- * @param organizationIdentifier can be organization-id or organization-name
97
+ * @param organizationPartiumId organization-id
98
98
  * @returns void if organization is found, otherwise throws an error
99
99
  */
100
- useOrganization(organizationIdentifier: string): Promise<void>;
100
+ useOrganizationById(organizationPartiumId: string): Promise<void>;
101
+ /**
102
+ * Set organization with the given name as the current organization to be used in the session.
103
+ *
104
+ * @param organizationName organization-name
105
+ * @returns void if organization is found, otherwise throws an error
106
+ */
107
+ useOrganizationByName(organizationName: string): Promise<void>;
101
108
  /**
102
109
  * Get an observable that always emits when the currently selected organization changed.
103
110
  *
@@ -138,5 +145,10 @@ export declare class SessionService extends BaseService {
138
145
  * @returns Observable that resolves once all services have been initialized.
139
146
  */
140
147
  private initializeRegisteredServices;
141
- private getFlattenedOrganizations;
148
+ /**
149
+ * Set the given organization as the sessions current organization and store the partiumId in the localStorage.
150
+ *
151
+ * @param organization the new current organization
152
+ */
153
+ private setCurrentOrganization;
142
154
  }
@@ -1,2 +1,2 @@
1
1
  // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
- "use strict";var __extends=this&&this.__extends||function(){var e=function(r,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])},e(r,t)};return function(r,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=r}e(r,t),r.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}}(),__decorate=this&&this.__decorate||function(e,r,t,i){var n,o=arguments.length,s=o<3?r:null===i?i=Object.getOwnPropertyDescriptor(r,t):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,r,t,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(r,t,s):n(r,t))||s);return o>3&&s&&Object.defineProperty(r,t,s),s},__awaiter=this&&this.__awaiter||function(e,r,t,i){return new(t||(t=Promise))((function(n,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,a)}c((i=i.apply(e,r||[])).next())}))},__generator=this&&this.__generator||function(e,r){var t,i,n,o,s={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(c){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(s=0)),s;)try{if(t=1,i&&(n=2&a[0]?i.return:a[0]?i.throw||((n=i.return)&&n.call(i),0):i.next)&&!(n=n.call(i,a[1])).done)return n;switch(i=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,i=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(n=s.trys,(n=n.length>0&&n[n.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){s.label=a[1];break}if(6===a[0]&&s.label<n[1]){s.label=n[1],n=a;break}if(n&&s.label<n[2]){s.label=n[2],s.ops.push(a);break}n[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],i=0}finally{t=n=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}},__spreadArray=this&&this.__spreadArray||function(e,r,t){if(t||2===arguments.length)for(var i,n=0,o=r.length;n<o;n++)!i&&n in r||(i||(i=Array.prototype.slice.call(r,0,n)),i[n]=r[n]);return e.concat(i||Array.prototype.slice.call(r))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SessionService=exports.LogoutConfig=exports.LoginConfig=exports.SESSION_STATUS_EVENT=void 0;var SESSION_STATUS_EVENT,rxjs_1=require("rxjs"),operators_1=require("rxjs/operators"),injection_identifier_1=require("../../decorators/injection-identifier"),base_service_1=require("../base.service"),organization_service_1=require("../organization.service"),log_1=require("../../models/log"),log_service_1=require("../log.service"),device_status_service_interface_1=require("../device-status.service.interface"),sdk_version_1=require("../../../gen/sdk-version"),error_1=require("../../models/error"),local_storage_service_interface_1=require("../local-storage.service.interface");!function(e){e[e.SESSION_STARTED=0]="SESSION_STARTED",e[e.SESSION_ENDED=1]="SESSION_ENDED"}(SESSION_STATUS_EVENT||(exports.SESSION_STATUS_EVENT=SESSION_STATUS_EVENT={}));var LoginConfig=function(){};exports.LoginConfig=LoginConfig;var LogoutConfig=function(e){Object.assign(this,e)};exports.LogoutConfig=LogoutConfig;var SessionService=function(e){function r(r){var t=e.call(this,r)||this;return t.currentOrganization$=new rxjs_1.BehaviorSubject(void 0),t.servicesToInitDuringLogin=[],t.sessionStatus$=new rxjs_1.BehaviorSubject(null),t}return __extends(r,e),r.prototype.init=function(e){var r=this;return new rxjs_1.Observable((function(t){r.authenticationConfig=e.authenticationConfig,r.partiumConfig=e,t.next(),t.complete()}))},r.prototype.login=function(e){throw new Error("In order to use the SessionService, don't directly use this class, but one of it's descendants, by choosing a replacement with serviceProvider.useService().")},r.prototype.logout=function(e){throw new Error("In order to use the SessionService, don't directly use this class, but one of it's descendants, by choosing a replacement with serviceProvider.useService().")},r.prototype.getSessionStatusEvents=function(){return this.sessionStatus$.asObservable()},r.prototype.getAuthConfig=function(){return this.authenticationConfig},r.prototype.setUser=function(e){this.user=e},r.prototype.getUser=function(){return this.user},r.prototype.useOrganization=function(e){return __awaiter(this,void 0,void 0,(function(){var r,t,i,n,o;return __generator(this,(function(s){switch(s.label){case 0:return[4,this.organizationService.getOrganizations()];case 1:for(r=s.sent(),t=this.getFlattenedOrganizations(r),i=0,n=t;i<n.length;i++)if((o=n[i]).partiumId===e||o.name===e)return this.currentOrganization$.next(o),this.localStorageService.setItem("lastUsedOrganizationId",o.partiumId,{organizationName:!1,userEmail:!1}),[2];throw new error_1.SdkError(error_1.SDK_ERROR_CODES.ORGANIZATION_NOT_FOUND,{organizationIdentifier:e},"Could not find organization with id/name ".concat(e))}}))}))},r.prototype.getCurrentOrganization$=function(){return this.currentOrganization$.asObservable()},r.prototype.registerLoginInitService=function(e,r){void 0===r&&(r=100),this.servicesToInitDuringLogin.push({service:e,priority:r})},r.prototype.sessionSetup=function(e){var r=this;this.organizationService=this.serviceProvider.getService(organization_service_1.OrganizationService),this.localStorageService=this.serviceProvider.getService(local_storage_service_interface_1.LocalStorageService);var t=this.serviceProvider.getService(log_service_1.LogServiceImpl),i=this.serviceProvider.getService(device_status_service_interface_1.DeviceStatusService);return(0,rxjs_1.from)(Promise.all([this.localStorageService.getItem("lastUsedOrganizationId",{organizationName:!1,userEmail:!1}),this.organizationService.init().then((function(){return r.organizationService.getOrganizations()}))])).pipe((0,operators_1.mergeMap)((function(e){var t=e[0],i=e[1];if(t){var n=r.getFlattenedOrganizations(i).find((function(e){return e.partiumId===t}));if(n&&!n.requiresAdditionalAuthentication)return(0,rxjs_1.of)(n)}return(0,rxjs_1.from)(r.organizationService.getFirstOrganization())})),(0,operators_1.map)((function(e){return r.currentOrganization$.next(e),e})),(0,operators_1.mergeMap)((function(n){return r.initializeRegisteredServices().pipe((0,operators_1.mergeMap)((function(){return(0,rxjs_1.from)(i.getDeviceInfo()).pipe((0,operators_1.tap)((function(i){r.logUserSessionInfoEvent(i,t,n,e)})))})))})),(0,operators_1.map)((function(){r.sessionStatus$.next(SESSION_STATUS_EVENT.SESSION_STARTED)})),(0,operators_1.catchError)((function(e){return r.logout().subscribe(),(0,rxjs_1.throwError)(e)})))},r.prototype.logUserSessionInfoEvent=function(e,r,t,i){var n=this.getValidLanguageUiForEvent(t,null==i?void 0:i.languageUi),o={deviceId:e.deviceId,manufacturer:e.manufacturer,model:e.model,os:e.os,osVersion:e.osVersion,deviceType:e.deviceType,deviceLanguage:e.deviceLanguage,appVersionCode:e.appVersionCode,appVersionName:e.appVersionName,partiumSdkVersion:sdk_version_1.SDK_VERSION_NUMBER,languageUi:n,browserName:e.browserName,browserVersion:e.browserVersion,cpuArchitecture:e.cpuArchitecture,engineName:e.engineName,engineVersion:e.engineVersion};r.logEvent(new log_1.EventLog({organizationId:t.partiumId,version:log_1.EVENTLOG_VERSIONS.V_2_0_0,interface:(null==i?void 0:i.eventInterface)||log_1.INTERFACE.API_ACCESS,event:log_1.EVENT.USER_SESSION_INFO,data:o})).subscribe({next:function(){},error:function(e){console.error("Error while sending log event ".concat(log_1.EVENT.USER_SESSION_INFO,": "),e)}})},r.prototype.getValidLanguageUiForEvent=function(e,r){var t;if(r&&((null===(t=e.config)||void 0===t?void 0:t.availableUiLanguages)||["en"]).includes(r))return r;return null},r.prototype.sessionEnded=function(){this.sessionStatus$.next(SESSION_STATUS_EVENT.SESSION_ENDED)},r.prototype.initializeRegisteredServices=function(){for(var e=this,r=this.servicesToInitDuringLogin.sort((function(e,r){return e.priority-r.priority})),t=[],i=-1,n=0;n<r.length;n++){var o=r[n];o.priority===i?t[t.length-1].push(o.service):(i=o.priority,t.push([o.service]))}return rxjs_1.concat.apply(void 0,t.map((function(r){return(0,rxjs_1.forkJoin)(r.map((function(r){return r.init(e.partiumConfig,e.user.email,e.getCurrentOrganization$())})))}))).pipe((0,operators_1.last)())},r.prototype.getFlattenedOrganizations=function(e){return e.reduce((function(e,r){return __spreadArray(__spreadArray(__spreadArray([],e,!0),[r],!1),r.subOrgs||[],!0)}),[])},r=__decorate([(0,injection_identifier_1.InjectionIdentifier)("SessionService")],r)}(base_service_1.BaseService);exports.SessionService=SessionService;
2
+ "use strict";var __extends=this&&this.__extends||function(){var e=function(r,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])},e(r,t)};return function(r,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=r}e(r,t),r.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}}(),__decorate=this&&this.__decorate||function(e,r,t,i){var n,o=arguments.length,s=o<3?r:null===i?i=Object.getOwnPropertyDescriptor(r,t):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,r,t,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(r,t,s):n(r,t))||s);return o>3&&s&&Object.defineProperty(r,t,s),s},__awaiter=this&&this.__awaiter||function(e,r,t,i){return new(t||(t=Promise))((function(n,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,a)}c((i=i.apply(e,r||[])).next())}))},__generator=this&&this.__generator||function(e,r){var t,i,n,o,s={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(c){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(s=0)),s;)try{if(t=1,i&&(n=2&a[0]?i.return:a[0]?i.throw||((n=i.return)&&n.call(i),0):i.next)&&!(n=n.call(i,a[1])).done)return n;switch(i=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,i=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(n=s.trys,(n=n.length>0&&n[n.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){s.label=a[1];break}if(6===a[0]&&s.label<n[1]){s.label=n[1],n=a;break}if(n&&s.label<n[2]){s.label=n[2],s.ops.push(a);break}n[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],i=0}finally{t=n=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SessionService=exports.LogoutConfig=exports.LoginConfig=exports.SESSION_STATUS_EVENT=void 0;var SESSION_STATUS_EVENT,rxjs_1=require("rxjs"),operators_1=require("rxjs/operators"),injection_identifier_1=require("../../decorators/injection-identifier"),base_service_1=require("../base.service"),organization_service_1=require("../organization/organization.service"),log_1=require("../../models/log"),log_service_1=require("../log.service"),device_status_service_interface_1=require("../device-status.service.interface"),sdk_version_1=require("../../../gen/sdk-version"),local_storage_service_interface_1=require("../local-storage.service.interface"),LAST_USED_ORGANIZATION_ID_KEY="lastUsedOrganizationId",LAST_USED_ORGANIZATION_ID_PREFIX={organizationName:!1,userEmail:!1};!function(e){e[e.SESSION_STARTED=0]="SESSION_STARTED",e[e.SESSION_ENDED=1]="SESSION_ENDED"}(SESSION_STATUS_EVENT||(exports.SESSION_STATUS_EVENT=SESSION_STATUS_EVENT={}));var LoginConfig=function(){};exports.LoginConfig=LoginConfig;var LogoutConfig=function(e){Object.assign(this,e)};exports.LogoutConfig=LogoutConfig;var SessionService=function(e){function r(r){var t=e.call(this,r)||this;return t.currentOrganization$=new rxjs_1.BehaviorSubject(void 0),t.servicesToInitDuringLogin=[],t.sessionStatus$=new rxjs_1.BehaviorSubject(null),t}return __extends(r,e),r.prototype.init=function(e){var r=this;return new rxjs_1.Observable((function(t){r.authenticationConfig=e.authenticationConfig,r.partiumConfig=e,t.next(),t.complete()}))},r.prototype.login=function(e){throw new Error("In order to use the SessionService, don't directly use this class, but one of it's descendants, by choosing a replacement with serviceProvider.useService().")},r.prototype.logout=function(e){throw new Error("In order to use the SessionService, don't directly use this class, but one of it's descendants, by choosing a replacement with serviceProvider.useService().")},r.prototype.getSessionStatusEvents=function(){return this.sessionStatus$.asObservable()},r.prototype.getAuthConfig=function(){return this.authenticationConfig},r.prototype.setUser=function(e){this.user=e},r.prototype.getUser=function(){return this.user},r.prototype.useOrganizationById=function(e){return __awaiter(this,void 0,void 0,(function(){var r;return __generator(this,(function(t){switch(t.label){case 0:return[4,(0,rxjs_1.firstValueFrom)(this.organizationService.getOrganizationById({partiumId:e}))];case 1:return r=t.sent(),this.setCurrentOrganization(r),[2]}}))}))},r.prototype.useOrganizationByName=function(e){return __awaiter(this,void 0,void 0,(function(){var r;return __generator(this,(function(t){switch(t.label){case 0:return[4,(0,rxjs_1.firstValueFrom)(this.organizationService.getOrganizationByName({name:e}))];case 1:return r=t.sent(),this.setCurrentOrganization(r),[2]}}))}))},r.prototype.getCurrentOrganization$=function(){return this.currentOrganization$.asObservable()},r.prototype.registerLoginInitService=function(e,r){void 0===r&&(r=100),this.servicesToInitDuringLogin.push({service:e,priority:r})},r.prototype.sessionSetup=function(e){var r=this;this.organizationService=this.serviceProvider.getService(organization_service_1.OrganizationServiceImpl),this.localStorageService=this.serviceProvider.getService(local_storage_service_interface_1.LocalStorageService);var t=this.serviceProvider.getService(log_service_1.LogServiceImpl),i=this.serviceProvider.getService(device_status_service_interface_1.DeviceStatusService);return(0,rxjs_1.from)(this.localStorageService.getItem(LAST_USED_ORGANIZATION_ID_KEY,LAST_USED_ORGANIZATION_ID_PREFIX)).pipe((0,operators_1.mergeMap)((function(e){return e?(0,rxjs_1.from)(r.organizationService.getOrganizationById({partiumId:e})).pipe((0,operators_1.catchError)((function(t){return console.error("Error while getting organization by id ".concat(e,". Using first organization instead. "),t),r.localStorageService.deleteItem(LAST_USED_ORGANIZATION_ID_KEY,LAST_USED_ORGANIZATION_ID_PREFIX),(0,rxjs_1.of)(void 0)}))):(0,rxjs_1.of)(void 0)})),(0,operators_1.mergeMap)((function(e){return e&&!e.requiresAdditionalAuthentication?(0,rxjs_1.of)(e):r.organizationService.getFirstOrganization()})),(0,operators_1.map)((function(e){return r.setCurrentOrganization(e),e})),(0,operators_1.mergeMap)((function(n){return r.initializeRegisteredServices().pipe((0,operators_1.mergeMap)((function(){return(0,rxjs_1.from)(i.getDeviceInfo()).pipe((0,operators_1.tap)((function(i){r.logUserSessionInfoEvent(i,t,n,e)})))})))})),(0,operators_1.map)((function(){r.sessionStatus$.next(SESSION_STATUS_EVENT.SESSION_STARTED)})),(0,operators_1.catchError)((function(e){return r.logout().subscribe(),(0,rxjs_1.throwError)(e)})))},r.prototype.logUserSessionInfoEvent=function(e,r,t,i){var n=this.getValidLanguageUiForEvent(t,null==i?void 0:i.languageUi),o={deviceId:e.deviceId,manufacturer:e.manufacturer,model:e.model,os:e.os,osVersion:e.osVersion,deviceType:e.deviceType,deviceLanguage:e.deviceLanguage,appVersionCode:e.appVersionCode,appVersionName:e.appVersionName,partiumSdkVersion:sdk_version_1.SDK_VERSION_NUMBER,languageUi:n,browserName:e.browserName,browserVersion:e.browserVersion,cpuArchitecture:e.cpuArchitecture,engineName:e.engineName,engineVersion:e.engineVersion};r.logEvent(new log_1.EventLog({organizationId:t.partiumId,version:log_1.EVENTLOG_VERSIONS.V_2_0_0,interface:(null==i?void 0:i.eventInterface)||log_1.INTERFACE.API_ACCESS,event:log_1.EVENT.USER_SESSION_INFO,data:o})).subscribe({next:function(){},error:function(e){console.error("Error while sending log event ".concat(log_1.EVENT.USER_SESSION_INFO,": "),e)}})},r.prototype.getValidLanguageUiForEvent=function(e,r){var t;if(r&&((null===(t=e.config)||void 0===t?void 0:t.availableUiLanguages)||["en"]).includes(r))return r;return null},r.prototype.sessionEnded=function(){this.sessionStatus$.next(SESSION_STATUS_EVENT.SESSION_ENDED)},r.prototype.initializeRegisteredServices=function(){for(var e=this,r=this.servicesToInitDuringLogin.sort((function(e,r){return e.priority-r.priority})),t=[],i=-1,n=0;n<r.length;n++){var o=r[n];o.priority===i?t[t.length-1].push(o.service):(i=o.priority,t.push([o.service]))}return rxjs_1.concat.apply(void 0,t.map((function(r){return(0,rxjs_1.forkJoin)(r.map((function(r){return r.init(e.partiumConfig,e.user.email,e.getCurrentOrganization$())})))}))).pipe((0,operators_1.last)())},r.prototype.setCurrentOrganization=function(e){this.currentOrganization$.next(e),this.localStorageService.setItem(LAST_USED_ORGANIZATION_ID_KEY,e.partiumId,LAST_USED_ORGANIZATION_ID_PREFIX)},r=__decorate([(0,injection_identifier_1.InjectionIdentifier)("SessionService")],r)}(base_service_1.BaseService);exports.SessionService=SessionService;
@@ -35,7 +35,8 @@ export declare const addUrlParameters: (url: string, paramObjects: Array<Object>
35
35
  */
36
36
  export declare const addUrlParameter: (url: string, paramObject: Object) => string;
37
37
  /**
38
- * Serialize a params object into repeated single-key query param objects.
38
+ * Serialize a params object into single-key query param objects for HttpsService.
39
+ * Array values are deduplicated (first-seen order) and joined with commas.
39
40
  *
40
41
  * @param params object with scalar or array query param values
41
42
  * @returns query param objects consumable by HttpsService
@@ -1,2 +1,2 @@
1
1
  // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
- "use strict";var __spreadArray=this&&this.__spreadArray||function(r,e,a){if(a||2===arguments.length)for(var t,n=0,o=e.length;n<o;n++)!t&&n in e||(t||(t=Array.prototype.slice.call(e,0,n)),t[n]=e[n]);return r.concat(t||Array.prototype.slice.call(e))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.extractNextCursor=exports.toQueryParams=exports.addUrlParameter=exports.addUrlParameters=exports.snakeToCamelCase=exports.camelToSnake=void 0;var error_1=require("../models/error"),camelToSnake=function(r){var e={};return Object.keys(r).forEach((function(a){var t=a.replace(/[A-Z]/g,(function(r){return"_".concat(r.toLowerCase())}));if(e[t]=r[a],Array.isArray(r[t])){var n=r[t];n=n.map((function(r){return r&&"object"==typeof r&&r.constructor===Object?(0,exports.camelToSnake)(r):r})),e[t]=n}})),e};exports.camelToSnake=camelToSnake;var snakeToCamelCase=function(r){var e={};return Object.keys(r).forEach((function(a){var t=a.toLowerCase().replace(/([-_][a-z])/g,(function(r){return r.toUpperCase().replace("-","").replace("_","")}));if(e[t]=r[a],Array.isArray(r[t])){var n=r[t];n=n.map((function(r){return r&&"object"==typeof r&&r.constructor===Object?(0,exports.snakeToCamelCase)(r):r})),e[t]=n}})),e};exports.snakeToCamelCase=snakeToCamelCase;var addUrlParameters=function(r,e){if(!e||e.length<1)return r;for(var a=0,t=e;a<t.length;a++){var n=t[a];r=(0,exports.addUrlParameter)(r,n)}return r};exports.addUrlParameters=addUrlParameters;var addUrlParameter=function(r,e){if(!e)return r;var a=r.split("?"),t=a[0],n=[];a.length>1&&(n=a[1].split("&").map((function(r){return r.split("=")})));for(var o=0,s=Object.keys(e);o<s.length;o++){var c=s[o],u=e[c];null!=u&&(c=encodeURIComponent(c),u=encodeURIComponent(u),n.push([c,u]))}var i=n.map((function(r){return r.join("=")}));return i.length>0?"".concat(t,"?").concat(i.join("&")):t};exports.addUrlParameter=addUrlParameter;var toQueryParams=function(r){return Object.entries(r).reduce((function(r,e){var a,t=e[0],n=e[1];return null==n?r:Array.isArray(n)?__spreadArray(__spreadArray([],r,!0),n.map((function(r){var e;return(e={})[t]=r,e})),!0):__spreadArray(__spreadArray([],r,!0),[(a={},a[t]=n,a)],!1)}),[])};exports.toQueryParams=toQueryParams;var extractNextCursor=function(r){if(r.next)try{return new URL(r.next).searchParams.get("cursor")||void 0}catch(e){throw new error_1.SdkError(error_1.SDK_ERROR_CODES.INVALID_PAGINATION_CURSOR_URL,{next:r.next,reason:e instanceof Error?e.message:String(e)},"Invalid pagination next URL.")}};exports.extractNextCursor=extractNextCursor;
2
+ "use strict";var __spreadArray=this&&this.__spreadArray||function(r,e,a){if(a||2===arguments.length)for(var t,o=0,n=e.length;o<n;o++)!t&&o in e||(t||(t=Array.prototype.slice.call(e,0,o)),t[o]=e[o]);return r.concat(t||Array.prototype.slice.call(e))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.extractNextCursor=exports.toQueryParams=exports.addUrlParameter=exports.addUrlParameters=exports.snakeToCamelCase=exports.camelToSnake=void 0;var error_1=require("../models/error"),camelToSnake=function(r){var e={};return Object.keys(r).forEach((function(a){var t=a.replace(/[A-Z]/g,(function(r){return"_".concat(r.toLowerCase())}));if(e[t]=r[a],Array.isArray(r[t])){var o=r[t];o=o.map((function(r){return r&&"object"==typeof r&&r.constructor===Object?(0,exports.camelToSnake)(r):r})),e[t]=o}})),e};exports.camelToSnake=camelToSnake;var snakeToCamelCase=function(r){var e={};return Object.keys(r).forEach((function(a){var t=a.toLowerCase().replace(/([-_][a-z])/g,(function(r){return r.toUpperCase().replace("-","").replace("_","")}));if(e[t]=r[a],Array.isArray(r[t])){var o=r[t];o=o.map((function(r){return r&&"object"==typeof r&&r.constructor===Object?(0,exports.snakeToCamelCase)(r):r})),e[t]=o}})),e};exports.snakeToCamelCase=snakeToCamelCase;var addUrlParameters=function(r,e){if(!e||e.length<1)return r;for(var a=0,t=e;a<t.length;a++){var o=t[a];r=(0,exports.addUrlParameter)(r,o)}return r};exports.addUrlParameters=addUrlParameters;var addUrlParameter=function(r,e){if(!e)return r;var a=r.split("?"),t=a[0],o=[];a.length>1&&(o=a[1].split("&").map((function(r){return r.split("=")})));for(var n=0,s=Object.keys(e);n<s.length;n++){var c=s[n],u=e[c];null!=u&&(c=encodeURIComponent(c),u=encodeURIComponent(u),o.push([c,u]))}var l=o.map((function(r){return r.join("=")}));return l.length>0?"".concat(t,"?").concat(l.join("&")):t};exports.addUrlParameter=addUrlParameter;var toQueryParams=function(r){return Object.entries(r).reduce((function(r,e){var a,t,o=e[0],n=e[1];return null==n?r:Array.isArray(n)?0===n.length?r:__spreadArray(__spreadArray([],r,!0),[(a={},a[o]=Array.from(new Set(n)).join(","),a)],!1):__spreadArray(__spreadArray([],r,!0),[(t={},t[o]=n,t)],!1)}),[])};exports.toQueryParams=toQueryParams;var extractNextCursor=function(r){if(r.next)try{return new URL(r.next).searchParams.get("cursor")||void 0}catch(e){throw new error_1.SdkError(error_1.SDK_ERROR_CODES.INVALID_PAGINATION_CURSOR_URL,{next:r.next,reason:e instanceof Error?e.message:String(e)},"Invalid pagination next URL.")}};exports.extractNextCursor=extractNextCursor;
@@ -0,0 +1,20 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ import { Observable } from 'rxjs';
3
+ import { SdkError } from '../models/error';
4
+ import { INTERFACE } from '../models/log';
5
+ import { PFile } from '../models/p-file';
6
+ import { BACKEND_SERVICE, HttpsService } from '../services/http/https.service.interface';
7
+ export declare function createMultipartUploadUnsupportedError(): SdkError;
8
+ export declare function guardMultipartUpload<T>(file: PFile, proceed: () => Observable<T>): Observable<T>;
9
+ /**
10
+ * Builds the standard partium-api multipart body: JSON `input` field + binary `image` from PFile.
11
+ */
12
+ export declare function createPFileImageMultipartFormData(image: PFile, input?: object): FormData;
13
+ export declare function createPartiumInterfaceMultipartHeaders(eventInterface?: INTERFACE): Record<string, string>;
14
+ export declare function postPFileImageMultipartRequest<T>(httpsService: HttpsService, options: {
15
+ url: string;
16
+ image: PFile;
17
+ input?: object;
18
+ eventInterface?: INTERFACE;
19
+ backend?: BACKEND_SERVICE;
20
+ }): Observable<T>;
@@ -0,0 +1,2 @@
1
+ // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createMultipartUploadUnsupportedError=createMultipartUploadUnsupportedError,exports.guardMultipartUpload=guardMultipartUpload,exports.createPFileImageMultipartFormData=createPFileImageMultipartFormData,exports.createPartiumInterfaceMultipartHeaders=createPartiumInterfaceMultipartHeaders,exports.postPFileImageMultipartRequest=postPFileImageMultipartRequest;var rxjs_1=require("rxjs"),error_1=require("../models/error"),log_1=require("../models/log"),https_service_interface_1=require("../services/http/https.service.interface"),MULTIPART_UPLOAD_NOT_SUPPORTED_MESSAGE="Image-upload is only available on platforms that support multipart-upload.";function createMultipartUploadUnsupportedError(){return new error_1.SdkError(error_1.SDK_ERROR_CODES.MULTIPART_UPLOAD_NOT_SUPPORTED,{},MULTIPART_UPLOAD_NOT_SUPPORTED_MESSAGE)}function guardMultipartUpload(r,e){return r.supportsMultipartUpload()?e():(0,rxjs_1.throwError)((function(){return createMultipartUploadUnsupportedError()}))}function createPFileImageMultipartFormData(r,e){var t=new FormData;return void 0!==e&&t.append("input",JSON.stringify(e)),r.appendToFormData("image",t),t}function createPartiumInterfaceMultipartHeaders(r){return void 0===r&&(r=log_1.INTERFACE.API_ACCESS),{"Content-Type":"multipart/form-data","X-Partium-Interface":r}}function postPFileImageMultipartRequest(r,e){var t;return r.post(e.url,createPFileImageMultipartFormData(e.image,e.input),void 0,null!==(t=e.backend)&&void 0!==t?t:https_service_interface_1.BACKEND_SERVICE.PARTIUM,createPartiumInterfaceMultipartHeaders(e.eventInterface))}
@@ -1,5 +1,5 @@
1
1
  // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
- import { i18nString, Organization, APIObject } from '../../core';
2
+ import { i18nString, APIObject, OrganizationListItem } from '../../core';
3
3
  import { DATA_ORIGIN } from './part';
4
4
  export interface AttributeFromDataAPI {
5
5
  uuid: string;
@@ -16,7 +16,7 @@ export interface AttributeFromDataAPI {
16
16
  type: string;
17
17
  options: object[];
18
18
  }
19
- export interface AttributeFromFindAPI {
19
+ export interface AttributeFromPartiumAPI {
20
20
  label: string;
21
21
  language: string;
22
22
  values: string[];
@@ -27,7 +27,7 @@ export declare enum AttributeType {
27
27
  }
28
28
  export interface AttributeOption {
29
29
  value: i18nString;
30
- organization?: Organization;
30
+ organization?: OrganizationListItem;
31
31
  expansion?: i18nString;
32
32
  }
33
33
  export declare class Attribute extends APIObject {
@@ -36,11 +36,11 @@ export declare class Attribute extends APIObject {
36
36
  name?: i18nString;
37
37
  externalId?: string;
38
38
  value?: i18nString | string;
39
- organization: Organization;
39
+ organization: OrganizationListItem;
40
40
  type: AttributeType;
41
41
  options: AttributeOption[];
42
42
  constructor(init: Partial<Attribute>);
43
43
  updateAttribute(update?: Partial<Attribute>): void;
44
44
  getAttributeWithValue(attributeValue: string): Attribute;
45
- static fromAPIResponse(attributeFromAPI: Partial<AttributeFromDataAPI | AttributeFromFindAPI>, dataOrigin?: DATA_ORIGIN): Attribute;
45
+ static fromAPIResponse(attributeFromAPI: Partial<AttributeFromDataAPI | AttributeFromPartiumAPI>, dataOrigin?: DATA_ORIGIN): Attribute;
46
46
  }
@@ -1,2 +1,2 @@
1
1
  // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
- "use strict";var __extends=this&&this.__extends||function(){var t=function(n,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])},t(n,e)};return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=n}t(n,e),n.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}}(),__assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var i in n=arguments[e])Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i]);return t},__assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Attribute=exports.AttributeType=void 0;var AttributeType,core_1=require("../../core"),part_1=require("./part");!function(t){t.KVP="kvp",t.PER_ORG="per_org"}(AttributeType||(exports.AttributeType=AttributeType={}));var Attribute=function(t){function n(n){var e=t.call(this)||this;return Object.assign(e,n),e}return __extends(n,t),n.prototype.updateAttribute=function(t){Object.assign(this,t)},n.prototype.getAttributeWithValue=function(t){return __assign(__assign({},this),{value:t})},n.fromAPIResponse=function(t,e){var r;if(void 0===e&&(e=part_1.DATA_ORIGIN.DATA_API),e===part_1.DATA_ORIGIN.DATA_API){var i=t,a=i.uuid,o=i.metadata,s=i.value,u=i.external_id,_=i.organization,p=i.type,c=i.options;return new n(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({},a&&{partiumId:a}),o&&{metadata:o}),{name:new core_1.i18nString(i.name)}),u&&{externalId:u}),s&&{value:s instanceof Object?new core_1.i18nString(s):s.toString()}),_&&{organization:new core_1.Organization({partiumId:_.uuid,name:_.name,displayName:_.name})}),p&&{type:p}),{options:c?c.map((function(t){return{organization:new core_1.Organization({partiumId:t.organization?t.organization.uuid:null,name:t.organization?t.organization.name:null,displayName:t.organization?t.organization.name:null}),value:new core_1.i18nString(t.value),expansion:new core_1.i18nString(t.expansion)}})):[]}))}var g=t;return new n({name:new core_1.i18nString((r={},r[g.language]=g.label,r)),options:g.values.map((function(t){var n;return{value:new core_1.i18nString((n={},n[g.language]=t,n))}}))})},n}(core_1.APIObject);exports.Attribute=Attribute;
2
+ "use strict";var __extends=this&&this.__extends||function(){var t=function(n,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])},t(n,e)};return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=n}t(n,e),n.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}}(),__assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var i in n=arguments[e])Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i]);return t},__assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Attribute=exports.AttributeType=void 0;var AttributeType,core_1=require("../../core"),part_1=require("./part");!function(t){t.KVP="kvp",t.PER_ORG="per_org"}(AttributeType||(exports.AttributeType=AttributeType={}));var Attribute=function(t){function n(n){var e=t.call(this)||this;return Object.assign(e,n),e}return __extends(n,t),n.prototype.updateAttribute=function(t){Object.assign(this,t)},n.prototype.getAttributeWithValue=function(t){return __assign(__assign({},this),{value:t})},n.fromAPIResponse=function(t,e){var r;if(void 0===e&&(e=part_1.DATA_ORIGIN.DATA_API),e===part_1.DATA_ORIGIN.DATA_API){var i=t,a=i.uuid,o=i.metadata,s=i.value,u=i.external_id,_=i.organization,p=i.type,c=i.options;return new n(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({},a&&{partiumId:a}),o&&{metadata:o}),{name:new core_1.i18nString(i.name)}),u&&{externalId:u}),s&&{value:s instanceof Object?new core_1.i18nString(s):s.toString()}),_&&{organization:{partiumId:_.uuid,name:_.name,displayName:_.name}}),p&&{type:p}),{options:c?c.map((function(t){return{organization:{partiumId:t.organization?t.organization.uuid:null,name:t.organization?t.organization.name:null,displayName:t.organization?t.organization.name:null},value:new core_1.i18nString(t.value),expansion:new core_1.i18nString(t.expansion)}})):[]}))}var g=t;return new n({name:new core_1.i18nString((r={},r[g.language]=g.label,r)),options:g.values.map((function(t){var n;return{value:new core_1.i18nString((n={},n[g.language]=t,n))}}))})},n}(core_1.APIObject);exports.Attribute=Attribute;
@@ -1,7 +1,6 @@
1
1
  // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
2
  import { APIObject } from '../../core/models/api-object';
3
- import { KvpHardFilter } from '../../find/models/search-filter';
4
- import { TextSearchQueries } from '../../find/services/search/text-search.service';
3
+ import { TextSearchQueries } from '../../find';
5
4
  import { AssemblyHierarchyNode } from './assembly-hierarchy-node';
6
5
  import { CSA_REQUEST_STATUS } from './csa-request-status';
7
6
  import { Part } from './part';
@@ -34,7 +33,7 @@ export declare class CSARequest extends APIObject {
34
33
  queryImageAssetId: string;
35
34
  resultParts: Part[];
36
35
  assemblies: AssemblyHierarchyNode[];
37
- kvpHardFilters: KvpHardFilter[];
36
+ attributeFilters: Record<string, string[]>;
38
37
  confirmedBomContext: string[];
39
38
  constructor(init?: Partial<CSARequest>);
40
39
  static fromAPIResponse(requestData: Object): CSARequest;
@@ -1,2 +1,2 @@
1
1
  // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
- "use strict";var __extends=this&&this.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},e(t,r)};return function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function a(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(a.prototype=r.prototype,new a)}}(),__assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,r=1,a=arguments.length;r<a;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e},__assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CSARequest=exports.RequestType=void 0;var RequestType,api_object_1=require("../../core/models/api-object"),i18n_string_1=require("../../core/models/i18n-string"),search_filter_1=require("../../find/models/search-filter"),text_search_service_1=require("../../find/services/search/text-search.service"),assembly_hierarchy_node_1=require("./assembly-hierarchy-node"),assembly_hierarchy_node_breadcrumb_1=require("./assembly-hierarchy-node-breadcrumb"),part_1=require("./part");!function(e){e.CONFIRMATION="confirmation",e.HELP="help"}(RequestType||(exports.RequestType=RequestType={}));var CSARequest=function(e){function t(t){var r=e.call(this)||this;return Object.assign(r,t),r}return __extends(t,e),t.fromAPIResponse=function(e){var r,a,s,n,i=e.request_data&&e.request_data.text_query;return!i&&(null===(s=e.request_data)||void 0===s?void 0:s.text_search)&&(i="".concat(e.request_data.text_search.semantic_text||""," ").concat(e.request_data.text_search.exact_text||"").trim()),new t(__assign(__assign({partiumId:e.request_id,cartId:e.cart_uuid,inquiryId:e.inquiry_id,requestType:e.request_data.part?RequestType.CONFIRMATION:RequestType.HELP,organizationId:e.organization_id,created:e.created,contactEmail:e.contact_email,language:e.language,status:e.status,statusTimestamp:e.status_timestamp,confirmedPart:e.confirmed_part,part:e.request_data&&e.request_data.part&&e.request_data.part.part_id?new part_1.Part({partiumId:e.request_data.part.part_id,externalId:e.request_data.part.part_external_id,name:new i18n_string_1.i18nString((r={},r[e.language]=e.request_data.part.part_name,r)),dataOrigin:part_1.DATA_ORIGIN.PARTIAL}):null,message:e.request_data&&e.request_data.user_input,quantity:e.quantity,additionalAssetIds:e.request_data&&e.request_data.media_assets,searchSessionId:e.session_id,textQuery:i},(null===(n=e.request_data)||void 0===n?void 0:n.text_search)?{textQueries:(a={},a[text_search_service_1.TEXT_SEARCH_TYPE.SEMANTIC]=e.request_data.text_search.semantic_text||"",a[text_search_service_1.TEXT_SEARCH_TYPE.EXACT]=e.request_data.text_search.exact_text||"",a)}:{}),{queryImageAssetId:e.request_data&&e.request_data.query_image_asset,resultParts:e.request_data&&e.request_data.result_list?e.request_data.result_list.map((function(t){var r;return new part_1.Part({partiumId:t.part_id,externalId:t.part_external_id,name:new i18n_string_1.i18nString((r={},r[e.language]=t.part_name,r)),dataOrigin:part_1.DATA_ORIGIN.PARTIAL})})):null,assemblies:e.request_data&&e.request_data.assemblies?e.request_data.assemblies.map((function(t){var r;return new assembly_hierarchy_node_1.AssemblyHierarchyNode({partiumId:t.assembly_id,externalId:t.assembly_external_id,name:new i18n_string_1.i18nString((r={},r[e.language]=t.assembly_name,r)),breadcrumbs:t.breadcrumbs.map((function(t){var r;return new assembly_hierarchy_node_breadcrumb_1.AssemblyHierarchyNodeBreadcrumb({partiumId:null,name:new i18n_string_1.i18nString((r={},r[e.language]=t,r))})}))})})):null,confirmedBomContext:!0==!!e.confirmed_part&&e.request_data&&e.request_data.assemblies?e.request_data.assemblies.map((function(e){return e.assembly_id})):[],kvpHardFilters:e.request_data&&e.request_data.hard_filters?e.request_data.hard_filters.map((function(e){return new search_filter_1.KvpHardFilter(e.label,e.label,e.values)})):null}))},t}(api_object_1.APIObject);exports.CSARequest=CSARequest;
2
+ "use strict";var __extends=this&&this.__extends||function(){var e=function(t,a){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])},e(t,a)};return function(t,a){if("function"!=typeof a&&null!==a)throw new TypeError("Class extends value "+String(a)+" is not a constructor or null");function r(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(r.prototype=a.prototype,new r)}}(),__assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,a=1,r=arguments.length;a<r;a++)for(var s in t=arguments[a])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e},__assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CSARequest=exports.RequestType=void 0;var RequestType,api_object_1=require("../../core/models/api-object"),i18n_string_1=require("../../core/models/i18n-string"),find_1=require("../../find"),assembly_hierarchy_node_1=require("./assembly-hierarchy-node"),assembly_hierarchy_node_breadcrumb_1=require("./assembly-hierarchy-node-breadcrumb"),part_1=require("./part");!function(e){e.CONFIRMATION="confirmation",e.HELP="help"}(RequestType||(exports.RequestType=RequestType={}));var CSARequest=function(e){function t(t){var a=e.call(this)||this;return Object.assign(a,t),a}return __extends(t,e),t.fromAPIResponse=function(e){var a,r,s,n,i=e.request_data&&e.request_data.text_query;return!i&&(null===(s=e.request_data)||void 0===s?void 0:s.text_search)&&(i="".concat(e.request_data.text_search.semantic_text||""," ").concat(e.request_data.text_search.exact_text||"").trim()),new t(__assign(__assign({partiumId:e.request_id,cartId:e.cart_uuid,inquiryId:e.inquiry_id,requestType:e.request_data.part?RequestType.CONFIRMATION:RequestType.HELP,organizationId:e.organization_id,created:e.created,contactEmail:e.contact_email,language:e.language,status:e.status,statusTimestamp:e.status_timestamp,confirmedPart:e.confirmed_part,part:e.request_data&&e.request_data.part&&e.request_data.part.part_id?new part_1.Part({partiumId:e.request_data.part.part_id,externalId:e.request_data.part.part_external_id,name:new i18n_string_1.i18nString((a={},a[e.language]=e.request_data.part.part_name,a)),dataOrigin:part_1.DATA_ORIGIN.PARTIAL}):null,message:e.request_data&&e.request_data.user_input,quantity:e.quantity,additionalAssetIds:e.request_data&&e.request_data.media_assets,searchSessionId:e.session_id,textQuery:i},(null===(n=e.request_data)||void 0===n?void 0:n.text_search)?{textQueries:(r={},r[find_1.TEXT_SEARCH_TYPE.SEMANTIC]=e.request_data.text_search.semantic_text||"",r[find_1.TEXT_SEARCH_TYPE.EXACT]=e.request_data.text_search.exact_text||"",r)}:{}),{queryImageAssetId:e.request_data&&e.request_data.query_image_asset,resultParts:e.request_data&&e.request_data.result_list?e.request_data.result_list.map((function(t){var a;return new part_1.Part({partiumId:t.part_id,externalId:t.part_external_id,name:new i18n_string_1.i18nString((a={},a[e.language]=t.part_name,a)),dataOrigin:part_1.DATA_ORIGIN.PARTIAL})})):null,assemblies:e.request_data&&e.request_data.assemblies?e.request_data.assemblies.map((function(t){var a;return new assembly_hierarchy_node_1.AssemblyHierarchyNode({partiumId:t.assembly_id,externalId:t.assembly_external_id,name:new i18n_string_1.i18nString((a={},a[e.language]=t.assembly_name,a)),breadcrumbs:t.breadcrumbs.map((function(t){var a;return new assembly_hierarchy_node_breadcrumb_1.AssemblyHierarchyNodeBreadcrumb({partiumId:null,name:new i18n_string_1.i18nString((a={},a[e.language]=t,a))})}))})})):null,confirmedBomContext:!0==!!e.confirmed_part&&e.request_data&&e.request_data.assemblies?e.request_data.assemblies.map((function(e){return e.assembly_id})):[],attributeFilters:e.request_data&&e.request_data.hard_filters?e.request_data.hard_filters.reduce((function(e,t){return e[t.label]=t.values,e}),{}):null}))},t}(api_object_1.APIObject);exports.CSARequest=CSARequest;
@@ -1,11 +1,11 @@
1
1
  // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
- import { APIObject, BACKEND_SERVICE } from '../../core';
3
- export interface ImageFromFindAPI {
2
+ import { BACKEND_SERVICE } from '../../core';
3
+ export interface ImageFromPartiumAPI {
4
4
  partiumId: string;
5
5
  description: string;
6
- expireAt: string;
6
+ expireAt?: string | null;
7
7
  urls: {
8
- [size: string]: string;
8
+ [size: string]: string | null;
9
9
  };
10
10
  type?: string;
11
11
  }
@@ -13,13 +13,13 @@ export interface ImageFromDataAPI {
13
13
  uuid: string;
14
14
  name: string;
15
15
  description: string;
16
- expireAt: string;
16
+ expireAt?: string | null;
17
17
  urls: {
18
- [size: string]: string;
18
+ [size: string]: string | null;
19
19
  };
20
20
  type?: string;
21
21
  }
22
- export declare class Image extends APIObject {
22
+ export interface Image {
23
23
  assetId: string;
24
24
  origin: BACKEND_SERVICE;
25
25
  /**
@@ -31,11 +31,8 @@ export declare class Image extends APIObject {
31
31
  downloadUrls: {
32
32
  [key: string]: string;
33
33
  };
34
- expireAt: string;
34
+ expireAt?: string | null;
35
35
  name?: string;
36
- constructor(init?: Partial<Image>);
37
- static fromDataAPIResponse(imageData: ImageFromDataAPI, origin?: BACKEND_SERVICE): Image;
38
- static fromFindAPIResponse(imageData: ImageFromFindAPI, origin?: BACKEND_SERVICE): Image;
39
- /** @deprecated use fromDataAPIResponse or fromFindAPIResponse instead, because the origin of the data does not need to correlate with where the image can be downloaded from via assetId */
40
- static fromAPIResponse(imageData: ImageFromFindAPI | ImageFromDataAPI, origin?: BACKEND_SERVICE): Image;
41
36
  }
37
+ export declare function fromDataAPIResponse(imageData: ImageFromDataAPI, origin?: BACKEND_SERVICE): Image;
38
+ export declare function fromPartiumAPIResponse(imageData: ImageFromPartiumAPI, origin?: BACKEND_SERVICE): Image;
@@ -1,2 +1,2 @@
1
1
  // Copyright © 2022-2026 Partium, Inc. DBA Partium
2
- "use strict";var __extends=this&&this.__extends||function(){var e=function(r,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])},e(r,t)};return function(r,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function o(){this.constructor=r}e(r,t),r.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.Image=void 0;var core_1=require("../../core"),Image=function(e){function r(r){var t=e.call(this)||this;return Object.assign(t,r),t}return __extends(r,e),r.fromDataAPIResponse=function(e,t){void 0===t&&(t=core_1.BACKEND_SERVICE.DATA);var o=e;return new r({assetId:o.uuid,origin:t,availableSizes:Object.keys(o.urls),downloadUrls:o.urls,expireAt:o.expireAt||o.expire_at,name:o.name})},r.fromFindAPIResponse=function(e,t){void 0===t&&(t=core_1.BACKEND_SERVICE.FIND);var o=e;return new r({assetId:o.partiumId,origin:t,availableSizes:Object.keys(o.urls),downloadUrls:o.urls,expireAt:o.expireAt||o.expire_at})},r.fromAPIResponse=function(e,t){var o;return void 0===t&&(t=core_1.BACKEND_SERVICE.DATA),t===core_1.BACKEND_SERVICE.FIND?new r({assetId:(o=e).partiumId,origin:t,availableSizes:Object.keys(o.urls),downloadUrls:o.urls,expireAt:o.expireAt||o.expire_at}):new r({assetId:(o=e).uuid,origin:t,availableSizes:Object.keys(o.urls),downloadUrls:o.urls,expireAt:o.expireAt||o.expire_at})},r}(core_1.APIObject);exports.Image=Image;
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.fromDataAPIResponse=fromDataAPIResponse,exports.fromPartiumAPIResponse=fromPartiumAPIResponse;var core_1=require("../../core"),normalizeImageUrls=function(e){return Object.entries(e).reduce((function(e,r){var o=r[0],s=r[1];return null!=s&&(e[o]=s),e}),{})};function fromDataAPIResponse(e,r){void 0===r&&(r=core_1.BACKEND_SERVICE.DATA);var o=e,s=normalizeImageUrls(o.urls);return{assetId:o.uuid,origin:r,availableSizes:Object.keys(o.urls),downloadUrls:s,expireAt:o.expireAt||o.expire_at,name:o.name}}function fromPartiumAPIResponse(e,r){void 0===r&&(r=core_1.BACKEND_SERVICE.PARTIUM);var o=e,s=normalizeImageUrls(o.urls);return{assetId:o.partiumId,origin:r,availableSizes:Object.keys(o.urls),downloadUrls:s,expireAt:o.expireAt}}
@@ -18,7 +18,7 @@ export interface PartDataImage {
18
18
  /**
19
19
  * The expiration date of the image.
20
20
  */
21
- expireAt: string;
21
+ expireAt?: string | null;
22
22
  }
23
23
  /**
24
24
  * The supplier discovery status of the part data.