@medusajs/user 0.0.4-snapshot-20240718073308 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. package/dist/index.d.ts +5 -6
  2. package/dist/index.js +21 -5
  3. package/dist/initialize/index.d.ts +3 -0
  4. package/dist/initialize/index.js +16 -0
  5. package/dist/joiner-config.d.ts +8 -0
  6. package/dist/joiner-config.js +38 -0
  7. package/dist/loaders/connection.d.ts +4 -0
  8. package/dist/loaders/connection.js +41 -0
  9. package/dist/loaders/container.d.ts +2 -0
  10. package/dist/loaders/container.js +34 -0
  11. package/dist/loaders/index.d.ts +2 -0
  12. package/dist/loaders/index.js +18 -0
  13. package/dist/migrations/Migration20240214033943.d.ts +0 -1
  14. package/dist/models/index.d.ts +0 -1
  15. package/dist/models/invite.d.ts +1 -2
  16. package/dist/models/user.d.ts +1 -2
  17. package/dist/models/user.js +5 -3
  18. package/dist/module-definition.d.ts +4 -0
  19. package/dist/module-definition.js +50 -0
  20. package/dist/repositories/index.d.ts +1 -0
  21. package/dist/repositories/index.js +5 -0
  22. package/dist/scripts/bin/run-seed.d.ts +3 -0
  23. package/dist/scripts/bin/run-seed.js +38 -0
  24. package/dist/scripts/seed.d.ts +4 -0
  25. package/dist/scripts/seed.js +54 -0
  26. package/dist/services/index.d.ts +1 -1
  27. package/dist/services/index.js +3 -1
  28. package/dist/services/invite.d.ts +25 -0
  29. package/dist/services/invite.js +140 -0
  30. package/dist/services/user-module.d.ts +15 -21
  31. package/dist/services/user-module.js +50 -88
  32. package/dist/types/index.d.ts +0 -1
  33. package/dist/types/services/index.d.ts +0 -1
  34. package/dist/types/services/invite.d.ts +0 -1
  35. package/package.json +14 -10
  36. package/dist/index.d.ts.map +0 -1
  37. package/dist/migrations/Migration20240214033943.d.ts.map +0 -1
  38. package/dist/migrations/Migration20240703095850.d.ts +0 -6
  39. package/dist/migrations/Migration20240703095850.d.ts.map +0 -1
  40. package/dist/migrations/Migration20240703095850.js +0 -16
  41. package/dist/models/index.d.ts.map +0 -1
  42. package/dist/models/invite.d.ts.map +0 -1
  43. package/dist/models/user.d.ts.map +0 -1
  44. package/dist/services/index.d.ts.map +0 -1
  45. package/dist/services/user-module.d.ts.map +0 -1
  46. package/dist/types/index.d.ts.map +0 -1
  47. package/dist/types/services/index.d.ts.map +0 -1
  48. package/dist/types/services/invite.d.ts.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import { UserModuleService } from "./services";
