@atlasauth/capacitor 0.1.0 → 0.1.1
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/CHANGELOG.md +19 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/native-session.js +7 -1
- package/dist/native-session.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# @atlasauth/capacitor changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.1
|
|
4
|
+
- **`frontendApi` is validated at `createAtlasCapacitor()`.** A missing, empty or malformed value now throws an
|
|
5
|
+
`AtlasConfigError` (from `@atlasauth/js`; `code: 'FRONTEND_API_REQUIRED'` or `'FRONTEND_API_INVALID'`)
|
|
6
|
+
instead of silently sending requests to relative URLs on the app's own origin. Accepted: an absolute
|
|
7
|
+
`https:` URL (`http:` only for localhost / local development hosts). Native apps have no origin of their own, so `"same-origin"` is refused. A trailing slash is now normalised away.
|
|
8
|
+
|
|
9
|
+
## 0.1.0
|
|
10
|
+
|
|
11
|
+
First published release.
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
- `createAtlasCapacitor()` sets up native sign-in for Capacitor / Ionic apps on iOS, Android and web.
|
|
15
|
+
- System-browser sign-in with deep-link callback and PKCE: `signInWithBrowser()`, `completeRedirectSignIn()`, `buildAuthorizeUrl()`, `parseAuthCallback()`, `redeemAuthorizationCode()`, `exchangeAuthCode()`.
|
|
16
|
+
- Cookie-free native session that auto-refreshes and persists: `createNativeSessionManager()`, `clearNativeSession()`, plus re-exported `NativeSessionManager`, `exchangeForSession`, `refreshNativeSession`.
|
|
17
|
+
- Token stores: `createPreferencesTokenStore()` (backed by `@capacitor/preferences`) and `createInMemoryTokenStore()`.
|
|
18
|
+
- PKCE helpers `createPkcePair()` and `createState()`.
|
|
19
|
+
- `loadCapacitorPlugins()` / `isNativePlatform()`; all `@capacitor/*` plugins are optional peers with graceful fallback.
|
package/dist/index.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* (the sign-in flow, the token store, the PKCE helpers) is exposed for apps that
|
|
17
17
|
* want to drive the pieces themselves.
|
|
18
18
|
*/
|
|
19
|
-
import type
|
|
19
|
+
import { type NativeSession, type NativeSessionManager } from '@atlasauth/js';
|
|
20
20
|
import { type CapacitorPlugins } from './plugins';
|
|
21
21
|
import { type SignInOutcome } from './sign-in';
|
|
22
22
|
import { type TokenStore } from './token-store';
|
package/dist/index.js
CHANGED
|
@@ -34,6 +34,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
35
|
exports.refreshNativeSession = exports.exchangeForSession = exports.NativeSessionManager = exports.clearNativeSession = exports.createNativeSessionManager = void 0;
|
|
36
36
|
exports.createAtlasCapacitor = createAtlasCapacitor;
|
|
37
|
+
const js_1 = require("@atlasauth/js");
|
|
37
38
|
const plugins_1 = require("./plugins");
|
|
38
39
|
const sign_in_1 = require("./sign-in");
|
|
39
40
|
const token_store_1 = require("./token-store");
|
|
@@ -59,6 +60,14 @@ const native_session_1 = require("./native-session");
|
|
|
59
60
|
* ```
|
|
60
61
|
*/
|
|
61
62
|
async function createAtlasCapacitor(config) {
|
|
63
|
+
// Validated (and normalised — no trailing slash) before anything else: a
|
|
64
|
+
// missing value, "same-origin" or a bare path throws an `AtlasConfigError`.
|
|
65
|
+
// The OAuth URLs below are built from it, and a native app has no origin of
|
|
66
|
+
// its own to resolve a relative one against.
|
|
67
|
+
const frontendApi = (0, js_1.resolveFrontendApi)(config.frontendApi, {
|
|
68
|
+
component: 'createAtlasCapacitor()',
|
|
69
|
+
allowSameOrigin: false,
|
|
70
|
+
});
|
|
62
71
|
const plugins = config.plugins ?? (await (0, plugins_1.loadCapacitorPlugins)());
|
|
63
72
|
const storage = config.storage ??
|
|
64
73
|
(plugins.Preferences
|
|
@@ -69,7 +78,7 @@ async function createAtlasCapacitor(config) {
|
|
|
69
78
|
? (0, token_store_1.createPreferencesTokenStore)(plugins.Preferences, sign_in_1.PKCE_STASH_KEY)
|
|
70
79
|
: (0, token_store_1.createInMemoryTokenStore)());
|
|
71
80
|
const manager = await (0, native_session_1.createNativeSessionManager)({
|
|
72
|
-
frontendApi
|
|
81
|
+
frontendApi,
|
|
73
82
|
publishableKey: config.publishableKey,
|
|
74
83
|
clientId: config.clientId,
|
|
75
84
|
storage,
|
|
@@ -87,7 +96,7 @@ async function createAtlasCapacitor(config) {
|
|
|
87
96
|
const clientId = requireString(options.clientId ?? config.clientId, 'clientId');
|
|
88
97
|
const redirectUri = requireString(options.redirectUri ?? config.redirectUri, 'redirectUri');
|
|
89
98
|
const outcome = await (0, sign_in_1.signInWithBrowser)({
|
|
90
|
-
frontendApi
|
|
99
|
+
frontendApi,
|
|
91
100
|
clientId,
|
|
92
101
|
redirectUri,
|
|
93
102
|
scope: options.scope ?? config.scope,
|
|
@@ -112,7 +121,7 @@ async function createAtlasCapacitor(config) {
|
|
|
112
121
|
const clientId = requireString(config.clientId, 'clientId');
|
|
113
122
|
const redirectUri = requireString(config.redirectUri, 'redirectUri');
|
|
114
123
|
const session = await (0, sign_in_1.completeRedirectSignIn)({
|
|
115
|
-
frontendApi
|
|
124
|
+
frontendApi,
|
|
116
125
|
clientId,
|
|
117
126
|
redirectUri,
|
|
118
127
|
url: landingUrl,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;AAiHH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/native-session.js
CHANGED
|
@@ -28,10 +28,16 @@ const token_store_1 = require("./token-store");
|
|
|
28
28
|
* store via the manager's `persist` hook.
|
|
29
29
|
*/
|
|
30
30
|
async function createNativeSessionManager(config) {
|
|
31
|
+
// A native app has no origin of its own, so "same-origin" / a bare path is
|
|
32
|
+
// refused along with a missing value.
|
|
33
|
+
const baseUrl = (0, js_1.resolveFrontendApi)(config.frontendApi, {
|
|
34
|
+
component: 'createNativeSessionManager()',
|
|
35
|
+
allowSameOrigin: false,
|
|
36
|
+
});
|
|
31
37
|
const storage = config.storage ?? (0, token_store_1.createInMemoryTokenStore)();
|
|
32
38
|
const initial = (0, js_1.parseNativeSession)(await storage.getToken()) ?? undefined;
|
|
33
39
|
return new js_1.NativeSessionManager({
|
|
34
|
-
baseUrl
|
|
40
|
+
baseUrl,
|
|
35
41
|
publishableKey: config.publishableKey,
|
|
36
42
|
clientId: config.clientId,
|
|
37
43
|
initial,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-session.js","sourceRoot":"","sources":["../src/native-session.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;
|
|
1
|
+
{"version":3,"file":"native-session.js","sourceRoot":"","sources":["../src/native-session.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAsCH,gEA4BC;AAGD,gDAEC;AArED,sCAMuB;AACvB,+CAA0E;AAqB1E;;;;;;;GAOG;AACI,KAAK,UAAU,0BAA0B,CAC9C,MAA2B;IAE3B,2EAA2E;IAC3E,sCAAsC;IACtC,MAAM,OAAO,GAAG,IAAA,uBAAkB,EAAC,MAAM,CAAC,WAAW,EAAE;QACrD,SAAS,EAAE,8BAA8B;QACzC,eAAe,EAAE,KAAK;KACvB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAA,sCAAwB,GAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAA,uBAAkB,EAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,SAAS,CAAC;IAE1E,OAAO,IAAI,yBAAoB,CAAC;QAC9B,OAAO;QACP,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO;QACP,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,OAAO,EAAE,CAAC,OAAsB,EAAE,EAAE;YAClC,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAA,2BAAsB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAC3E,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,qDAAqD;AAC9C,KAAK,UAAU,kBAAkB,CAAC,OAAmB;IAC1D,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC;AAED,oCAKuB;AAJrB,0GAAA,oBAAoB,OAAA;AACpB,wGAAA,kBAAkB,OAAA;AAClB,0GAAA,oBAAoB,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlasauth/capacitor",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"./package.json": "./package.json"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@atlasauth/js": "0.
|
|
14
|
+
"@atlasauth/js": "0.6.0"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@capacitor/core": ">=6",
|
|
@@ -46,7 +46,8 @@
|
|
|
46
46
|
},
|
|
47
47
|
"files": [
|
|
48
48
|
"dist",
|
|
49
|
-
"README.md"
|
|
49
|
+
"README.md",
|
|
50
|
+
"CHANGELOG.md"
|
|
50
51
|
],
|
|
51
52
|
"scripts": {
|
|
52
53
|
"build": "tsc -p tsconfig.build.json",
|