@okf/ootils 1.28.1 → 1.28.3
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 +61 -43
- package/dist/browser.d.ts +61 -43
- package/dist/browser.js +38 -44
- package/dist/browser.mjs +38 -42
- package/dist/node.d.mts +61 -43
- package/dist/node.d.ts +61 -43
- package/dist/node.js +38 -44
- package/dist/node.mjs +38 -42
- package/dist/universal.d.mts +61 -43
- package/dist/universal.d.ts +61 -43
- package/dist/universal.js +38 -44
- package/dist/universal.mjs +38 -42
- package/package.json +1 -1
package/dist/node.d.ts
CHANGED
|
@@ -676,7 +676,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
676
676
|
}
|
|
677
677
|
export { workerConfig_9 as workerConfig };
|
|
678
678
|
}
|
|
679
|
-
namespace
|
|
679
|
+
namespace USERS_ELASTIC_SYNC_QUEUE {
|
|
680
680
|
let id_10: string;
|
|
681
681
|
export { id_10 as id };
|
|
682
682
|
export namespace queueConfig_10 {
|
|
@@ -716,7 +716,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
716
716
|
}
|
|
717
717
|
export { workerConfig_10 as workerConfig };
|
|
718
718
|
}
|
|
719
|
-
namespace
|
|
719
|
+
namespace CONTENT_ELASTIC_SYNC_QUEUE {
|
|
720
720
|
let id_11: string;
|
|
721
721
|
export { id_11 as id };
|
|
722
722
|
export namespace queueConfig_11 {
|
|
@@ -730,8 +730,6 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
730
730
|
export { delay_11 as delay };
|
|
731
731
|
}
|
|
732
732
|
export { backoff_11 as backoff };
|
|
733
|
-
let delay_12: number;
|
|
734
|
-
export { delay_12 as delay };
|
|
735
733
|
let removeOnComplete_11: number;
|
|
736
734
|
export { removeOnComplete_11 as removeOnComplete };
|
|
737
735
|
let removeOnFail_11: number;
|
|
@@ -758,6 +756,48 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
758
756
|
}
|
|
759
757
|
export { workerConfig_11 as workerConfig };
|
|
760
758
|
}
|
|
759
|
+
namespace REINDEX_QUEUE {
|
|
760
|
+
let id_12: string;
|
|
761
|
+
export { id_12 as id };
|
|
762
|
+
export namespace queueConfig_12 {
|
|
763
|
+
export namespace defaultJobOptions_12 {
|
|
764
|
+
let attempts_12: number;
|
|
765
|
+
export { attempts_12 as attempts };
|
|
766
|
+
export namespace backoff_12 {
|
|
767
|
+
let type_12: string;
|
|
768
|
+
export { type_12 as type };
|
|
769
|
+
let delay_12: number;
|
|
770
|
+
export { delay_12 as delay };
|
|
771
|
+
}
|
|
772
|
+
export { backoff_12 as backoff };
|
|
773
|
+
let delay_13: number;
|
|
774
|
+
export { delay_13 as delay };
|
|
775
|
+
let removeOnComplete_12: number;
|
|
776
|
+
export { removeOnComplete_12 as removeOnComplete };
|
|
777
|
+
let removeOnFail_12: number;
|
|
778
|
+
export { removeOnFail_12 as removeOnFail };
|
|
779
|
+
}
|
|
780
|
+
export { defaultJobOptions_12 as defaultJobOptions };
|
|
781
|
+
export namespace streams_12 {
|
|
782
|
+
export namespace events_12 {
|
|
783
|
+
let maxLen_12: number;
|
|
784
|
+
export { maxLen_12 as maxLen };
|
|
785
|
+
}
|
|
786
|
+
export { events_12 as events };
|
|
787
|
+
}
|
|
788
|
+
export { streams_12 as streams };
|
|
789
|
+
}
|
|
790
|
+
export { queueConfig_12 as queueConfig };
|
|
791
|
+
export namespace workerConfig_12 {
|
|
792
|
+
let concurrency_12: number;
|
|
793
|
+
export { concurrency_12 as concurrency };
|
|
794
|
+
let lockDuration_12: number;
|
|
795
|
+
export { lockDuration_12 as lockDuration };
|
|
796
|
+
let maxStalledCount_12: number;
|
|
797
|
+
export { maxStalledCount_12 as maxStalledCount };
|
|
798
|
+
}
|
|
799
|
+
export { workerConfig_12 as workerConfig };
|
|
800
|
+
}
|
|
761
801
|
}
|
|
762
802
|
|
|
763
803
|
interface PlatformContextContentItem {
|
|
@@ -1267,50 +1307,28 @@ declare const UI_CONTENT: {
|
|
|
1267
1307
|
};
|
|
1268
1308
|
};
|
|
1269
1309
|
|
|
1270
|
-
interface GenCleanCamelCaseIdOptions {
|
|
1271
|
-
/** Strip all non-alphanumeric chars (A-Z, a-z, 0-9 only). Default: false */
|
|
1272
|
-
stripNonAlphanumeric?: boolean;
|
|
1273
|
-
/** Truncate result to this max length. Default: no limit */
|
|
1274
|
-
maxLength?: number;
|
|
1275
|
-
}
|
|
1276
|
-
declare const genCleanCamelCaseId: (id: string, options?: GenCleanCamelCaseIdOptions) => string;
|
|
1277
|
-
|
|
1278
1310
|
/**
|
|
1279
|
-
* Generates a clean, deterministic
|
|
1280
|
-
* Wraps genCleanCamelCaseId with stripNonAlphanumeric + maxLength 40.
|
|
1311
|
+
* Generates a clean, deterministic, alphanumeric camelCase ID from text.
|
|
1281
1312
|
*
|
|
1282
|
-
*
|
|
1313
|
+
* 1. Splits on non-alphanumeric characters, builds camelCase
|
|
1314
|
+
* 2. Strips all non a-zA-Z0-9 from result
|
|
1315
|
+
* 3. If input had no unicode letters/numbers at all (e.g. "---"), returns 'a'
|
|
1316
|
+
* 4. If camelCase had content but nothing survived ASCII strip (pure non-Latin),
|
|
1317
|
+
* generates a deterministic hash (FNV-1a) of the unicode camelCase
|
|
1318
|
+
* 5. Prepends 'a' if starts with digit
|
|
1319
|
+
* 6. Truncates to 40 chars
|
|
1283
1320
|
*
|
|
1284
|
-
*
|
|
1285
|
-
* genCleanContentTypeId("My Articles!") => "myArticles"
|
|
1286
|
-
* genCleanContentTypeId("myArticles") => "myArticles" (idempotent)
|
|
1287
|
-
* genCleanContentTypeId("123 Test") => "a123Test"
|
|
1288
|
-
*/
|
|
1289
|
-
declare const genCleanContentTypeId: (text: string) => string;
|
|
1290
|
-
|
|
1291
|
-
/**
|
|
1292
|
-
* Generates a clean, short, unique ID from text input.
|
|
1293
|
-
* Used for block valuePaths in templates.
|
|
1294
|
-
*
|
|
1295
|
-
* 1. Strips all characters except A-Z, a-z, 0-9
|
|
1296
|
-
* 2. Lowercases the result
|
|
1297
|
-
* 3. Prepends 'a' if starts with a digit
|
|
1298
|
-
* 4. Truncates to maxLength (default 10)
|
|
1299
|
-
* 5. Appends _{random id} (default 4 chars)
|
|
1300
|
-
*
|
|
1301
|
-
* Idempotent: if input already matches the output pattern
|
|
1302
|
-
* (lowercase alphanumeric + _hash suffix), returns as-is.
|
|
1303
|
-
*
|
|
1304
|
-
* @param text - The input text to convert
|
|
1305
|
-
* @param maxLength - Max characters before the random suffix (default 10)
|
|
1306
|
-
* @param shortIdLength - Length of the random suffix (default 4)
|
|
1321
|
+
* Idempotent: running twice produces the same output.
|
|
1307
1322
|
*
|
|
1308
1323
|
* @example
|
|
1309
|
-
*
|
|
1310
|
-
*
|
|
1311
|
-
*
|
|
1324
|
+
* genCleanCamelCaseId("Author Name") => "authorName"
|
|
1325
|
+
* genCleanCamelCaseId("authorName") => "authorName" (idempotent)
|
|
1326
|
+
* genCleanCamelCaseId("123 Test") => "a123Test"
|
|
1327
|
+
* genCleanCamelCaseId("café latté") => "cafLatt"
|
|
1328
|
+
* genCleanCamelCaseId("مرحبا") => deterministic hash
|
|
1329
|
+
* genCleanCamelCaseId("---") => "a"
|
|
1312
1330
|
*/
|
|
1313
|
-
declare const
|
|
1331
|
+
declare const genCleanCamelCaseId: (id: string) => string;
|
|
1314
1332
|
|
|
1315
1333
|
declare class MongoConnector {
|
|
1316
1334
|
static getInstance(): any;
|
|
@@ -2042,4 +2060,4 @@ declare function GET_GLOBAL_BULLMQ_CONFIG({ env, redisCredentials }: {
|
|
|
2042
2060
|
};
|
|
2043
2061
|
}): Object;
|
|
2044
2062
|
|
|
2045
|
-
export { AIChatSchema, AnnosElasticSyncProducer, AnnotationSchema, BASE_BULLMQ_CONFIG, BaseProducer, BaseWorker, ChunksElasticSyncProducer, ElasticSearchConnector, FILTER_IDS, GET_GLOBAL_BULLMQ_CONFIG, GeneratedEntitiesSchema, GeneratedTopicsSchema, MongoConnector, PlatformConfigsSchema, ProducerManager, RedisCacheConnector, SecretManagerConnector, TEMP_removeDuplicateFilters, TplSchema, UI_CONTENT, WorkerManager, _self_managed_buildAnnoHierarchyConfig, _self_managed_buildDocHierarchyConfig, _self_managed_getFixedAnnoRollupBlocks, _self_managed_getFixedAnnoTagBlock, autoGenFilterConfigsFromTpl, buildFilterConfigurations, compareAndGroupBlocks, deleteVal, extractAllBlocksFromTpl, extractAndOrganizeBlocks, genCleanCamelCaseId,
|
|
2063
|
+
export { AIChatSchema, AnnosElasticSyncProducer, AnnotationSchema, BASE_BULLMQ_CONFIG, BaseProducer, BaseWorker, ChunksElasticSyncProducer, ElasticSearchConnector, FILTER_IDS, GET_GLOBAL_BULLMQ_CONFIG, GeneratedEntitiesSchema, GeneratedTopicsSchema, MongoConnector, PlatformConfigsSchema, ProducerManager, RedisCacheConnector, SecretManagerConnector, TEMP_removeDuplicateFilters, TplSchema, UI_CONTENT, WorkerManager, _self_managed_buildAnnoHierarchyConfig, _self_managed_buildDocHierarchyConfig, _self_managed_getFixedAnnoRollupBlocks, _self_managed_getFixedAnnoTagBlock, autoGenFilterConfigsFromTpl, buildFilterConfigurations, compareAndGroupBlocks, deleteVal, extractAllBlocksFromTpl, extractAndOrganizeBlocks, genCleanCamelCaseId, genTagId, generateFilterKey, getAIChatModelByTenant, getAnnotationsModelByTenant, getDbByTenant, getFilterKeyForBlock, getGeneratedEntitiesModelByTenant, getGeneratedTopicsModelByTenant, getModelByTenant, getPlatformConfigsModelByTenant, getPlatformContextContent, getRollupPossibilities, getRoutePathToEditContent, getRoutePathToModerateContent, getRoutePathToPublishedContent, getTplModelByTenant, getVal, mergeAnnoDataIntoAnnotationsTags, parseSpecialConfigSyntax, processAuthorAndCommonFilters, _recursExtractBlocks as recursivelyExtractBlocks, segrigateDocs, setVal, toArray };
|
package/dist/node.js
CHANGED
|
@@ -321,6 +321,30 @@ var init_GLOBAL_BULLMQ_CONFIG = __esm({
|
|
|
321
321
|
maxStalledCount: 3
|
|
322
322
|
}
|
|
323
323
|
},
|
|
324
|
+
USERS_ELASTIC_SYNC_QUEUE: {
|
|
325
|
+
id: "users-elastic-sync-queue",
|
|
326
|
+
queueConfig: {
|
|
327
|
+
defaultJobOptions: {
|
|
328
|
+
attempts: 3,
|
|
329
|
+
backoff: {
|
|
330
|
+
type: "exponential",
|
|
331
|
+
delay: 2e3
|
|
332
|
+
},
|
|
333
|
+
removeOnComplete: 30,
|
|
334
|
+
removeOnFail: 100
|
|
335
|
+
},
|
|
336
|
+
streams: {
|
|
337
|
+
events: {
|
|
338
|
+
maxLen: 10
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
workerConfig: {
|
|
343
|
+
concurrency: 50,
|
|
344
|
+
lockDuration: 9e4,
|
|
345
|
+
maxStalledCount: 3
|
|
346
|
+
}
|
|
347
|
+
},
|
|
324
348
|
CONTENT_ELASTIC_SYNC_QUEUE: {
|
|
325
349
|
id: "content-elastic-sync-queue",
|
|
326
350
|
queueConfig: {
|
|
@@ -1949,8 +1973,6 @@ __export(node_exports, {
|
|
|
1949
1973
|
extractAllBlocksFromTpl: () => extractAllBlocksFromTpl,
|
|
1950
1974
|
extractAndOrganizeBlocks: () => extractAndOrganizeBlocks,
|
|
1951
1975
|
genCleanCamelCaseId: () => genCleanCamelCaseId,
|
|
1952
|
-
genCleanContentTypeId: () => genCleanContentTypeId,
|
|
1953
|
-
genCleanValuePath: () => genCleanValuePath,
|
|
1954
1976
|
genTagId: () => genTagId,
|
|
1955
1977
|
generateFilterKey: () => generateFilterKey,
|
|
1956
1978
|
getAIChatModelByTenant: () => import_getModelByTenant2.getAIChatModelByTenant,
|
|
@@ -3722,54 +3744,28 @@ var autoGenFilterConfigsFromTpl = ({
|
|
|
3722
3744
|
};
|
|
3723
3745
|
|
|
3724
3746
|
// src/utils/genCleanCamelCaseId.ts
|
|
3725
|
-
var
|
|
3747
|
+
var MAX_LENGTH = 40;
|
|
3748
|
+
function fnv1a(str, length = 8) {
|
|
3749
|
+
let hash = 2166136261;
|
|
3750
|
+
for (let i = 0; i < str.length; i++) {
|
|
3751
|
+
hash ^= str.charCodeAt(i);
|
|
3752
|
+
hash = hash * 16777619 >>> 0;
|
|
3753
|
+
}
|
|
3754
|
+
return hash.toString(36).slice(0, length);
|
|
3755
|
+
}
|
|
3756
|
+
var genCleanCamelCaseId = (id) => {
|
|
3726
3757
|
if (!id || typeof id !== "string") return id;
|
|
3727
|
-
|
|
3728
|
-
const baseClean = /^\p{Ll}[\p{L}\p{N}]*$/u.test(id) || /^a\d[\p{L}\p{N}]*$/u.test(id);
|
|
3729
|
-
const withinMaxLength = maxLength ? id.length <= maxLength : true;
|
|
3730
|
-
const hasNoNonAlpha = stripNonAlphanumeric ? /^[a-zA-Z0-9]+$/.test(id) : true;
|
|
3731
|
-
if (baseClean && withinMaxLength && hasNoNonAlpha) return id;
|
|
3758
|
+
if ((/^[a-z][a-zA-Z0-9]*$/.test(id) || /^a\d[a-zA-Z0-9]*$/.test(id)) && id.length <= MAX_LENGTH) return id;
|
|
3732
3759
|
const words = id.split(/[^\p{L}\p{N}]+/u).filter(Boolean);
|
|
3733
3760
|
if (words.length === 0) return "a";
|
|
3734
3761
|
let result = words.map((word, i) => {
|
|
3735
3762
|
const lower = word.toLowerCase();
|
|
3736
3763
|
return i === 0 ? lower : lower.charAt(0).toUpperCase() + lower.slice(1);
|
|
3737
3764
|
}).join("");
|
|
3765
|
+
const strippedResult = result.replace(/[^a-zA-Z0-9]/g, "");
|
|
3766
|
+
result = strippedResult || fnv1a(result);
|
|
3738
3767
|
if (/^\d/.test(result)) result = "a" + result;
|
|
3739
|
-
|
|
3740
|
-
result = result.replace(/[^a-zA-Z0-9]/g, "");
|
|
3741
|
-
}
|
|
3742
|
-
if (maxLength) {
|
|
3743
|
-
result = result.slice(0, maxLength);
|
|
3744
|
-
}
|
|
3745
|
-
return result;
|
|
3746
|
-
};
|
|
3747
|
-
|
|
3748
|
-
// src/utils/genCleanContentTypeId.ts
|
|
3749
|
-
var genCleanContentTypeId = (text) => genCleanCamelCaseId(text, { stripNonAlphanumeric: true, maxLength: 40 });
|
|
3750
|
-
|
|
3751
|
-
// src/utils/genCleanValuePath.ts
|
|
3752
|
-
var CHARS = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
3753
|
-
function genShortId(length = 4) {
|
|
3754
|
-
let result = "";
|
|
3755
|
-
for (let i = 0; i < length; i++) {
|
|
3756
|
-
result += CHARS[Math.floor(Math.random() * CHARS.length)];
|
|
3757
|
-
}
|
|
3758
|
-
return result;
|
|
3759
|
-
}
|
|
3760
|
-
var genCleanValuePath = (text) => {
|
|
3761
|
-
const maxLength = 10;
|
|
3762
|
-
const shortIdLength = 4;
|
|
3763
|
-
if (!text || typeof text !== "string") return text;
|
|
3764
|
-
const idempotencyPattern = new RegExp(`^[a-z][a-z0-9]*_[a-z0-9]{${shortIdLength}}$`);
|
|
3765
|
-
if (idempotencyPattern.test(text)) return text;
|
|
3766
|
-
let cleaned = text.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
|
|
3767
|
-
if (!cleaned) {
|
|
3768
|
-
throw new Error(`[genCleanValuePath] Input "${text}" contains no alphanumeric characters`);
|
|
3769
|
-
}
|
|
3770
|
-
if (/^\d/.test(cleaned)) cleaned = "a" + cleaned;
|
|
3771
|
-
const truncated = cleaned.slice(0, maxLength);
|
|
3772
|
-
return `${truncated}_${genShortId(shortIdLength)}`;
|
|
3768
|
+
return result.slice(0, MAX_LENGTH);
|
|
3773
3769
|
};
|
|
3774
3770
|
|
|
3775
3771
|
// src/node.ts
|
|
@@ -4189,8 +4185,6 @@ var import_GET_GLOBAL_BULLMQ_CONFIG = __toESM(require_GET_GLOBAL_BULLMQ_CONFIG()
|
|
|
4189
4185
|
extractAllBlocksFromTpl,
|
|
4190
4186
|
extractAndOrganizeBlocks,
|
|
4191
4187
|
genCleanCamelCaseId,
|
|
4192
|
-
genCleanContentTypeId,
|
|
4193
|
-
genCleanValuePath,
|
|
4194
4188
|
genTagId,
|
|
4195
4189
|
generateFilterKey,
|
|
4196
4190
|
getAIChatModelByTenant,
|
package/dist/node.mjs
CHANGED
|
@@ -326,6 +326,30 @@ var init_GLOBAL_BULLMQ_CONFIG = __esm({
|
|
|
326
326
|
maxStalledCount: 3
|
|
327
327
|
}
|
|
328
328
|
},
|
|
329
|
+
USERS_ELASTIC_SYNC_QUEUE: {
|
|
330
|
+
id: "users-elastic-sync-queue",
|
|
331
|
+
queueConfig: {
|
|
332
|
+
defaultJobOptions: {
|
|
333
|
+
attempts: 3,
|
|
334
|
+
backoff: {
|
|
335
|
+
type: "exponential",
|
|
336
|
+
delay: 2e3
|
|
337
|
+
},
|
|
338
|
+
removeOnComplete: 30,
|
|
339
|
+
removeOnFail: 100
|
|
340
|
+
},
|
|
341
|
+
streams: {
|
|
342
|
+
events: {
|
|
343
|
+
maxLen: 10
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
workerConfig: {
|
|
348
|
+
concurrency: 50,
|
|
349
|
+
lockDuration: 9e4,
|
|
350
|
+
maxStalledCount: 3
|
|
351
|
+
}
|
|
352
|
+
},
|
|
329
353
|
CONTENT_ELASTIC_SYNC_QUEUE: {
|
|
330
354
|
id: "content-elastic-sync-queue",
|
|
331
355
|
queueConfig: {
|
|
@@ -3663,54 +3687,28 @@ var autoGenFilterConfigsFromTpl = ({
|
|
|
3663
3687
|
};
|
|
3664
3688
|
|
|
3665
3689
|
// src/utils/genCleanCamelCaseId.ts
|
|
3666
|
-
var
|
|
3690
|
+
var MAX_LENGTH = 40;
|
|
3691
|
+
function fnv1a(str, length = 8) {
|
|
3692
|
+
let hash = 2166136261;
|
|
3693
|
+
for (let i = 0; i < str.length; i++) {
|
|
3694
|
+
hash ^= str.charCodeAt(i);
|
|
3695
|
+
hash = hash * 16777619 >>> 0;
|
|
3696
|
+
}
|
|
3697
|
+
return hash.toString(36).slice(0, length);
|
|
3698
|
+
}
|
|
3699
|
+
var genCleanCamelCaseId = (id) => {
|
|
3667
3700
|
if (!id || typeof id !== "string") return id;
|
|
3668
|
-
|
|
3669
|
-
const baseClean = /^\p{Ll}[\p{L}\p{N}]*$/u.test(id) || /^a\d[\p{L}\p{N}]*$/u.test(id);
|
|
3670
|
-
const withinMaxLength = maxLength ? id.length <= maxLength : true;
|
|
3671
|
-
const hasNoNonAlpha = stripNonAlphanumeric ? /^[a-zA-Z0-9]+$/.test(id) : true;
|
|
3672
|
-
if (baseClean && withinMaxLength && hasNoNonAlpha) return id;
|
|
3701
|
+
if ((/^[a-z][a-zA-Z0-9]*$/.test(id) || /^a\d[a-zA-Z0-9]*$/.test(id)) && id.length <= MAX_LENGTH) return id;
|
|
3673
3702
|
const words = id.split(/[^\p{L}\p{N}]+/u).filter(Boolean);
|
|
3674
3703
|
if (words.length === 0) return "a";
|
|
3675
3704
|
let result = words.map((word, i) => {
|
|
3676
3705
|
const lower = word.toLowerCase();
|
|
3677
3706
|
return i === 0 ? lower : lower.charAt(0).toUpperCase() + lower.slice(1);
|
|
3678
3707
|
}).join("");
|
|
3708
|
+
const strippedResult = result.replace(/[^a-zA-Z0-9]/g, "");
|
|
3709
|
+
result = strippedResult || fnv1a(result);
|
|
3679
3710
|
if (/^\d/.test(result)) result = "a" + result;
|
|
3680
|
-
|
|
3681
|
-
result = result.replace(/[^a-zA-Z0-9]/g, "");
|
|
3682
|
-
}
|
|
3683
|
-
if (maxLength) {
|
|
3684
|
-
result = result.slice(0, maxLength);
|
|
3685
|
-
}
|
|
3686
|
-
return result;
|
|
3687
|
-
};
|
|
3688
|
-
|
|
3689
|
-
// src/utils/genCleanContentTypeId.ts
|
|
3690
|
-
var genCleanContentTypeId = (text) => genCleanCamelCaseId(text, { stripNonAlphanumeric: true, maxLength: 40 });
|
|
3691
|
-
|
|
3692
|
-
// src/utils/genCleanValuePath.ts
|
|
3693
|
-
var CHARS = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
3694
|
-
function genShortId(length = 4) {
|
|
3695
|
-
let result = "";
|
|
3696
|
-
for (let i = 0; i < length; i++) {
|
|
3697
|
-
result += CHARS[Math.floor(Math.random() * CHARS.length)];
|
|
3698
|
-
}
|
|
3699
|
-
return result;
|
|
3700
|
-
}
|
|
3701
|
-
var genCleanValuePath = (text) => {
|
|
3702
|
-
const maxLength = 10;
|
|
3703
|
-
const shortIdLength = 4;
|
|
3704
|
-
if (!text || typeof text !== "string") return text;
|
|
3705
|
-
const idempotencyPattern = new RegExp(`^[a-z][a-z0-9]*_[a-z0-9]{${shortIdLength}}$`);
|
|
3706
|
-
if (idempotencyPattern.test(text)) return text;
|
|
3707
|
-
let cleaned = text.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
|
|
3708
|
-
if (!cleaned) {
|
|
3709
|
-
throw new Error(`[genCleanValuePath] Input "${text}" contains no alphanumeric characters`);
|
|
3710
|
-
}
|
|
3711
|
-
if (/^\d/.test(cleaned)) cleaned = "a" + cleaned;
|
|
3712
|
-
const truncated = cleaned.slice(0, maxLength);
|
|
3713
|
-
return `${truncated}_${genShortId(shortIdLength)}`;
|
|
3711
|
+
return result.slice(0, MAX_LENGTH);
|
|
3714
3712
|
};
|
|
3715
3713
|
|
|
3716
3714
|
// src/node.ts
|
|
@@ -4145,8 +4143,6 @@ export {
|
|
|
4145
4143
|
extractAllBlocksFromTpl,
|
|
4146
4144
|
extractAndOrganizeBlocks,
|
|
4147
4145
|
genCleanCamelCaseId,
|
|
4148
|
-
genCleanContentTypeId,
|
|
4149
|
-
genCleanValuePath,
|
|
4150
4146
|
genTagId,
|
|
4151
4147
|
generateFilterKey,
|
|
4152
4148
|
export_getAIChatModelByTenant as getAIChatModelByTenant,
|
package/dist/universal.d.mts
CHANGED
|
@@ -669,7 +669,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
669
669
|
}
|
|
670
670
|
export { workerConfig_9 as workerConfig };
|
|
671
671
|
}
|
|
672
|
-
namespace
|
|
672
|
+
namespace USERS_ELASTIC_SYNC_QUEUE {
|
|
673
673
|
let id_10: string;
|
|
674
674
|
export { id_10 as id };
|
|
675
675
|
export namespace queueConfig_10 {
|
|
@@ -709,7 +709,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
709
709
|
}
|
|
710
710
|
export { workerConfig_10 as workerConfig };
|
|
711
711
|
}
|
|
712
|
-
namespace
|
|
712
|
+
namespace CONTENT_ELASTIC_SYNC_QUEUE {
|
|
713
713
|
let id_11: string;
|
|
714
714
|
export { id_11 as id };
|
|
715
715
|
export namespace queueConfig_11 {
|
|
@@ -723,8 +723,6 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
723
723
|
export { delay_11 as delay };
|
|
724
724
|
}
|
|
725
725
|
export { backoff_11 as backoff };
|
|
726
|
-
let delay_12: number;
|
|
727
|
-
export { delay_12 as delay };
|
|
728
726
|
let removeOnComplete_11: number;
|
|
729
727
|
export { removeOnComplete_11 as removeOnComplete };
|
|
730
728
|
let removeOnFail_11: number;
|
|
@@ -751,6 +749,48 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
751
749
|
}
|
|
752
750
|
export { workerConfig_11 as workerConfig };
|
|
753
751
|
}
|
|
752
|
+
namespace REINDEX_QUEUE {
|
|
753
|
+
let id_12: string;
|
|
754
|
+
export { id_12 as id };
|
|
755
|
+
export namespace queueConfig_12 {
|
|
756
|
+
export namespace defaultJobOptions_12 {
|
|
757
|
+
let attempts_12: number;
|
|
758
|
+
export { attempts_12 as attempts };
|
|
759
|
+
export namespace backoff_12 {
|
|
760
|
+
let type_12: string;
|
|
761
|
+
export { type_12 as type };
|
|
762
|
+
let delay_12: number;
|
|
763
|
+
export { delay_12 as delay };
|
|
764
|
+
}
|
|
765
|
+
export { backoff_12 as backoff };
|
|
766
|
+
let delay_13: number;
|
|
767
|
+
export { delay_13 as delay };
|
|
768
|
+
let removeOnComplete_12: number;
|
|
769
|
+
export { removeOnComplete_12 as removeOnComplete };
|
|
770
|
+
let removeOnFail_12: number;
|
|
771
|
+
export { removeOnFail_12 as removeOnFail };
|
|
772
|
+
}
|
|
773
|
+
export { defaultJobOptions_12 as defaultJobOptions };
|
|
774
|
+
export namespace streams_12 {
|
|
775
|
+
export namespace events_12 {
|
|
776
|
+
let maxLen_12: number;
|
|
777
|
+
export { maxLen_12 as maxLen };
|
|
778
|
+
}
|
|
779
|
+
export { events_12 as events };
|
|
780
|
+
}
|
|
781
|
+
export { streams_12 as streams };
|
|
782
|
+
}
|
|
783
|
+
export { queueConfig_12 as queueConfig };
|
|
784
|
+
export namespace workerConfig_12 {
|
|
785
|
+
let concurrency_12: number;
|
|
786
|
+
export { concurrency_12 as concurrency };
|
|
787
|
+
let lockDuration_12: number;
|
|
788
|
+
export { lockDuration_12 as lockDuration };
|
|
789
|
+
let maxStalledCount_12: number;
|
|
790
|
+
export { maxStalledCount_12 as maxStalledCount };
|
|
791
|
+
}
|
|
792
|
+
export { workerConfig_12 as workerConfig };
|
|
793
|
+
}
|
|
754
794
|
}
|
|
755
795
|
|
|
756
796
|
interface PlatformContextContentItem {
|
|
@@ -1260,49 +1300,27 @@ declare const UI_CONTENT: {
|
|
|
1260
1300
|
};
|
|
1261
1301
|
};
|
|
1262
1302
|
|
|
1263
|
-
interface GenCleanCamelCaseIdOptions {
|
|
1264
|
-
/** Strip all non-alphanumeric chars (A-Z, a-z, 0-9 only). Default: false */
|
|
1265
|
-
stripNonAlphanumeric?: boolean;
|
|
1266
|
-
/** Truncate result to this max length. Default: no limit */
|
|
1267
|
-
maxLength?: number;
|
|
1268
|
-
}
|
|
1269
|
-
declare const genCleanCamelCaseId: (id: string, options?: GenCleanCamelCaseIdOptions) => string;
|
|
1270
|
-
|
|
1271
1303
|
/**
|
|
1272
|
-
* Generates a clean, deterministic
|
|
1273
|
-
* Wraps genCleanCamelCaseId with stripNonAlphanumeric + maxLength 40.
|
|
1304
|
+
* Generates a clean, deterministic, alphanumeric camelCase ID from text.
|
|
1274
1305
|
*
|
|
1275
|
-
*
|
|
1306
|
+
* 1. Splits on non-alphanumeric characters, builds camelCase
|
|
1307
|
+
* 2. Strips all non a-zA-Z0-9 from result
|
|
1308
|
+
* 3. If input had no unicode letters/numbers at all (e.g. "---"), returns 'a'
|
|
1309
|
+
* 4. If camelCase had content but nothing survived ASCII strip (pure non-Latin),
|
|
1310
|
+
* generates a deterministic hash (FNV-1a) of the unicode camelCase
|
|
1311
|
+
* 5. Prepends 'a' if starts with digit
|
|
1312
|
+
* 6. Truncates to 40 chars
|
|
1276
1313
|
*
|
|
1277
|
-
*
|
|
1278
|
-
* genCleanContentTypeId("My Articles!") => "myArticles"
|
|
1279
|
-
* genCleanContentTypeId("myArticles") => "myArticles" (idempotent)
|
|
1280
|
-
* genCleanContentTypeId("123 Test") => "a123Test"
|
|
1281
|
-
*/
|
|
1282
|
-
declare const genCleanContentTypeId: (text: string) => string;
|
|
1283
|
-
|
|
1284
|
-
/**
|
|
1285
|
-
* Generates a clean, short, unique ID from text input.
|
|
1286
|
-
* Used for block valuePaths in templates.
|
|
1287
|
-
*
|
|
1288
|
-
* 1. Strips all characters except A-Z, a-z, 0-9
|
|
1289
|
-
* 2. Lowercases the result
|
|
1290
|
-
* 3. Prepends 'a' if starts with a digit
|
|
1291
|
-
* 4. Truncates to maxLength (default 10)
|
|
1292
|
-
* 5. Appends _{random id} (default 4 chars)
|
|
1293
|
-
*
|
|
1294
|
-
* Idempotent: if input already matches the output pattern
|
|
1295
|
-
* (lowercase alphanumeric + _hash suffix), returns as-is.
|
|
1296
|
-
*
|
|
1297
|
-
* @param text - The input text to convert
|
|
1298
|
-
* @param maxLength - Max characters before the random suffix (default 10)
|
|
1299
|
-
* @param shortIdLength - Length of the random suffix (default 4)
|
|
1314
|
+
* Idempotent: running twice produces the same output.
|
|
1300
1315
|
*
|
|
1301
1316
|
* @example
|
|
1302
|
-
*
|
|
1303
|
-
*
|
|
1304
|
-
*
|
|
1317
|
+
* genCleanCamelCaseId("Author Name") => "authorName"
|
|
1318
|
+
* genCleanCamelCaseId("authorName") => "authorName" (idempotent)
|
|
1319
|
+
* genCleanCamelCaseId("123 Test") => "a123Test"
|
|
1320
|
+
* genCleanCamelCaseId("café latté") => "cafLatt"
|
|
1321
|
+
* genCleanCamelCaseId("مرحبا") => deterministic hash
|
|
1322
|
+
* genCleanCamelCaseId("---") => "a"
|
|
1305
1323
|
*/
|
|
1306
|
-
declare const
|
|
1324
|
+
declare const genCleanCamelCaseId: (id: string) => string;
|
|
1307
1325
|
|
|
1308
|
-
export { BASE_BULLMQ_CONFIG, FILTER_IDS, TEMP_removeDuplicateFilters, UI_CONTENT, _self_managed_buildAnnoHierarchyConfig, _self_managed_buildDocHierarchyConfig, _self_managed_getFixedAnnoRollupBlocks, _self_managed_getFixedAnnoTagBlock, autoGenFilterConfigsFromTpl, buildFilterConfigurations, compareAndGroupBlocks, deleteVal, extractAllBlocksFromTpl, extractAndOrganizeBlocks, genCleanCamelCaseId,
|
|
1326
|
+
export { BASE_BULLMQ_CONFIG, FILTER_IDS, TEMP_removeDuplicateFilters, UI_CONTENT, _self_managed_buildAnnoHierarchyConfig, _self_managed_buildDocHierarchyConfig, _self_managed_getFixedAnnoRollupBlocks, _self_managed_getFixedAnnoTagBlock, autoGenFilterConfigsFromTpl, buildFilterConfigurations, compareAndGroupBlocks, deleteVal, extractAllBlocksFromTpl, extractAndOrganizeBlocks, genCleanCamelCaseId, genTagId, generateFilterKey, getFilterKeyForBlock, getPlatformContextContent, getRollupPossibilities, getRoutePathToEditContent, getRoutePathToModerateContent, getRoutePathToPublishedContent, getVal, mergeAnnoDataIntoAnnotationsTags, parseSpecialConfigSyntax, processAuthorAndCommonFilters, _recursExtractBlocks as recursivelyExtractBlocks, segrigateDocs, setVal, toArray };
|
package/dist/universal.d.ts
CHANGED
|
@@ -669,7 +669,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
669
669
|
}
|
|
670
670
|
export { workerConfig_9 as workerConfig };
|
|
671
671
|
}
|
|
672
|
-
namespace
|
|
672
|
+
namespace USERS_ELASTIC_SYNC_QUEUE {
|
|
673
673
|
let id_10: string;
|
|
674
674
|
export { id_10 as id };
|
|
675
675
|
export namespace queueConfig_10 {
|
|
@@ -709,7 +709,7 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
709
709
|
}
|
|
710
710
|
export { workerConfig_10 as workerConfig };
|
|
711
711
|
}
|
|
712
|
-
namespace
|
|
712
|
+
namespace CONTENT_ELASTIC_SYNC_QUEUE {
|
|
713
713
|
let id_11: string;
|
|
714
714
|
export { id_11 as id };
|
|
715
715
|
export namespace queueConfig_11 {
|
|
@@ -723,8 +723,6 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
723
723
|
export { delay_11 as delay };
|
|
724
724
|
}
|
|
725
725
|
export { backoff_11 as backoff };
|
|
726
|
-
let delay_12: number;
|
|
727
|
-
export { delay_12 as delay };
|
|
728
726
|
let removeOnComplete_11: number;
|
|
729
727
|
export { removeOnComplete_11 as removeOnComplete };
|
|
730
728
|
let removeOnFail_11: number;
|
|
@@ -751,6 +749,48 @@ declare namespace BASE_BULLMQ_CONFIG {
|
|
|
751
749
|
}
|
|
752
750
|
export { workerConfig_11 as workerConfig };
|
|
753
751
|
}
|
|
752
|
+
namespace REINDEX_QUEUE {
|
|
753
|
+
let id_12: string;
|
|
754
|
+
export { id_12 as id };
|
|
755
|
+
export namespace queueConfig_12 {
|
|
756
|
+
export namespace defaultJobOptions_12 {
|
|
757
|
+
let attempts_12: number;
|
|
758
|
+
export { attempts_12 as attempts };
|
|
759
|
+
export namespace backoff_12 {
|
|
760
|
+
let type_12: string;
|
|
761
|
+
export { type_12 as type };
|
|
762
|
+
let delay_12: number;
|
|
763
|
+
export { delay_12 as delay };
|
|
764
|
+
}
|
|
765
|
+
export { backoff_12 as backoff };
|
|
766
|
+
let delay_13: number;
|
|
767
|
+
export { delay_13 as delay };
|
|
768
|
+
let removeOnComplete_12: number;
|
|
769
|
+
export { removeOnComplete_12 as removeOnComplete };
|
|
770
|
+
let removeOnFail_12: number;
|
|
771
|
+
export { removeOnFail_12 as removeOnFail };
|
|
772
|
+
}
|
|
773
|
+
export { defaultJobOptions_12 as defaultJobOptions };
|
|
774
|
+
export namespace streams_12 {
|
|
775
|
+
export namespace events_12 {
|
|
776
|
+
let maxLen_12: number;
|
|
777
|
+
export { maxLen_12 as maxLen };
|
|
778
|
+
}
|
|
779
|
+
export { events_12 as events };
|
|
780
|
+
}
|
|
781
|
+
export { streams_12 as streams };
|
|
782
|
+
}
|
|
783
|
+
export { queueConfig_12 as queueConfig };
|
|
784
|
+
export namespace workerConfig_12 {
|
|
785
|
+
let concurrency_12: number;
|
|
786
|
+
export { concurrency_12 as concurrency };
|
|
787
|
+
let lockDuration_12: number;
|
|
788
|
+
export { lockDuration_12 as lockDuration };
|
|
789
|
+
let maxStalledCount_12: number;
|
|
790
|
+
export { maxStalledCount_12 as maxStalledCount };
|
|
791
|
+
}
|
|
792
|
+
export { workerConfig_12 as workerConfig };
|
|
793
|
+
}
|
|
754
794
|
}
|
|
755
795
|
|
|
756
796
|
interface PlatformContextContentItem {
|
|
@@ -1260,49 +1300,27 @@ declare const UI_CONTENT: {
|
|
|
1260
1300
|
};
|
|
1261
1301
|
};
|
|
1262
1302
|
|
|
1263
|
-
interface GenCleanCamelCaseIdOptions {
|
|
1264
|
-
/** Strip all non-alphanumeric chars (A-Z, a-z, 0-9 only). Default: false */
|
|
1265
|
-
stripNonAlphanumeric?: boolean;
|
|
1266
|
-
/** Truncate result to this max length. Default: no limit */
|
|
1267
|
-
maxLength?: number;
|
|
1268
|
-
}
|
|
1269
|
-
declare const genCleanCamelCaseId: (id: string, options?: GenCleanCamelCaseIdOptions) => string;
|
|
1270
|
-
|
|
1271
1303
|
/**
|
|
1272
|
-
* Generates a clean, deterministic
|
|
1273
|
-
* Wraps genCleanCamelCaseId with stripNonAlphanumeric + maxLength 40.
|
|
1304
|
+
* Generates a clean, deterministic, alphanumeric camelCase ID from text.
|
|
1274
1305
|
*
|
|
1275
|
-
*
|
|
1306
|
+
* 1. Splits on non-alphanumeric characters, builds camelCase
|
|
1307
|
+
* 2. Strips all non a-zA-Z0-9 from result
|
|
1308
|
+
* 3. If input had no unicode letters/numbers at all (e.g. "---"), returns 'a'
|
|
1309
|
+
* 4. If camelCase had content but nothing survived ASCII strip (pure non-Latin),
|
|
1310
|
+
* generates a deterministic hash (FNV-1a) of the unicode camelCase
|
|
1311
|
+
* 5. Prepends 'a' if starts with digit
|
|
1312
|
+
* 6. Truncates to 40 chars
|
|
1276
1313
|
*
|
|
1277
|
-
*
|
|
1278
|
-
* genCleanContentTypeId("My Articles!") => "myArticles"
|
|
1279
|
-
* genCleanContentTypeId("myArticles") => "myArticles" (idempotent)
|
|
1280
|
-
* genCleanContentTypeId("123 Test") => "a123Test"
|
|
1281
|
-
*/
|
|
1282
|
-
declare const genCleanContentTypeId: (text: string) => string;
|
|
1283
|
-
|
|
1284
|
-
/**
|
|
1285
|
-
* Generates a clean, short, unique ID from text input.
|
|
1286
|
-
* Used for block valuePaths in templates.
|
|
1287
|
-
*
|
|
1288
|
-
* 1. Strips all characters except A-Z, a-z, 0-9
|
|
1289
|
-
* 2. Lowercases the result
|
|
1290
|
-
* 3. Prepends 'a' if starts with a digit
|
|
1291
|
-
* 4. Truncates to maxLength (default 10)
|
|
1292
|
-
* 5. Appends _{random id} (default 4 chars)
|
|
1293
|
-
*
|
|
1294
|
-
* Idempotent: if input already matches the output pattern
|
|
1295
|
-
* (lowercase alphanumeric + _hash suffix), returns as-is.
|
|
1296
|
-
*
|
|
1297
|
-
* @param text - The input text to convert
|
|
1298
|
-
* @param maxLength - Max characters before the random suffix (default 10)
|
|
1299
|
-
* @param shortIdLength - Length of the random suffix (default 4)
|
|
1314
|
+
* Idempotent: running twice produces the same output.
|
|
1300
1315
|
*
|
|
1301
1316
|
* @example
|
|
1302
|
-
*
|
|
1303
|
-
*
|
|
1304
|
-
*
|
|
1317
|
+
* genCleanCamelCaseId("Author Name") => "authorName"
|
|
1318
|
+
* genCleanCamelCaseId("authorName") => "authorName" (idempotent)
|
|
1319
|
+
* genCleanCamelCaseId("123 Test") => "a123Test"
|
|
1320
|
+
* genCleanCamelCaseId("café latté") => "cafLatt"
|
|
1321
|
+
* genCleanCamelCaseId("مرحبا") => deterministic hash
|
|
1322
|
+
* genCleanCamelCaseId("---") => "a"
|
|
1305
1323
|
*/
|
|
1306
|
-
declare const
|
|
1324
|
+
declare const genCleanCamelCaseId: (id: string) => string;
|
|
1307
1325
|
|
|
1308
|
-
export { BASE_BULLMQ_CONFIG, FILTER_IDS, TEMP_removeDuplicateFilters, UI_CONTENT, _self_managed_buildAnnoHierarchyConfig, _self_managed_buildDocHierarchyConfig, _self_managed_getFixedAnnoRollupBlocks, _self_managed_getFixedAnnoTagBlock, autoGenFilterConfigsFromTpl, buildFilterConfigurations, compareAndGroupBlocks, deleteVal, extractAllBlocksFromTpl, extractAndOrganizeBlocks, genCleanCamelCaseId,
|
|
1326
|
+
export { BASE_BULLMQ_CONFIG, FILTER_IDS, TEMP_removeDuplicateFilters, UI_CONTENT, _self_managed_buildAnnoHierarchyConfig, _self_managed_buildDocHierarchyConfig, _self_managed_getFixedAnnoRollupBlocks, _self_managed_getFixedAnnoTagBlock, autoGenFilterConfigsFromTpl, buildFilterConfigurations, compareAndGroupBlocks, deleteVal, extractAllBlocksFromTpl, extractAndOrganizeBlocks, genCleanCamelCaseId, genTagId, generateFilterKey, getFilterKeyForBlock, getPlatformContextContent, getRollupPossibilities, getRoutePathToEditContent, getRoutePathToModerateContent, getRoutePathToPublishedContent, getVal, mergeAnnoDataIntoAnnotationsTags, parseSpecialConfigSyntax, processAuthorAndCommonFilters, _recursExtractBlocks as recursivelyExtractBlocks, segrigateDocs, setVal, toArray };
|