@docstack/client 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 (77) hide show
  1. package/README.md +214 -0
  2. package/lib/core/attribute.d.ts +174 -0
  3. package/lib/core/attribute.js +296 -0
  4. package/lib/core/attribute.js.map +1 -0
  5. package/lib/core/class.d.ts +340 -0
  6. package/lib/core/class.js +540 -0
  7. package/lib/core/class.js.map +1 -0
  8. package/lib/core/crypto-engine/index.d.ts +121 -0
  9. package/lib/core/crypto-engine/index.js +130 -0
  10. package/lib/core/crypto-engine/index.js.map +1 -0
  11. package/lib/core/crypto-engine/utils.d.ts +20 -0
  12. package/lib/core/crypto-engine/utils.js +76 -0
  13. package/lib/core/crypto-engine/utils.js.map +1 -0
  14. package/lib/core/datamodel/index.d.ts +3 -0
  15. package/lib/core/datamodel/index.js +1186 -0
  16. package/lib/core/datamodel/index.js.map +1 -0
  17. package/lib/core/domain.d.ts +200 -0
  18. package/lib/core/domain.js +285 -0
  19. package/lib/core/domain.js.map +1 -0
  20. package/lib/core/index.d.ts +176 -0
  21. package/lib/core/index.js +379 -0
  22. package/lib/core/index.js.map +1 -0
  23. package/lib/core/job-engine/index.d.ts +110 -0
  24. package/lib/core/job-engine/index.js +116 -0
  25. package/lib/core/job-engine/index.js.map +1 -0
  26. package/lib/core/policy-engine/index.d.ts +97 -0
  27. package/lib/core/policy-engine/index.js +150 -0
  28. package/lib/core/policy-engine/index.js.map +1 -0
  29. package/lib/core/query-engine/accumulators.d.ts +9 -0
  30. package/lib/core/query-engine/accumulators.js +258 -0
  31. package/lib/core/query-engine/accumulators.js.map +1 -0
  32. package/lib/core/query-engine/evaluator.d.ts +37 -0
  33. package/lib/core/query-engine/evaluator.js +179 -0
  34. package/lib/core/query-engine/evaluator.js.map +1 -0
  35. package/lib/core/query-engine/executor.d.ts +14 -0
  36. package/lib/core/query-engine/executor.js +405 -0
  37. package/lib/core/query-engine/executor.js.map +1 -0
  38. package/lib/core/query-engine/index.d.ts +4 -0
  39. package/lib/core/query-engine/index.js +4 -0
  40. package/lib/core/query-engine/index.js.map +1 -0
  41. package/lib/core/query-engine/parser.d.ts +10 -0
  42. package/lib/core/query-engine/parser.js +515 -0
  43. package/lib/core/query-engine/parser.js.map +1 -0
  44. package/lib/core/query-engine/planner.d.ts +27 -0
  45. package/lib/core/query-engine/planner.js +330 -0
  46. package/lib/core/query-engine/planner.js.map +1 -0
  47. package/lib/core/stack.d.ts +497 -0
  48. package/lib/core/stack.js +1507 -0
  49. package/lib/core/stack.js.map +1 -0
  50. package/lib/core/test-utils/docstack.d.ts +29 -0
  51. package/lib/core/test-utils/docstack.js +222 -0
  52. package/lib/core/test-utils/docstack.js.map +1 -0
  53. package/lib/core/trigger/index.d.ts +31 -0
  54. package/lib/core/trigger/index.js +81 -0
  55. package/lib/core/trigger/index.js.map +1 -0
  56. package/lib/index.d.ts +4 -0
  57. package/lib/index.js +8237 -0
  58. package/lib/index.js.map +1 -0
  59. package/lib/plugins/pouchdb.d.ts +9 -0
  60. package/lib/plugins/pouchdb.js +403 -0
  61. package/lib/plugins/pouchdb.js.map +1 -0
  62. package/lib/utils/crypto/index.d.ts +3 -0
  63. package/lib/utils/crypto/index.js +34 -0
  64. package/lib/utils/crypto/index.js.map +1 -0
  65. package/lib/utils/index.d.ts +4 -0
  66. package/lib/utils/index.js +58 -0
  67. package/lib/utils/index.js.map +1 -0
  68. package/lib/utils/logger/index.d.ts +4 -0
  69. package/lib/utils/logger/index.js +20 -0
  70. package/lib/utils/logger/index.js.map +1 -0
  71. package/lib/utils/logger/transport.d.ts +11 -0
  72. package/lib/utils/logger/transport.js +28 -0
  73. package/lib/utils/logger/transport.js.map +1 -0
  74. package/lib/workers/dataModel.d.ts +1 -0
  75. package/lib/workers/dataModel.js +48 -0
  76. package/lib/workers/dataModel.js.map +1 -0
  77. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/datamodel/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ import { Document, Domain as Domain_, DomainModel, Stack, DomainRelationValidation, DomainRelationParams, Class, RelationDocument } from "@docstack/shared";
