@aiminaabeejs/link-modules 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/definitions/index.d.ts +4 -0
  2. package/dist/definitions/index.d.ts.map +1 -0
  3. package/dist/definitions/index.js +20 -0
  4. package/dist/definitions/index.js.map +1 -0
  5. package/dist/definitions/order-cart.d.ts +3 -0
  6. package/dist/definitions/order-cart.d.ts.map +1 -0
  7. package/dist/definitions/order-cart.js +71 -0
  8. package/dist/definitions/order-cart.js.map +1 -0
  9. package/dist/definitions/product-sales-channel.d.ts +3 -0
  10. package/dist/definitions/product-sales-channel.d.ts.map +1 -0
  11. package/dist/definitions/product-sales-channel.js +76 -0
  12. package/dist/definitions/product-sales-channel.js.map +1 -0
  13. package/dist/definitions/product-variant-price-set.d.ts +3 -0
  14. package/dist/definitions/product-variant-price-set.d.ts.map +1 -0
  15. package/dist/definitions/product-variant-price-set.js +80 -0
  16. package/dist/definitions/product-variant-price-set.js.map +1 -0
  17. package/dist/index.d.ts +6 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +22 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/initialize/index.d.ts +16 -0
  22. package/dist/initialize/index.d.ts.map +1 -0
  23. package/dist/initialize/index.js +159 -0
  24. package/dist/initialize/index.js.map +1 -0
  25. package/dist/initialize/module-definition.d.ts +3 -0
  26. package/dist/initialize/module-definition.d.ts.map +1 -0
  27. package/dist/initialize/module-definition.js +18 -0
  28. package/dist/initialize/module-definition.js.map +1 -0
  29. package/dist/loaders/connection.d.ts +4 -0
  30. package/dist/loaders/connection.d.ts.map +1 -0
  31. package/dist/loaders/connection.js +19 -0
  32. package/dist/loaders/connection.js.map +1 -0
  33. package/dist/loaders/container.d.ts +3 -0
  34. package/dist/loaders/container.d.ts.map +1 -0
  35. package/dist/loaders/container.js +32 -0
  36. package/dist/loaders/container.js.map +1 -0
  37. package/dist/loaders/index.d.ts +7 -0
  38. package/dist/loaders/index.d.ts.map +1 -0
  39. package/dist/loaders/index.js +14 -0
  40. package/dist/loaders/index.js.map +1 -0
  41. package/dist/migration/index.d.ts +104 -0
  42. package/dist/migration/index.d.ts.map +1 -0
  43. package/dist/migration/index.js +371 -0
  44. package/dist/migration/index.js.map +1 -0
  45. package/dist/repositories/index.d.ts +3 -0
  46. package/dist/repositories/index.d.ts.map +1 -0
  47. package/dist/repositories/index.js +8 -0
  48. package/dist/repositories/index.js.map +1 -0
  49. package/dist/repositories/link.d.ts +35 -0
  50. package/dist/repositories/link.d.ts.map +1 -0
  51. package/dist/repositories/link.js +33 -0
  52. package/dist/repositories/link.js.map +1 -0
  53. package/dist/services/dynamic-service-class.d.ts +8 -0
  54. package/dist/services/dynamic-service-class.d.ts.map +1 -0
  55. package/dist/services/dynamic-service-class.js +32 -0
  56. package/dist/services/dynamic-service-class.js.map +1 -0
  57. package/dist/services/index.d.ts +4 -0
  58. package/dist/services/index.d.ts.map +1 -0
  59. package/dist/services/index.js +26 -0
  60. package/dist/services/index.js.map +1 -0
  61. package/dist/services/link-module-service.d.ts +42 -0
  62. package/dist/services/link-module-service.d.ts.map +1 -0
  63. package/dist/services/link-module-service.js +286 -0
  64. package/dist/services/link-module-service.js.map +1 -0
  65. package/dist/services/link.d.ts +18 -0
  66. package/dist/services/link.d.ts.map +1 -0
  67. package/dist/services/link.js +139 -0
  68. package/dist/services/link.js.map +1 -0
  69. package/dist/tsconfig.tsbuildinfo +1 -0
  70. package/dist/types/index.d.ts +5 -0
  71. package/dist/types/index.d.ts.map +1 -0
  72. package/dist/types/index.js +3 -0
  73. package/dist/types/index.js.map +1 -0
  74. package/dist/utils/generate-entity.d.ts +4 -0
  75. package/dist/utils/generate-entity.d.ts.map +1 -0
  76. package/dist/utils/generate-entity.js +98 -0
  77. package/dist/utils/generate-entity.js.map +1 -0
  78. package/dist/utils/generate-schema.d.ts +5 -0
  79. package/dist/utils/generate-schema.d.ts.map +1 -0
  80. package/dist/utils/generate-schema.js +156 -0
  81. package/dist/utils/generate-schema.js.map +1 -0
  82. package/dist/utils/index.d.ts +3 -0
  83. package/dist/utils/index.d.ts.map +1 -0
  84. package/dist/utils/index.js +19 -0
  85. package/dist/utils/index.js.map +1 -0
  86. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/services/link.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"root":["../src/index.ts","../src/definitions/index.ts","../src/definitions/order-cart.ts","../src/definitions/product-sales-channel.ts","../src/definitions/product-variant-price-set.ts","../src/initialize/index.ts","../src/initialize/module-definition.ts","../src/loaders/connection.ts","../src/loaders/container.ts","../src/loaders/index.ts","../src/migration/index.ts","../src/repositories/index.ts","../src/repositories/link.ts","../src/services/dynamic-service-class.ts","../src/services/index.ts","../src/services/link-module-service.ts","../src/services/link.ts","../src/types/index.ts","../src/utils/generate-entity.ts","../src/utils/generate-schema.ts","../src/utils/index.ts"],"version":"5.7.3"}
