@outfoxx/sunday 2.0.0-beta.10 → 2.0.0-beta.11
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 +30 -0
- package/build/client-settings.d.ts +3 -2
- package/build/client-settings.js +9 -6
- package/build/client-settings.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/token-manager-factory.d.ts +9 -0
- package/build/token-manager-factory.js +15 -0
- package/build/token-manager-factory.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -101,3 +101,33 @@ Event sources close on this error, and event stream iterators reject instead of
|
|
|
101
101
|
undefined `id` produces `/items`. An empty collection is undefined; a list containing
|
|
102
102
|
an empty string has a defined member. Per-call values override stored template parameters,
|
|
103
103
|
including explicit null or undefined values that remove a stored value for that expansion.
|
|
104
|
+
|
|
105
|
+
## Application-owned token persistence
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
const settings = ClientSettings.resolve(baseUrl, alternatives, credentials, {}, {},
|
|
109
|
+
providers => new TokenManager(providers, {
|
|
110
|
+
store: applicationStore, expirySkewMs: 30_000, now: applicationClock,
|
|
111
|
+
}));
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
The same optional `TokenManagerFactory` is the fourth constructor argument. The last two resolver
|
|
115
|
+
arguments before it are scheme selections and alternative-index selections. Clock values and expiry
|
|
116
|
+
skew are milliseconds. The native manager has no close/reset method: cancel application requests with
|
|
117
|
+
their abort signals, await completion, and discard the manager at session end. The factory does not
|
|
118
|
+
change cancellation behavior or take ownership of application resources.
|
|
119
|
+
|
|
120
|
+
The hook is invoked once with the resolved provider map, after security validation, and is skipped
|
|
121
|
+
when no providers are selected. It must only construct a manager: do not acquire tokens or read
|
|
122
|
+
storage in the hook. Omitting it keeps the existing in-memory default. Settings retain the returned
|
|
123
|
+
manager, not the factory. All operations on those settings share it; generated aggregate children
|
|
124
|
+
therefore retain the same cache and single-flight renewal. Independently created managers do not
|
|
125
|
+
coordinate concurrent refreshes, even if their stores are the same. Reuse a client/aggregate within
|
|
126
|
+
an active session; use successive managers to reopen saved sessions.
|
|
127
|
+
|
|
128
|
+
The application owns persistence, encryption, store access and session boundaries. Provider/client,
|
|
129
|
+
grant, profile and endpoint identities must distinguish environments and users; the API base URL
|
|
130
|
+
alone is not an implicit store namespace. Use a new grant identity for a fresh authorization session.
|
|
131
|
+
For logout, stop requests and wait for pending refresh/persistence to finish before removing the
|
|
132
|
+
session's store entries, then construct fresh settings. `invalidate` expires an access token for
|
|
133
|
+
renewal; it is not logout and deliberately retains refresh state. No disk storage is enabled automatically.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Credentials } from './credentials.js';
|
|
2
2
|
import { SecurityBinding } from './security-binding.js';
|
|
3
3
|
import { TokenManager } from './token-manager.js';
|
|
4
|
+
import { TokenManagerFactory } from './token-manager-factory.js';
|
|
4
5
|
/** Resolved, transport-independent inputs supplied to an application's transport factory. */
|
|
5
6
|
export declare class ClientSettings {
|
|
6
7
|
#private;
|
|
@@ -9,14 +10,14 @@ export declare class ClientSettings {
|
|
|
9
10
|
readonly tokenManager: TokenManager | undefined;
|
|
10
11
|
readonly bindings: Readonly<Record<string, readonly SecurityBinding[]>>;
|
|
11
12
|
/** Snapshots operation bindings and credentials without acquiring tokens or making requests. */
|
|
12
|
-
constructor(baseUrl: string, bindings?: Readonly<Record<string, readonly SecurityBinding[]>>, credentials?: Readonly<Record<string, Credentials
|
|
13
|
+
constructor(baseUrl: string, bindings?: Readonly<Record<string, readonly SecurityBinding[]>>, credentials?: Readonly<Record<string, Credentials>>, tokenManagerFactory?: TokenManagerFactory);
|
|
13
14
|
/** Expands server variables once and resolves relative servers against their document location. */
|
|
14
15
|
static serverUrl(template: string, variables: Readonly<Record<string, string>>, documentBaseUrl?: string): string;
|
|
15
16
|
/**
|
|
16
17
|
* Chooses one complete alternative per operation using credentials and optional explicit scheme sets.
|
|
17
18
|
* `alternativeSelection` selects a zero-based candidate index, including its scopes and endpoint metadata.
|
|
18
19
|
*/
|
|
19
|
-
static resolve(baseUrl: string, alternatives: Readonly<Record<string, readonly (readonly SecurityBinding[])[]>>, credentials: Readonly<Record<string, Credentials>>, selection?: Readonly<Record<string, readonly string[]>>, alternativeSelection?: Readonly<Record<string, number
|
|
20
|
+
static resolve(baseUrl: string, alternatives: Readonly<Record<string, readonly (readonly SecurityBinding[])[]>>, credentials: Readonly<Record<string, Credentials>>, selection?: Readonly<Record<string, readonly string[]>>, alternativeSelection?: Readonly<Record<string, number>>, tokenManagerFactory?: TokenManagerFactory): ClientSettings;
|
|
20
21
|
private prepareTokenManager;
|
|
21
22
|
private prepareProvider;
|
|
22
23
|
}
|
package/build/client-settings.js
CHANGED
|
@@ -21,7 +21,7 @@ export class ClientSettings {
|
|
|
21
21
|
bindings;
|
|
22
22
|
#credentials;
|
|
23
23
|
/** Snapshots operation bindings and credentials without acquiring tokens or making requests. */
|
|
24
|
-
constructor(baseUrl, bindings = {}, credentials = {}) {
|
|
24
|
+
constructor(baseUrl, bindings = {}, credentials = {}, tokenManagerFactory) {
|
|
25
25
|
const url = new URL(baseUrl);
|
|
26
26
|
if (!['https:', 'http:'].includes(url.protocol) || url.username || url.password || url.href.includes('?') || url.href.includes('#'))
|
|
27
27
|
throw new TypeError('Client endpoint must be HTTP or HTTPS');
|
|
@@ -52,7 +52,7 @@ export class ClientSettings {
|
|
|
52
52
|
throw new TypeError(`Missing credentials for scheme '${binding.scheme}'`);
|
|
53
53
|
validateCredentials(credential, binding);
|
|
54
54
|
}
|
|
55
|
-
this.tokenManager = this.prepareTokenManager();
|
|
55
|
+
this.tokenManager = this.prepareTokenManager(tokenManagerFactory);
|
|
56
56
|
Object.freeze(this);
|
|
57
57
|
}
|
|
58
58
|
/** Expands server variables once and resolves relative servers against their document location. */
|
|
@@ -72,7 +72,7 @@ export class ClientSettings {
|
|
|
72
72
|
* Chooses one complete alternative per operation using credentials and optional explicit scheme sets.
|
|
73
73
|
* `alternativeSelection` selects a zero-based candidate index, including its scopes and endpoint metadata.
|
|
74
74
|
*/
|
|
75
|
-
static resolve(baseUrl, alternatives, credentials, selection = {}, alternativeSelection = {}) {
|
|
75
|
+
static resolve(baseUrl, alternatives, credentials, selection = {}, alternativeSelection = {}, tokenManagerFactory) {
|
|
76
76
|
if ([...Object.keys(selection), ...Object.keys(alternativeSelection)].some(operation => !Object.hasOwn(alternatives, operation))) {
|
|
77
77
|
throw new TypeError('Unknown operation selection');
|
|
78
78
|
}
|
|
@@ -102,9 +102,9 @@ export class ClientSettings {
|
|
|
102
102
|
throw new TypeError(`Operation '${operation}' requires one complete security alternative`);
|
|
103
103
|
bindings[operation] = usable[0];
|
|
104
104
|
}
|
|
105
|
-
return new ClientSettings(baseUrl, bindings, credentials);
|
|
105
|
+
return new ClientSettings(baseUrl, bindings, credentials, tokenManagerFactory);
|
|
106
106
|
}
|
|
107
|
-
prepareTokenManager() {
|
|
107
|
+
prepareTokenManager(factory) {
|
|
108
108
|
const providers = new Map();
|
|
109
109
|
const owners = new Map();
|
|
110
110
|
for (const binding of Object.values(this.bindings).flat()) {
|
|
@@ -117,7 +117,10 @@ export class ClientSettings {
|
|
|
117
117
|
owners.set(binding.provider, binding.scheme);
|
|
118
118
|
providers.set(binding.provider, this.prepareProvider(this.#credentials.get(binding.scheme)));
|
|
119
119
|
}
|
|
120
|
-
|
|
120
|
+
if (!providers.size)
|
|
121
|
+
return undefined;
|
|
122
|
+
const resolved = Object.freeze(Object.fromEntries(providers));
|
|
123
|
+
return factory ? factory(resolved) : new TokenManager(resolved);
|
|
121
124
|
}
|
|
122
125
|
prepareProvider(credentials) {
|
|
123
126
|
if (credentials.kind === 'provider')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-settings.js","sourceRoot":"","sources":["../src/client-settings.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAe,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"client-settings.js","sourceRoot":"","sources":["../src/client-settings.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export * from './util/nullify.js';
|
|
|
32
32
|
export * from './security-binding.js';
|
|
33
33
|
export * from './token-provider.js';
|
|
34
34
|
export * from './token-manager.js';
|
|
35
|
+
export * from './token-manager-factory.js';
|
|
35
36
|
export * from './fetch-oauth-token-provider.js';
|
|
36
37
|
export * from './request-validation-error.js';
|
|
37
38
|
export * from './credentials.js';
|
package/build/index.js
CHANGED
|
@@ -46,6 +46,7 @@ export * from './util/nullify.js';
|
|
|
46
46
|
export * from './security-binding.js';
|
|
47
47
|
export * from './token-provider.js';
|
|
48
48
|
export * from './token-manager.js';
|
|
49
|
+
export * from './token-manager-factory.js';
|
|
49
50
|
export * from './fetch-oauth-token-provider.js';
|
|
50
51
|
export * from './request-validation-error.js';
|
|
51
52
|
export * from './credentials.js';
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AAEtC,2BAA2B;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAElC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AAEtC,2BAA2B;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAElC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,+BAA+B,CAAC;AAE9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TokenManager } from './token-manager.js';
|
|
2
|
+
import { TokenProvider } from './token-provider.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a manager from resolved providers without token acquisition or storage I/O.
|
|
5
|
+
* Supply the native manager's store, expirySkewMs and now options here.
|
|
6
|
+
* Called once for secured settings and never when there are no selected providers.
|
|
7
|
+
* The application owns the returned manager and its store/session lifecycle.
|
|
8
|
+
*/
|
|
9
|
+
export type TokenManagerFactory = (providers: Readonly<Record<string, TokenProvider>>) => TokenManager;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=token-manager-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-manager-factory.js","sourceRoot":"","sources":["../src/token-manager-factory.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC"}
|