@postxl/generators 1.9.3 → 1.10.0

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 (32) hide show
  1. package/dist/backend-import/generators/detect-delta/detect-delta-all-models.generator.js +43 -4
  2. package/dist/backend-import/generators/detect-delta/detect-delta-all-models.generator.js.map +1 -1
  3. package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js +48 -11
  4. package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js.map +1 -1
  5. package/dist/backend-import/generators/detect-delta/model-function.generator.js +28 -4
  6. package/dist/backend-import/generators/detect-delta/model-function.generator.js.map +1 -1
  7. package/dist/backend-import/import.generator.d.ts +4 -0
  8. package/dist/backend-import/import.generator.js +4 -0
  9. package/dist/backend-import/import.generator.js.map +1 -1
  10. package/dist/backend-repositories/generators/model-repository.generator.js +110 -3
  11. package/dist/backend-repositories/generators/model-repository.generator.js.map +1 -1
  12. package/dist/backend-router-trpc/generators/model-routes.generator.js +6 -1
  13. package/dist/backend-router-trpc/generators/model-routes.generator.js.map +1 -1
  14. package/dist/backend-view/model-view-service.generator.js +86 -19
  15. package/dist/backend-view/model-view-service.generator.js.map +1 -1
  16. package/dist/frontend-admin/admin.generator.d.ts +5 -0
  17. package/dist/frontend-admin/admin.generator.js +1 -0
  18. package/dist/frontend-admin/admin.generator.js.map +1 -1
  19. package/dist/frontend-admin/generators/model-admin-page.generator.js +22 -1
  20. package/dist/frontend-admin/generators/model-admin-page.generator.js.map +1 -1
  21. package/dist/frontend-admin/utils.d.ts +4 -0
  22. package/dist/frontend-admin/utils.js +48 -0
  23. package/dist/frontend-admin/utils.js.map +1 -1
  24. package/dist/frontend-tables/generators/model-table.generator.js +35 -1
  25. package/dist/frontend-tables/generators/model-table.generator.js.map +1 -1
  26. package/dist/frontend-trpc-client/generators/model-hook.generator.js +12 -0
  27. package/dist/frontend-trpc-client/generators/model-hook.generator.js.map +1 -1
  28. package/dist/seed-data/generator/excel-template.generator.js +126 -10
  29. package/dist/seed-data/generator/excel-template.generator.js.map +1 -1
  30. package/dist/seed-data/generator/model-seed-data.generator.js +148 -48
  31. package/dist/seed-data/generator/model-seed-data.generator.js.map +1 -1
  32. package/package.json +3 -3
@@ -17,7 +17,10 @@ function generateDetectDeltaAllModels(context) {
17
17
  from: (0, generator_1.toPackageName)('@postxl/utils'),
18
18
  items: [(0, generator_1.toFunctionName)('red'), (0, generator_1.toFunctionName)('format'), (0, generator_1.toFunctionName)('pluralize')],
19
19
  });
