@acmekit/user 2.13.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.
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 +8 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/migrations/Migration20240214033943.d.ts +6 -0
  7. package/dist/migrations/Migration20240214033943.d.ts.map +1 -0
  8. package/dist/migrations/Migration20240214033943.js +25 -0
  9. package/dist/migrations/Migration20240214033943.js.map +1 -0
  10. package/dist/migrations/Migration20240703095850.d.ts +6 -0
  11. package/dist/migrations/Migration20240703095850.d.ts.map +1 -0
  12. package/dist/migrations/Migration20240703095850.js +17 -0
  13. package/dist/migrations/Migration20240703095850.js.map +1 -0
  14. package/dist/migrations/Migration20241202103352.d.ts +6 -0
  15. package/dist/migrations/Migration20241202103352.d.ts.map +1 -0
  16. package/dist/migrations/Migration20241202103352.js +20 -0
  17. package/dist/migrations/Migration20241202103352.js.map +1 -0
  18. package/dist/models/index.d.ts +3 -0
  19. package/dist/models/index.d.ts.map +1 -0
  20. package/dist/models/index.js +8 -0
  21. package/dist/models/index.js.map +1 -0
  22. package/dist/models/invite.d.ts +9 -0
  23. package/dist/models/invite.d.ts.map +1 -0
  24. package/dist/models/invite.js +25 -0
  25. package/dist/models/invite.js.map +1 -0
  26. package/dist/models/user.d.ts +9 -0
  27. package/dist/models/user.d.ts.map +1 -0
  28. package/dist/models/user.js +21 -0
  29. package/dist/models/user.js.map +1 -0
  30. package/dist/services/index.d.ts +2 -0
  31. package/dist/services/index.d.ts.map +1 -0
  32. package/dist/services/index.js +9 -0
  33. package/dist/services/index.js.map +1 -0
  34. package/dist/services/user-module.d.ts +54 -0
  35. package/dist/services/user-module.d.ts.map +1 -0
  36. package/dist/services/user-module.js +243 -0
  37. package/dist/services/user-module.js.map +1 -0
  38. package/dist/tsconfig.tsbuildinfo +1 -0
  39. package/dist/types/index.d.ts +6 -0
  40. package/dist/types/index.d.ts.map +1 -0
  41. package/dist/types/index.js +18 -0
  42. package/dist/types/index.js.map +1 -0
  43. package/dist/types/services/index.d.ts +2 -0
  44. package/dist/types/services/index.d.ts.map +1 -0
  45. package/dist/types/services/index.js +38 -0
  46. package/dist/types/services/index.js.map +1 -0
  47. package/dist/types/services/invite.d.ts +6 -0
  48. package/dist/types/services/invite.d.ts.map +1 -0
  49. package/dist/types/services/invite.js +3 -0
  50. package/dist/types/services/invite.js.map +1 -0
  51. package/dist/utils/utils.d.ts +2 -0
  52. package/dist/utils/utils.d.ts.map +1 -0
  53. package/dist/utils/utils.js +14 -0
  54. package/dist/utils/utils.js.map +1 -0
  55. package/package.json +48 -0
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # User Module
2
+
3
+ The User Module is AcmeKit’s user engine.
@@ -0,0 +1,6 @@
1
+ import { UserModuleService } from "./services";
2
+ declare const _default: import("@acmekit/types").ModuleExports<typeof UserModuleService> & {
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;;;;AAG7C,wBAEE"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const _services_1 = require("./services");
4
+ const utils_1 = require("@acmekit/framework/utils");
5
+ exports.default = (0, utils_1.Module)(utils_1.Modules.USER, {
6
+ service: _services_1.UserModuleService,
7
+ });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,yCAA6C;AAC7C,oDAA0D;AAE1D,kBAAe,IAAA,cAAM,EAAC,eAAO,CAAC,IAAI,EAAE;IAClC,OAAO,EAAE,6BAAiB;CAC3B,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { Migration } from "@acmekit/framework/mikro-orm/migrations";
2
+ export declare class Migration20240214033943 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=Migration20240214033943.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20240214033943.d.ts","sourceRoot":"","sources":["../../src/migrations/Migration20240214033943.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAEnE,qBAAa,uBAAwB,SAAQ,SAAS;IAC9C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IA2CnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20240214033943 = void 0;
4
+ const utils_1 = require("@acmekit/framework/utils");
5
+ const migrations_1 = require("@acmekit/framework/mikro-orm/migrations");
6
+ class Migration20240214033943 extends migrations_1.Migration {
7
+ async up() {
8
+ this.addSql('create table if not exists "invite" ("id" text not null, "email" text not null, "accepted" boolean not null default false, "token" text not null, "expires_at" timestamptz not null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "invite_pkey" primary key ("id"));');
9
+ this.addSql('alter table "invite" add column if not exists "email" text not null;');
10
+ this.addSql((0, utils_1.generatePostgresAlterColummnIfExistStatement)("invite", ["user_email"], "DROP NOT NULL"));
11
+ this.addSql('CREATE UNIQUE INDEX IF NOT EXISTS "IDX_invite_email" ON "invite" (email) WHERE deleted_at IS NULL;');
12
+ this.addSql('CREATE INDEX IF NOT EXISTS "IDX_invite_token" ON "invite" (token) WHERE deleted_at IS NULL;');
13
+ this.addSql('CREATE INDEX IF NOT EXISTS "IDX_invite_deleted_at" ON "invite" (deleted_at) WHERE deleted_at IS NOT NULL;');
14
+ this.addSql('create table if not exists "user" ("id" text not null, "first_name" text null, "last_name" text null, "email" text not null, "avatar_url" text null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "user_pkey" primary key ("id"));');
15
+ this.addSql('alter table "user" add column if not exists "avatar_url" text null;');
16
+ this.addSql('CREATE INDEX IF NOT EXISTS "IDX_user_email" ON "user" (email) WHERE deleted_at IS NULL;');
17
+ this.addSql('CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" (deleted_at) WHERE deleted_at IS NOT NULL;');
18
+ }
19
+ async down() {
20
+ this.addSql('drop table if exists "invite" cascade;');
21
+ this.addSql('drop table if exists "user" cascade;');
22
+ }
23
+ }
24
+ exports.Migration20240214033943 = Migration20240214033943;
25
+ //# sourceMappingURL=Migration20240214033943.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20240214033943.js","sourceRoot":"","sources":["../../src/migrations/Migration20240214033943.ts"],"names":[],"mappings":";;;AAAA,oDAAuF;AACvF,wEAAmE;AAEnE,MAAa,uBAAwB,SAAQ,sBAAS;IACpD,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,MAAM,CACT,4XAA4X,CAC7X,CAAA;QACD,IAAI,CAAC,MAAM,CACT,sEAAsE,CACvE,CAAA;QAED,IAAI,CAAC,MAAM,CACT,IAAA,oDAA4C,EAC1C,QAAQ,EACR,CAAC,YAAY,CAAC,EACd,eAAe,CAChB,CACF,CAAA;QAED,IAAI,CAAC,MAAM,CACT,oGAAoG,CACrG,CAAA;QAED,IAAI,CAAC,MAAM,CACT,6FAA6F,CAC9F,CAAA;QACD,IAAI,CAAC,MAAM,CACT,2GAA2G,CAC5G,CAAA;QAED,IAAI,CAAC,MAAM,CACT,0VAA0V,CAC3V,CAAA;QAED,IAAI,CAAC,MAAM,CACT,qEAAqE,CACtE,CAAA;QAED,IAAI,CAAC,MAAM,CACT,yFAAyF,CAC1F,CAAA;QACD,IAAI,CAAC,MAAM,CACT,uGAAuG,CACxG,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAA;QAErD,IAAI,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAA;IACrD,CAAC;CACF;AAjDD,0DAiDC"}
@@ -0,0 +1,6 @@
1
+ import { Migration } from "@acmekit/framework/mikro-orm/migrations";
2
+ export declare class Migration20240703095850 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=Migration20240703095850.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20240703095850.d.ts","sourceRoot":"","sources":["../../src/migrations/Migration20240703095850.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAEnE,qBAAa,uBAAwB,SAAQ,SAAS;IAC9C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20240703095850 = void 0;
4
+ const migrations_1 = require("@acmekit/framework/mikro-orm/migrations");
5
+ class Migration20240703095850 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql('drop index if exists "IDX_user_email";');
8
+ this.addSql('CREATE UNIQUE INDEX "IDX_user_email" ON "user" (email) WHERE deleted_at IS NULL;');
9
+ // Adding this log here as the point of failure is not in this function, but bundled up when running all pending migration
10
+ console.info(`Note: If the index "IDX_user_email" fails to create, then delete any existing users with duplicate emails before retrying the migration.`);
11
+ }
12
+ async down() {
13
+ this.addSql('CREATE INDEX IF NOT EXISTS "IDX_user_email" ON "user" (email) WHERE deleted_at IS NULL;');
14
+ }
15
+ }
16
+ exports.Migration20240703095850 = Migration20240703095850;
17
+ //# sourceMappingURL=Migration20240703095850.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20240703095850.js","sourceRoot":"","sources":["../../src/migrations/Migration20240703095850.ts"],"names":[],"mappings":";;;AAAA,wEAAmE;AAEnE,MAAa,uBAAwB,SAAQ,sBAAS;IACpD,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAA;QAErD,IAAI,CAAC,MAAM,CACT,kFAAkF,CACnF,CAAA;QACD,0HAA0H;QAC1H,OAAO,CAAC,IAAI,CACV,0IAA0I,CAC3I,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,CACT,yFAAyF,CAC1F,CAAA;IACH,CAAC;CACF;AAlBD,0DAkBC"}
@@ -0,0 +1,6 @@
1
+ import { Migration } from "@acmekit/framework/mikro-orm/migrations";
2
+ export declare class Migration20241202103352 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=Migration20241202103352.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20241202103352.d.ts","sourceRoot":"","sources":["../../src/migrations/Migration20241202103352.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,qBAAa,uBAAwB,SAAQ,SAAS;IAE9C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAQnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ5B"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20241202103352 = void 0;
4
+ const migrations_1 = require("@acmekit/framework/mikro-orm/migrations");
5
+ class Migration20241202103352 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql('drop index if exists "IDX_invite_email";');
8
+ this.addSql('CREATE UNIQUE INDEX IF NOT EXISTS "IDX_invite_email_unique" ON "invite" (email) WHERE deleted_at IS NULL;');
9
+ this.addSql('drop index if exists "IDX_user_email";');
10
+ this.addSql('CREATE UNIQUE INDEX IF NOT EXISTS "IDX_user_email_unique" ON "user" (email) WHERE deleted_at IS NULL;');
11
+ }
12
+ async down() {
13
+ this.addSql('drop index if exists "IDX_invite_email_unique";');
14
+ this.addSql('CREATE UNIQUE INDEX IF NOT EXISTS "IDX_invite_email" ON "invite" (email) WHERE deleted_at IS NULL;');
15
+ this.addSql('drop index if exists "IDX_user_email_unique";');
16
+ this.addSql('CREATE UNIQUE INDEX IF NOT EXISTS "IDX_user_email" ON "user" (email) WHERE deleted_at IS NULL;');
17
+ }
18
+ }
19
+ exports.Migration20241202103352 = Migration20241202103352;
20
+ //# sourceMappingURL=Migration20241202103352.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20241202103352.js","sourceRoot":"","sources":["../../src/migrations/Migration20241202103352.ts"],"names":[],"mappings":";;;AAAA,wEAAoE;AAEpE,MAAa,uBAAwB,SAAQ,sBAAS;IAEpD,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,2GAA2G,CAAC,CAAC;QAEzH,IAAI,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,uGAAuG,CAAC,CAAC;IACvH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,oGAAoG,CAAC,CAAC;QAElH,IAAI,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,gGAAgG,CAAC,CAAC;IAChH,CAAC;CAEF;AAlBD,0DAkBC"}
@@ -0,0 +1,3 @@
1
+ export { User } from "./user";
2
+ export { Invite } from "./invite";
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,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Invite = exports.User = void 0;
4
+ var user_1 = require("./user");
5
+ Object.defineProperty(exports, "User", { enumerable: true, get: function () { return user_1.User; } });
6
+ var invite_1 = require("./invite");
7
+ Object.defineProperty(exports, "Invite", { enumerable: true, get: function () { return invite_1.Invite; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,mCAAiC;AAAxB,gGAAA,MAAM,OAAA"}
@@ -0,0 +1,9 @@
1
+ export declare const Invite: import("@acmekit/framework/utils").DmlEntity<import("@acmekit/framework/utils").DMLEntitySchemaBuilder<{
2
+ id: import("@acmekit/framework/utils").PrimaryKeyModifier<string, import("@acmekit/framework/utils").IdProperty>;
3
+ email: import("@acmekit/framework/utils").TextProperty;
4
+ accepted: import("@acmekit/framework/utils").BooleanProperty;
5
+ token: import("@acmekit/framework/utils").TextProperty;
6
+ expires_at: import("@acmekit/framework/utils").DateTimeProperty;
7
+ metadata: import("@acmekit/framework/utils").NullableModifier<Record<string, unknown>, import("@acmekit/framework/utils").JSONProperty>;
8
+ }>, "invite">;
9
+ //# sourceMappingURL=invite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../src/models/invite.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;aAmBf,CAAA"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Invite = void 0;
4
+ const utils_1 = require("@acmekit/framework/utils");
5
+ exports.Invite = utils_1.model
6
+ .define("invite", {
7
+ id: utils_1.model.id({ prefix: "invite" }).primaryKey(),
8
+ email: utils_1.model.text().searchable(),
9
+ accepted: utils_1.model.boolean().default(false),
10
+ token: utils_1.model.text(),
11
+ expires_at: utils_1.model.dateTime(),
12
+ metadata: utils_1.model.json().nullable(),
13
+ })
14
+ .indexes([
15
+ {
16
+ on: ["email"],
17
+ unique: true,
18
+ where: "deleted_at IS NULL",
19
+ },
20
+ {
21
+ on: ["token"],
22
+ where: "deleted_at IS NULL",
23
+ },
24
+ ]);
25
+ //# sourceMappingURL=invite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite.js","sourceRoot":"","sources":["../../src/models/invite.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEnC,QAAA,MAAM,GAAG,aAAK;KACxB,MAAM,CAAC,QAAQ,EAAE;IAChB,EAAE,EAAE,aAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE;IAC/C,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IAChC,QAAQ,EAAE,aAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACxC,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE;IACnB,UAAU,EAAE,aAAK,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,OAAO,CAAC;IACP;QACE,EAAE,EAAE,CAAC,OAAO,CAAC;QACb,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,EAAE,EAAE,CAAC,OAAO,CAAC;QACb,KAAK,EAAE,oBAAoB;KAC5B;CACF,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ export declare const User: import("@acmekit/framework/utils").DmlEntity<import("@acmekit/framework/utils").DMLEntitySchemaBuilder<{
2
+ id: import("@acmekit/framework/utils").PrimaryKeyModifier<string, import("@acmekit/framework/utils").IdProperty>;
3
+ first_name: import("@acmekit/framework/utils").NullableModifier<string, import("@acmekit/framework/utils").TextProperty>;
4
+ last_name: import("@acmekit/framework/utils").NullableModifier<string, import("@acmekit/framework/utils").TextProperty>;
5
+ email: import("@acmekit/framework/utils").TextProperty;
6
+ avatar_url: import("@acmekit/framework/utils").NullableModifier<string, import("@acmekit/framework/utils").TextProperty>;
7
+ metadata: import("@acmekit/framework/utils").NullableModifier<Record<string, unknown>, import("@acmekit/framework/utils").JSONProperty>;
8
+ }>, "user">;
9
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/models/user.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI;;;;;;;WAeb,CAAA"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.User = void 0;
4
+ const utils_1 = require("@acmekit/framework/utils");
5
+ exports.User = utils_1.model
6
+ .define("user", {
7
+ id: utils_1.model.id({ prefix: "user" }).primaryKey(),
8
+ first_name: utils_1.model.text().searchable().nullable(),
9
+ last_name: utils_1.model.text().searchable().nullable(),
10
+ email: utils_1.model.text().searchable(),
11
+ avatar_url: utils_1.model.text().nullable(),
12
+ metadata: utils_1.model.json().nullable(),
13
+ })
14
+ .indexes([
15
+ {
16
+ unique: true,
17
+ on: ["email"],
18
+ where: "deleted_at IS NULL",
19
+ },
20
+ ]);
21
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/models/user.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEnC,QAAA,IAAI,GAAG,aAAK;KACtB,MAAM,CAAC,MAAM,EAAE;IACd,EAAE,EAAE,aAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE;IAC7C,UAAU,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;IAC/C,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IAChC,UAAU,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,OAAO,CAAC;IACP;QACE,MAAM,EAAE,IAAI;QACZ,EAAE,EAAE,CAAC,OAAO,CAAC;QACb,KAAK,EAAE,oBAAoB;KAC5B;CACF,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { default as UserModuleService } from "./user-module";
2
+ //# 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"}
@@ -0,0 +1,9 @@
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.UserModuleService = void 0;
7
+ var user_module_1 = require("./user-module");
8
+ Object.defineProperty(exports, "UserModuleService", { enumerable: true, get: function () { return __importDefault(user_module_1).default; } });
9
+ //# 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"}
@@ -0,0 +1,54 @@
1
+ import { Context, DAL, InferEntityType, InternalModuleDeclaration, ModulesSdkTypes, ProjectConfigOptions, UserTypes } from "@acmekit/framework/types";
2
+ import { Invite, User } from "../models";
3
+ type InjectedDependencies = {
4
+ baseRepository: DAL.RepositoryService;
5
+ userService: ModulesSdkTypes.IAcmeKitInternalService<any>;
6
+ inviteService: ModulesSdkTypes.IAcmeKitInternalService<any>;
7
+ };
8
+ declare const UserModuleService_base: import("@acmekit/framework/utils").AcmeKitServiceReturnType<{
9
+ User: {
10
+ dto: UserTypes.UserDTO;
11
+ };
12
+ Invite: {
13
+ dto: UserTypes.InviteDTO;
14
+ };
15
+ }>;
16
+ export default class UserModuleService extends UserModuleService_base implements UserTypes.IUserModuleService {
17
+ protected baseRepository_: DAL.RepositoryService;
18
+ protected readonly userService_: ModulesSdkTypes.IAcmeKitInternalService<InferEntityType<typeof User>>;
19
+ protected readonly inviteService_: ModulesSdkTypes.IAcmeKitInternalService<InferEntityType<typeof Invite>>;
20
+ protected readonly config: {
21
+ jwtSecret: string;
22
+ jwtPublicKey?: string;
23
+ jwt_verify_options: ProjectConfigOptions["http"]["jwtVerifyOptions"];
24
+ jwtOptions: ProjectConfigOptions["http"]["jwtOptions"] & {
25
+ expiresIn: number;
26
+ };
27
+ };
28
+ constructor({ userService, inviteService, baseRepository }: InjectedDependencies, moduleDeclaration: InternalModuleDeclaration);
29
+ validateInviteToken(token: string, sharedContext?: Context): Promise<UserTypes.InviteDTO>;
30
+ refreshInviteTokens(inviteIds: string[], sharedContext?: Context): Promise<UserTypes.InviteDTO[]>;
31
+ refreshInviteTokens_(inviteIds: string[], sharedContext?: Context): Promise<{
32
+ id: string;
33
+ email: string;
34
+ accepted: boolean;
35
+ token: string;
36
+ expires_at: Date;
37
+ metadata: Record<string, unknown> | null;
38
+ created_at: Date;
39
+ updated_at: Date;
40
+ deleted_at: Date | null;
41
+ }[]>;
42
+ createUsers(data: UserTypes.CreateUserDTO[], sharedContext?: Context): Promise<UserTypes.UserDTO[]>;
43
+ createUsers(data: UserTypes.CreateUserDTO, sharedContext?: Context): Promise<UserTypes.UserDTO>;
44
+ updateUsers(data: UserTypes.UpdateUserDTO[], sharedContext?: Context): Promise<UserTypes.UserDTO[]>;
45
+ updateUsers(data: UserTypes.UpdateUserDTO, sharedContext?: Context): Promise<UserTypes.UserDTO>;
46
+ createInvites(data: UserTypes.CreateInviteDTO[], sharedContext?: Context): Promise<UserTypes.InviteDTO[]>;
47
+ createInvites(data: UserTypes.CreateInviteDTO, sharedContext?: Context): Promise<UserTypes.InviteDTO>;
48
+ private createInvites_;
49
+ updateInvites(data: UserTypes.UpdateInviteDTO[], sharedContext?: Context): Promise<UserTypes.InviteDTO[]>;
50
+ updateInvites(data: UserTypes.UpdateInviteDTO, sharedContext?: Context): Promise<UserTypes.InviteDTO>;
51
+ private generateToken;
52
+ }
53
+ export {};
54
+ //# sourceMappingURL=user-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-module.d.ts","sourceRoot":"","sources":["../../src/services/user-module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,243 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const utils_1 = require("@acmekit/framework/utils");
19
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
20
+ const node_crypto_1 = __importDefault(require("node:crypto"));
21
+ const _models_1 = require("../models");
22
+ const utils_2 = require("../utils/utils");
23
+ const DEFAULT_VALID_INVITE_DURATION_SECONDS = 60 * 60 * 24;
24
+ class UserModuleService extends (0, utils_1.AcmeKitService)({ User: _models_1.User, Invite: _models_1.Invite }) {
25
+ constructor({ userService, inviteService, baseRepository }, moduleDeclaration) {
26
+ // @ts-ignore
27
+ super(...arguments);
28
+ this.baseRepository_ = baseRepository;
29
+ this.userService_ = userService;
30
+ this.inviteService_ = inviteService;
31
+ this.config = {
32
+ jwtSecret: moduleDeclaration["jwt_secret"],
33
+ jwtPublicKey: moduleDeclaration["jwt_public_key"],
34
+ jwt_verify_options: moduleDeclaration["jwt_verify_options"],
35
+ jwtOptions: {
36
+ ...moduleDeclaration["jwt_options"],
37
+ expiresIn: moduleDeclaration["valid_duration"] ??
38
+ moduleDeclaration["jwt_options"]?.expiresIn ??
39
+ DEFAULT_VALID_INVITE_DURATION_SECONDS,
40
+ },
41
+ };
42
+ if (!this.config.jwtSecret) {
43
+ throw new utils_1.AcmeKitError(utils_1.AcmeKitError.Types.INVALID_DATA, "No jwt_secret was provided in the UserModule's options. Please add one.");
44
+ }
45
+ }
46
+ async validateInviteToken(token, sharedContext = {}) {
47
+ const options = {
48
+ ...(this.config.jwt_verify_options ?? this.config.jwtOptions),
49
+ complete: true,
50
+ };
51
+ if (!options.algorithms && options.algorithm) {
52
+ options.algorithms = [options.algorithm];
53
+ delete options.algorithm;
54
+ }
55
+ const decoded = jsonwebtoken_1.default.verify(token, this.config.jwtPublicKey ?? this.config.jwtSecret, options);
56
+ const invite = await this.inviteService_.retrieve(decoded.payload.id, {}, sharedContext);
57
+ if (invite.expires_at < new Date()) {
58
+ throw new utils_1.AcmeKitError(utils_1.AcmeKitError.Types.INVALID_DATA, "The invite has expired");
59
+ }
60
+ return await this.baseRepository_.serialize(invite);
61
+ }
62
+ async refreshInviteTokens(inviteIds, sharedContext = {}) {
63
+ const invites = await this.refreshInviteTokens_(inviteIds, sharedContext);
64
+ const serializedInvites = await this.baseRepository_.serialize(invites);
65
+ (0, utils_1.moduleEventBuilderFactory)({
66
+ eventName: utils_1.UserEvents.INVITE_TOKEN_GENERATED,
67
+ source: utils_1.Modules.USER,
68
+ action: utils_1.CommonEvents.CREATED,
69
+ object: "invite",
70
+ })({
71
+ data: serializedInvites,
72
+ sharedContext,
73
+ });
74
+ return serializedInvites;
75
+ }
76
+ async refreshInviteTokens_(inviteIds, sharedContext = {}) {
77
+ const [invites, count] = await this.inviteService_.listAndCount({ id: inviteIds }, {}, sharedContext);
78
+ if (count !== inviteIds.length) {
79
+ const missing = (0, utils_1.arrayDifference)(inviteIds, invites.map((invite) => invite.id));
80
+ if (missing.length > 0) {
81
+ throw new utils_1.AcmeKitError(utils_1.AcmeKitError.Types.INVALID_DATA, `The following invites do not exist: ${missing.join(", ")}`);
82
+ }
83
+ }
84
+ const expiresAt = (0, utils_2.getExpiresAt)(this.config.jwtOptions.expiresIn);
85
+ const updates = invites.map((invite) => {
86
+ return {
87
+ id: invite.id,
88
+ expires_at: expiresAt,
89
+ token: this.generateToken({ id: invite.id, email: invite.email }),
90
+ };
91
+ });
92
+ return await this.inviteService_.update(updates, sharedContext);
93
+ }
94
+ // @ts-expect-error
95
+ async createUsers(data, sharedContext = {}) {
96
+ const input = Array.isArray(data) ? data : [data];
97
+ const users = await this.userService_.create(input, sharedContext);
98
+ const serializedUsers = await this.baseRepository_.serialize(users);
99
+ return Array.isArray(data) ? serializedUsers : serializedUsers[0];
100
+ }
101
+ // @ts-expect-error
102
+ async updateUsers(data, sharedContext = {}) {
103
+ const input = Array.isArray(data) ? data : [data];
104
+ const updatedUsers = await this.userService_.update(input, sharedContext);
105
+ const serializedUsers = await this.baseRepository_.serialize(updatedUsers);
106
+ return Array.isArray(data) ? serializedUsers : serializedUsers[0];
107
+ }
108
+ // @ts-expect-error
109
+ async createInvites(data, sharedContext = {}) {
110
+ const input = Array.isArray(data) ? data : [data];
111
+ const invites = await this.createInvites_(input, sharedContext);
112
+ const serializedInvites = await this.baseRepository_.serialize(invites);
113
+ (0, utils_1.moduleEventBuilderFactory)({
114
+ eventName: utils_1.UserEvents.INVITE_TOKEN_GENERATED,
115
+ source: utils_1.Modules.USER,
116
+ action: "token_generated",
117
+ object: "invite",
118
+ })({
119
+ data: serializedInvites,
120
+ sharedContext,
121
+ });
122
+ return Array.isArray(data) ? serializedInvites : serializedInvites[0];
123
+ }
124
+ async createInvites_(data, sharedContext = {}) {
125
+ const alreadyExistingUsers = await this.listUsers({
126
+ email: data.map((d) => d.email),
127
+ });
128
+ if (alreadyExistingUsers.length) {
129
+ throw new utils_1.AcmeKitError(utils_1.AcmeKitError.Types.INVALID_DATA, `User account for following email(s) already exist: ${alreadyExistingUsers
130
+ .map((u) => u.email)
131
+ .join(", ")}`);
132
+ }
133
+ const expiresAt = (0, utils_2.getExpiresAt)(this.config.jwtOptions.expiresIn);
134
+ const toCreate = data.map((invite) => {
135
+ const id = (0, utils_1.generateEntityId)(invite.id, "invite");
136
+ return {
137
+ ...invite,
138
+ id,
139
+ expires_at: expiresAt,
140
+ token: this.generateToken({ id, email: invite.email }),
141
+ };
142
+ });
143
+ return await this.inviteService_.create(toCreate, sharedContext);
144
+ }
145
+ // @ts-expect-error
146
+ async updateInvites(data, sharedContext = {}) {
147
+ const input = Array.isArray(data) ? data : [data];
148
+ const updatedInvites = await this.inviteService_.update(input, sharedContext);
149
+ const serializedInvites = await this.baseRepository_.serialize(updatedInvites);
150
+ (0, utils_1.moduleEventBuilderFactory)({
151
+ eventName: utils_1.UserEvents.INVITE_TOKEN_GENERATED,
152
+ source: utils_1.Modules.USER,
153
+ action: "token_generated",
154
+ object: "invite",
155
+ })({
156
+ data: serializedInvites,
157
+ sharedContext,
158
+ });
159
+ return Array.isArray(data) ? serializedInvites : serializedInvites[0];
160
+ }
161
+ generateToken(data) {
162
+ const jwtId = this.config.jwtOptions.jwtid ?? node_crypto_1.default.randomUUID();
163
+ const token = (0, utils_1.generateJwtToken)(data, {
164
+ secret: this.config.jwtSecret,
165
+ jwtOptions: {
166
+ ...this.config.jwtOptions,
167
+ jwtid: jwtId,
168
+ },
169
+ });
170
+ return token;
171
+ }
172
+ }
173
+ exports.default = UserModuleService;
174
+ __decorate([
175
+ (0, utils_1.InjectManager)(),
176
+ __param(1, (0, utils_1.AcmeKitContext)()),
177
+ __metadata("design:type", Function),
178
+ __metadata("design:paramtypes", [String, Object]),
179
+ __metadata("design:returntype", Promise)
180
+ ], UserModuleService.prototype, "validateInviteToken", null);
181
+ __decorate([
182
+ (0, utils_1.InjectManager)(),
183
+ (0, utils_1.EmitEvents)(),
184
+ __param(1, (0, utils_1.AcmeKitContext)()),
185
+ __metadata("design:type", Function),
186
+ __metadata("design:paramtypes", [Array, Object]),
187
+ __metadata("design:returntype", Promise)
188
+ ], UserModuleService.prototype, "refreshInviteTokens", null);
189
+ __decorate([
190
+ (0, utils_1.InjectTransactionManager)(),
191
+ __param(1, (0, utils_1.AcmeKitContext)()),
192
+ __metadata("design:type", Function),
193
+ __metadata("design:paramtypes", [Array, Object]),
194
+ __metadata("design:returntype", Promise)
195
+ ], UserModuleService.prototype, "refreshInviteTokens_", null);
196
+ __decorate([
197
+ (0, utils_1.InjectManager)(),
198
+ (0, utils_1.EmitEvents)()
199
+ // @ts-expect-error
200
+ ,
201
+ __param(1, (0, utils_1.AcmeKitContext)()),
202
+ __metadata("design:type", Function),
203
+ __metadata("design:paramtypes", [Object, Object]),
204
+ __metadata("design:returntype", Promise)
205
+ ], UserModuleService.prototype, "createUsers", null);
206
+ __decorate([
207
+ (0, utils_1.InjectManager)(),
208
+ (0, utils_1.EmitEvents)()
209
+ // @ts-expect-error
210
+ ,
211
+ __param(1, (0, utils_1.AcmeKitContext)()),
212
+ __metadata("design:type", Function),
213
+ __metadata("design:paramtypes", [Object, Object]),
214
+ __metadata("design:returntype", Promise)
215
+ ], UserModuleService.prototype, "updateUsers", null);
216
+ __decorate([
217
+ (0, utils_1.InjectManager)(),
218
+ (0, utils_1.EmitEvents)()
219
+ // @ts-expect-error
220
+ ,
221
+ __param(1, (0, utils_1.AcmeKitContext)()),
222
+ __metadata("design:type", Function),
223
+ __metadata("design:paramtypes", [Object, Object]),
224
+ __metadata("design:returntype", Promise)
225
+ ], UserModuleService.prototype, "createInvites", null);
226
+ __decorate([
227
+ (0, utils_1.InjectTransactionManager)(),
228
+ __param(1, (0, utils_1.AcmeKitContext)()),
229
+ __metadata("design:type", Function),
230
+ __metadata("design:paramtypes", [Array, Object]),
231
+ __metadata("design:returntype", Promise)
232
+ ], UserModuleService.prototype, "createInvites_", null);
233
+ __decorate([
234
+ (0, utils_1.InjectManager)(),
235
+ (0, utils_1.EmitEvents)()
236
+ // @ts-expect-error
237
+ ,
238
+ __param(1, (0, utils_1.AcmeKitContext)()),
239
+ __metadata("design:type", Function),
240
+ __metadata("design:paramtypes", [Object, Object]),
241
+ __metadata("design:returntype", Promise)
242
+ ], UserModuleService.prototype, "updateInvites", null);
243
+ //# sourceMappingURL=user-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-module.js","sourceRoot":"","sources":["../../src/services/user-module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"root":["../src/index.ts","../src/migrations/migration20240214033943.ts","../src/migrations/migration20240703095850.ts","../src/migrations/migration20241202103352.ts","../src/models/index.ts","../src/models/invite.ts","../src/models/user.ts","../src/services/index.ts","../src/services/user-module.ts","../src/types/index.ts","../src/types/services/index.ts","../src/types/services/invite.ts","../src/utils/utils.ts"],"version":"5.9.3"}
@@ -0,0 +1,6 @@
1
+ import { Logger } from "@acmekit/framework/types";
2
+ export type InitializeModuleInjectableDependencies = {
3
+ logger?: Logger;
4
+ };
5
+ export * from "./services";
6
+ //# 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,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAEjD,MAAM,MAAM,sCAAsC,GAAG;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,cAAc,YAAY,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./services"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMA,6CAA0B"}
@@ -0,0 +1,2 @@
1
+ export * as InviteServiceTypes from "./invite";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,UAAU,CAAA"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.InviteServiceTypes = void 0;
37
+ exports.InviteServiceTypes = __importStar(require("./invite"));
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAA8C"}
@@ -0,0 +1,6 @@
1
+ export interface CreateInviteDTO {
2
+ email: string;
3
+ accepted?: boolean;
4
+ metadata?: Record<string, unknown> | null;
5
+ }
6
+ //# sourceMappingURL=invite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../../src/types/services/invite.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC1C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=invite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite.js","sourceRoot":"","sources":["../../../src/types/services/invite.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare function getExpiresAt(expiresIn: string | number): Date;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,QAOtD"}
@@ -0,0 +1,14 @@
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.getExpiresAt = getExpiresAt;
7
+ const timespan_1 = __importDefault(require("jsonwebtoken/lib/timespan"));
8
+ function getExpiresAt(expiresIn) {
9
+ const expiresAt = typeof expiresIn === "number"
10
+ ? new Date(Date.now() + expiresIn * 1000)
11
+ : new Date(Math.floor((0, timespan_1.default)(expiresIn)) * 1000);
12
+ return expiresAt;
13
+ }
14
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":";;;;;AAEA,oCAOC;AATD,yEAAgD;AAEhD,SAAgB,YAAY,CAAC,SAA0B;IACrD,MAAM,SAAS,GACb,OAAO,SAAS,KAAK,QAAQ;QAC3B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;QACzC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAA,kBAAQ,EAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAEtD,OAAO,SAAS,CAAA;AAClB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@acmekit/user",
3
+ "version": "2.13.1",
4
+ "description": "AcmeKit Users 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/acmekit/acmekit",
19
+ "directory": "packages/modules/user"
20
+ },
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "author": "AcmeKit",
25
+ "license": "MIT",
26
+ "scripts": {
27
+ "watch": "yarn run -T tsc --build --watch",
28
+ "watch:test": "yarn run -T tsc --build tsconfig.spec.json --watch",
29
+ "resolve:aliases": "yarn run -T tsc --showConfig -p tsconfig.json > tsconfig.resolved.json && yarn run -T tsc-alias -p tsconfig.resolved.json && yarn run -T rimraf tsconfig.resolved.json",
30
+ "build": "yarn run -T rimraf dist && yarn run -T tsc --build && npm run resolve:aliases",
31
+ "test": "../../../node_modules/.bin/jest --passWithNoTests --bail --forceExit --testPathPattern=src",
32
+ "test:integration": "../../../node_modules/.bin/jest --passWithNoTests --forceExit --testPathPattern=\"integration-tests/__tests__/.*\\.ts\"",
33
+ "migration:initial": "MIKRO_ORM_CLI_CONFIG=./mikro-orm.config.dev.ts MIKRO_ORM_ALLOW_GLOBAL_CLI=true acmekit-mikro-orm migration:create --initial",
34
+ "migration:create": "MIKRO_ORM_CLI_CONFIG=./mikro-orm.config.dev.ts MIKRO_ORM_ALLOW_GLOBAL_CLI=true acmekit-mikro-orm migration:create",
35
+ "migration:up": "MIKRO_ORM_CLI_CONFIG=./mikro-orm.config.dev.ts MIKRO_ORM_ALLOW_GLOBAL_CLI=true acmekit-mikro-orm migration:up",
36
+ "orm:cache:clear": "MIKRO_ORM_CLI_CONFIG=./mikro-orm.config.dev.ts MIKRO_ORM_ALLOW_GLOBAL_CLI=true acmekit-mikro-orm cache:clear"
37
+ },
38
+ "devDependencies": {
39
+ "@acmekit/framework": "2.13.1",
40
+ "@acmekit/test-utils": "2.13.1"
41
+ },
42
+ "dependencies": {
43
+ "jsonwebtoken": "^9.0.2"
44
+ },
45
+ "peerDependencies": {
46
+ "@acmekit/framework": "2.13.1"
47
+ }
48
+ }