@whooshbang/sdk 1.0.0-rc.28 → 1.0.0-rc.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/README.md CHANGED
@@ -175,6 +175,13 @@ evaluates DOM globals. These subpaths are published in
175
175
  canonical red fallback while leaving every configured customer name, logo, and
176
176
  accent authoritative.
177
177
 
178
+ `@whooshbang/sdk@1.0.0-rc.29` carries contracts `1.0.0-rc.20`: a project
179
+ credential holding the opt-in `projects:read` / `projects:write` scopes can now
180
+ read and write its own project's recipient configuration, an origin may be
181
+ written in any spelling that means the same origin, and
182
+ `WhooshBangProblemError.pendingInvitation` names the rollout gate an uninvited
183
+ account is waiting on.
184
+
178
185
  ## Machine clients
179
186
 
180
187
  `createMachineCredential` generates the C0-03 secret with Web Crypto and
package/dist/errors.d.ts CHANGED
@@ -32,6 +32,17 @@ export declare class WhooshBangProblemError extends Error {
32
32
  readonly code: Problem["code"];
33
33
  readonly diagnosticId: string;
34
34
  readonly fieldErrors?: Problem["field_errors"];
35
+ /**
36
+ * The rollout gate this account has not been invited through, when that is
37
+ * why the request was refused.
38
+ *
39
+ * WhooshBang's invitation programme is deliberately absent from the public
40
+ * contract — it is temporary, and freezing our rollout-gate names into a V1
41
+ * schema would leave us carrying them. The refusal still says which gate it
42
+ * was, in a bounded field code, and this reads it so a caller can report
43
+ * "this account is not invited yet" instead of surfacing a bare 403.
44
+ */
45
+ readonly pendingInvitation?: string;
35
46
  readonly problem: Problem;
36
47
  readonly retryAt?: string;
37
48
  readonly retryable: boolean;
package/dist/errors.js CHANGED
@@ -29,6 +29,17 @@ export class WhooshBangProblemError extends Error {
29
29
  code;
30
30
  diagnosticId;
31
31
  fieldErrors;
32
+ /**
33
+ * The rollout gate this account has not been invited through, when that is
34
+ * why the request was refused.
35
+ *
36
+ * WhooshBang's invitation programme is deliberately absent from the public
37
+ * contract — it is temporary, and freezing our rollout-gate names into a V1
38
+ * schema would leave us carrying them. The refusal still says which gate it
39
+ * was, in a bounded field code, and this reads it so a caller can report
40
+ * "this account is not invited yet" instead of surfacing a bare 403.
41
+ */
42
+ pendingInvitation;
32
43
  problem;
33
44
  retryAt;
34
45
  retryable;
@@ -47,6 +58,12 @@ export class WhooshBangProblemError extends Error {
47
58
  if (problem.field_errors !== undefined) {
48
59
  this.fieldErrors = problem.field_errors;
49
60
  }
61
+ const gate = problem.code === "scope_forbidden"
62
+ ? problem.field_errors?.find((entry) => entry.code.endsWith("_gate"))
63
+ : undefined;
64
+ if (gate !== undefined) {
65
+ this.pendingInvitation = gate.code.slice(0, -"_gate".length);
66
+ }
50
67
  }
51
68
  }
52
69
  export class WhooshBangProtocolError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whooshbang/sdk",
3
- "version": "1.0.0-rc.28",
3
+ "version": "1.0.0-rc.29",
4
4
  "description": "JavaScript client and browser recipient settings UI for WhooshBang V1",
5
5
  "private": false,
6
6
  "license": "MIT",
@@ -64,7 +64,7 @@
64
64
  "type-check": "tsc --noEmit -p tsconfig.json"
65
65
  },
66
66
  "dependencies": {
67
- "@whooshbang/contracts": "1.0.0-rc.19"
67
+ "@whooshbang/contracts": "1.0.0-rc.20"
68
68
  },
69
69
  "engines": {
70
70
  "node": ">=22.13.0"