2
+ import { Logger } from "winston";
3
+ /**
4
+ * Represents a relationship definition between two Classes in the DocStack database.
5
+ *
6
+ * A Domain defines how documents of different classes relate to each other,
7
+ * supporting cardinality constraints (1:1, 1:N, N:1, N:N). Relation documents
8
+ * are created to track the links between source and target documents.
9
+ *
10
+ * Use the static factory methods ({@link Domain.create}, {@link Domain.fetch}) to
11
+ * instantiate domains - the constructor is private.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Define a 1:N relationship between Projects and Tasks
16
+ * const projectTaskDomain = await Domain.create(
17
+ * stack,
18
+ * null,
19
+ * 'ProjectTasks',
20
+ * 'domain',
21
+ * '1:N',
22
+ * projectClass,
23
+ * taskClass
24
+ * );
25
+ *
26
+ * // Create a relation between a project and a task
27
+ * await projectTaskDomain.addRelation(taskDoc, 'Project-1');
28
+ * ```
29
+ *
30
+ * @extends Domain_
31
+ */
32
+ declare class Domain extends Domain_ {
33
+ /** Reference to the parent stack instance. */
34
+ stack: Stack | undefined;
35
+ /** The name of this domain (e.g., 'ProjectTasks'). */
36
+ name: string;
37
+ /** The domain type (typically 'domain'). */
38
+ type: DomainModel["~class"];
39
+ /** Optional description of the domain purpose. */
40
+ description: string | undefined;
41
+ /** The unique identifier for this domain. */
42
+ id: string;
43
+ /** The cardinality of the relationship: '1:1', '1:N', 'N:1', or 'N:N'. */
44
+ relation: DomainModel["relation"];
45
+ /** The source class in the relationship. */
46
+ sourceClass: Class;
47
+ /** The target class in the relationship. */
48
+ targetClass: Class;
49
+ /** The underlying DomainModel document. */
50
+ model: DomainModel;
51
+ /** Current state indicating if the domain is processing an operation. */
52
+ state: "busy" | "idle";
53
+ static logger: Logger;
54
+ logger: Logger;
55
+ private constructor();
56
+ getStack: () => Stack;
57
+ getName: () => string;
58
+ setId: (id: string) => void;
59
+ setModel: (model?: DomainModel) => void;
60
+ build: () => Promise<Domain>;
61
+ init: (stack: Stack | null, id: string | null, name: string, type: DomainModel["~class"], relation: typeof this.relation, sourceClass: Class, targetClass: Class, description?: string) => void;
62
+ /**
63
+ * Gets a Domain instance without persisting it to the database.
64
+ * Use this for working with existing domain models or for testing.
65
+ * Sets up a document change listener for real-time updates.
66
+ *
67
+ * @param stack - The parent stack instance
68
+ * @param id - The domain ID (or null for new domains)
69
+ * @param name - The domain name
70
+ * @param type - The domain type (typically 'domain')
71
+ * @param relation - The cardinality constraint
72
+ * @param sourceClass - The source Class in the relationship
73
+ * @param targetClass - The target Class in the relationship
74
+ * @param description - Optional description
75
+ * @param schema - Optional schema definition
76
+ * @returns A new Domain instance (not persisted)
77
+ */
78
+ static get: (stack: Stack, id: string | null, name: string, type: DomainModel["~class"], relation: "1:1" | "1:N" | "N:1" | "N:N", sourceClass: Class, targetClass: Class, description?: string, schema?: DomainModel["schema"]) => Domain;
79
+ /**
80
+ * Creates a new domain and persists it to the database.
81
+ * This is the primary factory method for creating new domains.
82
+ *
83
+ * @param stack - The parent stack instance
84
+ * @param id - The domain ID (typically null for auto-generation)
85
+ * @param name - The name for the new domain
86
+ * @param type - The domain type (typically 'domain')
87
+ * @param relation - The cardinality constraint: '1:1', '1:N', 'N:1', or 'N:N'
88
+ * @param sourceClass - The source Class in the relationship
89
+ * @param targetClass - The target Class in the relationship
90
+ * @param description - Optional description of the domain
91
+ * @param schema - Optional schema definition
92
+ * @returns The persisted Domain instance
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const domain = await Domain.create(
97
+ * stack, null, 'UserProjects', 'domain', '1:N',
98
+ * userClass, projectClass, 'Users can have many projects'
99
+ * );
100
+ * ```
101
+ */
102
+ static create: (stack: Stack, id: string | null, name: string, type: DomainModel["~class"], relation: "1:1" | "1:N" | "N:1" | "N:N", sourceClass: Class, targetClass: Class, description?: string, schema?: DomainModel["schema"]) => Promise<Domain>;
103
+ /**
104
+ * Builds a Domain instance from an existing DomainModel document.
105
+ * Fetches the source and target classes and hydrates the domain.
106
+ *
107
+ * @param stack - The parent stack instance
108
+ * @param domainModel - The DomainModel document from the database
109
+ * @returns The hydrated Domain instance
110
+ * @throws Error if source or target class is not found
111
+ */
112
+ static buildFromModel: (stack: Stack, domainModel: DomainModel) => Promise<Domain>;
113
+ /**
114
+ * Fetches a domain by its name.
115
+ * This is the most common way to retrieve an existing domain.
116
+ *
117
+ * @param stack - The parent stack instance
118
+ * @param domainName - The domain name to fetch
119
+ * @returns The Domain instance, or `null` if not found
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const domain = await Domain.fetch(stack, 'ProjectTasks');
124
+ * if (domain) {
125
+ * const relations = await domain.getRelations();
126
+ * }
127
+ * ```
128
+ */
129
+ static fetch: (stack: Stack, domainName: string) => Promise<Domain>;
130
+ /**
131
+ * Returns the current DomainModel representation of this domain.
132
+ * @returns The DomainModel document
133
+ */
134
+ getModel: () => DomainModel;
135
+ requireStack: () => Stack;
136
+ getDocumentRole: (doc: Document) => "source" | "target";
137
+ assertReferenceAllowed: (role: "source" | "target") => void;
138
+ buildRelationParams: (doc: Document, referenceId: string, role: "source" | "target") => DomainRelationParams;
139
+ fetchReferenceDocument: (referenceId: string, expectedType: string) => Promise<Document>;
140
+ findRelationDoc: (selector: {
141
+ [key: string]: any;
142
+ }) => Promise<RelationDocument | null>;
143
+ throwIfRelationExists: (filter: {
144
+ [key: string]: any;
145
+ }, params: DomainRelationParams) => Promise<RelationDocument>;
146
+ ensureCardinalityConstraints: (params: DomainRelationParams) => Promise<void>;
147
+ validateRelation: (doc: Document, referenceId: string) => Promise<DomainRelationValidation>;
148
+ /**
149
+ * Retrieves relation documents for this domain.
150
+ *
151
+ * @param selector - Optional PouchDB/Mango selector for filtering
152
+ * @param fields - Optional list of fields to return
153
+ * @param skip - Number of documents to skip
154
+ * @param limit - Maximum number of documents to return
155
+ * @returns Array of matching relation documents
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * // Get all relations
160
+ * const allRelations = await domain.getRelations();
161
+ *
162
+ * // Get relations for a specific source
163
+ * const projectRelations = await domain.getRelations({ sourceId: { $eq: 'Project-1' } });
164
+ * ```
165
+ */
166
+ getRelations: (selector?: {
167
+ [key: string]: any;
168
+ }, fields?: string[], skip?: number, limit?: number) => Promise<RelationDocument[]>;
169
+ /**
170
+ * Creates a relation between documents.
171
+ * Validates cardinality constraints before creating the relation.
172
+ *
173
+ * @param document - The document to link (source or target based on role)
174
+ * @param referenceId - The ID of the document to link to
175
+ * @returns The created relation document, or existing relation if already exists
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * // Link a task to a project (assuming 1:N from Project to Task)
180
+ * const relation = await projectTaskDomain.addRelation(taskDoc, 'Project-1');
181
+ * ```
182
+ */
183
+ addRelation: (document: Document, referenceId: string) => Promise<RelationDocument>;
184
+ /**
185
+ * Deletes a relation between two documents by their IDs.
186
+ *
187
+ * @param sourceId - The source document ID
188
+ * @param targetId - The target document ID
189
+ * @returns `true` if deleted, `false` if relation not found
190
+ */
191
+ deleteRelation: (sourceId: string, targetId: string) => Promise<boolean>;
192
+ /**
193
+ * Deletes a relation document by its ID.
194
+ *
195
+ * @param relationDocId - The relation document ID to delete
196
+ * @returns `true` if deleted successfully
197
+ */
198
+ deleteRelationDoc: (relationDocId: string) => Promise<boolean>;
199
+ }
200
+ export default Domain;
@@ -0,0 +1,285 @@
1
+ var _a;
2
+ import { Domain as Domain_ } from "@docstack/shared";
3
+ import clientLogger from "../utils/logger/index.js";
4
+ class Domain extends Domain_ {
5
+ constructor() {
6
+ super();
7
+ this.state = "idle";
8
+ this.getStack = () => {
9
+ return this.stack;
10
+ };
11
+ this.getName = () => {
12
+ return this.name;
13
+ };
14
+ this.setId = (id) => {
15
+ this.id = id;
16
+ };
17
+ this.setModel = (model) => {
18
+ _a.logger.info("setModel - got incoming model", { model: model });
19
+ // Retreive current class model
20
+ let currentModel = this.getModel();
21
+ // Set model arg to the overwrite of the current model with the given one
22
+ model = Object.assign(currentModel, model);
23
+ this.id = model._id;
24
+ this.name = model.name;
25
+ this.description = model.description;
26
+ this.relation = model.relation;
27
+ this.type = model["~class"];
28
+ this.model = model;
29
+ _a.logger.info("setModel - model after processing", { model: model });
30
+ };
31
+ this.build = () => {
32
+ return new Promise(async (resolve, reject) => {
33
+ let stack = this.getStack();
34
+ if (stack) {
35
+ let domainModel = await stack.addDomain(this);
36
+ if (domainModel) {
37
+ // Hydrate model
38
+ this.setModel(domainModel);
39
+ _a.logger.info("build - domainModel", { domainModel });
40
+ this.setId(domainModel._id);
41
+ resolve(this);
42
+ }
43
+ else {
44
+ reject("Unable to get create domainModel. Check logs.");
45
+ }
46
+ }
47
+ else {
48
+ reject("Missing stack assignment");
49
+ }
50
+ });
51
+ };
52
+ this.init = (stack, id, name, type, relation, sourceClass, targetClass, description) => {
53
+ if (stack) {
54
+ this.stack = stack;
55
+ }
56
+ this.name = name;
57
+ this.id = id;
58
+ this.description = description;
59
+ this.type = type;
60
+ this.relation = relation;
61
+ this.sourceClass = sourceClass;
62
+ this.targetClass = targetClass;
63
+ this.setModel({
64
+ "~class": type, _id: id, active: true,
65
+ name, relation, sourceClass: sourceClass.id,
66
+ targetClass: targetClass.id, description,
67
+ });
68
+ this.logger = clientLogger(this.stack).child({ module: "domain", domainName: this.name });
69
+ };
70
+ this.getModel = () => {
71
+ let model = {
72
+ _id: this.id,
73
+ name: this.name,
74
+ description: this.description,
75
+ "~class": this.type,
76
+ relation: this.relation,
77
+ sourceClass: this.sourceClass.id,
78
+ targetClass: this.targetClass.id,
79
+ // schema: this.buildSchema(),
80
+ active: true,
81
+ _rev: this.model ? this.model._rev : "", // [TODO] Error prone
82
+ "~createTimestamp": this.model ? this.model["~createTimestamp"] : undefined,
83
+ };
84
+ return model;
85
+ };
86
+ this.requireStack = () => {
87
+ if (!this.stack) {
88
+ throw new Error(`Stack is not defined for Domain ${this.name}`);
89
+ }
90
+ return this.stack;
91
+ };
92
+ this.getDocumentRole = (doc) => {
93
+ if (doc["~class"] === this.sourceClass.getName()) {
94
+ return "source";
95
+ }
96
+ if (doc["~class"] === this.targetClass.getName()) {
97
+ return "target";
98
+ }
99
+ throw new Error(`Document of type '${doc["~class"]}' is not part of domain '${this.name}'.`);
100
+ };
101
+ this.assertReferenceAllowed = (role) => {
102
+ switch (this.relation) {
103
+ case "1:N":
104
+ if (role !== "target") {
105
+ throw new Error(`Documents of class '${this.sourceClass}' cannot hold reference attributes for domain '${this.name}'.`);
106
+ }
107
+ break;
108
+ case "N:1":
109
+ if (role !== "source") {
110
+ throw new Error(`Documents of class '${this.targetClass}' cannot hold reference attributes for domain '${this.name}'.`);
111
+ }
112
+ break;
113
+ case "1:1":
114
+ break;
115
+ case "N:N":
116
+ throw new Error(`Domain '${this.name}' does not support reference attributes.`);
117
+ default:
118
+ throw new Error(`Unsupported relation type ${this.relation}`);
119
+ }
120
+ };
121
+ this.buildRelationParams = (doc, referenceId, role) => {
122
+ if (!doc._id) {
123
+ throw new Error("Document is missing identifier.");
124
+ }
125
+ if (typeof referenceId !== "string" || referenceId.length === 0) {
126
+ throw new Error(`Invalid reference value provided for domain '${this.name}'.`);
127
+ }
128
+ if (role === "source") {
129
+ return {
130
+ sourceClass: this.sourceClass.id,
131
+ targetClass: this.targetClass.id,
132
+ sourceId: doc._id,
133
+ targetId: referenceId
134
+ };
135
+ }
136
+ return {
137
+ sourceClass: this.sourceClass.id,
138
+ targetClass: this.targetClass.id,
139
+ sourceId: referenceId,
140
+ targetId: doc._id
141
+ };
142
+ };
143
+ this.fetchReferenceDocument = async (referenceId, expectedType) => {
144
+ const stack = this.requireStack();
145
+ const referenceDoc = await stack.db.get(referenceId).catch(() => null);
146
+ if (!referenceDoc || referenceDoc["~class"] !== expectedType || referenceDoc.active === false) {
147
+ throw new Error(`Reference '${referenceId}' does not exist for class '${expectedType}'.`);
148
+ }
149
+ return referenceDoc;
150
+ };
151
+ this.findRelationDoc = async (selector) => {
152
+ const stack = this.requireStack();
153
+ const searchSelector = Object.assign({ "~domain": { $eq: this.name } }, selector);
154
+ const { docs } = await stack.findDocuments(searchSelector, undefined, 0, 1);
155
+ return docs[0] || null;
156
+ };
157
+ this.throwIfRelationExists = async (filter, params) => {
158
+ const relation = await this.findRelationDoc(filter);
159
+ if (relation) {
160
+ if (relation.sourceId === params.sourceId && relation.targetId === params.targetId) {
161
+ return relation;
162
+ }
163
+ throw new Error(`Domain '${this.name}' already contains a relation that violates cardinality constraints.`);
164
+ }
165
+ return null;
166
+ };
167
+ this.ensureCardinalityConstraints = async (params) => {
168
+ switch (this.relation) {
169
+ case "1:1":
170
+ await this.throwIfRelationExists({ sourceId: { $eq: params.sourceId } }, params);
171
+ await this.throwIfRelationExists({ targetId: { $eq: params.targetId } }, params);
172
+ break;
173
+ case "1:N":
174
+ await this.throwIfRelationExists({ targetId: { $eq: params.targetId } }, params);
175
+ break;
176
+ case "N:1":
177
+ await this.throwIfRelationExists({ sourceId: { $eq: params.sourceId } }, params);
178
+ break;
179
+ }
180
+ };
181
+ this.validateRelation = async (doc, referenceId) => {
182
+ const fnLogger = this.logger.child({ method: "validateRelation", args: { docId: doc._id, referenceId } });
183
+ const role = this.getDocumentRole(doc);
184
+ this.assertReferenceAllowed(role);
185
+ const expectedType = role === "source" ? this.targetClass.getName() : this.sourceClass.getName();
186
+ await this.fetchReferenceDocument(referenceId, expectedType);
187
+ const params = this.buildRelationParams(doc, referenceId, role);
188
+ const existing = await this.findRelationDoc({
189
+ sourceId: { $eq: params.sourceId },
190
+ targetId: { $eq: params.targetId },
191
+ });
192
+ if (existing) {
193
+ fnLogger.info("validateRelation - relation already exists");
194
+ return { params, exists: true, relation: existing };
195
+ }
196
+ await this.ensureCardinalityConstraints(params);
197
+ return { params, exists: false };
198
+ };
199
+ this.getRelations = async (selector, fields, skip, limit) => {
200
+ const stack = this.requireStack();
201
+ const _selector = Object.assign(Object.assign({}, (selector || {})), { "~domain": { $eq: this.name } });
202
+ _a.logger.info("getRelations - selector", { selector: _selector, fields, skip, limit });
203
+ const docs = (await stack.findDocuments(_selector, fields, skip, limit)).docs;
204
+ return docs;
205
+ };
206
+ this.addRelation = async (document, referenceId) => {
207
+ const fnLogger = this.logger.child({ method: "addRelation", args: { document, referenceId } });
208
+ const stack = this.requireStack();
209
+ const validation = await this.validateRelation(document, referenceId);
210
+ if (validation.exists) {
211
+ fnLogger.info("addRelation - relation already in place");
212
+ return validation.relation || null;
213
+ }
214
+ fnLogger.info("addRelation - relation validated");
215
+ const relationDoc = await stack.createRelationDoc(null, this.name, this, validation.params);
216
+ fnLogger.info("addRelation - relationDoc created", { relationDoc });
217
+ return relationDoc;
218
+ };
219
+ this.deleteRelation = async (sourceId, targetId) => {
220
+ const relation = await this.findRelationDoc({
221
+ sourceId: { $eq: sourceId },
222
+ targetId: { $eq: targetId },
223
+ });
224
+ if (!relation || !relation._id) {
225
+ return false;
226
+ }
227
+ return this.requireStack().deleteDocument(relation._id);
228
+ };
229
+ this.deleteRelationDoc = async (relationDocId) => {
230
+ return this.requireStack().deleteDocument(relationDocId);
231
+ };
232
+ }
233
+ }
234
+ _a = Domain;
235
+ Domain.logger = clientLogger().child({ module: "domain" });
236
+ Domain.get = (stack, id, name, type, relation, sourceClass, targetClass, description, schema = {}) => {
237
+ const domain_ = new _a();
238
+ _a.logger.info("Received schema", { schema });
239
+ domain_.init(stack, id, name, type, relation, sourceClass, targetClass, description);
240
+ // Add listener for new documents of this class type
241
+ domain_.stack.onClassDoc(name)
242
+ .on("change", (change) => {
243
+ const evt = new CustomEvent("doc", {
244
+ detail: change
245
+ });
246
+ domain_.dispatchEvent(evt);
247
+ });
248
+ return domain_;
249
+ };
250
+ Domain.create = async (stack, id, name, type, relation, sourceClass, targetClass, description, schema = {}) => {
251
+ const domain_ = _a.get(stack, null, name, type, relation, sourceClass, targetClass, description, schema);
252
+ await domain_.build();
253
+ return domain_;
254
+ };
255
+ Domain.buildFromModel = async (stack, domainModel) => {
256
+ _a.logger.info("buildFromModel - Instantiate from model", { domainModel });
257
+ // let parentdomainModel = (domainModel.parentClass ? await stack.getdomainModel(domainModel.parentClass) : null);
258
+ // let parentClass = (parentdomainModel ? await Class.buildFromModel(stack, parentdomainModel) : null);
259
+ const sourceClass = await stack.getClass(domainModel.sourceClass);
260
+ const targetClass = await stack.getClass(domainModel.targetClass);
261
+ if (!sourceClass || !targetClass) {
262
+ throw new Error("Source or target class not found for domain " + domainModel.name);
263
+ }
264
+ // [TODO] Redundancy: Class.create retrieve model from db and builds it (therefore also setting the model)
265
+ if (domainModel._rev) {
266
+ let classObj = _a.get(stack, domainModel._id, domainModel.name, domainModel["~class"], domainModel.relation, sourceClass, targetClass, domainModel.description, domainModel.schema);
267
+ return classObj;
268
+ }
269
+ else {
270
+ let classObj = await _a.create(stack, domainModel._id, domainModel.name, domainModel["~class"], domainModel.relation, sourceClass, targetClass, domainModel.description, domainModel.schema);
271
+ return classObj;
272
+ }
273
+ };
274
+ Domain.fetch = async (stack, domainName) => {
275
+ let domainModel = await stack.getDomainModel(domainName);
276
+ if (domainModel) {
277
+ return _a.buildFromModel(stack, domainModel);
278
+ }
279
+ else {
280
+ return null;
281
+ throw new Error("Class not found: " + domainName);
282
+ }
283
+ };
284
+ export default Domain;
285
+ //# sourceMappingURL=domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/core/domain.ts"],"names":[],"mappings":"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"}