@medusajs/user 0.0.4-snapshot-20240718073308 → 0.0.4

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 (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"}