@memberjunction/server 5.30.1 → 5.32.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 (104) hide show
  1. package/dist/agents/skip-sdk.d.ts +17 -1
  2. package/dist/agents/skip-sdk.d.ts.map +1 -1
  3. package/dist/agents/skip-sdk.js +18 -5
  4. package/dist/agents/skip-sdk.js.map +1 -1
  5. package/dist/auth/exampleNewUserSubClass.js +1 -1
  6. package/dist/auth/exampleNewUserSubClass.js.map +1 -1
  7. package/dist/auth/index.js +2 -2
  8. package/dist/auth/index.js.map +1 -1
  9. package/dist/auth/newUsers.js +2 -2
  10. package/dist/auth/newUsers.js.map +1 -1
  11. package/dist/context.js +3 -3
  12. package/dist/context.js.map +1 -1
  13. package/dist/generated/generated.d.ts +217 -4
  14. package/dist/generated/generated.d.ts.map +1 -1
  15. package/dist/generated/generated.js +1251 -24
  16. package/dist/generated/generated.js.map +1 -1
  17. package/dist/generic/ResolverBase.d.ts +5 -5
  18. package/dist/generic/ResolverBase.d.ts.map +1 -1
  19. package/dist/generic/ResolverBase.js +21 -18
  20. package/dist/generic/ResolverBase.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +9 -8
  24. package/dist/index.js.map +1 -1
  25. package/dist/multiTenancy/index.js +1 -1
  26. package/dist/multiTenancy/index.js.map +1 -1
  27. package/dist/resolvers/APIKeyResolver.d.ts.map +1 -1
  28. package/dist/resolvers/APIKeyResolver.js +5 -3
  29. package/dist/resolvers/APIKeyResolver.js.map +1 -1
  30. package/dist/resolvers/AutotagPipelineResolver.d.ts +3 -3
  31. package/dist/resolvers/AutotagPipelineResolver.d.ts.map +1 -1
  32. package/dist/resolvers/AutotagPipelineResolver.js +18 -12
  33. package/dist/resolvers/AutotagPipelineResolver.js.map +1 -1
  34. package/dist/resolvers/ComponentRegistryResolver.d.ts +1 -1
  35. package/dist/resolvers/ComponentRegistryResolver.d.ts.map +1 -1
  36. package/dist/resolvers/ComponentRegistryResolver.js +6 -4
  37. package/dist/resolvers/ComponentRegistryResolver.js.map +1 -1
  38. package/dist/resolvers/FileResolver.js +2 -2
  39. package/dist/resolvers/FileResolver.js.map +1 -1
  40. package/dist/resolvers/GetDataContextDataResolver.d.ts.map +1 -1
  41. package/dist/resolvers/GetDataContextDataResolver.js +1 -2
  42. package/dist/resolvers/GetDataContextDataResolver.js.map +1 -1
  43. package/dist/resolvers/ISAEntityResolver.d.ts.map +1 -1
  44. package/dist/resolvers/ISAEntityResolver.js +2 -5
  45. package/dist/resolvers/ISAEntityResolver.js.map +1 -1
  46. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
  47. package/dist/resolvers/IntegrationDiscoveryResolver.js +75 -66
  48. package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
  49. package/dist/resolvers/SyncDataResolver.d.ts +4 -4
  50. package/dist/resolvers/SyncDataResolver.d.ts.map +1 -1
  51. package/dist/resolvers/SyncDataResolver.js +9 -8
  52. package/dist/resolvers/SyncDataResolver.js.map +1 -1
  53. package/dist/resolvers/SyncRolesUsersResolver.d.ts +6 -6
  54. package/dist/resolvers/SyncRolesUsersResolver.d.ts.map +1 -1
  55. package/dist/resolvers/SyncRolesUsersResolver.js +22 -18
  56. package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -1
  57. package/dist/resolvers/TagGovernanceResolver.d.ts +43 -0
  58. package/dist/resolvers/TagGovernanceResolver.d.ts.map +1 -0
  59. package/dist/resolvers/TagGovernanceResolver.js +245 -0
  60. package/dist/resolvers/TagGovernanceResolver.js.map +1 -0
  61. package/dist/resolvers/TaskResolver.d.ts +1 -1
  62. package/dist/resolvers/TaskResolver.d.ts.map +1 -1
  63. package/dist/resolvers/TaskResolver.js +4 -2
  64. package/dist/resolvers/TaskResolver.js.map +1 -1
  65. package/dist/resolvers/TransactionGroupResolver.d.ts.map +1 -1
  66. package/dist/resolvers/TransactionGroupResolver.js +2 -1
  67. package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
  68. package/dist/rest/EntityCRUDHandler.js +4 -4
  69. package/dist/rest/EntityCRUDHandler.js.map +1 -1
  70. package/dist/rest/RESTEndpointHandler.js +9 -9
  71. package/dist/rest/RESTEndpointHandler.js.map +1 -1
  72. package/dist/rest/ViewOperationsHandler.js +4 -4
  73. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  74. package/dist/services/TaskOrchestrator.d.ts +4 -2
  75. package/dist/services/TaskOrchestrator.d.ts.map +1 -1
  76. package/dist/services/TaskOrchestrator.js +16 -12
  77. package/dist/services/TaskOrchestrator.js.map +1 -1
  78. package/package.json +68 -66
  79. package/src/__tests__/TagGovernanceResolver.test.ts +255 -0
  80. package/src/agents/skip-sdk.ts +30 -7
  81. package/src/auth/exampleNewUserSubClass.ts +1 -1
  82. package/src/auth/index.ts +2 -2
  83. package/src/auth/newUsers.ts +2 -2
  84. package/src/context.ts +3 -3
  85. package/src/generated/generated.ts +861 -21
  86. package/src/generic/ResolverBase.ts +28 -21
  87. package/src/index.ts +9 -9
  88. package/src/multiTenancy/index.ts +1 -1
  89. package/src/resolvers/APIKeyResolver.ts +7 -4
  90. package/src/resolvers/AutotagPipelineResolver.ts +20 -11
  91. package/src/resolvers/ComponentRegistryResolver.ts +8 -5
  92. package/src/resolvers/FileResolver.ts +2 -2
  93. package/src/resolvers/GetDataContextDataResolver.ts +1 -2
  94. package/src/resolvers/ISAEntityResolver.ts +3 -5
  95. package/src/resolvers/IntegrationDiscoveryResolver.ts +83 -66
  96. package/src/resolvers/SyncDataResolver.ts +12 -11
  97. package/src/resolvers/SyncRolesUsersResolver.ts +23 -19
  98. package/src/resolvers/TagGovernanceResolver.ts +189 -0
  99. package/src/resolvers/TaskResolver.ts +5 -3
  100. package/src/resolvers/TransactionGroupResolver.ts +3 -2
  101. package/src/rest/EntityCRUDHandler.ts +4 -4
  102. package/src/rest/RESTEndpointHandler.ts +9 -9
  103. package/src/rest/ViewOperationsHandler.ts +4 -4
  104. package/src/services/TaskOrchestrator.ts +18 -13
@@ -19345,6 +19345,10 @@ __decorate([
19345
19345
  Field(() => [MJAIPromptRun_]),
19346
19346
  __metadata("design:type", Array)
19347
19347
  ], MJAIModel_.prototype, "MJAIPromptRuns_ModelIDArray", void 0);
19348
+ __decorate([
19349
+ Field(() => [MJTag_]),
19350
+ __metadata("design:type", Array)
19351
+ ], MJAIModel_.prototype, "MJTags_EmbeddingModelIDArray", void 0);
19348
19352
  __decorate([
19349
19353
  Field(() => [MJAIModel_]),
19350
19354
  __metadata("design:type", Array)
@@ -19794,6 +19798,14 @@ let MJAIModelResolver = class MJAIModelResolver extends ResolverBase {
19794
19798
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Prompt Runs', rows, this.GetUserFromPayload(userPayload));
19795
19799
  return result;
19796
19800
  }
19801
+ async MJTags_EmbeddingModelIDArray(mjaimodel_, { userPayload, providers }, pubSub) {
19802
+ this.CheckUserReadPermissions('MJ: Tags', userPayload);
19803
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
19804
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTags')} WHERE ${provider.QuoteIdentifier('EmbeddingModelID')}='${mjaimodel_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tags', userPayload, EntityPermissionType.Read, 'AND');
19805
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
19806
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tags', rows, this.GetUserFromPayload(userPayload));
19807
+ return result;
19808
+ }
19797
19809
  async MJAIModels_PriorVersionIDArray(mjaimodel_, { userPayload, providers }, pubSub) {
19798
19810
  this.CheckUserReadPermissions('MJ: AI Models', userPayload);
19799
19811
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
@@ -20067,6 +20079,15 @@ __decorate([
20067
20079
  __metadata("design:paramtypes", [MJAIModel_, Object, PubSubEngine]),
20068
20080
  __metadata("design:returntype", Promise)
20069
20081
  ], MJAIModelResolver.prototype, "MJAIPromptRuns_ModelIDArray", null);
20082
+ __decorate([
20083
+ FieldResolver(() => [MJTag_]),
20084
+ __param(0, Root()),
20085
+ __param(1, Ctx()),
20086
+ __param(2, PubSub()),
20087
+ __metadata("design:type", Function),
20088
+ __metadata("design:paramtypes", [MJAIModel_, Object, PubSubEngine]),
20089
+ __metadata("design:returntype", Promise)
20090
+ ], MJAIModelResolver.prototype, "MJTags_EmbeddingModelIDArray", null);
20070
20091
  __decorate([
20071
20092
  FieldResolver(() => [MJAIModel_]),
20072
20093
  __param(0, Root()),
@@ -40023,6 +40044,10 @@ __decorate([
40023
40044
  MaxLength(50),
40024
40045
  __metadata("design:type", String)
40025
40046
  ], MJComponentLibrary_.prototype, "UsageType", void 0);
40047
+ __decorate([
40048
+ Field({ nullable: true, description: `Markdown-formatted usage instructions for AI code generators and agents. Injected into prompts when a component references this library. Covers container requirements, initialization patterns, required config options, and common pitfalls. Distinct from Description which is a high-level summary of what the library does.` }),
40049
+ __metadata("design:type", String)
40050
+ ], MJComponentLibrary_.prototype, "UsageInstructions", void 0);
40026
40051
  __decorate([
40027
40052
  Field(() => [MJComponentLibraryLink_]),
40028
40053
  __metadata("design:type", Array)
@@ -40088,6 +40113,10 @@ __decorate([
40088
40113
  Field({ nullable: true }),
40089
40114
  __metadata("design:type", String)
40090
40115
  ], CreateMJComponentLibraryInput.prototype, "UsageType", void 0);
40116
+ __decorate([
40117
+ Field({ nullable: true }),
40118
+ __metadata("design:type", String)
40119
+ ], CreateMJComponentLibraryInput.prototype, "UsageInstructions", void 0);
40091
40120
  __decorate([
40092
40121
  Field(() => RestoreContextInput, { nullable: true }),
40093
40122
  __metadata("design:type", RestoreContextInput)
@@ -40153,6 +40182,10 @@ __decorate([
40153
40182
  Field({ nullable: true }),
40154
40183
  __metadata("design:type", String)
40155
40184
  ], UpdateMJComponentLibraryInput.prototype, "UsageType", void 0);
40185
+ __decorate([
40186
+ Field({ nullable: true }),
40187
+ __metadata("design:type", String)
40188
+ ], UpdateMJComponentLibraryInput.prototype, "UsageInstructions", void 0);
40156
40189
  __decorate([
40157
40190
  Field(() => [KeyValuePairInput], { nullable: true }),
40158
40191
  __metadata("design:type", Array)
@@ -42690,6 +42723,10 @@ __decorate([
42690
42723
  Field(() => [MJContentItemDuplicate_]),
42691
42724
  __metadata("design:type", Array)
42692
42725
  ], MJContentItem_.prototype, "MJContentItemDuplicates_ContentItemBIDArray", void 0);
42726
+ __decorate([
42727
+ Field(() => [MJTagSuggestion_]),
42728
+ __metadata("design:type", Array)
42729
+ ], MJContentItem_.prototype, "MJTagSuggestions_SourceContentItemIDArray", void 0);
42693
42730
  MJContentItem_ = __decorate([
42694
42731
  ObjectType({ description: `Stores extracted text from content assets, as well as the source location, versioning, and links to extracted tags and attributes.` })
42695
42732
  ], MJContentItem_);
@@ -42943,6 +42980,14 @@ let MJContentItemResolver = class MJContentItemResolver extends ResolverBase {
42943
42980
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Content Item Duplicates', rows, this.GetUserFromPayload(userPayload));
42944
42981
  return result;
42945
42982
  }
42983
+ async MJTagSuggestions_SourceContentItemIDArray(mjcontentitem_, { userPayload, providers }, pubSub) {
42984
+ this.CheckUserReadPermissions('MJ: Tag Suggestions', userPayload);
42985
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
42986
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagSuggestions')} WHERE ${provider.QuoteIdentifier('SourceContentItemID')}='${mjcontentitem_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Suggestions', userPayload, EntityPermissionType.Read, 'AND');
42987
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
42988
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Suggestions', rows, this.GetUserFromPayload(userPayload));
42989
+ return result;
42990
+ }
42946
42991
  async CreateMJContentItem(input, { providers, userPayload }, pubSub) {
42947
42992
  const provider = GetReadWriteProvider(providers);
42948
42993
  return this.CreateRecord('MJ: Content Items', input, provider, userPayload, pubSub);
@@ -43029,6 +43074,15 @@ __decorate([
43029
43074
  __metadata("design:paramtypes", [MJContentItem_, Object, PubSubEngine]),
43030
43075
  __metadata("design:returntype", Promise)
43031
43076
  ], MJContentItemResolver.prototype, "MJContentItemDuplicates_ContentItemBIDArray", null);
43077
+ __decorate([
43078
+ FieldResolver(() => [MJTagSuggestion_]),
43079
+ __param(0, Root()),
43080
+ __param(1, Ctx()),
43081
+ __param(2, PubSub()),
43082
+ __metadata("design:type", Function),
43083
+ __metadata("design:paramtypes", [MJContentItem_, Object, PubSubEngine]),
43084
+ __metadata("design:returntype", Promise)
43085
+ ], MJContentItemResolver.prototype, "MJTagSuggestions_SourceContentItemIDArray", null);
43032
43086
  __decorate([
43033
43087
  Mutation(() => MJContentItem_),
43034
43088
  __param(0, Arg('input', () => CreateMJContentItemInput)),
@@ -45044,6 +45098,10 @@ __decorate([
45044
45098
  Field(() => [MJContentProcessRunDetail_]),
45045
45099
  __metadata("design:type", Array)
45046
45100
  ], MJContentSource_.prototype, "MJContentProcessRunDetails_ContentSourceIDArray", void 0);
45101
+ __decorate([
45102
+ Field(() => [MJTagSuggestion_]),
45103
+ __metadata("design:type", Array)
45104
+ ], MJContentSource_.prototype, "MJTagSuggestions_SourceContentSourceIDArray", void 0);
45047
45105
  MJContentSource_ = __decorate([
45048
45106
  ObjectType({ description: `Configures connections to external content repositories and systems from which content is imported, synchronized, and tagged.` })
45049
45107
  ], MJContentSource_);
@@ -45265,6 +45323,14 @@ let MJContentSourceResolver = class MJContentSourceResolver extends ResolverBase
45265
45323
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Content Process Run Details', rows, this.GetUserFromPayload(userPayload));
45266
45324
  return result;
45267
45325
  }
45326
+ async MJTagSuggestions_SourceContentSourceIDArray(mjcontentsource_, { userPayload, providers }, pubSub) {
45327
+ this.CheckUserReadPermissions('MJ: Tag Suggestions', userPayload);
45328
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
45329
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagSuggestions')} WHERE ${provider.QuoteIdentifier('SourceContentSourceID')}='${mjcontentsource_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Suggestions', userPayload, EntityPermissionType.Read, 'AND');
45330
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
45331
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Suggestions', rows, this.GetUserFromPayload(userPayload));
45332
+ return result;
45333
+ }
45268
45334
  async CreateMJContentSource(input, { providers, userPayload }, pubSub) {
45269
45335
  const provider = GetReadWriteProvider(providers);
45270
45336
  return this.CreateRecord('MJ: Content Sources', input, provider, userPayload, pubSub);
@@ -45351,6 +45417,15 @@ __decorate([
45351
45417
  __metadata("design:paramtypes", [MJContentSource_, Object, PubSubEngine]),
45352
45418
  __metadata("design:returntype", Promise)
45353
45419
  ], MJContentSourceResolver.prototype, "MJContentProcessRunDetails_ContentSourceIDArray", null);
45420
+ __decorate([
45421
+ FieldResolver(() => [MJTagSuggestion_]),
45422
+ __param(0, Root()),
45423
+ __param(1, Ctx()),
45424
+ __param(2, PubSub()),
45425
+ __metadata("design:type", Function),
45426
+ __metadata("design:paramtypes", [MJContentSource_, Object, PubSubEngine]),
45427
+ __metadata("design:returntype", Promise)
45428
+ ], MJContentSourceResolver.prototype, "MJTagSuggestions_SourceContentSourceIDArray", null);
45354
45429
  __decorate([
45355
45430
  Mutation(() => MJContentSource_),
45356
45431
  __param(0, Arg('input', () => CreateMJContentSourceInput)),
@@ -58100,6 +58175,10 @@ __decorate([
58100
58175
  Field(() => [MJRecordGeoCode_]),
58101
58176
  __metadata("design:type", Array)
58102
58177
  ], MJEntity_.prototype, "MJRecordGeoCodes_EntityIDArray", void 0);
58178
+ __decorate([
58179
+ Field(() => [MJTagScope_]),
58180
+ __metadata("design:type", Array)
58181
+ ], MJEntity_.prototype, "MJTagScopes_ScopeEntityIDArray", void 0);
58103
58182
  __decorate([
58104
58183
  Field(() => [MJGeneratedCode_]),
58105
58184
  __metadata("design:type", Array)
@@ -59105,6 +59184,14 @@ let MJEntityResolverBase = class MJEntityResolverBase extends ResolverBase {
59105
59184
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Record Geo Codes', rows, this.GetUserFromPayload(userPayload));
59106
59185
  return result;
59107
59186
  }
59187
+ async MJTagScopes_ScopeEntityIDArray(mjentity_, { userPayload, providers }, pubSub) {
59188
+ this.CheckUserReadPermissions('MJ: Tag Scopes', userPayload);
59189
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
59190
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagScopes')} WHERE ${provider.QuoteIdentifier('ScopeEntityID')}='${mjentity_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Scopes', userPayload, EntityPermissionType.Read, 'AND');
59191
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
59192
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Scopes', rows, this.GetUserFromPayload(userPayload));
59193
+ return result;
59194
+ }
59108
59195
  async MJGeneratedCodes_LinkedEntityIDArray(mjentity_, { userPayload, providers }, pubSub) {
59109
59196
  this.CheckUserReadPermissions('MJ: Generated Codes', userPayload);
59110
59197
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
@@ -59666,6 +59753,15 @@ __decorate([
59666
59753
  __metadata("design:paramtypes", [MJEntity_, Object, PubSubEngine]),
59667
59754
  __metadata("design:returntype", Promise)
59668
59755
  ], MJEntityResolverBase.prototype, "MJRecordGeoCodes_EntityIDArray", null);
59756
+ __decorate([
59757
+ FieldResolver(() => [MJTagScope_]),
59758
+ __param(0, Root()),
59759
+ __param(1, Ctx()),
59760
+ __param(2, PubSub()),
59761
+ __metadata("design:type", Function),
59762
+ __metadata("design:paramtypes", [MJEntity_, Object, PubSubEngine]),
59763
+ __metadata("design:returntype", Promise)
59764
+ ], MJEntityResolverBase.prototype, "MJTagScopes_ScopeEntityIDArray", null);
59669
59765
  __decorate([
59670
59766
  FieldResolver(() => [MJGeneratedCode_]),
59671
59767
  __param(0, Root()),
@@ -96855,6 +96951,897 @@ MJTagCoOccurrenceResolver = __decorate([
96855
96951
  ], MJTagCoOccurrenceResolver);
96856
96952
  export { MJTagCoOccurrenceResolver };
96857
96953
  //****************************************************************************
96954
+ // ENTITY CLASS for MJ: Tag Scopes
96955
+ //****************************************************************************
96956
+ let MJTagScope_ = class MJTagScope_ {
96957
+ };
96958
+ __decorate([
96959
+ Field(),
96960
+ MaxLength(36),
96961
+ __metadata("design:type", String)
96962
+ ], MJTagScope_.prototype, "ID", void 0);
96963
+ __decorate([
96964
+ Field({ description: `The Tag whose visibility this row constrains.` }),
96965
+ MaxLength(36),
96966
+ __metadata("design:type", String)
96967
+ ], MJTagScope_.prototype, "TagID", void 0);
96968
+ __decorate([
96969
+ Field({ description: `Entity that the scope record belongs to (e.g., Companies, AI Agents). Combined with ScopeRecordID identifies the specific tenant or context that may see the tag.` }),
96970
+ MaxLength(36),
96971
+ __metadata("design:type", String)
96972
+ ], MJTagScope_.prototype, "ScopeEntityID", void 0);
96973
+ __decorate([
96974
+ Field({ description: `Primary key value of the scope record. Stored as NVARCHAR(450) to match the polymorphic RecordID convention used by TaggedItem.` }),
96975
+ MaxLength(450),
96976
+ __metadata("design:type", String)
96977
+ ], MJTagScope_.prototype, "ScopeRecordID", void 0);
96978
+ __decorate([
96979
+ Field(),
96980
+ __metadata("design:type", Date)
96981
+ ], MJTagScope_.prototype, "_mj__CreatedAt", void 0);
96982
+ __decorate([
96983
+ Field(),
96984
+ __metadata("design:type", Date)
96985
+ ], MJTagScope_.prototype, "_mj__UpdatedAt", void 0);
96986
+ __decorate([
96987
+ Field(),
96988
+ MaxLength(255),
96989
+ __metadata("design:type", String)
96990
+ ], MJTagScope_.prototype, "Tag", void 0);
96991
+ __decorate([
96992
+ Field(),
96993
+ MaxLength(255),
96994
+ __metadata("design:type", String)
96995
+ ], MJTagScope_.prototype, "ScopeEntity", void 0);
96996
+ MJTagScope_ = __decorate([
96997
+ ObjectType({ description: `Polymorphic junction binding a Tag to one or more (Entity, Record) scope rows. A Tag with one or more TagScope rows is only visible inside those scopes; a Tag with no rows AND IsGlobal=1 is visible everywhere. Mirrors the shape of TaggedItem.` })
96998
+ ], MJTagScope_);
96999
+ export { MJTagScope_ };
97000
+ //****************************************************************************
97001
+ // INPUT TYPE for MJ: Tag Scopes
97002
+ //****************************************************************************
97003
+ let CreateMJTagScopeInput = class CreateMJTagScopeInput {
97004
+ };
97005
+ __decorate([
97006
+ Field({ nullable: true }),
97007
+ __metadata("design:type", String)
97008
+ ], CreateMJTagScopeInput.prototype, "ID", void 0);
97009
+ __decorate([
97010
+ Field({ nullable: true }),
97011
+ __metadata("design:type", String)
97012
+ ], CreateMJTagScopeInput.prototype, "TagID", void 0);
97013
+ __decorate([
97014
+ Field({ nullable: true }),
97015
+ __metadata("design:type", String)
97016
+ ], CreateMJTagScopeInput.prototype, "ScopeEntityID", void 0);
97017
+ __decorate([
97018
+ Field({ nullable: true }),
97019
+ __metadata("design:type", String)
97020
+ ], CreateMJTagScopeInput.prototype, "ScopeRecordID", void 0);
97021
+ __decorate([
97022
+ Field(() => RestoreContextInput, { nullable: true }),
97023
+ __metadata("design:type", RestoreContextInput)
97024
+ ], CreateMJTagScopeInput.prototype, "RestoreContext___", void 0);
97025
+ CreateMJTagScopeInput = __decorate([
97026
+ InputType()
97027
+ ], CreateMJTagScopeInput);
97028
+ export { CreateMJTagScopeInput };
97029
+ //****************************************************************************
97030
+ // INPUT TYPE for MJ: Tag Scopes
97031
+ //****************************************************************************
97032
+ let UpdateMJTagScopeInput = class UpdateMJTagScopeInput {
97033
+ };
97034
+ __decorate([
97035
+ Field(),
97036
+ __metadata("design:type", String)
97037
+ ], UpdateMJTagScopeInput.prototype, "ID", void 0);
97038
+ __decorate([
97039
+ Field({ nullable: true }),
97040
+ __metadata("design:type", String)
97041
+ ], UpdateMJTagScopeInput.prototype, "TagID", void 0);
97042
+ __decorate([
97043
+ Field({ nullable: true }),
97044
+ __metadata("design:type", String)
97045
+ ], UpdateMJTagScopeInput.prototype, "ScopeEntityID", void 0);
97046
+ __decorate([
97047
+ Field({ nullable: true }),
97048
+ __metadata("design:type", String)
97049
+ ], UpdateMJTagScopeInput.prototype, "ScopeRecordID", void 0);
97050
+ __decorate([
97051
+ Field(() => [KeyValuePairInput], { nullable: true }),
97052
+ __metadata("design:type", Array)
97053
+ ], UpdateMJTagScopeInput.prototype, "OldValues___", void 0);
97054
+ __decorate([
97055
+ Field(() => RestoreContextInput, { nullable: true }),
97056
+ __metadata("design:type", RestoreContextInput)
97057
+ ], UpdateMJTagScopeInput.prototype, "RestoreContext___", void 0);
97058
+ UpdateMJTagScopeInput = __decorate([
97059
+ InputType()
97060
+ ], UpdateMJTagScopeInput);
97061
+ export { UpdateMJTagScopeInput };
97062
+ //****************************************************************************
97063
+ // RESOLVER for MJ: Tag Scopes
97064
+ //****************************************************************************
97065
+ let RunMJTagScopeViewResult = class RunMJTagScopeViewResult {
97066
+ };
97067
+ __decorate([
97068
+ Field(() => [MJTagScope_]),
97069
+ __metadata("design:type", Array)
97070
+ ], RunMJTagScopeViewResult.prototype, "Results", void 0);
97071
+ __decorate([
97072
+ Field(() => String, { nullable: true }),
97073
+ __metadata("design:type", String)
97074
+ ], RunMJTagScopeViewResult.prototype, "UserViewRunID", void 0);
97075
+ __decorate([
97076
+ Field(() => Int, { nullable: true }),
97077
+ __metadata("design:type", Number)
97078
+ ], RunMJTagScopeViewResult.prototype, "RowCount", void 0);
97079
+ __decorate([
97080
+ Field(() => Int, { nullable: true }),
97081
+ __metadata("design:type", Number)
97082
+ ], RunMJTagScopeViewResult.prototype, "TotalRowCount", void 0);
97083
+ __decorate([
97084
+ Field(() => Int, { nullable: true }),
97085
+ __metadata("design:type", Number)
97086
+ ], RunMJTagScopeViewResult.prototype, "ExecutionTime", void 0);
97087
+ __decorate([
97088
+ Field({ nullable: true }),
97089
+ __metadata("design:type", String)
97090
+ ], RunMJTagScopeViewResult.prototype, "ErrorMessage", void 0);
97091
+ __decorate([
97092
+ Field(() => Boolean, { nullable: false }),
97093
+ __metadata("design:type", Boolean)
97094
+ ], RunMJTagScopeViewResult.prototype, "Success", void 0);
97095
+ RunMJTagScopeViewResult = __decorate([
97096
+ ObjectType()
97097
+ ], RunMJTagScopeViewResult);
97098
+ export { RunMJTagScopeViewResult };
97099
+ let MJTagScopeResolver = class MJTagScopeResolver extends ResolverBase {
97100
+ async RunMJTagScopeViewByID(input, { providers, userPayload }, pubSub) {
97101
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97102
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
97103
+ }
97104
+ async RunMJTagScopeViewByName(input, { providers, userPayload }, pubSub) {
97105
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97106
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
97107
+ }
97108
+ async RunMJTagScopeDynamicView(input, { providers, userPayload }, pubSub) {
97109
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97110
+ input.EntityName = 'MJ: Tag Scopes';
97111
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
97112
+ }
97113
+ async MJTagScope(ID, { userPayload, providers }, pubSub) {
97114
+ this.CheckUserReadPermissions('MJ: Tag Scopes', userPayload);
97115
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97116
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagScopes')} WHERE ${provider.QuoteIdentifier('ID')}='${ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Scopes', userPayload, EntityPermissionType.Read, 'AND');
97117
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
97118
+ const result = await this.MapFieldNamesToCodeNames('MJ: Tag Scopes', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
97119
+ return result;
97120
+ }
97121
+ async CreateMJTagScope(input, { providers, userPayload }, pubSub) {
97122
+ const provider = GetReadWriteProvider(providers);
97123
+ return this.CreateRecord('MJ: Tag Scopes', input, provider, userPayload, pubSub);
97124
+ }
97125
+ async UpdateMJTagScope(input, { providers, userPayload }, pubSub) {
97126
+ const provider = GetReadWriteProvider(providers);
97127
+ return this.UpdateRecord('MJ: Tag Scopes', input, provider, userPayload, pubSub);
97128
+ }
97129
+ async DeleteMJTagScope(ID, options, { providers, userPayload }, pubSub) {
97130
+ const provider = GetReadWriteProvider(providers);
97131
+ const key = new CompositeKey([{ FieldName: 'ID', Value: ID }]);
97132
+ return this.DeleteRecord('MJ: Tag Scopes', key, options, provider, userPayload, pubSub);
97133
+ }
97134
+ };
97135
+ __decorate([
97136
+ Query(() => RunMJTagScopeViewResult),
97137
+ __param(0, Arg('input', () => RunViewByIDInput)),
97138
+ __param(1, Ctx()),
97139
+ __param(2, PubSub()),
97140
+ __metadata("design:type", Function),
97141
+ __metadata("design:paramtypes", [RunViewByIDInput, Object, PubSubEngine]),
97142
+ __metadata("design:returntype", Promise)
97143
+ ], MJTagScopeResolver.prototype, "RunMJTagScopeViewByID", null);
97144
+ __decorate([
97145
+ Query(() => RunMJTagScopeViewResult),
97146
+ __param(0, Arg('input', () => RunViewByNameInput)),
97147
+ __param(1, Ctx()),
97148
+ __param(2, PubSub()),
97149
+ __metadata("design:type", Function),
97150
+ __metadata("design:paramtypes", [RunViewByNameInput, Object, PubSubEngine]),
97151
+ __metadata("design:returntype", Promise)
97152
+ ], MJTagScopeResolver.prototype, "RunMJTagScopeViewByName", null);
97153
+ __decorate([
97154
+ Query(() => RunMJTagScopeViewResult),
97155
+ __param(0, Arg('input', () => RunDynamicViewInput)),
97156
+ __param(1, Ctx()),
97157
+ __param(2, PubSub()),
97158
+ __metadata("design:type", Function),
97159
+ __metadata("design:paramtypes", [RunDynamicViewInput, Object, PubSubEngine]),
97160
+ __metadata("design:returntype", Promise)
97161
+ ], MJTagScopeResolver.prototype, "RunMJTagScopeDynamicView", null);
97162
+ __decorate([
97163
+ Query(() => MJTagScope_, { nullable: true }),
97164
+ __param(0, Arg('ID', () => String)),
97165
+ __param(1, Ctx()),
97166
+ __param(2, PubSub()),
97167
+ __metadata("design:type", Function),
97168
+ __metadata("design:paramtypes", [String, Object, PubSubEngine]),
97169
+ __metadata("design:returntype", Promise)
97170
+ ], MJTagScopeResolver.prototype, "MJTagScope", null);
97171
+ __decorate([
97172
+ Mutation(() => MJTagScope_),
97173
+ __param(0, Arg('input', () => CreateMJTagScopeInput)),
97174
+ __param(1, Ctx()),
97175
+ __param(2, PubSub()),
97176
+ __metadata("design:type", Function),
97177
+ __metadata("design:paramtypes", [CreateMJTagScopeInput, Object, PubSubEngine]),
97178
+ __metadata("design:returntype", Promise)
97179
+ ], MJTagScopeResolver.prototype, "CreateMJTagScope", null);
97180
+ __decorate([
97181
+ Mutation(() => MJTagScope_),
97182
+ __param(0, Arg('input', () => UpdateMJTagScopeInput)),
97183
+ __param(1, Ctx()),
97184
+ __param(2, PubSub()),
97185
+ __metadata("design:type", Function),
97186
+ __metadata("design:paramtypes", [UpdateMJTagScopeInput, Object, PubSubEngine]),
97187
+ __metadata("design:returntype", Promise)
97188
+ ], MJTagScopeResolver.prototype, "UpdateMJTagScope", null);
97189
+ __decorate([
97190
+ Mutation(() => MJTagScope_),
97191
+ __param(0, Arg('ID', () => String)),
97192
+ __param(1, Arg('options___', () => DeleteOptionsInput)),
97193
+ __param(2, Ctx()),
97194
+ __param(3, PubSub()),
97195
+ __metadata("design:type", Function),
97196
+ __metadata("design:paramtypes", [String, DeleteOptionsInput, Object, PubSubEngine]),
97197
+ __metadata("design:returntype", Promise)
97198
+ ], MJTagScopeResolver.prototype, "DeleteMJTagScope", null);
97199
+ MJTagScopeResolver = __decorate([
97200
+ Resolver(MJTagScope_)
97201
+ ], MJTagScopeResolver);
97202
+ export { MJTagScopeResolver };
97203
+ //****************************************************************************
97204
+ // ENTITY CLASS for MJ: Tag Suggestions
97205
+ //****************************************************************************
97206
+ let MJTagSuggestion_ = class MJTagSuggestion_ {
97207
+ };
97208
+ __decorate([
97209
+ Field(),
97210
+ MaxLength(36),
97211
+ __metadata("design:type", String)
97212
+ ], MJTagSuggestion_.prototype, "ID", void 0);
97213
+ __decorate([
97214
+ Field({ description: `The proposed tag name as seen by the classifier or analyzer.` }),
97215
+ MaxLength(255),
97216
+ __metadata("design:type", String)
97217
+ ], MJTagSuggestion_.prototype, "ProposedName", void 0);
97218
+ __decorate([
97219
+ Field({ nullable: true, description: `Tag under which the suggestion would be created if approved as a new tag. NULL = root.` }),
97220
+ MaxLength(36),
97221
+ __metadata("design:type", String)
97222
+ ], MJTagSuggestion_.prototype, "ProposedParentID", void 0);
97223
+ __decorate([
97224
+ Field({ nullable: true, description: `When non-null, the existing Tag the system believes is the closest match. The reviewer may accept this as a merge target instead of creating a new tag.` }),
97225
+ MaxLength(36),
97226
+ __metadata("design:type", String)
97227
+ ], MJTagSuggestion_.prototype, "BestMatchTagID", void 0);
97228
+ __decorate([
97229
+ Field(() => Float, { nullable: true, description: `Cosine similarity score (0.000-1.000) between the proposed name embedding and BestMatchTagID's embedding, when applicable.` }),
97230
+ __metadata("design:type", Number)
97231
+ ], MJTagSuggestion_.prototype, "BestMatchScore", void 0);
97232
+ __decorate([
97233
+ Field({ description: `Why this suggestion was created. Free-form NVARCHAR for forward compatibility; conventional values include ConstrainedMode, BelowThreshold, ParentFrozen, AutoGrowDisabled, MaxChildrenExceeded, MaxDepthExceeded, BelowMinWeight, RequiresReview, MergeCandidate, LowUsage, WideNode.` }),
97234
+ MaxLength(50),
97235
+ __metadata("design:type", String)
97236
+ ], MJTagSuggestion_.prototype, "Reason", void 0);
97237
+ __decorate([
97238
+ Field({ nullable: true, description: `ContentItem that triggered this suggestion, when item-level. NULL for taxonomy-level suggestions (merge candidates, low-usage alerts).` }),
97239
+ MaxLength(36),
97240
+ __metadata("design:type", String)
97241
+ ], MJTagSuggestion_.prototype, "SourceContentItemID", void 0);
97242
+ __decorate([
97243
+ Field({ nullable: true, description: `ContentSource that triggered this suggestion, when source-attributable.` }),
97244
+ MaxLength(36),
97245
+ __metadata("design:type", String)
97246
+ ], MJTagSuggestion_.prototype, "SourceContentSourceID", void 0);
97247
+ __decorate([
97248
+ Field({ nullable: true, description: `Optional snippet of source text that prompted the suggestion. Useful for reviewer context.` }),
97249
+ __metadata("design:type", String)
97250
+ ], MJTagSuggestion_.prototype, "SourceText", void 0);
97251
+ __decorate([
97252
+ Field({ description: `Pending = awaiting review; Approved = accepted as a new tag; Merged = accepted as a merge into BestMatchTagID; Rejected = dismissed.` }),
97253
+ MaxLength(20),
97254
+ __metadata("design:type", String)
97255
+ ], MJTagSuggestion_.prototype, "Status", void 0);
97256
+ __decorate([
97257
+ Field({ nullable: true, description: `When Approved or Merged, points to the resulting Tag (the new tag for Approved, the merge target for Merged).` }),
97258
+ MaxLength(36),
97259
+ __metadata("design:type", String)
97260
+ ], MJTagSuggestion_.prototype, "ResolvedTagID", void 0);
97261
+ __decorate([
97262
+ Field({ nullable: true, description: `User who took action on this suggestion.` }),
97263
+ MaxLength(36),
97264
+ __metadata("design:type", String)
97265
+ ], MJTagSuggestion_.prototype, "ReviewedByUserID", void 0);
97266
+ __decorate([
97267
+ Field({ nullable: true, description: `Timestamp of the review action.` }),
97268
+ __metadata("design:type", Date)
97269
+ ], MJTagSuggestion_.prototype, "ReviewedAt", void 0);
97270
+ __decorate([
97271
+ Field({ nullable: true, description: `Free-form notes captured at review time. Useful for rejection rationale or merge decisions.` }),
97272
+ __metadata("design:type", String)
97273
+ ], MJTagSuggestion_.prototype, "ReviewerNotes", void 0);
97274
+ __decorate([
97275
+ Field(),
97276
+ __metadata("design:type", Date)
97277
+ ], MJTagSuggestion_.prototype, "_mj__CreatedAt", void 0);
97278
+ __decorate([
97279
+ Field(),
97280
+ __metadata("design:type", Date)
97281
+ ], MJTagSuggestion_.prototype, "_mj__UpdatedAt", void 0);
97282
+ __decorate([
97283
+ Field({ nullable: true }),
97284
+ MaxLength(255),
97285
+ __metadata("design:type", String)
97286
+ ], MJTagSuggestion_.prototype, "ProposedParent", void 0);
97287
+ __decorate([
97288
+ Field({ nullable: true }),
97289
+ MaxLength(255),
97290
+ __metadata("design:type", String)
97291
+ ], MJTagSuggestion_.prototype, "BestMatchTag", void 0);
97292
+ __decorate([
97293
+ Field({ nullable: true }),
97294
+ MaxLength(250),
97295
+ __metadata("design:type", String)
97296
+ ], MJTagSuggestion_.prototype, "SourceContentItem", void 0);
97297
+ __decorate([
97298
+ Field({ nullable: true }),
97299
+ MaxLength(255),
97300
+ __metadata("design:type", String)
97301
+ ], MJTagSuggestion_.prototype, "SourceContentSource", void 0);
97302
+ __decorate([
97303
+ Field({ nullable: true }),
97304
+ MaxLength(255),
97305
+ __metadata("design:type", String)
97306
+ ], MJTagSuggestion_.prototype, "ResolvedTag", void 0);
97307
+ __decorate([
97308
+ Field({ nullable: true }),
97309
+ MaxLength(100),
97310
+ __metadata("design:type", String)
97311
+ ], MJTagSuggestion_.prototype, "ReviewedByUser", void 0);
97312
+ MJTagSuggestion_ = __decorate([
97313
+ ObjectType({ description: `Human-in-the-loop review queue for tag changes the autotagger could not commit autonomously: ambiguous matches, governance-blocked auto-grows, low-usage deprecation candidates, and merge candidates from co-occurrence analysis.` })
97314
+ ], MJTagSuggestion_);
97315
+ export { MJTagSuggestion_ };
97316
+ //****************************************************************************
97317
+ // INPUT TYPE for MJ: Tag Suggestions
97318
+ //****************************************************************************
97319
+ let CreateMJTagSuggestionInput = class CreateMJTagSuggestionInput {
97320
+ };
97321
+ __decorate([
97322
+ Field({ nullable: true }),
97323
+ __metadata("design:type", String)
97324
+ ], CreateMJTagSuggestionInput.prototype, "ID", void 0);
97325
+ __decorate([
97326
+ Field({ nullable: true }),
97327
+ __metadata("design:type", String)
97328
+ ], CreateMJTagSuggestionInput.prototype, "ProposedName", void 0);
97329
+ __decorate([
97330
+ Field({ nullable: true }),
97331
+ __metadata("design:type", String)
97332
+ ], CreateMJTagSuggestionInput.prototype, "ProposedParentID", void 0);
97333
+ __decorate([
97334
+ Field({ nullable: true }),
97335
+ __metadata("design:type", String)
97336
+ ], CreateMJTagSuggestionInput.prototype, "BestMatchTagID", void 0);
97337
+ __decorate([
97338
+ Field(() => Float, { nullable: true }),
97339
+ __metadata("design:type", Number)
97340
+ ], CreateMJTagSuggestionInput.prototype, "BestMatchScore", void 0);
97341
+ __decorate([
97342
+ Field({ nullable: true }),
97343
+ __metadata("design:type", String)
97344
+ ], CreateMJTagSuggestionInput.prototype, "Reason", void 0);
97345
+ __decorate([
97346
+ Field({ nullable: true }),
97347
+ __metadata("design:type", String)
97348
+ ], CreateMJTagSuggestionInput.prototype, "SourceContentItemID", void 0);
97349
+ __decorate([
97350
+ Field({ nullable: true }),
97351
+ __metadata("design:type", String)
97352
+ ], CreateMJTagSuggestionInput.prototype, "SourceContentSourceID", void 0);
97353
+ __decorate([
97354
+ Field({ nullable: true }),
97355
+ __metadata("design:type", String)
97356
+ ], CreateMJTagSuggestionInput.prototype, "SourceText", void 0);
97357
+ __decorate([
97358
+ Field({ nullable: true }),
97359
+ __metadata("design:type", String)
97360
+ ], CreateMJTagSuggestionInput.prototype, "Status", void 0);
97361
+ __decorate([
97362
+ Field({ nullable: true }),
97363
+ __metadata("design:type", String)
97364
+ ], CreateMJTagSuggestionInput.prototype, "ResolvedTagID", void 0);
97365
+ __decorate([
97366
+ Field({ nullable: true }),
97367
+ __metadata("design:type", String)
97368
+ ], CreateMJTagSuggestionInput.prototype, "ReviewedByUserID", void 0);
97369
+ __decorate([
97370
+ Field({ nullable: true }),
97371
+ __metadata("design:type", Date)
97372
+ ], CreateMJTagSuggestionInput.prototype, "ReviewedAt", void 0);
97373
+ __decorate([
97374
+ Field({ nullable: true }),
97375
+ __metadata("design:type", String)
97376
+ ], CreateMJTagSuggestionInput.prototype, "ReviewerNotes", void 0);
97377
+ __decorate([
97378
+ Field(() => RestoreContextInput, { nullable: true }),
97379
+ __metadata("design:type", RestoreContextInput)
97380
+ ], CreateMJTagSuggestionInput.prototype, "RestoreContext___", void 0);
97381
+ CreateMJTagSuggestionInput = __decorate([
97382
+ InputType()
97383
+ ], CreateMJTagSuggestionInput);
97384
+ export { CreateMJTagSuggestionInput };
97385
+ //****************************************************************************
97386
+ // INPUT TYPE for MJ: Tag Suggestions
97387
+ //****************************************************************************
97388
+ let UpdateMJTagSuggestionInput = class UpdateMJTagSuggestionInput {
97389
+ };
97390
+ __decorate([
97391
+ Field(),
97392
+ __metadata("design:type", String)
97393
+ ], UpdateMJTagSuggestionInput.prototype, "ID", void 0);
97394
+ __decorate([
97395
+ Field({ nullable: true }),
97396
+ __metadata("design:type", String)
97397
+ ], UpdateMJTagSuggestionInput.prototype, "ProposedName", void 0);
97398
+ __decorate([
97399
+ Field({ nullable: true }),
97400
+ __metadata("design:type", String)
97401
+ ], UpdateMJTagSuggestionInput.prototype, "ProposedParentID", void 0);
97402
+ __decorate([
97403
+ Field({ nullable: true }),
97404
+ __metadata("design:type", String)
97405
+ ], UpdateMJTagSuggestionInput.prototype, "BestMatchTagID", void 0);
97406
+ __decorate([
97407
+ Field(() => Float, { nullable: true }),
97408
+ __metadata("design:type", Number)
97409
+ ], UpdateMJTagSuggestionInput.prototype, "BestMatchScore", void 0);
97410
+ __decorate([
97411
+ Field({ nullable: true }),
97412
+ __metadata("design:type", String)
97413
+ ], UpdateMJTagSuggestionInput.prototype, "Reason", void 0);
97414
+ __decorate([
97415
+ Field({ nullable: true }),
97416
+ __metadata("design:type", String)
97417
+ ], UpdateMJTagSuggestionInput.prototype, "SourceContentItemID", void 0);
97418
+ __decorate([
97419
+ Field({ nullable: true }),
97420
+ __metadata("design:type", String)
97421
+ ], UpdateMJTagSuggestionInput.prototype, "SourceContentSourceID", void 0);
97422
+ __decorate([
97423
+ Field({ nullable: true }),
97424
+ __metadata("design:type", String)
97425
+ ], UpdateMJTagSuggestionInput.prototype, "SourceText", void 0);
97426
+ __decorate([
97427
+ Field({ nullable: true }),
97428
+ __metadata("design:type", String)
97429
+ ], UpdateMJTagSuggestionInput.prototype, "Status", void 0);
97430
+ __decorate([
97431
+ Field({ nullable: true }),
97432
+ __metadata("design:type", String)
97433
+ ], UpdateMJTagSuggestionInput.prototype, "ResolvedTagID", void 0);
97434
+ __decorate([
97435
+ Field({ nullable: true }),
97436
+ __metadata("design:type", String)
97437
+ ], UpdateMJTagSuggestionInput.prototype, "ReviewedByUserID", void 0);
97438
+ __decorate([
97439
+ Field({ nullable: true }),
97440
+ __metadata("design:type", Date)
97441
+ ], UpdateMJTagSuggestionInput.prototype, "ReviewedAt", void 0);
97442
+ __decorate([
97443
+ Field({ nullable: true }),
97444
+ __metadata("design:type", String)
97445
+ ], UpdateMJTagSuggestionInput.prototype, "ReviewerNotes", void 0);
97446
+ __decorate([
97447
+ Field(() => [KeyValuePairInput], { nullable: true }),
97448
+ __metadata("design:type", Array)
97449
+ ], UpdateMJTagSuggestionInput.prototype, "OldValues___", void 0);
97450
+ __decorate([
97451
+ Field(() => RestoreContextInput, { nullable: true }),
97452
+ __metadata("design:type", RestoreContextInput)
97453
+ ], UpdateMJTagSuggestionInput.prototype, "RestoreContext___", void 0);
97454
+ UpdateMJTagSuggestionInput = __decorate([
97455
+ InputType()
97456
+ ], UpdateMJTagSuggestionInput);
97457
+ export { UpdateMJTagSuggestionInput };
97458
+ //****************************************************************************
97459
+ // RESOLVER for MJ: Tag Suggestions
97460
+ //****************************************************************************
97461
+ let RunMJTagSuggestionViewResult = class RunMJTagSuggestionViewResult {
97462
+ };
97463
+ __decorate([
97464
+ Field(() => [MJTagSuggestion_]),
97465
+ __metadata("design:type", Array)
97466
+ ], RunMJTagSuggestionViewResult.prototype, "Results", void 0);
97467
+ __decorate([
97468
+ Field(() => String, { nullable: true }),
97469
+ __metadata("design:type", String)
97470
+ ], RunMJTagSuggestionViewResult.prototype, "UserViewRunID", void 0);
97471
+ __decorate([
97472
+ Field(() => Int, { nullable: true }),
97473
+ __metadata("design:type", Number)
97474
+ ], RunMJTagSuggestionViewResult.prototype, "RowCount", void 0);
97475
+ __decorate([
97476
+ Field(() => Int, { nullable: true }),
97477
+ __metadata("design:type", Number)
97478
+ ], RunMJTagSuggestionViewResult.prototype, "TotalRowCount", void 0);
97479
+ __decorate([
97480
+ Field(() => Int, { nullable: true }),
97481
+ __metadata("design:type", Number)
97482
+ ], RunMJTagSuggestionViewResult.prototype, "ExecutionTime", void 0);
97483
+ __decorate([
97484
+ Field({ nullable: true }),
97485
+ __metadata("design:type", String)
97486
+ ], RunMJTagSuggestionViewResult.prototype, "ErrorMessage", void 0);
97487
+ __decorate([
97488
+ Field(() => Boolean, { nullable: false }),
97489
+ __metadata("design:type", Boolean)
97490
+ ], RunMJTagSuggestionViewResult.prototype, "Success", void 0);
97491
+ RunMJTagSuggestionViewResult = __decorate([
97492
+ ObjectType()
97493
+ ], RunMJTagSuggestionViewResult);
97494
+ export { RunMJTagSuggestionViewResult };
97495
+ let MJTagSuggestionResolver = class MJTagSuggestionResolver extends ResolverBase {
97496
+ async RunMJTagSuggestionViewByID(input, { providers, userPayload }, pubSub) {
97497
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97498
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
97499
+ }
97500
+ async RunMJTagSuggestionViewByName(input, { providers, userPayload }, pubSub) {
97501
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97502
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
97503
+ }
97504
+ async RunMJTagSuggestionDynamicView(input, { providers, userPayload }, pubSub) {
97505
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97506
+ input.EntityName = 'MJ: Tag Suggestions';
97507
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
97508
+ }
97509
+ async MJTagSuggestion(ID, { userPayload, providers }, pubSub) {
97510
+ this.CheckUserReadPermissions('MJ: Tag Suggestions', userPayload);
97511
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97512
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagSuggestions')} WHERE ${provider.QuoteIdentifier('ID')}='${ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Suggestions', userPayload, EntityPermissionType.Read, 'AND');
97513
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
97514
+ const result = await this.MapFieldNamesToCodeNames('MJ: Tag Suggestions', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
97515
+ return result;
97516
+ }
97517
+ async CreateMJTagSuggestion(input, { providers, userPayload }, pubSub) {
97518
+ const provider = GetReadWriteProvider(providers);
97519
+ return this.CreateRecord('MJ: Tag Suggestions', input, provider, userPayload, pubSub);
97520
+ }
97521
+ async UpdateMJTagSuggestion(input, { providers, userPayload }, pubSub) {
97522
+ const provider = GetReadWriteProvider(providers);
97523
+ return this.UpdateRecord('MJ: Tag Suggestions', input, provider, userPayload, pubSub);
97524
+ }
97525
+ async DeleteMJTagSuggestion(ID, options, { providers, userPayload }, pubSub) {
97526
+ const provider = GetReadWriteProvider(providers);
97527
+ const key = new CompositeKey([{ FieldName: 'ID', Value: ID }]);
97528
+ return this.DeleteRecord('MJ: Tag Suggestions', key, options, provider, userPayload, pubSub);
97529
+ }
97530
+ };
97531
+ __decorate([
97532
+ Query(() => RunMJTagSuggestionViewResult),
97533
+ __param(0, Arg('input', () => RunViewByIDInput)),
97534
+ __param(1, Ctx()),
97535
+ __param(2, PubSub()),
97536
+ __metadata("design:type", Function),
97537
+ __metadata("design:paramtypes", [RunViewByIDInput, Object, PubSubEngine]),
97538
+ __metadata("design:returntype", Promise)
97539
+ ], MJTagSuggestionResolver.prototype, "RunMJTagSuggestionViewByID", null);
97540
+ __decorate([
97541
+ Query(() => RunMJTagSuggestionViewResult),
97542
+ __param(0, Arg('input', () => RunViewByNameInput)),
97543
+ __param(1, Ctx()),
97544
+ __param(2, PubSub()),
97545
+ __metadata("design:type", Function),
97546
+ __metadata("design:paramtypes", [RunViewByNameInput, Object, PubSubEngine]),
97547
+ __metadata("design:returntype", Promise)
97548
+ ], MJTagSuggestionResolver.prototype, "RunMJTagSuggestionViewByName", null);
97549
+ __decorate([
97550
+ Query(() => RunMJTagSuggestionViewResult),
97551
+ __param(0, Arg('input', () => RunDynamicViewInput)),
97552
+ __param(1, Ctx()),
97553
+ __param(2, PubSub()),
97554
+ __metadata("design:type", Function),
97555
+ __metadata("design:paramtypes", [RunDynamicViewInput, Object, PubSubEngine]),
97556
+ __metadata("design:returntype", Promise)
97557
+ ], MJTagSuggestionResolver.prototype, "RunMJTagSuggestionDynamicView", null);
97558
+ __decorate([
97559
+ Query(() => MJTagSuggestion_, { nullable: true }),
97560
+ __param(0, Arg('ID', () => String)),
97561
+ __param(1, Ctx()),
97562
+ __param(2, PubSub()),
97563
+ __metadata("design:type", Function),
97564
+ __metadata("design:paramtypes", [String, Object, PubSubEngine]),
97565
+ __metadata("design:returntype", Promise)
97566
+ ], MJTagSuggestionResolver.prototype, "MJTagSuggestion", null);
97567
+ __decorate([
97568
+ Mutation(() => MJTagSuggestion_),
97569
+ __param(0, Arg('input', () => CreateMJTagSuggestionInput)),
97570
+ __param(1, Ctx()),
97571
+ __param(2, PubSub()),
97572
+ __metadata("design:type", Function),
97573
+ __metadata("design:paramtypes", [CreateMJTagSuggestionInput, Object, PubSubEngine]),
97574
+ __metadata("design:returntype", Promise)
97575
+ ], MJTagSuggestionResolver.prototype, "CreateMJTagSuggestion", null);
97576
+ __decorate([
97577
+ Mutation(() => MJTagSuggestion_),
97578
+ __param(0, Arg('input', () => UpdateMJTagSuggestionInput)),
97579
+ __param(1, Ctx()),
97580
+ __param(2, PubSub()),
97581
+ __metadata("design:type", Function),
97582
+ __metadata("design:paramtypes", [UpdateMJTagSuggestionInput, Object, PubSubEngine]),
97583
+ __metadata("design:returntype", Promise)
97584
+ ], MJTagSuggestionResolver.prototype, "UpdateMJTagSuggestion", null);
97585
+ __decorate([
97586
+ Mutation(() => MJTagSuggestion_),
97587
+ __param(0, Arg('ID', () => String)),
97588
+ __param(1, Arg('options___', () => DeleteOptionsInput)),
97589
+ __param(2, Ctx()),
97590
+ __param(3, PubSub()),
97591
+ __metadata("design:type", Function),
97592
+ __metadata("design:paramtypes", [String, DeleteOptionsInput, Object, PubSubEngine]),
97593
+ __metadata("design:returntype", Promise)
97594
+ ], MJTagSuggestionResolver.prototype, "DeleteMJTagSuggestion", null);
97595
+ MJTagSuggestionResolver = __decorate([
97596
+ Resolver(MJTagSuggestion_)
97597
+ ], MJTagSuggestionResolver);
97598
+ export { MJTagSuggestionResolver };
97599
+ //****************************************************************************
97600
+ // ENTITY CLASS for MJ: Tag Synonyms
97601
+ //****************************************************************************
97602
+ let MJTagSynonym_ = class MJTagSynonym_ {
97603
+ };
97604
+ __decorate([
97605
+ Field(),
97606
+ MaxLength(36),
97607
+ __metadata("design:type", String)
97608
+ ], MJTagSynonym_.prototype, "ID", void 0);
97609
+ __decorate([
97610
+ Field({ description: `The Tag this synonym maps to.` }),
97611
+ MaxLength(36),
97612
+ __metadata("design:type", String)
97613
+ ], MJTagSynonym_.prototype, "TagID", void 0);
97614
+ __decorate([
97615
+ Field({ description: `The alternate name that should resolve to the Tag. Case-insensitive; uniqueness is enforced per-Tag via UQ_TagSynonym_Tag_Synonym.` }),
97616
+ MaxLength(255),
97617
+ __metadata("design:type", String)
97618
+ ], MJTagSynonym_.prototype, "Synonym", void 0);
97619
+ __decorate([
97620
+ Field({ description: `How this synonym was introduced. Manual = admin-authored; LLM = suggested by an LLM run; Imported = bulk-loaded; Merged = inherited from a tag merged into this one.` }),
97621
+ MaxLength(20),
97622
+ __metadata("design:type", String)
97623
+ ], MJTagSynonym_.prototype, "Source", void 0);
97624
+ __decorate([
97625
+ Field(),
97626
+ __metadata("design:type", Date)
97627
+ ], MJTagSynonym_.prototype, "_mj__CreatedAt", void 0);
97628
+ __decorate([
97629
+ Field(),
97630
+ __metadata("design:type", Date)
97631
+ ], MJTagSynonym_.prototype, "_mj__UpdatedAt", void 0);
97632
+ __decorate([
97633
+ Field(),
97634
+ MaxLength(255),
97635
+ __metadata("design:type", String)
97636
+ ], MJTagSynonym_.prototype, "Tag", void 0);
97637
+ MJTagSynonym_ = __decorate([
97638
+ ObjectType({ description: `Alternate names that should resolve to a Tag during autotagging. Consulted before exact/fuzzy/semantic match tiers in TagEngine.ResolveTag.` })
97639
+ ], MJTagSynonym_);
97640
+ export { MJTagSynonym_ };
97641
+ //****************************************************************************
97642
+ // INPUT TYPE for MJ: Tag Synonyms
97643
+ //****************************************************************************
97644
+ let CreateMJTagSynonymInput = class CreateMJTagSynonymInput {
97645
+ };
97646
+ __decorate([
97647
+ Field({ nullable: true }),
97648
+ __metadata("design:type", String)
97649
+ ], CreateMJTagSynonymInput.prototype, "ID", void 0);
97650
+ __decorate([
97651
+ Field({ nullable: true }),
97652
+ __metadata("design:type", String)
97653
+ ], CreateMJTagSynonymInput.prototype, "TagID", void 0);
97654
+ __decorate([
97655
+ Field({ nullable: true }),
97656
+ __metadata("design:type", String)
97657
+ ], CreateMJTagSynonymInput.prototype, "Synonym", void 0);
97658
+ __decorate([
97659
+ Field({ nullable: true }),
97660
+ __metadata("design:type", String)
97661
+ ], CreateMJTagSynonymInput.prototype, "Source", void 0);
97662
+ __decorate([
97663
+ Field(() => RestoreContextInput, { nullable: true }),
97664
+ __metadata("design:type", RestoreContextInput)
97665
+ ], CreateMJTagSynonymInput.prototype, "RestoreContext___", void 0);
97666
+ CreateMJTagSynonymInput = __decorate([
97667
+ InputType()
97668
+ ], CreateMJTagSynonymInput);
97669
+ export { CreateMJTagSynonymInput };
97670
+ //****************************************************************************
97671
+ // INPUT TYPE for MJ: Tag Synonyms
97672
+ //****************************************************************************
97673
+ let UpdateMJTagSynonymInput = class UpdateMJTagSynonymInput {
97674
+ };
97675
+ __decorate([
97676
+ Field(),
97677
+ __metadata("design:type", String)
97678
+ ], UpdateMJTagSynonymInput.prototype, "ID", void 0);
97679
+ __decorate([
97680
+ Field({ nullable: true }),
97681
+ __metadata("design:type", String)
97682
+ ], UpdateMJTagSynonymInput.prototype, "TagID", void 0);
97683
+ __decorate([
97684
+ Field({ nullable: true }),
97685
+ __metadata("design:type", String)
97686
+ ], UpdateMJTagSynonymInput.prototype, "Synonym", void 0);
97687
+ __decorate([
97688
+ Field({ nullable: true }),
97689
+ __metadata("design:type", String)
97690
+ ], UpdateMJTagSynonymInput.prototype, "Source", void 0);
97691
+ __decorate([
97692
+ Field(() => [KeyValuePairInput], { nullable: true }),
97693
+ __metadata("design:type", Array)
97694
+ ], UpdateMJTagSynonymInput.prototype, "OldValues___", void 0);
97695
+ __decorate([
97696
+ Field(() => RestoreContextInput, { nullable: true }),
97697
+ __metadata("design:type", RestoreContextInput)
97698
+ ], UpdateMJTagSynonymInput.prototype, "RestoreContext___", void 0);
97699
+ UpdateMJTagSynonymInput = __decorate([
97700
+ InputType()
97701
+ ], UpdateMJTagSynonymInput);
97702
+ export { UpdateMJTagSynonymInput };
97703
+ //****************************************************************************
97704
+ // RESOLVER for MJ: Tag Synonyms
97705
+ //****************************************************************************
97706
+ let RunMJTagSynonymViewResult = class RunMJTagSynonymViewResult {
97707
+ };
97708
+ __decorate([
97709
+ Field(() => [MJTagSynonym_]),
97710
+ __metadata("design:type", Array)
97711
+ ], RunMJTagSynonymViewResult.prototype, "Results", void 0);
97712
+ __decorate([
97713
+ Field(() => String, { nullable: true }),
97714
+ __metadata("design:type", String)
97715
+ ], RunMJTagSynonymViewResult.prototype, "UserViewRunID", void 0);
97716
+ __decorate([
97717
+ Field(() => Int, { nullable: true }),
97718
+ __metadata("design:type", Number)
97719
+ ], RunMJTagSynonymViewResult.prototype, "RowCount", void 0);
97720
+ __decorate([
97721
+ Field(() => Int, { nullable: true }),
97722
+ __metadata("design:type", Number)
97723
+ ], RunMJTagSynonymViewResult.prototype, "TotalRowCount", void 0);
97724
+ __decorate([
97725
+ Field(() => Int, { nullable: true }),
97726
+ __metadata("design:type", Number)
97727
+ ], RunMJTagSynonymViewResult.prototype, "ExecutionTime", void 0);
97728
+ __decorate([
97729
+ Field({ nullable: true }),
97730
+ __metadata("design:type", String)
97731
+ ], RunMJTagSynonymViewResult.prototype, "ErrorMessage", void 0);
97732
+ __decorate([
97733
+ Field(() => Boolean, { nullable: false }),
97734
+ __metadata("design:type", Boolean)
97735
+ ], RunMJTagSynonymViewResult.prototype, "Success", void 0);
97736
+ RunMJTagSynonymViewResult = __decorate([
97737
+ ObjectType()
97738
+ ], RunMJTagSynonymViewResult);
97739
+ export { RunMJTagSynonymViewResult };
97740
+ let MJTagSynonymResolver = class MJTagSynonymResolver extends ResolverBase {
97741
+ async RunMJTagSynonymViewByID(input, { providers, userPayload }, pubSub) {
97742
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97743
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
97744
+ }
97745
+ async RunMJTagSynonymViewByName(input, { providers, userPayload }, pubSub) {
97746
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97747
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
97748
+ }
97749
+ async RunMJTagSynonymDynamicView(input, { providers, userPayload }, pubSub) {
97750
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97751
+ input.EntityName = 'MJ: Tag Synonyms';
97752
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
97753
+ }
97754
+ async MJTagSynonym(ID, { userPayload, providers }, pubSub) {
97755
+ this.CheckUserReadPermissions('MJ: Tag Synonyms', userPayload);
97756
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97757
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagSynonyms')} WHERE ${provider.QuoteIdentifier('ID')}='${ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Synonyms', userPayload, EntityPermissionType.Read, 'AND');
97758
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
97759
+ const result = await this.MapFieldNamesToCodeNames('MJ: Tag Synonyms', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
97760
+ return result;
97761
+ }
97762
+ async CreateMJTagSynonym(input, { providers, userPayload }, pubSub) {
97763
+ const provider = GetReadWriteProvider(providers);
97764
+ return this.CreateRecord('MJ: Tag Synonyms', input, provider, userPayload, pubSub);
97765
+ }
97766
+ async UpdateMJTagSynonym(input, { providers, userPayload }, pubSub) {
97767
+ const provider = GetReadWriteProvider(providers);
97768
+ return this.UpdateRecord('MJ: Tag Synonyms', input, provider, userPayload, pubSub);
97769
+ }
97770
+ async DeleteMJTagSynonym(ID, options, { providers, userPayload }, pubSub) {
97771
+ const provider = GetReadWriteProvider(providers);
97772
+ const key = new CompositeKey([{ FieldName: 'ID', Value: ID }]);
97773
+ return this.DeleteRecord('MJ: Tag Synonyms', key, options, provider, userPayload, pubSub);
97774
+ }
97775
+ };
97776
+ __decorate([
97777
+ Query(() => RunMJTagSynonymViewResult),
97778
+ __param(0, Arg('input', () => RunViewByIDInput)),
97779
+ __param(1, Ctx()),
97780
+ __param(2, PubSub()),
97781
+ __metadata("design:type", Function),
97782
+ __metadata("design:paramtypes", [RunViewByIDInput, Object, PubSubEngine]),
97783
+ __metadata("design:returntype", Promise)
97784
+ ], MJTagSynonymResolver.prototype, "RunMJTagSynonymViewByID", null);
97785
+ __decorate([
97786
+ Query(() => RunMJTagSynonymViewResult),
97787
+ __param(0, Arg('input', () => RunViewByNameInput)),
97788
+ __param(1, Ctx()),
97789
+ __param(2, PubSub()),
97790
+ __metadata("design:type", Function),
97791
+ __metadata("design:paramtypes", [RunViewByNameInput, Object, PubSubEngine]),
97792
+ __metadata("design:returntype", Promise)
97793
+ ], MJTagSynonymResolver.prototype, "RunMJTagSynonymViewByName", null);
97794
+ __decorate([
97795
+ Query(() => RunMJTagSynonymViewResult),
97796
+ __param(0, Arg('input', () => RunDynamicViewInput)),
97797
+ __param(1, Ctx()),
97798
+ __param(2, PubSub()),
97799
+ __metadata("design:type", Function),
97800
+ __metadata("design:paramtypes", [RunDynamicViewInput, Object, PubSubEngine]),
97801
+ __metadata("design:returntype", Promise)
97802
+ ], MJTagSynonymResolver.prototype, "RunMJTagSynonymDynamicView", null);
97803
+ __decorate([
97804
+ Query(() => MJTagSynonym_, { nullable: true }),
97805
+ __param(0, Arg('ID', () => String)),
97806
+ __param(1, Ctx()),
97807
+ __param(2, PubSub()),
97808
+ __metadata("design:type", Function),
97809
+ __metadata("design:paramtypes", [String, Object, PubSubEngine]),
97810
+ __metadata("design:returntype", Promise)
97811
+ ], MJTagSynonymResolver.prototype, "MJTagSynonym", null);
97812
+ __decorate([
97813
+ Mutation(() => MJTagSynonym_),
97814
+ __param(0, Arg('input', () => CreateMJTagSynonymInput)),
97815
+ __param(1, Ctx()),
97816
+ __param(2, PubSub()),
97817
+ __metadata("design:type", Function),
97818
+ __metadata("design:paramtypes", [CreateMJTagSynonymInput, Object, PubSubEngine]),
97819
+ __metadata("design:returntype", Promise)
97820
+ ], MJTagSynonymResolver.prototype, "CreateMJTagSynonym", null);
97821
+ __decorate([
97822
+ Mutation(() => MJTagSynonym_),
97823
+ __param(0, Arg('input', () => UpdateMJTagSynonymInput)),
97824
+ __param(1, Ctx()),
97825
+ __param(2, PubSub()),
97826
+ __metadata("design:type", Function),
97827
+ __metadata("design:paramtypes", [UpdateMJTagSynonymInput, Object, PubSubEngine]),
97828
+ __metadata("design:returntype", Promise)
97829
+ ], MJTagSynonymResolver.prototype, "UpdateMJTagSynonym", null);
97830
+ __decorate([
97831
+ Mutation(() => MJTagSynonym_),
97832
+ __param(0, Arg('ID', () => String)),
97833
+ __param(1, Arg('options___', () => DeleteOptionsInput)),
97834
+ __param(2, Ctx()),
97835
+ __param(3, PubSub()),
97836
+ __metadata("design:type", Function),
97837
+ __metadata("design:paramtypes", [String, DeleteOptionsInput, Object, PubSubEngine]),
97838
+ __metadata("design:returntype", Promise)
97839
+ ], MJTagSynonymResolver.prototype, "DeleteMJTagSynonym", null);
97840
+ MJTagSynonymResolver = __decorate([
97841
+ Resolver(MJTagSynonym_)
97842
+ ], MJTagSynonymResolver);
97843
+ export { MJTagSynonymResolver };
97844
+ //****************************************************************************
96858
97845
  // ENTITY CLASS for MJ: Tagged Items
96859
97846
  //****************************************************************************
96860
97847
  let MJTaggedItem_ = class MJTaggedItem_ {
@@ -97163,6 +98150,43 @@ __decorate([
97163
98150
  MaxLength(36),
97164
98151
  __metadata("design:type", String)
97165
98152
  ], MJTag_.prototype, "MergedIntoTagID", void 0);
98153
+ __decorate([
98154
+ Field(() => Boolean, { description: `When 1, the tag is visible to every tenant/scope. When 0, the tag is only visible to the (Entity, Record) pairs listed in TagScope. Cannot be set together with TagScope rows — enforced in entity Save() override.` }),
98155
+ __metadata("design:type", Boolean)
98156
+ ], MJTag_.prototype, "IsGlobal", void 0);
98157
+ __decorate([
98158
+ Field(() => Boolean, { description: `When 1, the autotagger may auto-create new child tags under this node when running in AutoGrow or FreeFlow mode. When 0, new children must come through the TagSuggestion review queue.` }),
98159
+ __metadata("design:type", Boolean)
98160
+ ], MJTag_.prototype, "AllowAutoGrow", void 0);
98161
+ __decorate([
98162
+ Field(() => Boolean, { description: `When 1, this subtree is locked: no new children may be created under this node or any descendant, regardless of taxonomy mode. Existing children remain editable.` }),
98163
+ __metadata("design:type", Boolean)
98164
+ ], MJTag_.prototype, "IsFrozen", void 0);
98165
+ __decorate([
98166
+ Field(() => Int, { nullable: true, description: `Optional cap on the number of direct children allowed under this tag. NULL = unlimited. Auto-grow is blocked once this cap is reached and routed to the TagSuggestion queue.` }),
98167
+ __metadata("design:type", Number)
98168
+ ], MJTag_.prototype, "MaxChildren", void 0);
98169
+ __decorate([
98170
+ Field(() => Int, { nullable: true, description: `Optional cap on the depth of the subtree rooted at this tag. NULL = unlimited. 0 = leaf-only (no children at all). Enforced via ancestor walk during auto-grow.` }),
98171
+ __metadata("design:type", Number)
98172
+ ], MJTag_.prototype, "MaxDescendantDepth", void 0);
98173
+ __decorate([
98174
+ Field(() => Float, { nullable: true, description: `Optional minimum classifier confidence (0.00-1.00) required for this tag to be applied. Items below this floor are routed to the TagSuggestion queue instead of being tagged.` }),
98175
+ __metadata("design:type", Number)
98176
+ ], MJTag_.prototype, "MinWeight", void 0);
98177
+ __decorate([
98178
+ Field(() => Boolean, { description: `When 1, every classifier-applied use of this tag is routed to the TagSuggestion queue for human approval before being persisted as a ContentItemTag → TaggedItem.` }),
98179
+ __metadata("design:type", Boolean)
98180
+ ], MJTag_.prototype, "RequiresReview", void 0);
98181
+ __decorate([
98182
+ Field({ nullable: true, description: `JSON-encoded numeric vector representing the tag's embedding under the model identified by EmbeddingModelID. Refreshed automatically on Save() when Name or Description changes. Used to seed the in-memory tag vector cache without a cold-start LLM round-trip.` }),
98183
+ __metadata("design:type", String)
98184
+ ], MJTag_.prototype, "EmbeddingVector", void 0);
98185
+ __decorate([
98186
+ Field({ nullable: true, description: `AI model whose embedding produced EmbeddingVector. When the configured tag-embedding model differs from this value, the cached vector is treated as stale and recomputed.` }),
98187
+ MaxLength(36),
98188
+ __metadata("design:type", String)
98189
+ ], MJTag_.prototype, "EmbeddingModelID", void 0);
97166
98190
  __decorate([
97167
98191
  Field({ nullable: true }),
97168
98192
  MaxLength(255),
@@ -97173,6 +98197,11 @@ __decorate([
97173
98197
  MaxLength(255),
97174
98198
  __metadata("design:type", String)
97175
98199
  ], MJTag_.prototype, "MergedIntoTag", void 0);
98200
+ __decorate([
98201
+ Field({ nullable: true }),
98202
+ MaxLength(50),
98203
+ __metadata("design:type", String)
98204
+ ], MJTag_.prototype, "EmbeddingModel", void 0);
97176
98205
  __decorate([
97177
98206
  Field({ nullable: true }),
97178
98207
  MaxLength(36),
@@ -97199,6 +98228,10 @@ __decorate([
97199
98228
  Field(() => [MJContentItemTag_]),
97200
98229
  __metadata("design:type", Array)
97201
98230
  ], MJTag_.prototype, "MJContentItemTags_TagIDArray", void 0);
98231
+ __decorate([
98232
+ Field(() => [MJTagSynonym_]),
98233
+ __metadata("design:type", Array)
98234
+ ], MJTag_.prototype, "MJTagSynonyms_TagIDArray", void 0);
97202
98235
  __decorate([
97203
98236
  Field(() => [MJTagAuditLog_]),
97204
98237
  __metadata("design:type", Array)
@@ -97208,13 +98241,29 @@ __decorate([
97208
98241
  __metadata("design:type", Array)
97209
98242
  ], MJTag_.prototype, "MJTagCoOccurrences_TagAIDArray", void 0);
97210
98243
  __decorate([
97211
- Field(() => [MJTag_]),
98244
+ Field(() => [MJTagScope_]),
97212
98245
  __metadata("design:type", Array)
97213
- ], MJTag_.prototype, "MJTags_MergedIntoTagIDArray", void 0);
98246
+ ], MJTag_.prototype, "MJTagScopes_TagIDArray", void 0);
98247
+ __decorate([
98248
+ Field(() => [MJTagSuggestion_]),
98249
+ __metadata("design:type", Array)
98250
+ ], MJTag_.prototype, "MJTagSuggestions_ProposedParentIDArray", void 0);
97214
98251
  __decorate([
97215
98252
  Field(() => [MJTagAuditLog_]),
97216
98253
  __metadata("design:type", Array)
97217
98254
  ], MJTag_.prototype, "MJTagAuditLogs_TagIDArray", void 0);
98255
+ __decorate([
98256
+ Field(() => [MJTag_]),
98257
+ __metadata("design:type", Array)
98258
+ ], MJTag_.prototype, "MJTags_MergedIntoTagIDArray", void 0);
98259
+ __decorate([
98260
+ Field(() => [MJTagSuggestion_]),
98261
+ __metadata("design:type", Array)
98262
+ ], MJTag_.prototype, "MJTagSuggestions_BestMatchTagIDArray", void 0);
98263
+ __decorate([
98264
+ Field(() => [MJTagSuggestion_]),
98265
+ __metadata("design:type", Array)
98266
+ ], MJTag_.prototype, "MJTagSuggestions_ResolvedTagIDArray", void 0);
97218
98267
  MJTag_ = __decorate([
97219
98268
  ObjectType({ description: `Tags are used to arbitrarily associate any record in any entity with addtional information.` })
97220
98269
  ], MJTag_);
@@ -97252,6 +98301,42 @@ __decorate([
97252
98301
  Field({ nullable: true }),
97253
98302
  __metadata("design:type", String)
97254
98303
  ], CreateMJTagInput.prototype, "MergedIntoTagID", void 0);
98304
+ __decorate([
98305
+ Field(() => Boolean, { nullable: true }),
98306
+ __metadata("design:type", Boolean)
98307
+ ], CreateMJTagInput.prototype, "IsGlobal", void 0);
98308
+ __decorate([
98309
+ Field(() => Boolean, { nullable: true }),
98310
+ __metadata("design:type", Boolean)
98311
+ ], CreateMJTagInput.prototype, "AllowAutoGrow", void 0);
98312
+ __decorate([
98313
+ Field(() => Boolean, { nullable: true }),
98314
+ __metadata("design:type", Boolean)
98315
+ ], CreateMJTagInput.prototype, "IsFrozen", void 0);
98316
+ __decorate([
98317
+ Field(() => Int, { nullable: true }),
98318
+ __metadata("design:type", Number)
98319
+ ], CreateMJTagInput.prototype, "MaxChildren", void 0);
98320
+ __decorate([
98321
+ Field(() => Int, { nullable: true }),
98322
+ __metadata("design:type", Number)
98323
+ ], CreateMJTagInput.prototype, "MaxDescendantDepth", void 0);
98324
+ __decorate([
98325
+ Field(() => Float, { nullable: true }),
98326
+ __metadata("design:type", Number)
98327
+ ], CreateMJTagInput.prototype, "MinWeight", void 0);
98328
+ __decorate([
98329
+ Field(() => Boolean, { nullable: true }),
98330
+ __metadata("design:type", Boolean)
98331
+ ], CreateMJTagInput.prototype, "RequiresReview", void 0);
98332
+ __decorate([
98333
+ Field({ nullable: true }),
98334
+ __metadata("design:type", String)
98335
+ ], CreateMJTagInput.prototype, "EmbeddingVector", void 0);
98336
+ __decorate([
98337
+ Field({ nullable: true }),
98338
+ __metadata("design:type", String)
98339
+ ], CreateMJTagInput.prototype, "EmbeddingModelID", void 0);
97255
98340
  __decorate([
97256
98341
  Field(() => RestoreContextInput, { nullable: true }),
97257
98342
  __metadata("design:type", RestoreContextInput)
@@ -97293,6 +98378,42 @@ __decorate([
97293
98378
  Field({ nullable: true }),
97294
98379
  __metadata("design:type", String)
97295
98380
  ], UpdateMJTagInput.prototype, "MergedIntoTagID", void 0);
98381
+ __decorate([
98382
+ Field(() => Boolean, { nullable: true }),
98383
+ __metadata("design:type", Boolean)
98384
+ ], UpdateMJTagInput.prototype, "IsGlobal", void 0);
98385
+ __decorate([
98386
+ Field(() => Boolean, { nullable: true }),
98387
+ __metadata("design:type", Boolean)
98388
+ ], UpdateMJTagInput.prototype, "AllowAutoGrow", void 0);
98389
+ __decorate([
98390
+ Field(() => Boolean, { nullable: true }),
98391
+ __metadata("design:type", Boolean)
98392
+ ], UpdateMJTagInput.prototype, "IsFrozen", void 0);
98393
+ __decorate([
98394
+ Field(() => Int, { nullable: true }),
98395
+ __metadata("design:type", Number)
98396
+ ], UpdateMJTagInput.prototype, "MaxChildren", void 0);
98397
+ __decorate([
98398
+ Field(() => Int, { nullable: true }),
98399
+ __metadata("design:type", Number)
98400
+ ], UpdateMJTagInput.prototype, "MaxDescendantDepth", void 0);
98401
+ __decorate([
98402
+ Field(() => Float, { nullable: true }),
98403
+ __metadata("design:type", Number)
98404
+ ], UpdateMJTagInput.prototype, "MinWeight", void 0);
98405
+ __decorate([
98406
+ Field(() => Boolean, { nullable: true }),
98407
+ __metadata("design:type", Boolean)
98408
+ ], UpdateMJTagInput.prototype, "RequiresReview", void 0);
98409
+ __decorate([
98410
+ Field({ nullable: true }),
98411
+ __metadata("design:type", String)
98412
+ ], UpdateMJTagInput.prototype, "EmbeddingVector", void 0);
98413
+ __decorate([
98414
+ Field({ nullable: true }),
98415
+ __metadata("design:type", String)
98416
+ ], UpdateMJTagInput.prototype, "EmbeddingModelID", void 0);
97296
98417
  __decorate([
97297
98418
  Field(() => [KeyValuePairInput], { nullable: true }),
97298
98419
  __metadata("design:type", Array)
@@ -97396,6 +98517,14 @@ let MJTagResolver = class MJTagResolver extends ResolverBase {
97396
98517
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Content Item Tags', rows, this.GetUserFromPayload(userPayload));
97397
98518
  return result;
97398
98519
  }
98520
+ async MJTagSynonyms_TagIDArray(mjtag_, { userPayload, providers }, pubSub) {
98521
+ this.CheckUserReadPermissions('MJ: Tag Synonyms', userPayload);
98522
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
98523
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagSynonyms')} WHERE ${provider.QuoteIdentifier('TagID')}='${mjtag_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Synonyms', userPayload, EntityPermissionType.Read, 'AND');
98524
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
98525
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Synonyms', rows, this.GetUserFromPayload(userPayload));
98526
+ return result;
98527
+ }
97399
98528
  async MJTagAuditLogs_RelatedTagIDArray(mjtag_, { userPayload, providers }, pubSub) {
97400
98529
  this.CheckUserReadPermissions('MJ: Tag Audit Logs', userPayload);
97401
98530
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
@@ -97412,12 +98541,20 @@ let MJTagResolver = class MJTagResolver extends ResolverBase {
97412
98541
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Co Occurrences', rows, this.GetUserFromPayload(userPayload));
97413
98542
  return result;
97414
98543
  }
97415
- async MJTags_MergedIntoTagIDArray(mjtag_, { userPayload, providers }, pubSub) {
97416
- this.CheckUserReadPermissions('MJ: Tags', userPayload);
98544
+ async MJTagScopes_TagIDArray(mjtag_, { userPayload, providers }, pubSub) {
98545
+ this.CheckUserReadPermissions('MJ: Tag Scopes', userPayload);
97417
98546
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
97418
- const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTags')} WHERE ${provider.QuoteIdentifier('MergedIntoTagID')}='${mjtag_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tags', userPayload, EntityPermissionType.Read, 'AND');
98547
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagScopes')} WHERE ${provider.QuoteIdentifier('TagID')}='${mjtag_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Scopes', userPayload, EntityPermissionType.Read, 'AND');
97419
98548
  const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
97420
- const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tags', rows, this.GetUserFromPayload(userPayload));
98549
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Scopes', rows, this.GetUserFromPayload(userPayload));
98550
+ return result;
98551
+ }
98552
+ async MJTagSuggestions_ProposedParentIDArray(mjtag_, { userPayload, providers }, pubSub) {
98553
+ this.CheckUserReadPermissions('MJ: Tag Suggestions', userPayload);
98554
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
98555
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagSuggestions')} WHERE ${provider.QuoteIdentifier('ProposedParentID')}='${mjtag_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Suggestions', userPayload, EntityPermissionType.Read, 'AND');
98556
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
98557
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Suggestions', rows, this.GetUserFromPayload(userPayload));
97421
98558
  return result;
97422
98559
  }
97423
98560
  async MJTagAuditLogs_TagIDArray(mjtag_, { userPayload, providers }, pubSub) {
@@ -97428,6 +98565,30 @@ let MJTagResolver = class MJTagResolver extends ResolverBase {
97428
98565
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Audit Logs', rows, this.GetUserFromPayload(userPayload));
97429
98566
  return result;
97430
98567
  }
98568
+ async MJTags_MergedIntoTagIDArray(mjtag_, { userPayload, providers }, pubSub) {
98569
+ this.CheckUserReadPermissions('MJ: Tags', userPayload);
98570
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
98571
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTags')} WHERE ${provider.QuoteIdentifier('MergedIntoTagID')}='${mjtag_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tags', userPayload, EntityPermissionType.Read, 'AND');
98572
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
98573
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tags', rows, this.GetUserFromPayload(userPayload));
98574
+ return result;
98575
+ }
98576
+ async MJTagSuggestions_BestMatchTagIDArray(mjtag_, { userPayload, providers }, pubSub) {
98577
+ this.CheckUserReadPermissions('MJ: Tag Suggestions', userPayload);
98578
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
98579
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagSuggestions')} WHERE ${provider.QuoteIdentifier('BestMatchTagID')}='${mjtag_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Suggestions', userPayload, EntityPermissionType.Read, 'AND');
98580
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
98581
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Suggestions', rows, this.GetUserFromPayload(userPayload));
98582
+ return result;
98583
+ }
98584
+ async MJTagSuggestions_ResolvedTagIDArray(mjtag_, { userPayload, providers }, pubSub) {
98585
+ this.CheckUserReadPermissions('MJ: Tag Suggestions', userPayload);
98586
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
98587
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagSuggestions')} WHERE ${provider.QuoteIdentifier('ResolvedTagID')}='${mjtag_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Suggestions', userPayload, EntityPermissionType.Read, 'AND');
98588
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
98589
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Suggestions', rows, this.GetUserFromPayload(userPayload));
98590
+ return result;
98591
+ }
97431
98592
  async CreateMJTag(input, { providers, userPayload }, pubSub) {
97432
98593
  const provider = GetReadWriteProvider(providers);
97433
98594
  return this.CreateRecord('MJ: Tags', input, provider, userPayload, pubSub);
@@ -97514,6 +98675,15 @@ __decorate([
97514
98675
  __metadata("design:paramtypes", [MJTag_, Object, PubSubEngine]),
97515
98676
  __metadata("design:returntype", Promise)
97516
98677
  ], MJTagResolver.prototype, "MJContentItemTags_TagIDArray", null);
98678
+ __decorate([
98679
+ FieldResolver(() => [MJTagSynonym_]),
98680
+ __param(0, Root()),
98681
+ __param(1, Ctx()),
98682
+ __param(2, PubSub()),
98683
+ __metadata("design:type", Function),
98684
+ __metadata("design:paramtypes", [MJTag_, Object, PubSubEngine]),
98685
+ __metadata("design:returntype", Promise)
98686
+ ], MJTagResolver.prototype, "MJTagSynonyms_TagIDArray", null);
97517
98687
  __decorate([
97518
98688
  FieldResolver(() => [MJTagAuditLog_]),
97519
98689
  __param(0, Root()),
@@ -97533,14 +98703,23 @@ __decorate([
97533
98703
  __metadata("design:returntype", Promise)
97534
98704
  ], MJTagResolver.prototype, "MJTagCoOccurrences_TagAIDArray", null);
97535
98705
  __decorate([
97536
- FieldResolver(() => [MJTag_]),
98706
+ FieldResolver(() => [MJTagScope_]),
97537
98707
  __param(0, Root()),
97538
98708
  __param(1, Ctx()),
97539
98709
  __param(2, PubSub()),
97540
98710
  __metadata("design:type", Function),
97541
98711
  __metadata("design:paramtypes", [MJTag_, Object, PubSubEngine]),
97542
98712
  __metadata("design:returntype", Promise)
97543
- ], MJTagResolver.prototype, "MJTags_MergedIntoTagIDArray", null);
98713
+ ], MJTagResolver.prototype, "MJTagScopes_TagIDArray", null);
98714
+ __decorate([
98715
+ FieldResolver(() => [MJTagSuggestion_]),
98716
+ __param(0, Root()),
98717
+ __param(1, Ctx()),
98718
+ __param(2, PubSub()),
98719
+ __metadata("design:type", Function),
98720
+ __metadata("design:paramtypes", [MJTag_, Object, PubSubEngine]),
98721
+ __metadata("design:returntype", Promise)
98722
+ ], MJTagResolver.prototype, "MJTagSuggestions_ProposedParentIDArray", null);
97544
98723
  __decorate([
97545
98724
  FieldResolver(() => [MJTagAuditLog_]),
97546
98725
  __param(0, Root()),
@@ -97550,6 +98729,33 @@ __decorate([
97550
98729
  __metadata("design:paramtypes", [MJTag_, Object, PubSubEngine]),
97551
98730
  __metadata("design:returntype", Promise)
97552
98731
  ], MJTagResolver.prototype, "MJTagAuditLogs_TagIDArray", null);
98732
+ __decorate([
98733
+ FieldResolver(() => [MJTag_]),
98734
+ __param(0, Root()),
98735
+ __param(1, Ctx()),
98736
+ __param(2, PubSub()),
98737
+ __metadata("design:type", Function),
98738
+ __metadata("design:paramtypes", [MJTag_, Object, PubSubEngine]),
98739
+ __metadata("design:returntype", Promise)
98740
+ ], MJTagResolver.prototype, "MJTags_MergedIntoTagIDArray", null);
98741
+ __decorate([
98742
+ FieldResolver(() => [MJTagSuggestion_]),
98743
+ __param(0, Root()),
98744
+ __param(1, Ctx()),
98745
+ __param(2, PubSub()),
98746
+ __metadata("design:type", Function),
98747
+ __metadata("design:paramtypes", [MJTag_, Object, PubSubEngine]),
98748
+ __metadata("design:returntype", Promise)
98749
+ ], MJTagResolver.prototype, "MJTagSuggestions_BestMatchTagIDArray", null);
98750
+ __decorate([
98751
+ FieldResolver(() => [MJTagSuggestion_]),
98752
+ __param(0, Root()),
98753
+ __param(1, Ctx()),
98754
+ __param(2, PubSub()),
98755
+ __metadata("design:type", Function),
98756
+ __metadata("design:paramtypes", [MJTag_, Object, PubSubEngine]),
98757
+ __metadata("design:returntype", Promise)
98758
+ ], MJTagResolver.prototype, "MJTagSuggestions_ResolvedTagIDArray", null);
97553
98759
  __decorate([
97554
98760
  Mutation(() => MJTag_),
97555
98761
  __param(0, Arg('input', () => CreateMJTagInput)),
@@ -108422,14 +109628,14 @@ __decorate([
108422
109628
  Field(() => [MJOAuthAuthorizationState_]),
108423
109629
  __metadata("design:type", Array)
108424
109630
  ], MJUser_.prototype, "MJOAuthAuthorizationStates_UserIDArray", void 0);
108425
- __decorate([
108426
- Field(() => [MJOpenApp_]),
108427
- __metadata("design:type", Array)
108428
- ], MJUser_.prototype, "MJOpenApps_InstalledByUserIDArray", void 0);
108429
109631
  __decorate([
108430
109632
  Field(() => [MJOpenAppInstallHistory_]),
108431
109633
  __metadata("design:type", Array)
108432
109634
  ], MJUser_.prototype, "MJOpenAppInstallHistories_ExecutedByUserIDArray", void 0);
109635
+ __decorate([
109636
+ Field(() => [MJOpenApp_]),
109637
+ __metadata("design:type", Array)
109638
+ ], MJUser_.prototype, "MJOpenApps_InstalledByUserIDArray", void 0);
108433
109639
  __decorate([
108434
109640
  Field(() => [MJContentItemDuplicate_]),
108435
109641
  __metadata("design:type", Array)
@@ -108458,6 +109664,10 @@ __decorate([
108458
109664
  Field(() => [MJResourcePermission_]),
108459
109665
  __metadata("design:type", Array)
108460
109666
  ], MJUser_.prototype, "MJResourcePermissions_SharedByUserIDArray", void 0);
109667
+ __decorate([
109668
+ Field(() => [MJTagSuggestion_]),
109669
+ __metadata("design:type", Array)
109670
+ ], MJUser_.prototype, "MJTagSuggestions_ReviewedByUserIDArray", void 0);
108461
109671
  __decorate([
108462
109672
  Field(() => [MJResourcePermission_]),
108463
109673
  __metadata("design:type", Array)
@@ -109235,14 +110445,6 @@ let MJUserResolverBase = class MJUserResolverBase extends ResolverBase {
109235
110445
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: O Auth Authorization States', rows, this.GetUserFromPayload(userPayload));
109236
110446
  return result;
109237
110447
  }
109238
- async MJOpenApps_InstalledByUserIDArray(mjuser_, { userPayload, providers }, pubSub) {
109239
- this.CheckUserReadPermissions('MJ: Open Apps', userPayload);
109240
- const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
109241
- const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwOpenApps')} WHERE ${provider.QuoteIdentifier('InstalledByUserID')}='${mjuser_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Open Apps', userPayload, EntityPermissionType.Read, 'AND');
109242
- const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
109243
- const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Open Apps', rows, this.GetUserFromPayload(userPayload));
109244
- return result;
109245
- }
109246
110448
  async MJOpenAppInstallHistories_ExecutedByUserIDArray(mjuser_, { userPayload, providers }, pubSub) {
109247
110449
  this.CheckUserReadPermissions('MJ: Open App Install Histories', userPayload);
109248
110450
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
@@ -109251,6 +110453,14 @@ let MJUserResolverBase = class MJUserResolverBase extends ResolverBase {
109251
110453
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Open App Install Histories', rows, this.GetUserFromPayload(userPayload));
109252
110454
  return result;
109253
110455
  }
110456
+ async MJOpenApps_InstalledByUserIDArray(mjuser_, { userPayload, providers }, pubSub) {
110457
+ this.CheckUserReadPermissions('MJ: Open Apps', userPayload);
110458
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
110459
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwOpenApps')} WHERE ${provider.QuoteIdentifier('InstalledByUserID')}='${mjuser_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Open Apps', userPayload, EntityPermissionType.Read, 'AND');
110460
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
110461
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Open Apps', rows, this.GetUserFromPayload(userPayload));
110462
+ return result;
110463
+ }
109254
110464
  async MJContentItemDuplicates_ResolvedByUserIDArray(mjuser_, { userPayload, providers }, pubSub) {
109255
110465
  this.CheckUserReadPermissions('MJ: Content Item Duplicates', userPayload);
109256
110466
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
@@ -109307,6 +110517,14 @@ let MJUserResolverBase = class MJUserResolverBase extends ResolverBase {
109307
110517
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Resource Permissions', rows, this.GetUserFromPayload(userPayload));
109308
110518
  return result;
109309
110519
  }
110520
+ async MJTagSuggestions_ReviewedByUserIDArray(mjuser_, { userPayload, providers }, pubSub) {
110521
+ this.CheckUserReadPermissions('MJ: Tag Suggestions', userPayload);
110522
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
110523
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTagSuggestions')} WHERE ${provider.QuoteIdentifier('ReviewedByUserID')}='${mjuser_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tag Suggestions', userPayload, EntityPermissionType.Read, 'AND');
110524
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
110525
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Suggestions', rows, this.GetUserFromPayload(userPayload));
110526
+ return result;
110527
+ }
109310
110528
  async MJResourcePermissions_UserIDArray(mjuser_, { userPayload, providers }, pubSub) {
109311
110529
  this.CheckUserReadPermissions('MJ: Resource Permissions', userPayload);
109312
110530
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
@@ -110088,23 +111306,23 @@ __decorate([
110088
111306
  __metadata("design:returntype", Promise)
110089
111307
  ], MJUserResolverBase.prototype, "MJOAuthAuthorizationStates_UserIDArray", null);
110090
111308
  __decorate([
110091
- FieldResolver(() => [MJOpenApp_]),
111309
+ FieldResolver(() => [MJOpenAppInstallHistory_]),
110092
111310
  __param(0, Root()),
110093
111311
  __param(1, Ctx()),
110094
111312
  __param(2, PubSub()),
110095
111313
  __metadata("design:type", Function),
110096
111314
  __metadata("design:paramtypes", [MJUser_, Object, PubSubEngine]),
110097
111315
  __metadata("design:returntype", Promise)
110098
- ], MJUserResolverBase.prototype, "MJOpenApps_InstalledByUserIDArray", null);
111316
+ ], MJUserResolverBase.prototype, "MJOpenAppInstallHistories_ExecutedByUserIDArray", null);
110099
111317
  __decorate([
110100
- FieldResolver(() => [MJOpenAppInstallHistory_]),
111318
+ FieldResolver(() => [MJOpenApp_]),
110101
111319
  __param(0, Root()),
110102
111320
  __param(1, Ctx()),
110103
111321
  __param(2, PubSub()),
110104
111322
  __metadata("design:type", Function),
110105
111323
  __metadata("design:paramtypes", [MJUser_, Object, PubSubEngine]),
110106
111324
  __metadata("design:returntype", Promise)
110107
- ], MJUserResolverBase.prototype, "MJOpenAppInstallHistories_ExecutedByUserIDArray", null);
111325
+ ], MJUserResolverBase.prototype, "MJOpenApps_InstalledByUserIDArray", null);
110108
111326
  __decorate([
110109
111327
  FieldResolver(() => [MJContentItemDuplicate_]),
110110
111328
  __param(0, Root()),
@@ -110168,6 +111386,15 @@ __decorate([
110168
111386
  __metadata("design:paramtypes", [MJUser_, Object, PubSubEngine]),
110169
111387
  __metadata("design:returntype", Promise)
110170
111388
  ], MJUserResolverBase.prototype, "MJResourcePermissions_SharedByUserIDArray", null);
111389
+ __decorate([
111390
+ FieldResolver(() => [MJTagSuggestion_]),
111391
+ __param(0, Root()),
111392
+ __param(1, Ctx()),
111393
+ __param(2, PubSub()),
111394
+ __metadata("design:type", Function),
111395
+ __metadata("design:paramtypes", [MJUser_, Object, PubSubEngine]),
111396
+ __metadata("design:returntype", Promise)
111397
+ ], MJUserResolverBase.prototype, "MJTagSuggestions_ReviewedByUserIDArray", null);
110171
111398
  __decorate([
110172
111399
  FieldResolver(() => [MJResourcePermission_]),
110173
111400
  __param(0, Root()),