@memberjunction/global 2.112.0 → 2.113.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 (117) hide show
  1. package/package.json +1 -1
  2. package/dist/Core.d.ts +0 -29
  3. package/dist/Core.d.ts.map +0 -1
  4. package/dist/Core.js +0 -58
  5. package/dist/Core.js.map +0 -1
  6. package/dist/generic/QueryCache.d.ts +0 -85
  7. package/dist/generic/QueryCache.d.ts.map +0 -1
  8. package/dist/generic/QueryCache.js +0 -198
  9. package/dist/generic/QueryCache.js.map +0 -1
  10. package/dist/generic/QueryCacheConfig.d.ts +0 -72
  11. package/dist/generic/QueryCacheConfig.d.ts.map +0 -1
  12. package/dist/generic/QueryCacheConfig.js +0 -3
  13. package/dist/generic/QueryCacheConfig.js.map +0 -1
  14. package/dist/generic/applicationInfo.d.ts +0 -138
  15. package/dist/generic/applicationInfo.d.ts.map +0 -1
  16. package/dist/generic/applicationInfo.js +0 -177
  17. package/dist/generic/applicationInfo.js.map +0 -1
  18. package/dist/generic/authEvaluator.d.ts +0 -25
  19. package/dist/generic/authEvaluator.d.ts.map +0 -1
  20. package/dist/generic/authEvaluator.js +0 -49
  21. package/dist/generic/authEvaluator.js.map +0 -1
  22. package/dist/generic/authTypes.d.ts +0 -193
  23. package/dist/generic/authTypes.d.ts.map +0 -1
  24. package/dist/generic/authTypes.js +0 -19
  25. package/dist/generic/authTypes.js.map +0 -1
  26. package/dist/generic/baseEngine.d.ts +0 -260
  27. package/dist/generic/baseEngine.d.ts.map +0 -1
  28. package/dist/generic/baseEngine.js +0 -510
  29. package/dist/generic/baseEngine.js.map +0 -1
  30. package/dist/generic/baseEntity.d.ts +0 -691
  31. package/dist/generic/baseEntity.d.ts.map +0 -1
  32. package/dist/generic/baseEntity.js +0 -1688
  33. package/dist/generic/baseEntity.js.map +0 -1
  34. package/dist/generic/baseInfo.d.ts +0 -24
  35. package/dist/generic/baseInfo.d.ts.map +0 -1
  36. package/dist/generic/baseInfo.js +0 -53
  37. package/dist/generic/baseInfo.js.map +0 -1
  38. package/dist/generic/compositeKey.d.ts +0 -206
  39. package/dist/generic/compositeKey.d.ts.map +0 -1
  40. package/dist/generic/compositeKey.js +0 -412
  41. package/dist/generic/compositeKey.js.map +0 -1
  42. package/dist/generic/databaseProviderBase.d.ts +0 -46
  43. package/dist/generic/databaseProviderBase.d.ts.map +0 -1
  44. package/dist/generic/databaseProviderBase.js +0 -14
  45. package/dist/generic/databaseProviderBase.js.map +0 -1
  46. package/dist/generic/entityInfo.d.ts +0 -983
  47. package/dist/generic/entityInfo.d.ts.map +0 -1
  48. package/dist/generic/entityInfo.js +0 -1401
  49. package/dist/generic/entityInfo.js.map +0 -1
  50. package/dist/generic/explorerNavigationItem.d.ts +0 -20
  51. package/dist/generic/explorerNavigationItem.d.ts.map +0 -1
  52. package/dist/generic/explorerNavigationItem.js +0 -29
  53. package/dist/generic/explorerNavigationItem.js.map +0 -1
  54. package/dist/generic/interfaces.d.ts +0 -610
  55. package/dist/generic/interfaces.d.ts.map +0 -1
  56. package/dist/generic/interfaces.js +0 -211
  57. package/dist/generic/interfaces.js.map +0 -1
  58. package/dist/generic/libraryInfo.d.ts +0 -40
  59. package/dist/generic/libraryInfo.d.ts.map +0 -1
  60. package/dist/generic/libraryInfo.js +0 -56
  61. package/dist/generic/libraryInfo.js.map +0 -1
  62. package/dist/generic/logging.d.ts +0 -179
  63. package/dist/generic/logging.d.ts.map +0 -1
  64. package/dist/generic/logging.js +0 -382
  65. package/dist/generic/logging.js.map +0 -1
  66. package/dist/generic/metadata.d.ts +0 -305
  67. package/dist/generic/metadata.d.ts.map +0 -1
  68. package/dist/generic/metadata.js +0 -454
  69. package/dist/generic/metadata.js.map +0 -1
  70. package/dist/generic/metadataUtil.d.ts +0 -8
  71. package/dist/generic/metadataUtil.d.ts.map +0 -1
  72. package/dist/generic/metadataUtil.js +0 -36
  73. package/dist/generic/metadataUtil.js.map +0 -1
  74. package/dist/generic/providerBase.d.ts +0 -546
  75. package/dist/generic/providerBase.d.ts.map +0 -1
  76. package/dist/generic/providerBase.js +0 -999
  77. package/dist/generic/providerBase.js.map +0 -1
  78. package/dist/generic/queryInfo.d.ts +0 -460
  79. package/dist/generic/queryInfo.d.ts.map +0 -1
  80. package/dist/generic/queryInfo.js +0 -633
  81. package/dist/generic/queryInfo.js.map +0 -1
  82. package/dist/generic/querySQLFilters.d.ts +0 -54
  83. package/dist/generic/querySQLFilters.d.ts.map +0 -1
  84. package/dist/generic/querySQLFilters.js +0 -84
  85. package/dist/generic/querySQLFilters.js.map +0 -1
  86. package/dist/generic/runQuery.d.ts +0 -96
  87. package/dist/generic/runQuery.d.ts.map +0 -1
  88. package/dist/generic/runQuery.js +0 -66
  89. package/dist/generic/runQuery.js.map +0 -1
  90. package/dist/generic/runQuerySQLFilterImplementations.d.ts +0 -51
  91. package/dist/generic/runQuerySQLFilterImplementations.d.ts.map +0 -1
  92. package/dist/generic/runQuerySQLFilterImplementations.js +0 -238
  93. package/dist/generic/runQuerySQLFilterImplementations.js.map +0 -1
  94. package/dist/generic/runReport.d.ts +0 -25
  95. package/dist/generic/runReport.d.ts.map +0 -1
  96. package/dist/generic/runReport.js +0 -42
  97. package/dist/generic/runReport.js.map +0 -1
  98. package/dist/generic/securityInfo.d.ts +0 -355
  99. package/dist/generic/securityInfo.d.ts.map +0 -1
  100. package/dist/generic/securityInfo.js +0 -425
  101. package/dist/generic/securityInfo.js.map +0 -1
  102. package/dist/generic/transactionGroup.d.ts +0 -184
  103. package/dist/generic/transactionGroup.d.ts.map +0 -1
  104. package/dist/generic/transactionGroup.js +0 -357
  105. package/dist/generic/transactionGroup.js.map +0 -1
  106. package/dist/generic/util.d.ts +0 -81
  107. package/dist/generic/util.d.ts.map +0 -1
  108. package/dist/generic/util.js +0 -301
  109. package/dist/generic/util.js.map +0 -1
  110. package/dist/views/runView.d.ts +0 -150
  111. package/dist/views/runView.d.ts.map +0 -1
  112. package/dist/views/runView.js +0 -100
  113. package/dist/views/runView.js.map +0 -1
  114. package/dist/views/viewInfo.d.ts +0 -121
  115. package/dist/views/viewInfo.d.ts.map +0 -1
  116. package/dist/views/viewInfo.js +0 -182
  117. package/dist/views/viewInfo.js.map +0 -1