@@ -0,0 +1,5 @@
1
+ import { Logger } from "@aiminaabeejs/framework/types";
2
+ export type InitializeModuleInjectableDependencies = {
3
+ logger?: Logger;
4
+ };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEtD,MAAM,MAAM,sCAAsC,GAAG;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { JoinerRelationship, ModuleJoinerConfig } from "@aiminaabeejs/framework/types";
2
+ import { EntitySchema } from "@mikro-orm/core";
3
+ export declare function generateEntity(joinerConfig: ModuleJoinerConfig, primary: JoinerRelationship, foreign: JoinerRelationship): EntitySchema<any, never>;
4
+ //# sourceMappingURL=generate-entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-entity.d.ts","sourceRoot":"","sources":["../../src/utils/generate-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,+BAA+B,CAAA;AAStC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAY9C,wBAAgB,cAAc,CAC5B,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,kBAAkB,4BAmG5B"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateEntity = generateEntity;
4
+ const utils_1 = require("@aiminaabeejs/framework/utils");
5
+ const core_1 = require("@mikro-orm/core");
6
+ function getClass(...properties) {
7
+ return class LinkModel {
8
+ constructor(...values) {
9
+ properties.forEach((name, idx) => {
10
+ this[name] = values[idx];
11
+ });
12
+ }
13
+ };
14
+ }
15
+ function generateEntity(joinerConfig, primary, foreign) {
16
+ const fieldNames = primary.foreignKey.split(",").concat(foreign.foreignKey);
17
+ const tableName = joinerConfig.databaseConfig?.tableName ??
18
+ (0, utils_1.composeTableName)(primary.serviceName, primary.foreignKey, foreign.serviceName, foreign.foreignKey).toLowerCase();
19
+ const fields = fieldNames.reduce((acc, curr) => {
20
+ acc[curr] = {
21
+ type: "string",
22
+ nullable: false,
23
+ primary: true,
24
+ };
25
+ return acc;
26
+ }, {});
27
+ const extraFields = joinerConfig.databaseConfig?.extraFields ?? {};
28
+ for (const column in extraFields) {
29
+ fieldNames.push(column);
30
+ fields[column] = {
31
+ type: extraFields[column].type,
32
+ nullable: !!extraFields[column].nullable,
33
+ defaultRaw: extraFields[column].defaultValue,
34
+ ...(extraFields[column].options ?? {}),
35
+ };
36
+ }
37
+ const hashTableName = (0, utils_1.simpleHash)(tableName);
38
+ return new core_1.EntitySchema({
39
+ class: getClass(...fieldNames.concat("created_at", "updated_at", "deleted_at")),
40
+ tableName: (0, utils_1.compressName)(tableName),
41
+ properties: {
42
+ id: {
43
+ type: "string",
44
+ nullable: false,
45
+ },
46
+ ...fields,
47
+ created_at: {
48
+ columnType: "timestamptz",
49
+ type: "date",
50
+ nullable: false,
51
+ defaultRaw: "CURRENT_TIMESTAMP",
52
+ },
53
+ updated_at: {
54
+ columnType: "timestamptz",
55
+ type: "date",
56
+ nullable: false,
57
+ defaultRaw: "CURRENT_TIMESTAMP",
58
+ },
59
+ deleted_at: {
60
+ columnType: "timestamptz",
61
+ type: "date",
62
+ nullable: true,
63
+ },
64
+ },
65
+ filters: {
66
+ [utils_1.SoftDeletableFilterKey]: utils_1.mikroOrmSoftDeletableFilterOptions,
67
+ },
68
+ hooks: {
69
+ beforeUpdate: [
70
+ (args) => {
71
+ args.entity.updated_at = new Date();
72
+ },
73
+ ],
74
+ },
75
+ indexes: [
76
+ {
77
+ properties: ["id"],
78
+ name: "IDX_id_" + hashTableName,
79
+ },
80
+ {
81
+ properties: primary.foreignKey.split(","),
82
+ name: "IDX_" +
83
+ primary.foreignKey.split(",").join("_") +
84
+ "_" +
85
+ hashTableName,
86
+ },
87
+ {
88
+ properties: foreign.foreignKey,
89
+ name: "IDX_" + foreign.foreignKey + "_" + hashTableName,
90
+ },
91
+ {
92
+ properties: ["deleted_at"],
93
+ name: "IDX_deleted_at_" + hashTableName,
94
+ },
95
+ ],
96
+ });
97
+ }
98
+ //# sourceMappingURL=generate-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-entity.js","sourceRoot":"","sources":["../../src/utils/generate-entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ModuleJoinerConfig, ModuleJoinerRelationship } from "@aiminaabeejs/framework/types";
2
+ export declare function generateGraphQLSchema(joinerConfig: ModuleJoinerConfig, primary: ModuleJoinerRelationship, foreign: ModuleJoinerRelationship, { logger }?: {
3
+ logger: any;
4
+ }): string;
5
+ //# sourceMappingURL=generate-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-schema.d.ts","sourceRoot":"","sources":["../../src/utils/generate-schema.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,+BAA+B,CAAA;AAStC,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,wBAAwB,EACjC,EAAE,MAAM,EAAE,GAAE;IAAE,MAAM,MAAA;CAAwB,UAgM7C"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateGraphQLSchema = generateGraphQLSchema;
4
+ const modules_sdk_1 = require("@aiminaabeejs/framework/modules-sdk");
5
+ const utils_1 = require("@aiminaabeejs/framework/utils");
6
+ function generateGraphQLSchema(joinerConfig, primary, foreign, { logger } = { logger: console }) {
7
+ let fieldNames;
8
+ let entityName;
9
+ const isReadOnlyLink = joinerConfig.isReadOnlyLink;
10
+ if (!isReadOnlyLink) {
11
+ fieldNames = primary.foreignKey.split(",").concat(foreign.foreignKey);
12
+ entityName = (0, utils_1.toPascalCase)("Link_" +
13
+ (joinerConfig.databaseConfig?.tableName ??
14
+ (0, utils_1.composeTableName)(primary.serviceName, primary.foreignKey, foreign.serviceName, foreign.foreignKey)));
15
+ }
16
+ let typeDef = "";
17
+ for (const extend of joinerConfig.extends ?? []) {
18
+ const extendedModule = modules_sdk_1.AiminaabeeModule.getModuleInstance(extend.serviceName);
19
+ if (!extendedModule) {
20
+ throw new Error(`Module ${extend.serviceName} not found. Please verify that the module is configured and installed, also the module must be loaded before the link modules.`);
21
+ }
22
+ let extendedEntityName = extendedModule[extend.serviceName].__joinerConfig.linkableKeys[extend.relationship.primaryKey];
23
+ if (!isReadOnlyLink && (!primary || !foreign || !extendedEntityName)) {
24
+ logger.warn(`Link modules schema: No linkable key found for ${extend.relationship.primaryKey} on module ${extend.serviceName}.`);
25
+ continue;
26
+ }
27
+ const fieldName = (0, utils_1.camelToSnakeCase)((0, utils_1.lowerCaseFirst)(extend.relationship.alias));
28
+ let type = extend.relationship.isList ? `[${entityName}]` : entityName;
29
+ if (joinerConfig?.isReadOnlyLink) {
30
+ // TODO: In readonly links, the relationship of the extend where entity is undefined has to be applied on all entities in the module that have the relationshiop foreing key attribute (unkown in this context)
31
+ if (!extend.entity) {
32
+ continue;
33
+ }
34
+ const rel = extend.relationship;
35
+ const extendedService = modules_sdk_1.AiminaabeeModule.getModuleInstance(rel.serviceName);
36
+ const hasGraphqlSchema = !!extendedService[rel.serviceName].__joinerConfig.schema;
37
+ const relEntity = rel.entity
38
+ ? rel.entity
39
+ : extendedService[rel.serviceName].__joinerConfig.linkableKeys[rel.primaryKey];
40
+ if (!relEntity || !hasGraphqlSchema) {
41
+ continue;
42
+ }
43
+ type = rel.isList ? `[${relEntity}]` : relEntity;
44
+ extendedEntityName = extend.entity;
45
+ }
46
+ /**
47
+ * Find the field aliases shortcut to extend the entity with it
48
+ */
49
+ const fieldsAliasesField = Object.entries(extend.fieldAlias || {})
50
+ .map(([field, config]) => {
51
+ const path = (0, utils_1.isString)(config) ? config : config.path;
52
+ const isList = (0, utils_1.isString)(config)
53
+ ? extend.relationship.isList
54
+ : config.isList ?? extend.relationship.isList;
55
+ const targetEntityAlias = path.split(".").pop();
56
+ const targetEntityRelation = joinerConfig.relationships?.find((relation) => relation.alias === targetEntityAlias);
57
+ if (!targetEntityRelation) {
58
+ return;
59
+ }
60
+ const targetEntityName = modules_sdk_1.AiminaabeeModule.getJoinerConfig(targetEntityRelation.serviceName).linkableKeys?.[targetEntityRelation.foreignKey];
61
+ if (!targetEntityName) {
62
+ logger.warn(`Link modules schema: No linkable key found for ${targetEntityRelation.foreignKey} on module ${targetEntityRelation.serviceName}.`);
63
+ return;
64
+ }
65
+ // TODO: Re visit field aliases that access properties from a type
66
+ /*const targetEntityType = `${targetEntityName}${
67
+ relationshipPropertyPath.length
68
+ ? relationshipPropertyPath.reduce((acc, value) => {
69
+ return `${acc}[${value}]`
70
+ }, targetEntityName)
71
+ : ""
72
+ }`*/
73
+ return `${field}: ${isList ? `[${targetEntityName}]` : targetEntityName}`;
74
+ })
75
+ .filter(Boolean);
76
+ typeDef += `
77
+ extend type ${extendedEntityName} {
78
+ ${fieldName}: ${type}
79
+
80
+ ${fieldsAliasesField.join("\n")}
81
+ }
82
+ `;
83
+ }
84
+ if (isReadOnlyLink) {
85
+ return typeDef;
86
+ }
87
+ // Pivot table fields
88
+ const fields = fieldNames.reduce((acc, curr) => {
89
+ acc[curr] = {
90
+ type: "String",
91
+ nullable: false,
92
+ };
93
+ return acc;
94
+ }, {});
95
+ const extraFields = joinerConfig.databaseConfig?.extraFields ?? {};
96
+ for (const column in extraFields) {
97
+ fields[column] = {
98
+ type: getGraphQLType(extraFields[column].type),
99
+ nullable: !!extraFields[column].nullable,
100
+ };
101
+ }
102
+ // TODO: temporary, every module might always expose their schema
103
+ const doesPrimaryExportSchema = !!modules_sdk_1.AiminaabeeModule.getJoinerConfig(primary.serviceName)?.schema;
104
+ const doesForeignExportSchema = !!modules_sdk_1.AiminaabeeModule.getJoinerConfig(foreign.serviceName)?.schema;
105
+ // Link table relationships
106
+ const primaryField = doesPrimaryExportSchema
107
+ ? `${(0, utils_1.camelToSnakeCase)(primary.alias)}: ${(0, utils_1.toPascalCase)(primary.entity ?? (0, utils_1.composeTableName)(primary.serviceName))}`
108
+ : "";
109
+ const foreignField = doesForeignExportSchema
110
+ ? `${(0, utils_1.camelToSnakeCase)(foreign.alias)}: ${(0, utils_1.toPascalCase)(foreign.entity ?? (0, utils_1.composeTableName)(foreign.serviceName))}`
111
+ : "";
112
+ typeDef += `
113
+ type ${entityName} {
114
+ ${Object.entries(fields)
115
+ .map(([field, { type, nullable }]) => `${field}: ${nullable ? type : `${type}!`}`)
116
+ .join("\n ")}
117
+
118
+ ${primaryField}
119
+ ${foreignField}
120
+
121
+ createdAt: String!
122
+ updatedAt: String!
123
+ deletedAt: String
124
+ }
125
+ `;
126
+ return typeDef;
127
+ }
128
+ function getGraphQLType(type) {
129
+ const typeDef = {
130
+ numeric: "Float",
131
+ integer: "Int",
132
+ smallint: "Int",
133
+ tinyint: "Int",
134
+ mediumint: "Int",
135
+ float: "Float",
136
+ double: "Float",
137
+ boolean: "Boolean",
138
+ decimal: "Float",
139
+ string: "String",
140
+ uuid: "ID",
141
+ text: "String",
142
+ date: "Date",
143
+ time: "Time",
144
+ datetime: "DateTime",
145
+ bigint: "BigInt",
146
+ blob: "Blob",
147
+ uint8array: "[Int]",
148
+ array: "[String]",
149
+ enumArray: "[String]",
150
+ enum: "String",
151
+ json: "JSON",
152
+ jsonb: "JSON",
153
+ };
154
+ return typeDef[type] ?? "String";
155
+ }
156
+ //# sourceMappingURL=generate-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-schema.js","sourceRoot":"","sources":["../../src/utils/generate-schema.ts"],"names":[],"mappings":";;AAaA,sDAoMC;AAjND,qEAAsE;AAKtE,yDAMsC;AAEtC,SAAgB,qBAAqB,CACnC,YAAgC,EAChC,OAAiC,EACjC,OAAiC,EACjC,EAAE,MAAM,KAAiB,EAAE,MAAM,EAAE,OAAO,EAAE;IAE5C,IAAI,UAAqB,CAAA;IACzB,IAAI,UAAmB,CAAA;IAEvB,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,CAAA;IAClD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAErE,UAAU,GAAG,IAAA,oBAAY,EACvB,OAAO;YACL,CAAC,YAAY,CAAC,cAAc,EAAE,SAAS;gBACrC,IAAA,wBAAgB,EACd,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,UAAU,CACnB,CAAC,CACP,CAAA;IACH,CAAC;IAED,IAAI,OAAO,GAAG,EAAE,CAAA;IAEhB,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAChD,MAAM,cAAc,GAAG,8BAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAC7E,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,WAAW,gIAAgI,CAC7J,CAAA;QACH,CAAC;QAED,IAAI,kBAAkB,GACpB,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,YAAY,CAC5D,MAAM,CAAC,YAAY,CAAC,UAAU,CAC/B,CAAA;QAEH,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CACT,kDAAkD,MAAM,CAAC,YAAY,CAAC,UAAU,cAAc,MAAM,CAAC,WAAW,GAAG,CACpH,CAAA;YAED,SAAQ;QACV,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,wBAAgB,EAChC,IAAA,sBAAc,EAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAC1C,CAAA;QAED,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,CAAA;QACtE,IAAI,YAAY,EAAE,cAAc,EAAE,CAAC;YACjC,+MAA+M;YAC/M,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,SAAQ;YACV,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAA;YAC/B,MAAM,eAAe,GAAG,8BAAgB,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAE3E,MAAM,gBAAgB,GACpB,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,MAAM,CAAA;YAC1D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM;gBAC1B,CAAC,CAAC,GAAG,CAAC,MAAM;gBACZ,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,YAAY,CAC1D,GAAG,CAAC,UAAU,CACf,CAAA;YAEL,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpC,SAAQ;YACV,CAAC;YAED,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,SAAU,CAAA;YACjD,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAA;QACpC,CAAC;QAED;;WAEG;QACH,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;aAC/D,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAA;YACpD,MAAM,MAAM,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC;gBAC7B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM;gBAC5B,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAA;YAE/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;YAE/C,MAAM,oBAAoB,GAAG,YAAY,CAAC,aAAa,EAAE,IAAI,CAC3D,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,iBAAiB,CACnD,CAAA;YAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,OAAM;YACR,CAAC;YAED,MAAM,gBAAgB,GAAG,8BAAgB,CAAC,eAAe,CACvD,oBAAoB,CAAC,WAAW,CACjC,CAAC,YAAY,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAA;YAEjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CACT,kDAAkD,oBAAoB,CAAC,UAAU,cAAc,oBAAoB,CAAC,WAAW,GAAG,CACnI,CAAA;gBAED,OAAM;YACR,CAAC;YAED,kEAAkE;YAClE;;;;;;gBAMI;YAEJ,OAAO,GAAG,KAAK,KACb,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC,gBACrC,EAAE,CAAA;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC,CAAA;QAElB,OAAO,IAAI;oBACK,kBAAkB;UAC5B,SAAS,KAAK,IAAI;;UAElB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;;KAElC,CAAA;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7C,GAAG,CAAC,IAAI,CAAC,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;SAChB,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,WAAW,IAAI,EAAE,CAAA;IAElE,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC9C,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ;SACzC,CAAA;IACH,CAAC;IAED,iEAAiE;IACjE,MAAM,uBAAuB,GAAG,CAAC,CAAC,8BAAgB,CAAC,eAAe,CAChE,OAAO,CAAC,WAAW,CACpB,EAAE,MAAM,CAAA;IACT,MAAM,uBAAuB,GAAG,CAAC,CAAC,8BAAgB,CAAC,eAAe,CAChE,OAAO,CAAC,WAAW,CACpB,EAAE,MAAM,CAAA;IAET,2BAA2B;IAC3B,MAAM,YAAY,GAAG,uBAAuB;QAC1C,CAAC,CAAC,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAA,oBAAY,EACjD,OAAO,CAAC,MAAM,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,WAAW,CAAC,CACxD,EAAE;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,YAAY,GAAG,uBAAuB;QAC1C,CAAC,CAAC,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAA,oBAAY,EACjD,OAAO,CAAC,MAAM,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,WAAW,CAAC,CACxD,EAAE;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO,IAAI;WACF,UAAU;QACZ,MAAM,CAAC,OAAO,CAAC,MAAM,CAAS;SAC9B,GAAG,CACF,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAC9B,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAC9C;SACA,IAAI,CAAC,UAAU,CAAC;;QAEjB,YAAY;QACZ,YAAY;;;;;;GAMjB,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,IAAI;IAC1B,MAAM,OAAO,GAAG;QACd,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,OAAO;QACnB,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd,CAAA;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAA;AAClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./generate-entity";
2
+ export * from "./generate-schema";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,19 @@
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("./generate-entity"), exports);
18
+ __exportStar(require("./generate-schema"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,oDAAiC"}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@aiminaabeejs/link-modules",
3
+ "version": "0.0.1",
4
+ "description": "Aiminaabeejs Default Link Modules Package and Definitions",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "!dist/**/__tests__",
10
+ "!dist/**/__mocks__",
11
+ "!dist/**/__fixtures__"
12
+ ],
13
+ "publishConfig": {
14
+ "access": "public"
15
+ },
16
+ "engines": {
17
+ "node": ">=20"
18
+ },
19
+ "license": "MIT",
20
+ "scripts": {
21
+ "watch": "tsc --build --watch",
22
+ "watch:test": "tsc --build tsconfig.spec.json --watch",
23
+ "prepare": "cross-env NODE_ENV=production yarn run build",
24
+ "resolve:aliases": "tsc --showConfig -p tsconfig.json > tsconfig.resolved.json && tsc-alias -p tsconfig.resolved.json && rimraf tsconfig.resolved.json",
25
+ "build": "rimraf dist && tsc --build && npm run resolve:aliases",
26
+ "test": "jest --passWithNoTests --runInBand --bail --forceExit -- src",
27
+ "test:integration": "jest --forceExit -- integration-tests/**/__tests__/**/*.ts"
28
+ },
29
+ "devDependencies": {
30
+ "@aiminaabeejs/framework": "*",
31
+ "@aiminaabeejs/test-utils": "*",
32
+ "@mikro-orm/core": "6.4.3",
33
+ "@mikro-orm/migrations": "6.4.3",
34
+ "@mikro-orm/postgresql": "6.4.3",
35
+ "@swc/core": "^1.7.28",
36
+ "@swc/jest": "^0.2.36",
37
+ "cross-env": "^5.2.1",
38
+ "jest": "^29.7.0",
39
+ "rimraf": "^5.0.1",
40
+ "tsc-alias": "^1.8.6",
41
+ "typescript": "^5.6.2"
42
+ },
43
+ "peerDependencies": {
44
+ "@aiminaabeejs/framework": "*",
45
+ "@mikro-orm/core": "6.4.3",
46
+ "@mikro-orm/migrations": "6.4.3",
47
+ "@mikro-orm/postgresql": "6.4.3",
48
+ "awilix": "^8.0.1"
49
+ }
50
+ }