@simple-login/sdk 1.8.1 → 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.
package/dist/browser.cjs CHANGED
@@ -23,7 +23,6 @@ __export(browser_exports, {
23
23
  SimpleLoginBrowser: () => SimpleLoginBrowser
24
24
  });
25
25
  module.exports = __toCommonJS(browser_exports);
26
- var import_meta = {};
27
26
  var PUBLIC_ENV_PREFIXES = [
28
27
  "VITE_",
29
28
  // Vite
@@ -35,19 +34,15 @@ var PUBLIC_ENV_PREFIXES = [
35
34
  // SvelteKit
36
35
  "REACT_APP_",
37
36
  // Create React App
38
- "EXPO_PUBLIC_"
37
+ "EXPO_PUBLIC_",
39
38
  // Expo
39
+ ""
40
+ // No prefix (check last)
40
41
  ];
41
- function getMetaEnvPublic(key) {
42
- try {
43
- const meta = import_meta;
44
- if (!meta.env) return void 0;
45
- for (const prefix of PUBLIC_ENV_PREFIXES) {
46
- const value = meta.env[`${prefix}${key}`];
47
- if (value) return value;
48
- }
49
- return meta.env[key];
50
- } catch {
42
+ function getFromEnv(env, key) {
43
+ for (const prefix of PUBLIC_ENV_PREFIXES) {
44
+ const value = env[`${prefix}${key}`];
45
+ if (value) return value;
51
46
  }
52
47
  return void 0;
53
48
  }
@@ -56,12 +51,13 @@ var SimpleLoginBrowser = class {
56
51
  baseUrl;
57
52
  slug;
58
53
  constructor(config = {}) {
59
- this.clientId = config.clientId ?? getMetaEnvPublic("SIMPLELOGIN_CLIENT_ID") ?? "";
60
- this.slug = config.slug ?? getMetaEnvPublic("SIMPLELOGIN_SLUG") ?? "";
61
- this.baseUrl = config.baseUrl ?? getMetaEnvPublic("SIMPLELOGIN_IDP_URL") ?? "https://app.simple-login.com";
54
+ const env = config.env ?? {};
55
+ this.clientId = config.clientId ?? getFromEnv(env, "SIMPLELOGIN_CLIENT_ID") ?? "";
56
+ this.slug = config.slug ?? getFromEnv(env, "SIMPLELOGIN_SLUG") ?? "";
57
+ this.baseUrl = getFromEnv(env, "SIMPLELOGIN_IDP_URL") ?? "https://app.simple-login.com";
62
58
  if (!this.clientId) {
63
59
  throw new Error(
64
- "clientId is required. Pass it in config or set SIMPLELOGIN_CLIENT_ID env var (with appropriate framework prefix like VITE_, NEXT_PUBLIC_, etc.)."
60
+ "clientId is required. Pass it in config or provide env with SIMPLELOGIN_CLIENT_ID."
65
61
  );
66
62
  }
67
63
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/browser.ts"],"sourcesContent":["declare const __SIMPLELOGIN_BASE_URL__: string\n\nexport interface SimpleLoginBrowserConfig {\n clientId?: string\n baseUrl?: string\n slug?: string\n}\n\nexport interface ProfileUrlOptions {\n redirectUrl: string\n}\n\n// Common framework prefixes for public env vars\nconst PUBLIC_ENV_PREFIXES = [\n 'VITE_', // Vite\n 'NEXT_PUBLIC_', // Next.js\n 'NUXT_PUBLIC_', // Nuxt 3\n 'PUBLIC_', // SvelteKit\n 'REACT_APP_', // Create React App\n 'EXPO_PUBLIC_', // Expo\n]\n\nfunction getMetaEnvPublic(key: string): string | undefined {\n try {\n const meta = import.meta as unknown as { env?: Record<string, string> }\n if (!meta.env) return undefined\n for (const prefix of PUBLIC_ENV_PREFIXES) {\n const value = meta.env[`${prefix}${key}`]\n if (value) return value\n }\n return meta.env[key]\n } catch {\n // import.meta not available\n }\n return undefined\n}\n\nexport class SimpleLoginBrowser {\n private clientId: string\n private baseUrl: string\n private slug: string\n\n constructor(config: SimpleLoginBrowserConfig = {}) {\n this.clientId = config.clientId ?? getMetaEnvPublic('SIMPLELOGIN_CLIENT_ID') ?? ''\n this.slug = config.slug ?? getMetaEnvPublic('SIMPLELOGIN_SLUG') ?? ''\n this.baseUrl =\n config.baseUrl ?? getMetaEnvPublic('SIMPLELOGIN_IDP_URL') ?? __SIMPLELOGIN_BASE_URL__\n\n if (!this.clientId) {\n throw new Error(\n 'clientId is required. Pass it in config or set SIMPLELOGIN_CLIENT_ID env var (with appropriate framework prefix like VITE_, NEXT_PUBLIC_, etc.).',\n )\n }\n }\n\n /**\n * Get the URL to the user's profile page\n * @param options.redirectUrl - URL to redirect back to after profile changes\n */\n getProfileUrl(options: ProfileUrlOptions): string {\n const params = new URLSearchParams({\n redirect_url: options.redirectUrl,\n })\n\n return `${this.baseUrl}/app/${this.slug}/profile?${params}`\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,IAAM,sBAAsB;AAAA,EAC1B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAEA,SAAS,iBAAiB,KAAiC;AACzD,MAAI;AACF,UAAM,OAAO;AACb,QAAI,CAAC,KAAK,IAAK,QAAO;AACtB,eAAW,UAAU,qBAAqB;AACxC,YAAM,QAAQ,KAAK,IAAI,GAAG,MAAM,GAAG,GAAG,EAAE;AACxC,UAAI,MAAO,QAAO;AAAA,IACpB;AACA,WAAO,KAAK,IAAI,GAAG;AAAA,EACrB,QAAQ;AAAA,EAER;AACA,SAAO;AACT;AAEO,IAAM,qBAAN,MAAyB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,SAAmC,CAAC,GAAG;AACjD,SAAK,WAAW,OAAO,YAAY,iBAAiB,uBAAuB,KAAK;AAChF,SAAK,OAAO,OAAO,QAAQ,iBAAiB,kBAAkB,KAAK;AACnE,SAAK,UACH,OAAO,WAAW,iBAAiB,qBAAqB,KAAK;AAE/D,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc,SAAoC;AAChD,UAAM,SAAS,IAAI,gBAAgB;AAAA,MACjC,cAAc,QAAQ;AAAA,IACxB,CAAC;AAED,WAAO,GAAG,KAAK,OAAO,QAAQ,KAAK,IAAI,YAAY,MAAM;AAAA,EAC3D;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/browser.ts"],"sourcesContent":["declare const __SIMPLELOGIN_BASE_URL__: string\n\nexport interface SimpleLoginBrowserConfig {\n clientId?: string\n slug?: string\n /** Pass meta.env here */\n env?: Record<string, string | undefined>\n}\n\nexport interface ProfileUrlOptions {\n redirectUrl: string\n}\n\n// Common framework prefixes for public env vars\nconst PUBLIC_ENV_PREFIXES = [\n 'VITE_', // Vite\n 'NEXT_PUBLIC_', // Next.js\n 'NUXT_PUBLIC_', // Nuxt 3\n 'PUBLIC_', // SvelteKit\n 'REACT_APP_', // Create React App\n 'EXPO_PUBLIC_', // Expo\n '', // No prefix (check last)\n]\n\nfunction getFromEnv(env: Record<string, string | undefined>, key: string): string | undefined {\n for (const prefix of PUBLIC_ENV_PREFIXES) {\n const value = env[`${prefix}${key}`]\n if (value) return value\n }\n return undefined\n}\n\nexport class SimpleLoginBrowser {\n private clientId: string\n private baseUrl: string\n private slug: string\n\n constructor(config: SimpleLoginBrowserConfig = {}) {\n const env = config.env ?? {}\n\n this.clientId = config.clientId ?? getFromEnv(env, 'SIMPLELOGIN_CLIENT_ID') ?? ''\n this.slug = config.slug ?? getFromEnv(env, 'SIMPLELOGIN_SLUG') ?? ''\n this.baseUrl = getFromEnv(env, 'SIMPLELOGIN_IDP_URL') ?? __SIMPLELOGIN_BASE_URL__\n\n if (!this.clientId) {\n throw new Error(\n 'clientId is required. Pass it in config or provide env with SIMPLELOGIN_CLIENT_ID.',\n )\n }\n }\n\n /**\n * Get the URL to the user's profile page\n * @param options.redirectUrl - URL to redirect back to after profile changes\n */\n getProfileUrl(options: ProfileUrlOptions): string {\n const params = new URLSearchParams({\n redirect_url: options.redirectUrl,\n })\n\n return `${this.baseUrl}/app/${this.slug}/profile?${params}`\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA,IAAM,sBAAsB;AAAA,EAC1B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAEA,SAAS,WAAW,KAAyC,KAAiC;AAC5F,aAAW,UAAU,qBAAqB;AACxC,UAAM,QAAQ,IAAI,GAAG,MAAM,GAAG,GAAG,EAAE;AACnC,QAAI,MAAO,QAAO;AAAA,EACpB;AACA,SAAO;AACT;AAEO,IAAM,qBAAN,MAAyB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,SAAmC,CAAC,GAAG;AACjD,UAAM,MAAM,OAAO,OAAO,CAAC;AAE3B,SAAK,WAAW,OAAO,YAAY,WAAW,KAAK,uBAAuB,KAAK;AAC/E,SAAK,OAAO,OAAO,QAAQ,WAAW,KAAK,kBAAkB,KAAK;AAClE,SAAK,UAAU,WAAW,KAAK,qBAAqB,KAAK;AAEzD,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc,SAAoC;AAChD,UAAM,SAAS,IAAI,gBAAgB;AAAA,MACjC,cAAc,QAAQ;AAAA,IACxB,CAAC;AAED,WAAO,GAAG,KAAK,OAAO,QAAQ,KAAK,IAAI,YAAY,MAAM;AAAA,EAC3D;AACF;","names":[]}
@@ -1,7 +1,8 @@
1
1
  interface SimpleLoginBrowserConfig {
2
2
  clientId?: string;
3
- baseUrl?: string;
4
3
  slug?: string;
4
+ /** Pass meta.env here */
5
+ env?: Record<string, string | undefined>;
5
6
  }
6
7
  interface ProfileUrlOptions {
7
8
  redirectUrl: string;
package/dist/browser.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  interface SimpleLoginBrowserConfig {
2
2
  clientId?: string;
3
- baseUrl?: string;
4
3
  slug?: string;
4
+ /** Pass meta.env here */
5
+ env?: Record<string, string | undefined>;
5
6
  }
6
7
  interface ProfileUrlOptions {
7
8
  redirectUrl: string;
package/dist/browser.js CHANGED
@@ -10,19 +10,15 @@ var PUBLIC_ENV_PREFIXES = [
10
10
  // SvelteKit
11
11
  "REACT_APP_",
12
12
  // Create React App
13
- "EXPO_PUBLIC_"
13
+ "EXPO_PUBLIC_",
14
14
  // Expo
15
+ ""
16
+ // No prefix (check last)
15
17
  ];
16
- function getMetaEnvPublic(key) {
17
- try {
18
- const meta = import.meta;
19
- if (!meta.env) return void 0;
20
- for (const prefix of PUBLIC_ENV_PREFIXES) {
21
- const value = meta.env[`${prefix}${key}`];
22
- if (value) return value;
23
- }
24
- return meta.env[key];
25
- } catch {
18
+ function getFromEnv(env, key) {
19
+ for (const prefix of PUBLIC_ENV_PREFIXES) {
20
+ const value = env[`${prefix}${key}`];
21
+ if (value) return value;
26
22
  }
27
23
  return void 0;
28
24
  }
@@ -31,12 +27,13 @@ var SimpleLoginBrowser = class {
31
27
  baseUrl;
32
28
  slug;
33
29
  constructor(config = {}) {
34
- this.clientId = config.clientId ?? getMetaEnvPublic("SIMPLELOGIN_CLIENT_ID") ?? "";
35
- this.slug = config.slug ?? getMetaEnvPublic("SIMPLELOGIN_SLUG") ?? "";
36
- this.baseUrl = config.baseUrl ?? getMetaEnvPublic("SIMPLELOGIN_IDP_URL") ?? "https://app.simple-login.com";
30
+ const env = config.env ?? {};
31
+ this.clientId = config.clientId ?? getFromEnv(env, "SIMPLELOGIN_CLIENT_ID") ?? "";
32
+ this.slug = config.slug ?? getFromEnv(env, "SIMPLELOGIN_SLUG") ?? "";
33
+ this.baseUrl = getFromEnv(env, "SIMPLELOGIN_IDP_URL") ?? "https://app.simple-login.com";
37
34
  if (!this.clientId) {
38
35
  throw new Error(
39
- "clientId is required. Pass it in config or set SIMPLELOGIN_CLIENT_ID env var (with appropriate framework prefix like VITE_, NEXT_PUBLIC_, etc.)."
36
+ "clientId is required. Pass it in config or provide env with SIMPLELOGIN_CLIENT_ID."
40
37
  );
41
38
  }
42
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/browser.ts"],"sourcesContent":["declare const __SIMPLELOGIN_BASE_URL__: string\n\nexport interface SimpleLoginBrowserConfig {\n clientId?: string\n baseUrl?: string\n slug?: string\n}\n\nexport interface ProfileUrlOptions {\n redirectUrl: string\n}\n\n// Common framework prefixes for public env vars\nconst PUBLIC_ENV_PREFIXES = [\n 'VITE_', // Vite\n 'NEXT_PUBLIC_', // Next.js\n 'NUXT_PUBLIC_', // Nuxt 3\n 'PUBLIC_', // SvelteKit\n 'REACT_APP_', // Create React App\n 'EXPO_PUBLIC_', // Expo\n]\n\nfunction getMetaEnvPublic(key: string): string | undefined {\n try {\n const meta = import.meta as unknown as { env?: Record<string, string> }\n if (!meta.env) return undefined\n for (const prefix of PUBLIC_ENV_PREFIXES) {\n const value = meta.env[`${prefix}${key}`]\n if (value) return value\n }\n return meta.env[key]\n } catch {\n // import.meta not available\n }\n return undefined\n}\n\nexport class SimpleLoginBrowser {\n private clientId: string\n private baseUrl: string\n private slug: string\n\n constructor(config: SimpleLoginBrowserConfig = {}) {\n this.clientId = config.clientId ?? getMetaEnvPublic('SIMPLELOGIN_CLIENT_ID') ?? ''\n this.slug = config.slug ?? getMetaEnvPublic('SIMPLELOGIN_SLUG') ?? ''\n this.baseUrl =\n config.baseUrl ?? getMetaEnvPublic('SIMPLELOGIN_IDP_URL') ?? __SIMPLELOGIN_BASE_URL__\n\n if (!this.clientId) {\n throw new Error(\n 'clientId is required. Pass it in config or set SIMPLELOGIN_CLIENT_ID env var (with appropriate framework prefix like VITE_, NEXT_PUBLIC_, etc.).',\n )\n }\n }\n\n /**\n * Get the URL to the user's profile page\n * @param options.redirectUrl - URL to redirect back to after profile changes\n */\n getProfileUrl(options: ProfileUrlOptions): string {\n const params = new URLSearchParams({\n redirect_url: options.redirectUrl,\n })\n\n return `${this.baseUrl}/app/${this.slug}/profile?${params}`\n }\n}\n"],"mappings":";AAaA,IAAM,sBAAsB;AAAA,EAC1B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAEA,SAAS,iBAAiB,KAAiC;AACzD,MAAI;AACF,UAAM,OAAO;AACb,QAAI,CAAC,KAAK,IAAK,QAAO;AACtB,eAAW,UAAU,qBAAqB;AACxC,YAAM,QAAQ,KAAK,IAAI,GAAG,MAAM,GAAG,GAAG,EAAE;AACxC,UAAI,MAAO,QAAO;AAAA,IACpB;AACA,WAAO,KAAK,IAAI,GAAG;AAAA,EACrB,QAAQ;AAAA,EAER;AACA,SAAO;AACT;AAEO,IAAM,qBAAN,MAAyB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,SAAmC,CAAC,GAAG;AACjD,SAAK,WAAW,OAAO,YAAY,iBAAiB,uBAAuB,KAAK;AAChF,SAAK,OAAO,OAAO,QAAQ,iBAAiB,kBAAkB,KAAK;AACnE,SAAK,UACH,OAAO,WAAW,iBAAiB,qBAAqB,KAAK;AAE/D,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc,SAAoC;AAChD,UAAM,SAAS,IAAI,gBAAgB;AAAA,MACjC,cAAc,QAAQ;AAAA,IACxB,CAAC;AAED,WAAO,GAAG,KAAK,OAAO,QAAQ,KAAK,IAAI,YAAY,MAAM;AAAA,EAC3D;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/browser.ts"],"sourcesContent":["declare const __SIMPLELOGIN_BASE_URL__: string\n\nexport interface SimpleLoginBrowserConfig {\n clientId?: string\n slug?: string\n /** Pass meta.env here */\n env?: Record<string, string | undefined>\n}\n\nexport interface ProfileUrlOptions {\n redirectUrl: string\n}\n\n// Common framework prefixes for public env vars\nconst PUBLIC_ENV_PREFIXES = [\n 'VITE_', // Vite\n 'NEXT_PUBLIC_', // Next.js\n 'NUXT_PUBLIC_', // Nuxt 3\n 'PUBLIC_', // SvelteKit\n 'REACT_APP_', // Create React App\n 'EXPO_PUBLIC_', // Expo\n '', // No prefix (check last)\n]\n\nfunction getFromEnv(env: Record<string, string | undefined>, key: string): string | undefined {\n for (const prefix of PUBLIC_ENV_PREFIXES) {\n const value = env[`${prefix}${key}`]\n if (value) return value\n }\n return undefined\n}\n\nexport class SimpleLoginBrowser {\n private clientId: string\n private baseUrl: string\n private slug: string\n\n constructor(config: SimpleLoginBrowserConfig = {}) {\n const env = config.env ?? {}\n\n this.clientId = config.clientId ?? getFromEnv(env, 'SIMPLELOGIN_CLIENT_ID') ?? ''\n this.slug = config.slug ?? getFromEnv(env, 'SIMPLELOGIN_SLUG') ?? ''\n this.baseUrl = getFromEnv(env, 'SIMPLELOGIN_IDP_URL') ?? __SIMPLELOGIN_BASE_URL__\n\n if (!this.clientId) {\n throw new Error(\n 'clientId is required. Pass it in config or provide env with SIMPLELOGIN_CLIENT_ID.',\n )\n }\n }\n\n /**\n * Get the URL to the user's profile page\n * @param options.redirectUrl - URL to redirect back to after profile changes\n */\n getProfileUrl(options: ProfileUrlOptions): string {\n const params = new URLSearchParams({\n redirect_url: options.redirectUrl,\n })\n\n return `${this.baseUrl}/app/${this.slug}/profile?${params}`\n }\n}\n"],"mappings":";AAcA,IAAM,sBAAsB;AAAA,EAC1B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAEA,SAAS,WAAW,KAAyC,KAAiC;AAC5F,aAAW,UAAU,qBAAqB;AACxC,UAAM,QAAQ,IAAI,GAAG,MAAM,GAAG,GAAG,EAAE;AACnC,QAAI,MAAO,QAAO;AAAA,EACpB;AACA,SAAO;AACT;AAEO,IAAM,qBAAN,MAAyB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,SAAmC,CAAC,GAAG;AACjD,UAAM,MAAM,OAAO,OAAO,CAAC;AAE3B,SAAK,WAAW,OAAO,YAAY,WAAW,KAAK,uBAAuB,KAAK;AAC/E,SAAK,OAAO,OAAO,QAAQ,WAAW,KAAK,kBAAkB,KAAK;AAClE,SAAK,UAAU,WAAW,KAAK,qBAAqB,KAAK;AAEzD,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc,SAAoC;AAChD,UAAM,SAAS,IAAI,gBAAgB;AAAA,MACjC,cAAc,QAAQ;AAAA,IACxB,CAAC;AAED,WAAO,GAAG,KAAK,OAAO,QAAQ,KAAK,IAAI,YAAY,MAAM;AAAA,EAC3D;AACF;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simple-login/sdk",
3
- "version": "1.8.1",
3
+ "version": "1.9.0",
4
4
  "description": "Official SDK for Simple Login",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",