@memberjunction/server 5.38.0 → 5.39.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 (108) hide show
  1. package/README.md +67 -0
  2. package/dist/apolloServer/index.d.ts +0 -8
  3. package/dist/apolloServer/index.d.ts.map +1 -1
  4. package/dist/apolloServer/index.js +61 -0
  5. package/dist/apolloServer/index.js.map +1 -1
  6. package/dist/config.d.ts +68 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +24 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/context.d.ts.map +1 -1
  11. package/dist/context.js +2 -21
  12. package/dist/context.js.map +1 -1
  13. package/dist/generated/generated.d.ts +75 -0
  14. package/dist/generated/generated.d.ts.map +1 -1
  15. package/dist/generated/generated.js +314 -1
  16. package/dist/generated/generated.js.map +1 -1
  17. package/dist/generic/FireAndForgetHeartbeat.d.ts +51 -0
  18. package/dist/generic/FireAndForgetHeartbeat.d.ts.map +1 -0
  19. package/dist/generic/FireAndForgetHeartbeat.js +44 -0
  20. package/dist/generic/FireAndForgetHeartbeat.js.map +1 -0
  21. package/dist/index.d.ts +3 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +120 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/logging/NoLog.d.ts +50 -0
  26. package/dist/logging/NoLog.d.ts.map +1 -0
  27. package/dist/logging/NoLog.js +80 -0
  28. package/dist/logging/NoLog.js.map +1 -0
  29. package/dist/logging/bootAudit.d.ts +43 -0
  30. package/dist/logging/bootAudit.d.ts.map +1 -0
  31. package/dist/logging/bootAudit.js +83 -0
  32. package/dist/logging/bootAudit.js.map +1 -0
  33. package/dist/logging/boundaryLogPayload.d.ts +18 -0
  34. package/dist/logging/boundaryLogPayload.d.ts.map +1 -0
  35. package/dist/logging/boundaryLogPayload.js +18 -0
  36. package/dist/logging/boundaryLogPayload.js.map +1 -0
  37. package/dist/logging/secretRedactor.d.ts +23 -0
  38. package/dist/logging/secretRedactor.d.ts.map +1 -0
  39. package/dist/logging/secretRedactor.js +53 -0
  40. package/dist/logging/secretRedactor.js.map +1 -0
  41. package/dist/logging/shortenForLog.d.ts +8 -0
  42. package/dist/logging/shortenForLog.d.ts.map +1 -0
  43. package/dist/logging/shortenForLog.js +21 -0
  44. package/dist/logging/shortenForLog.js.map +1 -0
  45. package/dist/logging/variablesLoggingMiddleware.d.ts +22 -0
  46. package/dist/logging/variablesLoggingMiddleware.d.ts.map +1 -0
  47. package/dist/logging/variablesLoggingMiddleware.js +127 -0
  48. package/dist/logging/variablesLoggingMiddleware.js.map +1 -0
  49. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  50. package/dist/resolvers/GetDataResolver.js +8 -4
  51. package/dist/resolvers/GetDataResolver.js.map +1 -1
  52. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts +259 -2
  53. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
  54. package/dist/resolvers/IntegrationDiscoveryResolver.js +1276 -117
  55. package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
  56. package/dist/resolvers/IntegrationProgressResolver.d.ts +90 -0
  57. package/dist/resolvers/IntegrationProgressResolver.d.ts.map +1 -0
  58. package/dist/resolvers/IntegrationProgressResolver.js +196 -0
  59. package/dist/resolvers/IntegrationProgressResolver.js.map +1 -0
  60. package/dist/resolvers/MCPResolver.d.ts.map +1 -1
  61. package/dist/resolvers/MCPResolver.js +19 -14
  62. package/dist/resolvers/MCPResolver.js.map +1 -1
  63. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  64. package/dist/resolvers/RunAIAgentResolver.js +26 -5
  65. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  66. package/dist/resolvers/RunTestResolver.d.ts.map +1 -1
  67. package/dist/resolvers/RunTestResolver.js +12 -2
  68. package/dist/resolvers/RunTestResolver.js.map +1 -1
  69. package/dist/resolvers/SearchEntitiesResolver.d.ts +46 -0
  70. package/dist/resolvers/SearchEntitiesResolver.d.ts.map +1 -0
  71. package/dist/resolvers/SearchEntitiesResolver.js +216 -0
  72. package/dist/resolvers/SearchEntitiesResolver.js.map +1 -0
  73. package/dist/resolvers/VectorizeEntityResolver.d.ts.map +1 -1
  74. package/dist/resolvers/VectorizeEntityResolver.js +14 -1
  75. package/dist/resolvers/VectorizeEntityResolver.js.map +1 -1
  76. package/dist/services/ScheduledJobsService.d.ts.map +1 -1
  77. package/dist/services/ScheduledJobsService.js +14 -2
  78. package/dist/services/ScheduledJobsService.js.map +1 -1
  79. package/package.json +75 -74
  80. package/src/__tests__/NoLog.test.ts +76 -0
  81. package/src/__tests__/bootAudit.test.ts +188 -0
  82. package/src/__tests__/boundaryLogPayload.test.ts +31 -0
  83. package/src/__tests__/getDataTokenRedaction.test.ts +84 -0
  84. package/src/__tests__/secretRedactor.test.ts +163 -0
  85. package/src/__tests__/subscriptionRedaction.test.ts +217 -0
  86. package/src/apolloServer/index.ts +58 -0
  87. package/src/config.ts +27 -0
  88. package/src/context.ts +2 -19
  89. package/src/generated/generated.ts +239 -1
  90. package/src/generic/FireAndForgetHeartbeat.ts +85 -0
  91. package/src/generic/__tests__/FireAndForgetHeartbeat.test.ts +99 -0
  92. package/src/index.ts +137 -2
  93. package/src/logging/NoLog.ts +88 -0
  94. package/src/logging/bootAudit.ts +117 -0
  95. package/src/logging/boundaryLogPayload.ts +19 -0
  96. package/src/logging/secretRedactor.ts +82 -0
  97. package/src/logging/shortenForLog.ts +17 -0
  98. package/src/logging/variablesLoggingMiddleware.ts +191 -0
  99. package/src/resolvers/GetDataResolver.ts +9 -5
  100. package/src/resolvers/IntegrationDiscoveryResolver.ts +1111 -120
  101. package/src/resolvers/IntegrationProgressResolver.ts +220 -0
  102. package/src/resolvers/MCPResolver.ts +18 -14
  103. package/src/resolvers/RunAIAgentResolver.ts +28 -5
  104. package/src/resolvers/RunTestResolver.ts +14 -2
  105. package/src/resolvers/SearchEntitiesResolver.ts +173 -0
  106. package/src/resolvers/VectorizeEntityResolver.ts +14 -1
  107. package/src/resolvers/__tests__/IntegrationProgressResolver.test.ts +170 -0
  108. package/src/services/ScheduledJobsService.ts +15 -2
@@ -10957,6 +10957,14 @@ __decorate([
10957
10957
  MaxLength(36),
10958
10958
  __metadata("design:type", String)
10959
10959
  ], MJAIAgentRun_.prototype, "CompanyID", void 0);
10960
+ __decorate([
10961
+ Field(() => Int, { nullable: true, description: `Total input tokens served from the AI provider's prompt cache (cache reads / hits) across this agent run, summed from child prompt runs' TokensCacheReadRollup and sub-agent runs' TotalCacheReadTokensUsed. Counts only; the cost impact (cache reads are billed at a steep discount) is reflected in TotalCost. The cache counterpart of TotalPromptTokensUsed.` }),
10962
+ __metadata("design:type", Number)
10963
+ ], MJAIAgentRun_.prototype, "TotalCacheReadTokensUsed", void 0);
10964
+ __decorate([
10965
+ Field(() => Int, { nullable: true, description: `Total input tokens written to the AI provider's prompt cache (cache writes / creation) across this agent run, summed from child prompt runs' TokensCacheWriteRollup and sub-agent runs' TotalCacheWriteTokensUsed. Populated for providers that bill cache creation (e.g. Anthropic); 0 or NULL otherwise. The cache counterpart of TotalCompletionTokensUsed.` }),
10966
+ __metadata("design:type", Number)
10967
+ ], MJAIAgentRun_.prototype, "TotalCacheWriteTokensUsed", void 0);
10960
10968
  __decorate([
10961
10969
  Field({ nullable: true }),
10962
10970
  MaxLength(255),
@@ -11247,6 +11255,14 @@ __decorate([
11247
11255
  Field({ nullable: true }),
11248
11256
  __metadata("design:type", String)
11249
11257
  ], CreateMJAIAgentRunInput.prototype, "CompanyID", void 0);
11258
+ __decorate([
11259
+ Field(() => Int, { nullable: true }),
11260
+ __metadata("design:type", Number)
11261
+ ], CreateMJAIAgentRunInput.prototype, "TotalCacheReadTokensUsed", void 0);
11262
+ __decorate([
11263
+ Field(() => Int, { nullable: true }),
11264
+ __metadata("design:type", Number)
11265
+ ], CreateMJAIAgentRunInput.prototype, "TotalCacheWriteTokensUsed", void 0);
11250
11266
  __decorate([
11251
11267
  Field(() => RestoreContextInput, { nullable: true }),
11252
11268
  __metadata("design:type", RestoreContextInput)
@@ -11436,6 +11452,14 @@ __decorate([
11436
11452
  Field({ nullable: true }),
11437
11453
  __metadata("design:type", String)
11438
11454
  ], UpdateMJAIAgentRunInput.prototype, "CompanyID", void 0);
11455
+ __decorate([
11456
+ Field(() => Int, { nullable: true }),
11457
+ __metadata("design:type", Number)
11458
+ ], UpdateMJAIAgentRunInput.prototype, "TotalCacheReadTokensUsed", void 0);
11459
+ __decorate([
11460
+ Field(() => Int, { nullable: true }),
11461
+ __metadata("design:type", Number)
11462
+ ], UpdateMJAIAgentRunInput.prototype, "TotalCacheWriteTokensUsed", void 0);
11439
11463
  __decorate([
11440
11464
  Field(() => [KeyValuePairInput], { nullable: true }),
11441
11465
  __metadata("design:type", Array)
@@ -17689,6 +17713,14 @@ __decorate([
17689
17713
  Field(),
17690
17714
  __metadata("design:type", Date)
17691
17715
  ], MJAIModelCost_.prototype, "_mj__UpdatedAt", void 0);
17716
+ __decorate([
17717
+ Field(() => Float, { nullable: true, description: `Optional price per unit for input tokens served from the AI provider's prompt cache (cache reads / hits), expressed in the same currency and UnitType (e.g. per 1M tokens) as InputPricePerUnit. When NULL, cache-read tokens are priced at InputPricePerUnit. Cache reads are usually far cheaper than uncached input (e.g. ~0.1x for Anthropic/Gemini, ~0.5x for OpenAI).` }),
17718
+ __metadata("design:type", Number)
17719
+ ], MJAIModelCost_.prototype, "CacheReadPricePerUnit", void 0);
17720
+ __decorate([
17721
+ Field(() => Float, { nullable: true, description: `Optional price per unit for input tokens written to the AI provider's prompt cache (cache writes / creation), expressed in the same currency and UnitType as InputPricePerUnit. When NULL, cache-write tokens are priced at InputPricePerUnit. Populated for providers that bill cache creation separately (e.g. Anthropic, ~1.25x input); leave NULL for providers that do not (OpenAI, Gemini), which also report 0 cache-write tokens.` }),
17722
+ __metadata("design:type", Number)
17723
+ ], MJAIModelCost_.prototype, "CacheWritePricePerUnit", void 0);
17692
17724
  __decorate([
17693
17725
  Field(),
17694
17726
  MaxLength(50),
@@ -17770,6 +17802,14 @@ __decorate([
17770
17802
  Field({ nullable: true }),
17771
17803
  __metadata("design:type", String)
17772
17804
  ], CreateMJAIModelCostInput.prototype, "Comments", void 0);
17805
+ __decorate([
17806
+ Field(() => Float, { nullable: true }),
17807
+ __metadata("design:type", Number)
17808
+ ], CreateMJAIModelCostInput.prototype, "CacheReadPricePerUnit", void 0);
17809
+ __decorate([
17810
+ Field(() => Float, { nullable: true }),
17811
+ __metadata("design:type", Number)
17812
+ ], CreateMJAIModelCostInput.prototype, "CacheWritePricePerUnit", void 0);
17773
17813
  __decorate([
17774
17814
  Field(() => RestoreContextInput, { nullable: true }),
17775
17815
  __metadata("design:type", RestoreContextInput)
@@ -17835,6 +17875,14 @@ __decorate([
17835
17875
  Field({ nullable: true }),
17836
17876
  __metadata("design:type", String)
17837
17877
  ], UpdateMJAIModelCostInput.prototype, "Comments", void 0);
17878
+ __decorate([
17879
+ Field(() => Float, { nullable: true }),
17880
+ __metadata("design:type", Number)
17881
+ ], UpdateMJAIModelCostInput.prototype, "CacheReadPricePerUnit", void 0);
17882
+ __decorate([
17883
+ Field(() => Float, { nullable: true }),
17884
+ __metadata("design:type", Number)
17885
+ ], UpdateMJAIModelCostInput.prototype, "CacheWritePricePerUnit", void 0);
17838
17886
  __decorate([
17839
17887
  Field(() => [KeyValuePairInput], { nullable: true }),
17840
17888
  __metadata("design:type", Array)
@@ -22045,6 +22093,22 @@ __decorate([
22045
22093
  Field({ nullable: true, description: `The assistant prefill text that was used during this prompt execution. Records whether native prefill or fallback was applied. NULL means no prefill was used.` }),
22046
22094
  __metadata("design:type", String)
22047
22095
  ], MJAIPromptRun_.prototype, "AssistantPrefill", void 0);
22096
+ __decorate([
22097
+ Field(() => Int, { nullable: true, description: `Number of input tokens served from the AI provider's prompt cache (a cache READ / hit) for this run, as reported by the provider. Counts only; no cost is derived here. NULL if the provider did not report cache reads or caching did not engage. Distinct from CacheHit/CacheKey, which track MemberJunction's own result cache.` }),
22098
+ __metadata("design:type", Number)
22099
+ ], MJAIPromptRun_.prototype, "TokensCacheRead", void 0);
22100
+ __decorate([
22101
+ Field(() => Int, { nullable: true, description: `Number of input tokens written to the AI provider's prompt cache (a cache WRITE / creation) for this run, as reported by the provider. Populated for providers that report cache writes (e.g. Anthropic cache_creation_input_tokens); NULL or 0 for providers that do not bill/report writes (OpenAI, Gemini, Groq, Cerebras). Counts only; no cost is derived here.` }),
22102
+ __metadata("design:type", Number)
22103
+ ], MJAIPromptRun_.prototype, "TokensCacheWrite", void 0);
22104
+ __decorate([
22105
+ Field(() => Int, { nullable: true, description: `Rollup of TokensCacheRead across this prompt run and all of its descendant prompt runs (e.g. the individual attempts behind a parallel / multi-attempt / failover consolidation). For a leaf run this equals TokensCacheRead. Use this (not TokensCacheRead) when aggregating cache reads up a prompt-run or agent-run hierarchy so fan-out provider calls are not under-counted.` }),
22106
+ __metadata("design:type", Number)
22107
+ ], MJAIPromptRun_.prototype, "TokensCacheReadRollup", void 0);
22108
+ __decorate([
22109
+ Field(() => Int, { nullable: true, description: `Rollup of TokensCacheWrite across this prompt run and all of its descendant prompt runs. For a leaf run this equals TokensCacheWrite. Mirrors TokensUsedRollup/TokensPromptRollup; populated for providers that report cache writes (e.g. Anthropic), otherwise 0 or NULL.` }),
22110
+ __metadata("design:type", Number)
22111
+ ], MJAIPromptRun_.prototype, "TokensCacheWriteRollup", void 0);
22048
22112
  __decorate([
22049
22113
  Field(),
22050
22114
  MaxLength(255),
@@ -22476,6 +22540,22 @@ __decorate([
22476
22540
  Field({ nullable: true }),
22477
22541
  __metadata("design:type", String)
22478
22542
  ], CreateMJAIPromptRunInput.prototype, "AssistantPrefill", void 0);
22543
+ __decorate([
22544
+ Field(() => Int, { nullable: true }),
22545
+ __metadata("design:type", Number)
22546
+ ], CreateMJAIPromptRunInput.prototype, "TokensCacheRead", void 0);
22547
+ __decorate([
22548
+ Field(() => Int, { nullable: true }),
22549
+ __metadata("design:type", Number)
22550
+ ], CreateMJAIPromptRunInput.prototype, "TokensCacheWrite", void 0);
22551
+ __decorate([
22552
+ Field(() => Int, { nullable: true }),
22553
+ __metadata("design:type", Number)
22554
+ ], CreateMJAIPromptRunInput.prototype, "TokensCacheReadRollup", void 0);
22555
+ __decorate([
22556
+ Field(() => Int, { nullable: true }),
22557
+ __metadata("design:type", Number)
22558
+ ], CreateMJAIPromptRunInput.prototype, "TokensCacheWriteRollup", void 0);
22479
22559
  __decorate([
22480
22560
  Field(() => RestoreContextInput, { nullable: true }),
22481
22561
  __metadata("design:type", RestoreContextInput)
@@ -22821,6 +22901,22 @@ __decorate([
22821
22901
  Field({ nullable: true }),
22822
22902
  __metadata("design:type", String)
22823
22903
  ], UpdateMJAIPromptRunInput.prototype, "AssistantPrefill", void 0);
22904
+ __decorate([
22905
+ Field(() => Int, { nullable: true }),
22906
+ __metadata("design:type", Number)
22907
+ ], UpdateMJAIPromptRunInput.prototype, "TokensCacheRead", void 0);
22908
+ __decorate([
22909
+ Field(() => Int, { nullable: true }),
22910
+ __metadata("design:type", Number)
22911
+ ], UpdateMJAIPromptRunInput.prototype, "TokensCacheWrite", void 0);
22912
+ __decorate([
22913
+ Field(() => Int, { nullable: true }),
22914
+ __metadata("design:type", Number)
22915
+ ], UpdateMJAIPromptRunInput.prototype, "TokensCacheReadRollup", void 0);
22916
+ __decorate([
22917
+ Field(() => Int, { nullable: true }),
22918
+ __metadata("design:type", Number)
22919
+ ], UpdateMJAIPromptRunInput.prototype, "TokensCacheWriteRollup", void 0);
22824
22920
  __decorate([
22825
22921
  Field(() => [KeyValuePairInput], { nullable: true }),
22826
22922
  __metadata("design:type", Array)
@@ -64425,7 +64521,7 @@ __decorate([
64425
64521
  __metadata("design:type", String)
64426
64522
  ], MJEntityField_.prototype, "ValueListType", void 0);
64427
64523
  __decorate([
64428
- Field({ nullable: true, description: `Defines extended behaviors for a field such as for Email, Web URLs, Code, etc.` }),
64524
+ Field({ nullable: true, description: `Defines extended behaviors for a field such as Email, Web URLs, Code, Markdown, HTML, and Icon. When set to 'Icon', the field's values are treated as icon CSS classes (e.g. Font Awesome) for per-row display in the UI.` }),
64429
64525
  MaxLength(50),
64430
64526
  __metadata("design:type", String)
64431
64527
  ], MJEntityField_.prototype, "ExtendedType", void 0);
@@ -72237,6 +72333,11 @@ __decorate([
72237
72333
  Field(() => Boolean, { description: `When true, this field was dynamically discovered by IntrospectSchema and is not defined in static connector metadata.` }),
72238
72334
  __metadata("design:type", Boolean)
72239
72335
  ], MJIntegrationObjectField_.prototype, "IsCustom", void 0);
72336
+ __decorate([
72337
+ Field({ description: `Provenance of this IntegrationObjectField row: Declared (from static research/docs), Discovered (from runtime API introspection), Custom (customer-defined custom field, e.g., HubSpot custom property on standard object). Drives merge precedence — discovered/runtime wins for type/constraints; declared wins for description/label/sequence/category.` }),
72338
+ MaxLength(20),
72339
+ __metadata("design:type", String)
72340
+ ], MJIntegrationObjectField_.prototype, "MetadataSource", void 0);
72240
72341
  __decorate([
72241
72342
  Field(),
72242
72343
  MaxLength(255),
@@ -72344,6 +72445,10 @@ __decorate([
72344
72445
  Field(() => Boolean, { nullable: true }),
72345
72446
  __metadata("design:type", Boolean)
72346
72447
  ], CreateMJIntegrationObjectFieldInput.prototype, "IsCustom", void 0);
72448
+ __decorate([
72449
+ Field({ nullable: true }),
72450
+ __metadata("design:type", String)
72451
+ ], CreateMJIntegrationObjectFieldInput.prototype, "MetadataSource", void 0);
72347
72452
  __decorate([
72348
72453
  Field(() => RestoreContextInput, { nullable: true }),
72349
72454
  __metadata("design:type", RestoreContextInput)
@@ -72445,6 +72550,10 @@ __decorate([
72445
72550
  Field(() => Boolean, { nullable: true }),
72446
72551
  __metadata("design:type", Boolean)
72447
72552
  ], UpdateMJIntegrationObjectFieldInput.prototype, "IsCustom", void 0);
72553
+ __decorate([
72554
+ Field({ nullable: true }),
72555
+ __metadata("design:type", String)
72556
+ ], UpdateMJIntegrationObjectFieldInput.prototype, "MetadataSource", void 0);
72448
72557
  __decorate([
72449
72558
  Field(() => [KeyValuePairInput], { nullable: true }),
72450
72559
  __metadata("design:type", Array)
@@ -72707,6 +72816,73 @@ __decorate([
72707
72816
  Field(() => Boolean, { description: `When true, this object was dynamically discovered by IntrospectSchema and is not defined in static connector metadata.` }),
72708
72817
  __metadata("design:type", Boolean)
72709
72818
  ], MJIntegrationObject_.prototype, "IsCustom", void 0);
72819
+ __decorate([
72820
+ Field({ nullable: true, description: `HTTP path template for create operations. Generic CRUD in BaseRESTIntegrationConnector substitutes parent IDs into {var} placeholders. NULL means create not supported via metadata-driven path.` }),
72821
+ __metadata("design:type", String)
72822
+ ], MJIntegrationObject_.prototype, "CreateAPIPath", void 0);
72823
+ __decorate([
72824
+ Field({ nullable: true, description: `HTTP method for create (typically POST). NULL means create not supported via metadata-driven path.` }),
72825
+ MaxLength(20),
72826
+ __metadata("design:type", String)
72827
+ ], MJIntegrationObject_.prototype, "CreateMethod", void 0);
72828
+ __decorate([
72829
+ Field({ nullable: true, description: `Request body shape for create: flat (top-level fields), wrapped (under CreateBodyKey), or literal (connector overrides CreateRecord and supplies own body).` }),
72830
+ MaxLength(50),
72831
+ __metadata("design:type", String)
72832
+ ], MJIntegrationObject_.prototype, "CreateBodyShape", void 0);
72833
+ __decorate([
72834
+ Field({ nullable: true, description: `Wrapper key for create body when CreateBodyShape=wrapped. Example: 'member' for YourMembership which wraps body as {member:{...}}.` }),
72835
+ MaxLength(100),
72836
+ __metadata("design:type", String)
72837
+ ], MJIntegrationObject_.prototype, "CreateBodyKey", void 0);
72838
+ __decorate([
72839
+ Field({ nullable: true, description: `Where the created record ID is found in the create response: path (URL of returned Location header), body (parsed from JSON response), header (specific named header).` }),
72840
+ MaxLength(20),
72841
+ __metadata("design:type", String)
72842
+ ], MJIntegrationObject_.prototype, "CreateIDLocation", void 0);
72843
+ __decorate([
72844
+ Field({ nullable: true, description: `HTTP path template for update operations. Typically contains {ID} placeholder substituted with the record ExternalID at runtime.` }),
72845
+ __metadata("design:type", String)
72846
+ ], MJIntegrationObject_.prototype, "UpdateAPIPath", void 0);
72847
+ __decorate([
72848
+ Field({ nullable: true, description: `HTTP method for update (typically PATCH or PUT).` }),
72849
+ MaxLength(20),
72850
+ __metadata("design:type", String)
72851
+ ], MJIntegrationObject_.prototype, "UpdateMethod", void 0);
72852
+ __decorate([
72853
+ Field({ nullable: true, description: `Request body shape for update: flat | wrapped | literal. See CreateBodyShape.` }),
72854
+ MaxLength(50),
72855
+ __metadata("design:type", String)
72856
+ ], MJIntegrationObject_.prototype, "UpdateBodyShape", void 0);
72857
+ __decorate([
72858
+ Field({ nullable: true, description: `Wrapper key for update body when UpdateBodyShape=wrapped.` }),
72859
+ MaxLength(100),
72860
+ __metadata("design:type", String)
72861
+ ], MJIntegrationObject_.prototype, "UpdateBodyKey", void 0);
72862
+ __decorate([
72863
+ Field({ nullable: true, description: `For update: where the target record ID is located in the request — typically 'path' (substituted into UpdateAPIPath URL template).` }),
72864
+ MaxLength(20),
72865
+ __metadata("design:type", String)
72866
+ ], MJIntegrationObject_.prototype, "UpdateIDLocation", void 0);
72867
+ __decorate([
72868
+ Field({ nullable: true, description: `HTTP path template for delete operations. Typically contains {ID} placeholder. NULL means delete not supported via metadata-driven path. (Existing DeleteMethod column carries the verb.)` }),
72869
+ __metadata("design:type", String)
72870
+ ], MJIntegrationObject_.prototype, "DeleteAPIPath", void 0);
72871
+ __decorate([
72872
+ Field({ nullable: true, description: `For delete: where the target record ID is located — typically 'path'.` }),
72873
+ MaxLength(20),
72874
+ __metadata("design:type", String)
72875
+ ], MJIntegrationObject_.prototype, "DeleteIDLocation", void 0);
72876
+ __decorate([
72877
+ Field({ nullable: true, description: `Vendor field name marking "last changed" — drives incremental sync filter when SupportsIncrementalSync=1. The exact filter syntax (e.g., $filter=Modified gt {value} or modified_since={value}) lives in Configuration.incrementalFilterFormat. Provable-only: leave NULL if docs do not name a watermark field.` }),
72878
+ MaxLength(255),
72879
+ __metadata("design:type", String)
72880
+ ], MJIntegrationObject_.prototype, "IncrementalWatermarkField", void 0);
72881
+ __decorate([
72882
+ Field({ description: `Provenance of this IntegrationObject row: Declared (from static research/docs), Discovered (from runtime API introspection like Salesforce /describe), Custom (genuinely customer-created, e.g., HubSpot custom objects). Drives merge precedence in IntegrationSchemaSync.` }),
72883
+ MaxLength(20),
72884
+ __metadata("design:type", String)
72885
+ ], MJIntegrationObject_.prototype, "MetadataSource", void 0);
72710
72886
  __decorate([
72711
72887
  Field(),
72712
72888
  MaxLength(100),
@@ -72813,6 +72989,62 @@ __decorate([
72813
72989
  Field(() => Boolean, { nullable: true }),
72814
72990
  __metadata("design:type", Boolean)
72815
72991
  ], CreateMJIntegrationObjectInput.prototype, "IsCustom", void 0);
72992
+ __decorate([
72993
+ Field({ nullable: true }),
72994
+ __metadata("design:type", String)
72995
+ ], CreateMJIntegrationObjectInput.prototype, "CreateAPIPath", void 0);
72996
+ __decorate([
72997
+ Field({ nullable: true }),
72998
+ __metadata("design:type", String)
72999
+ ], CreateMJIntegrationObjectInput.prototype, "CreateMethod", void 0);
73000
+ __decorate([
73001
+ Field({ nullable: true }),
73002
+ __metadata("design:type", String)
73003
+ ], CreateMJIntegrationObjectInput.prototype, "CreateBodyShape", void 0);
73004
+ __decorate([
73005
+ Field({ nullable: true }),
73006
+ __metadata("design:type", String)
73007
+ ], CreateMJIntegrationObjectInput.prototype, "CreateBodyKey", void 0);
73008
+ __decorate([
73009
+ Field({ nullable: true }),
73010
+ __metadata("design:type", String)
73011
+ ], CreateMJIntegrationObjectInput.prototype, "CreateIDLocation", void 0);
73012
+ __decorate([
73013
+ Field({ nullable: true }),
73014
+ __metadata("design:type", String)
73015
+ ], CreateMJIntegrationObjectInput.prototype, "UpdateAPIPath", void 0);
73016
+ __decorate([
73017
+ Field({ nullable: true }),
73018
+ __metadata("design:type", String)
73019
+ ], CreateMJIntegrationObjectInput.prototype, "UpdateMethod", void 0);
73020
+ __decorate([
73021
+ Field({ nullable: true }),
73022
+ __metadata("design:type", String)
73023
+ ], CreateMJIntegrationObjectInput.prototype, "UpdateBodyShape", void 0);
73024
+ __decorate([
73025
+ Field({ nullable: true }),
73026
+ __metadata("design:type", String)
73027
+ ], CreateMJIntegrationObjectInput.prototype, "UpdateBodyKey", void 0);
73028
+ __decorate([
73029
+ Field({ nullable: true }),
73030
+ __metadata("design:type", String)
73031
+ ], CreateMJIntegrationObjectInput.prototype, "UpdateIDLocation", void 0);
73032
+ __decorate([
73033
+ Field({ nullable: true }),
73034
+ __metadata("design:type", String)
73035
+ ], CreateMJIntegrationObjectInput.prototype, "DeleteAPIPath", void 0);
73036
+ __decorate([
73037
+ Field({ nullable: true }),
73038
+ __metadata("design:type", String)
73039
+ ], CreateMJIntegrationObjectInput.prototype, "DeleteIDLocation", void 0);
73040
+ __decorate([
73041
+ Field({ nullable: true }),
73042
+ __metadata("design:type", String)
73043
+ ], CreateMJIntegrationObjectInput.prototype, "IncrementalWatermarkField", void 0);
73044
+ __decorate([
73045
+ Field({ nullable: true }),
73046
+ __metadata("design:type", String)
73047
+ ], CreateMJIntegrationObjectInput.prototype, "MetadataSource", void 0);
72816
73048
  __decorate([
72817
73049
  Field(() => RestoreContextInput, { nullable: true }),
72818
73050
  __metadata("design:type", RestoreContextInput)
@@ -72910,6 +73142,62 @@ __decorate([
72910
73142
  Field(() => Boolean, { nullable: true }),
72911
73143
  __metadata("design:type", Boolean)
72912
73144
  ], UpdateMJIntegrationObjectInput.prototype, "IsCustom", void 0);
73145
+ __decorate([
73146
+ Field({ nullable: true }),
73147
+ __metadata("design:type", String)
73148
+ ], UpdateMJIntegrationObjectInput.prototype, "CreateAPIPath", void 0);
73149
+ __decorate([
73150
+ Field({ nullable: true }),
73151
+ __metadata("design:type", String)
73152
+ ], UpdateMJIntegrationObjectInput.prototype, "CreateMethod", void 0);
73153
+ __decorate([
73154
+ Field({ nullable: true }),
73155
+ __metadata("design:type", String)
73156
+ ], UpdateMJIntegrationObjectInput.prototype, "CreateBodyShape", void 0);
73157
+ __decorate([
73158
+ Field({ nullable: true }),
73159
+ __metadata("design:type", String)
73160
+ ], UpdateMJIntegrationObjectInput.prototype, "CreateBodyKey", void 0);
73161
+ __decorate([
73162
+ Field({ nullable: true }),
73163
+ __metadata("design:type", String)
73164
+ ], UpdateMJIntegrationObjectInput.prototype, "CreateIDLocation", void 0);
73165
+ __decorate([
73166
+ Field({ nullable: true }),
73167
+ __metadata("design:type", String)
73168
+ ], UpdateMJIntegrationObjectInput.prototype, "UpdateAPIPath", void 0);
73169
+ __decorate([
73170
+ Field({ nullable: true }),
73171
+ __metadata("design:type", String)
73172
+ ], UpdateMJIntegrationObjectInput.prototype, "UpdateMethod", void 0);
73173
+ __decorate([
73174
+ Field({ nullable: true }),
73175
+ __metadata("design:type", String)
73176
+ ], UpdateMJIntegrationObjectInput.prototype, "UpdateBodyShape", void 0);
73177
+ __decorate([
73178
+ Field({ nullable: true }),
73179
+ __metadata("design:type", String)
73180
+ ], UpdateMJIntegrationObjectInput.prototype, "UpdateBodyKey", void 0);
73181
+ __decorate([
73182
+ Field({ nullable: true }),
73183
+ __metadata("design:type", String)
73184
+ ], UpdateMJIntegrationObjectInput.prototype, "UpdateIDLocation", void 0);
73185
+ __decorate([
73186
+ Field({ nullable: true }),
73187
+ __metadata("design:type", String)
73188
+ ], UpdateMJIntegrationObjectInput.prototype, "DeleteAPIPath", void 0);
73189
+ __decorate([
73190
+ Field({ nullable: true }),
73191
+ __metadata("design:type", String)
73192
+ ], UpdateMJIntegrationObjectInput.prototype, "DeleteIDLocation", void 0);
73193
+ __decorate([
73194
+ Field({ nullable: true }),
73195
+ __metadata("design:type", String)
73196
+ ], UpdateMJIntegrationObjectInput.prototype, "IncrementalWatermarkField", void 0);
73197
+ __decorate([
73198
+ Field({ nullable: true }),
73199
+ __metadata("design:type", String)
73200
+ ], UpdateMJIntegrationObjectInput.prototype, "MetadataSource", void 0);
72913
73201
  __decorate([
72914
73202
  Field(() => [KeyValuePairInput], { nullable: true }),
72915
73203
  __metadata("design:type", Array)
@@ -95551,6 +95839,10 @@ __decorate([
95551
95839
  Field(),
95552
95840
  __metadata("design:type", Date)
95553
95841
  ], MJScheduledJob_.prototype, "_mj__UpdatedAt", void 0);
95842
+ __decorate([
95843
+ Field(() => Boolean, { description: `When true AND LastRunAt IS NULL, the scheduler sets NextRunAt to now() instead of the next cron tick on initialization, so the job runs on the next polling cycle. Useful for newly-seeded jobs that should not wait up to a full cron interval before their first execution.` }),
95844
+ __metadata("design:type", Boolean)
95845
+ ], MJScheduledJob_.prototype, "RunImmediatelyIfNeverRun", void 0);
95554
95846
  __decorate([
95555
95847
  Field(),
95556
95848
  MaxLength(100),
@@ -95687,6 +95979,10 @@ __decorate([
95687
95979
  Field({ nullable: true }),
95688
95980
  __metadata("design:type", String)
95689
95981
  ], CreateMJScheduledJobInput.prototype, "ConcurrencyMode", void 0);
95982
+ __decorate([
95983
+ Field(() => Boolean, { nullable: true }),
95984
+ __metadata("design:type", Boolean)
95985
+ ], CreateMJScheduledJobInput.prototype, "RunImmediatelyIfNeverRun", void 0);
95690
95986
  __decorate([
95691
95987
  Field(() => RestoreContextInput, { nullable: true }),
95692
95988
  __metadata("design:type", RestoreContextInput)
@@ -95804,6 +96100,10 @@ __decorate([
95804
96100
  Field({ nullable: true }),
95805
96101
  __metadata("design:type", String)
95806
96102
  ], UpdateMJScheduledJobInput.prototype, "ConcurrencyMode", void 0);
96103
+ __decorate([
96104
+ Field(() => Boolean, { nullable: true }),
96105
+ __metadata("design:type", Boolean)
96106
+ ], UpdateMJScheduledJobInput.prototype, "RunImmediatelyIfNeverRun", void 0);
95807
96107
  __decorate([
95808
96108
  Field(() => [KeyValuePairInput], { nullable: true }),
95809
96109
  __metadata("design:type", Array)
@@ -101359,6 +101659,11 @@ __decorate([
101359
101659
  Field(),
101360
101660
  __metadata("design:type", Date)
101361
101661
  ], MJTagSynonym_.prototype, "_mj__UpdatedAt", void 0);
101662
+ __decorate([
101663
+ Field({ description: `Approval state of the synonym. Active = resolves to its tag during classification. Pending = proposed (e.g. by the LLM or a bulk import) and awaiting human review; does not resolve until approved. Rejected = reviewed and declined; retained for audit and to suppress re-proposal.` }),
101664
+ MaxLength(20),
101665
+ __metadata("design:type", String)
101666
+ ], MJTagSynonym_.prototype, "Status", void 0);
101362
101667
  __decorate([
101363
101668
  Field(),
101364
101669
  MaxLength(255),
@@ -101389,6 +101694,10 @@ __decorate([
101389
101694
  Field({ nullable: true }),
101390
101695
  __metadata("design:type", String)
101391
101696
  ], CreateMJTagSynonymInput.prototype, "Source", void 0);
101697
+ __decorate([
101698
+ Field({ nullable: true }),
101699
+ __metadata("design:type", String)
101700
+ ], CreateMJTagSynonymInput.prototype, "Status", void 0);
101392
101701
  __decorate([
101393
101702
  Field(() => RestoreContextInput, { nullable: true }),
101394
101703
  __metadata("design:type", RestoreContextInput)
@@ -101418,6 +101727,10 @@ __decorate([
101418
101727
  Field({ nullable: true }),
101419
101728
  __metadata("design:type", String)
101420
101729
  ], UpdateMJTagSynonymInput.prototype, "Source", void 0);
101730
+ __decorate([
101731
+ Field({ nullable: true }),
101732
+ __metadata("design:type", String)
101733
+ ], UpdateMJTagSynonymInput.prototype, "Status", void 0);
101421
101734
  __decorate([
101422
101735
  Field(() => [KeyValuePairInput], { nullable: true }),
101423
101736
  __metadata("design:type", Array)