20
- const { resultAssignments, idMapTypes, idMapInit, deltaTypes } = prepareModelDeltaTypes({ context, imports });
20
+ const { resultAssignments, idMapTypes, idMapInit, keyMapTypes, keyMapInit, deltaTypes } = prepareModelDeltaTypes({
21
+ context,
22
+ imports,
23
+ });
21
24
  return `
22
25
  ${imports.generate()}
23
26
 
@@ -28,10 +31,20 @@ export type ${context.import.detectDelta.allModels.type.name} = {
28
31
  ${deltaTypes.join('\n')}
29
32
  }
30
33
 
34
+ /**
35
+ * Maps model IDs to their records (for records that have an id field in import data).
36
+ */
31
37
  export type ${context.import.detectDelta.allModels.idMapType.name} = {
32
38
  ${idMapTypes.join('\n')}
33
39
  }
34
40
 
41
+ /**
42
+ * Maps keyField values to their records (for resolving foreign keys by keyField).
43
+ */
44
+ export type KeyMap = {
45
+ ${keyMapTypes.join('\n')}
46
+ }
47
+
35
48
  function getIdMap(data: DataModel): ${context.import.detectDelta.allModels.idMapType.name} {
36
49
  const result: IdMap = {
37
50
  ${idMapInit.join(',\n')}
@@ -39,6 +52,13 @@ function getIdMap(data: DataModel): ${context.import.detectDelta.allModels.idMap
39
52
  return result
40
53
  }
41
54
 
55
+ function getKeyMap(data: DataModel): KeyMap {
56
+ const result: KeyMap = {
57
+ ${keyMapInit.join(',\n')}
58
+ }
59
+ return result
60
+ }
61
+
42
62
  function toIdMap<Model extends {id: ID}, ID extends string>(items?: Model[]): Map<ID, Model> {
43
63
  const result = new Map<ID, Model>()
44
64
  if (!items) return result
@@ -48,12 +68,25 @@ function toIdMap<Model extends {id: ID}, ID extends string>(items?: Model[]): Ma
48
68
  return result
49
69
  }
50
70
 
71
+ function toKeyMap<Model, Key extends string | number>(items: Model[] | undefined, keyField: keyof Model): Map<Key, Model> {
72
+ const result = new Map<Key, Model>()
73
+ if (!items) return result
74
+ for (const item of items) {
75
+ const key = item[keyField] as Key
76
+ if (key !== undefined && key !== null) {
77
+ result.set(key, item)
78
+ }
79
+ }
80
+ return result
81
+ }
82
+
51
83
  export async function detectDelta(
52
84
  dataService: ${context.repositories.dataService.name},
53
85
  data: ${decoders.dataModel.decodedType.name},
54
86
  throwInCaseOfError = true,
55
87
  ): Promise<${allModels.type.name}> {
56
88
  const idMap = getIdMap(data)
89
+ const keyMap = getKeyMap(data)
57
90
  const result: ${allModels.type.name} = {
58
91
  ${resultAssignments.join(',\n')}
59
92
  }
@@ -107,6 +140,8 @@ function prepareModelDeltaTypes({ context, imports }) {
107
140
  const resultAssignments = [];
108
141
  const idMapTypes = [];
109
142
  const idMapInit = [];
143
+ const keyMapTypes = [];
144
+ const keyMapInit = [];
110
145
  for (const model of context.models.values()) {
111
146
  imports
112
147
  //
@@ -114,15 +149,19 @@ function prepareModelDeltaTypes({ context, imports }) {
114
149
  .addType(model.types.id)
115
150
  .add(model.import.delta.errors)
116
151
  .add(model.import.delta.detect);
152
+ const keyFieldName = model.keyField.name;
117
153
  deltaTypes.push(`${model.decoder.dataModelEntry}?: ${context.import.detectDelta.types.generic.modelType.name}<
118
- ${model.types.name},
154
+ ${model.types.name},
119
155
  ${model.types.id.name},
120
156
  ${model.import.delta.errors.name}
