@portaidentity/sdk 1.7.3 → 1.9.0

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.
Files changed (116) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +70 -41
  3. package/dist/agent.d.ts +15 -1
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +473 -69
  6. package/dist/agent.js.map +1 -1
  7. package/dist/auth/cli-auth.d.ts +45 -71
  8. package/dist/auth/cli-auth.d.ts.map +1 -1
  9. package/dist/auth/cli-auth.js +208 -144
  10. package/dist/auth/cli-auth.js.map +1 -1
  11. package/dist/auth/index.d.ts +1 -1
  12. package/dist/auth/index.d.ts.map +1 -1
  13. package/dist/domains/applications.d.ts +22 -3
  14. package/dist/domains/applications.d.ts.map +1 -1
  15. package/dist/domains/applications.js +90 -20
  16. package/dist/domains/applications.js.map +1 -1
  17. package/dist/domains/branding.d.ts +47 -16
  18. package/dist/domains/branding.d.ts.map +1 -1
  19. package/dist/domains/branding.js +28 -5
  20. package/dist/domains/branding.js.map +1 -1
  21. package/dist/domains/clients.d.ts +23 -6
  22. package/dist/domains/clients.d.ts.map +1 -1
  23. package/dist/domains/clients.js +122 -21
  24. package/dist/domains/clients.js.map +1 -1
  25. package/dist/domains/config.d.ts +20 -3
  26. package/dist/domains/config.d.ts.map +1 -1
  27. package/dist/domains/config.js +30 -3
  28. package/dist/domains/config.js.map +1 -1
  29. package/dist/domains/custom-claims.d.ts +2 -1
  30. package/dist/domains/custom-claims.d.ts.map +1 -1
  31. package/dist/domains/custom-claims.js +2 -2
  32. package/dist/domains/custom-claims.js.map +1 -1
  33. package/dist/domains/exports.d.ts +6 -1
  34. package/dist/domains/exports.d.ts.map +1 -1
  35. package/dist/domains/exports.js +27 -1
  36. package/dist/domains/exports.js.map +1 -1
  37. package/dist/domains/helpers.d.ts +31 -0
  38. package/dist/domains/helpers.d.ts.map +1 -1
  39. package/dist/domains/helpers.js +72 -1
  40. package/dist/domains/helpers.js.map +1 -1
  41. package/dist/domains/imports.d.ts +8 -7
  42. package/dist/domains/imports.d.ts.map +1 -1
  43. package/dist/domains/imports.js +158 -14
  44. package/dist/domains/imports.js.map +1 -1
  45. package/dist/domains/index.d.ts +1 -1
  46. package/dist/domains/index.d.ts.map +1 -1
  47. package/dist/domains/organizations.d.ts +2 -9
  48. package/dist/domains/organizations.d.ts.map +1 -1
  49. package/dist/domains/organizations.js +2 -13
  50. package/dist/domains/organizations.js.map +1 -1
  51. package/dist/domains/permissions.d.ts +22 -4
  52. package/dist/domains/permissions.d.ts.map +1 -1
  53. package/dist/domains/permissions.js +47 -13
  54. package/dist/domains/permissions.js.map +1 -1
  55. package/dist/domains/roles.d.ts +26 -16
  56. package/dist/domains/roles.d.ts.map +1 -1
  57. package/dist/domains/roles.js +61 -31
  58. package/dist/domains/roles.js.map +1 -1
  59. package/dist/domains/user-roles.d.ts +9 -4
  60. package/dist/domains/user-roles.d.ts.map +1 -1
  61. package/dist/domains/user-roles.js +32 -6
  62. package/dist/domains/user-roles.js.map +1 -1
  63. package/dist/domains/users.d.ts +31 -26
  64. package/dist/domains/users.d.ts.map +1 -1
  65. package/dist/domains/users.js +56 -46
  66. package/dist/domains/users.js.map +1 -1
  67. package/dist/errors/index.d.ts +2 -0
  68. package/dist/errors/index.d.ts.map +1 -1
  69. package/dist/errors/index.js +18 -1
  70. package/dist/errors/index.js.map +1 -1
  71. package/dist/index.d.ts +1 -1
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/node.d.ts +1 -1
  75. package/dist/node.d.ts.map +1 -1
  76. package/dist/pagination/index.d.ts +5 -1
  77. package/dist/pagination/index.d.ts.map +1 -1
  78. package/dist/pagination/index.js +2 -2
  79. package/dist/pagination/index.js.map +1 -1
  80. package/dist/types/applications.d.ts +27 -6
  81. package/dist/types/applications.d.ts.map +1 -1
  82. package/dist/types/branding.d.ts +38 -11
  83. package/dist/types/branding.d.ts.map +1 -1
  84. package/dist/types/branding.js +0 -5
  85. package/dist/types/branding.js.map +1 -1
  86. package/dist/types/bulk.d.ts +2 -4
  87. package/dist/types/bulk.d.ts.map +1 -1
  88. package/dist/types/clients.d.ts +104 -13
  89. package/dist/types/clients.d.ts.map +1 -1
  90. package/dist/types/common.d.ts +26 -3
  91. package/dist/types/common.d.ts.map +1 -1
  92. package/dist/types/config.d.ts +57 -21
  93. package/dist/types/config.d.ts.map +1 -1
  94. package/dist/types/config.js +1 -8
  95. package/dist/types/config.js.map +1 -1
  96. package/dist/types/exports.d.ts +17 -0
  97. package/dist/types/exports.d.ts.map +1 -1
  98. package/dist/types/imports.d.ts +390 -84
  99. package/dist/types/imports.d.ts.map +1 -1
  100. package/dist/types/imports.js +1 -7
  101. package/dist/types/imports.js.map +1 -1
  102. package/dist/types/index.d.ts +14 -14
  103. package/dist/types/index.d.ts.map +1 -1
  104. package/dist/types/organizations.d.ts +5 -9
  105. package/dist/types/organizations.d.ts.map +1 -1
  106. package/dist/types/permissions.d.ts +21 -6
  107. package/dist/types/permissions.d.ts.map +1 -1
  108. package/dist/types/roles.d.ts +3 -1
  109. package/dist/types/roles.d.ts.map +1 -1
  110. package/dist/types/user-roles.d.ts +4 -10
  111. package/dist/types/user-roles.d.ts.map +1 -1
  112. package/dist/types/users.d.ts +102 -15
  113. package/dist/types/users.d.ts.map +1 -1
  114. package/dist/version.d.ts +1 -1
  115. package/dist/version.js +1 -1
  116. package/package.json +3 -2
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -1,83 +1,57 @@
1
1
  /**
2
- * CliAuth — reuse Porta CLI stored credentials as an authentication provider.
2
+ * Authentication backed by credentials created by the Porta CLI.
3
3
  *
4
- * Reads credentials from `~/.porta/credentials.json` (the file created by
5
- * `porta login`) and uses them for API authentication. Handles token expiry
6
- * detection and automatic refresh via the refresh_token grant.
7
- *
8
- * Key behaviors:
9
- * - Reads credentials file on first `getToken()` call, caches in memory
10
- * - Checks `expiresAt` with 60s safety buffer to detect near-expired tokens
11
- * - `refreshToken()` re-reads the file (CLI may have refreshed) then
12
- * POSTs refresh_token grant to the token endpoint
13
- * - Does NOT write back to the credentials file — only the CLI writes
14
- *
15
- * @example
16
- * ```typescript
17
- * import { createCliAuth } from '@portaidentity/sdk';
18
- *
19
- * // Uses default ~/.porta/credentials.json
20
- * const auth = createCliAuth();
21
- * const client = createPortaClient({ baseUrl: '...', auth });
22
- *
23
- * // Custom path for testing
24
- * const auth2 = createCliAuth({ credentialsPath: '/tmp/test-creds.json' });
25
- * ```
4
+ * The default provider remains memory-only. CLI consumers may opt into a
5
+ * transaction that persists refresh-token rotation before a new access token
6
+ * becomes observable.
26
7
  *
27
8
  * @module auth/cli-auth
28
9
  */
29
10
  import type { AuthProvider } from './types.js';
30
- /**
31
- * Options for creating a CLI auth provider.
32
- */
11
+ /** Consumer-owned persistence hooks for a durable refresh transaction. */
12
+ export interface CliCredentialPersistence {
13
+ /** Runs an operation while holding the consumer's refresh lock. */
14
+ readonly withRefreshLock: <T>(operation: () => Promise<T>) => Promise<T>;
15
+ /** Atomically replaces the previous stored snapshot with the refreshed one. */
16
+ readonly persistRefreshedCredentials: (previous: StoredCredentials, refreshed: StoredCredentials) => Promise<void>;
17
+ }
18
+ /** Options for creating a CLI credential authentication provider. */
33
19
  export interface CliAuthOptions {
34
- /** Path to credentials file (default: '~/.porta/credentials.json') */
35
- credentialsPath?: string;
20
+ /** Path to the credentials file. Defaults to `~/.porta/credentials.json`. */
21
+ readonly credentialsPath?: string;
22
+ /** Optional durable persistence supplied by the CLI. */
23
+ readonly credentialPersistence?: CliCredentialPersistence;
24
+ /** Optional caller-owned cancellation for refresh network requests. */
25
+ readonly signal?: AbortSignal;
36
26
  }
37
- /**
38
- * Shape of the credentials file written by `porta login`.
39
- *
40
- * This matches the `StoredCredentials` interface from the CLI's token-store
41
- * module. The SDK only reads these fields — it never writes them.
42
- */
27
+ /** User identity retained in the CLI credential snapshot. */
28
+ export interface StoredUserInfo {
29
+ /** Stable OIDC subject identifier. */
30
+ readonly sub: string;
31
+ /** Display email accepted during login. */
32
+ readonly email: string;
33
+ /** Optional display name accepted during login. */
34
+ readonly name?: string;
35
+ }
36
+ /** Credentials written by `porta login` and consumed by the SDK. */
43
37
  export interface StoredCredentials {
44
- /** Porta server URL (e.g., 'https://porta.local:3443') */
45
- server: string;
46
- /** Organization slug for the admin org (e.g., 'porta-admin') */
47
- orgSlug: string;
48
- /** OIDC client_id used for the login flow */
49
- clientId: string;
50
- /** JWT access token for API requests */
51
- accessToken: string;
52
- /** Refresh token for obtaining new access tokens */
53
- refreshToken: string;
54
- /** OIDC ID token containing user identity claims */
55
- idToken: string;
56
- /** ISO 8601 datetime when the access token expires */
57
- expiresAt: string;
58
- /** Decoded user identity from the ID token */
59
- userInfo: {
60
- /** OIDC subject identifier (user ID) */
61
- sub: string;
62
- /** User email address */
63
- email: string;
64
- /** User display name */
65
- name?: string;
66
- };
38
+ /** Porta server origin. */
39
+ readonly server: string;
40
+ /** Organization slug used by the CLI client. */
41
+ readonly orgSlug: string;
42
+ /** Public OIDC client identifier. */
43
+ readonly clientId: string;
44
+ /** Current bearer access token. */
45
+ readonly accessToken: string;
46
+ /** Optional refresh token; omission means interactive login is required. */
47
+ readonly refreshToken?: string;
48
+ /** Last validated ID token. */
49
+ readonly idToken: string;
50
+ /** ISO timestamp at which the access token expires. */
51
+ readonly expiresAt: string;
52
+ /** Last validated display identity. */
53
+ readonly userInfo: StoredUserInfo;
67
54
  }
