@hraness/suite-accounts 0.9.20 → 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 +38 -25
- package/dist/auth-proxy.js +7 -8
- package/dist/bearer-verifier.js +4 -5
- package/dist/client-configuration.js +4 -5
- package/dist/convex-browser-auth-browser.js +4 -5
- package/dist/convex-browser-auth-server.js +4 -5
- package/dist/convex-browser-auth.js +4 -5
- package/dist/identity/index.js +4 -5
- package/dist/index.js +7 -8
- package/dist/oidc-rp.js +4 -5
- package/dist/oidc-surface-server.js +4 -5
- package/dist/profile-form.js +4 -5
- package/dist/public-config.js +7 -8
- package/dist/registry.js +4 -5
- package/dist/stylex-manifest.json +1 -1
- package/dist/urls.js +4 -5
- package/package.json +7 -5
- package/portfolio-inventory.json +1 -1
- package/src/public-config.ts +4 -7
- package/src/registry.ts +2 -7
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.
|
|
38
|
+
"@hraness/suite-accounts": "github:hraness/suite-accounts#v0.9.22"
|
|
28
39
|
}
|
|
29
40
|
}
|
|
30
41
|
```
|
|
@@ -334,11 +345,13 @@ Create it on the product server and bind it to a durable, short-lived action;
|
|
|
334
345
|
do not copy browser parameters, personal data or credentials into it.
|
|
335
346
|
`expiresAtMs` must be a safe integer after server time and no more than 10
|
|
336
347
|
minutes ahead. `authenticationNotBeforeMs`, when present, must be a
|
|
337
|
-
non-negative safe integer
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
348
|
+
non-negative safe integer. It sets the OIDC `max_age` request parameter to
|
|
349
|
+
`max(0, ceil((startedAtMs - authenticationNotBeforeMs) / 1000))`; omitting it
|
|
350
|
+
sends `max_age=0`. Completion still rejects authentication before the
|
|
351
|
+
transaction start's whole-second boundary, so this option does not enable reuse
|
|
352
|
+
of an earlier session.
|
|
353
|
+
|
|
354
|
+
The request uses the exact registered start URL, method, and same-origin rules. The context is encrypted in the transaction cookie and
|
|
342
355
|
is not added to the authorization URL, continuation HTML or browser session.
|
|
343
356
|
|
|
344
357
|
The fresh transaction uses a separate version. Ordinary `callback()` and
|
|
@@ -371,11 +384,7 @@ response may leave a consumed OAuth code; reconcile durable product state and
|
|
|
371
384
|
start a new transaction instead of assuming the code can be replayed. Ordinary
|
|
372
385
|
login, session access and refresh cannot produce fresh completion evidence.
|
|
373
386
|
|
|
374
|
-
The SDK requests `prompt=login`
|
|
375
|
-
checks the signed result. An optional `authenticationNotBeforeMs` input maps to
|
|
376
|
-
a positive `max_age`, letting the provider satisfy the prompt with a recent
|
|
377
|
-
live session instead of another interactive sign-in; the same verified
|
|
378
|
-
`auth_time` evidence is still returned for the product's own freshness check.
|
|
387
|
+
The SDK requests `prompt=login` and independently checks the signed result.
|
|
379
388
|
Request parameters alone are insufficient evidence. See
|
|
380
389
|
[OIDC authentication-time validation](https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation).
|
|
381
390
|
Before you enable privileged actions, verify how the live Accounts service
|
|
@@ -397,9 +406,12 @@ New registration remains an Accounts service change followed by a package
|
|
|
397
406
|
release and an exact factory binding. Retired client identifiers and routes are
|
|
398
407
|
rejected by current APIs.
|
|
399
408
|
|
|
409
|
+
The former aicharts browser client and its device-code grant are retired.
|
|
410
|
+
The site remains a public benchmark reference.
|
|
411
|
+
|
|
400
412
|
The published v1 browser refresh-lock and session-notification channel strings
|
|
401
|
-
|
|
402
|
-
|
|
413
|
+
retain their original values. Existing tabs therefore coordinate across a
|
|
414
|
+
rolling package migration without a browser namespace cutover.
|
|
403
415
|
|
|
404
416
|
The compatibility registry is intentionally closed. It must not gain runtime
|
|
405
417
|
mutation, remote discovery, environment overrides, or caller-supplied trust
|
|
@@ -407,15 +419,12 @@ values.
|
|
|
407
419
|
|
|
408
420
|
## Releases
|
|
409
421
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
changed.
|
|
422
|
+
Each release is an immutable Git tag. [`CHANGELOG.md`](CHANGELOG.md) lists the
|
|
423
|
+
changes and migration notes for each version.
|
|
413
424
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
with React 18.3.1 and 19.2.3, then builds the client entries in a clean Next.js
|
|
418
|
-
16.2 webpack consumer.
|
|
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.
|
|
419
428
|
|
|
420
429
|
## Service boundary
|
|
421
430
|
|
|
@@ -458,6 +467,7 @@ and product gates before the callback is enabled in production.
|
|
|
458
467
|
```sh
|
|
459
468
|
bun install --frozen-lockfile --ignore-scripts
|
|
460
469
|
bun run check
|
|
470
|
+
bun run browser:install
|
|
461
471
|
bun run test:browser
|
|
462
472
|
bun pm pack --dry-run --ignore-scripts
|
|
463
473
|
```
|
|
@@ -476,10 +486,13 @@ styles at compact and wide widths, native focus and readonly controls, vertical
|
|
|
476
486
|
writing, hydration, pending saves, conflict revisions, validation errors, and
|
|
477
487
|
save failures. It also verifies that a real cross-site callback ends before the
|
|
478
488
|
nonce-locked continuation starts a same-origin session request. Only the save
|
|
479
|
-
transport and callback provider are synthetic.
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
489
|
+
transport and callback provider are synthetic. Install the Chromium revision pinned by `playwright-core` with
|
|
490
|
+
`bun run browser:install` before running these checks. An explicit
|
|
491
|
+
`CHROMIUM_EXECUTABLE_PATH` may select a separately provisioned Chrome for Testing;
|
|
492
|
+
the installed Chrome app is rejected, including through a symlink. Checks report
|
|
493
|
+
the resolved executable and version, mute audio, and disable `PaintHolding` and
|
|
494
|
+
`MacAppCodeSignClone` while preserving other browser flags. They print the
|
|
495
|
+
temporary evidence directory and close their browsers and loopback servers. Branch and release verification
|
|
483
496
|
both require this browser check.
|
|
484
497
|
|
|
485
498
|
The public-profile browser fixture uses the same built optional entry. It
|
package/dist/auth-proxy.js
CHANGED
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
|
@@ -380,6 +379,9 @@ function getPublicConsumer(consumer) {
|
|
|
380
379
|
return isSuiteAccountsCurrentConsumerId(consumer) ? getSuiteAccountsCurrentConsumer(consumer) : getSuiteAccountsConsumer(consumer);
|
|
381
380
|
}
|
|
382
381
|
function parseSuiteAccountsPublicConfig(consumer, environment) {
|
|
382
|
+
if (!isSuiteAccountsCurrentConsumerId(consumer) && !isSuiteAccountsRegisteredConsumerId(consumer)) {
|
|
383
|
+
throw new Error("The Suite Accounts consumer is not registered.");
|
|
384
|
+
}
|
|
383
385
|
const missing = SUITE_ACCOUNTS_PUBLIC_ENVIRONMENT_KEYS.filter((name) => {
|
|
384
386
|
const value = environment[name];
|
|
385
387
|
return typeof value !== "string" || value.trim() === "";
|
|
@@ -395,9 +397,6 @@ function parseSuiteAccountsPublicConfig(consumer, environment) {
|
|
|
395
397
|
const convex = parseOrigin(deployment.url, "NEXT_PUBLIC_ACCOUNTS_CONVEX_URL");
|
|
396
398
|
const loopback = [site, convex, convexSite].map((url) => LOOPBACK_HOSTS.has(url.hostname));
|
|
397
399
|
if (loopback.every(Boolean)) {
|
|
398
|
-
if (consumer === "aicharts") {
|
|
399
|
-
throw new Error("AI Charts authentication requires its registered production origin.");
|
|
400
|
-
}
|
|
401
400
|
if (deployment.transport !== "local" || site.hostname !== convex.hostname || site.hostname !== convexSite.hostname) {
|
|
402
401
|
throw new Error("Local consumer and Accounts endpoints must use the same loopback host.");
|
|
403
402
|
}
|
package/dist/bearer-verifier.js
CHANGED
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
package/dist/identity/index.js
CHANGED
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
package/dist/index.js
CHANGED
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
|
@@ -985,6 +984,9 @@ function getPublicConsumer(consumer) {
|
|
|
985
984
|
return isSuiteAccountsCurrentConsumerId(consumer) ? getSuiteAccountsCurrentConsumer(consumer) : getSuiteAccountsConsumer(consumer);
|
|
986
985
|
}
|
|
987
986
|
function parseSuiteAccountsPublicConfig(consumer, environment) {
|
|
987
|
+
if (!isSuiteAccountsCurrentConsumerId(consumer) && !isSuiteAccountsRegisteredConsumerId(consumer)) {
|
|
988
|
+
throw new Error("The Suite Accounts consumer is not registered.");
|
|
989
|
+
}
|
|
988
990
|
const missing = SUITE_ACCOUNTS_PUBLIC_ENVIRONMENT_KEYS.filter((name) => {
|
|
989
991
|
const value = environment[name];
|
|
990
992
|
return typeof value !== "string" || value.trim() === "";
|
|
@@ -1000,9 +1002,6 @@ function parseSuiteAccountsPublicConfig(consumer, environment) {
|
|
|
1000
1002
|
const convex = parseOrigin(deployment.url, "NEXT_PUBLIC_ACCOUNTS_CONVEX_URL");
|
|
1001
1003
|
const loopback = [site, convex, convexSite].map((url) => LOOPBACK_HOSTS.has(url.hostname));
|
|
1002
1004
|
if (loopback.every(Boolean)) {
|
|
1003
|
-
if (consumer === "aicharts") {
|
|
1004
|
-
throw new Error("AI Charts authentication requires its registered production origin.");
|
|
1005
|
-
}
|
|
1006
1005
|
if (deployment.transport !== "local" || site.hostname !== convex.hostname || site.hostname !== convexSite.hostname) {
|
|
1007
1006
|
throw new Error("Local consumer and Accounts endpoints must use the same loopback host.");
|
|
1008
1007
|
}
|
package/dist/oidc-rp.js
CHANGED
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
package/dist/profile-form.js
CHANGED
|
@@ -153,13 +153,13 @@ 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",
|
|
160
159
|
"ghostget",
|
|
161
160
|
"alt",
|
|
162
|
-
"algal"
|
|
161
|
+
"algal",
|
|
162
|
+
"textmock"
|
|
163
163
|
]);
|
|
164
164
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
165
165
|
return {
|
|
@@ -178,13 +178,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
178
178
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
179
179
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
180
180
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
181
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
182
181
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
183
182
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
184
183
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
185
184
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
186
185
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
187
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
186
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
187
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
188
188
|
});
|
|
189
189
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
190
190
|
"accounts",
|
|
@@ -212,7 +212,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
212
212
|
"oh-computer",
|
|
213
213
|
"sponge",
|
|
214
214
|
"peopleblade",
|
|
215
|
-
"aicharts",
|
|
216
215
|
"hraness",
|
|
217
216
|
"soulscrape",
|
|
218
217
|
"platonik",
|
package/dist/public-config.js
CHANGED
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
|
@@ -380,6 +379,9 @@ function getPublicConsumer(consumer) {
|
|
|
380
379
|
return isSuiteAccountsCurrentConsumerId(consumer) ? getSuiteAccountsCurrentConsumer(consumer) : getSuiteAccountsConsumer(consumer);
|
|
381
380
|
}
|
|
382
381
|
function parseSuiteAccountsPublicConfig(consumer, environment) {
|
|
382
|
+
if (!isSuiteAccountsCurrentConsumerId(consumer) && !isSuiteAccountsRegisteredConsumerId(consumer)) {
|
|
383
|
+
throw new Error("The Suite Accounts consumer is not registered.");
|
|
384
|
+
}
|
|
383
385
|
const missing = SUITE_ACCOUNTS_PUBLIC_ENVIRONMENT_KEYS.filter((name) => {
|
|
384
386
|
const value = environment[name];
|
|
385
387
|
return typeof value !== "string" || value.trim() === "";
|
|
@@ -395,9 +397,6 @@ function parseSuiteAccountsPublicConfig(consumer, environment) {
|
|
|
395
397
|
const convex = parseOrigin(deployment.url, "NEXT_PUBLIC_ACCOUNTS_CONVEX_URL");
|
|
396
398
|
const loopback = [site, convex, convexSite].map((url) => LOOPBACK_HOSTS.has(url.hostname));
|
|
397
399
|
if (loopback.every(Boolean)) {
|
|
398
|
-
if (consumer === "aicharts") {
|
|
399
|
-
throw new Error("AI Charts authentication requires its registered production origin.");
|
|
400
|
-
}
|
|
401
400
|
if (deployment.transport !== "local" || site.hostname !== convex.hostname || site.hostname !== convexSite.hostname) {
|
|
402
401
|
throw new Error("Local consumer and Accounts endpoints must use the same loopback host.");
|
|
403
402
|
}
|
package/dist/registry.js
CHANGED
|
@@ -152,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
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.20"},"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":72027,"path":"dist/profile-form.js","sha256":"c5879ae36fb2779677ee4a553b1e606624f07ee30ffc0454fbfe0bac0284c619"}],"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,13 +152,13 @@ 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",
|
|
159
158
|
"ghostget",
|
|
160
159
|
"alt",
|
|
161
|
-
"algal"
|
|
160
|
+
"algal",
|
|
161
|
+
"textmock"
|
|
162
162
|
]);
|
|
163
163
|
function currentOidcSite(id, displayName, productionSiteUrl) {
|
|
164
164
|
return {
|
|
@@ -177,13 +177,13 @@ var SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
177
177
|
"oh-computer": SUITE_ACCOUNTS_CONSUMERS["oh-computer"],
|
|
178
178
|
sponge: currentOidcSite("sponge", "Sponge", SUITE_ACCOUNTS_CURRENT_ORIGIN_OVERRIDES.sponge.production.siteUrl),
|
|
179
179
|
peopleblade: currentOidcSite("peopleblade", "PeopleBlade", "https://peopleblade.com"),
|
|
180
|
-
aicharts: currentOidcSite("aicharts", "AI Charts", "https://aicharts.io"),
|
|
181
180
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
182
181
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
183
182
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
184
183
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
185
184
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
186
|
-
algal: currentOidcSite("algal", "Algal", "https://algal.cloud")
|
|
185
|
+
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
186
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com")
|
|
187
187
|
});
|
|
188
188
|
var SUITE_ACCOUNTS_ACTIVE_CONSUMER_IDS = deepFreeze([
|
|
189
189
|
"accounts",
|
|
@@ -211,7 +211,6 @@ var SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS = deepFreeze([
|
|
|
211
211
|
"oh-computer",
|
|
212
212
|
"sponge",
|
|
213
213
|
"peopleblade",
|
|
214
|
-
"aicharts",
|
|
215
214
|
"hraness",
|
|
216
215
|
"soulscrape",
|
|
217
216
|
"platonik",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hraness/suite-accounts",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.22",
|
|
4
4
|
"description": "Validated client and protocol boundaries for Hraness Accounts.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -195,16 +195,18 @@
|
|
|
195
195
|
"LICENSE"
|
|
196
196
|
],
|
|
197
197
|
"scripts": {
|
|
198
|
-
"kb:refresh": "bunx --bun github
|
|
199
|
-
"kb:check:lane": "bunx --bun github
|
|
200
|
-
"kb:check": "bunx --bun github
|
|
201
|
-
"kb:catalog": "bunx --bun github
|
|
198
|
+
"kb:refresh": "bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.0/hraness-wordcell-0.24.0.tgz wordcell refresh --root kb",
|
|
199
|
+
"kb:check:lane": "bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.0/hraness-wordcell-0.24.0.tgz wordcell check --root kb --no-catalog",
|
|
200
|
+
"kb:check": "bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.0/hraness-wordcell-0.24.0.tgz wordcell check --root kb && bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.0/hraness-wordcell-0.24.0.tgz wordcell agents check --root kb --repo .",
|
|
201
|
+
"kb:catalog": "bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.0/hraness-wordcell-0.24.0.tgz wordcell catalog --root kb",
|
|
202
|
+
"kb:search": "bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.0/hraness-wordcell-0.24.0.tgz wordcell search --root kb --mode exact --selected-passage",
|
|
202
203
|
"build": "bun run ./scripts/build.ts",
|
|
203
204
|
"lint": "eslint src scripts",
|
|
204
205
|
"typecheck": "tsc --noEmit",
|
|
205
206
|
"test": "bun test --preload ./scripts/register-stylex-test-transform.ts ./src",
|
|
206
207
|
"test:property": "bun test ./src/*.property.test.ts ./src/identity/*.property.test.ts",
|
|
207
208
|
"test:package": "bun run ./scripts/package-smoke.ts",
|
|
209
|
+
"browser:install": "bun x --no-install playwright-core install --with-deps chromium",
|
|
208
210
|
"test:browser": "bun run test:browser:profile && bun run test:browser:public-profile && bun run test:browser:oidc",
|
|
209
211
|
"test:browser:oidc": "bun run ./scripts/oidc-navigation-browser.ts",
|
|
210
212
|
"test:browser:profile": "bun run ./scripts/profile-form-browser.ts",
|
package/portfolio-inventory.json
CHANGED
package/src/public-config.ts
CHANGED
|
@@ -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,13 +220,13 @@ 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",
|
|
227
226
|
"ghostget",
|
|
228
227
|
"alt",
|
|
229
228
|
"algal",
|
|
229
|
+
"textmock",
|
|
230
230
|
] as const);
|
|
231
231
|
|
|
232
232
|
export type SuiteAccountsCurrentConsumerId =
|
|
@@ -276,17 +276,13 @@ export const SUITE_ACCOUNTS_CURRENT_CONSUMERS = deepFreeze({
|
|
|
276
276
|
"PeopleBlade",
|
|
277
277
|
"https://peopleblade.com",
|
|
278
278
|
),
|
|
279
|
-
aicharts: currentOidcSite(
|
|
280
|
-
"aicharts",
|
|
281
|
-
"AI Charts",
|
|
282
|
-
"https://aicharts.io",
|
|
283
|
-
),
|
|
284
279
|
hraness: currentOidcSite("hraness", "Hraness", "https://hraness.com"),
|
|
285
280
|
soulscrape: currentOidcSite("soulscrape", "Soulscrape", "https://soulscrape.com"),
|
|
286
281
|
platonik: currentOidcSite("platonik", "Platonik", "https://platonik.space"),
|
|
287
282
|
ghostget: currentOidcSite("ghostget", "Ghostget", "https://ghostget.com"),
|
|
288
283
|
alt: currentOidcSite("alt", "Alt", "https://alt.dog"),
|
|
289
284
|
algal: currentOidcSite("algal", "Algal", "https://algal.cloud"),
|
|
285
|
+
textmock: currentOidcSite("textmock", "Textmock", "https://textmock.com"),
|
|
290
286
|
} as const satisfies Readonly<
|
|
291
287
|
Record<
|
|
292
288
|
SuiteAccountsCurrentConsumerId,
|
|
@@ -391,7 +387,6 @@ export const SUITE_ACCOUNTS_CURRENT_BROWSER_DEVICE_CODE_CONSUMER_IDS =
|
|
|
391
387
|
"oh-computer",
|
|
392
388
|
"sponge",
|
|
393
389
|
"peopleblade",
|
|
394
|
-
"aicharts",
|
|
395
390
|
"hraness",
|
|
396
391
|
"soulscrape",
|
|
397
392
|
"platonik",
|