New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@orama/orama

Package Overview
Dependencies
Maintainers
1
Versions
94
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@orama/orama - npm Package Compare versions

Comparing version 1.0.4 to 1.0.5

3

dist/components/hooks.d.ts

@@ -1,2 +0,2 @@

import { Document, MultipleCallbackComponent, Orama, ProvidedTypes, SingleCallbackComponent } from '../types.js';
import { AfterSearch, Document, MultipleCallbackComponent, Orama, ProvidedTypes, Results, SearchParams, SingleCallbackComponent } from '../types.js';
export declare const OBJECT_COMPONENTS: string[];

@@ -7,1 +7,2 @@ export declare const FUNCTION_COMPONENTS: string[];

export declare function runMultipleHook<P extends ProvidedTypes>(hooks: MultipleCallbackComponent<P>[], orama: Orama<P>, docsOrIds: Document[] | string[]): Promise<void>;
export declare function runAfterSearch<P extends ProvidedTypes, AggValue>(hooks: AfterSearch<P>[], db: Orama<P>, params: SearchParams<AggValue>, language: string | undefined, results: Results<AggValue>): Promise<void>;

@@ -20,2 +20,3 @@ export const OBJECT_COMPONENTS = [

'afterUpdate',
'afterSearch',
'beforeMultipleInsert',

@@ -29,3 +30,4 @@ 'afterMultipleInsert',

export async function runSingleHook(hooks, orama, id, doc) {
for(let i = 0; i < hooks.length; i++){
const hooksLength = hooks.length;
for(let i = 0; i < hooksLength; i++){
await hooks[i](orama, id, doc);

@@ -35,7 +37,14 @@ }

export async function runMultipleHook(hooks, orama, docsOrIds) {
for(let i = 0; i < hooks.length; i++){
const hooksLength = hooks.length;
for(let i = 0; i < hooksLength; i++){
await hooks[i](orama, docsOrIds);
}
}
export async function runAfterSearch(hooks, db, params, language, results) {
const hooksLength = hooks.length;
for(let i = 0; i < hooksLength; i++){
await hooks[i](db, params, language, results);
}
}
//# sourceMappingURL=hooks.js.map

@@ -29,3 +29,4 @@ import { formatElapsedTime, getDocumentIndexId, getDocumentProperties, validateSchema } from '../components/defaults.js';

const key = rawKey;
if (!components[key]) {
const component = components[key];
if (!component) {
components[key] = [];

@@ -80,3 +81,3 @@ } else if (!Array.isArray(components[key])) {

// Assign only recognized components and hooks
const { getDocumentProperties , getDocumentIndexId , validateSchema , beforeInsert , afterInsert , beforeRemove , afterRemove , beforeUpdate , afterUpdate , beforeMultipleInsert , afterMultipleInsert , beforeMultipleRemove , afterMultipleRemove , beforeMultipleUpdate , afterMultipleUpdate , formatElapsedTime } = components;
const { getDocumentProperties , getDocumentIndexId , validateSchema , beforeInsert , afterInsert , beforeRemove , afterRemove , beforeUpdate , afterUpdate , afterSearch , beforeMultipleInsert , afterMultipleInsert , beforeMultipleRemove , afterMultipleRemove , beforeMultipleUpdate , afterMultipleUpdate , formatElapsedTime } = components;
const orama = {

@@ -99,2 +100,3 @@ data: {},

afterUpdate,
afterSearch,
beforeMultipleInsert,

@@ -101,0 +103,0 @@ afterMultipleInsert,

@@ -5,2 +5,3 @@ import { prioritizeTokenScores } from '../components/algorithms.js';

import { getGroups } from '../components/groups.js';
import { runAfterSearch } from '../components/hooks.js';
import { createError } from '../errors.js';

@@ -13,3 +14,3 @@ import { getNanosecondsTime, getNested, sortTokenScorePredicate } from '../utils.js';

};
async function createSearchContext(tokenizer, index, documentsStore, language, params, properties, tokens, docsCount) {
async function createSearchContext(tokenizer, index, documentsStore, language, params, properties, tokens, docsCount, timeStart) {
// If filters are enabled, we need to get the IDs of the documents that match the filters.

@@ -54,3 +55,3 @@ // const hasFilters = Object.keys(params.where ?? {}).length > 0;

return {
timeStart: await getNanosecondsTime(),
timeStart,
tokenizer,

@@ -68,2 +69,3 @@ index,

export async function search(orama, params, language) {
const timeStart = await getNanosecondsTime();
params.relevance = Object.assign(params.relevance ?? {}, defaultBM25Params);

@@ -92,3 +94,3 @@ const shouldCalculateFacets = params.facets && Object.keys(params.facets).length > 0;

// Create the search context and the results
const context = await createSearchContext(orama.tokenizer, orama.index, orama.documentsStore, language, params, propertiesToSearch, tokens, await orama.documentsStore.count(docs));
const context = await createSearchContext(orama.tokenizer, orama.index, orama.documentsStore, language, params, propertiesToSearch, tokens, await orama.documentsStore.count(docs), timeStart);
// If filters are enabled, we need to get the IDs of the documents that match the filters.

@@ -173,4 +175,4 @@ const hasFilters = Object.keys(params.where ?? {}).length > 0;

elapsed: {
raw: 0,
formatted: ''
formatted: '',
raw: 0
},

@@ -192,2 +194,6 @@ // We keep the hits array empty if it's a preflight request.

}
if (orama.afterSearch) {
await runAfterSearch(orama.afterSearch, orama, params, language, searchResult);
}
// Calculate elapsed time only at the end of the function
searchResult.elapsed = await orama.formatElapsedTime(await getNanosecondsTime() - context.timeStart);

@@ -194,0 +200,0 @@ return searchResult;

@@ -170,3 +170,2 @@ const BALANCE_STATE = {

} else {
// assuming value is an array here
current.value = current.value.concat(value);

@@ -178,3 +177,4 @@ return root;

if (!parent) {
root = newNode; // tree was empty
root = newNode // tree was empty
;
} else if (key < parent.key) {

@@ -181,0 +181,0 @@ parent.left = newNode;

@@ -326,4 +326,5 @@ import { Language } from './components/tokenizer/languages.js';

};
export type SingleCallbackComponent<A extends ProvidedTypes> = (orama: Orama<A>, id: string, doc?: Document) => SyncOrAsyncValue;
export type MultipleCallbackComponent<A extends ProvidedTypes> = (orama: Orama<A>, doc: Document[] | string[]) => SyncOrAsyncValue;
export type SingleCallbackComponent<P extends ProvidedTypes> = (orama: Orama<P>, id: string, doc?: Document) => SyncOrAsyncValue;
export type MultipleCallbackComponent<P extends ProvidedTypes> = (orama: Orama<P>, doc: Document[] | string[]) => SyncOrAsyncValue;
export type AfterSearch<P extends ProvidedTypes> = <AggValue>(db: Orama<P>, params: SearchParams<AggValue>, language: string | undefined, results: Results<AggValue>) => SyncOrAsyncValue;
export type IIndexInsertOrRemoveHookFunction<I extends OpaqueIndex = OpaqueIndex, R = void> = (index: I, prop: string, id: string, value: SearchableValue, type: SearchableType, language: string | undefined, tokenizer: Tokenizer, docsCount: number) => SyncOrAsyncValue<R>;

@@ -416,31 +417,33 @@ export interface IIndex<I extends OpaqueIndex = OpaqueIndex> {

}
export interface SingleOrArrayCallbackComponents<A extends ProvidedTypes> {
beforeInsert: SingleOrArray<SingleCallbackComponent<A>>;
afterInsert: SingleOrArray<SingleCallbackComponent<A>>;
beforeRemove: SingleOrArray<SingleCallbackComponent<A>>;
afterRemove: SingleOrArray<SingleCallbackComponent<A>>;
beforeUpdate: SingleOrArray<SingleCallbackComponent<A>>;
afterUpdate: SingleOrArray<SingleCallbackComponent<A>>;
beforeMultipleInsert: SingleOrArray<MultipleCallbackComponent<A>>;
afterMultipleInsert: SingleOrArray<MultipleCallbackComponent<A>>;
beforeMultipleRemove: SingleOrArray<MultipleCallbackComponent<A>>;
afterMultipleRemove: SingleOrArray<MultipleCallbackComponent<A>>;
beforeMultipleUpdate: SingleOrArray<MultipleCallbackComponent<A>>;
afterMultipleUpdate: SingleOrArray<MultipleCallbackComponent<A>>;
export interface SingleOrArrayCallbackComponents<P extends ProvidedTypes> {
beforeInsert: SingleOrArray<SingleCallbackComponent<P>>;
afterInsert: SingleOrArray<SingleCallbackComponent<P>>;
beforeRemove: SingleOrArray<SingleCallbackComponent<P>>;
afterRemove: SingleOrArray<SingleCallbackComponent<P>>;
beforeUpdate: SingleOrArray<SingleCallbackComponent<P>>;
afterUpdate: SingleOrArray<SingleCallbackComponent<P>>;
afterSearch: SingleOrArray<AfterSearch<P>>;
beforeMultipleInsert: SingleOrArray<MultipleCallbackComponent<P>>;
afterMultipleInsert: SingleOrArray<MultipleCallbackComponent<P>>;
beforeMultipleRemove: SingleOrArray<MultipleCallbackComponent<P>>;
afterMultipleRemove: SingleOrArray<MultipleCallbackComponent<P>>;
beforeMultipleUpdate: SingleOrArray<MultipleCallbackComponent<P>>;
afterMultipleUpdate: SingleOrArray<MultipleCallbackComponent<P>>;
}
export interface ArrayCallbackComponents<A extends ProvidedTypes> {
beforeInsert: SingleCallbackComponent<A>[];
afterInsert: SingleCallbackComponent<A>[];
beforeRemove: SingleCallbackComponent<A>[];
afterRemove: SingleCallbackComponent<A>[];
beforeUpdate: SingleCallbackComponent<A>[];
afterUpdate: SingleCallbackComponent<A>[];
beforeMultipleInsert: MultipleCallbackComponent<A>[];
afterMultipleInsert: MultipleCallbackComponent<A>[];
beforeMultipleRemove: MultipleCallbackComponent<A>[];
afterMultipleRemove: MultipleCallbackComponent<A>[];
beforeMultipleUpdate: MultipleCallbackComponent<A>[];
afterMultipleUpdate: MultipleCallbackComponent<A>[];
export interface ArrayCallbackComponents<P extends ProvidedTypes> {
beforeInsert: SingleCallbackComponent<P>[];
afterInsert: SingleCallbackComponent<P>[];
beforeRemove: SingleCallbackComponent<P>[];
afterRemove: SingleCallbackComponent<P>[];
beforeUpdate: SingleCallbackComponent<P>[];
afterUpdate: SingleCallbackComponent<P>[];
afterSearch: AfterSearch<P>[];
beforeMultipleInsert: MultipleCallbackComponent<P>[];
afterMultipleInsert: MultipleCallbackComponent<P>[];
beforeMultipleRemove: MultipleCallbackComponent<P>[];
afterMultipleRemove: MultipleCallbackComponent<P>[];
beforeMultipleUpdate: MultipleCallbackComponent<P>[];
afterMultipleUpdate: MultipleCallbackComponent<P>[];
}
export type Components<A extends ProvidedTypes> = Partial<ObjectComponents<A['Index'], A['DocumentStore'], A['Sorter']> & FunctionComponents & SingleOrArrayCallbackComponents<A>>;
export type Components<P extends ProvidedTypes> = Partial<ObjectComponents<P['Index'], P['DocumentStore'], P['Sorter']> & FunctionComponents & SingleOrArrayCallbackComponents<P>>;
export declare const kInsertions: unique symbol;

@@ -453,9 +456,9 @@ export declare const kRemovals: unique symbol;

}
type Internals<A extends ProvidedTypes> = {
schema: A['Schema'];
type Internals<P extends ProvidedTypes> = {
schema: P['Schema'];
tokenizer: Tokenizer;
index: IIndex<A['Index']>;
documentsStore: IDocumentsStore<A['DocumentStore']>;
sorter: ISorter<A['Sorter']>;
data: Data<A['Index'], A['DocumentStore'], A['Sorter']>;
index: IIndex<P['Index']>;
documentsStore: IDocumentsStore<P['DocumentStore']>;
sorter: ISorter<P['Sorter']>;
data: Data<P['Index'], P['DocumentStore'], P['Sorter']>;
caches: Record<string, unknown>;

@@ -477,3 +480,3 @@ [kInsertions]: number | undefined;

};
export type Orama<A extends Partial<ProvidedTypes> = {
export type Orama<P extends Partial<ProvidedTypes> = {
Schema: Schema;

@@ -483,3 +486,3 @@ Index: OpaqueIndex;

Sorter: OpaqueSorter;
}> = FunctionComponents & ArrayCallbackComponents<RequiredInner<A>> & Internals<RequiredInner<A>> & OramaID;
}> = FunctionComponents & ArrayCallbackComponents<RequiredInner<P>> & Internals<RequiredInner<P>> & OramaID;
export {};
{
"name": "@orama/orama",
"version": "1.0.4",
"version": "1.0.5",
"type": "module",

@@ -78,3 +78,3 @@ "description": "Next generation full-text search engine, written in TypeScript",

"vite": "^4.1.4",
"@orama/stemmers": "1.0.4"
"@orama/stemmers": "1.0.5"
},

@@ -81,0 +81,0 @@ "engines": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc