@bodhiapp/bodhi-js-core 0.0.28 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/errors.d.ts CHANGED
@@ -19,3 +19,10 @@ export declare const createApiError: (status: number, body: OpenAiApiError, head
19
19
  * @returns BodhiError instance
20
20
  */
21
21
  export declare const createOperationError: (code: string, message: string) => BodhiError;
22
+ /**
23
+ * Throw an appropriate BodhiError for access request denial/failure
24
+ *
25
+ * @param status - The access request status (denied, expired, or other)
26
+ * @throws BodhiError always
27
+ */
28
+ export declare function throwAccessRequestDenialError(status: string): never;
@@ -1,6 +1,7 @@
1
1
  export interface ReviewResult {
2
2
  approved: boolean;
3
3
  accessRequestScope?: string;
4
+ status?: string;
4
5
  }
5
6
  export interface PollOptions {
6
7
  intervalMs?: number;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@bodhiapp/bodhi-browser-types"),A=(e,r,t)=>{const n=r?.error?.message||`HTTP ${e}`;return new i.BodhiApiError(e,r,n,t)},y=(e,r)=>new i.BodhiError(e,r),o={NOT_REACHABLE:{message:"server is not reachable on given url",type:"network_error"},SERVER_NOT_READY:{message:"server is not in ready state, configure to complete setup",type:"extension_error"}},a={status:"not-reachable",version:null,error:o.NOT_REACHABLE},s={status:"pending-extension-ready",version:null,error:null},c={status:"not-connected",version:null,error:null};function u(e){return e.status==="ready"}function I(e,r="unknown",t=o.SERVER_NOT_READY,n,_){return{status:e,version:r,error:t,deployment:n??null,client_id:_??null}}function E(e){return e.type==="extension"}function d(e){return e.type==="direct"}function p(e){return typeof e.server=="object"&&e.server.status!=="not-connected"&&u(e.server)}function l(e){return e.url!==null}const O={type:"direct",url:null,server:c};function v(e,r="unknown"){return{type:"direct",server:{status:"ready",version:r,error:null},url:e}}function D(e){return{type:"direct",server:a,url:e}}function f(e,r){return{type:"direct",server:r,url:e}}const N={type:"extension",extension:"not-initialized",extensionId:null,server:s},R={type:"extension",extension:"not-found",extensionId:null,server:s};function C(e){return e.extension==="ready"&&e.server.status!=="pending-extension-ready"&&u(e.server)}function T(e){return e.extension==="ready"}function x(){return N}function b(){return R}function h(e){return E(e)?T(e):l(e)}function g(e){return e.server}function B(e){return E(e)?e.extensionId??void 0:void 0}function L(e){return d(e)?e.url??void 0:void 0}function k(e){return e.status==="authenticated"}function P(e){return e.status==="loading"}function w(e){return e.status==="error"}const V={status:"idle",user:null,accessToken:null,error:null},m=()=>{};function H(e,r){return{kind:"event",type:e,payload:r}}function S(e,r,t){return{kind:"response",type:r,requestId:e,payload:t}}function K(e,r){return{kind:"error",requestId:e,error:r}}function U(e,r){const t=r[e.type];if(!t)return null;const n=t(e.payload);return S(e.requestId,e.type,n)}Object.defineProperty(exports,"BodhiApiError",{enumerable:!0,get:()=>i.BodhiApiError});Object.defineProperty(exports,"BodhiError",{enumerable:!0,get:()=>i.BodhiError});Object.defineProperty(exports,"unwrapResponse",{enumerable:!0,get:()=>i.unwrapResponse});exports.BACKEND_SERVER_NOT_CONNECTED=c;exports.BACKEND_SERVER_NOT_REACHABLE=a;exports.DIRECT_STATE_NOT_INITIALIZED=O;exports.EXTENSION_STATE_NOT_FOUND=R;exports.EXTENSION_STATE_NOT_INITIALIZED=N;exports.INITIAL_AUTH_STATE=V;exports.NOOP_STATE_CALLBACK=m;exports.PENDING_EXTENSION_READY=s;exports.SERVER_ERROR_CODES=o;exports.backendServerNotReady=I;exports.buildError=K;exports.buildEvent=H;exports.buildResponse=S;exports.createApiError=A;exports.createDirectStateNotReachable=D;exports.createDirectStateNotReady=f;exports.createDirectStateReady=v;exports.createExtensionStateNotFound=b;exports.createExtensionStateNotInitialized=x;exports.createOperationError=y;exports.getBackendServerState=g;exports.getExtensionId=B;exports.getServerUrl=L;exports.handleRequest=U;exports.isAuthError=w;exports.isAuthLoading=P;exports.isAuthenticated=k;exports.isClientReady=h;exports.isDirectClientReady=l;exports.isDirectServerReady=p;exports.isDirectState=d;exports.isExtensionClientReady=T;exports.isExtensionServerReady=C;exports.isExtensionState=E;exports.isServerReady=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@bodhiapp/bodhi-browser-types"),y=(e,r,t)=>{const n=r?.error?.message||`HTTP ${e}`;return new i.BodhiApiError(e,r,n,t)},o=(e,r)=>new i.BodhiError(e,r);function p(e){throw e==="denied"?o("access_request_denied","Access request was denied"):e==="expired"?o("access_request_expired","Access request expired"):o("access_request_failed",`Access request failed: ${e}`)}const s={NOT_REACHABLE:{message:"server is not reachable on given url",type:"network_error"},SERVER_NOT_READY:{message:"server is not in ready state, configure to complete setup",type:"extension_error"}},E={status:"not-reachable",version:null,error:s.NOT_REACHABLE},u={status:"pending-extension-ready",version:null,error:null},d={status:"not-connected",version:null,error:null};function c(e){return e.status==="ready"}function I(e,r="unknown",t=s.SERVER_NOT_READY,n,A){return{status:e,version:r,error:t,deployment:n??null,client_id:A??null}}function a(e){return e.type==="extension"}function l(e){return e.type==="direct"}function O(e){return typeof e.server=="object"&&e.server.status!=="not-connected"&&c(e.server)}function _(e){return e.url!==null}const f={type:"direct",url:null,server:d};function v(e,r="unknown"){return{type:"direct",server:{status:"ready",version:r,error:null},url:e}}function D(e){return{type:"direct",server:E,url:e}}function x(e,r){return{type:"direct",server:r,url:e}}const R={type:"extension",extension:"not-initialized",extensionId:null,server:u},N={type:"extension",extension:"not-found",extensionId:null,server:u};function h(e){return e.extension==="ready"&&e.server.status!=="pending-extension-ready"&&c(e.server)}function T(e){return e.extension==="ready"}function C(){return R}function b(){return N}function g(e){return a(e)?T(e):_(e)}function B(e){return e.server}function L(e){return a(e)?e.extensionId??void 0:void 0}function w(e){return l(e)?e.url??void 0:void 0}function q(e){return e.status==="authenticated"}function k(e){return e.status==="loading"}function P(e){return e.status==="error"}const V={status:"idle",user:null,accessToken:null,error:null},m=()=>{};function H(e,r){return{kind:"event",type:e,payload:r}}function S(e,r,t){return{kind:"response",type:r,requestId:e,payload:t}}function K(e,r){return{kind:"error",requestId:e,error:r}}function U(e,r){const t=r[e.type];if(!t)return null;const n=t(e.payload);return S(e.requestId,e.type,n)}Object.defineProperty(exports,"BodhiApiError",{enumerable:!0,get:()=>i.BodhiApiError});Object.defineProperty(exports,"BodhiError",{enumerable:!0,get:()=>i.BodhiError});Object.defineProperty(exports,"unwrapResponse",{enumerable:!0,get:()=>i.unwrapResponse});exports.BACKEND_SERVER_NOT_CONNECTED=d;exports.BACKEND_SERVER_NOT_REACHABLE=E;exports.DIRECT_STATE_NOT_INITIALIZED=f;exports.EXTENSION_STATE_NOT_FOUND=N;exports.EXTENSION_STATE_NOT_INITIALIZED=R;exports.INITIAL_AUTH_STATE=V;exports.NOOP_STATE_CALLBACK=m;exports.PENDING_EXTENSION_READY=u;exports.SERVER_ERROR_CODES=s;exports.backendServerNotReady=I;exports.buildError=K;exports.buildEvent=H;exports.buildResponse=S;exports.createApiError=y;exports.createDirectStateNotReachable=D;exports.createDirectStateNotReady=x;exports.createDirectStateReady=v;exports.createExtensionStateNotFound=b;exports.createExtensionStateNotInitialized=C;exports.createOperationError=o;exports.getBackendServerState=B;exports.getExtensionId=L;exports.getServerUrl=w;exports.handleRequest=U;exports.isAuthError=P;exports.isAuthLoading=k;exports.isAuthenticated=q;exports.isClientReady=g;exports.isDirectClientReady=_;exports.isDirectServerReady=O;exports.isDirectState=l;exports.isExtensionClientReady=T;exports.isExtensionServerReady=h;exports.isExtensionState=a;exports.isServerReady=c;exports.throwAccessRequestDenialError=p;
@@ -4,7 +4,7 @@ import { FlowType, RequestedResources, UserScope } from '@bodhiapp/ts-client';
4
4
  */
5
5
  export { BodhiError, BodhiApiError, unwrapResponse } from '@bodhiapp/bodhi-browser-types';
6
6
  export type { BodhiErrorCode } from '@bodhiapp/bodhi-browser-types';
7
- export { createApiError, createOperationError } from '../errors';
7
+ export { createApiError, createOperationError, throwAccessRequestDenialError } from '../errors';
8
8
  export { BACKEND_SERVER_NOT_CONNECTED, BACKEND_SERVER_NOT_REACHABLE, backendServerNotReady, createDirectStateNotReachable, createDirectStateNotReady, createDirectStateReady, createExtensionStateNotFound, createExtensionStateNotInitialized, DIRECT_STATE_NOT_INITIALIZED, EXTENSION_STATE_NOT_FOUND, EXTENSION_STATE_NOT_INITIALIZED, getBackendServerState, getExtensionId, getServerUrl, isClientReady, isDirectClientReady, isDirectServerReady, isDirectState, isExtensionClientReady, isExtensionServerReady, isExtensionState, isServerReady, PENDING_EXTENSION_READY, SERVER_ERROR_CODES, } from './client-state';
9
9
  export type { BackendServerState, ClientState, ConnectionMode, DirectState, ExtensionState, InitParams, SerializedClientState, SerializedDirectState, SerializedExtensionState, ServerInfoResponse, ServerStatus, } from './client-state';
10
10
  export { INITIAL_AUTH_STATE, isAuthError, isAuthLoading, isAuthenticated } from './auth';
@@ -1,9 +1,13 @@
1
- import { BodhiApiError as d, BodhiError as a } from "@bodhiapp/bodhi-browser-types";
2
- import { BodhiApiError as F, BodhiError as Z, unwrapResponse as j } from "@bodhiapp/bodhi-browser-types";
3
- const v = (e, n, r) => {
4
- const t = n?.error?.message || `HTTP ${e}`;
5
- return new d(e, n, t, r);
6
- }, A = (e, n) => new a(e, n), o = {
1
+ import { BodhiApiError as a, BodhiError as l } from "@bodhiapp/bodhi-browser-types";
2
+ import { BodhiApiError as Z, BodhiError as $, unwrapResponse as j } from "@bodhiapp/bodhi-browser-types";
3
+ const v = (e, r, n) => {
4
+ const t = r?.error?.message || `HTTP ${e}`;
5
+ return new a(e, r, t, n);
6
+ }, o = (e, r) => new l(e, r);
7
+ function S(e) {
8
+ throw e === "denied" ? o("access_request_denied", "Access request was denied") : e === "expired" ? o("access_request_expired", "Access request expired") : o("access_request_failed", `Access request failed: ${e}`);
9
+ }
10
+ const i = {
7
11
  NOT_REACHABLE: {
8
12
  message: "server is not reachable on given url",
9
13
  type: "network_error"
@@ -12,15 +16,15 @@ const v = (e, n, r) => {
12
16
  message: "server is not in ready state, configure to complete setup",
13
17
  type: "extension_error"
14
18
  }
15
- }, l = {
19
+ }, E = {
16
20
  status: "not-reachable",
17
21
  version: null,
18
- error: o.NOT_REACHABLE
19
- }, i = {
22
+ error: i.NOT_REACHABLE
23
+ }, s = {
20
24
  status: "pending-extension-ready",
21
25
  version: null,
22
26
  error: null
23
- }, E = {
27
+ }, _ = {
24
28
  status: "not-connected",
25
29
  version: null,
26
30
  error: null
@@ -28,77 +32,77 @@ const v = (e, n, r) => {
28
32
  function u(e) {
29
33
  return e.status === "ready";
30
34
  }
31
- function S(e, n = "unknown", r = o.SERVER_NOT_READY, t, c) {
35
+ function x(e, r = "unknown", n = i.SERVER_NOT_READY, t, d) {
32
36
  return {
33
37
  status: e,
34
- version: n,
35
- error: r,
38
+ version: r,
39
+ error: n,
36
40
  deployment: t ?? null,
37
- client_id: c ?? null
41
+ client_id: d ?? null
38
42
  };
39
43
  }
40
- function s(e) {
44
+ function c(e) {
41
45
  return e.type === "extension";
42
46
  }
43
- function R(e) {
47
+ function f(e) {
44
48
  return e.type === "direct";
45
49
  }
46
50
  function I(e) {
47
51
  return typeof e.server == "object" && e.server.status !== "not-connected" && u(e.server);
48
52
  }
49
- function _(e) {
53
+ function p(e) {
50
54
  return e.url !== null;
51
55
  }
52
- const x = {
56
+ const D = {
53
57
  type: "direct",
54
58
  url: null,
55
- server: E
59
+ server: _
56
60
  };
57
- function O(e, n = "unknown") {
58
- return { type: "direct", server: { status: "ready", version: n, error: null }, url: e };
61
+ function O(e, r = "unknown") {
62
+ return { type: "direct", server: { status: "ready", version: r, error: null }, url: e };
59
63
  }
60
- function D(e) {
61
- return { type: "direct", server: l, url: e };
64
+ function h(e) {
65
+ return { type: "direct", server: E, url: e };
62
66
  }
63
- function C(e, n) {
64
- return { type: "direct", server: n, url: e };
67
+ function C(e, r) {
68
+ return { type: "direct", server: r, url: e };
65
69
  }
66
- const p = {
70
+ const R = {
67
71
  type: "extension",
68
72
  extension: "not-initialized",
69
73
  extensionId: null,
70
- server: i
71
- }, N = {
74
+ server: s
75
+ }, A = {
72
76
  type: "extension",
73
77
  extension: "not-found",
74
78
  extensionId: null,
75
- server: i
79
+ server: s
76
80
  };
77
- function h(e) {
81
+ function w(e) {
78
82
  return e.extension === "ready" && e.server.status !== "pending-extension-ready" && u(e.server);
79
83
  }
80
- function T(e) {
84
+ function N(e) {
81
85
  return e.extension === "ready";
82
86
  }
83
87
  function B() {
84
- return p;
88
+ return R;
85
89
  }
86
90
  function g() {
87
- return N;
91
+ return A;
88
92
  }
89
93
  function k(e) {
90
- return s(e) ? T(e) : _(e);
94
+ return c(e) ? N(e) : p(e);
91
95
  }
92
- function L(e) {
96
+ function q(e) {
93
97
  return e.server;
94
98
  }
99
+ function L(e) {
100
+ return c(e) ? e.extensionId ?? void 0 : void 0;
101
+ }
95
102
  function b(e) {
96
- return s(e) ? e.extensionId ?? void 0 : void 0;
103
+ return f(e) ? e.url ?? void 0 : void 0;
97
104
  }
98
105
  function m(e) {
99
- return R(e) ? e.url ?? void 0 : void 0;
100
- }
101
- function w(e) {
102
106
  return e.status === "authenticated";
103
107
  }
104
108
  function H(e) {
@@ -114,58 +118,59 @@ const K = {
114
118
  error: null
115
119
  }, P = () => {
116
120
  };
117
- function U(e, n) {
118
- return { kind: "event", type: e, payload: n };
121
+ function U(e, r) {
122
+ return { kind: "event", type: e, payload: r };
119
123
  }
120
- function f(e, n, r) {
121
- return { kind: "response", type: n, requestId: e, payload: r };
124
+ function T(e, r, n) {
125
+ return { kind: "response", type: r, requestId: e, payload: n };
122
126
  }
123
- function X(e, n) {
124
- return { kind: "error", requestId: e, error: n };
127
+ function X(e, r) {
128
+ return { kind: "error", requestId: e, error: r };
125
129
  }
126
- function Y(e, n) {
127
- const r = n[e.type];
128
- if (!r) return null;
129
- const t = r(e.payload);
130
- return f(e.requestId, e.type, t);
130
+ function Y(e, r) {
131
+ const n = r[e.type];
132
+ if (!n) return null;
133
+ const t = n(e.payload);
134
+ return T(e.requestId, e.type, t);
131
135
  }
132
136
  export {
133
- E as BACKEND_SERVER_NOT_CONNECTED,
134
- l as BACKEND_SERVER_NOT_REACHABLE,
135
- F as BodhiApiError,
136
- Z as BodhiError,
137
- x as DIRECT_STATE_NOT_INITIALIZED,
138
- N as EXTENSION_STATE_NOT_FOUND,
139
- p as EXTENSION_STATE_NOT_INITIALIZED,
137
+ _ as BACKEND_SERVER_NOT_CONNECTED,
138
+ E as BACKEND_SERVER_NOT_REACHABLE,
139
+ Z as BodhiApiError,
140
+ $ as BodhiError,
141
+ D as DIRECT_STATE_NOT_INITIALIZED,
142
+ A as EXTENSION_STATE_NOT_FOUND,
143
+ R as EXTENSION_STATE_NOT_INITIALIZED,
140
144
  K as INITIAL_AUTH_STATE,
141
145
  P as NOOP_STATE_CALLBACK,
142
- i as PENDING_EXTENSION_READY,
143
- o as SERVER_ERROR_CODES,
144
- S as backendServerNotReady,
146
+ s as PENDING_EXTENSION_READY,
147
+ i as SERVER_ERROR_CODES,
148
+ x as backendServerNotReady,
145
149
  X as buildError,
146
150
  U as buildEvent,
147
- f as buildResponse,
151
+ T as buildResponse,
148
152
  v as createApiError,
149
- D as createDirectStateNotReachable,
153
+ h as createDirectStateNotReachable,
150
154
  C as createDirectStateNotReady,
151
155
  O as createDirectStateReady,
152
156
  g as createExtensionStateNotFound,
153
157
  B as createExtensionStateNotInitialized,
154
- A as createOperationError,
155
- L as getBackendServerState,
156
- b as getExtensionId,
157
- m as getServerUrl,
158
+ o as createOperationError,
159
+ q as getBackendServerState,
160
+ L as getExtensionId,
161
+ b as getServerUrl,
158
162
  Y as handleRequest,
159
163
  V as isAuthError,
160
164
  H as isAuthLoading,
161
- w as isAuthenticated,
165
+ m as isAuthenticated,
162
166
  k as isClientReady,
163
- _ as isDirectClientReady,
167
+ p as isDirectClientReady,
164
168
  I as isDirectServerReady,
165
- R as isDirectState,
166
- T as isExtensionClientReady,
167
- h as isExtensionServerReady,
168
- s as isExtensionState,
169
+ f as isDirectState,
170
+ N as isExtensionClientReady,
171
+ w as isExtensionServerReady,
172
+ c as isExtensionState,
169
173
  u as isServerReady,
174
+ S as throwAccessRequestDenialError,
170
175
  j as unwrapResponse
171
176
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bodhiapp/bodhi-js-core",
3
- "version": "0.0.28",
3
+ "version": "0.0.29",
4
4
  "description": "Core types and interfaces for Bodhi Browser SDK",
5
5
  "type": "module",
6
6
  "main": "dist/bodhi-core.cjs.js",
@@ -56,8 +56,8 @@
56
56
  "typecheck": "tsc --noEmit"
57
57
  },
58
58
  "dependencies": {
59
- "@bodhiapp/bodhi-browser-types": "0.0.28",
60
- "@bodhiapp/setup-modal-types": "0.0.28",
59
+ "@bodhiapp/bodhi-browser-types": "0.0.29",
60
+ "@bodhiapp/setup-modal-types": "0.0.29",
61
61
  "@bodhiapp/ts-client": "0.1.23",
62
62
  "ua-parser-js": "^1.0.40"
63
63
  },