@ogcio/sag-client 0.7.4 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -26,13 +26,13 @@ The package is published to npm as `@ogcio/sag-client` via [release-please](http
26
26
  - `feat: ...` — bumps a minor version
27
27
  - `fix: ...` — bumps a patch version
28
28
  - `feat!: ...` or `BREAKING CHANGE:` — bumps a major version (once past v1)
29
- 2. When changes are merged to `main`, the pipeline runs release-please, which opens (or updates) a release PR that bumps the version in `package.json`, updates `CHANGELOG.md`, and updates `.release-please-manifest.json`
29
+ 2. When changes are merged to `main`, the pipeline runs release-please, which opens (or updates) a release PR that bumps the version in `package.json`, updates `CHANGELOG.md`, and updates `release-please/sag-client.manifest.json`
30
30
  3. When the release PR is merged, release-please creates a GitHub release and tag, and the pipeline publishes the package to npm
31
31
 
32
- **Configuration files (repo root):**
33
- - `release-please-config.json` — release-please package configuration
34
- - `.release-please-manifest.json` — current version tracking
35
- - `.azure/pipeline-sag-client.yaml` — Azure DevOps pipeline (CI + release)
32
+ **Configuration files:**
33
+ - `release-please/sag-client.config.json` — release-please package configuration
34
+ - `release-please/sag-client.manifest.json` — current version tracking
35
+ - `.azure/pipeline-lib.yaml` — Azure DevOps pipeline (CI + release)
36
36
 
37
37
  ## Entry Points
38
38
 
@@ -13,7 +13,7 @@ import type { SagClientConfig } from "../types";
13
13
  */
14
14
  export declare function SagClientProvider({ gatewayUrl, appName, onSessionExpired, children, }: SagClientConfig & {
15
15
  children: ReactNode;
16
- }): import("react/jsx-runtime").JSX.Element;
16
+ }): import("react").JSX.Element;
17
17
  /**
18
18
  * Access the `SagClient` instance from context.
19
19
  * Must be used within a `SagClientProvider`.
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/react/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAI/C;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,QAAQ,GACT,EAAE,eAAe,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAW3C;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAMxC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/react/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAI/C;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,QAAQ,GACT,EAAE,eAAe,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAW3C;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAMxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-gateway-download.d.ts","sourceRoot":"","sources":["../../src/react/use-gateway-download.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,SAAS,EAEd,aAAa,EACd,MAAM,UAAU,CAAA;AAGjB,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gGAAgG;IAChG,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,CAAC,EAAE,yBAAyB,GAClC,wBAAwB,CAuG1B"}
1
+ {"version":3,"file":"use-gateway-download.d.ts","sourceRoot":"","sources":["../../src/react/use-gateway-download.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,SAAS,EAEd,aAAa,EACd,MAAM,UAAU,CAAA;AAkBjB,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gGAAgG;IAChG,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;CAC5B;AAgBD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,CAAC,EAAE,yBAAyB,GAClC,wBAAwB,CAsI1B"}
@@ -3,6 +3,31 @@ import { useCallback, useState } from "react";
3
3
  import { signIn } from "../auth";
4
4
  import { ACTOR_TYPE_HEADER, ORGANIZATION_ID_HEADER, SagFetchError, } from "../types";
5
5
  import { useSagClient } from "./provider";
6
+ /**
7
+ * How long to keep a preview's object URL alive before revoking it, when the
8
+ * file is opened in a new tab. Long enough for the tab's navigation to
9
+ * commit (revoking too early can blank the tab), short enough to bound the
10
+ * leak. A tab-lifecycle event (e.g. `unload`) would be more precise, but
11
+ * attaching it right after `location.href = objectUrl` binds to the
12
+ * *current* (about:blank) document, which unloads as soon as the browser
13
+ * proceeds to the blob: page — revoking before the target document has
14
+ * loaded it, not when the user is actually done with it.
15
+ */
16
+ const NEW_TAB_OBJECT_URL_TTL_MS = 60000;
17
+ /** Error code for any "no working tab to render the preview into" case. */
18
+ const PREVIEW_POPUP_BLOCKED = "PREVIEW_POPUP_BLOCKED";
19
+ function triggerAnchorDownload(objectUrl, filename) {
20
+ const anchor = document.createElement("a");
21
+ anchor.href = objectUrl;
22
+ anchor.download = filename;
23
+ anchor.style.display = "none";
24
+ document.body.appendChild(anchor);
25
+ anchor.click();
26
+ setTimeout(() => {
27
+ URL.revokeObjectURL(objectUrl);
28
+ anchor.remove();
29
+ }, 100);
30
+ }
6
31
  /**
7
32
  * Hook that returns an authenticated `download(path, filename)` function
8
33
  * for fetching binary files through the Secure API Gateway.
@@ -24,6 +49,15 @@ export function useGatewayDownload(options) {
24
49
  // avoid popup-blockers on mobile browsers.
25
50
  const newTab = openInNewTab ? window.open("about:blank", "_blank") : null;
26
51
  try {
52
+ // Fail fast: a blocked popup (or an embedded WebView that refuses
53
+ // `window.open`) leaves us with no tab to render the preview in.
54
+ // Surface it as an error instead of silently doing nothing or
55
+ // silently downgrading to a save-file download, so the caller can
56
+ // log it and give the user feedback (and skip the fetch entirely —
57
+ // there's nowhere to show the result).
58
+ if (openInNewTab && !newTab) {
59
+ throw new SagFetchError("Could not open a new tab for the preview. Please allow pop-ups and try again.", 0, PREVIEW_POPUP_BLOCKED);
60
+ }
27
61
  const url = `${client.gatewayUrl}${path}`;
28
62
  const headers = {
29
63
  "X-Application": client.appName,
@@ -64,19 +98,30 @@ export function useGatewayDownload(options) {
64
98
  const blob = await response.blob();
65
99
  const objectUrl = URL.createObjectURL(blob);
66
100
  if (newTab) {
67
- newTab.location.href = objectUrl;
68
- }
69
- else {
70
- const anchor = document.createElement("a");
71
- anchor.href = objectUrl;
72
- anchor.download = filename;
73
- anchor.style.display = "none";
74
- document.body.appendChild(anchor);
75
- anchor.click();
101
+ // The tab can still have been closed (or refuse navigation)
102
+ // between `window.open` and here — treat that the same as a
103
+ // blocked popup rather than silently downgrading to a download.
104
+ if (newTab.closed) {
105
+ throw new SagFetchError("The preview tab was closed before the file could load. Please try again.", 0, PREVIEW_POPUP_BLOCKED);
106
+ }
107
+ try {
108
+ newTab.location.href = objectUrl;
109
+ }
110
+ catch (_c) {
111
+ throw new SagFetchError("Could not open the preview tab. Please try again.", 0, PREVIEW_POPUP_BLOCKED);
112
+ }
113
+ // Release the object URL once the new tab has had time to start
114
+ // loading it. Without this the preview path leaked a blob for
115
+ // the lifetime of the opener document (the anchor path below
116
+ // already revoked). The delay is deliberately generous: revoking
117
+ // too eagerly can abort the in-flight navigation and leave the
118
+ // tab blank on some browsers.
76
119
  setTimeout(() => {
77
120
  URL.revokeObjectURL(objectUrl);
78
- anchor.remove();
79
- }, 100);
121
+ }, NEW_TAB_OBJECT_URL_TTL_MS);
122
+ }
123
+ else {
124
+ triggerAnchorDownload(objectUrl, filename);
80
125
  }
81
126
  }
82
127
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"use-gateway-download.js","sourceRoot":"","sources":["../../src/react/use-gateway-download.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EACL,iBAAiB,EAEjB,sBAAsB,EACtB,aAAa,GACd,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAgBzC;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAmC;IAEnC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAC7B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAA;IAE9D,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EAAE,IAAY,EAAE,QAAgB,EAAE,EAAE;;QACvC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACtB,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEd,MAAM,YAAY,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCAAI,KAAK,CAAA;QAEnD,8DAA8D;QAC9D,2CAA2C;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAEzE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,EAAE,CAAA;YACzC,MAAM,OAAO,GAA2B;gBACtC,eAAe,EAAE,MAAM,CAAC,OAAO;aAChC,CAAA;YACD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,SAAS,CAAA;YAChD,CAAC;YACD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAE,CAAC;gBAC5B,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,cAAc,CAAA;YAC1D,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,WAAW,EAAE,SAAS;gBACtB,OAAO;aACR,CAAC,CAAA;YAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,CAAA;gBACf,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;gBACzC,MAAM,IAAI,aAAa,CACrB,+CAA+C,EAC/C,GAAG,CACJ,CAAA;YACH,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,CAAA;gBACf,IAAI,OAAO,GAAG,uBAAuB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAA;gBAC7E,IAAI,IAAwB,CAAA;gBAC5B,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIlC,CAAA;oBACD,IAAI,IAAI,CAAC,OAAO;wBAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;yBACnC,IAAI,IAAI,CAAC,KAAK;wBAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAA;oBACzC,IAAI,IAAI,CAAC,IAAI;wBAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;gBACjC,CAAC;gBAAC,WAAM,CAAC;oBACP,gBAAgB;gBAClB,CAAC;gBACD,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACzD,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAClC,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YAE3C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;gBAC1C,MAAM,CAAC,IAAI,GAAG,SAAS,CAAA;gBACvB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBAC1B,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;gBAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBACjC,MAAM,CAAC,KAAK,EAAE,CAAA;gBAEd,UAAU,CAAC,GAAG,EAAE;oBACd,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;oBAC9B,MAAM,CAAC,MAAM,EAAE,CAAA;gBACjB,CAAC,EAAE,GAAG,CAAC,CAAA;YACT,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,CAAA;YACf,MAAM,QAAQ,GACZ,GAAG,YAAY,aAAa;gBAC1B,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,IAAI,aAAa,CACf,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,EACtD,CAAC,CACF,CAAA;YACP,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAClB,MAAM,QAAQ,CAAA;QAChB,CAAC;gBAAS,CAAC;YACT,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,EACD;QACE,MAAM;QACN,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;QAClB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;QACvB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;KACtB,CACF,CAAA;IAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAA;AAC3C,CAAC"}
1
+ {"version":3,"file":"use-gateway-download.js","sourceRoot":"","sources":["../../src/react/use-gateway-download.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ogcio/sag-client",
3
- "version": "0.7.4",
3
+ "version": "0.7.6",
4
4
  "description": "Framework-agnostic client for the Secure API Gateway — authentication, health checks, and authenticated fetching",
5
5
  "type": "module",
6
6
  "private": false,
@@ -53,12 +53,12 @@
53
53
  },
54
54
  "devDependencies": {
55
55
  "@testing-library/react": "16.3.2",
56
- "@types/react": "19.2.14",
56
+ "@types/react": "19.2.17",
57
57
  "@types/react-dom": "19.2.3",
58
58
  "jsdom": "29.1.1",
59
- "react": "19.2.4",
60
- "react-dom": "19.2.4",
61
- "swr": "2.4.1",
59
+ "react": "^19.2.4",
60
+ "react-dom": "19.2.7",
61
+ "swr": "^2.4.2",
62
62
  "typescript": "6.0.3"
63
63
  },
64
64
  "engines": {