2
- declare const _default: import("@medusajs/types").ModuleExports<typeof UserModuleService> & {
3
- linkable: Record<string, any>;
4
- };
5
- export default _default;
6
- //# sourceMappingURL=index.d.ts.map
1
+ import { moduleDefinition, revertMigration, runMigrations } from "./module-definition";
2
+ export default moduleDefinition;
3
+ export { revertMigration, runMigrations };
4
+ export * from "./initialize";
5
+ export * from "./loaders";
package/dist/index.js CHANGED
@@ -1,7 +1,23 @@
1
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
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const _services_1 = require("./services");
4
- const utils_1 = require("@medusajs/utils");
5
- exports.default = (0, utils_1.Module)(utils_1.Modules.USER, {
6
- service: _services_1.UserModuleService,
7
- });
17
+ exports.runMigrations = exports.revertMigration = void 0;
18
+ const module_definition_1 = require("./module-definition");
19
+ Object.defineProperty(exports, "revertMigration", { enumerable: true, get: function () { return module_definition_1.revertMigration; } });
20
+ Object.defineProperty(exports, "runMigrations", { enumerable: true, get: function () { return module_definition_1.runMigrations; } });
21
+ exports.default = module_definition_1.moduleDefinition;
22
+ __exportStar(require("./initialize"), exports);
23
+ __exportStar(require("./loaders"), exports);
@@ -0,0 +1,3 @@
1
+ import { IUserModuleService, ModulesSdkTypes } from "@medusajs/types";
2
+ import { InitializeModuleInjectableDependencies } from "../types";
3
+ export declare const initialize: (options?: ModulesSdkTypes.ModuleBootstrapDeclaration | ModulesSdkTypes.ModuleServiceInitializeOptions | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions, injectedDependencies?: InitializeModuleInjectableDependencies) => Promise<IUserModuleService>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initialize = void 0;
4
+ const modules_sdk_1 = require("@medusajs/modules-sdk");
5
+ const module_definition_1 = require("../module-definition");
6
+ const initialize = async (options, injectedDependencies) => {
7
+ const loaded = await modules_sdk_1.MedusaModule.bootstrap({
8
+ moduleKey: modules_sdk_1.Modules.USER,
9
+ defaultPath: modules_sdk_1.MODULE_PACKAGE_NAMES[modules_sdk_1.Modules.USER],
10
+ declaration: options,
11
+ injectedDependencies,
12
+ moduleExports: module_definition_1.moduleDefinition,
13
+ });
14
+ return loaded[modules_sdk_1.Modules.USER];
15
+ };
16
+ exports.initialize = initialize;
@@ -0,0 +1,8 @@
1
+ import { MapToConfig } from "@medusajs/utils";
2
+ import { ModuleJoinerConfig } from "@medusajs/types";
3
+ export declare const LinkableKeys: {
4
+ user_id: string;
5
+ invite_id: string;
6
+ };
7
+ export declare const entityNameToLinkableKeysMap: MapToConfig;
8
+ export declare const joinerConfig: ModuleJoinerConfig;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.joinerConfig = exports.entityNameToLinkableKeysMap = exports.LinkableKeys = void 0;
4
+ const _models_1 = require("./models");
5
+ const modules_sdk_1 = require("@medusajs/modules-sdk");
6
+ exports.LinkableKeys = {
7
+ user_id: _models_1.User.name,
8
+ invite_id: _models_1.Invite.name,
9
+ };
10
+ const entityLinkableKeysMap = {};
11
+ Object.entries(exports.LinkableKeys).forEach(([key, value]) => {
12
+ entityLinkableKeysMap[value] ?? (entityLinkableKeysMap[value] = []);
13
+ entityLinkableKeysMap[value].push({
14
+ mapTo: key,
15
+ valueFrom: key.split("_").pop(),
16
+ });
17
+ });
18
+ exports.entityNameToLinkableKeysMap = entityLinkableKeysMap;
19
+ exports.joinerConfig = {
20
+ serviceName: modules_sdk_1.Modules.USER,
21
+ primaryKeys: ["id"],
22
+ linkableKeys: exports.LinkableKeys,
23
+ alias: [
24
+ {
25
+ name: ["user", "users"],
26
+ args: {
27
+ entity: _models_1.User.name,
28
+ },
29
+ },
30
+ {
31
+ name: ["invite", "invites"],
32
+ args: {
33
+ entity: _models_1.Invite.name,
34
+ methodSuffix: "Invites",
35
+ },
36
+ },
37
+ ],
38
+ };
@@ -0,0 +1,4 @@
1
+ import { InternalModuleDeclaration, LoaderOptions } from "@medusajs/modules-sdk";
2
+ import { ModulesSdkTypes } from "@medusajs/types";
3
+ declare const _default: ({ options, container, logger, }: LoaderOptions<ModulesSdkTypes.ModuleServiceInitializeOptions | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions>, moduleDeclaration?: InternalModuleDeclaration) => Promise<void>;
4
+ export default _default;
@@ -0,0 +1,41 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const UserModels = __importStar(require("../models"));
27
+ const modules_sdk_1 = require("@medusajs/modules-sdk");
28
+ const utils_1 = require("@medusajs/utils");
29
+ exports.default = async ({ options, container, logger, }, moduleDeclaration) => {
30
+ const entities = Object.values(UserModels);
31
+ const pathToMigrations = __dirname + "/../migrations";
32
+ await utils_1.ModulesSdkUtils.mikroOrmConnectionLoader({
33
+ moduleName: modules_sdk_1.Modules.USER,
34
+ entities,
35
+ container,
36
+ options,
37
+ moduleDeclaration,
38
+ logger,
39
+ pathToMigrations,
40
+ });
41
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: ({ container, options }: import("@medusajs/types").LoaderOptions) => Promise<void>;
2
+ export default _default;
@@ -0,0 +1,34 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const utils_1 = require("@medusajs/utils");
27
+ const ModuleModels = __importStar(require("../models"));
28
+ const ModuleRepositories = __importStar(require("../repositories"));
29
+ const ModuleServices = __importStar(require("../services"));
30
+ exports.default = utils_1.ModulesSdkUtils.moduleContainerLoaderFactory({
31
+ moduleModels: ModuleModels,
32
+ moduleRepositories: ModuleRepositories,
33
+ moduleServices: ModuleServices,
34
+ });
@@ -0,0 +1,2 @@
1
+ export * from "./connection";
2
+ export * from "./container";
@@ -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("./connection"), exports);
18
+ __exportStar(require("./container"), exports);
@@ -3,4 +3,3 @@ export declare class Migration20240214033943 extends Migration {
3
3
  up(): Promise<void>;
4
4
  down(): Promise<void>;
5
5
  }
6
- //# sourceMappingURL=Migration20240214033943.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export { default as User } from "./user";
2
2
  export { default as Invite } from "./invite";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { OptionalProps } from "@mikro-orm/core";
2
2
  import { DAL } from "@medusajs/types";
3
- type OptionalFields = "metadata" | "accepted" | DAL.SoftDeletableModelDateColumns;
3
+ type OptionalFields = "metadata" | "accepted" | DAL.SoftDeletableEntityDateColumns;
4
4
  export default class Invite {
5
5
  [OptionalProps]: OptionalFields;
6
6
  id: string;
@@ -16,4 +16,3 @@ export default class Invite {
16
16
  beforeCreate(): void;
17
17
  }
18
18
  export {};
19
- //# sourceMappingURL=invite.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { OptionalProps } from "@mikro-orm/core";
2
2
  import { DAL } from "@medusajs/types";
3
- type OptionalFields = "first_name" | "last_name" | "metadata" | "avatar_url" | DAL.SoftDeletableModelDateColumns;
3
+ type OptionalFields = "first_name" | "last_name" | "metadata" | "avatar_url" | DAL.SoftDeletableEntityDateColumns;
4
4
  export default class User {
5
5
  [OptionalProps]?: OptionalFields;
6
6
  id: string;
@@ -16,4 +16,3 @@ export default class User {
16
16
  onInit(): void;
17
17
  }
18
18
  export {};
19
- //# sourceMappingURL=user.d.ts.map
@@ -14,11 +14,10 @@ const utils_1 = require("@medusajs/utils");
14
14
  const userEmailIndexName = "IDX_user_email";
15
15
  const userEmailIndexStatement = (0, utils_1.createPsqlIndexStatementHelper)({
16
16
  name: userEmailIndexName,
17
- unique: true,
18
17
  tableName: "user",
19
18
  columns: "email",
20
19
  where: "deleted_at IS NULL",
21
- });
20
+ }).expression;
22
21
  const userDeletedAtIndexName = "IDX_user_deleted_at";
