@hraness/suite-accounts 0.9.21 → 0.9.22

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
@@ -17,6 +17,17 @@ links, and entitlements. Installing this package does not let a product
17
17
  register itself or pick its own issuer, JWKS endpoint, resource, callback,
18
18
  client ID, wire version, or trust algorithm.
19
19
 
20
+ ## Choose an integration task
21
+
22
+ For a new sign-in integration, [bind a registered client](#bind-a-registered-client) before choosing runtime imports from the [interface map](#interface-map). You need an Accounts registration; installing the package does not create one.
23
+
24
+ - [Trust path](#follow-the-trust-path): see what stays in the browser and what your server verifies.
25
+ - [Identity protocol](#use-the-identity-protocol): parse data without mistaking parsing for signature verification.
26
+ - [Public profiles](#public-profile-v2-contracts): validate revision-bound updates and use the optional React editor.
27
+ - [Fresh authentication](#fresh-authentication-for-server-owned-actions): request recent authentication separately from ordinary sign-in.
28
+ - [Frozen v1 compatibility](#frozen-v1-protocol-compatibility): distinguish historical parsing from current registrations.
29
+ - [Questions before integration](#questions-before-integration): check registration, authorization, and billing responsibilities.
30
+
20
31
  ## Install
21
32
 
22
33
  Pin the immutable release:
@@ -24,7 +35,7 @@ Pin the immutable release:
24
35
  ```json
25
36
  {
26
37
  "dependencies": {
27
- "@hraness/suite-accounts": "github:hraness/suite-accounts#v0.9.21"
38
+ "@hraness/suite-accounts": "github:hraness/suite-accounts#v0.9.22"
28
39
  }
29
40
  }
30
41
  ```
@@ -395,6 +406,9 @@ New registration remains an Accounts service change followed by a package
395
406
  release and an exact factory binding. Retired client identifiers and routes are
396
407
  rejected by current APIs.
397
408
 
409
+ The former aicharts browser client and its device-code grant are retired.
410
+ The site remains a public benchmark reference.
411
+
398
412
  The published v1 browser refresh-lock and session-notification channel strings
399
413
  retain their original values. Existing tabs therefore coordinate across a
400
414
  rolling package migration without a browser namespace cutover.
@@ -408,6 +422,10 @@ values.
408
422
  Each release is an immutable Git tag. [`CHANGELOG.md`](CHANGELOG.md) lists the
409
423
  changes and migration notes for each version.
410
424
 
425
+ When a pull request that bumps the `package.json` version merges and CI passes
426
+ on `main`, the matching `v<version>` tag is created automatically. Pushing the
427
+ tag by hand still works.
428
+
411
429
  ## Service boundary
412
430
 
413
431
  This repository does not contain billing prices or provider lookup keys,
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -382,6 +379,9 @@ function getPublicConsumer(consumer) {
382
379
  return isSuiteAccountsCurrentConsumerId(consumer) ? getSuiteAccountsCurrentConsumer(consumer) : getSuiteAccountsConsumer(consumer);
383
380
  }
384
381
  function parseSuiteAccountsPublicConfig(consumer, environment) {
382
+ if (!isSuiteAccountsCurrentConsumerId(consumer) && !isSuiteAccountsRegisteredConsumerId(consumer)) {
383
+ throw new Error("The Suite Accounts consumer is not registered.");
384
+ }
385
385
  const missing = SUITE_ACCOUNTS_PUBLIC_ENVIRONMENT_KEYS.filter((name) => {
386
386
  const value = environment[name];
387
387
  return typeof value !== "string" || value.trim() === "";
@@ -397,9 +397,6 @@ function parseSuiteAccountsPublicConfig(consumer, environment) {
397
397
  const convex = parseOrigin(deployment.url, "NEXT_PUBLIC_ACCOUNTS_CONVEX_URL");
398
398
  const loopback = [site, convex, convexSite].map((url) => LOOPBACK_HOSTS.has(url.hostname));
399
399
  if (loopback.every(Boolean)) {
400
- if (consumer === "aicharts") {
401
- throw new Error("AI Charts authentication requires its registered production origin.");
402
- }
403
400
  if (deployment.transport !== "local" || site.hostname !== convex.hostname || site.hostname !== convexSite.hostname) {
404
401
  throw new Error("Local consumer and Accounts endpoints must use the same loopback host.");
405
402
  }
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
package/dist/index.js CHANGED
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -987,6 +984,9 @@ function getPublicConsumer(consumer) {
987
984
  return isSuiteAccountsCurrentConsumerId(consumer) ? getSuiteAccountsCurrentConsumer(consumer) : getSuiteAccountsConsumer(consumer);
988
985
  }
989
986
  function parseSuiteAccountsPublicConfig(consumer, environment) {
987
+ if (!isSuiteAccountsCurrentConsumerId(consumer) && !isSuiteAccountsRegisteredConsumerId(consumer)) {
988
+ throw new Error("The Suite Accounts consumer is not registered.");
989
+ }
990
990
  const missing = SUITE_ACCOUNTS_PUBLIC_ENVIRONMENT_KEYS.filter((name) => {
991
991
  const value = environment[name];
992
992
  return typeof value !== "string" || value.trim() === "";
@@ -1002,9 +1002,6 @@ function parseSuiteAccountsPublicConfig(consumer, environment) {
1002
1002
  const convex = parseOrigin(deployment.url, "NEXT_PUBLIC_ACCOUNTS_CONVEX_URL");
1003
1003
  const loopback = [site, convex, convexSite].map((url) => LOOPBACK_HOSTS.has(url.hostname));
1004
1004
  if (loopback.every(Boolean)) {
1005
- if (consumer === "aicharts") {
1006
- throw new Error("AI Charts authentication requires its registered production origin.");
1007
- }
1008
1005
  if (deployment.transport !== "local" || site.hostname !== convex.hostname || site.hostname !== convexSite.hostname) {
1009
1006
  throw new Error("Local consumer and Accounts endpoints must use the same loopback host.");
1010
1007
  }
package/dist/oidc-rp.js CHANGED
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -153,7 +153,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
153
153
  "oh-computer",
154
154
  "sponge",
155
155
  "peopleblade",
156
- "aicharts",
157
156
  "hraness",
158
157
  "soulscrape",
159
158
  "platonik",
@@ -179,7 +178,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
179
178
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
180
179
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
181
180
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
182
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
183
181
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
184
182
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
185
183
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -214,7 +212,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
214
212
  "oh-computer",
215
213
  "sponge",
216
214
  "peopleblade",
217
- "aicharts",
218
215
  "hraness",
219
216
  "soulscrape",
220
217
  "platonik",
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -382,6 +379,9 @@ function getPublicConsumer(consumer) {
382
379
  return isSuiteAccountsCurrentConsumerId(consumer) ? getSuiteAccountsCurrentConsumer(consumer) : getSuiteAccountsConsumer(consumer);
383
380
  }
384
381
  function parseSuiteAccountsPublicConfig(consumer, environment) {
382
+ if (!isSuiteAccountsCurrentConsumerId(consumer) && !isSuiteAccountsRegisteredConsumerId(consumer)) {
383
+ throw new Error("The Suite Accounts consumer is not registered.");
384
+ }
385
385
  const missing = SUITE_ACCOUNTS_PUBLIC_ENVIRONMENT_KEYS.filter((name) => {
386
386
  const value = environment[name];
387
387
  return typeof value !== "string" || value.trim() === "";
@@ -397,9 +397,6 @@ function parseSuiteAccountsPublicConfig(consumer, environment) {
397
397
  const convex = parseOrigin(deployment.url, "NEXT_PUBLIC_ACCOUNTS_CONVEX_URL");
398
398
  const loopback = [site, convex, convexSite].map((url) => LOOPBACK_HOSTS.has(url.hostname));
399
399
  if (loopback.every(Boolean)) {
400
- if (consumer === "aicharts") {
401
- throw new Error("AI Charts authentication requires its registered production origin.");
402
- }
403
400
  if (deployment.transport !== "local" || site.hostname !== convex.hostname || site.hostname !== convexSite.hostname) {
404
401
  throw new Error("Local consumer and Accounts endpoints must use the same loopback host.");
405
402
  }
package/dist/registry.js CHANGED
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
@@ -1 +1 @@
1
- {"buildTools":[],"compiler":{"compilerContractVersion":"hraness-stylex-compiler-v1","css":{"filename":"stylex.css","layerPrelude":"complete-finite","targets":{"chrome":7143424,"firefox":7536640,"ios_saf":1049600,"safari":1049600},"topLevelLayers":["base","components"]},"schemaVersion":1,"serializer":{"enableLTRRTLComments":false,"useLayers":{"before":["components.hraness-ui.legacy.base","components.hraness-ui.legacy"],"prefix":"components.hraness-ui"}},"tools":{"babelCore":"7.29.7","lightningcss":"1.33.0","stylex":"0.19.0","stylexBabelCompatibility":{"entry":"lib/index.js","patchId":"stylex-0.19.0-token-parser-explicit-eof-v1","patchSha256":"4d17ac835421e037788f800035cfe91ee4fdce384ce97529d572015ea4318295","patchedSourceBytes":418119,"patchedSourceSha256":"32dfd685bf0ccc18c922ac6906cb911b05b081cc00c0fa6e100818d211abd1ba","sourceBytes":418079,"sourceSha256":"f880cd6733b91557647f1f894dbcbef7102199a112d1e8a6689fcf7b94f736c3"}},"transform":{"classNamePrefix":"x","dev":false,"enableMediaQueryOrder":true,"importSources":["@stylexjs/stylex"],"logicalRoot":"<graph-root>","moduleResolution":"commonJS","propertyValidationMode":"throw","sourceType":"unambiguous","styleResolution":"property-specificity","sxPropName":false,"treeshakeCompensation":true}},"compilerFoundation":"compiler-foundation.css","compilerSha256":"9ac2c8448ec8f198047e824ce27a97657e05025918c01c204aa0399f94641049","kind":"hraness-stylex-package-manifest","package":{"name":"@hraness/suite-accounts","version":"0.9.21"},"rules":[["x1aazh3f",{"ltr":".x1aazh3f{font-variant:inherit}","rtl":null},2000],["x1e6avla",{"ltr":".x1e6avla{border-radius:999px}","rtl":null},2000],["x1rcpt3j",{"ltr":".x1rcpt3j{gap:.45rem}","rtl":null},2000],["x1y0btm7",{"ltr":".x1y0btm7{border-style:solid}","rtl":null},2000],["x1y4qj14",{"ltr":".x1y4qj14{background-position:0% 0%}","rtl":null},2000],["x5goj4r",{"ltr":".x5goj4r{border-radius:.35rem}","rtl":null},2000],["x5m0csh",{"ltr":".x5m0csh{gap:.65rem}","rtl":null},2000],["x73f2yu",{"ltr":".x73f2yu{gap:.35rem}","rtl":null},2000],["x8fetqu",{"ltr":".x8fetqu{gap:1rem}","rtl":null},2000],["x9ox504",{"ltr":".x9ox504{border-color:var(--suite-profile-button-background,currentColor)}","rtl":null},2000],["xc342km",{"ltr":".xc342km{border-width:0}","rtl":null},2000],["xmkeg23",{"ltr":".xmkeg23{border-width:1px}","rtl":null},2000],["xxut2h2",{"ltr":".xxut2h2{border-color:var(--suite-profile-line,currentColor)}","rtl":null},2000],["x103pssi",{"ltr":".x103pssi{background-size:auto auto}","rtl":null},3000],["x10rt0pk",{"ltr":".x10rt0pk{font-feature-settings:inherit}","rtl":null},3000],["x12koezg",{"ltr":".x12koezg{background-origin:padding-box}","rtl":null},3000],["x15bjb6t",{"ltr":".x15bjb6t{line-height:inherit}","rtl":null},3000],["x182nak8",{"ltr":".x182nak8{background-repeat:repeat}","rtl":null},3000],["x18o3ruo",{"ltr":".x18o3ruo{background-image:none}","rtl":null},3000],["x18sabzy",{"ltr":".x18sabzy{border-image-source:none}","rtl":null},3000],["x1c7drp3",{"ltr":".x1c7drp3{accent-color:var(--suite-profile-focus,currentColor)}","rtl":null},3000],["x1e53mt7",{"ltr":".x1e53mt7{border-image-outset:0}","rtl":null},3000],["x1evy7pa",{"ltr":".x1evy7pa{line-height:1.5}","rtl":null},3000],["x1fdtg7e",{"ltr":".x1fdtg7e{background-attachment:scroll}","rtl":null},3000],["x1heor9g",{"ltr":".x1heor9g{color:inherit}","rtl":null},3000],["x1iyjqo2",{"ltr":".x1iyjqo2{flex-grow:1}","rtl":null},3000],["x1jfjhf8",{"ltr":".x1jfjhf8{background-color:var(--suite-profile-button-background,currentColor)}","rtl":null},3000],["x1jleocg",{"ltr":".x1jleocg{border-image-slice:100%}","rtl":null},3000],["x1lliihq",{"ltr":".x1lliihq{display:block}","rtl":null},3000],["x1lqcxt8",{"ltr":".x1lqcxt8{justify-self:start}","rtl":null},3000],["x1nrrp6k",{"ltr":".x1nrrp6k{font-size:.9rem}","rtl":null},3000],["x1pd3egz",{"ltr":".x1pd3egz{font-weight:inherit}","rtl":null},3000],["x1pjjote",{"ltr":".x1pjjote{border-image-width:1}","rtl":null},3000],["x1qlqyl8",{"ltr":".x1qlqyl8{font-size:inherit}","rtl":null},3000],["x1qzg9v8",{"ltr":".x1qzg9v8{font-size:.85rem}","rtl":null},3000],["x1rcybi7",{"ltr":".x1rcybi7{font-language-override:inherit}","rtl":null},3000],["x1t137rt",{"ltr":".x1t137rt{outline-style:none}","rtl":null},3000],["x1t35e8",{"ltr":".x1t35e8{font-style:inherit}","rtl":null},3000],["x1u7o2vf",{"ltr":".x1u7o2vf{background-clip:border-box}","rtl":null},3000],["x1w9dvvm",{"ltr":".x1w9dvvm{background-color:var(--suite-profile-input-background,transparent)}","rtl":null},3000],["x1xh6y1q",{"ltr":".x1xh6y1q{font-stretch:inherit}","rtl":null},3000],["x1xlr1w8",{"ltr":".x1xlr1w8{font-weight:700}","rtl":null},3000],["x1ypdohk",{"ltr":".x1ypdohk{cursor:pointer}","rtl":null},3000],["x288g5",{"ltr":".x288g5{resize:vertical}","rtl":null},3000],["x2lah0s",{"ltr":".x2lah0s{flex-shrink:0}","rtl":null},3000],["x37zpob",{"ltr":".x37zpob{line-height:1.4}","rtl":null},3000],["x5ee4ez",{"ltr":".x5ee4ez{color:var(--suite-profile-muted,currentColor)}","rtl":null},3000],["x61gc8y",{"ltr":".x61gc8y{font-optical-sizing:inherit}","rtl":null},3000],["x6s0dn4",{"ltr":".x6s0dn4{align-items:center}","rtl":null},3000],["x78zum5",{"ltr":".x78zum5{display:flex}","rtl":null},3000],["xd4aj15",{"ltr":".xd4aj15{font-size-adjust:inherit}","rtl":null},3000],["xd5ouml",{"ltr":".xd5ouml{color:var(--suite-profile-error,#a83232)}","rtl":null},3000],["xf9vgkq",{"ltr":".xf9vgkq{opacity:.72}","rtl":null},3000],["xgkqhyc",{"ltr":".xgkqhyc{border-image-repeat:stretch}","rtl":null},3000],["xj0a0fe",{"ltr":".xj0a0fe{overflow-wrap:anywhere}","rtl":null},3000],["xjb2p0i",{"ltr":".xjb2p0i{font-family:inherit}","rtl":null},3000],["xjbqb8w",{"ltr":".xjbqb8w{background-color:transparent}","rtl":null},3000],["xkyhvkk",{"ltr":".xkyhvkk{font-variation-settings:inherit}","rtl":null},3000],["xo1l8bm",{"ltr":".xo1l8bm{font-weight:400}","rtl":null},3000],["xrvj5dj",{"ltr":".xrvj5dj{display:grid}","rtl":null},3000],["xs83m0k",{"ltr":".xs83m0k{flex-shrink:1}","rtl":null},3000],["xt0e3qv",{"ltr":".xt0e3qv{cursor:default}","rtl":null},3000],["xuxw1ft",{"ltr":".xuxw1ft{white-space:nowrap}","rtl":null},3000],["xvmqkbn",{"ltr":".xvmqkbn{font-kerning:inherit}","rtl":null},3000],["xz46ci",{"ltr":".xz46ci{color:var(--suite-profile-button-foreground,Canvas)}","rtl":null},3000],["x14xc8xn",{"ltr":".x14xc8xn:focus-within{outline-style:solid}","rtl":null},3040],["x16gxa91",{"ltr":".x16gxa91:focus-within{outline-width:2px}","rtl":null},3040],["x1fanpfn",{"ltr":".x1fanpfn:focus-within{outline-offset:2px}","rtl":null},3040],["x1p4mulw",{"ltr":".x1p4mulw:focus-within{outline-color:var(--suite-profile-focus,currentColor)}","rtl":null},3040],["x784prv",{"ltr":".x784prv:focus-visible{outline-width:2px}","rtl":null},3040],["x7s97pk",{"ltr":".x7s97pk:focus-visible{outline-offset:2px}","rtl":null},3040],["x9v5kkp",{"ltr":".x9v5kkp:focus-visible{outline-style:solid}","rtl":null},3040],["xo8l03z",{"ltr":".xo8l03z:focus-visible{outline-color:var(--suite-profile-focus,currentColor)}","rtl":null},3040],["xc4xxb1",{"ltr":".xc4xxb1:has(:disabled){opacity:.6}","rtl":null},3045],["xfqoyci",{"ltr":".xfqoyci:disabled{opacity:.6}","rtl":null},3092],["xjb0foi",{"ltr":".xjb0foi:disabled{cursor:wait}","rtl":null},3092],["x13zjp5t",{"ltr":".x13zjp5t{margin-left:.5rem}","rtl":null},4000],["x15u6esi",{"ltr":".x15u6esi{padding-left:.5rem}","rtl":null},4000],["x15y8ph0",{"ltr":".x15y8ph0{padding-top:.7rem}","rtl":null},4000],["x178xt8z",{"ltr":".x178xt8z{border-top-width:1px}","rtl":null},4000],["x18d9i69",{"ltr":".x18d9i69{padding-bottom:0}","rtl":null},4000],["x19hwnzc",{"ltr":".x19hwnzc{min-width:2rem}","rtl":null},4000],["x1b58sdr",{"ltr":".x1b58sdr{padding-top:.5rem}","rtl":null},4000],["x1flg24d",{"ltr":".x1flg24d{padding-top:.65rem}","rtl":null},4000],["x1iul6r4",{"ltr":".x1iul6r4{padding-top:.25rem}","rtl":null},4000],["x1mjqqkp",{"ltr":".x1mjqqkp{margin-top:.5rem}","rtl":null},4000],["x1q57ora",{"ltr":".x1q57ora{padding-top:.75rem}","rtl":null},4000],["x1qhh985",{"ltr":".x1qhh985{border-bottom-width:0}","rtl":null},4000],["x1uhho1l",{"ltr":".x1uhho1l{padding-left:0}","rtl":null},4000],["x1xpa7k",{"ltr":".x1xpa7k{padding-right:0}","rtl":null},4000],["x1yf7rl7",{"ltr":".x1yf7rl7{margin-right:0}","rtl":null},4000],["x33uob6",{"ltr":".x33uob6{padding-right:.75rem}","rtl":null},4000],["x4odjur",{"ltr":".x4odjur{padding-bottom:.65rem}","rtl":null},4000],["x52dz5p",{"ltr":".x52dz5p{padding-right:1rem}","rtl":null},4000],["x79ra4s",{"ltr":".x79ra4s{padding-left:.75rem}","rtl":null},4000],["x9dzeaa",{"ltr":".x9dzeaa{padding-left:1rem}","rtl":null},4000],["xat24cr",{"ltr":".xat24cr{margin-bottom:0}","rtl":null},4000],["xdddoky",{"ltr":".xdddoky{height:1.05rem}","rtl":null},4000],["xdj266r",{"ltr":".xdj266r{margin-top:0}","rtl":null},4000],["xes99ow",{"ltr":".xes99ow{padding-bottom:.25rem}","rtl":null},4000],["xeuugli",{"ltr":".xeuugli{min-width:0}","rtl":null},4000],["xf6x3ch",{"ltr":".xf6x3ch{width:1.05rem}","rtl":null},4000],["xgbkey0",{"ltr":".xgbkey0{min-height:2.75rem}","rtl":null},4000],["xgfja2r",{"ltr":".xgfja2r{border-right-width:0}","rtl":null},4000],["xh8yej3",{"ltr":".xh8yej3{width:100%}","rtl":null},4000],["xhbfen4",{"ltr":".xhbfen4{margin-bottom:.5rem}","rtl":null},4000],["xhdxxi3",{"ltr":".xhdxxi3{height:1.1rem}","rtl":null},4000],["xj3b58b",{"ltr":".xj3b58b{margin-left:0}","rtl":null},4000],["xmh2cwo",{"ltr":".xmh2cwo{width:1.1rem}","rtl":null},4000],["xvgi8cs",{"ltr":".xvgi8cs{padding-bottom:.7rem}","rtl":null},4000],["xyj58a3",{"ltr":".xyj58a3{border-left-width:0}","rtl":null},4000]],"rulesSha256":"31d7dc6f52eff49071378eef338d3387292c4c85c462a6602bc4d5f421fc818a","runtime":[{"bytes":72118,"path":"dist/profile-form.js","sha256":"c854ce33978764807c9f7ddc8143a55802ba7e44fa996f423988a09f266effac"}],"schemaVersion":1,"standaloneCss":{"bytes":5493,"path":"dist/stylex.css","sha256":"e52f05b747b1bc28882df95109a7156d8b0517489de315f3cc5119ccc0d84104"},"standaloneSerializer":{"before":["components.hraness-suite-accounts.legacy"],"prefix":"components.hraness-suite-accounts"},"stylesheets":[{"bytes":83,"path":"compiler-foundation.css","sha256":"71172943d9ba5c6194bddf8a8f41c3bd35eb77919a20660019b12e9c2f8849e7"},{"bytes":30,"path":"src/profile-form.css","sha256":"4d4716e779cb53a65a4789db3b4c1340593a3d63d562bab16be8ec704157586c"}]}
1
+ {"buildTools":[],"compiler":{"compilerContractVersion":"hraness-stylex-compiler-v1","css":{"filename":"stylex.css","layerPrelude":"complete-finite","targets":{"chrome":7143424,"firefox":7536640,"ios_saf":1049600,"safari":1049600},"topLevelLayers":["base","components"]},"schemaVersion":1,"serializer":{"enableLTRRTLComments":false,"useLayers":{"before":["components.hraness-ui.legacy.base","components.hraness-ui.legacy"],"prefix":"components.hraness-ui"}},"tools":{"babelCore":"7.29.7","lightningcss":"1.33.0","stylex":"0.19.0","stylexBabelCompatibility":{"entry":"lib/index.js","patchId":"stylex-0.19.0-token-parser-explicit-eof-v1","patchSha256":"4d17ac835421e037788f800035cfe91ee4fdce384ce97529d572015ea4318295","patchedSourceBytes":418119,"patchedSourceSha256":"32dfd685bf0ccc18c922ac6906cb911b05b081cc00c0fa6e100818d211abd1ba","sourceBytes":418079,"sourceSha256":"f880cd6733b91557647f1f894dbcbef7102199a112d1e8a6689fcf7b94f736c3"}},"transform":{"classNamePrefix":"x","dev":false,"enableMediaQueryOrder":true,"importSources":["@stylexjs/stylex"],"logicalRoot":"<graph-root>","moduleResolution":"commonJS","propertyValidationMode":"throw","sourceType":"unambiguous","styleResolution":"property-specificity","sxPropName":false,"treeshakeCompensation":true}},"compilerFoundation":"compiler-foundation.css","compilerSha256":"9ac2c8448ec8f198047e824ce27a97657e05025918c01c204aa0399f94641049","kind":"hraness-stylex-package-manifest","package":{"name":"@hraness/suite-accounts","version":"0.9.22"},"rules":[["x1aazh3f",{"ltr":".x1aazh3f{font-variant:inherit}","rtl":null},2000],["x1e6avla",{"ltr":".x1e6avla{border-radius:999px}","rtl":null},2000],["x1rcpt3j",{"ltr":".x1rcpt3j{gap:.45rem}","rtl":null},2000],["x1y0btm7",{"ltr":".x1y0btm7{border-style:solid}","rtl":null},2000],["x1y4qj14",{"ltr":".x1y4qj14{background-position:0% 0%}","rtl":null},2000],["x5goj4r",{"ltr":".x5goj4r{border-radius:.35rem}","rtl":null},2000],["x5m0csh",{"ltr":".x5m0csh{gap:.65rem}","rtl":null},2000],["x73f2yu",{"ltr":".x73f2yu{gap:.35rem}","rtl":null},2000],["x8fetqu",{"ltr":".x8fetqu{gap:1rem}","rtl":null},2000],["x9ox504",{"ltr":".x9ox504{border-color:var(--suite-profile-button-background,currentColor)}","rtl":null},2000],["xc342km",{"ltr":".xc342km{border-width:0}","rtl":null},2000],["xmkeg23",{"ltr":".xmkeg23{border-width:1px}","rtl":null},2000],["xxut2h2",{"ltr":".xxut2h2{border-color:var(--suite-profile-line,currentColor)}","rtl":null},2000],["x103pssi",{"ltr":".x103pssi{background-size:auto auto}","rtl":null},3000],["x10rt0pk",{"ltr":".x10rt0pk{font-feature-settings:inherit}","rtl":null},3000],["x12koezg",{"ltr":".x12koezg{background-origin:padding-box}","rtl":null},3000],["x15bjb6t",{"ltr":".x15bjb6t{line-height:inherit}","rtl":null},3000],["x182nak8",{"ltr":".x182nak8{background-repeat:repeat}","rtl":null},3000],["x18o3ruo",{"ltr":".x18o3ruo{background-image:none}","rtl":null},3000],["x18sabzy",{"ltr":".x18sabzy{border-image-source:none}","rtl":null},3000],["x1c7drp3",{"ltr":".x1c7drp3{accent-color:var(--suite-profile-focus,currentColor)}","rtl":null},3000],["x1e53mt7",{"ltr":".x1e53mt7{border-image-outset:0}","rtl":null},3000],["x1evy7pa",{"ltr":".x1evy7pa{line-height:1.5}","rtl":null},3000],["x1fdtg7e",{"ltr":".x1fdtg7e{background-attachment:scroll}","rtl":null},3000],["x1heor9g",{"ltr":".x1heor9g{color:inherit}","rtl":null},3000],["x1iyjqo2",{"ltr":".x1iyjqo2{flex-grow:1}","rtl":null},3000],["x1jfjhf8",{"ltr":".x1jfjhf8{background-color:var(--suite-profile-button-background,currentColor)}","rtl":null},3000],["x1jleocg",{"ltr":".x1jleocg{border-image-slice:100%}","rtl":null},3000],["x1lliihq",{"ltr":".x1lliihq{display:block}","rtl":null},3000],["x1lqcxt8",{"ltr":".x1lqcxt8{justify-self:start}","rtl":null},3000],["x1nrrp6k",{"ltr":".x1nrrp6k{font-size:.9rem}","rtl":null},3000],["x1pd3egz",{"ltr":".x1pd3egz{font-weight:inherit}","rtl":null},3000],["x1pjjote",{"ltr":".x1pjjote{border-image-width:1}","rtl":null},3000],["x1qlqyl8",{"ltr":".x1qlqyl8{font-size:inherit}","rtl":null},3000],["x1qzg9v8",{"ltr":".x1qzg9v8{font-size:.85rem}","rtl":null},3000],["x1rcybi7",{"ltr":".x1rcybi7{font-language-override:inherit}","rtl":null},3000],["x1t137rt",{"ltr":".x1t137rt{outline-style:none}","rtl":null},3000],["x1t35e8",{"ltr":".x1t35e8{font-style:inherit}","rtl":null},3000],["x1u7o2vf",{"ltr":".x1u7o2vf{background-clip:border-box}","rtl":null},3000],["x1w9dvvm",{"ltr":".x1w9dvvm{background-color:var(--suite-profile-input-background,transparent)}","rtl":null},3000],["x1xh6y1q",{"ltr":".x1xh6y1q{font-stretch:inherit}","rtl":null},3000],["x1xlr1w8",{"ltr":".x1xlr1w8{font-weight:700}","rtl":null},3000],["x1ypdohk",{"ltr":".x1ypdohk{cursor:pointer}","rtl":null},3000],["x288g5",{"ltr":".x288g5{resize:vertical}","rtl":null},3000],["x2lah0s",{"ltr":".x2lah0s{flex-shrink:0}","rtl":null},3000],["x37zpob",{"ltr":".x37zpob{line-height:1.4}","rtl":null},3000],["x5ee4ez",{"ltr":".x5ee4ez{color:var(--suite-profile-muted,currentColor)}","rtl":null},3000],["x61gc8y",{"ltr":".x61gc8y{font-optical-sizing:inherit}","rtl":null},3000],["x6s0dn4",{"ltr":".x6s0dn4{align-items:center}","rtl":null},3000],["x78zum5",{"ltr":".x78zum5{display:flex}","rtl":null},3000],["xd4aj15",{"ltr":".xd4aj15{font-size-adjust:inherit}","rtl":null},3000],["xd5ouml",{"ltr":".xd5ouml{color:var(--suite-profile-error,#a83232)}","rtl":null},3000],["xf9vgkq",{"ltr":".xf9vgkq{opacity:.72}","rtl":null},3000],["xgkqhyc",{"ltr":".xgkqhyc{border-image-repeat:stretch}","rtl":null},3000],["xj0a0fe",{"ltr":".xj0a0fe{overflow-wrap:anywhere}","rtl":null},3000],["xjb2p0i",{"ltr":".xjb2p0i{font-family:inherit}","rtl":null},3000],["xjbqb8w",{"ltr":".xjbqb8w{background-color:transparent}","rtl":null},3000],["xkyhvkk",{"ltr":".xkyhvkk{font-variation-settings:inherit}","rtl":null},3000],["xo1l8bm",{"ltr":".xo1l8bm{font-weight:400}","rtl":null},3000],["xrvj5dj",{"ltr":".xrvj5dj{display:grid}","rtl":null},3000],["xs83m0k",{"ltr":".xs83m0k{flex-shrink:1}","rtl":null},3000],["xt0e3qv",{"ltr":".xt0e3qv{cursor:default}","rtl":null},3000],["xuxw1ft",{"ltr":".xuxw1ft{white-space:nowrap}","rtl":null},3000],["xvmqkbn",{"ltr":".xvmqkbn{font-kerning:inherit}","rtl":null},3000],["xz46ci",{"ltr":".xz46ci{color:var(--suite-profile-button-foreground,Canvas)}","rtl":null},3000],["x14xc8xn",{"ltr":".x14xc8xn:focus-within{outline-style:solid}","rtl":null},3040],["x16gxa91",{"ltr":".x16gxa91:focus-within{outline-width:2px}","rtl":null},3040],["x1fanpfn",{"ltr":".x1fanpfn:focus-within{outline-offset:2px}","rtl":null},3040],["x1p4mulw",{"ltr":".x1p4mulw:focus-within{outline-color:var(--suite-profile-focus,currentColor)}","rtl":null},3040],["x784prv",{"ltr":".x784prv:focus-visible{outline-width:2px}","rtl":null},3040],["x7s97pk",{"ltr":".x7s97pk:focus-visible{outline-offset:2px}","rtl":null},3040],["x9v5kkp",{"ltr":".x9v5kkp:focus-visible{outline-style:solid}","rtl":null},3040],["xo8l03z",{"ltr":".xo8l03z:focus-visible{outline-color:var(--suite-profile-focus,currentColor)}","rtl":null},3040],["xc4xxb1",{"ltr":".xc4xxb1:has(:disabled){opacity:.6}","rtl":null},3045],["xfqoyci",{"ltr":".xfqoyci:disabled{opacity:.6}","rtl":null},3092],["xjb0foi",{"ltr":".xjb0foi:disabled{cursor:wait}","rtl":null},3092],["x13zjp5t",{"ltr":".x13zjp5t{margin-left:.5rem}","rtl":null},4000],["x15u6esi",{"ltr":".x15u6esi{padding-left:.5rem}","rtl":null},4000],["x15y8ph0",{"ltr":".x15y8ph0{padding-top:.7rem}","rtl":null},4000],["x178xt8z",{"ltr":".x178xt8z{border-top-width:1px}","rtl":null},4000],["x18d9i69",{"ltr":".x18d9i69{padding-bottom:0}","rtl":null},4000],["x19hwnzc",{"ltr":".x19hwnzc{min-width:2rem}","rtl":null},4000],["x1b58sdr",{"ltr":".x1b58sdr{padding-top:.5rem}","rtl":null},4000],["x1flg24d",{"ltr":".x1flg24d{padding-top:.65rem}","rtl":null},4000],["x1iul6r4",{"ltr":".x1iul6r4{padding-top:.25rem}","rtl":null},4000],["x1mjqqkp",{"ltr":".x1mjqqkp{margin-top:.5rem}","rtl":null},4000],["x1q57ora",{"ltr":".x1q57ora{padding-top:.75rem}","rtl":null},4000],["x1qhh985",{"ltr":".x1qhh985{border-bottom-width:0}","rtl":null},4000],["x1uhho1l",{"ltr":".x1uhho1l{padding-left:0}","rtl":null},4000],["x1xpa7k",{"ltr":".x1xpa7k{padding-right:0}","rtl":null},4000],["x1yf7rl7",{"ltr":".x1yf7rl7{margin-right:0}","rtl":null},4000],["x33uob6",{"ltr":".x33uob6{padding-right:.75rem}","rtl":null},4000],["x4odjur",{"ltr":".x4odjur{padding-bottom:.65rem}","rtl":null},4000],["x52dz5p",{"ltr":".x52dz5p{padding-right:1rem}","rtl":null},4000],["x79ra4s",{"ltr":".x79ra4s{padding-left:.75rem}","rtl":null},4000],["x9dzeaa",{"ltr":".x9dzeaa{padding-left:1rem}","rtl":null},4000],["xat24cr",{"ltr":".xat24cr{margin-bottom:0}","rtl":null},4000],["xdddoky",{"ltr":".xdddoky{height:1.05rem}","rtl":null},4000],["xdj266r",{"ltr":".xdj266r{margin-top:0}","rtl":null},4000],["xes99ow",{"ltr":".xes99ow{padding-bottom:.25rem}","rtl":null},4000],["xeuugli",{"ltr":".xeuugli{min-width:0}","rtl":null},4000],["xf6x3ch",{"ltr":".xf6x3ch{width:1.05rem}","rtl":null},4000],["xgbkey0",{"ltr":".xgbkey0{min-height:2.75rem}","rtl":null},4000],["xgfja2r",{"ltr":".xgfja2r{border-right-width:0}","rtl":null},4000],["xh8yej3",{"ltr":".xh8yej3{width:100%}","rtl":null},4000],["xhbfen4",{"ltr":".xhbfen4{margin-bottom:.5rem}","rtl":null},4000],["xhdxxi3",{"ltr":".xhdxxi3{height:1.1rem}","rtl":null},4000],["xj3b58b",{"ltr":".xj3b58b{margin-left:0}","rtl":null},4000],["xmh2cwo",{"ltr":".xmh2cwo{width:1.1rem}","rtl":null},4000],["xvgi8cs",{"ltr":".xvgi8cs{padding-bottom:.7rem}","rtl":null},4000],["xyj58a3",{"ltr":".xyj58a3{border-left-width:0}","rtl":null},4000]],"rulesSha256":"31d7dc6f52eff49071378eef338d3387292c4c85c462a6602bc4d5f421fc818a","runtime":[{"bytes":72013,"path":"dist/profile-form.js","sha256":"2ae54d2952af61a086318931776f1dbb02bab9067b8783401733e1f27b0e1d18"}],"schemaVersion":1,"standaloneCss":{"bytes":5493,"path":"dist/stylex.css","sha256":"e52f05b747b1bc28882df95109a7156d8b0517489de315f3cc5119ccc0d84104"},"standaloneSerializer":{"before":["components.hraness-suite-accounts.legacy"],"prefix":"components.hraness-suite-accounts"},"stylesheets":[{"bytes":83,"path":"compiler-foundation.css","sha256":"71172943d9ba5c6194bddf8a8f41c3bd35eb77919a20660019b12e9c2f8849e7"},{"bytes":30,"path":"src/profile-form.css","sha256":"4d4716e779cb53a65a4789db3b4c1340593a3d63d562bab16be8ec704157586c"}]}
package/dist/urls.js CHANGED
@@ -152,7 +152,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
152
152
  "oh-computer",
153
153
  "sponge",
154
154
  "peopleblade",
155
- "aicharts",
156
155
  "hraness",
157
156
  "soulscrape",
158
157
  "platonik",
@@ -178,7 +177,6 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
178
177
  "oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
179
178
  sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
180
179
  peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
181
- aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
182
180
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
183
181
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
184
182
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -213,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
213
211
  "oh-computer",
214
212
  "sponge",
215
213
  "peopleblade",
216
- "aicharts",
217
214
  "hraness",
218
215
  "soulscrape",
219
216
  "platonik",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hraness/suite-accounts",
3
- "version": "0.9.21",
3
+ "version": "0.9.22",
4
4
  "description": "Validated client and protocol boundaries for Hraness Accounts.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -8,7 +8,7 @@
8
8
  "name": "@hraness/suite-accounts",
9
9
  "path": ".",
10
10
  "visibility": "public",
11
- "version": "0.9.21"
11
+ "version": "0.9.22"
12
12
  }
13
13
  ],
14
14
  "dependencies": [
@@ -7,6 +7,7 @@ import {
7
7
  getSuiteAccountsConsumer,
8
8
  getSuiteAccountsDeployment,
9
9
  isSuiteAccountsCurrentConsumerId,
10
+ isSuiteAccountsRegisteredConsumerId,
10
11
  type SuiteAccountsAuthConfiguration,
11
12
  type SuiteAccountsCurrentConsumerId,
12
13
  type SuiteAccountsEnvironment,
@@ -159,6 +160,9 @@ export function parseSuiteAccountsPublicConfig(
159
160
  consumer: SuiteAccountsPublicConsumerId,
160
161
  environment: SuiteAccountsPublicEnvironment,
161
162
  ): Exclude<SuiteAccountsPublicConfig, { kind: "invalid" }> {
163
+ if (!isSuiteAccountsCurrentConsumerId(consumer) && !isSuiteAccountsRegisteredConsumerId(consumer)) {
164
+ throw new Error("The Suite Accounts consumer is not registered.");
165
+ }
162
166
  const missing = SUITE_ACCOUNTS_PUBLIC_ENVIRONMENT_KEYS.filter((name) => {
163
167
  const value = environment[name];
164
168
  return typeof value !== "string" || value.trim() === "";
@@ -191,13 +195,6 @@ export function parseSuiteAccountsPublicConfig(
191
195
  LOOPBACK_HOSTS.has(url.hostname)
192
196
  );
193
197
  if (loopback.every(Boolean)) {
194
- // This new registration has no local trust surface. Preserve existing
195
- // consumers' released loopback behavior below.
196
- if (consumer === "aicharts") {
197
- throw new Error(
198
- "AI Charts authentication requires its registered production origin.",
199
- );
200
- }
201
198
  if (
202
199
  deployment.transport !== "local"
203
200
  || site.hostname !== convex.hostname
package/src/registry.ts CHANGED
@@ -220,7 +220,6 @@ export const SUITE_ACCOUNTS_CURRENT_CONSUMER_IDS = deepFreeze([
220
220
  "oh-computer",
221
221
  "sponge",
222
222
  "peopleblade",
223
- "aicharts",
224
223
  "hraness",
225
224
  "soulscrape",
226
225
  "platonik",
@@ -277,11 +276,6 @@ export const SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
277
276
  "PeopleBlade",
278
277
  "https://peopleblade.com",
279
278
  ),
280
- aicharts: currentOidcSite(
281
- "aicharts",
282
- "AI Charts",
283
- "https://aicharts.io",
284
- ),
285
279
  hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
286
280
  soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
287
281
  platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
@@ -393,7 +387,6 @@ export const SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS =
393
387
  "oh-computer",
394
388
  "sponge",
395
389
  "peopleblade",
396
- "aicharts",
397
390
  "hraness",
398
391
  "soulscrape",
399
392
  "platonik",