@nangohq/providers 0.48.3

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/http.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function isValidURL(str: string): boolean;
package/dist/http.js ADDED
@@ -0,0 +1,11 @@
1
+ export function isValidURL(str) {
2
+ try {
3
+ // TODO: replace with canParse after we drop v18
4
+ new URL(str);
5
+ return true;
6
+ }
7
+ catch {
8
+ return false;
9
+ }
10
+ }
11
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../lib/http.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,GAAW;IAClC,IAAI,CAAC;QACD,gDAAgD;QAChD,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Provider } from '@nangohq/types';
2
+ export declare function updateProviderCache(update: Record<string, Provider>): void;
3
+ export declare function getProviders(): Record<string, Provider> | undefined;
4
+ export declare function getProvider(providerName: string): Provider | null;
package/dist/index.js ADDED
@@ -0,0 +1,47 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ import path from 'node:path';
3
+ import fs from 'node:fs';
4
+ import yaml from 'js-yaml';
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const pkgRoot = path.join(__filename, '../../');
7
+ let providers = undefined;
8
+ export function updateProviderCache(update) {
9
+ providers = update;
10
+ }
11
+ export function getProviders() {
12
+ if (!providers) {
13
+ providers = loadProvidersYaml();
14
+ }
15
+ return providers;
16
+ }
17
+ export function getProvider(providerName) {
18
+ const providers = getProviders();
19
+ return providers?.[providerName] ?? null;
20
+ }
21
+ function loadProvidersYaml() {
22
+ try {
23
+ const providersYamlPath = path.join(pkgRoot, 'providers.yaml');
24
+ const fileEntries = yaml.load(fs.readFileSync(providersYamlPath).toString());
25
+ if (fileEntries == null) {
26
+ throw new Error('provider_template_loading_failed');
27
+ }
28
+ for (const key in fileEntries) {
29
+ const entry = fileEntries[key];
30
+ if (entry && 'alias' in entry) {
31
+ if (Object.keys(entry).length <= 0) {
32
+ console.error('Failed to find alias', entry.alias);
33
+ continue;
34
+ }
35
+ const { alias, ...overrides } = entry;
36
+ const aliasData = fileEntries[entry.alias];
37
+ fileEntries[key] = { ...aliasData, ...overrides };
38
+ }
39
+ }
40
+ return fileEntries;
41
+ }
42
+ catch (err) {
43
+ console.error('Failed to load providers.yaml', err);
44
+ }
45
+ return;
46
+ }
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,SAAS,CAAC;AAG3B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAEhD,IAAI,SAAS,GAAyC,SAAS,CAAC;AAEhE,MAAM,UAAU,mBAAmB,CAAC,MAAgC;IAChE,SAAS,GAAG,MAAM,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,YAAY;IACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,YAAoB;IAC5C,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,OAAO,SAAS,EAAE,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,iBAAiB;IACtB,IAAI,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAA6C,CAAC;QAEzH,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;gBAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACjC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnD,SAAS;gBACb,CAAC;gBAED,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;gBACtC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAa,CAAC;gBACvD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;YACtD,CAAC;QACL,CAAC;QAED,OAAO,WAAuC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,OAAO;AACX,CAAC"}
package/dist/path.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const projectRoot: string;
package/dist/path.js ADDED
@@ -0,0 +1,5 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ import path from 'node:path';
3
+ const __filename = fileURLToPath(import.meta.url);
4
+ export const projectRoot = path.join(__filename, '../../../..');
5
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../lib/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Provider } from '@nangohq/types';
2
+ export declare function updateProviderCache(update: Record<string, Provider>): void;
3
+ export declare function getProviders(): Record<string, Provider> | undefined;
4
+ export declare function getProvider(providerName: string): Provider | null;
@@ -0,0 +1,45 @@
1
+ import path from 'node:path';
2
+ import fs from 'node:fs';
3
+ import yaml from 'js-yaml';
4
+ import { projectRoot } from './path.js';
5
+ let providers = undefined;
6
+ export function updateProviderCache(update) {
7
+ providers = update;
8
+ }
9
+ export function getProviders() {
10
+ if (!providers) {
11
+ providers = loadProvidersYaml();
12
+ }
13
+ return providers;
14
+ }
15
+ export function getProvider(providerName) {
16
+ const providers = getProviders();
17
+ return providers?.[providerName] ?? null;
18
+ }
19
+ function loadProvidersYaml() {
20
+ try {
21
+ const providersYamlPath = path.join(projectRoot, 'packages', 'shared-public', 'providers.yaml');
22
+ const fileEntries = yaml.load(fs.readFileSync(providersYamlPath).toString());
23
+ if (fileEntries == null) {
24
+ throw new Error('provider_template_loading_failed');
25
+ }
26
+ for (const key in fileEntries) {
27
+ const entry = fileEntries[key];
28
+ if (entry && 'alias' in entry) {
29
+ if (Object.keys(entry).length <= 0) {
30
+ console.error('Failed to find alias', entry.alias);
31
+ continue;
32
+ }
33
+ const { alias, ...overrides } = entry;
34
+ const aliasData = fileEntries[entry.alias];
35
+ fileEntries[key] = { ...aliasData, ...overrides };
36
+ }
37
+ }
38
+ return fileEntries;
39
+ }
40
+ catch (err) {
41
+ console.error('Failed to load providers.yaml', err);
42
+ }
43
+ return;
44
+ }
45
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../lib/providers.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,IAAI,SAAS,GAAyC,SAAS,CAAC;AAEhE,MAAM,UAAU,mBAAmB,CAAC,MAAgC;IAChE,SAAS,GAAG,MAAM,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,YAAY;IACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,YAAoB;IAC5C,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,OAAO,SAAS,EAAE,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,iBAAiB;IACtB,IAAI,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;QAChG,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAA6C,CAAC;QAEzH,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;gBAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACjC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnD,SAAS;gBACb,CAAC;gBAED,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;gBACtC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAa,CAAC;gBACvD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;YACtD,CAAC;QACL,CAAC;QAED,OAAO,WAAuC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,OAAO;AACX,CAAC"}
package/package.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "@nangohq/providers",
3
+ "version": "0.48.3",
4
+ "description": "Nango's providers.yaml and getters",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "typings": "./dist/index.d.ts",
8
+ "private": false,
9
+ "scripts": {},
10
+ "dependencies": {
11
+ "js-yaml": "4.1.0"
12
+ },
13
+ "devDependencies": {
14
+ "@nangohq/types": "0.48.3",
15
+ "vitest": "2.1.8"
16
+ },
17
+ "files": [
18
+ "dist/**/*",
19
+ "providers.yaml"
20
+ ]
21
+ }