23
22
  const userDeletedAtIndexStatement = (0, utils_1.createPsqlIndexStatementHelper)({
24
23
  name: userDeletedAtIndexName,
@@ -56,7 +55,10 @@ __decorate([
56
55
  __metadata("design:type", Object)
57
56
  ], User.prototype, "last_name", void 0);
58
57
  __decorate([
59
- userEmailIndexStatement.MikroORMIndex(),
58
+ (0, core_1.Index)({
59
+ name: userEmailIndexName,
60
+ expression: userEmailIndexStatement,
61
+ }),
60
62
  (0, utils_1.Searchable)(),
61
63
  (0, core_1.Property)({ columnType: "text" }),
62
64
  __metadata("design:type", String)
@@ -0,0 +1,4 @@
1
+ import { ModuleExports } from "@medusajs/types";
2
+ export declare const runMigrations: ({ options, logger, }?: Pick<import("@medusajs/types").LoaderOptions<import("@medusajs/types").ModuleServiceInitializeOptions>, "options" | "logger"> | undefined) => Promise<void>;
3
+ export declare const revertMigration: ({ options, logger, }?: Pick<import("@medusajs/types").LoaderOptions<import("@medusajs/types").ModuleServiceInitializeOptions>, "options" | "logger"> | undefined) => Promise<void>;
4
+ export declare const moduleDefinition: ModuleExports;
@@ -0,0 +1,50 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.moduleDefinition = exports.revertMigration = exports.runMigrations = void 0;
30
+ const Models = __importStar(require("./models"));
31
+ const _services_1 = require("./services");
32
+ const modules_sdk_1 = require("@medusajs/modules-sdk");
33
+ const utils_1 = require("@medusajs/utils");
34
+ const connection_1 = __importDefault(require("./loaders/connection"));
35
+ const container_1 = __importDefault(require("./loaders/container"));
36
+ const migrationScriptOptions = {
37
+ moduleName: modules_sdk_1.Modules.USER,
38
+ models: Models,
39
+ pathToMigrations: __dirname + "/migrations",
40
+ };
41
+ exports.runMigrations = utils_1.ModulesSdkUtils.buildMigrationScript(migrationScriptOptions);
42
+ exports.revertMigration = utils_1.ModulesSdkUtils.buildRevertMigrationScript(migrationScriptOptions);
43
+ const service = _services_1.UserModuleService;
44
+ const loaders = [container_1.default, connection_1.default];
45
+ exports.moduleDefinition = {
46
+ service,
47
+ loaders,
48
+ runMigrations: exports.runMigrations,
49
+ revertMigration: exports.revertMigration,
50
+ };
@@ -0,0 +1 @@
1
+ export { MikroOrmBaseRepository as BaseRepository } from "@medusajs/utils";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseRepository = void 0;
4
+ var utils_1 = require("@medusajs/utils");
5
+ Object.defineProperty(exports, "BaseRepository", { enumerable: true, get: function () { return utils_1.MikroOrmBaseRepository; } });
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ declare const _default: Promise<void>;
3
+ export default _default;
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ const os_1 = require("os");
28
+ const seed_1 = require("../seed");
29
+ const args = process.argv;
30
+ const path = args.pop();
31
+ exports.default = (async () => {
32
+ const { config } = await Promise.resolve().then(() => __importStar(require("dotenv")));
33
+ config();
34
+ if (!path) {
35
+ throw new Error(`filePath is required.${os_1.EOL}Example: medusa-user-seed <filePath>`);
36
+ }
37
+ await (0, seed_1.run)({ path });
38
+ })();
@@ -0,0 +1,4 @@
1
+ import { LoaderOptions, ModulesSdkTypes } from "@medusajs/types";
2
+ export declare function run({ options, logger, path, }: Partial<Pick<LoaderOptions<ModulesSdkTypes.ModuleServiceInitializeOptions>, "options" | "logger">> & {
3
+ path: string;
4
+ }): Promise<void>;
@@ -0,0 +1,54 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.run = void 0;
27
+ const UserModels = __importStar(require("../models"));
28
+ const utils_1 = require("@medusajs/utils");
29
+ const os_1 = require("os");
30
+ const modules_sdk_1 = require("@medusajs/modules-sdk");
31
+ const path_1 = require("path");
32
+ async function run({ options, logger, path, }) {
33
+ logger ?? (logger = console);
34
+ logger.info(`Loading seed data from ${path}...`);
35
+ const { userData } = await Promise.resolve(`${(0, path_1.resolve)(process.cwd(), path)}`).then(s => __importStar(require(s))).catch((e) => {
36
+ logger?.error(`Failed to load seed data from ${path}. Please, provide a relative path and check that you export the following: userData.${os_1.EOL}${e}`);
37
+ throw e;
38
+ });
39
+ const dbData = utils_1.ModulesSdkUtils.loadDatabaseConfig(modules_sdk_1.Modules.USER, options);
40
+ const entities = Object.values(UserModels);
41
+ const pathToMigrations = __dirname + "/../migrations";
42
+ const orm = await utils_1.DALUtils.mikroOrmCreateConnection(dbData, entities, pathToMigrations);
43
+ const manager = orm.em.fork();
44
+ try {
45
+ logger.info("Seeding user data..");
46
+ // TODO: implement user seed data
47
+ // await createUsers(manager, usersData)
48
+ }
49
+ catch (e) {
50
+ logger.error(`Failed to insert the seed data in the PostgreSQL database ${dbData.clientUrl}.${os_1.EOL}${e}`);
51
+ }
52
+ await orm.close(true);
53
+ }
54
+ exports.run = run;
@@ -1,2 +1,2 @@
1
1
  export { default as UserModuleService } from "./user-module";
2
- //# sourceMappingURL=index.d.ts.map
2
+ export { default as InviteService } from "./invite";
@@ -3,6 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.UserModuleService = void 0;
6
+ exports.InviteService = exports.UserModuleService = void 0;
7
7
  var user_module_1 = require("./user-module");
8
8
  Object.defineProperty(exports, "UserModuleService", { enumerable: true, get: function () { return __importDefault(user_module_1).default; } });
9
+ var invite_1 = require("./invite");
10
+ Object.defineProperty(exports, "InviteService", { enumerable: true, get: function () { return __importDefault(invite_1).default; } });
@@ -0,0 +1,25 @@
1
+ import { Context, DAL } from "@medusajs/types";
2
+ import { Invite } from "../models";
3
+ import { InviteServiceTypes } from "../types";
4
+ type InjectedDependencies = {
5
+ inviteRepository: DAL.RepositoryService;
6
+ };
7
+ declare const InviteService_base: new <TEntity_1 extends object = any>(container: InjectedDependencies) => import("@medusajs/types").InternalModuleService<TEntity_1, InjectedDependencies>;
8
+ export default class InviteService<TEntity extends Invite = Invite> extends InviteService_base<TEntity> {
9
+ protected readonly inviteRepository_: DAL.RepositoryService<TEntity>;
10
+ protected options_: {
11
+ jwt_secret: string;
12
+ valid_duration: number;
13
+ } | undefined;
14
+ constructor(container: InjectedDependencies);
15
+ withModuleOptions(options: any): InviteService<TEntity>;
16
+ private getOption;
17
+ create(data: InviteServiceTypes.CreateInviteDTO, context?: Context): Promise<TEntity>;
18
+ create(data: InviteServiceTypes.CreateInviteDTO[], context?: Context): Promise<TEntity[]>;
19
+ refreshInviteTokens(inviteIds: string[], context?: Context): Promise<TEntity[]>;
20
+ validateInviteToken(token: string, context?: Context): Promise<TEntity>;
21
+ private generateToken;
22
+ private getValidDuration;
23
+ private validateToken;
24
+ }
25
+ export {};
@@ -0,0 +1,140 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const crypto = __importStar(require("crypto"));
39
+ const utils_1 = require("@medusajs/utils");
40
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
41
+ const _models_1 = require("../models");
42
+ // 1 day
43
+ const DEFAULT_VALID_INVITE_DURATION = 60 * 60 * 24 * 1000;
44
+ class InviteService extends utils_1.ModulesSdkUtils.internalModuleServiceFactory(_models_1.Invite) {
45
+ constructor(container) {
46
+ super(container);
47
+ this.inviteRepository_ = container.inviteRepository;
48
+ }
49
+ withModuleOptions(options) {
50
+ const service = new InviteService(this.__container__);
51
+ service.options_ = options;
52
+ return service;
53
+ }
54
+ getOption(key) {
55
+ if (!this.options_) {
56
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, `Options are not configured for InviteService, call "withModuleOptions" and provide options`);
57
+ }
58
+ return this.options_[key];
59
+ }
60
+ async create(data, context = {}) {
61
+ const data_ = Array.isArray(data) ? data : [data];
62
+ const invites = await super.create(data_, context);
63
+ const expiresIn = this.getValidDuration();
64
+ const updates = invites.map((invite) => {
65
+ return {
66
+ id: invite.id,
67
+ expires_at: new Date().setMilliseconds(new Date().getMilliseconds() + expiresIn),
68
+ token: this.generateToken({ id: invite.id }),
69
+ };
70
+ });
71
+ return await super.update(updates, context);
72
+ }
73
+ async refreshInviteTokens(inviteIds, context = {}) {
74
+ const [invites, count] = await super.listAndCount({ id: inviteIds }, {}, context);
75
+ if (count !== inviteIds.length) {
76
+ const missing = (0, utils_1.arrayDifference)(inviteIds, invites.map((invite) => invite.id));
77
+ if (missing.length > 0) {
78
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `The following invites do not exist: ${missing.join(", ")}`);
79
+ }
80
+ }
81
+ const expiresIn = this.getValidDuration();
82
+ const updates = invites.map((invite) => {
83
+ return {
84
+ id: invite.id,
85
+ expires_at: new Date().setMilliseconds(new Date().getMilliseconds() + expiresIn),
86
+ token: this.generateToken({ id: invite.id }),
87
+ };
88
+ });
89
+ return await super.update(updates, context);
90
+ }
91
+ async validateInviteToken(token, context) {
92
+ const decoded = this.validateToken(token);
93
+ const invite = await super.retrieve(decoded.payload.id, {}, context);
94
+ if (invite.expires_at < new Date()) {
95
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "The invite has expired");
96
+ }
97
+ return invite;
98
+ }
99
+ generateToken(data) {
100
+ const jwtSecret = this.getOption("jwt_secret");
101
+ const expiresIn = this.getValidDuration() / 1000;
102
+ if (!jwtSecret) {
103
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "No jwt_secret was provided in the UserModule's options. Please add one.");
104
+ }
105
+ return jsonwebtoken_1.default.sign(data, jwtSecret, {
106
+ jwtid: crypto.randomUUID(),
107
+ expiresIn,
108
+ });
109
+ }
110
+ getValidDuration() {
111
+ return (parseInt(this.getOption("valid_duration")) ||
112
+ DEFAULT_VALID_INVITE_DURATION);
113
+ }
114
+ validateToken(data) {
115
+ const jwtSecret = this.getOption("jwt_secret");
116
+ if (!jwtSecret) {
117
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "No jwt_secret was provided in the UserModule's options. Please add one.");
118
+ }
119
+ return jsonwebtoken_1.default.verify(data, jwtSecret, { complete: true });
120
+ }
121
+ }
122
+ exports.default = InviteService;
123
+ __decorate([
124
+ (0, utils_1.InjectTransactionManager)("inviteRepository_"),
125
+ __metadata("design:type", Function),
126
+ __metadata("design:paramtypes", [Object, Object]),
127
+ __metadata("design:returntype", Promise)
128
+ ], InviteService.prototype, "create", null);
129
+ __decorate([
130
+ (0, utils_1.InjectTransactionManager)("inviteRepository_"),
131
+ __metadata("design:type", Function),
132
+ __metadata("design:paramtypes", [Array, Object]),
133
+ __metadata("design:returntype", Promise)
134
+ ], InviteService.prototype, "refreshInviteTokens", null);
135
+ __decorate([
136
+ (0, utils_1.InjectTransactionManager)("inviteRepository_"),
137
+ __metadata("design:type", Function),
138
+ __metadata("design:paramtypes", [String, Object]),
139
+ __metadata("design:returntype", Promise)
140
+ ], InviteService.prototype, "validateInviteToken", null);
@@ -1,42 +1,36 @@
1
- import { Context, DAL, IEventBusModuleService, InternalModuleDeclaration, ModulesSdkTypes, UserTypes } from "@medusajs/types";
1
+ import { Context, DAL, InternalModuleDeclaration, ModuleJoinerConfig, UserTypes, ModulesSdkTypes, IEventBusModuleService } from "@medusajs/types";
2
+ import { ModulesSdkUtils } from "@medusajs/utils";
2
3
  import { Invite, User } from "../models";