121
157
  >[]`);
122
158
  idMapTypes.push(`'${model.decoder.dataModelEntry}': Map<${model.types.id.name}, ${model.types.name}>`);
123
159
  idMapInit.push(`${model.decoder.dataModelEntry}: toIdMap(data.${model.decoder.dataModelEntry})`);
124
- resultAssignments.push(`${model.decoder.dataModelEntry}: await ${model.import.delta.detect.name}(dataService, data.${model.decoder.dataModelEntry} ?? [], idMap)`);
160
+ // KeyMap uses the keyField for lookups (supports string or number keys)
161
+ keyMapTypes.push(`'${model.decoder.dataModelEntry}': Map<string | number, ${model.types.name}>`);
162
+ keyMapInit.push(`${model.decoder.dataModelEntry}: toKeyMap(data.${model.decoder.dataModelEntry}, '${keyFieldName}')`);
163
+ resultAssignments.push(`${model.decoder.dataModelEntry}: await ${model.import.delta.detect.name}(dataService, data.${model.decoder.dataModelEntry} ?? [], idMap, keyMap)`);
125
164
  }
126
- return { resultAssignments, deltaTypes, idMapTypes, idMapInit };
165
+ return { resultAssignments, deltaTypes, idMapTypes, idMapInit, keyMapTypes, keyMapInit };
127
166
  }
128
167
  //# sourceMappingURL=detect-delta-all-models.generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect-delta-all-models.generator.js","sourceRoot":"","sources":["../../../../src/backend-import/generators/detect-delta/detect-delta-all-models.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect-delta-all-models.generator.js","sourceRoot":"","sources":["../../../../src/backend-import/generators/detect-delta/detect-delta-all-models.generator.ts"],"names":[],"mappings":"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"}
@@ -80,15 +80,24 @@ export type ${detectDelta._utils.validation.params.name}<Model extends ${dto.gen
80
80
 
81
81
  /**
82
82
  * Detects changes for a model and returns the result as a Delta_Model object.
83
+ * When both id and keyField are provided, id takes precedence for looking up existing records.
84
+ * Falls back to keyField when id is not provided.
83
85
  */
84
- export async function ${detectDelta._utils.detectModelDelta.name}<Model extends ${dto.genericModel.name}<ID>, ID extends ${dto.idType.name}, ModelErrors>({
86
+ export async function ${detectDelta._utils.detectModelDelta.name}<Model extends ${dto.genericModel.name}<ID>, ID extends ${dto.idType.name}, ModelErrors, KeyFieldName extends keyof Model>({
85
87
  items,
86
- getId,
88
+ keyFieldName,
89
+ getById,
90
+ getByKey,
87
91
  getDelta,
88
92
  validate
89
93
  }: {
90
94
  items?: Model[]
91
- getId: (id: ID) => Promise<Model | null>
95
+ /** The name of the field used as the key to identify records */
96
+ keyFieldName: KeyFieldName
97
+ /** Function to look up an existing record by its id value (takes precedence over keyField) */
98
+ getById: (id: ID) => Promise<Model | null>
99
+ /** Function to look up an existing record by its key value (fallback when id is not provided) */
100
+ getByKey: (key: Model[KeyFieldName]) => Promise<Model | null>
92
101
  getDelta: (args: { item: Model; existingItem: Model }) => ${delta_Fields.name}<Model, ID>
93
102
  validate: ${detectDelta._utils.validation.params.name}<Model, ID, ModelErrors>
94
103
  }): Promise<${modelType.name}<Model, ID, ModelErrors>[]> {
@@ -99,7 +108,7 @@ export async function ${detectDelta._utils.detectModelDelta.name}<Model extends
99
108
  }
100
109
 
101
110
  for (const item of items) {
102
- const deltaResult = await determineDeltaResult({ item, getId, getDelta })
111
+ const deltaResult = await determineDeltaResult({ item, keyFieldName, getById, getByKey, getDelta })
103
112
  const errors = deltaResult.type === 'unchanged' ? [] : await validate[deltaResult.type](deltaResult as any)
104
113
 
105
114
  if (errors.length !== 0) {
@@ -116,7 +125,7 @@ export async function ${detectDelta._utils.detectModelDelta.name}<Model extends
116
125
  type: '${update.discriminant}',
117
126
  input: item,
118
127
  delta: deltaResult.delta,
119
- updateDto: deltaToUpdateDtoFunction({ id: item.id, delta: deltaResult.delta }),
128
+ updateDto: deltaToUpdateDtoFunction({ id: deltaResult.existingItem.id, delta: deltaResult.delta }),
120
129
  })
121
130
  break
122
131
 
@@ -138,26 +147,54 @@ export async function ${detectDelta._utils.detectModelDelta.name}<Model extends
138
147
  }
139
148
 
140
149
  /**
141
- * Generic function to determine what action (create/update/delete/unchanged) to take with an item
150
+ * Generic function to determine what action (create/update/delete/unchanged) to take with an item.
151
+ * When both id and keyField are provided, id takes precedence for looking up existing records.
152
+ * Falls back to keyField when id is not provided.
153
+ *
142
154
  * In case the type is update it also includes the delta for a given item. In case of delete, it also includes
143
155
  * the existing item.
144
156
  *
145
157
  * **Important**: The function does not implement any logic to automatically determine if an item should be deleted.
146
158
  * Implement this logic based on the business requirements!
147
159
  */
148
- async function determineDeltaResult<Model extends ${dto.genericModel.name}<ID>, ID extends ${dto.idType.name}>({
160
+ async function determineDeltaResult<Model extends ${dto.genericModel.name}<ID>, ID extends ${dto.idType.name}, KeyFieldName extends keyof Model>({
149
161
  item,
150
- getId,
162
+ keyFieldName,
163
+ getById,
164
+ getByKey,
151
165
  getDelta,
152
166
  }: {
153
167
  item: Model
154
- getId: (id: ID) => Promise<Model | null>
168
+ keyFieldName: KeyFieldName
169
+ getById: (id: ID) => Promise<Model | null>
170
+ getByKey: (key: Model[KeyFieldName]) => Promise<Model | null>
155
171
  getDelta: ({ item, existingItem }: { item: Model; existingItem: Model }) => ${delta_Fields.name}<Model, ID>
156
172
  }): Promise<Delta_Result<Model, ID>> {
157
- if (item.id === undefined || item.id === '') {
173
+ // First, check if id is provided - it takes precedence over keyField
174
+ const idValue = item.id
175
+ if (idValue !== undefined && idValue !== null && idValue !== '') {
176
+ const existingItemById = await getById(idValue)
177
+ if (existingItemById) {
178
+ const delta = getDelta({ item, existingItem: existingItemById })
179
+ if (Object.keys(delta).length > 0) {
180
+ return { type: '${update.discriminant}', delta, existingItem: existingItemById, updatedItem: item }
181
+ }
182
+ return { type: '${unchanged.discriminant}' }
183
+ }
184
+ // If id is provided but not found, treat as create (id might be pre-assigned)
185
+ return { type: '${create.discriminant}', newItem: item }
186
+ }
187
+
188
+ // Fall back to keyField lookup when id is not provided
189
+ const keyValue = item[keyFieldName]
190
+
191
+ // If the key field value is also missing or empty, treat as a new record to create
192
+ if (keyValue === undefined || keyValue === null || keyValue === '') {
158
193
  return { type: '${create.discriminant}', newItem: item }
159
194
  }
160
- const existingItem = await getId(item.id)
195
+
196
+ // Look up existing record by key field value
197
+ const existingItem = await getByKey(keyValue)
161
198
 
162
199
  if (!existingItem) {
163
200
  return { type: '${create.discriminant}', newItem: item }
@@ -1 +1 @@
1
- {"version":3,"file":"detect-delta-functions.generator.js","sourceRoot":"","sources":["../../../../src/backend-import/generators/detect-delta/detect-delta-functions.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect-delta-functions.generator.js","sourceRoot":"","sources":["../../../../src/backend-import/generators/detect-delta/detect-delta-functions.generator.ts"],"names":[],"mappings":"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"}
@@ -172,6 +172,7 @@ function prepareDetectDeltaFunction({ model, context, imports, }) {
172
172
  .addType(model.import.delta.errors)
173
173
  .addType(context.import.detectDelta.types.generic.modelType)
174
174
  .addType(context.import.detectDelta.allModels.idMapType)
175
+ .addType(context.import.detectDelta.allModels.keyMapType)
175
176
  .add(context.repositories.dataService);
176
177
  const returnType = `${generic.modelType.name}<${model.types.name}, ${model.types.id.name}, ${model.import.delta.errors.name}>[]`;
177
178
  const blocks = {
@@ -197,22 +198,31 @@ function prepareDetectDeltaFunction({ model, context, imports, }) {
197
198
  const validateDelete = blocks.deleteValidations.length > 0
198
199
  ? `async ({ existingItem }) => ${context.import.detectDelta._utils.keepErrors.name}([${blocks.deleteValidations.join(',\n')}])`
199
200
  : 'async () => Promise.resolve([]) // NOSONAR - keep all validations async to adhere to the same interface';
201
+ // Get the keyField name for this model - used to identify existing records during import
202
+ const keyFieldName = model.keyField.name;
203
+ // Check if this model uses keyMap (has relation fields that need key-based lookup)
204
+ const usesKeyMap = blocks.sharedValidations.some((v) => v.includes('keyMap'));
200
205
  return `
