@okf/ootils 1.44.2 → 1.45.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.
- package/dist/browser.d.mts +71 -13
- package/dist/browser.d.ts +71 -13
- package/dist/browser.js +45 -0
- package/dist/browser.mjs +43 -0
- package/dist/node.d.mts +74 -13
- package/dist/node.d.ts +74 -13
- package/dist/node.js +54 -0
- package/dist/node.mjs +49 -0
- package/dist/universal.d.mts +71 -13
- package/dist/universal.d.ts +71 -13
- package/dist/universal.js +45 -0
- package/dist/universal.mjs +43 -0
- package/package.json +1 -1
package/dist/node.d.ts
CHANGED
|
@@ -775,7 +775,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
775
775
|
}
|
|
776
776
|
export { workerConfig_11 as workerConfig };
|
|
777
777
|
}
|
|
778
|
-
namespace
|
|
778
|
+
namespace CONTENT_DOC_COLAB_SESH_SIDE_EFFECTS_QUEUE {
|
|
779
779
|
let id_12: string;
|
|
780
780
|
export { id_12 as id };
|
|
781
781
|
export namespace queueConfig_12 {
|
|
@@ -815,7 +815,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
815
815
|
}
|
|
816
816
|
export { workerConfig_12 as workerConfig };
|
|
817
817
|
}
|
|
818
|
-
namespace
|
|
818
|
+
namespace SARVAM_TRANSCRIPTION_QUEUE {
|
|
819
819
|
let id_13: string;
|
|
820
820
|
export { id_13 as id };
|
|
821
821
|
export namespace queueConfig_13 {
|
|
@@ -855,7 +855,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
855
855
|
}
|
|
856
856
|
export { workerConfig_13 as workerConfig };
|
|
857
857
|
}
|
|
858
|
-
namespace
|
|
858
|
+
namespace INTERCOM_CONVERSATIONS_QUEUE {
|
|
859
859
|
let id_14: string;
|
|
860
860
|
export { id_14 as id };
|
|
861
861
|
export namespace queueConfig_14 {
|
|
@@ -895,7 +895,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
895
895
|
}
|
|
896
896
|
export { workerConfig_14 as workerConfig };
|
|
897
897
|
}
|
|
898
|
-
namespace
|
|
898
|
+
namespace TAG_SYNC_PLAN_QUEUE {
|
|
899
899
|
let id_15: string;
|
|
900
900
|
export { id_15 as id };
|
|
901
901
|
export namespace queueConfig_15 {
|
|
@@ -935,11 +935,13 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
935
935
|
}
|
|
936
936
|
export { workerConfig_15 as workerConfig };
|
|
937
937
|
}
|
|
938
|
-
namespace
|
|
938
|
+
namespace TAG_SYNC_BATCH_QUEUE {
|
|
939
939
|
let id_16: string;
|
|
940
940
|
export { id_16 as id };
|
|
941
941
|
export namespace queueConfig_16 {
|
|
942
942
|
export namespace defaultJobOptions_16 {
|
|
943
|
+
let attempts_16: number;
|
|
944
|
+
export { attempts_16 as attempts };
|
|
943
945
|
export namespace backoff_16 {
|
|
944
946
|
let type_16: string;
|
|
945
947
|
export { type_16 as type };
|
|
@@ -947,8 +949,6 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
947
949
|
export { delay_16 as delay };
|
|
948
950
|
}
|
|
949
951
|
export { backoff_16 as backoff };
|
|
950
|
-
let attempts_16: number;
|
|
951
|
-
export { attempts_16 as attempts };
|
|
952
952
|
let removeOnComplete_16: number;
|
|
953
953
|
export { removeOnComplete_16 as removeOnComplete };
|
|
954
954
|
let removeOnFail_16: number;
|
|
@@ -975,13 +975,11 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
975
975
|
}
|
|
976
976
|
export { workerConfig_16 as workerConfig };
|
|
977
977
|
}
|
|
978
|
-
namespace
|
|
978
|
+
namespace SCHEDULED_EXTERNAL_SYNC_QUEUE {
|
|
979
979
|
let id_17: string;
|
|
980
980
|
export { id_17 as id };
|
|
981
981
|
export namespace queueConfig_17 {
|
|
982
982
|
export namespace defaultJobOptions_17 {
|
|
983
|
-
let attempts_17: number;
|
|
984
|
-
export { attempts_17 as attempts };
|
|
985
983
|
export namespace backoff_17 {
|
|
986
984
|
let type_17: string;
|
|
987
985
|
export { type_17 as type };
|
|
@@ -989,8 +987,8 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
989
987
|
export { delay_17 as delay };
|
|
990
988
|
}
|
|
991
989
|
export { backoff_17 as backoff };
|
|
992
|
-
let
|
|
993
|
-
export {
|
|
990
|
+
let attempts_17: number;
|
|
991
|
+
export { attempts_17 as attempts };
|
|
994
992
|
let removeOnComplete_17: number;
|
|
995
993
|
export { removeOnComplete_17 as removeOnComplete };
|
|
996
994
|
let removeOnFail_17: number;
|
|
@@ -1017,6 +1015,48 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
1017
1015
|
}
|
|
1018
1016
|
export { workerConfig_17 as workerConfig };
|
|
1019
1017
|
}
|
|
1018
|
+
namespace REINDEX_QUEUE {
|
|
1019
|
+
let id_18: string;
|
|
1020
|
+
export { id_18 as id };
|
|
1021
|
+
export namespace queueConfig_18 {
|
|
1022
|
+
export namespace defaultJobOptions_18 {
|
|
1023
|
+
let attempts_18: number;
|
|
1024
|
+
export { attempts_18 as attempts };
|
|
1025
|
+
export namespace backoff_18 {
|
|
1026
|
+
let type_18: string;
|
|
1027
|
+
export { type_18 as type };
|
|
1028
|
+
let delay_18: number;
|
|
1029
|
+
export { delay_18 as delay };
|
|
1030
|
+
}
|
|
1031
|
+
export { backoff_18 as backoff };
|
|
1032
|
+
let delay_19: number;
|
|
1033
|
+
export { delay_19 as delay };
|
|
1034
|
+
let removeOnComplete_18: number;
|
|
1035
|
+
export { removeOnComplete_18 as removeOnComplete };
|
|
1036
|
+
let removeOnFail_18: number;
|
|
1037
|
+
export { removeOnFail_18 as removeOnFail };
|
|
1038
|
+
}
|
|
1039
|
+
export { defaultJobOptions_18 as defaultJobOptions };
|
|
1040
|
+
export namespace streams_18 {
|
|
1041
|
+
export namespace events_18 {
|
|
1042
|
+
let maxLen_18: number;
|
|
1043
|
+
export { maxLen_18 as maxLen };
|
|
1044
|
+
}
|
|
1045
|
+
export { events_18 as events };
|
|
1046
|
+
}
|
|
1047
|
+
export { streams_18 as streams };
|
|
1048
|
+
}
|
|
1049
|
+
export { queueConfig_18 as queueConfig };
|
|
1050
|
+
export namespace workerConfig_18 {
|
|
1051
|
+
let concurrency_18: number;
|
|
1052
|
+
export { concurrency_18 as concurrency };
|
|
1053
|
+
let lockDuration_18: number;
|
|
1054
|
+
export { lockDuration_18 as lockDuration };
|
|
1055
|
+
let maxStalledCount_18: number;
|
|
1056
|
+
export { maxStalledCount_18 as maxStalledCount };
|
|
1057
|
+
}
|
|
1058
|
+
export { workerConfig_18 as workerConfig };
|
|
1059
|
+
}
|
|
1020
1060
|
}
|
|
1021
1061
|
|
|
1022
1062
|
interface PlatformContextContentItem {
|
|
@@ -1062,6 +1102,24 @@ interface MergeParams {
|
|
|
1062
1102
|
*/
|
|
1063
1103
|
declare const mergeAnnoDataIntoAnnotationsTags: ({ prevObj, newLexValue, thisBlockValuePath, author, }: MergeParams) => any;
|
|
1064
1104
|
|
|
1105
|
+
/**
|
|
1106
|
+
* Is this tpl block a collab-editable field? ONE definition, used by BOTH
|
|
1107
|
+
* sides so they can never disagree:
|
|
1108
|
+
* - okf-sub loadContentDocument builds the server-side editable allowlist
|
|
1109
|
+
* from it (the flush drops writes outside that list)
|
|
1110
|
+
* - okf-fe ViewBlockGenerator derives per-block editability from it
|
|
1111
|
+
*
|
|
1112
|
+
* Editable = binds to a real content path. Exclusions:
|
|
1113
|
+
* - no valuePath (display-only blocks) / the odd "." valuePath some legacy
|
|
1114
|
+
* tpls carry (see getTypesForSchemaFromTpl, which skips it too)
|
|
1115
|
+
* - kp_-prefixed segments (publish status, lifecycle dates, author refs —
|
|
1116
|
+
* machinery, not content). NOTE: non-block system fields (lastActivity,
|
|
1117
|
+
* tagId...) are excluded by construction anyway — they're never tpl
|
|
1118
|
+
* blocks; this regex only guards block-defined kp_ paths.
|
|
1119
|
+
*/
|
|
1120
|
+
declare const COLLAB_SYSTEM_PATH_REGEX: RegExp;
|
|
1121
|
+
declare function isCollabEditableBlock(block: any): boolean;
|
|
1122
|
+
|
|
1065
1123
|
declare const parseSpecialConfigSyntax: ({ config, content, returnUndefinedIfReplacementWordNotFound }: {
|
|
1066
1124
|
config: string | object;
|
|
1067
1125
|
content: Record<string, any>;
|
|
@@ -9096,6 +9154,9 @@ declare class TenantRegistry {
|
|
|
9096
9154
|
}
|
|
9097
9155
|
|
|
9098
9156
|
declare const LIVE_COLLAB_DOC_REFRESH_MS: 120000;
|
|
9157
|
+
declare const LIVE_COLLAB_DEFER_MS: 120000;
|
|
9158
|
+
declare const LIVE_COLLAB_MAX_DEFERRALS: 30;
|
|
9159
|
+
declare const DOC_IN_LIVE_COLLAB_SESSION_ERROR: "aiApply_docInLiveCollabSession";
|
|
9099
9160
|
declare function markLiveCollabDoc({ tenant, contentType, docId, env }: {
|
|
9100
9161
|
tenant: any;
|
|
9101
9162
|
contentType: any;
|
|
@@ -9385,4 +9446,4 @@ declare function GET_GLOBAL_BULLMQ_CONFIG({ env, redisCredentials }: {
|
|
|
9385
9446
|
};
|
|
9386
9447
|
}): Object;
|
|
9387
9448
|
|
|
9388
|
-
export { AIChatSchema, AnnosElasticSyncProducer, AnnotationSchema, BASE_BULLMQ_CONFIG, BaseFlowProducer, BaseProducer, BaseWorker, type BlockCapabilities, type BlockDef, BlockRegistry, CHUNKING_PRESETS, ChunksElasticSyncProducer, ContentElasticSyncProducer, ELASTIC_MAPPING_PRESETS, ElasticSearchConnector, FILTER_IDS, GET_GLOBAL_BULLMQ_CONFIG, GeneratedEntitiesSchema, GeneratedTopicsSchema, LIVE_COLLAB_DOC_REFRESH_MS, MONGO_SCHEMA_PRESETS, MongoConnector, PlatformConfigsSchema, ProducerManager, RedisCacheConnector, SecretManagerConnector, TEMP_removeDuplicateFilters, TenantRegistry, TplSchema, UI_CONTENT, WorkerManager, _backOfficeFields__contr, _constantMeta__contr, _fixedMainFields__contr, _self_managed_buildAnnoHierarchyConfig, _self_managed_buildDocHierarchyConfig, _self_managed_getFixedAnnoRollupBlocks, _self_managed_getFixedAnnoTagBlock, autoGenFilterConfigsFromTpl, blockRegistry, buildFilterConfigurations, clearLiveCollabDoc, collectMarkIdsInOrder, compareAndGroupBlocks, deleteVal, extractAllBlocksFromTpl, extractAllUniqueAnnoTagTypesFromTpl, extractAndOrganizeBlocks, extractNumberFromValue, genCleanCamelCaseId, genContentTypeSchema, genTagId, generateFilterKey, getAIChatModelByTenant, getAnnoFilterBucketKey, getAnnotationsModelByTenant, getContrModelByTenant, getDbByTenant, getFilterKeyForBlock, getGeneratedEntitiesModelByTenant, getGeneratedTopicsModelByTenant, getModelByTenant, getPlatformConfigsModelByTenant, getPlatformContextContent, getRollupPossibilities, getRoutePathToContentTypeLanding, getRoutePathToEditContent, getRoutePathToModerateContent, getRoutePathToMyContent, getRoutePathToPublishedContent, getRoutePathToReviewDashboard, getRoutePathToTCI, getRoutePathToTagCategoryLanding, getTpl, getTplModelByTenant, getTypesForSchemaFromTpl, getVal, isLiveCollabDoc, isTplAnnotationEnabled, markLiveCollabDoc, mergeAnnoDataIntoAnnotationsTags, parseSpecialConfigSyntax, plainTextToLexical, processAuthorAndCommonFilters, _recursExtractBlocks as recursivelyExtractBlocks, segrigateDocs, setVal, toArray };
|
|
9449
|
+
export { AIChatSchema, AnnosElasticSyncProducer, AnnotationSchema, BASE_BULLMQ_CONFIG, BaseFlowProducer, BaseProducer, BaseWorker, type BlockCapabilities, type BlockDef, BlockRegistry, CHUNKING_PRESETS, COLLAB_SYSTEM_PATH_REGEX, ChunksElasticSyncProducer, ContentElasticSyncProducer, DOC_IN_LIVE_COLLAB_SESSION_ERROR, ELASTIC_MAPPING_PRESETS, ElasticSearchConnector, FILTER_IDS, GET_GLOBAL_BULLMQ_CONFIG, GeneratedEntitiesSchema, GeneratedTopicsSchema, LIVE_COLLAB_DEFER_MS, LIVE_COLLAB_DOC_REFRESH_MS, LIVE_COLLAB_MAX_DEFERRALS, MONGO_SCHEMA_PRESETS, MongoConnector, PlatformConfigsSchema, ProducerManager, RedisCacheConnector, SecretManagerConnector, TEMP_removeDuplicateFilters, TenantRegistry, TplSchema, UI_CONTENT, WorkerManager, _backOfficeFields__contr, _constantMeta__contr, _fixedMainFields__contr, _self_managed_buildAnnoHierarchyConfig, _self_managed_buildDocHierarchyConfig, _self_managed_getFixedAnnoRollupBlocks, _self_managed_getFixedAnnoTagBlock, autoGenFilterConfigsFromTpl, blockRegistry, buildFilterConfigurations, clearLiveCollabDoc, collectMarkIdsInOrder, compareAndGroupBlocks, deleteVal, extractAllBlocksFromTpl, extractAllUniqueAnnoTagTypesFromTpl, extractAndOrganizeBlocks, extractNumberFromValue, genCleanCamelCaseId, genContentTypeSchema, genTagId, generateFilterKey, getAIChatModelByTenant, getAnnoFilterBucketKey, getAnnotationsModelByTenant, getContrModelByTenant, getDbByTenant, getFilterKeyForBlock, getGeneratedEntitiesModelByTenant, getGeneratedTopicsModelByTenant, getModelByTenant, getPlatformConfigsModelByTenant, getPlatformContextContent, getRollupPossibilities, getRoutePathToContentTypeLanding, getRoutePathToEditContent, getRoutePathToModerateContent, getRoutePathToMyContent, getRoutePathToPublishedContent, getRoutePathToReviewDashboard, getRoutePathToTCI, getRoutePathToTagCategoryLanding, getTpl, getTplModelByTenant, getTypesForSchemaFromTpl, getVal, isCollabEditableBlock, isLiveCollabDoc, isTplAnnotationEnabled, markLiveCollabDoc, mergeAnnoDataIntoAnnotationsTags, parseSpecialConfigSyntax, plainTextToLexical, processAuthorAndCommonFilters, _recursExtractBlocks as recursivelyExtractBlocks, segrigateDocs, setVal, toArray };
|
package/dist/node.js
CHANGED
|
@@ -442,6 +442,43 @@ var init_GLOBAL_BULLMQ_CONFIG = __esm({
|
|
|
442
442
|
maxStalledCount: 3
|
|
443
443
|
}
|
|
444
444
|
},
|
|
445
|
+
/**
|
|
446
|
+
* Collab-editing session-boundary side effects for CONTENT docs.
|
|
447
|
+
* Enqueued by okf-sub's collab service when a field lock releases / the
|
|
448
|
+
* last editor leaves a live doc; the worker calls okf-be's internal
|
|
449
|
+
* contentDocCollabSessionSideEffects endpoint (tag-rename sync, chunks/annos
|
|
450
|
+
* producers, Elastic sync, cache invalidations, analytics).
|
|
451
|
+
* Queued (rather than fire-and-forget HTTP from the boundary) for retry
|
|
452
|
+
* ability + Bullboard trackability — a failed boundary would otherwise be
|
|
453
|
+
* silently lost when the doc unloads. Steps are idempotent except
|
|
454
|
+
* analytics, which runs LAST so retries only duplicate it on a
|
|
455
|
+
* lost-response network edge.
|
|
456
|
+
*/
|
|
457
|
+
CONTENT_DOC_COLAB_SESH_SIDE_EFFECTS_QUEUE: {
|
|
458
|
+
id: "content-doc-colab-sesh-side-effects-queue",
|
|
459
|
+
queueConfig: {
|
|
460
|
+
defaultJobOptions: {
|
|
461
|
+
attempts: 3,
|
|
462
|
+
backoff: {
|
|
463
|
+
type: "exponential",
|
|
464
|
+
delay: 5e3
|
|
465
|
+
},
|
|
466
|
+
removeOnComplete: 50,
|
|
467
|
+
removeOnFail: 200
|
|
468
|
+
},
|
|
469
|
+
streams: {
|
|
470
|
+
events: {
|
|
471
|
+
maxLen: 1e3
|
|
472
|
+
// SockerIOService QueueEvents tails this stream for progress tracking; trimming at 10 dropped completion events mid-burst (stuck FE tracker). Entries are small now that job returnvalues are trimmed, so 1000 is cheap.
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
workerConfig: {
|
|
477
|
+
concurrency: 10,
|
|
478
|
+
lockDuration: 9e4,
|
|
479
|
+
maxStalledCount: 3
|
|
480
|
+
}
|
|
481
|
+
},
|
|
445
482
|
SARVAM_TRANSCRIPTION_QUEUE: {
|
|
446
483
|
id: "sarvam-transcription-queue",
|
|
447
484
|
queueConfig: {
|
|
@@ -2386,15 +2423,19 @@ __export(node_exports, {
|
|
|
2386
2423
|
BaseWorker: () => import_BaseWorker.BaseWorker,
|
|
2387
2424
|
BlockRegistry: () => BlockRegistry,
|
|
2388
2425
|
CHUNKING_PRESETS: () => CHUNKING_PRESETS,
|
|
2426
|
+
COLLAB_SYSTEM_PATH_REGEX: () => COLLAB_SYSTEM_PATH_REGEX,
|
|
2389
2427
|
ChunksElasticSyncProducer: () => import_ChunksElasticSyncProducer.ChunksElasticSyncProducer,
|
|
2390
2428
|
ContentElasticSyncProducer: () => import_ContentElasticSyncProducer.ContentElasticSyncProducer,
|
|
2429
|
+
DOC_IN_LIVE_COLLAB_SESSION_ERROR: () => DOC_IN_LIVE_COLLAB_SESSION_ERROR,
|
|
2391
2430
|
ELASTIC_MAPPING_PRESETS: () => ELASTIC_MAPPING_PRESETS,
|
|
2392
2431
|
ElasticSearchConnector: () => import_ElasticSearchConnector.ElasticSearchConnector,
|
|
2393
2432
|
FILTER_IDS: () => FILTER_IDS,
|
|
2394
2433
|
GET_GLOBAL_BULLMQ_CONFIG: () => import_GET_GLOBAL_BULLMQ_CONFIG.GET_GLOBAL_BULLMQ_CONFIG,
|
|
2395
2434
|
GeneratedEntitiesSchema: () => GeneratedEntities_default,
|
|
2396
2435
|
GeneratedTopicsSchema: () => GeneratedTopics_default,
|
|
2436
|
+
LIVE_COLLAB_DEFER_MS: () => LIVE_COLLAB_DEFER_MS,
|
|
2397
2437
|
LIVE_COLLAB_DOC_REFRESH_MS: () => LIVE_COLLAB_DOC_REFRESH_MS,
|
|
2438
|
+
LIVE_COLLAB_MAX_DEFERRALS: () => LIVE_COLLAB_MAX_DEFERRALS,
|
|
2398
2439
|
MONGO_SCHEMA_PRESETS: () => MONGO_SCHEMA_PRESETS,
|
|
2399
2440
|
MongoConnector: () => import_MongoConnector3.MongoConnector,
|
|
2400
2441
|
PlatformConfigsSchema: () => PlatformConfigs_default,
|
|
@@ -2452,6 +2493,7 @@ __export(node_exports, {
|
|
|
2452
2493
|
getTplModelByTenant: () => import_getModelByTenant4.getTplModelByTenant,
|
|
2453
2494
|
getTypesForSchemaFromTpl: () => getTypesForSchemaFromTpl,
|
|
2454
2495
|
getVal: () => getVal,
|
|
2496
|
+
isCollabEditableBlock: () => isCollabEditableBlock,
|
|
2455
2497
|
isLiveCollabDoc: () => isLiveCollabDoc,
|
|
2456
2498
|
isTplAnnotationEnabled: () => isTplAnnotationEnabled,
|
|
2457
2499
|
markLiveCollabDoc: () => markLiveCollabDoc,
|
|
@@ -3331,6 +3373,10 @@ var mergeAnnoDataIntoAnnotationsTags = ({
|
|
|
3331
3373
|
return newConsolidated;
|
|
3332
3374
|
};
|
|
3333
3375
|
|
|
3376
|
+
// src/collab/isCollabEditableBlock.js
|
|
3377
|
+
var COLLAB_SYSTEM_PATH_REGEX = /(^|\.)kp_/;
|
|
3378
|
+
var isCollabEditableBlock = (block) => !!block?.valuePath && block.valuePath !== "." && !COLLAB_SYSTEM_PATH_REGEX.test(block.valuePath);
|
|
3379
|
+
|
|
3334
3380
|
// src/utils/parseSpecialConfigSyntax.ts
|
|
3335
3381
|
var parseSpecialConfigSyntax = ({
|
|
3336
3382
|
config,
|
|
@@ -5876,6 +5922,9 @@ init_models();
|
|
|
5876
5922
|
// src/collab/liveCollabDocMarker.js
|
|
5877
5923
|
var TTL_SECONDS = 300;
|
|
5878
5924
|
var LIVE_COLLAB_DOC_REFRESH_MS = 12e4;
|
|
5925
|
+
var LIVE_COLLAB_DEFER_MS = 12e4;
|
|
5926
|
+
var LIVE_COLLAB_MAX_DEFERRALS = 30;
|
|
5927
|
+
var DOC_IN_LIVE_COLLAB_SESSION_ERROR = "aiApply_docInLiveCollabSession";
|
|
5879
5928
|
var buildKey = ({ env, tenant, contentType, docId }) => `${env || RedisCacheConnector.getEnv()}:liveCollabDoc:${tenant}:${contentType}:${docId}`;
|
|
5880
5929
|
var markLiveCollabDoc = async ({ tenant, contentType, docId, env }) => {
|
|
5881
5930
|
const client = RedisCacheConnector.getClient(env || RedisCacheConnector.getEnv());
|
|
@@ -5911,15 +5960,19 @@ var import_GET_GLOBAL_BULLMQ_CONFIG = __toESM(require_GET_GLOBAL_BULLMQ_CONFIG()
|
|
|
5911
5960
|
BaseWorker,
|
|
5912
5961
|
BlockRegistry,
|
|
5913
5962
|
CHUNKING_PRESETS,
|
|
5963
|
+
COLLAB_SYSTEM_PATH_REGEX,
|
|
5914
5964
|
ChunksElasticSyncProducer,
|
|
5915
5965
|
ContentElasticSyncProducer,
|
|
5966
|
+
DOC_IN_LIVE_COLLAB_SESSION_ERROR,
|
|
5916
5967
|
ELASTIC_MAPPING_PRESETS,
|
|
5917
5968
|
ElasticSearchConnector,
|
|
5918
5969
|
FILTER_IDS,
|
|
5919
5970
|
GET_GLOBAL_BULLMQ_CONFIG,
|
|
5920
5971
|
GeneratedEntitiesSchema,
|
|
5921
5972
|
GeneratedTopicsSchema,
|
|
5973
|
+
LIVE_COLLAB_DEFER_MS,
|
|
5922
5974
|
LIVE_COLLAB_DOC_REFRESH_MS,
|
|
5975
|
+
LIVE_COLLAB_MAX_DEFERRALS,
|
|
5923
5976
|
MONGO_SCHEMA_PRESETS,
|
|
5924
5977
|
MongoConnector,
|
|
5925
5978
|
PlatformConfigsSchema,
|
|
@@ -5977,6 +6030,7 @@ var import_GET_GLOBAL_BULLMQ_CONFIG = __toESM(require_GET_GLOBAL_BULLMQ_CONFIG()
|
|
|
5977
6030
|
getTplModelByTenant,
|
|
5978
6031
|
getTypesForSchemaFromTpl,
|
|
5979
6032
|
getVal,
|
|
6033
|
+
isCollabEditableBlock,
|
|
5980
6034
|
isLiveCollabDoc,
|
|
5981
6035
|
isTplAnnotationEnabled,
|
|
5982
6036
|
markLiveCollabDoc,
|
package/dist/node.mjs
CHANGED
|
@@ -447,6 +447,43 @@ var init_GLOBAL_BULLMQ_CONFIG = __esm({
|
|
|
447
447
|
maxStalledCount: 3
|
|
448
448
|
}
|
|
449
449
|
},
|
|
450
|
+
/**
|
|
451
|
+
* Collab-editing session-boundary side effects for CONTENT docs.
|
|
452
|
+
* Enqueued by okf-sub's collab service when a field lock releases / the
|
|
453
|
+
* last editor leaves a live doc; the worker calls okf-be's internal
|
|
454
|
+
* contentDocCollabSessionSideEffects endpoint (tag-rename sync, chunks/annos
|
|
455
|
+
* producers, Elastic sync, cache invalidations, analytics).
|
|
456
|
+
* Queued (rather than fire-and-forget HTTP from the boundary) for retry
|
|
457
|
+
* ability + Bullboard trackability — a failed boundary would otherwise be
|
|
458
|
+
* silently lost when the doc unloads. Steps are idempotent except
|
|
459
|
+
* analytics, which runs LAST so retries only duplicate it on a
|
|
460
|
+
* lost-response network edge.
|
|
461
|
+
*/
|
|
462
|
+
CONTENT_DOC_COLAB_SESH_SIDE_EFFECTS_QUEUE: {
|
|
463
|
+
id: "content-doc-colab-sesh-side-effects-queue",
|
|
464
|
+
queueConfig: {
|
|
465
|
+
defaultJobOptions: {
|
|
466
|
+
attempts: 3,
|
|
467
|
+
backoff: {
|
|
468
|
+
type: "exponential",
|
|
469
|
+
delay: 5e3
|
|
470
|
+
},
|
|
471
|
+
removeOnComplete: 50,
|
|
472
|
+
removeOnFail: 200
|
|
473
|
+
},
|
|
474
|
+
streams: {
|
|
475
|
+
events: {
|
|
476
|
+
maxLen: 1e3
|
|
477
|
+
// SockerIOService QueueEvents tails this stream for progress tracking; trimming at 10 dropped completion events mid-burst (stuck FE tracker). Entries are small now that job returnvalues are trimmed, so 1000 is cheap.
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
workerConfig: {
|
|
482
|
+
concurrency: 10,
|
|
483
|
+
lockDuration: 9e4,
|
|
484
|
+
maxStalledCount: 3
|
|
485
|
+
}
|
|
486
|
+
},
|
|
450
487
|
SARVAM_TRANSCRIPTION_QUEUE: {
|
|
451
488
|
id: "sarvam-transcription-queue",
|
|
452
489
|
queueConfig: {
|
|
@@ -3244,6 +3281,10 @@ var mergeAnnoDataIntoAnnotationsTags = ({
|
|
|
3244
3281
|
return newConsolidated;
|
|
3245
3282
|
};
|
|
3246
3283
|
|
|
3284
|
+
// src/collab/isCollabEditableBlock.js
|
|
3285
|
+
var COLLAB_SYSTEM_PATH_REGEX = /(^|\.)kp_/;
|
|
3286
|
+
var isCollabEditableBlock = (block) => !!block?.valuePath && block.valuePath !== "." && !COLLAB_SYSTEM_PATH_REGEX.test(block.valuePath);
|
|
3287
|
+
|
|
3247
3288
|
// src/utils/parseSpecialConfigSyntax.ts
|
|
3248
3289
|
var parseSpecialConfigSyntax = ({
|
|
3249
3290
|
config,
|
|
@@ -5789,6 +5830,9 @@ init_models();
|
|
|
5789
5830
|
// src/collab/liveCollabDocMarker.js
|
|
5790
5831
|
var TTL_SECONDS = 300;
|
|
5791
5832
|
var LIVE_COLLAB_DOC_REFRESH_MS = 12e4;
|
|
5833
|
+
var LIVE_COLLAB_DEFER_MS = 12e4;
|
|
5834
|
+
var LIVE_COLLAB_MAX_DEFERRALS = 30;
|
|
5835
|
+
var DOC_IN_LIVE_COLLAB_SESSION_ERROR = "aiApply_docInLiveCollabSession";
|
|
5792
5836
|
var buildKey = ({ env, tenant, contentType, docId }) => `${env || RedisCacheConnector.getEnv()}:liveCollabDoc:${tenant}:${contentType}:${docId}`;
|
|
5793
5837
|
var markLiveCollabDoc = async ({ tenant, contentType, docId, env }) => {
|
|
5794
5838
|
const client = RedisCacheConnector.getClient(env || RedisCacheConnector.getEnv());
|
|
@@ -5841,15 +5885,19 @@ export {
|
|
|
5841
5885
|
export_BaseWorker as BaseWorker,
|
|
5842
5886
|
BlockRegistry,
|
|
5843
5887
|
CHUNKING_PRESETS,
|
|
5888
|
+
COLLAB_SYSTEM_PATH_REGEX,
|
|
5844
5889
|
export_ChunksElasticSyncProducer as ChunksElasticSyncProducer,
|
|
5845
5890
|
export_ContentElasticSyncProducer as ContentElasticSyncProducer,
|
|
5891
|
+
DOC_IN_LIVE_COLLAB_SESSION_ERROR,
|
|
5846
5892
|
ELASTIC_MAPPING_PRESETS,
|
|
5847
5893
|
export_ElasticSearchConnector as ElasticSearchConnector,
|
|
5848
5894
|
FILTER_IDS,
|
|
5849
5895
|
export_GET_GLOBAL_BULLMQ_CONFIG as GET_GLOBAL_BULLMQ_CONFIG,
|
|
5850
5896
|
GeneratedEntities_default as GeneratedEntitiesSchema,
|
|
5851
5897
|
GeneratedTopics_default as GeneratedTopicsSchema,
|
|
5898
|
+
LIVE_COLLAB_DEFER_MS,
|
|
5852
5899
|
LIVE_COLLAB_DOC_REFRESH_MS,
|
|
5900
|
+
LIVE_COLLAB_MAX_DEFERRALS,
|
|
5853
5901
|
MONGO_SCHEMA_PRESETS,
|
|
5854
5902
|
export_MongoConnector as MongoConnector,
|
|
5855
5903
|
PlatformConfigs_default as PlatformConfigsSchema,
|
|
@@ -5907,6 +5955,7 @@ export {
|
|
|
5907
5955
|
export_getTplModelByTenant as getTplModelByTenant,
|
|
5908
5956
|
getTypesForSchemaFromTpl,
|
|
5909
5957
|
getVal,
|
|
5958
|
+
isCollabEditableBlock,
|
|
5910
5959
|
isLiveCollabDoc,
|
|
5911
5960
|
isTplAnnotationEnabled,
|
|
5912
5961
|
markLiveCollabDoc,
|
package/dist/universal.d.mts
CHANGED
|
@@ -767,7 +767,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
767
767
|
}
|
|
768
768
|
export { workerConfig_11 as workerConfig };
|
|
769
769
|
}
|
|
770
|
-
namespace
|
|
770
|
+
namespace CONTENT_DOC_COLAB_SESH_SIDE_EFFECTS_QUEUE {
|
|
771
771
|
let id_12: string;
|
|
772
772
|
export { id_12 as id };
|
|
773
773
|
export namespace queueConfig_12 {
|
|
@@ -807,7 +807,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
807
807
|
}
|
|
808
808
|
export { workerConfig_12 as workerConfig };
|
|
809
809
|
}
|
|
810
|
-
namespace
|
|
810
|
+
namespace SARVAM_TRANSCRIPTION_QUEUE {
|
|
811
811
|
let id_13: string;
|
|
812
812
|
export { id_13 as id };
|
|
813
813
|
export namespace queueConfig_13 {
|
|
@@ -847,7 +847,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
847
847
|
}
|
|
848
848
|
export { workerConfig_13 as workerConfig };
|
|
849
849
|
}
|
|
850
|
-
namespace
|
|
850
|
+
namespace INTERCOM_CONVERSATIONS_QUEUE {
|
|
851
851
|
let id_14: string;
|
|
852
852
|
export { id_14 as id };
|
|
853
853
|
export namespace queueConfig_14 {
|
|
@@ -887,7 +887,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
887
887
|
}
|
|
888
888
|
export { workerConfig_14 as workerConfig };
|
|
889
889
|
}
|
|
890
|
-
namespace
|
|
890
|
+
namespace TAG_SYNC_PLAN_QUEUE {
|
|
891
891
|
let id_15: string;
|
|
892
892
|
export { id_15 as id };
|
|
893
893
|
export namespace queueConfig_15 {
|
|
@@ -927,11 +927,13 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
927
927
|
}
|
|
928
928
|
export { workerConfig_15 as workerConfig };
|
|
929
929
|
}
|
|
930
|
-
namespace
|
|
930
|
+
namespace TAG_SYNC_BATCH_QUEUE {
|
|
931
931
|
let id_16: string;
|
|
932
932
|
export { id_16 as id };
|
|
933
933
|
export namespace queueConfig_16 {
|
|
934
934
|
export namespace defaultJobOptions_16 {
|
|
935
|
+
let attempts_16: number;
|
|
936
|
+
export { attempts_16 as attempts };
|
|
935
937
|
export namespace backoff_16 {
|
|
936
938
|
let type_16: string;
|
|
937
939
|
export { type_16 as type };
|
|
@@ -939,8 +941,6 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
939
941
|
export { delay_16 as delay };
|
|
940
942
|
}
|
|
941
943
|
export { backoff_16 as backoff };
|
|
942
|
-
let attempts_16: number;
|
|
943
|
-
export { attempts_16 as attempts };
|
|
944
944
|
let removeOnComplete_16: number;
|
|
945
945
|
export { removeOnComplete_16 as removeOnComplete };
|
|
946
946
|
let removeOnFail_16: number;
|
|
@@ -967,13 +967,11 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
967
967
|
}
|
|
968
968
|
export { workerConfig_16 as workerConfig };
|
|
969
969
|
}
|
|
970
|
-
namespace
|
|
970
|
+
namespace SCHEDULED_EXTERNAL_SYNC_QUEUE {
|
|
971
971
|
let id_17: string;
|
|
972
972
|
export { id_17 as id };
|
|
973
973
|
export namespace queueConfig_17 {
|
|
974
974
|
export namespace defaultJobOptions_17 {
|
|
975
|
-
let attempts_17: number;
|
|
976
|
-
export { attempts_17 as attempts };
|
|
977
975
|
export namespace backoff_17 {
|
|
978
976
|
let type_17: string;
|
|
979
977
|
export { type_17 as type };
|
|
@@ -981,8 +979,8 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
981
979
|
export { delay_17 as delay };
|
|
982
980
|
}
|
|
983
981
|
export { backoff_17 as backoff };
|
|
984
|
-
let
|
|
985
|
-
export {
|
|
982
|
+
let attempts_17: number;
|
|
983
|
+
export { attempts_17 as attempts };
|
|
986
984
|
let removeOnComplete_17: number;
|
|
987
985
|
export { removeOnComplete_17 as removeOnComplete };
|
|
988
986
|
let removeOnFail_17: number;
|
|
@@ -1009,6 +1007,48 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
1009
1007
|
}
|
|
1010
1008
|
export { workerConfig_17 as workerConfig };
|
|
1011
1009
|
}
|
|
1010
|
+
namespace REINDEX_QUEUE {
|
|
1011
|
+
let id_18: string;
|
|
1012
|
+
export { id_18 as id };
|
|
1013
|
+
export namespace queueConfig_18 {
|
|
1014
|
+
export namespace defaultJobOptions_18 {
|
|
1015
|
+
let attempts_18: number;
|
|
1016
|
+
export { attempts_18 as attempts };
|
|
1017
|
+
export namespace backoff_18 {
|
|
1018
|
+
let type_18: string;
|
|
1019
|
+
export { type_18 as type };
|
|
1020
|
+
let delay_18: number;
|
|
1021
|
+
export { delay_18 as delay };
|
|
1022
|
+
}
|
|
1023
|
+
export { backoff_18 as backoff };
|
|
1024
|
+
let delay_19: number;
|
|
1025
|
+
export { delay_19 as delay };
|
|
1026
|
+
let removeOnComplete_18: number;
|
|
1027
|
+
export { removeOnComplete_18 as removeOnComplete };
|
|
1028
|
+
let removeOnFail_18: number;
|
|
1029
|
+
export { removeOnFail_18 as removeOnFail };
|
|
1030
|
+
}
|
|
1031
|
+
export { defaultJobOptions_18 as defaultJobOptions };
|
|
1032
|
+
export namespace streams_18 {
|
|
1033
|
+
export namespace events_18 {
|
|
1034
|
+
let maxLen_18: number;
|
|
1035
|
+
export { maxLen_18 as maxLen };
|
|
1036
|
+
}
|
|
1037
|
+
export { events_18 as events };
|
|
1038
|
+
}
|
|
1039
|
+
export { streams_18 as streams };
|
|
1040
|
+
}
|
|
1041
|
+
export { queueConfig_18 as queueConfig };
|
|
1042
|
+
export namespace workerConfig_18 {
|
|
1043
|
+
let concurrency_18: number;
|
|
1044
|
+
export { concurrency_18 as concurrency };
|
|
1045
|
+
let lockDuration_18: number;
|
|
1046
|
+
export { lockDuration_18 as lockDuration };
|
|
1047
|
+
let maxStalledCount_18: number;
|
|
1048
|
+
export { maxStalledCount_18 as maxStalledCount };
|
|
1049
|
+
}
|
|
1050
|
+
export { workerConfig_18 as workerConfig };
|
|
1051
|
+
}
|
|
1012
1052
|
}
|
|
1013
1053
|
|
|
1014
1054
|
interface PlatformContextContentItem {
|
|
@@ -1054,6 +1094,24 @@ interface MergeParams {
|
|
|
1054
1094
|
*/
|
|
1055
1095
|
declare const mergeAnnoDataIntoAnnotationsTags: ({ prevObj, newLexValue, thisBlockValuePath, author, }: MergeParams) => any;
|
|
1056
1096
|
|
|
1097
|
+
/**
|
|
1098
|
+
* Is this tpl block a collab-editable field? ONE definition, used by BOTH
|
|
1099
|
+
* sides so they can never disagree:
|
|
1100
|
+
* - okf-sub loadContentDocument builds the server-side editable allowlist
|
|
1101
|
+
* from it (the flush drops writes outside that list)
|
|
1102
|
+
* - okf-fe ViewBlockGenerator derives per-block editability from it
|
|
1103
|
+
*
|
|
1104
|
+
* Editable = binds to a real content path. Exclusions:
|
|
1105
|
+
* - no valuePath (display-only blocks) / the odd "." valuePath some legacy
|
|
1106
|
+
* tpls carry (see getTypesForSchemaFromTpl, which skips it too)
|
|
1107
|
+
* - kp_-prefixed segments (publish status, lifecycle dates, author refs —
|
|
1108
|
+
* machinery, not content). NOTE: non-block system fields (lastActivity,
|
|
1109
|
+
* tagId...) are excluded by construction anyway — they're never tpl
|
|
1110
|
+
* blocks; this regex only guards block-defined kp_ paths.
|
|
1111
|
+
*/
|
|
1112
|
+
declare const COLLAB_SYSTEM_PATH_REGEX: RegExp;
|
|
1113
|
+
declare function isCollabEditableBlock(block: any): boolean;
|
|
1114
|
+
|
|
1057
1115
|
declare const parseSpecialConfigSyntax: ({ config, content, returnUndefinedIfReplacementWordNotFound }: {
|
|
1058
1116
|
config: string | object;
|
|
1059
1117
|
content: Record<string, any>;
|
|
@@ -1970,4 +2028,4 @@ declare class BlockRegistry {
|
|
|
1970
2028
|
/** Singleton instance — the one registry shared across the app. */
|
|
1971
2029
|
declare const blockRegistry: BlockRegistry;
|
|
1972
2030
|
|
|
1973
|
-
export { BASE_BULLMQ_CONFIG, type BlockCapabilities, type BlockDef, BlockRegistry, CHUNKING_PRESETS, ELASTIC_MAPPING_PRESETS, FILTER_IDS, MONGO_SCHEMA_PRESETS, TEMP_removeDuplicateFilters, UI_CONTENT, _self_managed_buildAnnoHierarchyConfig, _self_managed_buildDocHierarchyConfig, _self_managed_getFixedAnnoRollupBlocks, _self_managed_getFixedAnnoTagBlock, autoGenFilterConfigsFromTpl, blockRegistry, buildFilterConfigurations, collectMarkIdsInOrder, compareAndGroupBlocks, deleteVal, extractAllBlocksFromTpl, extractAndOrganizeBlocks, genCleanCamelCaseId, genTagId, generateFilterKey, getAnnoFilterBucketKey, getFilterKeyForBlock, getPlatformContextContent, getRollupPossibilities, getRoutePathToContentTypeLanding, getRoutePathToEditContent, getRoutePathToModerateContent, getRoutePathToMyContent, getRoutePathToPublishedContent, getRoutePathToReviewDashboard, getRoutePathToTCI, getRoutePathToTagCategoryLanding, getVal, isTplAnnotationEnabled, mergeAnnoDataIntoAnnotationsTags, parseSpecialConfigSyntax, plainTextToLexical, processAuthorAndCommonFilters, _recursExtractBlocks as recursivelyExtractBlocks, segrigateDocs, setVal, toArray };
|
|
2031
|
+
export { BASE_BULLMQ_CONFIG, type BlockCapabilities, type BlockDef, BlockRegistry, CHUNKING_PRESETS, COLLAB_SYSTEM_PATH_REGEX, ELASTIC_MAPPING_PRESETS, FILTER_IDS, MONGO_SCHEMA_PRESETS, TEMP_removeDuplicateFilters, UI_CONTENT, _self_managed_buildAnnoHierarchyConfig, _self_managed_buildDocHierarchyConfig, _self_managed_getFixedAnnoRollupBlocks, _self_managed_getFixedAnnoTagBlock, autoGenFilterConfigsFromTpl, blockRegistry, buildFilterConfigurations, collectMarkIdsInOrder, compareAndGroupBlocks, deleteVal, extractAllBlocksFromTpl, extractAndOrganizeBlocks, genCleanCamelCaseId, genTagId, generateFilterKey, getAnnoFilterBucketKey, getFilterKeyForBlock, getPlatformContextContent, getRollupPossibilities, getRoutePathToContentTypeLanding, getRoutePathToEditContent, getRoutePathToModerateContent, getRoutePathToMyContent, getRoutePathToPublishedContent, getRoutePathToReviewDashboard, getRoutePathToTCI, getRoutePathToTagCategoryLanding, getVal, isCollabEditableBlock, isTplAnnotationEnabled, mergeAnnoDataIntoAnnotationsTags, parseSpecialConfigSyntax, plainTextToLexical, processAuthorAndCommonFilters, _recursExtractBlocks as recursivelyExtractBlocks, segrigateDocs, setVal, toArray };
|