@@ -1,633 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueryParameterInfo = exports.QueryEntityInfo = exports.QueryPermissionInfo = exports.QueryFieldInfo = exports.QueryCategoryInfo = exports.QueryInfo = void 0;
4
- const baseInfo_1 = require("./baseInfo");
5
- const metadata_1 = require("./metadata");
6
- /**
7
- * Catalog of stored queries. This is useful for any arbitrary query that is known to be performant and correct and can be reused.
8
- * Queries can be viewed/run by a user, used programatically via RunQuery, and also used by AI systems for improved reliability
9
- * instead of dynamically generated SQL. Queries can also improve security since they store the SQL instead of using dynamic SQL.
10
- */
11
- class QueryInfo extends baseInfo_1.BaseInfo {
12
- /**
13
- * Gets the full hierarchical path of this query's category (e.g., "/MJ/AI/Agents/").
14
- * This provides a unique filepath-like identifier for the category hierarchy.
15
- * Returns empty string if the query is not categorized.
16
- * @returns {string} The category path with leading and trailing slashes
17
- */
18
- get CategoryPath() {
19
- if (this._categoryPath === null) {
20
- this._categoryPath = this.buildCategoryPath();
21
- }
22
- return this._categoryPath;
23
- }
24
- /**
25
- * Gets the cache configuration for this query.
26
- * If the query has no explicit cache config but category inheritance is enabled,
27
- * walks up the category tree to find inherited cache settings.
28
- * @returns {QueryCacheConfig | null} The cache configuration or null if caching is disabled
29
- */
30
- get CacheConfig() {
31
- // If we already built the config, return it
32
- if (this._cacheConfig !== null) {
33
- return this._cacheConfig;
34
- }
35
- // If caching is explicitly enabled on this query
36
- if (this.CacheEnabled) {
37
- this._cacheConfig = {
38
- enabled: true,
39
- ttlMinutes: this.CacheTTLMinutes || 60, // Default to 60 minutes
40
- maxCacheSize: this.CacheMaxSize || undefined,
41
- cacheKey: 'exact'
42
- };
43
- return this._cacheConfig;
44
- }
45
- // Check for inherited cache config from category
46
- if (this.CategoryInfo) {
47
- const inheritedConfig = this.getInheritedCacheConfig();
48
- if (inheritedConfig) {
49
- this._cacheConfig = inheritedConfig;
50
- return this._cacheConfig;
51
- }
52
- }
53
- // No caching configured
54
- this._cacheConfig = { enabled: false, ttlMinutes: 0 };
55
- return this._cacheConfig;
56
- }
57
- /**
58
- * Walks up the category hierarchy to find inherited cache configuration.
59
- * @returns {QueryCacheConfig | null} The inherited cache config or null if none found
60
- */
61
- getInheritedCacheConfig() {
62
- let category = this.CategoryInfo;
63
- while (category) {
64
- if (category.DefaultCacheEnabled && category.CacheInheritanceEnabled) {
65
- return {
66
- enabled: true,
67
- ttlMinutes: category.DefaultCacheTTLMinutes || 60,
68
- maxCacheSize: category.DefaultCacheMaxSize || undefined,
69
- cacheKey: 'exact',
70
- inheritFromCategory: true
71
- };
72
- }
73
- category = category.ParentCategoryInfo;
74
- }
75
- return null;
76
- }
77
- /**
78
- * Gets the field metadata for this query, including display names, data types, and formatting rules.
79
- * @returns {QueryFieldInfo[]} Array of field metadata for the query
80
- */
81
- get Fields() {
82
- if (this._fields === null) {
83
- this._fields = metadata_1.Metadata.Provider.QueryFields.filter(f => f.QueryID === this.ID);
84
- }
85
- return this._fields;
86
- }
87
- /**
88
- * Gets the permissions that control access to this query, defining which users and roles can run it.
89
- * @returns {QueryPermissionInfo[]} Array of permission settings for the query
90
- */
91
- get Permissions() {
92
- return metadata_1.Metadata.Provider.QueryPermissions.filter(p => p.QueryID === this.ID);
93
- }
94
- /**
95
- * Gets the parameter definitions for this parameterized query if it uses Nunjucks templates.
96
- * Parameters include validation filters and metadata for type-safe query execution.
97
- * @returns {QueryParameterInfo[]} Array of parameter definitions for the query
98
- */
99
- get Parameters() {
100
- if (this._parameters === null) {
101
- this._parameters = metadata_1.Metadata.Provider.QueryParameters.filter(p => p.QueryID === this.ID);
102
- }
103
- return this._parameters;
104
- }
105
- /**
106
- * Gets the entities that are involved in this query, tracking which MemberJunction entities are referenced.
107
- * @returns {QueryEntityInfo[]} Array of entities used by the query
108
- */
109
- get Entities() {
110
- if (this._entities === null) {
111
- this._entities = metadata_1.Metadata.Provider.QueryEntities.filter(e => e.QueryID === this.ID);
112
- }
113
- return this._entities;
114
- }
115
- constructor(initData = null) {
116
- super();
117
- /**
118
- * Unique identifier for the query record
119
- */
120
- this.ID = null;
121
- /**
122
- * Name of the query for display and reference
123
- */
124
- this.Name = null;
125
- /**
126
- * Detailed description of what the query does and what data it returns
127
- */
128
- this.Description = null;
129
- /**
130
- * Foreign key reference to the Query Categories entity
131
- */
132
- this.CategoryID = null;
133
- /**
134
- * The actual SQL query text to execute, may include Nunjucks template parameters
135
- */
136
- this.SQL = null;
137
- /**
138
- * The original SQL before any optimization or modification, kept for reference and comparison
139
- */
140
- this.OriginalSQL = null;
141
- /**
142
- * User feedback on query accuracy, performance, or suggested improvements
143
- */
144
- this.Feedback = null;
145
- /**
146
- * Current status of the query in the approval workflow
147
- */
148
- this.Status = null;
149
- /**
150
- * Value indicating the quality of the query, higher values mean better quality
151
- */
152
- this.QualityRank = null;
153
- /**
154
- * Automatically set to true when the SQL column contains Nunjucks template markers like {{paramName}}
155
- */
156
- this.UsesTemplate = false;
157
- /**
158
- * When true, all executions of this query will be logged to the Audit Log system for tracking and compliance
159
- */
160
- this.AuditQueryRuns = false;
161
- /**
162
- * When true, query results will be cached in memory with TTL expiration
163
- */
164
- this.CacheEnabled = false;
165
- /**
166
- * Time-to-live in minutes for cached query results. NULL uses default TTL.
167
- */
168
- this.CacheTTLMinutes = null;
169
- /**
170
- * Maximum number of cached result sets for this query. NULL uses default size limit.
171
- */
172
- this.CacheMaxSize = null;
173
- /**
174
- * Date and time when this query record was created
175
- */
176
- this.__mj_CreatedAt = null;
177
- /**
178
- * Date and time when this query record was last updated
179
- */
180
- this.__mj_UpdatedAt = null;
181
- /**
182
- * Optional JSON-serialized embedding vector for the query, used for similarity search and query analysis
183
- */
184
- this.EmbeddingVector = null;
185
- /**
186
- * The AI Model ID used to generate the embedding vector for this query. Required for vector similarity comparisons.
187
- */
188
- this.EmbeddingModelID = null;
189
- // virtual fields - returned by the database VIEW
190
- /**
191
- * Category name from the related Query Categories entity
192
- */
193
- this.Category = null;
194
- /**
195
- * The AI Model name used to generate the embedding vector
196
- */
197
- this.EmbeddingModel = null;
198
- this._categoryPath = null;
199
- this._cacheConfig = null;
200
- this._fields = null;
201
- this._parameters = null;
202
- this._entities = null;
203
- if (initData) {
204
- this.copyInitData(initData);
205
- // do some special handling to create class instances instead of just data objects
206
- // copy the Entity Field Values
207
- const f = initData.Fields || initData._Fields;
208
- if (f) {
209
- this._fields = []; // only set to blank array on constructor if we have fields provided, otherwise leave blank because we can later lazy load in the Fields() accessor getter method!
210
- for (let j = 0; j < f.length; j++) {
211
- this._fields.push(new QueryFieldInfo(f));
212
- }
213
- }
214
- }
215
- }
216
- /**
217
- * Gets the category information for this query, supporting hierarchical organization.
218
- * @returns {QueryCategoryInfo} The category this query belongs to, or undefined if not categorized
219
- */
220
- get CategoryInfo() {
221
- return metadata_1.Metadata.Provider.QueryCategories.find(c => c.ID === this.CategoryID);
222
- }
223
- /**
224
- * Builds the hierarchical category path by walking up the parent chain.
225
- * @returns {string} The category path (e.g., "/MJ/AI/Agents/") or empty string if uncategorized
226
- */
227
- buildCategoryPath() {
228
- if (!this.CategoryID)
229
- return '';
230
- const pathSegments = [];
231
- let currentCategory = this.CategoryInfo;
232
- // Walk up the hierarchy to build the path
233
- while (currentCategory) {
234
- pathSegments.unshift(currentCategory.Name);
235
- currentCategory = currentCategory.ParentCategoryInfo;
236
- }
237
- return pathSegments.length > 0 ? `/${pathSegments.join('/')}/` : '';
238
- }
239
- /**
240
- * Checks if a user has permission to run this query based on their roles.
241
- * A user can run a query if:
242
- * 1. The query has no permissions defined (open to all)
243
- * 2. The user has at least one role that is granted permission
244
- *
245
- * @param user The user to check permissions for
246
- * @returns true if the user has permission to run the query
247
- */
248
- UserHasRunPermissions(user) {
249
- const permissions = this.Permissions;
250
- // If no permissions are defined, the query is open to all
251
- if (!permissions || permissions.length === 0) {
252
- return true;
253
- }
254
- // Check if user has any of the required roles
255
- if (user && user.UserRoles) {
256
- for (const userRole of user.UserRoles) {
257
- if (permissions.some(p => p.Role.trim().toLowerCase() === userRole.Role.trim().toLowerCase())) {
258
- return true;
259
- }
260
- }
261
- }
262
- return false;
263
- }
264
- /**
265
- * Checks if a user can run this query, considering both permissions and query status.
266
- * A query can be run if:
267
- * 1. The user has permission to run it (via UserHasRunPermissions)
268
- * 2. The query status is 'Approved'
269
- *
270
- * @param user The user to check
271
- * @returns true if the user can run the query right now
272
- */
273
- UserCanRun(user) {
274
- // First check permissions
275
- if (!this.UserHasRunPermissions(user)) {
276
- return false;
277
- }
278
- // Then check status - only approved queries can be run
279
- return this.Status === 'Approved';
280
- }
281
- }
282
- exports.QueryInfo = QueryInfo;
283
- /**
284
- * Organizes saved queries into categories for discovery and management, supporting folder-like organization of queries.
285
- */
286
- class QueryCategoryInfo extends baseInfo_1.BaseInfo {
287
- constructor(initData = null) {
288
- super();
289
- /**
290
- * Unique identifier for the query category
291
- */
292
- this.ID = null;
293
- /**
294
- * Name of the category for organizing queries
295
- */
296
- this.Name = null;
297
- /**
298
- * Foreign key to parent category for hierarchical organization
299
- */
300
- this.ParentID = null;
301
- /**
302
- * Description of what types of queries belong in this category
303
- */
304
- this.Description = null;
305
- /**
306
- * Default cache setting for queries in this category
307
- */
308
- this.DefaultCacheEnabled = false;
309
- /**
310
- * Default TTL in minutes for cached results of queries in this category
311
- */
312
- this.DefaultCacheTTLMinutes = null;
313
- /**
314
- * Default maximum cache size for queries in this category
315
- */
316
- this.DefaultCacheMaxSize = null;
317
- /**
318
- * When true, queries without cache config will inherit from this category
319
- */
320
- this.CacheInheritanceEnabled = true;
321
- /**
322
- * Date and time when this category was created
323
- */
324
- this.__mj_CreatedAt = null;
325
- /**
326
- * Date and time when this category was last updated
327
- */
328
- this.__mj_UpdatedAt = null;
329
- // virtual fields - returned by the database VIEW
330
- /**
331
- * Parent category name from the related category
332
- */
333
- this.Parent = null;
334
- if (initData) {
335
- this.copyInitData(initData);
336
- }
337
- }
338
- /**
339
- * Gets the parent category information for hierarchical category organization.
340
- * @returns {QueryCategoryInfo} The parent category, or undefined if this is a top-level category
341
- */
342
- get ParentCategoryInfo() {
343
- return metadata_1.Metadata.Provider.QueryCategories.find(c => c.ID === this.ParentID);
344
- }
345
- /**
346
- * Gets all queries that belong to this category.
347
- * @returns {QueryInfo[]} Array of queries in this category
348
- */
349
- get Queries() {
350
- return metadata_1.Metadata.Provider.Queries.filter(q => q.CategoryID === this.ID);
351
- }
352
- }
353
- exports.QueryCategoryInfo = QueryCategoryInfo;
354
- /**
355
- * Stores field-level metadata for queries including display names, data types, and formatting rules for result presentation.
356
- */
357
- class QueryFieldInfo extends baseInfo_1.BaseInfo {
358
- constructor(initData = null) {
359
- super();
360
- /**
361
- * Name of the field as it appears in query results
362
- */
363
- this.Name = null;
364
- /**
365
- * Foreign key to the parent query
366
- */
367
- this.QueryID = null;
368
- /**
369
- * Description of what this field represents
370
- */
371
- this.Description = null;
372
- /**
373
- * Display order of this field in query results
374
- */
375
- this.Sequence = null;
376
- /**
377
- * The base type, not including parameters, in SQL. For example this field would be nvarchar or decimal, and wouldn't include type parameters. The SQLFullType field provides that information.
378
- */
379
- this.SQLBaseType = null;
380
- /**
381
- * The full SQL type for the field, for example datetime or nvarchar(10) etc.
382
- */
383
- this.SQLFullType = null;
384
- /**
385
- * Foreign key to the source entity this field comes from
386
- */
387
- this.SourceEntityID = null;
388
- /**
389
- * Name of the field in the source entity
390
- */
391
- this.SourceFieldName = null;
392
- /**
393
- * Whether this field is computed rather than directly selected from a table
394
- */
395
- this.IsComputed = null;
396
- /**
397
- * Explanation of how this computed field is calculated
398
- */
399
- this.ComputationDescription = null;
400
- /**
401
- * Whether this field represents a summary/aggregate value
402
- */
403
- this.IsSummary = null;
404
- /**
405
- * Description of the summary calculation
406
- */
407
- this.SummaryDescription = null;
408
- /**
409
- * Date and time when this field was created
410
- */
411
- this.__mj_CreatedAt = null;
412
- /**
413
- * Date and time when this field was last updated
414
- */
415
- this.__mj_UpdatedAt = null;
416
- /**
417
- * How this field was detected: AI (automatic) or Manual (user-specified)
418
- */
419
- this.DetectionMethod = 'Manual';
420
- /**
421
- * Confidence score (0.00-1.00) when AI detection was used for this field
422
- */
423
- this.AutoDetectConfidenceScore = null;
424
- // virtual fields - returned by the database VIEW
425
- /**
426
- * Source entity name if field is from an entity
427
- */
428
- this.SourceEntity = null;
429
- if (initData) {
430
- this.copyInitData(initData);
431
- }
432
- }
433
- /**
434
- * Gets the entity information for the source entity this field comes from.
435
- * @returns {EntityInfo} The source entity metadata, or undefined if not linked to an entity
436
- */
437
- get SourceEntityInfo() {
438
- return metadata_1.Metadata.Provider.Entities.find(e => e.ID === this.SourceEntityID);
439
- }
440
- /**
441
- * Gets the query information this field belongs to.
442
- * @returns {QueryInfo} The parent query metadata
443
- */
444
- get QueryInfo() {
445
- return metadata_1.Metadata.Provider.Queries.find(q => q.ID === this.ID);
446
- }
447
- }
448
- exports.QueryFieldInfo = QueryFieldInfo;
449
- /**
450
- * Controls access to queries by defining which users and roles can run specific queries.
451
- */
452
- class QueryPermissionInfo extends baseInfo_1.BaseInfo {
453
- constructor(initData = null) {
454
- super();
455
- /**
456
- * Foreign key to the query this permission applies to
457
- */
458
- this.QueryID = null;
459
- /**
460
- *
461
- */
462
- this.RoleID = null;
463
- // virtual fields - returned by the database VIEW
464
- /**
465
- * Name of the role that has permission to run this query
466
- */
467
- this.Role = null;
468
- /**
469
- * Query name from the related query
470
- */
471
- this.Query = null;
472
- if (initData) {
473
- this.copyInitData(initData);
474
- }
475
- }
476
- /**
477
- * Gets the query information this permission applies to.
478
- * @returns {QueryInfo} The query metadata this permission controls
479
- */
480
- get QueryInfo() {
481
- return metadata_1.Metadata.Provider.Queries.find(q => q.ID === this.QueryID);
482
- }
483
- }
484
- exports.QueryPermissionInfo = QueryPermissionInfo;
485
- /**
486
- * Tracks which entities are involved in a given query. The Queries table stores SQL and descriptions for stored queries
487
- * that can be executed and serve as examples for AI.
488
- */
489
- class QueryEntityInfo extends baseInfo_1.BaseInfo {
490
- constructor(initData = null) {
491
- super();
492
- /**
493
- * References the ID of the query in the Queries table
494
- */
495
- this.QueryID = null;
496
- /**
497
- * References the ID of the entity in the Entities table
498
- */
499
- this.EntityID = null;
500
- /**
501
- * How this entity association was detected: AI (automatic) or Manual (user-specified)
502
- */
503
- this.DetectionMethod = 'Manual';
504
- /**
505
- * Confidence score (0.00-1.00) when AI detection was used
506
- */
507
- this.AutoDetectConfidenceScore = null;
508
- /**
509
- * Date and time when this association was created
510
- */
511
- this.__mj_CreatedAt = null;
512
- /**
513
- * Date and time when this association was last updated
514
- */
515
- this.__mj_UpdatedAt = null;
516
- // virtual fields - returned by the database VIEW
517
- /**
518
- * Query name from the related query
519
- */
520
- this.Query = null;
521
- /**
522
- * Entity name from the related entity
523
- */
524
- this.Entity = null;
525
- if (initData) {
526
- this.copyInitData(initData);
527
- }
528
- }
529
- /**
530
- * Gets the query information this entity relationship belongs to.
531
- * @returns {QueryInfo} The parent query metadata
532
- */
533
- get QueryInfo() {
534
- return metadata_1.Metadata.Provider.Queries.find(q => q.ID === this.QueryID);
535
- }
536
- /**
537
- * Gets the entity information for the entity involved in this query.
538
- * @returns {EntityInfo} The entity metadata
539
- */
540
- get EntityInfo() {
541
- return metadata_1.Metadata.Provider.Entities.find(e => e.ID === this.EntityID);
542
- }
543
- }
544
- exports.QueryEntityInfo = QueryEntityInfo;
545
- /**
546
- * Stores parameter definitions for parameterized queries that use Nunjucks templates. Each parameter represents a dynamic value
547
- * that can be passed when executing the query. Parameters are automatically extracted from the query template by the QueryEntityServer
548
- * using LLM analysis, or can be manually defined. The combination of parameter metadata and validation filters creates a
549
- * self-documenting, type-safe query execution system.
550
- */
551
- class QueryParameterInfo extends baseInfo_1.BaseInfo {
552
- constructor(initData = null) {
553
- super();
554
- /**
555
- * Foreign key to the query this parameter belongs to
556
- */
557
- this.QueryID = null;
558
- /**
559
- * The name of the parameter as it appears in the Nunjucks template (e.g., {{parameterName}})
560
- */
561
- this.Name = null;
562
- /**
563
- * Data type of the parameter for validation and type casting
564
- */
565
- this.Type = null;
566
- /**
567
- * Whether this parameter must be provided when executing the query
568
- */
569
- this.IsRequired = false;
570
- /**
571
- * Default value to use when parameter is not provided
572
- */
573
- this.DefaultValue = null;
574
- /**
575
- * Human-readable description of what this parameter is for
576
- */
577
- this.Description = null;
578
- /**
579
- * Example value demonstrating the proper format for this parameter
580
- */
581
- this.SampleValue = null;
582
- /**
583
- * JSON array of Nunjucks filter definitions for value transformation
584
- */
585
- this.ValidationFilters = null;
586
- /**
587
- * How this parameter was detected: AI (automatic) or Manual (user-specified)
588
- */
589
- this.DetectionMethod = 'Manual';
590
- /**
591
- * Confidence score (0.00-1.00) when AI detection was used
592
- */
593
- this.AutoDetectConfidenceScore = null;
594
- /**
595
- * Date and time when this parameter was created
596
- */
597
- this.__mj_CreatedAt = null;
598
- /**
599
- * Date and time when this parameter was last updated
600
- */
601
- this.__mj_UpdatedAt = null;
602
- // virtual field from view
603
- /**
604
- * Query name from the related query
605
- */
606
- this.Query = null;
607
- if (initData) {
608
- this.copyInitData(initData);
609
- }
610
- }
611
- /**
612
- * Gets the query information this parameter belongs to.
613
- * @returns {QueryInfo} The parent query metadata
614
- */
615
- get QueryInfo() {
616
- return metadata_1.Metadata.Provider.Queries.find(q => q.ID === this.QueryID);
617
- }
618
- /**
619
- * Gets the parsed validation filters for this parameter.
620
- * Parses the JSON string of filter definitions into an array of filter objects.
621
- * @returns {any[]} Array of parsed filter definitions, or empty array if parsing fails
622
- */
623
- get ParsedFilters() {
624
- try {
625
- return this.ValidationFilters ? JSON.parse(this.ValidationFilters) : [];
626
- }
627
- catch {
628
- return [];
629
- }
630
- }
631
- }
632
- exports.QueryParameterInfo = QueryParameterInfo;
633
- //# sourceMappingURL=queryInfo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryInfo.js","sourceRoot":"","sources":["../../src/generic/queryInfo.ts"],"names":[],"mappings":"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"}