@genesislcap/pbc-documents-ui 14.445.2-chore-fix-ag-grid-types-react.3 → 14.446.0-FUI-2537.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { Auth, Connect } from '@genesislcap/foundation-comms';
1
2
  import { FileMetaType } from '../types';
2
3
  export type UploadParams = {
3
4
  file: File;
@@ -14,5 +15,14 @@ export interface IDocumentService {
14
15
  downloadDocument(documentId: string): any;
15
16
  deleteDocument(documentId: string): any;
16
17
  }
18
+ export declare class DocumentServiceImpl implements IDocumentService {
19
+ private connect;
20
+ private auth;
21
+ constructor(connect: Connect, auth: Auth);
22
+ uploadDocument({ file, path, fileMetaType }: UploadParams): Promise<Response>;
23
+ replaceDocument({ file, fileStorageId }: ReplaceParams): Promise<any>;
24
+ deleteDocument(documentId: string): Promise<void>;
25
+ downloadDocument(documentId: string): void;
26
+ }
17
27
  export declare const IDocumentService: import("@microsoft/fast-foundation").InterfaceSymbol<IDocumentService>;
18
28
  //# sourceMappingURL=document.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.service.d.ts","sourceRoot":"","sources":["../../../src/services/document.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,gBAAgB,CAAC,UAAU,EAAE,MAAM,OAAE;IACrC,cAAc,CAAC,UAAU,EAAE,MAAM,OAAE;CACpC;AAsHD,eAAO,MAAM,gBAAgB,wEAE5B,CAAC"}
1
+ {"version":3,"file":"document.service.d.ts","sourceRoot":"","sources":["../../../src/services/document.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,gBAAgB,CAAC,UAAU,EAAE,MAAM,OAAE;IACrC,cAAc,CAAC,UAAU,EAAE,MAAM,OAAE;CACpC;AAED,qBAAa,mBAAoB,YAAW,gBAAgB;IAE/C,OAAO,CAAC,OAAO;IAClB,OAAO,CAAC,IAAI;gBADD,OAAO,EAAE,OAAO,EACnB,IAAI,EAAE,IAAI;IAGpB,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,YAAY;IA0BzD,eAAe,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IA0BrE,cAAc,CAAC,UAAU,EAAE,MAAM;IA4BvC,gBAAgB,CAAC,UAAU,EAAE,MAAM;CAqCpC;AAED,eAAO,MAAM,gBAAgB,wEAE5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=document.service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.service.test.d.ts","sourceRoot":"","sources":["../../../src/services/document.service.test.ts"],"names":[],"mappings":""}
@@ -84,15 +84,24 @@ let DocumentServiceImpl = class DocumentServiceImpl {
84
84
  }
85
85
  downloadDocument(documentId) {
86
86
  const headers = new Headers();
87
- headers.append('SESSION_AUTH_TOKEN', sessionStorage.getItem('authToken'));
88
- let filename = '';
87
+ if (this.auth.loggedUserResult) {
88
+ headers.append('SESSION_AUTH_TOKEN', this.auth.loggedUserResult.authToken);
89
+ }
90
+ let filename = documentId;
89
91
  fetch(`gwf/file-server/download?fileStorageId=${documentId}`, {
90
92
  method: 'GET',
91
93
  headers: headers,
92
94
  })
93
95
  .then((response) => {
96
+ if (!response.ok) {
97
+ throw new Error(`Download failed: ${response.status} ${response.statusText}`);
98
+ }
94
99
  const contentDispositionHeader = response.headers.get('Content-disposition');
95
- filename = contentDispositionHeader.split(';')[1].split('filename')[1].split('=')[1].trim();
100
+ const match = contentDispositionHeader === null || contentDispositionHeader === void 0 ? void 0 : contentDispositionHeader.match(/filename\s*=\s*(?:"([^"]+)"|([^;\s]+))/i);
101
+ const parsedFilename = (match === null || match === void 0 ? void 0 : match[1]) || (match === null || match === void 0 ? void 0 : match[2]);
102
+ if (parsedFilename) {
103
+ filename = parsedFilename.trim();
104
+ }
96
105
  return response.blob();
97
106
  })
98
107
  .then((blob) => URL.createObjectURL(blob))
@@ -114,5 +123,6 @@ DocumentServiceImpl = __decorate([
114
123
  __param(0, Connect),
115
124
  __param(1, Auth)
116
125
  ], DocumentServiceImpl);
126
+ export { DocumentServiceImpl };
117
127
  export const IDocumentService = DI.createInterface((x) => x.singleton(DocumentServiceImpl));
118
128
  //# sourceMappingURL=document.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.service.js","sourceRoot":"","sources":["../../../src/services/document.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.service.js","sourceRoot":"","sources":["../../../src/services/document.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { assert, createLogicSuite } from '@genesislcap/foundation-testing';
2
+ import { DocumentServiceImpl } from './document.service';
3
+ function withStubbedGlobals(run, sessionStore = {}) {
4
+ const original = {
5
+ fetch: globalThis.fetch,
6
+ sessionStorage: globalThis.sessionStorage,
7
+ };
8
+ let captured;
9
+ globalThis.fetch = ((url, init) => {
10
+ captured = { url, init };
11
+ return new Promise(() => { });
12
+ });
13
+ globalThis.sessionStorage = {
14
+ getItem: (key) => (key in sessionStore ? sessionStore[key] : null),
15
+ };
16
+ try {
17
+ run(() => captured);
18
+ }
19
+ finally {
20
+ globalThis.fetch = original.fetch;
21
+ globalThis.sessionStorage = original.sessionStorage;
22
+ }
23
+ }
24
+ function makeService(authToken) {
25
+ const auth = {
26
+ loggedUserResult: authToken === null ? null : { authToken },
27
+ };
28
+ const connect = {};
29
+ return new DocumentServiceImpl(connect, auth);
30
+ }
31
+ const Suite = createLogicSuite('DocumentServiceImpl.downloadDocument');
32
+ Suite('sends the auth token from Auth.loggedUserResult, not raw sessionStorage', () => {
33
+ withStubbedGlobals((capture) => {
34
+ const service = makeService('valid-token-123');
35
+ service.downloadDocument('FILE_ID');
36
+ const { url, init } = capture();
37
+ assert.is(url, 'gwf/file-server/download?fileStorageId=FILE_ID');
38
+ assert.is(init.headers.get('SESSION_AUTH_TOKEN'), 'valid-token-123', 'should use the token from Auth, regardless of the sessionStorage key prefix');
39
+ }, { '@custxClientApp/authToken': 'valid-token-123' });
40
+ });
41
+ Suite('omits the auth header when there is no logged-in user', () => {
42
+ withStubbedGlobals((capture) => {
43
+ const service = makeService(null);
44
+ service.downloadDocument('FILE_ID');
45
+ const { init } = capture();
46
+ assert.not.ok(init.headers.get('SESSION_AUTH_TOKEN'), 'no user means no SESSION_AUTH_TOKEN header (never the string "null")');
47
+ });
48
+ });
49
+ Suite.run();
50
+ //# sourceMappingURL=document.service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.service.test.js","sourceRoot":"","sources":["../../../src/services/document.service.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAWzD,SAAS,kBAAkB,CACzB,GAA6C,EAC7C,eAAuC,EAAE;IAEzC,MAAM,QAAQ,GAAG;QACf,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,cAAc,EAAG,UAAkB,CAAC,cAAc;KACnD,CAAC;IAEF,IAAI,QAAyB,CAAC;IAG9B,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAW,EAAE,IAAiB,EAAE,EAAE;QACrD,QAAQ,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,OAAO,CAAW,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACzC,CAAC,CAAiB,CAAC;IAIlB,UAAkB,CAAC,cAAc,GAAG;QACnC,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAC3E,CAAC;IAEF,IAAI,CAAC;QACH,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACjC,UAAkB,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,SAAwB;IAC3C,MAAM,IAAI,GAAG;QACX,gBAAgB,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE;KACzC,CAAC;IACrB,MAAM,OAAO,GAAG,EAAwB,CAAC;IACzC,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,sCAAsC,CAAC,CAAC;AAEvE,KAAK,CAAC,yEAAyE,EAAE,GAAG,EAAE;IACpF,kBAAkB,CAChB,CAAC,OAAO,EAAE,EAAE;QACV,MAAM,OAAO,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC/C,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,gDAAgD,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,CACN,IAAI,CAAC,OAAmB,CAAC,GAAG,CAAC,oBAAoB,CAAC,EACnD,iBAAiB,EACjB,6EAA6E,CAC9E,CAAC;IACJ,CAAC,EAED,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,CACnD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,uDAAuD,EAAE,GAAG,EAAE;IAClE,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,EAAE,CACV,IAAI,CAAC,OAAmB,CAAC,GAAG,CAAC,oBAAoB,CAAC,EACnD,sEAAsE,CACvE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,GAAG,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"root":["../src/globals.d.ts","../src/index.federated.ts","../src/index.ts","../src/sandbox.ts","../src/typings.d.ts","../src/components/rapid-components.ts","../src/components/zero-components.ts","../src/components/document-upload/document-upload.styles.ts","../src/components/document-upload/document-upload.template.ts","../src/components/document-upload/document-upload.ts","../src/components/document-upload/document-upload.types.ts","../src/components/template-asset-link/template-asset-link.styles.ts","../src/components/template-asset-link/template-asset-link.template.ts","../src/components/template-asset-link/template-asset-link.ts","../src/components/utils/action-cell-renderer.ts","../src/components/utils/column-config.ts","../src/components/utils/icons.ts","../src/config/config.ts","../src/config/configure.ts","../src/config/index.ts","../src/config/templates.ts","../src/main/index.ts","../src/main/main.styles.ts","../src/main/main.template.ts","../src/main/main.ts","../src/services/document.service.ts","../src/tags/index.ts","../src/tags/tags.ts","../src/types/index.ts","../src/types/main.types.ts","../src/types/utils.types.ts","../src/utils/formatting.ts","../src/utils/index.ts","../src/utils/logger.ts","../src/utils/misc.ts","../src/utils/notifications.ts","../src/utils/styles.ts"],"version":"5.9.2"}
1
+ {"root":["../src/globals.d.ts","../src/index.federated.ts","../src/index.ts","../src/sandbox.ts","../src/typings.d.ts","../src/components/rapid-components.ts","../src/components/zero-components.ts","../src/components/document-upload/document-upload.styles.ts","../src/components/document-upload/document-upload.template.ts","../src/components/document-upload/document-upload.ts","../src/components/document-upload/document-upload.types.ts","../src/components/template-asset-link/template-asset-link.styles.ts","../src/components/template-asset-link/template-asset-link.template.ts","../src/components/template-asset-link/template-asset-link.ts","../src/components/utils/action-cell-renderer.ts","../src/components/utils/column-config.ts","../src/components/utils/icons.ts","../src/config/config.ts","../src/config/configure.ts","../src/config/index.ts","../src/config/templates.ts","../src/main/index.ts","../src/main/main.styles.ts","../src/main/main.template.ts","../src/main/main.ts","../src/services/document.service.test.ts","../src/services/document.service.ts","../src/tags/index.ts","../src/tags/tags.ts","../src/types/index.ts","../src/types/main.types.ts","../src/types/utils.types.ts","../src/utils/formatting.ts","../src/utils/index.ts","../src/utils/logger.ts","../src/utils/misc.ts","../src/utils/notifications.ts","../src/utils/styles.ts"],"version":"5.9.2"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/pbc-documents-ui",
3
3
  "description": "Genesis Document Management UI",
4
- "version": "14.445.2-chore-fix-ag-grid-types-react.3",
4
+ "version": "14.446.0-FUI-2537.8",
5
5
  "private": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -78,37 +78,37 @@
78
78
  "devDependencies": {
79
79
  "@genesiscommunitysuccess/cep-fast-plugin": "4.1.1",
80
80
  "@genesiscommunitysuccess/custom-elements-lsp": "4.1.1",
81
- "@genesislcap/design-system-configurator": "14.445.2-chore-fix-ag-grid-types-react.3",
82
- "@genesislcap/eslint-config": "14.445.2-chore-fix-ag-grid-types-react.3",
83
- "@genesislcap/foundation-testing": "14.445.2-chore-fix-ag-grid-types-react.3",
84
- "@genesislcap/genx": "14.445.2-chore-fix-ag-grid-types-react.3",
85
- "@genesislcap/prettier-config": "14.445.2-chore-fix-ag-grid-types-react.3",
86
- "@genesislcap/stylelint-config": "14.445.2-chore-fix-ag-grid-types-react.3",
81
+ "@genesislcap/design-system-configurator": "14.446.0-FUI-2537.8",
82
+ "@genesislcap/eslint-config": "14.446.0-FUI-2537.8",
83
+ "@genesislcap/foundation-testing": "14.446.0-FUI-2537.8",
84
+ "@genesislcap/genx": "14.446.0-FUI-2537.8",
85
+ "@genesislcap/prettier-config": "14.446.0-FUI-2537.8",
86
+ "@genesislcap/stylelint-config": "14.446.0-FUI-2537.8",
87
87
  "@types/node": "^22.10.2",
88
88
  "rimraf": "^3.0.2",
89
89
  "tslib": "^2.3.1",
90
90
  "typescript": "^4.9.5"
91
91
  },
92
92
  "dependencies": {
93
- "@genesislcap/foundation-comms": "14.445.2-chore-fix-ag-grid-types-react.3",
94
- "@genesislcap/foundation-entity-management": "14.445.2-chore-fix-ag-grid-types-react.3",
95
- "@genesislcap/foundation-events": "14.445.2-chore-fix-ag-grid-types-react.3",
96
- "@genesislcap/foundation-forms": "14.445.2-chore-fix-ag-grid-types-react.3",
97
- "@genesislcap/foundation-header": "14.445.2-chore-fix-ag-grid-types-react.3",
98
- "@genesislcap/foundation-layout": "14.445.2-chore-fix-ag-grid-types-react.3",
99
- "@genesislcap/foundation-logger": "14.445.2-chore-fix-ag-grid-types-react.3",
100
- "@genesislcap/foundation-login": "14.445.2-chore-fix-ag-grid-types-react.3",
101
- "@genesislcap/foundation-notifications": "14.445.2-chore-fix-ag-grid-types-react.3",
102
- "@genesislcap/foundation-store": "14.445.2-chore-fix-ag-grid-types-react.3",
103
- "@genesislcap/foundation-ui": "14.445.2-chore-fix-ag-grid-types-react.3",
104
- "@genesislcap/foundation-user": "14.445.2-chore-fix-ag-grid-types-react.3",
105
- "@genesislcap/foundation-utils": "14.445.2-chore-fix-ag-grid-types-react.3",
106
- "@genesislcap/foundation-zero": "14.445.2-chore-fix-ag-grid-types-react.3",
107
- "@genesislcap/foundation-zero-grid-tabulator": "14.445.2-chore-fix-ag-grid-types-react.3",
108
- "@genesislcap/grid-tabulator": "14.445.2-chore-fix-ag-grid-types-react.3",
109
- "@genesislcap/rapid-design-system": "14.445.2-chore-fix-ag-grid-types-react.3",
110
- "@genesislcap/rapid-grid-tabulator": "14.445.2-chore-fix-ag-grid-types-react.3",
111
- "@genesislcap/web-core": "14.445.2-chore-fix-ag-grid-types-react.3",
93
+ "@genesislcap/foundation-comms": "14.446.0-FUI-2537.8",
94
+ "@genesislcap/foundation-entity-management": "14.446.0-FUI-2537.8",
95
+ "@genesislcap/foundation-events": "14.446.0-FUI-2537.8",
96
+ "@genesislcap/foundation-forms": "14.446.0-FUI-2537.8",
97
+ "@genesislcap/foundation-header": "14.446.0-FUI-2537.8",
98
+ "@genesislcap/foundation-layout": "14.446.0-FUI-2537.8",
99
+ "@genesislcap/foundation-logger": "14.446.0-FUI-2537.8",
100
+ "@genesislcap/foundation-login": "14.446.0-FUI-2537.8",
101
+ "@genesislcap/foundation-notifications": "14.446.0-FUI-2537.8",
102
+ "@genesislcap/foundation-store": "14.446.0-FUI-2537.8",
103
+ "@genesislcap/foundation-ui": "14.446.0-FUI-2537.8",
104
+ "@genesislcap/foundation-user": "14.446.0-FUI-2537.8",
105
+ "@genesislcap/foundation-utils": "14.446.0-FUI-2537.8",
106
+ "@genesislcap/foundation-zero": "14.446.0-FUI-2537.8",
107
+ "@genesislcap/foundation-zero-grid-tabulator": "14.446.0-FUI-2537.8",
108
+ "@genesislcap/grid-tabulator": "14.446.0-FUI-2537.8",
109
+ "@genesislcap/rapid-design-system": "14.446.0-FUI-2537.8",
110
+ "@genesislcap/rapid-grid-tabulator": "14.446.0-FUI-2537.8",
111
+ "@genesislcap/web-core": "14.446.0-FUI-2537.8",
112
112
  "rxjs": "^7.5.4",
113
113
  "tslib": "^2.3.1"
114
114
  },
@@ -116,5 +116,5 @@
116
116
  "access": "public"
117
117
  },
118
118
  "customElements": "dist/custom-elements.json",
119
- "gitHead": "9bae6a71c4c119eb16264d4a01d8615e5cb0a44e"
119
+ "gitHead": "335b618d3f55fcbf6eeeaba35dc77e40083e20e5"
120
120
  }
@@ -0,0 +1,87 @@
1
+ import { Auth, Connect } from '@genesislcap/foundation-comms';
2
+ import { assert, createLogicSuite } from '@genesislcap/foundation-testing';
3
+ import { DocumentServiceImpl } from './document.service';
4
+
5
+ /**
6
+ * These tests run in Node (genx test default), so there is no DOM,
7
+ * `window`, or `sessionStorage`. We stub the globals the service touches
8
+ * and capture the outgoing `fetch` request synchronously, before the
9
+ * promise chain (which would reach for DOM APIs) has a chance to run.
10
+ */
11
+
12
+ type CapturedRequest = { url: string; init: RequestInit };
13
+
14
+ function withStubbedGlobals(
15
+ run: (capture: () => CapturedRequest) => void,
16
+ sessionStore: Record<string, string> = {},
17
+ ) {
18
+ const original = {
19
+ fetch: globalThis.fetch,
20
+ sessionStorage: (globalThis as any).sessionStorage,
21
+ };
22
+
23
+ let captured: CapturedRequest;
24
+ // A fetch that records the request but never resolves, so the service's
25
+ // `.then` chain (blob/createObjectURL/DOM) is never reached during the test.
26
+ globalThis.fetch = ((url: string, init: RequestInit) => {
27
+ captured = { url, init };
28
+ return new Promise<Response>(() => {});
29
+ }) as typeof fetch;
30
+
31
+ // Simulate a prefixed app: the real token lives under a prefixed key,
32
+ // so a raw `getItem('authToken')` returns null.
33
+ (globalThis as any).sessionStorage = {
34
+ getItem: (key: string) => (key in sessionStore ? sessionStore[key] : null),
35
+ };
36
+
37
+ try {
38
+ run(() => captured);
39
+ } finally {
40
+ globalThis.fetch = original.fetch;
41
+ (globalThis as any).sessionStorage = original.sessionStorage;
42
+ }
43
+ }
44
+
45
+ function makeService(authToken: string | null) {
46
+ const auth = {
47
+ loggedUserResult: authToken === null ? null : { authToken },
48
+ } as unknown as Auth;
49
+ const connect = {} as unknown as Connect;
50
+ return new DocumentServiceImpl(connect, auth);
51
+ }
52
+
53
+ const Suite = createLogicSuite('DocumentServiceImpl.downloadDocument');
54
+
55
+ Suite('sends the auth token from Auth.loggedUserResult, not raw sessionStorage', () => {
56
+ withStubbedGlobals(
57
+ (capture) => {
58
+ const service = makeService('valid-token-123');
59
+ service.downloadDocument('FILE_ID');
60
+
61
+ const { url, init } = capture();
62
+ assert.is(url, 'gwf/file-server/download?fileStorageId=FILE_ID');
63
+ assert.is(
64
+ (init.headers as Headers).get('SESSION_AUTH_TOKEN'),
65
+ 'valid-token-123',
66
+ 'should use the token from Auth, regardless of the sessionStorage key prefix',
67
+ );
68
+ },
69
+ // Prefixed app: plain `authToken` is absent; only the prefixed key exists.
70
+ { '@custxClientApp/authToken': 'valid-token-123' },
71
+ );
72
+ });
73
+
74
+ Suite('omits the auth header when there is no logged-in user', () => {
75
+ withStubbedGlobals((capture) => {
76
+ const service = makeService(null);
77
+ service.downloadDocument('FILE_ID');
78
+
79
+ const { init } = capture();
80
+ assert.not.ok(
81
+ (init.headers as Headers).get('SESSION_AUTH_TOKEN'),
82
+ 'no user means no SESSION_AUTH_TOKEN header (never the string "null")',
83
+ );
84
+ });
85
+ });
86
+
87
+ Suite.run();
@@ -20,7 +20,7 @@ export interface IDocumentService {
20
20
  deleteDocument(documentId: string);
21
21
  }
22
22
 
23
- class DocumentServiceImpl implements IDocumentService {
23
+ export class DocumentServiceImpl implements IDocumentService {
24
24
  constructor(
25
25
  @Connect private connect: Connect,
26
26
  @Auth private auth: Auth,
@@ -108,16 +108,25 @@ class DocumentServiceImpl implements IDocumentService {
108
108
 
109
109
  downloadDocument(documentId: string) {
110
110
  const headers = new Headers();
111
- headers.append('SESSION_AUTH_TOKEN', sessionStorage.getItem('authToken'));
111
+ if (this.auth.loggedUserResult) {
112
+ headers.append('SESSION_AUTH_TOKEN', this.auth.loggedUserResult.authToken);
113
+ }
112
114
 
113
- let filename = '';
115
+ let filename = documentId;
114
116
  fetch(`gwf/file-server/download?fileStorageId=${documentId}`, {
115
117
  method: 'GET',
116
118
  headers: headers,
117
119
  })
118
120
  .then((response) => {
121
+ if (!response.ok) {
122
+ throw new Error(`Download failed: ${response.status} ${response.statusText}`);
123
+ }
119
124
  const contentDispositionHeader = response.headers.get('Content-disposition');
120
- filename = contentDispositionHeader.split(';')[1].split('filename')[1].split('=')[1].trim();
125
+ const match = contentDispositionHeader?.match(/filename\s*=\s*(?:"([^"]+)"|([^;\s]+))/i);
126
+ const parsedFilename = match?.[1] || match?.[2];
127
+ if (parsedFilename) {
128
+ filename = parsedFilename.trim();
129
+ }
121
130
  return response.blob();
122
131
  })
123
132
  .then((blob) => URL.createObjectURL(blob))