@venizia/ignis-connectors 0.2.0-14 → 0.2.0-16
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/cjs/search/core/controllers/abstract.d.ts +1 -1
- package/dist/cjs/search/core/controllers/abstract.d.ts.map +1 -1
- package/dist/cjs/search/core/controllers/abstract.js +28 -1
- package/dist/cjs/search/core/controllers/abstract.js.map +1 -1
- package/dist/cjs/search/core/controllers/factory.d.ts +27 -0
- package/dist/cjs/search/core/controllers/factory.d.ts.map +1 -1
- package/dist/esm/search/core/controllers/abstract.d.ts +1 -1
- package/dist/esm/search/core/controllers/abstract.d.ts.map +1 -1
- package/dist/esm/search/core/controllers/abstract.js +29 -2
- package/dist/esm/search/core/controllers/abstract.js.map +1 -1
- package/dist/esm/search/core/controllers/factory.d.ts +27 -0
- package/dist/esm/search/core/controllers/factory.d.ts.map +1 -1
- package/package.json +6 -6
|
@@ -15,7 +15,7 @@ export declare abstract class AbstractSearchController<TEntity extends AbstractE
|
|
|
15
15
|
repository: ReadableSearchRepository<TDataObject>;
|
|
16
16
|
definitions: AnyType;
|
|
17
17
|
});
|
|
18
|
-
/** POST /search - single-collection keyword/semantic/hybrid/raw search. */
|
|
18
|
+
/** POST /search - single-collection keyword/semantic/hybrid/raw search. Carries the list headers of every IGNIS list endpoint; the body keeps `{ found, isFoundExact, hits }` because `isFoundExact` has no place in a `{ count, data }` envelope, and it is the only carrier of "found is an estimate". */
|
|
19
19
|
search(opts: {
|
|
20
20
|
context: TRouteContext<RouteEnv>;
|
|
21
21
|
}): Promise<import("@venizia/ignis-kernel").TJsonResponse<unknown, 200>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/search/core/controllers/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/search/core/controllers/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAkB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AA2B9E,6MAA6M;AAC7M,8BAAsB,wBAAwB,CAC5C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CACvD,SAAQ,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,CAAC;IAChF,UAAU,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;gBAEtC,IAAI,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAClD,WAAW,EAAE,OAAO,CAAC;KACtB;IAMD,4SAA4S;IACtS,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;IAwBvD,sFAAsF;IAChF,WAAW,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;CAY7D"}
|
|
@@ -3,6 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AbstractSearchController = void 0;
|
|
4
4
|
const ignis_kernel_1 = require("@venizia/ignis-kernel");
|
|
5
5
|
const common_1 = require("@venizia/ignis-helpers/common");
|
|
6
|
+
const common_2 = require("../repositories/common");
|
|
7
|
+
/** Where the page starts, for `Content-Range`. Friendly modes carry `filter.skip` or `filter.offset`; raw mode carries the engine's own `offset`, or a 1-based `page` with `per_page`/`perPage`. A raw request that names a page but no page size is measured against this page's hit count, so only its last page can be off. */
|
|
8
|
+
const resolveSearchStart = (opts) => {
|
|
9
|
+
const { input, hitCount } = opts;
|
|
10
|
+
if (input.mode !== common_2.SearchModes.RAW) {
|
|
11
|
+
// Same precedence as buildDataRange: the repository filter carries skip or offset.
|
|
12
|
+
return input.filter?.skip ?? input.filter?.offset ?? 0;
|
|
13
|
+
}
|
|
14
|
+
// Engine wire names are read through string keys only; `params` is an untyped passthrough.
|
|
15
|
+
const params = input.params;
|
|
16
|
+
const offset = params['offset'];
|
|
17
|
+
if (typeof offset === 'number') {
|
|
18
|
+
return offset;
|
|
19
|
+
}
|
|
20
|
+
const page = params['page'];
|
|
21
|
+
if (typeof page !== 'number' || page < 1) {
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
const pageSize = params['per_page'] ?? params['perPage'];
|
|
25
|
+
return (page - 1) * (typeof pageSize === 'number' ? pageSize : hitCount);
|
|
26
|
+
};
|
|
6
27
|
/** Base tier of a generated search controller: the repository handle plus the search / multi-search verbs; SearchControllerFactory returns a thin subclass that only builds route configs and wires them. */
|
|
7
28
|
class AbstractSearchController extends ignis_kernel_1.BaseRestController {
|
|
8
29
|
constructor(opts) {
|
|
@@ -10,7 +31,7 @@ class AbstractSearchController extends ignis_kernel_1.BaseRestController {
|
|
|
10
31
|
this.repository = opts.repository;
|
|
11
32
|
this.definitions = opts.definitions;
|
|
12
33
|
}
|
|
13
|
-
/** POST /search - single-collection keyword/semantic/hybrid/raw search. */
|
|
34
|
+
/** POST /search - single-collection keyword/semantic/hybrid/raw search. Carries the list headers of every IGNIS list endpoint; the body keeps `{ found, isFoundExact, hits }` because `isFoundExact` has no place in a `{ count, data }` envelope, and it is the only carrier of "found is an estimate". */
|
|
14
35
|
async search(opts) {
|
|
15
36
|
const { context } = opts;
|
|
16
37
|
const input = context.req.valid('json');
|
|
@@ -23,6 +44,12 @@ class AbstractSearchController extends ignis_kernel_1.BaseRestController {
|
|
|
23
44
|
return { found, isFoundExact, hits: hits ?? [] };
|
|
24
45
|
},
|
|
25
46
|
});
|
|
47
|
+
const start = resolveSearchStart({ input, hitCount: rs.hits.length });
|
|
48
|
+
this.setListHeaders({
|
|
49
|
+
context,
|
|
50
|
+
range: (0, ignis_kernel_1.buildDataRange)({ offset: start, dataLength: rs.hits.length, total: rs.found }),
|
|
51
|
+
count: rs.hits.length,
|
|
52
|
+
});
|
|
26
53
|
return context.json(rs, common_1.HTTP.ResultCodes.RS_2.Ok);
|
|
27
54
|
}
|
|
28
55
|
/** POST /multi-search - cross-collection search, forwarded verbatim to the engine. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/search/core/controllers/abstract.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/search/core/controllers/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,33 @@ export declare class SearchControllerFactory extends BaseHelper {
|
|
|
58
58
|
args: unknown;
|
|
59
59
|
task: () => Promise<R>;
|
|
60
60
|
}): Promise<any>;
|
|
61
|
+
normalizeCountData<ResponseSchema extends unknown, RequestContext extends import("@venizia/ignis-kernel").TRouteContext<RouteEnv> = import("@venizia/ignis-kernel").TRouteContext<RouteEnv>, ResponseData extends {
|
|
62
|
+
count: number;
|
|
63
|
+
data?: import("@venizia/ignis-helpers/common").TNullable<ResponseSchema>;
|
|
64
|
+
} = {
|
|
65
|
+
count: number;
|
|
66
|
+
data?: import("@venizia/ignis-helpers/common").TNullable<ResponseSchema>;
|
|
67
|
+
}>(opts: {
|
|
68
|
+
context: RequestContext;
|
|
69
|
+
payload: ResponseData;
|
|
70
|
+
}): ResponseData | import("@venizia/ignis-helpers/common").TNullable<ResponseSchema>;
|
|
71
|
+
respond<R>(opts: {
|
|
72
|
+
context: import("@venizia/ignis-kernel").TRouteContext<RouteEnv>;
|
|
73
|
+
format: import("@venizia/ignis-kernel").TResponseFormat;
|
|
74
|
+
payload: {
|
|
75
|
+
count: number;
|
|
76
|
+
data?: import("@venizia/ignis-helpers/common").TNullable<R>;
|
|
77
|
+
};
|
|
78
|
+
range?: import("@venizia/ignis-kernel").TDataRange;
|
|
79
|
+
}): import("@venizia/ignis-helpers/common").TNullable<R> | {
|
|
80
|
+
count: number;
|
|
81
|
+
data?: import("@venizia/ignis-helpers/common").TNullable<R>;
|
|
82
|
+
};
|
|
83
|
+
setListHeaders(opts: {
|
|
84
|
+
context: import("@venizia/ignis-kernel").TRouteContext<RouteEnv>;
|
|
85
|
+
range: import("@venizia/ignis-kernel").TDataRange;
|
|
86
|
+
count: number;
|
|
87
|
+
}): void;
|
|
61
88
|
toHonoHandler<ResponseType = unknown>(opts: {
|
|
62
89
|
handler: import("@venizia/ignis-kernel").TRouteHandler<ResponseType, RouteEnv>;
|
|
63
90
|
}): import("hono").Handler<RouteEnv, string, import("hono").Input, (Response | Promise<Response>) | (import("@hono/zod-openapi").RouteConfigToTypedResponse<import("@hono/zod-openapi").RouteConfig> | Promise<import("@hono/zod-openapi").RouteConfigToTypedResponse<import("@hono/zod-openapi").RouteConfig>>)>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../src/search/core/controllers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAI9E,6EAA6E;AAC7E,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/B,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACrC;AAED,iHAAiH;AACjH,MAAM,WAAW,wBAAwB,CACvC,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC;IAEnF,qIAAqI;IACrI,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAErD,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF,8DAA8D;IAC9D,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAElE,6DAA6D;IAC7D,SAAS,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;IAEtD,8CAA8C;IAC9C,MAAM,CAAC,EAAE,yBAAyB,CAAC;CACpC;AAED,wHAAwH;AACxH,qBAAa,uBAAwB,SAAQ,UAAU;;IAKrD,wLAAwL;IACxL,MAAM,CAAC,sBAAsB,CAC3B,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EACvD,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC;yBAwBhB,wBAAwB,CAAC,WAAW,CAAC;YAU7D,0FAA0F;uBACtE,cAAc,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../src/search/core/controllers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAI9E,6EAA6E;AAC7E,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/B,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACrC;AAED,iHAAiH;AACjH,MAAM,WAAW,wBAAwB,CACvC,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC;IAEnF,qIAAqI;IACrI,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAErD,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF,8DAA8D;IAC9D,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAElE,6DAA6D;IAC7D,SAAS,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;IAEtD,8CAA8C;IAC9C,MAAM,CAAC,EAAE,yBAAyB,CAAC;CACpC;AAED,wHAAwH;AACxH,qBAAa,uBAAwB,SAAQ,UAAU;;IAKrD,wLAAwL;IACxL,MAAM,CAAC,sBAAsB,CAC3B,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EACvD,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC;yBAwBhB,wBAAwB,CAAC,WAAW,CAAC;YAU7D,0FAA0F;uBACtE,cAAc,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAvEnC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+FX"}
|
|
@@ -15,7 +15,7 @@ export declare abstract class AbstractSearchController<TEntity extends AbstractE
|
|
|
15
15
|
repository: ReadableSearchRepository<TDataObject>;
|
|
16
16
|
definitions: AnyType;
|
|
17
17
|
});
|
|
18
|
-
/** POST /search - single-collection keyword/semantic/hybrid/raw search. */
|
|
18
|
+
/** POST /search - single-collection keyword/semantic/hybrid/raw search. Carries the list headers of every IGNIS list endpoint; the body keeps `{ found, isFoundExact, hits }` because `isFoundExact` has no place in a `{ count, data }` envelope, and it is the only carrier of "found is an estimate". */
|
|
19
19
|
search(opts: {
|
|
20
20
|
context: TRouteContext<RouteEnv>;
|
|
21
21
|
}): Promise<import("@venizia/ignis-kernel").TJsonResponse<unknown, 200>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/search/core/controllers/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/search/core/controllers/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAkB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AA2B9E,6MAA6M;AAC7M,8BAAsB,wBAAwB,CAC5C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CACvD,SAAQ,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,CAAC;IAChF,UAAU,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;gBAEtC,IAAI,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAClD,WAAW,EAAE,OAAO,CAAC;KACtB;IAMD,4SAA4S;IACtS,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;IAwBvD,sFAAsF;IAChF,WAAW,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;CAY7D"}
|
|
@@ -1,5 +1,26 @@
|
|
|
1
|
-
import { BaseRestController } from '@venizia/ignis-kernel';
|
|
1
|
+
import { BaseRestController, buildDataRange } from '@venizia/ignis-kernel';
|
|
2
2
|
import { HTTP } from '@venizia/ignis-helpers/common';
|
|
3
|
+
import { SearchModes } from '../repositories/common/index.js';
|
|
4
|
+
/** Where the page starts, for `Content-Range`. Friendly modes carry `filter.skip` or `filter.offset`; raw mode carries the engine's own `offset`, or a 1-based `page` with `per_page`/`perPage`. A raw request that names a page but no page size is measured against this page's hit count, so only its last page can be off. */
|
|
5
|
+
const resolveSearchStart = (opts) => {
|
|
6
|
+
const { input, hitCount } = opts;
|
|
7
|
+
if (input.mode !== SearchModes.RAW) {
|
|
8
|
+
// Same precedence as buildDataRange: the repository filter carries skip or offset.
|
|
9
|
+
return input.filter?.skip ?? input.filter?.offset ?? 0;
|
|
10
|
+
}
|
|
11
|
+
// Engine wire names are read through string keys only; `params` is an untyped passthrough.
|
|
12
|
+
const params = input.params;
|
|
13
|
+
const offset = params['offset'];
|
|
14
|
+
if (typeof offset === 'number') {
|
|
15
|
+
return offset;
|
|
16
|
+
}
|
|
17
|
+
const page = params['page'];
|
|
18
|
+
if (typeof page !== 'number' || page < 1) {
|
|
19
|
+
return 0;
|
|
20
|
+
}
|
|
21
|
+
const pageSize = params['per_page'] ?? params['perPage'];
|
|
22
|
+
return (page - 1) * (typeof pageSize === 'number' ? pageSize : hitCount);
|
|
23
|
+
};
|
|
3
24
|
/** Base tier of a generated search controller: the repository handle plus the search / multi-search verbs; SearchControllerFactory returns a thin subclass that only builds route configs and wires them. */
|
|
4
25
|
export class AbstractSearchController extends BaseRestController {
|
|
5
26
|
constructor(opts) {
|
|
@@ -7,7 +28,7 @@ export class AbstractSearchController extends BaseRestController {
|
|
|
7
28
|
this.repository = opts.repository;
|
|
8
29
|
this.definitions = opts.definitions;
|
|
9
30
|
}
|
|
10
|
-
/** POST /search - single-collection keyword/semantic/hybrid/raw search. */
|
|
31
|
+
/** POST /search - single-collection keyword/semantic/hybrid/raw search. Carries the list headers of every IGNIS list endpoint; the body keeps `{ found, isFoundExact, hits }` because `isFoundExact` has no place in a `{ count, data }` envelope, and it is the only carrier of "found is an estimate". */
|
|
11
32
|
async search(opts) {
|
|
12
33
|
const { context } = opts;
|
|
13
34
|
const input = context.req.valid('json');
|
|
@@ -20,6 +41,12 @@ export class AbstractSearchController extends BaseRestController {
|
|
|
20
41
|
return { found, isFoundExact, hits: hits ?? [] };
|
|
21
42
|
},
|
|
22
43
|
});
|
|
44
|
+
const start = resolveSearchStart({ input, hitCount: rs.hits.length });
|
|
45
|
+
this.setListHeaders({
|
|
46
|
+
context,
|
|
47
|
+
range: buildDataRange({ offset: start, dataLength: rs.hits.length, total: rs.found }),
|
|
48
|
+
count: rs.hits.length,
|
|
49
|
+
});
|
|
23
50
|
return context.json(rs, HTTP.ResultCodes.RS_2.Ok);
|
|
24
51
|
}
|
|
25
52
|
/** POST /multi-search - cross-collection search, forwarded verbatim to the engine. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/search/core/controllers/abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/search/core/controllers/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,33 @@ export declare class SearchControllerFactory extends BaseHelper {
|
|
|
58
58
|
args: unknown;
|
|
59
59
|
task: () => Promise<R>;
|
|
60
60
|
}): Promise<any>;
|
|
61
|
+
normalizeCountData<ResponseSchema extends unknown, RequestContext extends import("@venizia/ignis-kernel").TRouteContext<RouteEnv> = import("@venizia/ignis-kernel").TRouteContext<RouteEnv>, ResponseData extends {
|
|
62
|
+
count: number;
|
|
63
|
+
data?: import("@venizia/ignis-helpers").TNullable<ResponseSchema>;
|
|
64
|
+
} = {
|
|
65
|
+
count: number;
|
|
66
|
+
data?: import("@venizia/ignis-helpers").TNullable<ResponseSchema>;
|
|
67
|
+
}>(opts: {
|
|
68
|
+
context: RequestContext;
|
|
69
|
+
payload: ResponseData;
|
|
70
|
+
}): ResponseData | import("@venizia/ignis-helpers").TNullable<ResponseSchema>;
|
|
71
|
+
respond<R>(opts: {
|
|
72
|
+
context: import("@venizia/ignis-kernel").TRouteContext<RouteEnv>;
|
|
73
|
+
format: import("@venizia/ignis-kernel").TResponseFormat;
|
|
74
|
+
payload: {
|
|
75
|
+
count: number;
|
|
76
|
+
data?: import("@venizia/ignis-helpers").TNullable<R>;
|
|
77
|
+
};
|
|
78
|
+
range?: import("@venizia/ignis-kernel").TDataRange;
|
|
79
|
+
}): import("@venizia/ignis-helpers").TNullable<R> | {
|
|
80
|
+
count: number;
|
|
81
|
+
data?: import("@venizia/ignis-helpers").TNullable<R>;
|
|
82
|
+
};
|
|
83
|
+
setListHeaders(opts: {
|
|
84
|
+
context: import("@venizia/ignis-kernel").TRouteContext<RouteEnv>;
|
|
85
|
+
range: import("@venizia/ignis-kernel").TDataRange;
|
|
86
|
+
count: number;
|
|
87
|
+
}): void;
|
|
61
88
|
toHonoHandler<ResponseType = unknown>(opts: {
|
|
62
89
|
handler: import("@venizia/ignis-kernel").TRouteHandler<ResponseType, RouteEnv>;
|
|
63
90
|
}): import("hono").Handler<RouteEnv, string, import("hono").Input, (Response | Promise<Response>) | (import("@hono/zod-openapi").RouteConfigToTypedResponse<import("@hono/zod-openapi").RouteConfig> | Promise<import("@hono/zod-openapi").RouteConfigToTypedResponse<import("@hono/zod-openapi").RouteConfig>>)>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../src/search/core/controllers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAI9E,6EAA6E;AAC7E,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/B,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACrC;AAED,iHAAiH;AACjH,MAAM,WAAW,wBAAwB,CACvC,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC;IAEnF,qIAAqI;IACrI,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAErD,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF,8DAA8D;IAC9D,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAElE,6DAA6D;IAC7D,SAAS,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;IAEtD,8CAA8C;IAC9C,MAAM,CAAC,EAAE,yBAAyB,CAAC;CACpC;AAED,wHAAwH;AACxH,qBAAa,uBAAwB,SAAQ,UAAU;;IAKrD,wLAAwL;IACxL,MAAM,CAAC,sBAAsB,CAC3B,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EACvD,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC;yBAwBhB,wBAAwB,CAAC,WAAW,CAAC;YAU7D,0FAA0F;uBACtE,cAAc,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../src/search/core/controllers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAI9E,6EAA6E;AAC7E,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/B,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACrC;AAED,iHAAiH;AACjH,MAAM,WAAW,wBAAwB,CACvC,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC;IAEnF,qIAAqI;IACrI,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAErD,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF,8DAA8D;IAC9D,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAElE,6DAA6D;IAC7D,SAAS,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;IAEtD,8CAA8C;IAC9C,MAAM,CAAC,EAAE,yBAAyB,CAAC;CACpC;AAED,wHAAwH;AACxH,qBAAa,uBAAwB,SAAQ,UAAU;;IAKrD,wLAAwL;IACxL,MAAM,CAAC,sBAAsB,CAC3B,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EACvD,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC;yBAwBhB,wBAAwB,CAAC,WAAW,CAAC;YAU7D,0FAA0F;uBACtE,cAAc,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAvEnC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+FX"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-connectors",
|
|
3
|
-
"version": "0.2.0-
|
|
3
|
+
"version": "0.2.0-16",
|
|
4
4
|
"description": "Datasource and repository connectors for the IGNIS framework: the engine-neutral relational and search tiers, plus Postgres, SQLite, PGlite, Typesense and Meilisearch behind sub-paths.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -121,9 +121,9 @@
|
|
|
121
121
|
},
|
|
122
122
|
"dependencies": {
|
|
123
123
|
"@venizia/ignis-filter": "^0.2.0-6",
|
|
124
|
-
"@venizia/ignis-helpers": "^0.2.0-
|
|
124
|
+
"@venizia/ignis-helpers": "^0.2.0-10",
|
|
125
125
|
"@venizia/ignis-inversion": "^0.2.0-4",
|
|
126
|
-
"@venizia/ignis-kernel": "^0.2.0-
|
|
126
|
+
"@venizia/ignis-kernel": "^0.2.0-16",
|
|
127
127
|
"lodash": "^4.18.1",
|
|
128
128
|
"reflect-metadata": "^0.2.2",
|
|
129
129
|
"zod": "^4.5.4"
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
"drizzle-orm": "^0.45.2",
|
|
136
136
|
"drizzle-zod": "^0.8.3",
|
|
137
137
|
"hono": "^4.12.30",
|
|
138
|
-
"meilisearch": "^0.59.0",
|
|
138
|
+
"meilisearch": "^0.59.0 || ^0.60.0",
|
|
139
139
|
"pg": "^8.21.0",
|
|
140
140
|
"postgres": "^3.4.0",
|
|
141
141
|
"typesense": "^3.0.3"
|
|
@@ -161,11 +161,11 @@
|
|
|
161
161
|
}
|
|
162
162
|
},
|
|
163
163
|
"devDependencies": {
|
|
164
|
-
"@types/bun": "^1.4.
|
|
164
|
+
"@types/bun": "^1.4.1",
|
|
165
165
|
"@types/lodash": "^4.17.25",
|
|
166
166
|
"@types/pg": "^8.23.1",
|
|
167
167
|
"@venizia/dev-configs": "^0.2.0-3",
|
|
168
|
-
"eslint": "^10.
|
|
168
|
+
"eslint": "^10.10.0",
|
|
169
169
|
"prettier": "^3.9.6",
|
|
170
170
|
"tsc-alias": "^1.9.4",
|
|
171
171
|
"typescript": "^6.0.3"
|