201
206
  /**
202
207
  * Detects changes for a ${model.userFriendlyName} item and returns the result as a ${generic.modelType.name} object.
208
+ * When both id and keyField are provided, id takes precedence.
209
+ * Falls back to '${keyFieldName}' field to identify existing records via getByKey.
203
210
  */
204
211
  export async function detect${model.internalSingularNameCapitalized}Delta(
205
212
  data: ${context.repositories.dataService.name},
206
213
  items: ${model.types.name}[],
207
- ${usesIdMap ? 'idMap' : '_idMap'}: ${context.import.detectDelta.allModels.idMapType.name}
214
+ ${usesIdMap ? 'idMap' : '_idMap'}: ${context.import.detectDelta.allModels.idMapType.name},
215
+ ${usesKeyMap ? 'keyMap' : '_keyMap'}: KeyMap
208
216
  ): Promise<${returnType}> {
209
- const sharedValidations: (item: ${model.name}) => Promise<(${model.import.delta.errors.name} | undefined)[]> =
217
+ const sharedValidations: (item: ${model.name}) => Promise<(${model.import.delta.errors.name} | undefined)[]> =
210
218
 
211
219
  ${sharedValidationsFunction}
212
220
 
213
221
  return ${context.import.detectDelta._utils.detectModelDelta.name}({
214
222
  items,
215
- getId: (id: ${model.types.id.name}) => data.${model.repository.dataServiceVariable}.get(id),
223
+ keyFieldName: '${keyFieldName}',
224
+ getById: (id: ${model.types.id.name}) => data.${model.repository.dataServiceVariable}.get(id),
225
+ getByKey: (key: string) => data.${model.repository.dataServiceVariable}.getByKey(key),
216
226
  getDelta: ({ item, existingItem }: { item: ${model.types.name}; existingItem: ${model.types.name} }) =>
217
227
  ${context.import.detectDelta._utils.getDelta.name}({
218
228
  item,
@@ -285,11 +295,25 @@ function handleRelationField({ field, context, imports, sharedValidations, }) {
285
295
  }
286
296
  imports.addType(relatedModel.types.id);
287
297
  imports.add(context.import.detectDelta._utils.validation.referenceField);
298
+ // Foreign key value could be either an id OR a keyField value of the related model.
299
+ // Try to resolve in this order: idMap (by id), keyMap (by keyField), then getByKey (from database).
288
300
  sharedValidations.push(` ${context.import.detectDelta._utils.validation.referenceField.name}({
289
301
  item,
290
302
  fieldName: '${field.name}',
291
303
  relatedModel: '${field.referencedModelName}',
292
- getExistingItem: async (id: ${relatedModel.types.id.name}) => (await data.${relatedModel.repository.dataServiceVariable}.get(id)) ?? idMap.${relatedModel.decoder.dataModelEntry}.get(id) ?? null,
304
+ getExistingItem: async (value: ${relatedModel.types.id.name}) => {
305
+ // First try idMap (if value is an id)
306
+ const byId = idMap.${relatedModel.decoder.dataModelEntry}.get(value)
307
+ if (byId) return byId
308
+ // Then try keyMap (if value is a keyField value)
309
+ const byKey = keyMap.${relatedModel.decoder.dataModelEntry}.get(value)
310
+ if (byKey) return byKey
311
+ // Finally try database lookup by id, then by key
312
+ const fromDbById = await data.${relatedModel.repository.dataServiceVariable}.get(value)
313
+ if (fromDbById) return fromDbById
314
+ const fromDbByKey = await data.${relatedModel.repository.dataServiceVariable}.getByKey(String(value))
315
+ return fromDbByKey
316
+ },
293
317
  })`);
294
318
  }
295
319
  function checkRelatedModel({ relatedModel, blocks: { deleteValidations }, model, context, imports, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"model-function.generator.js","sourceRoot":"","sources":["../../../../src/backend-import/generators/detect-delta/model-function.generator.ts"],"names":[],"mappings":";;AAMA,4EAkBC;AAxBD,iDAA6D;AAE7D,yCAAmE;AAInE,SAAgB,gCAAgC,CAAC,OAAsB,EAAE,KAAkB;IACzF,MAAM,OAAO,GAAG,2BAAe;QAC7B,EAAE;SACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;SACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;SACvB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC/C,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;SACjD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE1D,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IAC/D,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IACnF,OAAO,QAAQ,CAAC;EAChB,OAAO,CAAC,QAAQ,EAAE;;EAElB,SAAS;;EAET,mBAAmB,EAAE,CAAA;AACvB,CAAC;AAUD,SAAS,gBAAgB,CAAC,EACxB,OAAO,EACP,KAAK,EACL,OAAO,GAKR;IACC,MAAM,WAAW,GAAgB;QAC/B,aAAa,EAAE,EAAE;QACjB,2BAA2B,EAAE,EAAE;QAC/B,oBAAoB,EAAE,EAAE;QACxB,sBAAsB,EAAE,EAAE;QAC1B,0BAA0B,EAAE,EAAE;KAC/B,CAAA;IAED,qCAAqC;IACrC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,qBAAqB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IAE/D,MAAM,iBAAiB,GACrB,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QAClC,CAAC,CAAC;YACE,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;SACvH;QACH,CAAC,CAAC,EAAE,CAAA;IAER,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACpF,CAAC;IACD,IAAI,WAAW,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACxF,CAAC;IACD,IAAI,WAAW,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,WAAW,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,WAAW,CAAC,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAC5F,CAAC;IAED,MAAM,eAAe,GAAG;QACtB,GAAG,iBAAiB;QACpB,GAAG,WAAW,CAAC,2BAA2B;QAC1C,GAAG,WAAW,CAAC,oBAAoB;QACnC,GAAG,WAAW,CAAC,sBAAsB;QACrC,GAAG,WAAW,CAAC,0BAA0B;KAC1C,CAAA;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,eAAe,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;AAC1F,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,OAAO,EACP,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAO,GAOR;IACC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,+BAA+B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QACzF,KAAK,oBAAoB;YACvB,OAAO,mCAAmC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QAC7F;YACE,MAAM,IAAI,6BAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CAAC,EACvC,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,GAOR;IACC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACxB,OAAM;IACR,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;IAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAE,CAAA;QAEtE,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAEzC,WAAW,CAAC,2BAA2B,CAAC,IAAI,CAAC;UACvC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;OACvH,CAAC,CAAA;IACN,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;QACxG,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAA;QAC/G,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QAC3D,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC;UAClC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,YAAY,MAAM,KAAK,CAAC,IAAI;OACvF,CAAC,CAAA;IACN,CAAC;AACH,CAAC;AAED,SAAS,mCAAmC,CAAC,EAC3C,OAAO,EACP,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAO,GAOR;IACC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,+BAA+B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,+BAA+B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QACrF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,EAC7B,OAAO,EACP,KAAK,EACL,OAAO,EACP,WAAW,GAMZ;IACC,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACnD,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACrC,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,oCAAoC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;QACrG,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oCAAoC,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,YAAY,EACZ,KAAK,EACL,OAAO,EACP,WAAW,GAQZ;IACC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACT,OAAM;QACR,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,KAAK,CAAC,mBAAmB,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACjE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAElE,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI;iBACzE,YAAY,CAAC,IAAI;iBACjB,KAAK,CAAC,IAAI;gBACX,YAAY,CAAC,KAAK,CAAC,IAAI;gBACvB,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;;WAE/B,CAAC,CAAA;YACN,CAAC;YACD,OAAM;QACR,CAAC;QACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5C,oCAAoC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;YACxG,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;oBACvC,oCAAoC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;gBACxG,CAAC;YACH,CAAC;YACD,OAAM;QACR,CAAC;QACD;YACE,MAAM,IAAI,6BAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC;AASD,SAAS,0BAA0B,CAAC,EAClC,KAAK,EACL,OAAO,EACP,OAAO,GAKR;IACC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAA;IACxD,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;SAClC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;SAC3D,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC;SACvD,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;IAExC,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAA;IAEhI,MAAM,MAAM,GAAsB;QAChC,iBAAiB,EAAE,EAAE;QACrB,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,EAAE;QACd,iBAAiB,EAAE,EAAE;KACtB,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACnD,iBAAiB,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;IACpH,CAAC;IAED,MAAM,wBAAwB,GAC5B,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC9B,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,wBAAwB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK;QAC5K,CAAC,CAAC,EAAE,CAAA;IAER,MAAM,yBAAyB,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,IAAI,QAAQ,IAAA,oBAAQ,EAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAA;IAErJ,MAAM,SAAS,GAAG,yBAAyB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE7D,MAAM,cAAc,GAClB,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;QACjC,CAAC,CAAC,+BAA+B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;QAC/H,CAAC,CAAC,yGAAyG,CAAA;IAE/G,OAAO;;2BAEkB,KAAK,CAAC,gBAAgB,qCAAqC,OAAO,CAAC,SAAS,CAAC,IAAI;;8BAE9E,KAAK,CAAC,+BAA+B;UACzD,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI;WACpC,KAAK,CAAC,KAAK,CAAC,IAAI;IACvB,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI;aAC7E,UAAU;oCACa,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;MAEvF,yBAAyB;;aAElB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI;;oBAEhD,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,aAAa,KAAK,CAAC,UAAU,CAAC,mBAAmB;mDACrC,KAAK,CAAC,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,KAAK,CAAC,IAAI;UAC5F,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI;;;yBAGhC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;;qDAGC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;YACvE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;cAC/C,wBAAwB;;;yDAGmB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;YAC3E,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;kBAC3C,cAAc;;;EAG9B,CAAA;AACF,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,KAAK,EACL,MAAM,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,EACzD,KAAK,EACL,OAAO,EACP,OAAO,GAOR;IACC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAM;IACR,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,IAAI;YACP,OAAM;QACR,KAAK,QAAQ;YACX,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA;YACxE,MAAK;QACP,KAAK,UAAU;YACb,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA;YAC1E,MAAK;QACP,KAAK,MAAM;YACT,MAAK;QACP,KAAK,oBAAoB;YACvB,MAAK;QACP;YACE,MAAM,IAAI,6BAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,cAAc,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,iBAAiB,GAOlB;IACC,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAM;IACR,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC/D,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC/E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QACrE,MAAM,SAAS,GAAG,QAAQ,IAAA,oBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAA;QACpD,iBAAiB,CAAC,IAAI,CACpB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI;;sBAEhD,KAAK,CAAC,IAAI;2CACW,KAAK,CAAC,UAAU,CAAC,mBAAmB,IAAI,SAAS;SACnF,CACJ,CAAA;IACH,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACjC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACjF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC7D,iBAAiB,CAAC,IAAI,CACpB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,uBAAuB,KAAK,CAAC,IAAI,KAAK,CAC/F,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,OAAO,EACP,iBAAiB,GAOlB;IACC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAE,CAAA;IACnE,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACpD,OAAM;IACR,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;IACxE,iBAAiB,CAAC,IAAI,CACpB,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI;;uBAEjD,KAAK,CAAC,IAAI;0BACP,KAAK,CAAC,mBAAmB;uCACZ,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,oBAAoB,YAAY,CAAC,UAAU,CAAC,mBAAmB,sBAAsB,YAAY,CAAC,OAAO,CAAC,cAAc;UAC/K,CACP,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,EACzB,YAAY,EACZ,MAAM,EAAE,EAAE,iBAAiB,EAAE,EAC7B,KAAK,EACL,OAAO,EACP,OAAO,GAOR;IACC,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,OAAM;IACR,CAAC;IACD,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACpD,OAAM;IACR,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACxD,IACE,YAAY,CAAC,IAAI,KAAK,UAAU;YAChC,YAAY,CAAC,mBAAmB,KAAK,KAAK,CAAC,IAAI;YAC/C,CAAC,YAAY,CAAC,UAAU,EACxB,CAAC;YACD,SAAQ;QACV,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;QAE5E,MAAM,gBAAgB,GAAG,IAAA,oBAAY,EAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACxD,iBAAiB,CAAC,IAAI,CAAC;;;yBAGF,YAAY,CAAC,IAAI;yBACjB,YAAY,CAAC,IAAI;yCACD,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;2BACjC,YAAY,CAAC,UAAU,CAAC,mBAAmB,eAAe,gBAAgB;;SAE5F,CAAC,CAAA;IACR,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"model-function.generator.js","sourceRoot":"","sources":["../../../../src/backend-import/generators/detect-delta/model-function.generator.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,10 @@ export type BackendImportContext = ActionProvider<ImportActions> & {
32
32
  * Name of the type that for each model type maps newly provided Ids to the items/models
33
33
  */
34
34
  idMapType: Generator.ImportableType;
35
+ /**
36
+ * Name of the type that for each model type maps keyField values to the items/models
37
+ */
38
+ keyMapType: Generator.ImportableType;
35
39
  /**
36
40
  * Function that returns a map of model with their errors
37
41
  */
@@ -122,6 +122,10 @@ exports.generator = {
122
122
  name: Generator.toTypeName(`IdMap`),
123
123
  location: allModelsLocation,
124
124
  },
125
+ keyMapType: {
126
+ name: Generator.toTypeName(`KeyMap`),
127
+ location: allModelsLocation,
128
+ },
125
129
  extractErrors: {
126
130
  name: Generator.toFunctionName(`extractErrors`),
127
131
  location: allModelsLocation,
@@ -1 +1 @@
1
- {"version":3,"file":"import.generator.js","sourceRoot":"","sources":["../../src/backend-import/import.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import.generator.js","sourceRoot":"","sources":["../../src/backend-import/import.generator.ts"],"names":[],"mappings":"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"}
@@ -181,11 +181,13 @@ export class ${repository.name} implements Repository<${model.types.name}, ${idF
181
181
  return (await this.getAllAsArray()).find(predicate) ?? null
182
182
  }
183
183
 
184
+ ${generateGetByKeyMethod({ model })}
185
+
184
186
  public async count(): Promise<number> {
185
187
  await this.mutex.waitForUnlock()
186
188
  return Promise.resolve(this.data.size) // NOSONAR - keep all validations async to adhere to the same interface
187
189
  }
188
-
190
+
189
191
  ${Generator.toJsDocComment([
190
192
  `Checks that item has the ${idField.name} field.`,
191
193
  `In case none exists, ${idBlocks.verifyFunctionComment}`,
@@ -613,11 +615,13 @@ export class ${repository.name} implements Repository<${model.types.name}, ${idF
613
615
  return data ? ${model.decoder.flattened.decoder.parseFunction.name}(data) : null
614
616
  }
615
617
 
618
+ ${generateGetByKeyMethod_Database({ model })}
619
+
616
620
  public async count(): Promise<number> {
617
621
  await this.mutex.waitForUnlock()
618
622
  return this.db.${repository.prismaClientName}.count()
619
623
  }
620
-
624
+
621
625
  /**
622
626
  * Ensures that item has an id.
623
627
  */
@@ -992,11 +996,13 @@ export class ${repository.name} implements Repository<${model.types.name}, ${idF
992
996
  return (await this.getAllAsArray()).find(predicate) ?? null
993
997
  }
994
998
 
999
+ ${generateGetByKeyMethod({ model })}
1000
+
995
1001
  public async count(): Promise<number> {
996
1002
  await this.mutex.waitForUnlock()
997
1003
  return Promise.resolve(this.data.size) // NOSONAR - keep all validations async to adhere to the same interface
998
1004
  }
999
-
1005
+
1000
1006
  ${Generator.toJsDocComment([
1001
1007
  `Checks that item has the ${idField.name} field.`,
1002
1008
  `In case none exists, ${idBlocks.verifyFunctionComment}`,
@@ -1933,4 +1939,105 @@ function getFieldUpdateAssignment(field) {
1933
1939
  function skipIf(condition, text) {
1934
1940
  return condition ? '' : text; // NOSONAR
1935
1941
  }
1942
+ /**
1943
+ * Generates the getByKey method for the DatabaseDirect repository.
1944
+ * This method retrieves an entity by its keyField value using Prisma directly.
1945
+ */
1946
+ function generateGetByKeyMethod_Database({ model }) {
1947
+ const keyFieldName = model.keyField.name;
1948
+ const keyFieldDatabaseName = model.keyField.databaseName;
1949
+ const isKeyFieldUnique = model.keyField.isUnique;
1950
+ const isKeyFieldId = keyFieldName === model.idField.name;
1951
+ // If keyField is the id field, delegate to get() method
1952
+ if (isKeyFieldId) {
1953
+ return `
1954
+ /**
1955
+ * Returns the ${model.userFriendlyName} with the given key or null if it does not exist.
1956
+ * The key field for this model is '${keyFieldName}' (the id field).
1957
+ */
1958
+ public async getByKey(key: string): Promise<${model.types.name} | null> {
1959
+ return this.get(key as ${model.types.id.name})
1960
+ }`;
1961
+ }
1962
+ // If keyField is unique, use findUnique with Prisma
1963
+ if (isKeyFieldUnique) {
1964
+ return `
1965
+ /**
1966
+ * Returns the ${model.userFriendlyName} with the given key or null if it does not exist.
1967
+ * The key field for this model is '${keyFieldName}' (unique).
1968
+ */
1969
+ public async getByKey(key: string): Promise<${model.types.name} | null> {
1970
+ await this.mutex.waitForUnlock()
1971
+ const result = await this.db.${model.repository.prismaClientName}.findUnique({ where: { ${keyFieldDatabaseName}: key } })
1972
+ return result ? ${model.decoder.flattened.decoder.parseFunction.name}(result) : null
1973
+ }`;
1974
+ }
1975
+ // Non-unique keyField - use findFirst with Prisma and TODO comment
1976
+ return `
1977
+ /**
1978
+ * Returns the first ${model.userFriendlyName} with the given key or null if it does not exist.
1979
+ * The key field for this model is '${keyFieldName}' (non-unique).
1980
+ *
1981
+ * TODO: The keyField '${keyFieldName}' is not unique. This means multiple entities can have the same key.
1982
+ * In practice, keys are often unique within a scope (e.g., within a parent entity).
1983
+ * Consider extending this method to accept additional scope parameters to filter by parent entity.
1984
+ * For example: getByKey(key, parentId) where parentId identifies the scope.
1985
+ *
1986
+ * Current implementation returns the first matching entity found, which may not be deterministic.
1987
+ * This should be replaced with a properly scoped lookup once the scoping rules are defined.
1988
+ */
1989
+ public async getByKey(key: string): Promise<${model.types.name} | null> {
1990
+ // TODO: Implement proper scoped lookup. See method documentation for details.
1991
+ return this.findFirst({ predicate: () => true, prisma: { ${keyFieldDatabaseName}: key } })
1992
+ }`;
1993
+ }
1994
+ /**
1995
+ * Generates the getByKey method for the repository.
1996
+ * This method retrieves an entity by its keyField value.
1997
+ */
1998
+ function generateGetByKeyMethod({ model }) {
1999
+ const keyFieldName = model.keyField.name;
2000
+ const isKeyFieldUnique = model.keyField.isUnique;
2001
+ const isKeyFieldId = keyFieldName === model.idField.name;
2002
+ // If keyField is the id field, delegate to get() method
2003
+ if (isKeyFieldId) {
2004
+ return `
2005
+ /**
2006
+ * Returns the ${model.userFriendlyName} with the given key or null if it does not exist.
2007
+ * The key field for this model is '${keyFieldName}' (the id field).
2008
+ */
2009
+ public async getByKey(key: string): Promise<${model.types.name} | null> {
2010
+ return this.get(key as ${model.types.id.name})
2011
+ }`;
2012
+ }
2013
+ // If keyField is unique, use the existing getBy method
2014
+ if (isKeyFieldUnique) {
2015
+ return `
2016
+ /**
2017
+ * Returns the ${model.userFriendlyName} with the given key or null if it does not exist.
2018
+ * The key field for this model is '${keyFieldName}' (unique).
2019
+ */
2020
+ public async getByKey(key: string): Promise<${model.types.name} | null> {
2021
+ return (await this.getBy${(0, utils_1.toPascalCase)(keyFieldName)}(key)) ?? null
2022
+ }`;
2023
+ }
2024
+ // Non-unique keyField - use findFirst with TODO comment
2025
+ return `
2026
+ /**
2027
+ * Returns the first ${model.userFriendlyName} with the given key or null if it does not exist.
2028
+ * The key field for this model is '${keyFieldName}' (non-unique).
2029
+ *
2030
+ * TODO: The keyField '${keyFieldName}' is not unique. This means multiple entities can have the same key.
2031
+ * In practice, keys are often unique within a scope (e.g., within a parent entity).
2032
+ * Consider extending this method to accept additional scope parameters to filter by parent entity.
2033
+ * For example: getByKey(key, parentId) where parentId identifies the scope.
2034
+ *
2035
+ * Current implementation returns the first matching entity found, which may not be deterministic.
2036
+ * This should be replaced with a properly scoped lookup once the scoping rules are defined.
2037
+ */
2038
+ public async getByKey(key: string): Promise<${model.types.name} | null> {
2039
+ // TODO: Implement proper scoped lookup. See method documentation for details.
2040
+ return this.findFirst({ predicate: (item) => item.${keyFieldName} === key, prisma: {} })
2041
+ }`;
2042
+ }
1936
2043
  //# sourceMappingURL=model-repository.generator.js.map