4
+ import InviteService from "./invite";
3
5
  type InjectedDependencies = {
4
6
  baseRepository: DAL.RepositoryService;
5
- userService: ModulesSdkTypes.IMedusaInternalService<any>;
6
- inviteService: ModulesSdkTypes.IMedusaInternalService<any>;
7
+ userService: ModulesSdkTypes.InternalModuleService<any>;
8
+ inviteService: InviteService<any>;
7
9
  eventBusModuleService: IEventBusModuleService;
8
10
  };
9
- declare const UserModuleService_base: import("@medusajs/utils/dist/modules-sdk/types/medusa-service").MedusaServiceReturnType<{
10
- User: {
11
- dto: UserTypes.UserDTO;
12
- };
11
+ declare const UserModuleService_base: new (container: InjectedDependencies) => ModulesSdkUtils.AbstractModuleService<InjectedDependencies, UserTypes.UserDTO, {
13
12
  Invite: {
14
13
  dto: UserTypes.InviteDTO;
15
14
  };
16
15
  }>;
17
- export default class UserModuleService extends UserModuleService_base implements UserTypes.IUserModuleService {
16
+ export default class UserModuleService<TUser extends User = User, TInvite extends Invite = Invite> extends UserModuleService_base implements UserTypes.IUserModuleService {
18
17
  protected readonly moduleDeclaration: InternalModuleDeclaration;
18
+ __joinerConfig(): ModuleJoinerConfig;
19
19
  protected baseRepository_: DAL.RepositoryService;
20
- protected readonly userService_: ModulesSdkTypes.IMedusaInternalService<User>;
21
- protected readonly inviteService_: ModulesSdkTypes.IMedusaInternalService<Invite>;
22
- protected readonly config: {
23
- jwtSecret: string;
24
- expiresIn: number;
25
- };
20
+ protected readonly userService_: ModulesSdkTypes.InternalModuleService<TUser>;
21
+ protected readonly inviteService_: InviteService<TInvite>;
26
22
  constructor({ userService, inviteService, baseRepository }: InjectedDependencies, moduleDeclaration: InternalModuleDeclaration);
27
23
  validateInviteToken(token: string, sharedContext?: Context): Promise<UserTypes.InviteDTO>;
28
24
  refreshInviteTokens(inviteIds: string[], sharedContext?: Context): Promise<UserTypes.InviteDTO[]>;
29
- refreshInviteTokens_(inviteIds: string[], sharedContext?: Context): Promise<Invite[]>;
30
- createUsers(data: UserTypes.CreateUserDTO[], sharedContext?: Context): Promise<UserTypes.UserDTO[]>;
31
- createUsers(data: UserTypes.CreateUserDTO, sharedContext?: Context): Promise<UserTypes.UserDTO>;
32
- updateUsers(data: UserTypes.UpdateUserDTO[], sharedContext?: Context): Promise<UserTypes.UserDTO[]>;
33
- updateUsers(data: UserTypes.UpdateUserDTO, sharedContext?: Context): Promise<UserTypes.UserDTO>;
25
+ refreshInviteTokens_(inviteIds: string[], sharedContext?: Context): Promise<TInvite[]>;
26
+ create(data: UserTypes.CreateUserDTO[], sharedContext?: Context): Promise<UserTypes.UserDTO[]>;
27
+ create(data: UserTypes.CreateUserDTO, sharedContext?: Context): Promise<UserTypes.UserDTO>;
28
+ update(data: UserTypes.UpdateUserDTO[], sharedContext?: Context): Promise<UserTypes.UserDTO[]>;
29
+ update(data: UserTypes.UpdateUserDTO, sharedContext?: Context): Promise<UserTypes.UserDTO>;
34
30
  createInvites(data: UserTypes.CreateInviteDTO[], sharedContext?: Context): Promise<UserTypes.InviteDTO[]>;
35
31
  createInvites(data: UserTypes.CreateInviteDTO, sharedContext?: Context): Promise<UserTypes.InviteDTO>;
36
32
  private createInvites_;
37
33
  updateInvites(data: UserTypes.UpdateInviteDTO[], sharedContext?: Context): Promise<UserTypes.InviteDTO[]>;
38
34
  updateInvites(data: UserTypes.UpdateInviteDTO, sharedContext?: Context): Promise<UserTypes.InviteDTO>;
39
- private generateToken;
40
35
  }
41
36
  export {};
42
- //# sourceMappingURL=user-module.d.ts.map
@@ -11,40 +11,25 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
14
  Object.defineProperty(exports, "__esModule", { value: true });
18
15
  const utils_1 = require("@medusajs/utils");
19
- const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
20
- const node_crypto_1 = __importDefault(require("node:crypto"));
16
+ const joiner_config_1 = require("../joiner-config");
21
17
  const _models_1 = require("../models");
22
- // 1 day
23
- const DEFAULT_VALID_INVITE_DURATION = 60 * 60 * 24 * 1000;
24
- class UserModuleService extends (0, utils_1.MedusaService)({ User: _models_1.User, Invite: _models_1.Invite }) {
18
+ const generateMethodForModels = [_models_1.Invite];
19
+ class UserModuleService extends utils_1.ModulesSdkUtils.abstractModuleServiceFactory(_models_1.User, generateMethodForModels, joiner_config_1.entityNameToLinkableKeysMap) {
20
+ __joinerConfig() {
21
+ return joiner_config_1.joinerConfig;
22
+ }
25
23
  constructor({ userService, inviteService, baseRepository }, moduleDeclaration) {
26
24
  // @ts-ignore
27
25
  super(...arguments);
28
26
  this.moduleDeclaration = moduleDeclaration;
29
27
  this.baseRepository_ = baseRepository;
30
28
  this.userService_ = userService;
31
- this.inviteService_ = inviteService;
32
- this.config = {
33
- jwtSecret: moduleDeclaration["jwt_secret"],
34
- expiresIn: parseInt(moduleDeclaration["valid_duration"]) ||
35
- DEFAULT_VALID_INVITE_DURATION,
36
- };
37
- if (!this.config.jwtSecret) {
38
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "No jwt_secret was provided in the UserModule's options. Please add one.");
39
- }
29
+ this.inviteService_ = inviteService.withModuleOptions(this.moduleDeclaration);
40
30
  }
41
31
  async validateInviteToken(token, sharedContext = {}) {
42
- const jwtSecret = this.moduleDeclaration["jwt_secret"];
43
- const decoded = jsonwebtoken_1.default.verify(token, jwtSecret, { complete: true });
44
- const invite = await this.inviteService_.retrieve(decoded.payload.id, {}, sharedContext);
45
- if (invite.expires_at < new Date()) {
46
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "The invite has expired");
47
- }
32
+ const invite = await this.inviteService_.validateInviteToken(token, sharedContext);
48
33
  return await this.baseRepository_.serialize(invite, {
49
34
  populate: true,
50
35
  });
@@ -52,11 +37,12 @@ class UserModuleService extends (0, utils_1.MedusaService)({ User: _models_1.Use
52
37
  async refreshInviteTokens(inviteIds, sharedContext = {}) {
53
38
  const invites = await this.refreshInviteTokens_(inviteIds, sharedContext);
54
39
  sharedContext.messageAggregator?.saveRawMessageData(invites.map((invite) => ({
55
- eventName: utils_1.UserEvents.INVITE_TOKEN_GENERATED,
56
- source: this.constructor.name,
57
- action: "token_generated",
58
- object: "invite",
59
- context: sharedContext,
40
+ eventName: utils_1.UserEvents.invite_token_generated,
41
+ metadata: {
42
+ service: this.constructor.name,
43
+ action: "token_generated",
44
+ object: "invite",
45
+ },
60
46
  data: { id: invite.id },
61
47
  })));
62
48
  return await this.baseRepository_.serialize(invites, {
@@ -64,50 +50,38 @@ class UserModuleService extends (0, utils_1.MedusaService)({ User: _models_1.Use
64
50
  });
65
51
  }
66
52
  async refreshInviteTokens_(inviteIds, sharedContext = {}) {
67
- const [invites, count] = await this.inviteService_.listAndCount({ id: inviteIds }, {}, sharedContext);
68
- if (count !== inviteIds.length) {
69
- const missing = (0, utils_1.arrayDifference)(inviteIds, invites.map((invite) => invite.id));
70
- if (missing.length > 0) {
71
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `The following invites do not exist: ${missing.join(", ")}`);
72
- }
73
- }
74
- const updates = invites.map((invite) => {
75
- return {
76
- id: invite.id,
77
- expires_at: new Date().setMilliseconds(new Date().getMilliseconds() + this.config.expiresIn),
78
- token: this.generateToken({ id: invite.id }),
79
- };
80
- });
81
- return await this.inviteService_.update(updates, sharedContext);
53
+ return await this.inviteService_.refreshInviteTokens(inviteIds, sharedContext);
82
54
  }
83
- async createUsers(data, sharedContext = {}) {
55
+ async create(data, sharedContext = {}) {
84
56
  const input = Array.isArray(data) ? data : [data];
85
57
  const users = await this.userService_.create(input, sharedContext);
86
58
  const serializedUsers = await this.baseRepository_.serialize(users, {
87
59
  populate: true,
88
60
  });
89
61
  sharedContext.messageAggregator?.saveRawMessageData(users.map((user) => ({
90
- eventName: utils_1.UserEvents.USER_CREATED,
91
- source: this.constructor.name,
92
- action: utils_1.CommonEvents.CREATED,
93
- object: "user",
94
- context: sharedContext,
62
+ eventName: utils_1.UserEvents.created,
63
+ metadata: {
64
+ service: this.constructor.name,
65
+ action: utils_1.CommonEvents.CREATED,
66
+ object: "user",
67
+ },
95
68
  data: { id: user.id },
96
69
  })));
97
70
  return Array.isArray(data) ? serializedUsers : serializedUsers[0];
98
71
  }
99
- async updateUsers(data, sharedContext = {}) {
72
+ async update(data, sharedContext = {}) {
100
73
  const input = Array.isArray(data) ? data : [data];
101
74
  const updatedUsers = await this.userService_.update(input, sharedContext);
102
75
  const serializedUsers = await this.baseRepository_.serialize(updatedUsers, {
103
76
  populate: true,
104
77
  });
105
78
  sharedContext.messageAggregator?.saveRawMessageData(updatedUsers.map((user) => ({
106
- eventName: utils_1.UserEvents.USER_UPDATED,
107
- source: this.constructor.name,
108
- action: utils_1.CommonEvents.UPDATED,
109
- object: "user",
110
- context: sharedContext,
79
+ eventName: utils_1.UserEvents.updated,
80
+ metadata: {
81
+ service: this.constructor.name,
82
+ action: utils_1.CommonEvents.UPDATED,
83
+ object: "user",
84
+ },
111
85
  data: { id: user.id },
112
86
  })));
113
87
  return Array.isArray(data) ? serializedUsers : serializedUsers[0];
@@ -119,19 +93,21 @@ class UserModuleService extends (0, utils_1.MedusaService)({ User: _models_1.Use
119
93
  populate: true,
120
94
  });
121
95
  sharedContext.messageAggregator?.saveRawMessageData(invites.map((invite) => ({
122
- eventName: utils_1.UserEvents.INVITE_CREATED,
123
- source: this.constructor.name,
124
- action: utils_1.CommonEvents.CREATED,
125
- object: "invite",
126
- context: sharedContext,
96
+ eventName: utils_1.UserEvents.invite_created,
97
+ metadata: {
98
+ service: this.constructor.name,
99
+ action: utils_1.CommonEvents.CREATED,
100
+ object: "invite",
101
+ },
127
102
  data: { id: invite.id },
128
103
  })));
129
104
  sharedContext.messageAggregator?.saveRawMessageData(invites.map((invite) => ({
130
- eventName: utils_1.UserEvents.INVITE_TOKEN_GENERATED,
131
- source: this.constructor.name,
132
- action: "token_generated",
133
- object: "invite",
134
- context: sharedContext,
105
+ eventName: utils_1.UserEvents.invite_token_generated,
106
+ metadata: {
107
+ service: this.constructor.name,
108
+ action: "token_generated",
109
+ object: "invite",
110
+ },
135
111
  data: { id: invite.id },
136
112
  })));
137
113
  return Array.isArray(data) ? serializedInvites : serializedInvites[0];
@@ -144,15 +120,7 @@ class UserModuleService extends (0, utils_1.MedusaService)({ User: _models_1.Use
144
120
  token: "placeholder",
145
121
  };
146
122
  });
147
- const created = await this.inviteService_.create(toCreate, sharedContext);
148
- const updates = created.map((invite) => {
149
- return {
150
- id: invite.id,
151
- expires_at: new Date().setMilliseconds(new Date().getMilliseconds() + this.config.expiresIn),
152
- token: this.generateToken({ id: invite.id }),
153
- };
154
- });
155
- return await this.inviteService_.update(updates, sharedContext);
123
+ return await this.inviteService_.create(toCreate, sharedContext);
156
124
  }
157
125
  async updateInvites(data, sharedContext = {}) {
158
126
  const input = Array.isArray(data) ? data : [data];
@@ -161,22 +129,16 @@ class UserModuleService extends (0, utils_1.MedusaService)({ User: _models_1.Use
161
129
  populate: true,
162
130
  });
163
131
  sharedContext.messageAggregator?.saveRawMessageData(serializedInvites.map((invite) => ({
164
- eventName: utils_1.UserEvents.INVITE_UPDATED,
165
- source: this.constructor.name,
166
- action: utils_1.CommonEvents.UPDATED,
167
- object: "invite",
168
- context: sharedContext,
132
+ eventName: utils_1.UserEvents.invite_updated,
133
+ metadata: {
134
+ service: this.constructor.name,
135
+ action: utils_1.CommonEvents.UPDATED,
136
+ object: "invite",
137
+ },
169
138
  data: { id: invite.id },
170
139
  })));
171
140
  return Array.isArray(data) ? serializedInvites : serializedInvites[0];
172
141
  }
173
- generateToken(data) {
174
- const jwtSecret = this.moduleDeclaration["jwt_secret"];
175
- return jsonwebtoken_1.default.sign(data, jwtSecret, {
176
- jwtid: node_crypto_1.default.randomUUID(),
177
- expiresIn: this.config.expiresIn,
178
- });
179
- }
180
142
  }
181
143
  exports.default = UserModuleService;
182
144
  __decorate([
@@ -208,7 +170,7 @@ __decorate([
208
170
  __metadata("design:type", Function),
209
171
  __metadata("design:paramtypes", [Object, Object]),
210
172
  __metadata("design:returntype", Promise)
211
- ], UserModuleService.prototype, "createUsers", null);
173
+ ], UserModuleService.prototype, "create", null);
212
174
  __decorate([
213
175
  (0, utils_1.InjectManager)("baseRepository_"),
214
176
  (0, utils_1.EmitEvents)(),
@@ -216,7 +178,7 @@ __decorate([
216
178
  __metadata("design:type", Function),
217
179
  __metadata("design:paramtypes", [Object, Object]),
218
180
  __metadata("design:returntype", Promise)
219
- ], UserModuleService.prototype, "updateUsers", null);
181
+ ], UserModuleService.prototype, "update", null);
220
182
  __decorate([
221
183
  (0, utils_1.InjectManager)("baseRepository_"),
222
184
  (0, utils_1.EmitEvents)(),
@@ -3,4 +3,3 @@ export type InitializeModuleInjectableDependencies = {
3
3
  logger?: Logger;
4
4
  };
5
5
  export * from "./services";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export * as InviteServiceTypes from "./invite";
2
- //# sourceMappingURL=index.d.ts.map
@@ -3,4 +3,3 @@ export interface CreateInviteDTO {
3
3
  accepted?: boolean;
4
4
  metadata?: Record<string, unknown> | null;
5
5
  }
6
- //# sourceMappingURL=invite.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medusajs/user",
3
- "version": "0.0.4-snapshot-20240718073308",
3
+ "version": "0.0.4",
4
4
  "description": "Medusa Users module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,7 +8,10 @@
8
8
  "dist"
9
9
  ],
10
10
  "engines": {
11
- "node": ">=20"
11
+ "node": ">=16"
12
+ },
13
+ "bin": {
14
+ "medusa-user-seed": "dist/scripts/bin/run-seed.js"
12
15
  },
13
16
  "repository": {
14
17
  "type": "git",
@@ -34,25 +37,26 @@
34
37
  "orm:cache:clear": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm cache:clear"
35
38
  },
36
39
  "devDependencies": {
37
- "@medusajs/modules-sdk": "1.13.0-snapshot-20240718073308",
38
- "@medusajs/types": "1.12.0-snapshot-20240718073308",
39
40
  "@mikro-orm/cli": "5.9.7",
40
- "@swc/core": "^1.5.29",
41
- "@swc/jest": "^0.2.36",
42
41
  "cross-env": "^5.2.1",
43
- "jest": "^29.7.0",
44
- "medusa-test-utils": "1.1.45-snapshot-20240718073308",
42
+ "jest": "^29.6.3",
43
+ "medusa-test-utils": "^1.1.45",
45
44
  "rimraf": "^3.0.2",
45
+ "ts-jest": "^29.1.1",
46
46
  "ts-node": "^10.9.1",
47
47
  "tsc-alias": "^1.8.6",
48
48
  "typescript": "^5.1.6"
49
49
  },
50
50
  "dependencies": {
51
- "@medusajs/utils": "1.12.0-snapshot-20240718073308",
51
+ "@medusajs/modules-sdk": "^1.12.12",
52
+ "@medusajs/types": "^1.11.17",
53
+ "@medusajs/utils": "^1.11.10",
52
54
  "@mikro-orm/core": "5.9.7",
53
55
  "@mikro-orm/migrations": "5.9.7",
54
56
  "@mikro-orm/postgresql": "5.9.7",
55
57
  "awilix": "^8.0.0",
56
- "jsonwebtoken": "^9.0.2"
58
+ "dotenv": "^16.4.5",
59
+ "jsonwebtoken": "^9.0.2",
60
+ "knex": "2.4.2"
57
61
  }
58
62
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;;;;AAG7C,wBAEE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Migration20240214033943.d.ts","sourceRoot":"","sources":["../../src/migrations/Migration20240214033943.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,qBAAa,uBAAwB,SAAQ,SAAS;IAC9C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IA2CnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B"}
@@ -1,6 +0,0 @@
1
- import { Migration } from "@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"Migration20240703095850.d.ts","sourceRoot":"","sources":["../../src/migrations/Migration20240703095850.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,qBAAa,uBAAwB,SAAQ,SAAS;IAC9C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Migration20240703095850 = void 0;
4
- const migrations_1 = require("@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;
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../src/models/invite.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,aAAa,EAGd,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAiCrC,KAAK,cAAc,GACf,UAAU,GACV,UAAU,GACV,GAAG,CAAC,6BAA6B,CAAA;AAGrC,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,CAAC,aAAa,CAAC,EAAE,cAAc,CAAA;IAG/B,EAAE,EAAE,MAAM,CAAA;IAQV,KAAK,EAAE,MAAM,CAAA;IAGb,QAAQ,EAAE,OAAO,CAAQ;IAOzB,KAAK,EAAE,MAAM,CAAA;IAGb,UAAU,EAAE,IAAI,CAAA;IAGhB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAO;IAO/C,UAAU,EAAE,IAAI,CAAA;IAQhB,UAAU,EAAE,IAAI,CAAA;IAOhB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAO;IAG9B,MAAM;IAKN,YAAY;CAGb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/models/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,aAAa,EAGd,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAyBrC,KAAK,cAAc,GACf,YAAY,GACZ,WAAW,GACX,UAAU,GACV,YAAY,GACZ,GAAG,CAAC,6BAA6B,CAAA;AAIrC,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,CAAC,aAAa,CAAC,CAAC,EAAE,cAAc,CAAA;IAGhC,EAAE,EAAG,MAAM,CAAA;IAIX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAO;IAIhC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAO;IAK/B,KAAK,EAAE,MAAM,CAAA;IAGb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAO;IAGhC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAO;IAO/C,UAAU,EAAE,IAAI,CAAA;IAQhB,UAAU,EAAE,IAAI,CAAA;IAOhB,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAO;IAG/B,QAAQ;IAKR,MAAM;CAGP"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-module.d.ts","sourceRoot":"","sources":["../../src/services/user-module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,GAAG,EACH,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,SAAS,EACV,MAAM,iBAAiB,CAAA;AAexB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEtC,KAAK,oBAAoB,GAAG;IAC1B,cAAc,EAAE,GAAG,CAAC,iBAAiB,CAAA;IACrC,WAAW,EAAE,eAAe,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACxD,aAAa,EAAE,eAAe,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC1D,qBAAqB,EAAE,sBAAsB,CAAA;CAC9C,CAAA;;UAMS;QACJ,GAAG,EAAE,UAAU,OAAO,CAAA;KACvB;YACO;QACN,GAAG,EAAE,UAAU,SAAS,CAAA;KACzB;;AAPL,MAAM,CAAC,OAAO,OAAO,iBACnB,SAAQ,sBAQR,YAAW,SAAS,CAAC,kBAAkB;IAUrC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB;IARjE,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,iBAAiB,CAAA;IAEhD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC7E,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACjF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;gBAGjE,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE,oBAAoB,EACjD,iBAAiB,EAAE,yBAAyB;IAwB3D,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACI,aAAa,GAAE,OAAY,GAC3C,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;IAwBzB,mBAAmB,CACvB,SAAS,EAAE,MAAM,EAAE,EACF,aAAa,GAAE,OAAY,GAC3C,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IAuB3B,oBAAoB,CACxB,SAAS,EAAE,MAAM,EAAE,EACF,aAAa,GAAE,OAAY;IAoC9C,WAAW,CACT,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,EAC/B,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC/B,WAAW,CACT,IAAI,EAAE,SAAS,CAAC,aAAa,EAC7B,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;IAiC7B,WAAW,CACT,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,EAC/B,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC/B,WAAW,CACT,IAAI,EAAE,SAAS,CAAC,aAAa,EAC7B,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;IAiC7B,aAAa,CACX,IAAI,EAAE,SAAS,CAAC,eAAe,EAAE,EACjC,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IACjC,aAAa,CACX,IAAI,EAAE,SAAS,CAAC,eAAe,EAC/B,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;YA4CjB,cAAc;IA4B5B,aAAa,CACX,IAAI,EAAE,SAAS,CAAC,eAAe,EAAE,EACjC,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IACjC,aAAa,CACX,IAAI,EAAE,SAAS,CAAC,eAAe,EAC/B,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;IAmC/B,OAAO,CAAC,aAAa;CAOtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,MAAM,MAAM,sCAAsC,GAAG;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,cAAc,YAAY,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,UAAU,CAAA"}
@@ -1 +0,0 @@
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"}