@roj-ai/shared 0.1.8 → 0.1.9

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.
@@ -51,6 +51,7 @@ type BatchResults<T extends readonly BatchEntry<unknown>[]> = {
51
51
  export declare class RpcClient {
52
52
  private baseUrl;
53
53
  private projectId;
54
+ private authToken;
54
55
  constructor(baseUrl?: string);
55
56
  /**
56
57
  * Get the base URL for non-RPC requests.
@@ -65,7 +66,19 @@ export declare class RpcClient {
65
66
  * Get the currently configured project ID.
66
67
  */
67
68
  getProjectId(): string | null;
69
+ /**
70
+ * Set the bearer token for authenticated RPC calls. Sent as
71
+ * `Authorization: Bearer <token>` so the platform doesn't have to fall
72
+ * back to cookie auth (which requires a separate `/exchange` round-trip
73
+ * and breaks under cross-origin third-party-cookie blocking).
74
+ */
75
+ setAuthToken(token: string | null): void;
76
+ /**
77
+ * Get the currently configured bearer token.
78
+ */
79
+ getAuthToken(): string | null;
68
80
  private getRpcUrl;
81
+ private buildHeaders;
69
82
  /**
70
83
  * Call an RPC method with type-safe input and output.
71
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/rpc/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAG9C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAE1B,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,YAAY;gBADnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY;CAK3B;AAiBD;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,EAAE;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,qBAAa,YAAY;IACxB,GAAG,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAGrF;AAED;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI;KAC5D,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC5D,CAAA;AAED;;GAEG;AACH,qBAAa,SAAS;IAGT,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,SAAS,CAAsB;gBAEnB,OAAO,GAAE,MAAW;IAExC;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI5C;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,OAAO,CAAC,SAAS;IAQjB;;OAEG;IACG,IAAI,CAAC,CAAC,SAAS,aAAa,EACjC,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAuB9C;;OAEG;IACG,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,EACzD,UAAU,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;CAuCjD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/rpc/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAG9C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAE1B,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,YAAY;gBADnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY;CAK3B;AAiBD;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,EAAE;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,qBAAa,YAAY;IACxB,GAAG,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAGrF;AAED;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI;KAC5D,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC5D,CAAA;AAED;;GAEG;AACH,qBAAa,SAAS;IAIT,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAsB;gBAEnB,OAAO,GAAE,MAAW;IAExC;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI5C;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIxC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACG,IAAI,CAAC,CAAC,SAAS,aAAa,EACjC,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAuB9C;;OAEG;IACG,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,EACzD,UAAU,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;CAuCjD"}
@@ -36,6 +36,7 @@ export class BatchBuilder {
36
36
  export class RpcClient {
37
37
  baseUrl;
38
38
  projectId = null;
39
+ authToken = null;
39
40
  constructor(baseUrl = '') {
40
41
  this.baseUrl = baseUrl;
41
42
  }
@@ -58,6 +59,21 @@ export class RpcClient {
58
59
  getProjectId() {
59
60
  return this.projectId;
60
61
  }
62
+ /**
63
+ * Set the bearer token for authenticated RPC calls. Sent as
64
+ * `Authorization: Bearer <token>` so the platform doesn't have to fall
65
+ * back to cookie auth (which requires a separate `/exchange` round-trip
66
+ * and breaks under cross-origin third-party-cookie blocking).
67
+ */
68
+ setAuthToken(token) {
69
+ this.authToken = token;
70
+ }
71
+ /**
72
+ * Get the currently configured bearer token.
73
+ */
74
+ getAuthToken() {
75
+ return this.authToken;
76
+ }
61
77
  getRpcUrl() {
62
78
  let url = `${this.baseUrl}/rpc`;
63
79
  if (this.projectId) {
@@ -65,13 +81,18 @@ export class RpcClient {
65
81
  }
66
82
  return url;
67
83
  }
84
+ buildHeaders(extra) {
85
+ if (!this.authToken)
86
+ return extra;
87
+ return { ...extra, Authorization: `Bearer ${this.authToken}` };
88
+ }
68
89
  /**
69
90
  * Call an RPC method with type-safe input and output.
70
91
  */
71
92
  async call(method, input) {
72
93
  const response = await fetch(this.getRpcUrl(), {
73
94
  method: 'POST',
74
- headers: { 'Content-Type': 'application/json' },
95
+ headers: this.buildHeaders({ 'Content-Type': 'application/json' }),
75
96
  body: JSON.stringify({ method, input }),
76
97
  credentials: 'include',
77
98
  });
@@ -93,7 +114,7 @@ export class RpcClient {
93
114
  const entries = buildCalls(new BatchBuilder());
94
115
  const response = await fetch(this.getRpcUrl(), {
95
116
  method: 'POST',
96
- headers: { 'Content-Type': 'application/json' },
117
+ headers: this.buildHeaders({ 'Content-Type': 'application/json' }),
97
118
  body: JSON.stringify({
98
119
  batch: entries.map(e => ({ method: e.method, input: e.input })),
99
120
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/rpc/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAW1C;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAE1B;IACA;IAFR,YACQ,MAAc,EACd,KAAmB;QAE1B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAHb,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAc;QAG1B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACvB,CAAC;CACD;AAyBD;;GAEG;AACH,MAAM,OAAO,YAAY;IACxB,GAAG,CAA0B,MAAS,EAAE,KAAkB;QACzD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACD;AASD;;GAEG;AACH,MAAM,OAAO,SAAS;IAGD;IAFZ,SAAS,GAAkB,IAAI,CAAA;IAEvC,YAAoB,UAAkB,EAAE;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAE5C;;OAEG;IACH,UAAU;QACT,OAAO,IAAI,CAAC,OAAO,CAAA;IACpB,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,SAAwB;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,YAAY;QACX,OAAO,IAAI,CAAC,SAAS,CAAA;IACtB,CAAC;IAEO,SAAS;QAChB,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,MAAM,CAAA;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,GAAG,IAAI,YAAY,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAA;QACxD,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACT,MAAS,EACT,KAAkB;QAElB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACvC,WAAW,EAAE,SAAS;SACtB,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAgB,CAAA;QAEnD,6DAA6D;QAC7D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACjF,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,CAAC,IAAI,CAAC,KAAqB,CAAC,CAAA;QACtC,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CACV,UAAkC;QAElC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,YAAY,EAAE,CAAC,CAAA;QAE9C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACpB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;aAC/D,CAAC;YACF,WAAW,EAAE,SAAS;SACtB,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAkB,CAAA;QAErD,kBAAkB;QAClB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACjF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;QAElC,wCAAwC;QACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC9B,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACxB,CAAC;QACF,CAAC;QAED,2EAA2E;QAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC9C,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtD,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC7B,CAAC;YACD,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAA;QACrF,CAAC;QAED,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAoB,CAAC,CAAA;IACxD,CAAC;CACD"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/rpc/client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roj-ai/shared",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "exports": {
@@ -38,7 +38,7 @@
38
38
  "zod": "^4.1.12"
39
39
  },
40
40
  "devDependencies": {
41
- "@roj-ai/sdk": "^0.1.8",
41
+ "@roj-ai/sdk": "^0.1.9",
42
42
  "typescript": "^5.7.2"
43
43
  },
44
44
  "types": "./dist/index.d.ts"
package/src/rpc/client.ts CHANGED
@@ -79,6 +79,7 @@ type BatchResults<T extends readonly BatchEntry<unknown>[]> = {
79
79
  */
80
80
  export class RpcClient {
81
81
  private projectId: string | null = null
82
+ private authToken: string | null = null
82
83
 
83
84
  constructor(private baseUrl: string = '') {}
84
85
 
@@ -104,6 +105,23 @@ export class RpcClient {
104
105
  return this.projectId
105
106
  }
106
107
 
108
+ /**
109
+ * Set the bearer token for authenticated RPC calls. Sent as
110
+ * `Authorization: Bearer <token>` so the platform doesn't have to fall
111
+ * back to cookie auth (which requires a separate `/exchange` round-trip
112
+ * and breaks under cross-origin third-party-cookie blocking).
113
+ */
114
+ setAuthToken(token: string | null): void {
115
+ this.authToken = token
116
+ }
117
+
118
+ /**
119
+ * Get the currently configured bearer token.
120
+ */
121
+ getAuthToken(): string | null {
122
+ return this.authToken
123
+ }
124
+
107
125
  private getRpcUrl(): string {
108
126
  let url = `${this.baseUrl}/rpc`
109
127
  if (this.projectId) {
@@ -112,6 +130,11 @@ export class RpcClient {
112
130
  return url
113
131
  }
114
132
 
133
+ private buildHeaders(extra: Record<string, string>): Record<string, string> {
134
+ if (!this.authToken) return extra
135
+ return { ...extra, Authorization: `Bearer ${this.authToken}` }
136
+ }
137
+
115
138
  /**
116
139
  * Call an RPC method with type-safe input and output.
117
140
  */
@@ -121,7 +144,7 @@ export class RpcClient {
121
144
  ): Promise<Result<RpcOutput<M>, RpcErrorInfo>> {
122
145
  const response = await fetch(this.getRpcUrl(), {
123
146
  method: 'POST',
124
- headers: { 'Content-Type': 'application/json' },
147
+ headers: this.buildHeaders({ 'Content-Type': 'application/json' }),
125
148
  body: JSON.stringify({ method, input }),
126
149
  credentials: 'include',
127
150
  })
@@ -151,7 +174,7 @@ export class RpcClient {
151
174
 
152
175
  const response = await fetch(this.getRpcUrl(), {
153
176
  method: 'POST',
154
- headers: { 'Content-Type': 'application/json' },
177
+ headers: this.buildHeaders({ 'Content-Type': 'application/json' }),
155
178
  body: JSON.stringify({
156
179
  batch: entries.map(e => ({ method: e.method, input: e.input })),
157
180
  }),