68
- /**
69
- * Creates a CLI credentials authentication provider.
70
- *
71
- * Returns an {@link AuthProvider} that reads the Porta CLI's stored
72
- * credentials file and uses them for API authentication. The provider
73
- * caches credentials in memory and handles token refresh transparently.
74
- *
75
- * **Important:** This provider does NOT write back to the credentials file.
76
- * Only the CLI (`porta login`, `porta logout`) manages the file. The SDK
77
- * refreshes tokens in-memory only.
78
- *
79
- * @param options - Optional configuration (credentials file path)
80
- * @returns An AuthProvider backed by CLI stored credentials
81
- */
55
+ /** Creates an authentication provider over the Porta CLI credential file. */
82
56
  export declare function createCliAuth(options?: CliAuthOptions): AuthProvider;
83
57
  //# sourceMappingURL=cli-auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-auth.d.ts","sourceRoot":"","sources":["../../src/auth/cli-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAO/C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE;QACR,wCAAwC;QACxC,GAAG,EAAE,MAAM,CAAC;QACZ,yBAAyB;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,wBAAwB;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AA8BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,YAAY,CAkJxE"}
1
+ {"version":3,"file":"cli-auth.d.ts","sourceRoot":"","sources":["../../src/auth/cli-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,0EAA0E;AAC1E,MAAM,WAAW,wBAAwB;IACvC,mEAAmE;IACnE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,+EAA+E;IAC/E,QAAQ,CAAC,2BAA2B,EAAE,CACpC,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,iBAAiB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,wDAAwD;IACxD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,wBAAwB,CAAC;IAC1D,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AA6HD,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,YAAY,CAmKxE"}
@@ -1,187 +1,251 @@
1
1
  /**
2
- * CliAuth — reuse Porta CLI stored credentials as an authentication provider.
2
+ * Authentication backed by credentials created by the Porta CLI.
3
3
  *
4
- * Reads credentials from `~/.porta/credentials.json` (the file created by
5
- * `porta login`) and uses them for API authentication. Handles token expiry
6
- * detection and automatic refresh via the refresh_token grant.
7
- *
8
- * Key behaviors:
9
- * - Reads credentials file on first `getToken()` call, caches in memory
10
- * - Checks `expiresAt` with 60s safety buffer to detect near-expired tokens
11
- * - `refreshToken()` re-reads the file (CLI may have refreshed) then
12
- * POSTs refresh_token grant to the token endpoint
13
- * - Does NOT write back to the credentials file — only the CLI writes
14
- *
15
- * @example
16
- * ```typescript
17
- * import { createCliAuth } from '@portaidentity/sdk';
18
- *
19
- * // Uses default ~/.porta/credentials.json
20
- * const auth = createCliAuth();
21
- * const client = createPortaClient({ baseUrl: '...', auth });
22
- *
23
- * // Custom path for testing
24
- * const auth2 = createCliAuth({ credentialsPath: '/tmp/test-creds.json' });
25
- * ```
4
+ * The default provider remains memory-only. CLI consumers may opt into a
5
+ * transaction that persists refresh-token rotation before a new access token
6
+ * becomes observable.
26
7
  *
27
8
  * @module auth/cli-auth
28
9
  */
29
10
  import { readFile } from 'node:fs/promises';
30
- import { join } from 'node:path';
31
11
  import { homedir } from 'node:os';
12
+ import { join } from 'node:path';
32
13
  import { PortaAuthenticationError } from '../errors/index.js';
33
- // ---------------------------------------------------------------------------
34
- // Constants
35
- // ---------------------------------------------------------------------------
36
- /** Default path to the credentials file */
37
- const DEFAULT_CREDENTIALS_DIR = '.porta';
38
- const DEFAULT_CREDENTIALS_FILE = 'credentials.json';
39
- /**
40
- * Safety buffer (in seconds) for token expiry checks.
41
- * Matches the CLI's 60-second buffer to avoid clock skew issues.
42
- */
43
- const EXPIRY_BUFFER_SECONDS = 60;
44
- // ---------------------------------------------------------------------------
45
- // Factory
46
- // ---------------------------------------------------------------------------
47
- /**
48
- * Creates a CLI credentials authentication provider.
49
- *
50
- * Returns an {@link AuthProvider} that reads the Porta CLI's stored
51
- * credentials file and uses them for API authentication. The provider
52
- * caches credentials in memory and handles token refresh transparently.
53
- *
54
- * **Important:** This provider does NOT write back to the credentials file.
55
- * Only the CLI (`porta login`, `porta logout`) manages the file. The SDK
56
- * refreshes tokens in-memory only.
57
- *
58
- * @param options - Optional configuration (credentials file path)
59
- * @returns An AuthProvider backed by CLI stored credentials
60
- */
14
+ const DEFAULT_CREDENTIALS_PATH = join(homedir(), '.porta', 'credentials.json');
15
+ const EXPIRY_BUFFER_MS = 60_000;
16
+ const ORGANIZATION_SLUG = /^[a-z0-9][a-z0-9-]{1,98}[a-z0-9]$/;
17
+ /** Creates a categorized authentication error without exposing remote detail. */
18
+ function authenticationError(message, code) {
19
+ const error = new PortaAuthenticationError({ message });
20
+ if (code) {
21
+ Object.defineProperty(error, 'code', { configurable: true, enumerable: true, value: code });
22
+ }
23
+ return error;
24
+ }
25
+ /** Returns true when a value is a non-empty string. */
26
+ function isNonEmptyString(value) {
27
+ return typeof value === 'string' && value.length > 0;
28
+ }
29
+ /** Validates untrusted JSON as a complete stored credential snapshot. */
30
+ function parseStoredCredentials(value) {
31
+ if (!value || typeof value !== 'object') {
32
+ throw authenticationError("Invalid credentials: missing required fields. Run 'porta login' again.");
33
+ }
34
+ const candidate = value;
35
+ const userInfo = candidate.userInfo;
36
+ if (!isNonEmptyString(candidate.server) ||
37
+ !isNonEmptyString(candidate.orgSlug) ||
38
+ !ORGANIZATION_SLUG.test(candidate.orgSlug) ||
39
+ !isNonEmptyString(candidate.clientId) ||
40
+ !isNonEmptyString(candidate.accessToken) ||
41
+ (candidate.refreshToken !== undefined && typeof candidate.refreshToken !== 'string') ||
42
+ !isNonEmptyString(candidate.idToken) ||
43
+ !isNonEmptyString(candidate.expiresAt) ||
44
+ Number.isNaN(Date.parse(candidate.expiresAt)) ||
45
+ !userInfo ||
46
+ typeof userInfo !== 'object') {
47
+ throw authenticationError("Invalid credentials: missing required fields. Run 'porta login' again.");
48
+ }
49
+ const identity = userInfo;
50
+ if (!isNonEmptyString(identity.sub) ||
51
+ typeof identity.email !== 'string' ||
52
+ (identity.name !== undefined && typeof identity.name !== 'string')) {
53
+ throw authenticationError("Invalid credentials. Run 'porta login' again.");
54
+ }
55
+ try {
56
+ const server = new URL(candidate.server);
57
+ if (server.protocol !== 'https:' ||
58
+ server.username ||
59
+ server.password ||
60
+ !/^\/*$/.test(server.pathname) ||
61
+ server.search ||
62
+ server.hash) {
63
+ throw new Error('invalid server');
64
+ }
65
+ }
66
+ catch {
67
+ throw authenticationError("Invalid credentials. Run 'porta login' again.");
68
+ }
69
+ return {
70
+ server: candidate.server,
71
+ orgSlug: candidate.orgSlug,
72
+ clientId: candidate.clientId,
73
+ accessToken: candidate.accessToken,
74
+ refreshToken: isNonEmptyString(candidate.refreshToken) ? candidate.refreshToken : undefined,
75
+ idToken: candidate.idToken,
76
+ expiresAt: candidate.expiresAt,
77
+ userInfo: { sub: identity.sub, email: identity.email, name: identity.name },
78
+ };
79
+ }
80
+ /** Validates the security-relevant fields returned by the token endpoint. */
81
+ function parseRefreshResponse(value) {
82
+ if (!value || typeof value !== 'object') {
83
+ throw authenticationError('Token refresh returned an invalid response.');
84
+ }
85
+ const candidate = value;
86
+ if (!isNonEmptyString(candidate.access_token) ||
87
+ (candidate.refresh_token !== undefined && !isNonEmptyString(candidate.refresh_token)) ||
88
+ (candidate.id_token !== undefined && !isNonEmptyString(candidate.id_token)) ||
89
+ (candidate.expires_in !== undefined &&
90
+ (typeof candidate.expires_in !== 'number' ||
91
+ !Number.isFinite(candidate.expires_in) ||
92
+ candidate.expires_in <= 0))) {
93
+ throw authenticationError(candidate.access_token === undefined
94
+ ? 'Token refresh response missing access_token.'
95
+ : 'Token refresh returned an invalid response.');
96
+ }
97
+ return {
98
+ accessToken: candidate.access_token,
99
+ refreshToken: candidate.refresh_token,
100
+ idToken: candidate.id_token,
101
+ expiresIn: candidate.expires_in,
102
+ };
103
+ }
104
+ /** Creates an authentication provider over the Porta CLI credential file. */
61
105
  export function createCliAuth(options = {}) {
62
- const credentialsPath = options.credentialsPath ??
63
- join(homedir(), DEFAULT_CREDENTIALS_DIR, DEFAULT_CREDENTIALS_FILE);
64
- /** In-memory cached credentials — null until first read */
65
- let cached = null;
66
- /**
67
- * Reads and parses the credentials file from disk.
68
- *
69
- * @throws PortaAuthenticationError if file not found or unreadable
70
- */
106
+ const credentialsPath = options.credentialsPath ?? DEFAULT_CREDENTIALS_PATH;
107
+ const persistence = options.credentialPersistence;
108
+ let cached;
109
+ let refreshInFlight;
110
+ let pendingWrite;
111
+ let terminalRefreshFailure;
112
+ /** Latches a post-dispatch failure so a rotated grant is never replayed. */
113
+ function latchRefreshFailure(error) {
114
+ if (!('code' in error)) {
115
+ Object.defineProperty(error, 'code', {
116
+ configurable: true,
117
+ enumerable: true,
118
+ value: 'REFRESH_INDETERMINATE',
119
+ });
120
+ }
121
+ terminalRefreshFailure = error;
122
+ return error;
123
+ }
124
+ /** Reads and validates the latest on-disk credential snapshot. */
71
125
  async function readCredentialsFile() {
72
126
  try {
73
- const content = await readFile(credentialsPath, 'utf-8');
74
- const parsed = JSON.parse(content);
75
- // Validate minimum required fields
76
- if (!parsed.accessToken || !parsed.server || !parsed.orgSlug) {
77
- throw new PortaAuthenticationError({
78
- message: `Invalid credentials file at ${credentialsPath}: missing required fields. Run 'porta login' to re-authenticate.`,
79
- });
80
- }
81
- return parsed;
127
+ return parseStoredCredentials(JSON.parse(await readFile(credentialsPath, 'utf-8')));
82
128
  }
83
129
  catch (error) {
84
- // File not found — user hasn't logged in yet
85
- if (error.code === 'ENOENT') {
86
- throw new PortaAuthenticationError({
87
- message: `Credentials file not found at ${credentialsPath}. Run 'porta login' first.`,
88
- });
89
- }
90
- // Re-throw PortaAuthenticationError (from validation above or nested)
91
- if (error instanceof PortaAuthenticationError) {
130
+ if (error instanceof PortaAuthenticationError)
92
131
  throw error;
132
+ if (error && typeof error === 'object' && 'code' in error && error.code === 'ENOENT') {
133
+ throw authenticationError("Credentials not found. Run 'porta login' first.");
93
134
  }
94
- // JSON parse error or other read failure
95
- throw new PortaAuthenticationError({
96
- message: `Failed to read credentials file at ${credentialsPath}: ${error.message}`,
97
- });
135
+ throw authenticationError("Unable to read credentials. Run 'porta login' again.");
98
136
  }
99
137
  }
100
- /**
101
- * Checks whether the access token is expired or about to expire.
102
- * Uses a 60-second safety buffer matching the CLI's behavior.
103
- */
104
- function isTokenExpired(creds) {
105
- if (!creds.expiresAt)
106
- return false;
107
- const expiresAtMs = new Date(creds.expiresAt).getTime();
108
- return Date.now() >= expiresAtMs - EXPIRY_BUFFER_SECONDS * 1000;
138
+ /** Determines whether a token is expired or within the safety buffer. */
139
+ function isExpired(credentials) {
140
+ return Date.now() >= Date.parse(credentials.expiresAt) - EXPIRY_BUFFER_MS;
109
141
  }
110
- /**
111
- * Refreshes the access token using the refresh_token grant.
112
- *
113
- * POSTs to the OIDC token endpoint (`/{orgSlug}/token`) with
114
- * grant_type=refresh_token. Updates the in-memory cache but does
115
- * NOT write back to the credentials file.
116
- *
117
- * @throws PortaAuthenticationError if refresh fails or missing refresh_token
118
- */
119
- async function refreshWithGrant(creds) {
120
- if (!creds.refreshToken) {
121
- throw new PortaAuthenticationError({
122
- message: "Cannot refresh token: no refresh_token available. Run 'porta login' again.",
123
- });
142
+ /** Dispatches exactly one refresh grant and validates its response. */
143
+ async function dispatchRefresh(previous) {
144
+ if (!previous.refreshToken) {
145
+ throw authenticationError("Cannot refresh token: no refresh_token available. Run 'porta login' again.");
124
146
  }
125
- // Construct token endpoint from server URL and org slug
126
- const tokenUrl = `${creds.server}/${creds.orgSlug}/token`;
127
147
  const body = new URLSearchParams({
128
148
  grant_type: 'refresh_token',
129
- client_id: creds.clientId,
130
- refresh_token: creds.refreshToken,
149
+ client_id: previous.clientId,
150
+ refresh_token: previous.refreshToken,
131
151
  });
132
152
  let response;
133
153
  try {
134
- response = await fetch(tokenUrl, {
154
+ response = await fetch(`${previous.server}/${previous.orgSlug}/token`, {
135
155
  method: 'POST',
136
156
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
137
157
  body: body.toString(),
158
+ signal: options.signal,
138
159
  });
139
160
  }
140
- catch (error) {
141
- throw new PortaAuthenticationError({
142
- message: `Token refresh request failed: ${error.message}. Run 'porta login' again.`,
143
- });
161
+ catch {
162
+ throw latchRefreshFailure(authenticationError("Token refresh outcome is unknown. Run 'porta login' again.", 'REFRESH_INDETERMINATE'));
144
163
  }
145
164
  if (!response.ok) {
146
- throw new PortaAuthenticationError({
147
- message: `Token refresh failed (${response.status}). Run 'porta login' again.`,
148
- });
165
+ throw latchRefreshFailure(authenticationError(`Token refresh was rejected (${response.status}). Run 'porta login' again.`, 'REFRESH_REJECTED'));
149
166
  }
150
- const data = (await response.json());
151
- if (!data.access_token) {
152
- throw new PortaAuthenticationError({
153
- message: "Token refresh response missing access_token. Run 'porta login' again.",
154
- });
167
+ let data;
168
+ try {
169
+ data = await response.json();
155
170
  }
156
- // Update in-memory cache with new tokens (don't write to file)
157
- cached = {
158
- ...creds,
159
- accessToken: data.access_token,
160
- // Preserve existing tokens if server doesn't rotate them
161
- refreshToken: data.refresh_token ?? creds.refreshToken,
162
- idToken: data.id_token ?? creds.idToken,
163
- expiresAt: data.expires_in
164
- ? new Date(Date.now() + data.expires_in * 1000).toISOString()
165
- : creds.expiresAt,
171
+ catch {
172
+ throw latchRefreshFailure(authenticationError('Token refresh returned an invalid response.'));
173
+ }
174
+ let refreshed;
175
+ try {
176
+ refreshed = parseRefreshResponse(data);
177
+ }
178
+ catch (error) {
179
+ throw latchRefreshFailure(error instanceof PortaAuthenticationError
180
+ ? error
181
+ : authenticationError('Token refresh returned an invalid response.'));
182
+ }
183
+ return {
184
+ ...previous,
185
+ accessToken: refreshed.accessToken,
186
+ refreshToken: refreshed.refreshToken ?? previous.refreshToken,
187
+ idToken: refreshed.idToken ?? previous.idToken,
188
+ expiresAt: refreshed.expiresIn
189
+ ? new Date(Date.now() + refreshed.expiresIn * 1000).toISOString()
190
+ : previous.expiresAt,
166
191
  };
167
- return data.access_token;
168
192
  }
169
- return {
170
- async getToken() {
171
- // Read from file on first call
172
- if (!cached) {
173
- cached = await readCredentialsFile();
193
+ /** Commits a durable refresh, retaining a failed write for same-write retry. */
194
+ async function refreshDurably() {
195
+ if (!persistence)
196
+ throw new Error('Durable refresh requires persistence hooks');
197
+ return persistence.withRefreshLock(async () => {
198
+ if (pendingWrite) {
199
+ await persistence.persistRefreshedCredentials(pendingWrite.previous, pendingWrite.refreshed);
200
+ cached = pendingWrite.refreshed;
201
+ pendingWrite = undefined;
202
+ return cached.accessToken;
174
203
  }
175
- // If expired, try to refresh using the refresh_token grant
176
- if (isTokenExpired(cached)) {
177
- return refreshWithGrant(cached);
204
+ if (terminalRefreshFailure)
205
+ throw terminalRefreshFailure;
206
+ const current = await readCredentialsFile();
207
+ if (!isExpired(current)) {
208
+ cached = current;
209
+ return current.accessToken;
178
210
  }
179
- return cached.accessToken;
211
+ const refreshed = await dispatchRefresh(current);
212
+ pendingWrite = { previous: current, refreshed };
213
+ await persistence.persistRefreshedCredentials(current, refreshed);
214
+ pendingWrite = undefined;
215
+ cached = refreshed;
216
+ return refreshed.accessToken;
217
+ });
218
+ }
219
+ /** Coalesces callers onto one immutable refresh transaction. */
220
+ function refreshOnce() {
221
+ if (terminalRefreshFailure)
222
+ return Promise.reject(terminalRefreshFailure);
223
+ if (!refreshInFlight) {
224
+ const operation = persistence
225
+ ? refreshDurably()
226
+ : (async () => {
227
+ const previous = cached ?? (await readCredentialsFile());
228
+ cached = await dispatchRefresh(previous);
229
+ return cached.accessToken;
230
+ })();
231
+ refreshInFlight = operation.finally(() => {
232
+ refreshInFlight = undefined;
233
+ });
234
+ }
235
+ return refreshInFlight;
236
+ }
237
+ return {
238
+ async getToken() {
239
+ if (terminalRefreshFailure)
240
+ throw terminalRefreshFailure;
241
+ cached ??= await readCredentialsFile();
242
+ return isExpired(cached) || pendingWrite ? refreshOnce() : cached.accessToken;
180
243
  },
181
244
  async refreshToken() {
182
- // Re-read from file — the CLI may have refreshed since we last read
245
+ if (terminalRefreshFailure)
246
+ throw terminalRefreshFailure;
183
247
  cached = await readCredentialsFile();
184
- return refreshWithGrant(cached);
248
+ return refreshOnce();
185
249
  },
186
250
  };
187
251
  }