@tinacms/search 0.0.0-ecea7ac-20241011043815 → 0.0.0-ee8d9a3-20250429131017
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/index-client.js +1 -0
- package/dist/index-client.js.map +1 -0
- package/dist/index-client.mjs +1 -0
- package/dist/index-client.mjs.map +1 -0
- package/dist/index.js +8 -3
- package/package.json +9 -9
package/dist/index-client.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-client.js","sources":["../src/indexer/utils.ts","../src/index-client.ts"],"sourcesContent":["import { Collection, ObjectField } from '@tinacms/schema-tools';\nimport * as sw from 'stopword';\n\nclass StringBuilder {\n private readonly buffer: string[];\n public length = 0;\n private readonly limit: number;\n constructor(limit: number) {\n this.buffer = [];\n this.limit = limit;\n }\n\n public append(str: string) {\n if (this.length + str.length > this.limit) {\n return true;\n } else {\n this.buffer.push(str);\n this.length += str.length;\n if (this.length > this.limit) {\n return true;\n }\n return false;\n }\n }\n\n public toString() {\n // NOTE this is going to add some length to the final string beyond the limit\n return this.buffer.join(' ');\n }\n}\n\nconst extractText = (\n data: any,\n acc: StringBuilder,\n indexableNodeTypes: string[]\n) => {\n if (data) {\n if (\n indexableNodeTypes.indexOf(data.type) !== -1 &&\n (data.text || data.value)\n ) {\n const tokens = tokenizeString(data.text || data.value);\n for (const token of tokens) {\n if (acc.append(token)) {\n return;\n }\n }\n }\n\n data.children?.forEach?.((child: any) =>\n extractText(child, acc, indexableNodeTypes)\n );\n }\n};\n\nconst relativePath = (path: string, collection: Collection) => {\n return path\n .replace(/\\\\/g, '/')\n .replace(collection.path, '')\n .replace(/^\\/|\\/$/g, '');\n};\n\nconst tokenizeString = (str: string) => {\n return str\n .split(/[\\s\\.,]+/)\n .map((s) => s.toLowerCase())\n .filter((s) => s);\n};\n\nconst processTextFieldValue = (value: string, maxLen: number) => {\n const tokens = tokenizeString(value);\n const builder = new StringBuilder(maxLen);\n for (const part of tokens) {\n if (builder.append(part)) {\n break;\n }\n }\n return builder.toString();\n};\n\nexport const processDocumentForIndexing = (\n data: any,\n path: string,\n collection: Collection,\n textIndexLength: number,\n field?: ObjectField\n) => {\n if (!field) {\n const relPath = relativePath(path, collection);\n data['_id'] = `${collection.name}:${relPath}`;\n data['_relativePath'] = relPath;\n }\n for (const f of field?.fields || collection.fields || []) {\n if (!f.searchable) {\n delete data[f.name];\n continue;\n }\n const isList = f.list;\n if (data[f.name]) {\n if (f.type === 'object') {\n if (isList) {\n data[f.name] = data[f.name].map((obj: any) =>\n processDocumentForIndexing(\n obj,\n path,\n collection,\n textIndexLength,\n f\n )\n );\n } else {\n data[f.name] = processDocumentForIndexing(\n data[f.name],\n path,\n collection,\n textIndexLength,\n f\n );\n }\n } else if (f.type === 'string') {\n const fieldTextIndexLength =\n f.maxSearchIndexFieldLength || textIndexLength;\n if (isList) {\n data[f.name] = data[f.name].map((value: string) =>\n processTextFieldValue(value, fieldTextIndexLength)\n );\n } else {\n data[f.name] = processTextFieldValue(\n data[f.name],\n fieldTextIndexLength\n );\n }\n } else if (f.type === 'rich-text') {\n const fieldTextIndexLength =\n f.maxSearchIndexFieldLength || textIndexLength;\n if (isList) {\n data[f.name] = data[f.name].map((value: any) => {\n const acc = new StringBuilder(fieldTextIndexLength);\n extractText(value, acc, ['text', 'code_block', 'html']);\n return acc.toString();\n });\n } else {\n const acc = new StringBuilder(fieldTextIndexLength);\n extractText(data[f.name], acc, ['text', 'code_block', 'html']);\n data[f.name] = acc.toString();\n }\n }\n }\n }\n return data;\n};\n\nconst memo: Record<string, string[]> = {};\nexport const lookupStopwords = (\n keys?: string[],\n defaultStopWords: string[] = sw.eng\n) => {\n let stopwords = defaultStopWords;\n if (keys) {\n if (memo[keys.join(',')]) {\n return memo[keys.join(',')];\n }\n stopwords = [];\n for (const key of keys) {\n stopwords.push(...sw[key]);\n }\n memo[keys.join(',')] = stopwords;\n }\n return stopwords;\n};\n","export type { SearchClient } from './types';\nexport { processDocumentForIndexing } from './indexer/utils';\nimport { lookupStopwords } from './indexer/utils';\n\nexport const queryToSearchIndexQuery = (\n query: string,\n stopwordLanguages?: string[]\n) => {\n let q;\n const parts = query.split(' ');\n const stopwords = lookupStopwords(stopwordLanguages);\n if (parts.length === 1) {\n q = { AND: [parts[0]] };\n } else {\n // TODO only allow AND for now - need parser\n q = {\n AND: parts.filter(\n (part) =>\n part.toLowerCase() !== 'and' &&\n stopwords.indexOf(part.toLowerCase()) === -1\n ),\n };\n }\n return q;\n};\n\nexport const optionsToSearchIndexOptions = (options?: {\n limit?: number;\n cursor?: string;\n}) => {\n const opt = {};\n if (options?.limit) {\n opt['PAGE'] = {\n SIZE: options.limit,\n NUMBER: options?.cursor ? parseInt(options.cursor) : 0,\n };\n }\n return opt;\n};\n\nexport const parseSearchIndexResponse = (\n data: any,\n options?: {\n limit?: number;\n cursor?: string;\n }\n) => {\n const results = data['RESULT'];\n const total = data['RESULT_LENGTH'];\n if (options?.cursor && options?.limit) {\n const prevCursor =\n options.cursor === '0' ? null : (parseInt(options.cursor) - 1).toString();\n const nextCursor =\n total <= (parseInt(options.cursor) + 1) * options.limit\n ? null\n : (parseInt(options.cursor) + 1).toString();\n return {\n results,\n total,\n prevCursor,\n nextCursor,\n };\n } else if (!options?.cursor && options?.limit) {\n const prevCursor = null;\n const nextCursor = total <= options.limit ? null : '1';\n return {\n results,\n total,\n prevCursor,\n nextCursor,\n };\n } else {\n return {\n results,\n total,\n prevCursor: null,\n nextCursor: null,\n };\n }\n};\n"],"names":["sw"],"mappings":"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"}
|
package/dist/index-client.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-client.mjs","sources":["../src/indexer/utils.ts","../src/index-client.ts"],"sourcesContent":["import { Collection, ObjectField } from '@tinacms/schema-tools';\nimport * as sw from 'stopword';\n\nclass StringBuilder {\n private readonly buffer: string[];\n public length = 0;\n private readonly limit: number;\n constructor(limit: number) {\n this.buffer = [];\n this.limit = limit;\n }\n\n public append(str: string) {\n if (this.length + str.length > this.limit) {\n return true;\n } else {\n this.buffer.push(str);\n this.length += str.length;\n if (this.length > this.limit) {\n return true;\n }\n return false;\n }\n }\n\n public toString() {\n // NOTE this is going to add some length to the final string beyond the limit\n return this.buffer.join(' ');\n }\n}\n\nconst extractText = (\n data: any,\n acc: StringBuilder,\n indexableNodeTypes: string[]\n) => {\n if (data) {\n if (\n indexableNodeTypes.indexOf(data.type) !== -1 &&\n (data.text || data.value)\n ) {\n const tokens = tokenizeString(data.text || data.value);\n for (const token of tokens) {\n if (acc.append(token)) {\n return;\n }\n }\n }\n\n data.children?.forEach?.((child: any) =>\n extractText(child, acc, indexableNodeTypes)\n );\n }\n};\n\nconst relativePath = (path: string, collection: Collection) => {\n return path\n .replace(/\\\\/g, '/')\n .replace(collection.path, '')\n .replace(/^\\/|\\/$/g, '');\n};\n\nconst tokenizeString = (str: string) => {\n return str\n .split(/[\\s\\.,]+/)\n .map((s) => s.toLowerCase())\n .filter((s) => s);\n};\n\nconst processTextFieldValue = (value: string, maxLen: number) => {\n const tokens = tokenizeString(value);\n const builder = new StringBuilder(maxLen);\n for (const part of tokens) {\n if (builder.append(part)) {\n break;\n }\n }\n return builder.toString();\n};\n\nexport const processDocumentForIndexing = (\n data: any,\n path: string,\n collection: Collection,\n textIndexLength: number,\n field?: ObjectField\n) => {\n if (!field) {\n const relPath = relativePath(path, collection);\n data['_id'] = `${collection.name}:${relPath}`;\n data['_relativePath'] = relPath;\n }\n for (const f of field?.fields || collection.fields || []) {\n if (!f.searchable) {\n delete data[f.name];\n continue;\n }\n const isList = f.list;\n if (data[f.name]) {\n if (f.type === 'object') {\n if (isList) {\n data[f.name] = data[f.name].map((obj: any) =>\n processDocumentForIndexing(\n obj,\n path,\n collection,\n textIndexLength,\n f\n )\n );\n } else {\n data[f.name] = processDocumentForIndexing(\n data[f.name],\n path,\n collection,\n textIndexLength,\n f\n );\n }\n } else if (f.type === 'string') {\n const fieldTextIndexLength =\n f.maxSearchIndexFieldLength || textIndexLength;\n if (isList) {\n data[f.name] = data[f.name].map((value: string) =>\n processTextFieldValue(value, fieldTextIndexLength)\n );\n } else {\n data[f.name] = processTextFieldValue(\n data[f.name],\n fieldTextIndexLength\n );\n }\n } else if (f.type === 'rich-text') {\n const fieldTextIndexLength =\n f.maxSearchIndexFieldLength || textIndexLength;\n if (isList) {\n data[f.name] = data[f.name].map((value: any) => {\n const acc = new StringBuilder(fieldTextIndexLength);\n extractText(value, acc, ['text', 'code_block', 'html']);\n return acc.toString();\n });\n } else {\n const acc = new StringBuilder(fieldTextIndexLength);\n extractText(data[f.name], acc, ['text', 'code_block', 'html']);\n data[f.name] = acc.toString();\n }\n }\n }\n }\n return data;\n};\n\nconst memo: Record<string, string[]> = {};\nexport const lookupStopwords = (\n keys?: string[],\n defaultStopWords: string[] = sw.eng\n) => {\n let stopwords = defaultStopWords;\n if (keys) {\n if (memo[keys.join(',')]) {\n return memo[keys.join(',')];\n }\n stopwords = [];\n for (const key of keys) {\n stopwords.push(...sw[key]);\n }\n memo[keys.join(',')] = stopwords;\n }\n return stopwords;\n};\n","export type { SearchClient } from './types';\nexport { processDocumentForIndexing } from './indexer/utils';\nimport { lookupStopwords } from './indexer/utils';\n\nexport const queryToSearchIndexQuery = (\n query: string,\n stopwordLanguages?: string[]\n) => {\n let q;\n const parts = query.split(' ');\n const stopwords = lookupStopwords(stopwordLanguages);\n if (parts.length === 1) {\n q = { AND: [parts[0]] };\n } else {\n // TODO only allow AND for now - need parser\n q = {\n AND: parts.filter(\n (part) =>\n part.toLowerCase() !== 'and' &&\n stopwords.indexOf(part.toLowerCase()) === -1\n ),\n };\n }\n return q;\n};\n\nexport const optionsToSearchIndexOptions = (options?: {\n limit?: number;\n cursor?: string;\n}) => {\n const opt = {};\n if (options?.limit) {\n opt['PAGE'] = {\n SIZE: options.limit,\n NUMBER: options?.cursor ? parseInt(options.cursor) : 0,\n };\n }\n return opt;\n};\n\nexport const parseSearchIndexResponse = (\n data: any,\n options?: {\n limit?: number;\n cursor?: string;\n }\n) => {\n const results = data['RESULT'];\n const total = data['RESULT_LENGTH'];\n if (options?.cursor && options?.limit) {\n const prevCursor =\n options.cursor === '0' ? null : (parseInt(options.cursor) - 1).toString();\n const nextCursor =\n total <= (parseInt(options.cursor) + 1) * options.limit\n ? null\n : (parseInt(options.cursor) + 1).toString();\n return {\n results,\n total,\n prevCursor,\n nextCursor,\n };\n } else if (!options?.cursor && options?.limit) {\n const prevCursor = null;\n const nextCursor = total <= options.limit ? null : '1';\n return {\n results,\n total,\n prevCursor,\n nextCursor,\n };\n } else {\n return {\n results,\n total,\n prevCursor: null,\n nextCursor: null,\n };\n }\n};\n"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -17,20 +17,24 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
return to;
|
|
18
18
|
};
|
|
19
19
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
24
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
25
|
mod
|
|
22
26
|
));
|
|
23
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
28
|
|
|
25
29
|
// src/index.ts
|
|
26
|
-
var
|
|
27
|
-
__export(
|
|
30
|
+
var index_exports = {};
|
|
31
|
+
__export(index_exports, {
|
|
28
32
|
LocalSearchIndexClient: () => LocalSearchIndexClient,
|
|
29
33
|
SearchIndexer: () => SearchIndexer,
|
|
30
34
|
TinaCMSSearchIndexClient: () => TinaCMSSearchIndexClient,
|
|
31
35
|
si: () => import_search_index2.default
|
|
32
36
|
});
|
|
33
|
-
module.exports = __toCommonJS(
|
|
37
|
+
module.exports = __toCommonJS(index_exports);
|
|
34
38
|
var import_search_index2 = __toESM(require("search-index"));
|
|
35
39
|
|
|
36
40
|
// src/indexer/index.ts
|
|
@@ -275,6 +279,7 @@ var LocalSearchIndexClient = class {
|
|
|
275
279
|
}
|
|
276
280
|
async onStartIndexing() {
|
|
277
281
|
this.searchIndex = await (0, import_search_index.default)({
|
|
282
|
+
// @ts-ignore
|
|
278
283
|
db: this.memoryLevel,
|
|
279
284
|
stopwords: this.stopwords,
|
|
280
285
|
tokenSplitRegex: this.tokenSplitRegex
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tinacms/search",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-ee8d9a3-20250429131017",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/index-client.mjs",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"memory-level": "^1.0.0",
|
|
33
33
|
"search-index": "4.0.0",
|
|
34
|
-
"sqlite-level": "^1.2.
|
|
35
|
-
"stopword": "^3.1.
|
|
36
|
-
"@tinacms/graphql": "0.0.0-
|
|
37
|
-
"@tinacms/schema-tools": "
|
|
34
|
+
"sqlite-level": "^1.2.1",
|
|
35
|
+
"stopword": "^3.1.4",
|
|
36
|
+
"@tinacms/graphql": "0.0.0-ee8d9a3-20250429131017",
|
|
37
|
+
"@tinacms/schema-tools": "1.7.3"
|
|
38
38
|
},
|
|
39
39
|
"publishConfig": {
|
|
40
40
|
"registry": "https://registry.npmjs.org"
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
"directory": "packages/@tinacms/search"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@types/jest": "^29.5.
|
|
47
|
+
"@types/jest": "^29.5.14",
|
|
48
48
|
"@types/micromatch": "^4.0.9",
|
|
49
|
-
"@types/node": "^22.
|
|
49
|
+
"@types/node": "^22.13.1",
|
|
50
50
|
"@types/search-index": "^3.2.4",
|
|
51
51
|
"jest": "^29.7.0",
|
|
52
52
|
"jest-diff": "^29.7.0",
|
|
53
53
|
"jest-file-snapshot": "^0.7.0",
|
|
54
54
|
"jest-matcher-utils": "^29.7.0",
|
|
55
|
-
"typescript": "^5.
|
|
56
|
-
"@tinacms/scripts": "
|
|
55
|
+
"typescript": "^5.7.3",
|
|
56
|
+
"@tinacms/scripts": "1.3.4"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"types": "pnpm tsc",
|