@etohq/auth 1.0.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 (55) hide show
  1. package/README.md +3 -0
  2. package/dist/index.d.ts +6 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +13 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/joiner-config.d.ts +2 -0
  7. package/dist/joiner-config.d.ts.map +1 -0
  8. package/dist/joiner-config.js +9 -0
  9. package/dist/joiner-config.js.map +1 -0
  10. package/dist/loaders/providers.d.ts +6 -0
  11. package/dist/loaders/providers.d.ts.map +1 -0
  12. package/dist/loaders/providers.js +21 -0
  13. package/dist/loaders/providers.js.map +1 -0
  14. package/dist/migrations/Migration20240205025928.d.ts +6 -0
  15. package/dist/migrations/Migration20240205025928.d.ts.map +1 -0
  16. package/dist/migrations/Migration20240205025928.js +18 -0
  17. package/dist/migrations/Migration20240205025928.js.map +1 -0
  18. package/dist/migrations/Migration20240529080336.d.ts +6 -0
  19. package/dist/migrations/Migration20240529080336.d.ts.map +1 -0
  20. package/dist/migrations/Migration20240529080336.js +27 -0
  21. package/dist/migrations/Migration20240529080336.js.map +1 -0
  22. package/dist/migrations/Migration20241202100304.d.ts +6 -0
  23. package/dist/migrations/Migration20241202100304.d.ts.map +1 -0
  24. package/dist/migrations/Migration20241202100304.js +20 -0
  25. package/dist/migrations/Migration20241202100304.js.map +1 -0
  26. package/dist/models/auth-identity.d.ts +13 -0
  27. package/dist/models/auth-identity.d.ts.map +1 -0
  28. package/dist/models/auth-identity.js +17 -0
  29. package/dist/models/auth-identity.js.map +1 -0
  30. package/dist/models/index.d.ts +3 -0
  31. package/dist/models/index.d.ts.map +1 -0
  32. package/dist/models/index.js +8 -0
  33. package/dist/models/index.js.map +1 -0
  34. package/dist/models/provider-identity.d.ts +13 -0
  35. package/dist/models/provider-identity.d.ts.map +1 -0
  36. package/dist/models/provider-identity.js +24 -0
  37. package/dist/models/provider-identity.js.map +1 -0
  38. package/dist/services/auth-module.d.ts +44 -0
  39. package/dist/services/auth-module.d.ts.map +1 -0
  40. package/dist/services/auth-module.js +195 -0
  41. package/dist/services/auth-module.js.map +1 -0
  42. package/dist/services/auth-provider.d.ts +18 -0
  43. package/dist/services/auth-provider.d.ts.map +1 -0
  44. package/dist/services/auth-provider.js +59 -0
  45. package/dist/services/auth-provider.js.map +1 -0
  46. package/dist/services/index.d.ts +3 -0
  47. package/dist/services/index.d.ts.map +1 -0
  48. package/dist/services/index.js +11 -0
  49. package/dist/services/index.js.map +1 -0
  50. package/dist/tsconfig.tsbuildinfo +1 -0
  51. package/dist/types/index.d.ts +26 -0
  52. package/dist/types/index.d.ts.map +1 -0
  53. package/dist/types/index.js +6 -0
  54. package/dist/types/index.js.map +1 -0
  55. package/package.json +60 -0
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Auth Module
2
+
3
+ The Auth Module is Eto’s authentication engine engine. It provides functions to authenticate users through identity providers and store metadata about users that can be used for authorization purposes.
@@ -0,0 +1,6 @@
1
+ import { AuthModuleService } from "./services";
2
+ declare const _default: import("@etohq/types").ModuleExports<typeof AuthModuleService> & {
3
+ linkable: Record<string, any>;
4
+ };
5
+ export default _default;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;;;;AAI7C,wBAGE"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const _services_1 = require("./services");
7
+ const providers_1 = __importDefault(require("./loaders/providers"));
8
+ const utils_1 = require("@etohq/framework/utils");
9
+ exports.default = (0, utils_1.Module)(utils_1.Modules.AUTH, {
10
+ service: _services_1.AuthModuleService,
11
+ loaders: [providers_1.default],
12
+ });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,yCAA6C;AAC7C,oEAA+C;AAC/C,kDAAwD;AAExD,kBAAe,IAAA,cAAM,EAAC,eAAO,CAAC,IAAI,EAAE;IAClC,OAAO,EAAE,6BAAiB;IAC1B,OAAO,EAAE,CAAC,mBAAa,CAAC;CACzB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const joinerConfig: Omit<import("@etohq/types").ModuleJoinerConfig, "serviceName" | "primaryKeys" | "alias" | "linkableKeys"> & Required<Pick<import("@etohq/types").ModuleJoinerConfig, "serviceName" | "primaryKeys" | "alias" | "linkableKeys">>;
2
+ //# sourceMappingURL=joiner-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joiner-config.d.ts","sourceRoot":"","sources":["../src/joiner-config.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,iOAEvB,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.joinerConfig = void 0;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ const _models_1 = require("./models");
6
+ exports.joinerConfig = (0, utils_1.defineJoinerConfig)(utils_1.Modules.AUTH, {
7
+ models: [_models_1.AuthIdentity, _models_1.ProviderIdentity],
8
+ });
9
+ //# sourceMappingURL=joiner-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joiner-config.js","sourceRoot":"","sources":["../src/joiner-config.ts"],"names":[],"mappings":";;;AAAA,kDAAoE;AACpE,qCAAwD;AAE3C,QAAA,YAAY,GAAG,IAAA,0BAAkB,EAAC,eAAO,CAAC,IAAI,EAAE;IAC3D,MAAM,EAAE,CAAC,sBAAY,EAAE,0BAAgB,CAAC;CACzC,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { LoaderOptions, ModuleProvider, ModulesSdkTypes } from "@etohq/framework/types";
2
+ declare const _default: ({ container, options, }: LoaderOptions<(ModulesSdkTypes.ModuleServiceInitializeOptions | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions) & {
3
+ providers: ModuleProvider[];
4
+ }>) => Promise<void>;
5
+ export default _default;
6
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/loaders/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EAChB,MAAM,wBAAwB,CAAA;kDA2B5B,aAAa,CACd,CACI,eAAe,CAAC,8BAA8B,GAC9C,eAAe,CAAC,6CAA6C,CAChE,GAAG;IAAE,SAAS,EAAE,cAAc,EAAE,CAAA;CAAE,CACpC,KAAG,OAAO,CAAC,IAAI,CAAC;AARjB,wBAcC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const awilix_1 = require("awilix");
4
+ const modules_sdk_1 = require("@etohq/framework/modules-sdk");
5
+ const _types_1 = require("../types");
6
+ const registrationFn = async (klass, container, pluginOptions) => {
7
+ container.register({
8
+ [_types_1.AuthProviderRegistrationPrefix + pluginOptions.id]: (0, awilix_1.asFunction)((cradle) => new klass(cradle, pluginOptions.options ?? {}), {
9
+ lifetime: klass.LIFE_TIME || awilix_1.Lifetime.SINGLETON,
10
+ }),
11
+ });
12
+ container.registerAdd(_types_1.AuthIdentifiersRegistrationName, (0, awilix_1.asValue)(pluginOptions.id));
13
+ };
14
+ exports.default = async ({ container, options, }) => {
15
+ await (0, modules_sdk_1.moduleProviderLoader)({
16
+ container,
17
+ providers: options?.providers || [],
18
+ registerServiceFn: registrationFn,
19
+ });
20
+ };
21
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/loaders/providers.ts"],"names":[],"mappings":";;AAKA,mCAAsD;AACtD,8DAAmE;AACnE,mCAGe;AAEf,MAAM,cAAc,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE;IAC/D,SAAS,CAAC,QAAQ,CAAC;QACjB,CAAC,uCAA8B,GAAG,aAAa,CAAC,EAAE,CAAC,EAAE,IAAA,mBAAU,EAC7D,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,EAC1D;YACE,QAAQ,EAAE,KAAK,CAAC,SAAS,IAAI,iBAAQ,CAAC,SAAS;SAChD,CACF;KACF,CAAC,CAAA;IAEF,SAAS,CAAC,WAAW,CACnB,wCAA+B,EAC/B,IAAA,gBAAO,EAAC,aAAa,CAAC,EAAE,CAAC,CAC1B,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,KAAK,EAAE,EACpB,SAAS,EACT,OAAO,GAMR,EAAiB,EAAE;IAClB,MAAM,IAAA,kCAAoB,EAAC;QACzB,SAAS;QACT,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;QACnC,iBAAiB,EAAE,cAAc;KAClC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { Migration } from "@mikro-orm/migrations";
2
+ export declare class Migration20240205025928 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=Migration20240205025928.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20240205025928.d.ts","sourceRoot":"","sources":["../../src/migrations/Migration20240205025928.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,qBAAa,uBAAwB,SAAQ,SAAS;IAC9C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20240205025928 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20240205025928 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql('create table if not exists "auth_identity" ("id" text not null, "entity_id" text not null, "provider" text not null, "user_metadata" jsonb null, "app_metadata" jsonb null, "provider_metadata" jsonb null, constraint "auth_identity_pkey" primary key ("id"));');
8
+ this.addSql('alter table "auth_identity" drop constraint if exists "IDX_auth_identity_provider_entity_id"');
9
+ this.addSql('alter table "auth_identity" add constraint "IDX_auth_identity_provider_entity_id" unique ("provider", "entity_id");');
10
+ this.addSql('alter table "auth_identity" drop column if exists "scope";');
11
+ this.addSql(`alter table "auth_identity" alter column "app_metadata" drop not null;`);
12
+ }
13
+ async down() {
14
+ this.addSql('drop table if exists "auth_identity" cascade;');
15
+ }
16
+ }
17
+ exports.Migration20240205025928 = Migration20240205025928;
18
+ //# sourceMappingURL=Migration20240205025928.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20240205025928.js","sourceRoot":"","sources":["../../src/migrations/Migration20240205025928.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AAEjD,MAAa,uBAAwB,SAAQ,sBAAS;IACpD,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,MAAM,CACT,kQAAkQ,CACnQ,CAAA;QACD,IAAI,CAAC,MAAM,CACT,8FAA8F,CAC/F,CAAA;QACD,IAAI,CAAC,MAAM,CACT,qHAAqH,CACtH,CAAA;QAED,IAAI,CAAC,MAAM,CAAC,4DAA4D,CAAC,CAAA;QACzE,IAAI,CAAC,MAAM,CACT,wEAAwE,CACzE,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAA;IAC9D,CAAC;CACF;AArBD,0DAqBC"}
@@ -0,0 +1,6 @@
1
+ import { Migration } from "@mikro-orm/migrations";
2
+ export declare class Migration20240529080336 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=Migration20240529080336.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20240529080336.d.ts","sourceRoot":"","sources":["../../src/migrations/Migration20240529080336.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,qBAAa,uBAAwB,SAAQ,SAAS;IAC9C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB5B"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20240529080336 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20240529080336 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql('create table if not exists "provider_identity" ("id" text not null, "entity_id" text not null, "provider" text not null, "auth_identity_id" text not null, "user_metadata" jsonb null, "provider_metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), constraint "provider_identity_pkey" primary key ("id"));');
8
+ this.addSql('CREATE INDEX IF NOT EXISTS "IDX_provider_identity_auth_identity_id" ON "provider_identity" (auth_identity_id);');
9
+ this.addSql('CREATE UNIQUE INDEX IF NOT EXISTS "IDX_provider_identity_provider_entity_id" ON "provider_identity" (entity_id, provider);');
10
+ this.addSql('alter table if exists "provider_identity" add constraint "provider_identity_auth_identity_id_foreign" foreign key ("auth_identity_id") references "auth_identity" ("id") on update cascade on delete cascade;');
11
+ this.addSql('alter table if exists "auth_identity" add column if not exists "created_at" timestamptz not null default now(), add column "updated_at" timestamptz not null default now();');
12
+ this.addSql('alter table if exists "auth_identity" drop constraint if exists "IDX_auth_identity_provider_entity_id";');
13
+ this.addSql('alter table if exists "auth_identity" drop column if exists "entity_id";');
14
+ this.addSql('alter table if exists "auth_identity" drop column if exists "provider";');
15
+ this.addSql('alter table if exists "auth_identity" drop column if exists "user_metadata";');
16
+ this.addSql('alter table if exists "auth_identity" drop column if exists "provider_metadata";');
17
+ }
18
+ async down() {
19
+ this.addSql('drop table if exists "provider_identity" cascade;');
20
+ this.addSql('alter table if exists "auth_identity" add column if not exists "entity_id" text not null, add column "provider" text not null, add column "user_metadata" jsonb null, add column "provider_metadata" jsonb null;');
21
+ this.addSql('alter table if exists "auth_identity" alter column "app_metadata" type jsonb using ("app_metadata"::jsonb);');
22
+ this.addSql('alter table if exists "auth_identity" alter column "app_metadata" set not null;');
23
+ this.addSql('alter table if exists "auth_identity" add constraint "IDX_auth_identity_provider_entity_id" unique ("provider", "entity_id");');
24
+ }
25
+ }
26
+ exports.Migration20240529080336 = Migration20240529080336;
27
+ //# sourceMappingURL=Migration20240529080336.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20240529080336.js","sourceRoot":"","sources":["../../src/migrations/Migration20240529080336.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AAEjD,MAAa,uBAAwB,SAAQ,sBAAS;IACpD,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,MAAM,CACT,mXAAmX,CACpX,CAAA;QACD,IAAI,CAAC,MAAM,CACT,gHAAgH,CACjH,CAAA;QACD,IAAI,CAAC,MAAM,CACT,4HAA4H,CAC7H,CAAA;QAED,IAAI,CAAC,MAAM,CACT,+MAA+M,CAChN,CAAA;QAED,IAAI,CAAC,MAAM,CACT,6KAA6K,CAC9K,CAAA;QAED,IAAI,CAAC,MAAM,CACT,yGAAyG,CAC1G,CAAA;QACD,IAAI,CAAC,MAAM,CACT,0EAA0E,CAC3E,CAAA;QACD,IAAI,CAAC,MAAM,CACT,yEAAyE,CAC1E,CAAA;QACD,IAAI,CAAC,MAAM,CACT,8EAA8E,CAC/E,CAAA;QACD,IAAI,CAAC,MAAM,CACT,kFAAkF,CACnF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAA;QAEhE,IAAI,CAAC,MAAM,CACT,kNAAkN,CACnN,CAAA;QACD,IAAI,CAAC,MAAM,CACT,6GAA6G,CAC9G,CAAA;QACD,IAAI,CAAC,MAAM,CACT,iFAAiF,CAClF,CAAA;QACD,IAAI,CAAC,MAAM,CACT,+HAA+H,CAChI,CAAA;IACH,CAAC;CACF;AArDD,0DAqDC"}
@@ -0,0 +1,6 @@
1
+ import { Migration } from "@mikro-orm/migrations";
2
+ export declare class Migration20241202100304 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=Migration20241202100304.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20241202100304.d.ts","sourceRoot":"","sources":["../../src/migrations/Migration20241202100304.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,qBAAa,uBAAwB,SAAQ,SAAS;IAC9C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAW5B"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20241202100304 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20241202100304 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql('alter table if exists "auth_identity" add column if not exists "deleted_at" timestamptz null;');
8
+ this.addSql('CREATE INDEX IF NOT EXISTS "IDX_auth_identity_deleted_at" ON "auth_identity" (deleted_at) WHERE deleted_at IS NULL;');
9
+ this.addSql('alter table if exists "provider_identity" add column if not exists "deleted_at" timestamptz null;');
10
+ this.addSql('CREATE INDEX IF NOT EXISTS "IDX_provider_identity_deleted_at" ON "provider_identity" (deleted_at) WHERE deleted_at IS NULL;');
11
+ }
12
+ async down() {
13
+ this.addSql('drop index if exists "IDX_auth_identity_deleted_at";');
14
+ this.addSql('alter table if exists "auth_identity" drop column if exists "deleted_at";');
15
+ this.addSql('drop index if exists "IDX_provider_identity_deleted_at";');
16
+ this.addSql('alter table if exists "provider_identity" drop column if exists "deleted_at";');
17
+ }
18
+ }
19
+ exports.Migration20241202100304 = Migration20241202100304;
20
+ //# sourceMappingURL=Migration20241202100304.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20241202100304.js","sourceRoot":"","sources":["../../src/migrations/Migration20241202100304.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AAEjD,MAAa,uBAAwB,SAAQ,sBAAS;IACpD,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,MAAM,CACT,+FAA+F,CAChG,CAAA;QACD,IAAI,CAAC,MAAM,CACT,qHAAqH,CACtH,CAAA;QAED,IAAI,CAAC,MAAM,CACT,mGAAmG,CACpG,CAAA;QACD,IAAI,CAAC,MAAM,CACT,6HAA6H,CAC9H,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAA;QACnE,IAAI,CAAC,MAAM,CACT,2EAA2E,CAC5E,CAAA;QAED,IAAI,CAAC,MAAM,CAAC,0DAA0D,CAAC,CAAA;QACvE,IAAI,CAAC,MAAM,CACT,+EAA+E,CAChF,CAAA;IACH,CAAC;CACF;AA5BD,0DA4BC"}
@@ -0,0 +1,13 @@
1
+ export declare const AuthIdentity: import("@etohq/framework/utils").DmlEntity<import("@etohq/framework/utils").DMLEntitySchemaBuilder<{
2
+ id: import("@etohq/framework/utils").PrimaryKeyModifier<string, import("@etohq/framework/utils").IdProperty>;
3
+ provider_identities: import("@etohq/framework/utils").HasMany<() => import("@etohq/framework/utils").DmlEntity<import("@etohq/framework/utils").DMLEntitySchemaBuilder<{
4
+ id: import("@etohq/framework/utils").PrimaryKeyModifier<string, import("@etohq/framework/utils").IdProperty>;
5
+ entity_id: import("@etohq/framework/utils").TextProperty;
6
+ provider: import("@etohq/framework/utils").TextProperty;
7
+ auth_identity: import("@etohq/framework/utils").BelongsTo<() => import("@etohq/framework/utils").DmlEntity<import("@etohq/framework/utils").DMLEntitySchemaBuilder<any>, "auth_identity">, undefined>;
8
+ user_metadata: import("@etohq/framework/utils").NullableModifier<Record<string, unknown>, import("@etohq/framework/utils").JSONProperty>;
9
+ provider_metadata: import("@etohq/framework/utils").NullableModifier<Record<string, unknown>, import("@etohq/framework/utils").JSONProperty>;
10
+ }>, "provider_identity">>;
11
+ app_metadata: import("@etohq/framework/utils").NullableModifier<Record<string, unknown>, import("@etohq/framework/utils").JSONProperty>;
12
+ }>, "auth_identity">;
13
+ //# sourceMappingURL=auth-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-identity.d.ts","sourceRoot":"","sources":["../../src/models/auth-identity.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;;;oBAUrB,CAAA"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthIdentity = void 0;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ const provider_identity_1 = require("./provider-identity");
6
+ exports.AuthIdentity = utils_1.model
7
+ .define("auth_identity", {
8
+ id: utils_1.model.id({ prefix: "authid" }).primaryKey(),
9
+ provider_identities: utils_1.model.hasMany(() => provider_identity_1.ProviderIdentity, {
10
+ mappedBy: "auth_identity",
11
+ }),
12
+ app_metadata: utils_1.model.json().nullable(),
13
+ })
14
+ .cascades({
15
+ delete: ["provider_identities"],
16
+ });
17
+ //# sourceMappingURL=auth-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-identity.js","sourceRoot":"","sources":["../../src/models/auth-identity.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAC9C,2DAAsD;AAEzC,QAAA,YAAY,GAAG,aAAK;KAC9B,MAAM,CAAC,eAAe,EAAE;IACvB,EAAE,EAAE,aAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE;IAC/C,mBAAmB,EAAE,aAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,oCAAgB,EAAE;QACzD,QAAQ,EAAE,eAAe;KAC1B,CAAC;IACF,YAAY,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC;KACD,QAAQ,CAAC;IACR,MAAM,EAAE,CAAC,qBAAqB,CAAC;CAChC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { AuthIdentity } from "./auth-identity";
2
+ export { ProviderIdentity } from "./provider-identity";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviderIdentity = exports.AuthIdentity = void 0;
4
+ var auth_identity_1 = require("./auth-identity");
5
+ Object.defineProperty(exports, "AuthIdentity", { enumerable: true, get: function () { return auth_identity_1.AuthIdentity; } });
6
+ var provider_identity_1 = require("./provider-identity");
7
+ Object.defineProperty(exports, "ProviderIdentity", { enumerable: true, get: function () { return provider_identity_1.ProviderIdentity; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAArC,6GAAA,YAAY,OAAA;AACrB,yDAAsD;AAA7C,qHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,13 @@
1
+ export declare const ProviderIdentity: import("@etohq/framework/utils").DmlEntity<import("@etohq/framework/utils").DMLEntitySchemaBuilder<{
2
+ id: import("@etohq/framework/utils").PrimaryKeyModifier<string, import("@etohq/framework/utils").IdProperty>;
3
+ entity_id: import("@etohq/framework/utils").TextProperty;
4
+ provider: import("@etohq/framework/utils").TextProperty;
5
+ auth_identity: import("@etohq/framework/utils").BelongsTo<() => import("@etohq/framework/utils").DmlEntity<import("@etohq/framework/utils").DMLEntitySchemaBuilder<{
6
+ id: import("@etohq/framework/utils").PrimaryKeyModifier<string, import("@etohq/framework/utils").IdProperty>;
7
+ provider_identities: import("@etohq/framework/utils").HasMany<() => import("@etohq/framework/utils").DmlEntity<import("@etohq/framework/utils").DMLEntitySchemaBuilder<any>, "provider_identity">>;
8
+ app_metadata: import("@etohq/framework/utils").NullableModifier<Record<string, unknown>, import("@etohq/framework/utils").JSONProperty>;
9
+ }>, "auth_identity">, undefined>;
10
+ user_metadata: import("@etohq/framework/utils").NullableModifier<Record<string, unknown>, import("@etohq/framework/utils").JSONProperty>;
11
+ provider_metadata: import("@etohq/framework/utils").NullableModifier<Record<string, unknown>, import("@etohq/framework/utils").JSONProperty>;
12
+ }>, "provider_identity">;
13
+ //# sourceMappingURL=provider-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-identity.d.ts","sourceRoot":"","sources":["../../src/models/provider-identity.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB;;;;;;;;;;;wBAiBzB,CAAA"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviderIdentity = void 0;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ const auth_identity_1 = require("./auth-identity");
6
+ exports.ProviderIdentity = utils_1.model
7
+ .define("provider_identity", {
8
+ id: utils_1.model.id().primaryKey(),
9
+ entity_id: utils_1.model.text(),
10
+ provider: utils_1.model.text(),
11
+ auth_identity: utils_1.model.belongsTo(() => auth_identity_1.AuthIdentity, {
12
+ mappedBy: "provider_identities",
13
+ }),
14
+ user_metadata: utils_1.model.json().nullable(),
15
+ provider_metadata: utils_1.model.json().nullable(),
16
+ })
17
+ .indexes([
18
+ {
19
+ name: "IDX_provider_identity_provider_entity_id",
20
+ on: ["entity_id", "provider"],
21
+ unique: true,
22
+ },
23
+ ]);
24
+ //# sourceMappingURL=provider-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-identity.js","sourceRoot":"","sources":["../../src/models/provider-identity.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAC9C,mDAA8C;AAEjC,QAAA,gBAAgB,GAAG,aAAK;KAClC,MAAM,CAAC,mBAAmB,EAAE;IAC3B,EAAE,EAAE,aAAK,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE;IAC3B,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE;IACvB,QAAQ,EAAE,aAAK,CAAC,IAAI,EAAE;IACtB,aAAa,EAAE,aAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,4BAAY,EAAE;QACjD,QAAQ,EAAE,qBAAqB;KAChC,CAAC;IACF,aAAa,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACtC,iBAAiB,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC;KACD,OAAO,CAAC;IACP;QACE,IAAI,EAAE,0CAA0C;QAChD,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;QAC7B,MAAM,EAAE,IAAI;KACb;CACF,CAAC,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { AuthenticationInput, AuthenticationResponse, AuthIdentityProviderService, AuthTypes, Context, DAL, ICacheService, InferEntityType, InternalModuleDeclaration, Logger, ModuleJoinerConfig, ModulesSdkTypes } from "@etohq/framework/types";
2
+ import { AuthIdentity, ProviderIdentity } from "../models";
3
+ import AuthProviderService from "./auth-provider";
4
+ type InjectedDependencies = {
5
+ baseRepository: DAL.RepositoryService;
6
+ authIdentityService: ModulesSdkTypes.IEtoInternalService<any>;
7
+ providerIdentityService: ModulesSdkTypes.IEtoInternalService<any>;
8
+ authProviderService: AuthProviderService;
9
+ logger?: Logger;
10
+ cache?: ICacheService;
11
+ };
12
+ declare const AuthModuleService_base: import("@etohq/framework/utils").EtoServiceReturnType<{
13
+ AuthIdentity: {
14
+ dto: AuthTypes.AuthIdentityDTO;
15
+ };
16
+ ProviderIdentity: {
17
+ dto: AuthTypes.ProviderIdentityDTO;
18
+ };
19
+ }>;
20
+ export default class AuthModuleService extends AuthModuleService_base implements AuthTypes.IAuthModuleService {
21
+ protected readonly moduleDeclaration: InternalModuleDeclaration;
22
+ protected baseRepository_: DAL.RepositoryService;
23
+ protected authIdentityService_: ModulesSdkTypes.IEtoInternalService<InferEntityType<typeof AuthIdentity>>;
24
+ protected providerIdentityService_: ModulesSdkTypes.IEtoInternalService<InferEntityType<typeof ProviderIdentity>>;
25
+ protected readonly authProviderService_: AuthProviderService;
26
+ protected readonly cache_: ICacheService | undefined;
27
+ constructor({ authIdentityService, providerIdentityService, authProviderService, baseRepository, cache, }: InjectedDependencies, moduleDeclaration: InternalModuleDeclaration);
28
+ __joinerConfig(): ModuleJoinerConfig;
29
+ createAuthIdentities(data: AuthTypes.CreateAuthIdentityDTO[], sharedContext?: Context): Promise<AuthTypes.AuthIdentityDTO[]>;
30
+ createAuthIdentities(data: AuthTypes.CreateAuthIdentityDTO, sharedContext?: Context): Promise<AuthTypes.AuthIdentityDTO>;
31
+ updateAuthIdentities(data: AuthTypes.UpdateAuthIdentityDTO[], sharedContext?: Context): Promise<AuthTypes.AuthIdentityDTO[]>;
32
+ updateAuthIdentities(data: AuthTypes.UpdateAuthIdentityDTO, sharedContext?: Context): Promise<AuthTypes.AuthIdentityDTO>;
33
+ register(provider: string, authenticationData: AuthenticationInput): Promise<AuthenticationResponse>;
34
+ createProviderIdentities(data: AuthTypes.CreateProviderIdentityDTO[], sharedContext?: Context): Promise<AuthTypes.ProviderIdentityDTO[]>;
35
+ createProviderIdentities(data: AuthTypes.CreateProviderIdentityDTO, sharedContext?: Context): Promise<AuthTypes.ProviderIdentityDTO>;
36
+ updateProviderIdentities(data: AuthTypes.UpdateProviderIdentityDTO[], sharedContext?: Context): Promise<AuthTypes.ProviderIdentityDTO[]>;
37
+ updateProviderIdentities(data: AuthTypes.UpdateProviderIdentityDTO, sharedContext?: Context): Promise<AuthTypes.ProviderIdentityDTO>;
38
+ updateProvider(provider: string, data: Record<string, unknown>): Promise<AuthenticationResponse>;
39
+ authenticate(provider: string, authenticationData: AuthenticationInput): Promise<AuthenticationResponse>;
40
+ validateCallback(provider: string, authenticationData: AuthenticationInput): Promise<AuthenticationResponse>;
41
+ getAuthIdentityProviderService(provider: string): AuthIdentityProviderService;
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=auth-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-module.d.ts","sourceRoot":"","sources":["../../src/services/auth-module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const utils_1 = require("@etohq/framework/utils");
16
+ const _models_1 = require("../models");
17
+ const joiner_config_1 = require("../joiner-config");
18
+ class AuthModuleService extends (0, utils_1.EtoService)({ AuthIdentity: _models_1.AuthIdentity, ProviderIdentity: _models_1.ProviderIdentity }) {
19
+ constructor({ authIdentityService, providerIdentityService, authProviderService, baseRepository, cache, }, moduleDeclaration) {
20
+ // @ts-ignore
21
+ super(...arguments);
22
+ this.moduleDeclaration = moduleDeclaration;
23
+ this.baseRepository_ = baseRepository;
24
+ this.authIdentityService_ = authIdentityService;
25
+ this.authProviderService_ = authProviderService;
26
+ this.providerIdentityService_ = providerIdentityService;
27
+ this.cache_ = cache;
28
+ }
29
+ __joinerConfig() {
30
+ return joiner_config_1.joinerConfig;
31
+ }
32
+ async createAuthIdentities(data, sharedContext = {}) {
33
+ const authIdentities = await this.authIdentityService_.create(data, sharedContext);
34
+ return await this.baseRepository_.serialize(authIdentities, {
35
+ populate: true,
36
+ });
37
+ }
38
+ async updateAuthIdentities(data, sharedContext = {}) {
39
+ const updatedUsers = await this.authIdentityService_.update(data, sharedContext);
40
+ const serializedUsers = await this.baseRepository_.serialize(updatedUsers, {
41
+ populate: true,
42
+ });
43
+ return Array.isArray(data) ? serializedUsers : serializedUsers[0];
44
+ }
45
+ async register(provider, authenticationData) {
46
+ try {
47
+ return await this.authProviderService_.register(provider, authenticationData, this.getAuthIdentityProviderService(provider));
48
+ }
49
+ catch (error) {
50
+ return { success: false, error: error.message };
51
+ }
52
+ }
53
+ async createProviderIdentities(data, sharedContext = {}) {
54
+ const providerIdentities = await this.providerIdentityService_.create(data, sharedContext);
55
+ return await this.baseRepository_.serialize(providerIdentities);
56
+ }
57
+ async updateProviderIdentities(data, sharedContext = {}) {
58
+ const updatedProviders = await this.providerIdentityService_.update(data, sharedContext);
59
+ const serializedProviders = await this.baseRepository_.serialize(updatedProviders);
60
+ return Array.isArray(data) ? serializedProviders : serializedProviders[0];
61
+ }
62
+ async updateProvider(provider, data) {
63
+ try {
64
+ return await this.authProviderService_.update(provider, data, this.getAuthIdentityProviderService(provider));
65
+ }
66
+ catch (error) {
67
+ return { success: false, error: error.message };
68
+ }
69
+ }
70
+ async authenticate(provider, authenticationData) {
71
+ try {
72
+ return await this.authProviderService_.authenticate(provider, authenticationData, this.getAuthIdentityProviderService(provider));
73
+ }
74
+ catch (error) {
75
+ return { success: false, error: error.message };
76
+ }
77
+ }
78
+ async validateCallback(provider, authenticationData) {
79
+ try {
80
+ return await this.authProviderService_.validateCallback(provider, authenticationData, this.getAuthIdentityProviderService(provider));
81
+ }
82
+ catch (error) {
83
+ return { success: false, error: error.message };
84
+ }
85
+ }
86
+ getAuthIdentityProviderService(provider) {
87
+ return {
88
+ retrieve: async ({ entity_id }) => {
89
+ const authIdentities = await this.authIdentityService_.list({
90
+ provider_identities: {
91
+ entity_id,
92
+ provider,
93
+ },
94
+ }, {
95
+ relations: ["provider_identities"],
96
+ });
97
+ if (!authIdentities.length) {
98
+ throw new utils_1.EtoError(utils_1.EtoError.Types.NOT_FOUND, `AuthIdentity with entity_id "${entity_id}" not found`);
99
+ }
100
+ if (authIdentities.length > 1) {
101
+ throw new utils_1.EtoError(utils_1.EtoError.Types.INVALID_DATA, `Multiple authIdentities found for entity_id "${entity_id}"`);
102
+ }
103
+ return await this.baseRepository_.serialize(authIdentities[0]);
104
+ },
105
+ create: async (data) => {
106
+ const normalizedRequest = {
107
+ provider_identities: [
108
+ {
109
+ entity_id: data.entity_id,
110
+ provider_metadata: data.provider_metadata,
111
+ user_metadata: data.user_metadata,
112
+ provider,
113
+ },
114
+ ],
115
+ };
116
+ const createdAuthIdentity = await this.authIdentityService_.create(normalizedRequest);
117
+ return await this.baseRepository_.serialize(createdAuthIdentity);
118
+ },
119
+ update: async (entity_id, data) => {
120
+ const authIdentities = await this.authIdentityService_.list({
121
+ provider_identities: {
122
+ entity_id,
123
+ provider,
124
+ },
125
+ }, {
126
+ relations: ["provider_identities"],
127
+ });
128
+ if (!authIdentities.length) {
129
+ throw new utils_1.EtoError(utils_1.EtoError.Types.NOT_FOUND, `AuthIdentity with entity_id "${entity_id}" not found`);
130
+ }
131
+ if (authIdentities.length > 1) {
132
+ throw new utils_1.EtoError(utils_1.EtoError.Types.INVALID_DATA, `Multiple authIdentities found for entity_id "${entity_id}"`);
133
+ }
134
+ const providerIdentityData = authIdentities[0].provider_identities.find((pi) => pi.provider === provider);
135
+ if (!providerIdentityData) {
136
+ throw new utils_1.EtoError(utils_1.EtoError.Types.NOT_FOUND, `ProviderIdentity with entity_id "${entity_id}" not found`);
137
+ }
138
+ const updatedProviderIdentity = await this.providerIdentityService_.update({
139
+ id: providerIdentityData.id,
140
+ ...data,
141
+ });
142
+ const serializedResponse = await this.baseRepository_.serialize(authIdentities[0]);
143
+ const serializedProviderIdentity = await this.baseRepository_.serialize(updatedProviderIdentity);
144
+ serializedResponse.provider_identities = [
145
+ ...(serializedResponse.provider_identities?.filter((p) => p.provider !== provider) ?? []),
146
+ serializedProviderIdentity,
147
+ ];
148
+ return serializedResponse;
149
+ },
150
+ setState: async (key, value) => {
151
+ if (!this.cache_) {
152
+ throw new utils_1.EtoError(utils_1.EtoError.Types.INVALID_ARGUMENT, "Cache module dependency is required when using OAuth providers that require state");
153
+ }
154
+ // 20 minutes. Can be made configurable if necessary, but this is a good default.
155
+ this.cache_.set(key, value, 1200);
156
+ },
157
+ getState: async (key) => {
158
+ if (!this.cache_) {
159
+ throw new utils_1.EtoError(utils_1.EtoError.Types.INVALID_ARGUMENT, "Cache module dependency is required when using OAuth providers that require state");
160
+ }
161
+ return await this.cache_.get(key);
162
+ },
163
+ };
164
+ }
165
+ }
166
+ exports.default = AuthModuleService;
167
+ __decorate([
168
+ (0, utils_1.InjectManager)(),
169
+ __param(1, (0, utils_1.EtoContext)()),
170
+ __metadata("design:type", Function),
171
+ __metadata("design:paramtypes", [Object, Object]),
172
+ __metadata("design:returntype", Promise)
173
+ ], AuthModuleService.prototype, "createAuthIdentities", null);
174
+ __decorate([
175
+ (0, utils_1.InjectManager)(),
176
+ __param(1, (0, utils_1.EtoContext)()),
177
+ __metadata("design:type", Function),
178
+ __metadata("design:paramtypes", [Object, Object]),
179
+ __metadata("design:returntype", Promise)
180
+ ], AuthModuleService.prototype, "updateAuthIdentities", null);
181
+ __decorate([
182
+ (0, utils_1.InjectManager)(),
183
+ __param(1, (0, utils_1.EtoContext)()),
184
+ __metadata("design:type", Function),
185
+ __metadata("design:paramtypes", [Object, Object]),
186
+ __metadata("design:returntype", Promise)
187
+ ], AuthModuleService.prototype, "createProviderIdentities", null);
188
+ __decorate([
189
+ (0, utils_1.InjectManager)(),
190
+ __param(1, (0, utils_1.EtoContext)()),
191
+ __metadata("design:type", Function),
192
+ __metadata("design:paramtypes", [Object, Object]),
193
+ __metadata("design:returntype", Promise)
194
+ ], AuthModuleService.prototype, "updateProviderIdentities", null);
195
+ //# sourceMappingURL=auth-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-module.js","sourceRoot":"","sources":["../../src/services/auth-module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { AuthenticationInput, AuthenticationResponse, AuthIdentityProviderService, AuthTypes, Logger } from "@etohq/framework/types";
2
+ import { AuthProviderRegistrationPrefix } from "../types";
3
+ type InjectedDependencies = {
4
+ [key: `${typeof AuthProviderRegistrationPrefix}${string}`]: AuthTypes.IAuthProvider;
5
+ logger?: Logger;
6
+ };
7
+ export default class AuthProviderService {
8
+ #private;
9
+ protected dependencies: InjectedDependencies;
10
+ constructor(container: InjectedDependencies);
11
+ protected retrieveProviderRegistration(providerId: string): AuthTypes.IAuthProvider;
12
+ authenticate(provider: string, auth: AuthenticationInput, authIdentityProviderService: AuthIdentityProviderService): Promise<AuthenticationResponse>;
13
+ register(provider: string, auth: AuthenticationInput, authIdentityProviderService: AuthIdentityProviderService): Promise<AuthenticationResponse>;
14
+ update(provider: string, data: Record<string, unknown>, authIdentityProviderService: AuthIdentityProviderService): Promise<AuthenticationResponse>;
15
+ validateCallback(provider: string, auth: AuthenticationInput, authIdentityProviderService: AuthIdentityProviderService): Promise<AuthenticationResponse>;
16
+ }
17
+ export {};
18
+ //# sourceMappingURL=auth-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider.d.ts","sourceRoot":"","sources":["../../src/services/auth-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,SAAS,EACT,MAAM,EACP,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,QAAQ,CAAA;AAEvD,KAAK,oBAAoB,GAAG;IAC1B,CACE,GAAG,EAAE,GAAG,OAAO,8BAA8B,GAAG,MAAM,EAAE,GACvD,SAAS,CAAC,aAAa,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IACtC,SAAS,CAAC,YAAY,EAAE,oBAAoB,CAAA;gBAGhC,SAAS,EAAE,oBAAoB;IAO3C,SAAS,CAAC,4BAA4B,CACpC,UAAU,EAAE,MAAM,GACjB,SAAS,CAAC,aAAa;IAkBpB,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,mBAAmB,EACzB,2BAA2B,EAAE,2BAA2B,GACvD,OAAO,CAAC,sBAAsB,CAAC;IAK5B,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,mBAAmB,EACzB,2BAA2B,EAAE,2BAA2B,GACvD,OAAO,CAAC,sBAAsB,CAAC;IAK5B,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,2BAA2B,EAAE,2BAA2B,GACvD,OAAO,CAAC,sBAAsB,CAAC;IAK5B,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,mBAAmB,EACzB,2BAA2B,EAAE,2BAA2B,GACvD,OAAO,CAAC,sBAAsB,CAAC;CAOnC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _AuthProviderService_logger;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const _types_1 = require("../types");
16
+ class AuthProviderService {
17
+ constructor(container) {
18
+ _AuthProviderService_logger.set(this, void 0);
19
+ this.dependencies = container;
20
+ __classPrivateFieldSet(this, _AuthProviderService_logger, container["logger"]
21
+ ? container.logger
22
+ : console, "f");
23
+ }
24
+ retrieveProviderRegistration(providerId) {
25
+ try {
26
+ return this.dependencies[`${_types_1.AuthProviderRegistrationPrefix}${providerId}`];
27
+ }
28
+ catch (err) {
29
+ if (err.name === "AwilixResolutionError") {
30
+ const errMessage = `
31
+ Unable to retrieve the auth provider with id: ${providerId}
32
+ Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file.`;
33
+ throw new Error(errMessage);
34
+ }
35
+ const errMessage = `Unable to retrieve the auth provider with id: ${providerId}, the following error occurred: ${err.message}`;
36
+ __classPrivateFieldGet(this, _AuthProviderService_logger, "f").error(errMessage);
37
+ throw new Error(errMessage);
38
+ }
39
+ }
40
+ async authenticate(provider, auth, authIdentityProviderService) {
41
+ const providerHandler = this.retrieveProviderRegistration(provider);
42
+ return await providerHandler.authenticate(auth, authIdentityProviderService);
43
+ }
44
+ async register(provider, auth, authIdentityProviderService) {
45
+ const providerHandler = this.retrieveProviderRegistration(provider);
46
+ return await providerHandler.register(auth, authIdentityProviderService);
47
+ }
48
+ async update(provider, data, authIdentityProviderService) {
49
+ const providerHandler = this.retrieveProviderRegistration(provider);
50
+ return await providerHandler.update(data, authIdentityProviderService);
51
+ }
52
+ async validateCallback(provider, auth, authIdentityProviderService) {
53
+ const providerHandler = this.retrieveProviderRegistration(provider);
54
+ return await providerHandler.validateCallback(auth, authIdentityProviderService);
55
+ }
56
+ }
57
+ _AuthProviderService_logger = new WeakMap();
58
+ exports.default = AuthProviderService;
59
+ //# sourceMappingURL=auth-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider.js","sourceRoot":"","sources":["../../src/services/auth-provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAOA,mCAAuD;AASvD,MAAqB,mBAAmB;IAItC,YAAY,SAA+B;QAF3C,8CAAe;QAGb,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,uBAAA,IAAI,+BAAW,SAAS,CAAC,QAAQ,CAAC;YAChC,CAAC,CAAC,SAAS,CAAC,MAAM;YAClB,CAAC,CAAE,OAA6B,MAAA,CAAA;IACpC,CAAC;IAES,4BAA4B,CACpC,UAAkB;QAElB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,uCAA8B,GAAG,UAAU,EAAE,CAAC,CAAA;QAC5E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG;gDACqB,UAAU;qIAC2E,CAAA;gBAC7H,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;YAC7B,CAAC;YAED,MAAM,UAAU,GAAG,iDAAiD,UAAU,mCAAmC,GAAG,CAAC,OAAO,EAAE,CAAA;YAC9H,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YAE9B,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,IAAyB,EACzB,2BAAwD;QAExD,MAAM,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAA;QACnE,OAAO,MAAM,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;IAC9E,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,QAAgB,EAChB,IAAyB,EACzB,2BAAwD;QAExD,MAAM,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAA;QACnE,OAAO,MAAM,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;IAC1E,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,IAA6B,EAC7B,2BAAwD;QAExD,MAAM,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAA;QACnE,OAAO,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,QAAgB,EAChB,IAAyB,EACzB,2BAAwD;QAExD,MAAM,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAA;QACnE,OAAO,MAAM,eAAe,CAAC,gBAAgB,CAC3C,IAAI,EACJ,2BAA2B,CAC5B,CAAA;IACH,CAAC;CACF;;kBArEoB,mBAAmB"}
@@ -0,0 +1,3 @@
1
+ export { default as AuthModuleService } from "./auth-module";
2
+ export { default as AuthProviderService } from "./auth-provider";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AuthProviderService = exports.AuthModuleService = void 0;
7
+ var auth_module_1 = require("./auth-module");
8
+ Object.defineProperty(exports, "AuthModuleService", { enumerable: true, get: function () { return __importDefault(auth_module_1).default; } });
9
+ var auth_provider_1 = require("./auth-provider");
10
+ Object.defineProperty(exports, "AuthProviderService", { enumerable: true, get: function () { return __importDefault(auth_provider_1).default; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;AAAA,6CAA4D;AAAnD,iIAAA,OAAO,OAAqB;AACrC,iDAAgE;AAAvD,qIAAA,OAAO,OAAuB"}
@@ -0,0 +1 @@
1
+ {"root":["../src/index.ts","../src/joiner-config.ts","../src/loaders/providers.ts","../src/migrations/Migration20240205025928.ts","../src/migrations/Migration20240529080336.ts","../src/migrations/Migration20241202100304.ts","../src/models/auth-identity.ts","../src/models/index.ts","../src/models/provider-identity.ts","../src/services/auth-module.ts","../src/services/auth-provider.ts","../src/services/index.ts","../src/types/index.ts"],"version":"5.6.2"}
@@ -0,0 +1,26 @@
1
+ import { Logger, ModuleProviderExports, ModuleServiceInitializeOptions } from "@etohq/framework/types";
2
+ export type InitializeModuleInjectableDependencies = {
3
+ logger?: Logger;
4
+ };
5
+ export declare const AuthIdentifiersRegistrationName = "auth_providers_identifier";
6
+ export declare const AuthProviderRegistrationPrefix = "au_";
7
+ export type AuthModuleOptions = Partial<ModuleServiceInitializeOptions> & {
8
+ /**
9
+ * Providers to be registered
10
+ */
11
+ providers?: {
12
+ /**
13
+ * The module provider to be registered
14
+ */
15
+ resolve: string | ModuleProviderExports;
16
+ /**
17
+ * The id of the provider
18
+ */
19
+ id: string;
20
+ /**
21
+ * key value pair of the configuration to be passed to the provider constructor
22
+ */
23
+ options?: Record<string, unknown>;
24
+ }[];
25
+ };
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,qBAAqB,EACrB,8BAA8B,EAC/B,MAAM,wBAAwB,CAAA;AAE/B,MAAM,MAAM,sCAAsC,GAAG;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,+BAA+B,8BAA8B,CAAA;AAE1E,eAAO,MAAM,8BAA8B,QAAQ,CAAA;AAEnD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,8BAA8B,CAAC,GAAG;IACxE;;OAEG;IACH,SAAS,CAAC,EAAE;QACV;;WAEG;QACH,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAAA;QACvC;;WAEG;QACH,EAAE,EAAE,MAAM,CAAA;QACV;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAClC,EAAE,CAAA;CACJ,CAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthProviderRegistrationPrefix = exports.AuthIdentifiersRegistrationName = void 0;
4
+ exports.AuthIdentifiersRegistrationName = "auth_providers_identifier";
5
+ exports.AuthProviderRegistrationPrefix = "au_";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAUa,QAAA,+BAA+B,GAAG,2BAA2B,CAAA;AAE7D,QAAA,8BAA8B,GAAG,KAAK,CAAA"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@etohq/auth",
3
+ "version": "1.0.0",
4
+ "description": "Eto Auth module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "!dist/**/__tests__",
10
+ "!dist/**/__mocks__",
11
+ "!dist/**/__fixtures__"
12
+ ],
13
+ "engines": {
14
+ "node": ">=20"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/etohq/eto",
19
+ "directory": "packages/auth"
20
+ },
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "author": "Eto",
25
+ "license": "MIT",
26
+ "scripts": {
27
+ "watch": "tsc --build --watch",
28
+ "watch:test": "tsc --build tsconfig.spec.json --watch",
29
+ "resolve:aliases": "tsc --showConfig -p tsconfig.json > tsconfig.resolved.json && tsc-alias -p tsconfig.resolved.json && rimraf tsconfig.resolved.json", "build": "rimraf dist && tsc --build && npm run resolve:aliases",
30
+ "test": "jest --runInBand --bail --passWithNoTests --forceExit -- src",
31
+ "test:integration": "jest --forceExit -- integration-tests/**/__tests__/**/*.ts",
32
+ "migration:initial": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts eto-mikro-orm migration:create --initial",
33
+ "migration:create": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts eto-mikro-orm migration:create",
34
+ "migration:up": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts eto-mikro-orm migration:up",
35
+ "orm:cache:clear": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts eto-mikro-orm cache:clear"
36
+ },
37
+ "devDependencies": {
38
+ "@etohq/framework": "^1.0.0",
39
+ "@etohq/test-utils": "^1.0.0",
40
+ "@mikro-orm/cli": "5.9.7",
41
+ "@mikro-orm/core": "5.9.7",
42
+ "@mikro-orm/migrations": "5.9.7",
43
+ "@mikro-orm/postgresql": "5.9.7",
44
+ "@swc/core": "^1.7.28",
45
+ "@swc/jest": "^0.2.36",
46
+ "@types/jest": "^29.5.14",
47
+ "awilix": "^8.0.1",
48
+ "jest": "^29.7.0",
49
+ "rimraf": "^5.0.2",
50
+ "tsc-alias": "^1.8.6",
51
+ "typescript": "^5.6.2"
52
+ },
53
+ "peerDependencies": {
54
+ "@etohq/framework": "^1.0.0",
55
+ "@mikro-orm/core": "5.9.7",
56
+ "@mikro-orm/migrations": "5.9.7",
57
+ "@mikro-orm/postgresql": "5.9.7",
58
+ "awilix": "^8.0.1"
59
+ }
60
+ }