@dalgo/dalgo2typesense 0.0.0-bootstrap.0 → 0.2.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { UnsupportedError } from "@dalgo/core";
2
+ /** Safe Typesense HTTP status failure. Response headers and bodies are discarded. */
3
+ export declare class TypesenseHttpError extends Error {
4
+ readonly status: number;
5
+ constructor(status: number);
6
+ }
7
+ /** A redacted failure while resolving headers, following a request, or consuming a body. */
8
+ export declare class TypesenseRequestError extends Error {
9
+ constructor();
10
+ }
11
+ /**
12
+ * Adapter-owned response bound failure. A provider-supplied RangeError is never
13
+ * preserved, because its message or cause can contain a credential or row data.
14
+ */
15
+ export declare class TypesenseResponseSizeError extends RangeError {
16
+ constructor();
17
+ }
18
+ /**
19
+ * The native candidate filter cannot be reconciled with the exact admitted
20
+ * DALgo predicate. The row is neither silently dropped nor exposed, and no
21
+ * earlier successful prefix survives.
22
+ */
23
+ export declare class TypesenseSemanticError extends UnsupportedError {
24
+ constructor();
25
+ }
26
+ /**
27
+ * A refused adapter-issued continuation. Only the fixed reason is exposed; no
28
+ * token, query value, document or credential is ever included.
29
+ */
30
+ export declare class TypesenseCursorError extends UnsupportedError {
31
+ readonly reason: "malformed" | "foreign" | "changed-query" | "used";
32
+ constructor(reason: "malformed" | "foreign" | "changed-query" | "used");
33
+ }
34
+ /**
35
+ * The current page has more matching rows, but an adapter-issued continuation
36
+ * position would exceed a configured offset/window/page bound. Returning an
37
+ * unusable handle or silently claiming end-of-data would both be dishonest, so
38
+ * the whole page is refused.
39
+ */
40
+ export declare class TypesenseContinuationBoundError extends UnsupportedError {
41
+ constructor();
42
+ }
43
+ export type TypesenseMetadataFailure = "unauthorized" | "forbidden" | "not-found" | "unavailable" | "malformed";
package/dist/errors.js ADDED
@@ -0,0 +1,63 @@
1
+ import { UnsupportedError } from "@dalgo/core";
2
+ /** Safe Typesense HTTP status failure. Response headers and bodies are discarded. */
3
+ export class TypesenseHttpError extends Error {
4
+ status;
5
+ constructor(status) {
6
+ super(`Typesense request failed with HTTP ${String(status)}`);
7
+ this.name = "TypesenseHttpError";
8
+ this.status = status;
9
+ }
10
+ }
11
+ /** A redacted failure while resolving headers, following a request, or consuming a body. */
12
+ export class TypesenseRequestError extends Error {
13
+ constructor() {
14
+ super("Typesense request could not be completed");
15
+ this.name = "TypesenseRequestError";
16
+ }
17
+ }
18
+ /**
19
+ * Adapter-owned response bound failure. A provider-supplied RangeError is never
20
+ * preserved, because its message or cause can contain a credential or row data.
21
+ */
22
+ export class TypesenseResponseSizeError extends RangeError {
23
+ constructor() {
24
+ super("Typesense response exceeds the configured byte budget");
25
+ this.name = "TypesenseResponseSizeError";
26
+ }
27
+ }
28
+ /**
29
+ * The native candidate filter cannot be reconciled with the exact admitted
30
+ * DALgo predicate. The row is neither silently dropped nor exposed, and no
31
+ * earlier successful prefix survives.
32
+ */
33
+ export class TypesenseSemanticError extends UnsupportedError {
34
+ constructor() {
35
+ super("Typesense native filter candidates cannot satisfy the exact structured predicate");
36
+ this.name = "TypesenseSemanticError";
37
+ }
38
+ }
39
+ /**
40
+ * A refused adapter-issued continuation. Only the fixed reason is exposed; no
41
+ * token, query value, document or credential is ever included.
42
+ */
43
+ export class TypesenseCursorError extends UnsupportedError {
44
+ reason;
45
+ constructor(reason) {
46
+ super(`Typesense query cursor (${reason})`);
47
+ this.name = "TypesenseCursorError";
48
+ this.reason = reason;
49
+ }
50
+ }
51
+ /**
52
+ * The current page has more matching rows, but an adapter-issued continuation
53
+ * position would exceed a configured offset/window/page bound. Returning an
54
+ * unusable handle or silently claiming end-of-data would both be dishonest, so
55
+ * the whole page is refused.
56
+ */
57
+ export class TypesenseContinuationBoundError extends UnsupportedError {
58
+ constructor() {
59
+ super("Typesense query continuation exceeds the configured offset, window or page bound");
60
+ this.name = "TypesenseContinuationBoundError";
61
+ }
62
+ }
63
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,qFAAqF;AACrF,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3B,MAAM,CAAS;IAE/B,YAAmB,MAAc;QAC/B,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,4FAA4F;AAC5F,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,0BAA2B,SAAQ,UAAU;IACxD;QACE,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB;IAC1D;QACE,KAAK,CAAC,kFAAkF,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IACxC,MAAM,CAAqD;IAE3E,YAAmB,MAA0D;QAC3E,KAAK,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,+BAAgC,SAAQ,gBAAgB;IACnE;QACE,KAAK,CAAC,kFAAkF,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ export { TYPESENSE_READ_CAPABILITIES, type TypesenseCapabilityDescriptor, type TypesenseConfiguredBounds, type TypesenseQueryBounds, type TypesenseReadCapabilities, } from "./capabilities.js";
2
+ export { TypesenseContinuationBoundError, TypesenseCursorError, TypesenseHttpError, TypesenseRequestError, TypesenseResponseSizeError, TypesenseSemanticError, type TypesenseMetadataFailure, } from "./errors.js";
3
+ export { TypesenseJsonNumberError } from "./json.js";
4
+ export { TypesenseDatabase, type TypesenseConnectionTest, type TypesenseDatabaseOptions, type TypesenseDescribe, } from "./database.js";
5
+ export type { TypesenseCollectionDiscovery, TypesenseCollectionSchema, TypesenseFieldDefinition, TypesenseSchemaDiscovery, } from "./metadata.js";
6
+ export { buildNativeResult, decodeSearchResponse, type TypesenseFacet, type TypesenseFacetStats, type TypesenseFacetValue, type TypesenseNativeSearchHit, type TypesenseNativeSearchRequest, type TypesenseNativeSearchResult, type TypesenseSort, } from "./search.js";
7
+ export type { ComparisonNode, ConditionNode, FilterLiteral, GroupNode, Truth, TypesenseQuery, } from "./structured.js";
8
+ export type { TypesenseFetch, TypesenseHeaderProvider, TypesenseHeaders, } from "./transport.js";
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export { TYPESENSE_READ_CAPABILITIES, } from "./capabilities.js";
2
+ export { TypesenseContinuationBoundError, TypesenseCursorError, TypesenseHttpError, TypesenseRequestError, TypesenseResponseSizeError, TypesenseSemanticError, } from "./errors.js";
3
+ export { TypesenseJsonNumberError } from "./json.js";
4
+ export { TypesenseDatabase, } from "./database.js";
5
+ export { buildNativeResult, decodeSearchResponse, } from "./search.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,GAK5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EACL,iBAAiB,GAIlB,MAAM,eAAe,CAAC;AAOvB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GAQrB,MAAM,aAAa,CAAC"}
package/dist/json.d.ts ADDED
@@ -0,0 +1,32 @@
1
+ /**
2
+ * JSON parsing that refuses numbers JavaScript cannot carry losslessly.
3
+ *
4
+ * `JSON.parse` silently rounds before any reviver sees a value: an integer such
5
+ * as `9007199254740993` becomes `9007199254740992`. For a Typesense native
6
+ * document, a key, a facet statistic or a verification value that changes the
7
+ * identity or the value of a row is unacceptable. The raw text is therefore
8
+ * checked before parsing.
9
+ *
10
+ * A number token is accepted only when the decimal value it denotes is the same
11
+ * decimal value the adapter would serialize back (`String(Number(token))`), and
12
+ * when it neither underflows to zero, overflows to a non-finite value, becomes
13
+ * `-0`, nor denotes an integer outside the safe range. Textual spellings of one
14
+ * decimal value are equivalent, so `1`, `1.0` and `1e0` are accepted, while
15
+ * `0.10000000000000001` and `9007199254740993` are refused.
16
+ *
17
+ * The thrown error deliberately carries no number or row value.
18
+ */
19
+ export declare class TypesenseJsonNumberError extends TypeError {
20
+ constructor();
21
+ }
22
+ /** uint64 upper bound of the native `text_match` wrapper. */
23
+ export declare const MAX_UINT64 = 18446744073709551615n;
24
+ export declare const UNSIGNED_INTEGER: RegExp;
25
+ /** Parses JSON after proving every number literal survives the round trip exactly. */
26
+ export declare function parseLosslessJson(text: string): unknown;
27
+ /** True when a value is an exact unsigned uint64 decimal string. */
28
+ export declare function isExactUint64(value: string): boolean;
29
+ /** True for a native number the adapter must not emit without losing precision. */
30
+ export declare function isUnsafeNativeNumber(value: number): boolean;
31
+ /** True when a number is acceptable in a native document, facet or filter. */
32
+ export declare function isLosslessNumber(value: number): boolean;
package/dist/json.js ADDED
@@ -0,0 +1,222 @@
1
+ /**
2
+ * JSON parsing that refuses numbers JavaScript cannot carry losslessly.
3
+ *
4
+ * `JSON.parse` silently rounds before any reviver sees a value: an integer such
5
+ * as `9007199254740993` becomes `9007199254740992`. For a Typesense native
6
+ * document, a key, a facet statistic or a verification value that changes the
7
+ * identity or the value of a row is unacceptable. The raw text is therefore
8
+ * checked before parsing.
9
+ *
10
+ * A number token is accepted only when the decimal value it denotes is the same
11
+ * decimal value the adapter would serialize back (`String(Number(token))`), and
12
+ * when it neither underflows to zero, overflows to a non-finite value, becomes
13
+ * `-0`, nor denotes an integer outside the safe range. Textual spellings of one
14
+ * decimal value are equivalent, so `1`, `1.0` and `1e0` are accepted, while
15
+ * `0.10000000000000001` and `9007199254740993` are refused.
16
+ *
17
+ * The thrown error deliberately carries no number or row value.
18
+ */
19
+ export class TypesenseJsonNumberError extends TypeError {
20
+ constructor() {
21
+ super("Typesense JSON contains a number that JavaScript cannot round-trip without losing precision");
22
+ this.name = "TypesenseJsonNumberError";
23
+ }
24
+ }
25
+ const NUMBER = /^(-?)(0|[1-9]\d*)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/u;
26
+ function decimalValue(token) {
27
+ const match = NUMBER.exec(token);
28
+ if (match === null)
29
+ throw new TypesenseJsonNumberError();
30
+ const [, sign = "", integer = "", fraction = "", exponent = "0"] = match;
31
+ const all = `${integer}${fraction}`;
32
+ const significant = all.replace(/^0+/u, "");
33
+ if (significant.length === 0) {
34
+ return { negative: sign === "-", digits: "", exponent: 0 };
35
+ }
36
+ const digits = significant.replace(/0+$/u, "");
37
+ return {
38
+ negative: sign === "-",
39
+ digits,
40
+ exponent: Number(exponent) - fraction.length + (significant.length - digits.length),
41
+ };
42
+ }
43
+ function sameDecimal(left, right) {
44
+ return left.negative === right.negative
45
+ && left.digits === right.digits
46
+ && left.exponent === right.exponent;
47
+ }
48
+ function checkNumber(token) {
49
+ const value = Number(token);
50
+ if (!Number.isFinite(value) || Object.is(value, -0))
51
+ throw new TypesenseJsonNumberError();
52
+ if (Number.isInteger(value) && !Number.isSafeInteger(value))
53
+ throw new TypesenseJsonNumberError();
54
+ if (!sameDecimal(decimalValue(token), decimalValue(String(value)))) {
55
+ throw new TypesenseJsonNumberError();
56
+ }
57
+ }
58
+ /** uint64 upper bound of the native `text_match` wrapper. */
59
+ export const MAX_UINT64 = 18446744073709551615n;
60
+ export const UNSIGNED_INTEGER = /^(?:0|[1-9]\d*)$/u;
61
+ function assertLosslessNumbers(text) {
62
+ let index = 0;
63
+ const frames = [];
64
+ const replacements = [];
65
+ const path = () => frames.map((frame) => (frame.kind === "object" ? (frame.key ?? "") : frame.index));
66
+ const afterValue = () => {
67
+ const parent = frames[frames.length - 1];
68
+ if (parent !== undefined)
69
+ parent.state = "after";
70
+ };
71
+ while (index < text.length) {
72
+ const code = text.charCodeAt(index);
73
+ if (code === 0x20 || code === 0x09 || code === 0x0a || code === 0x0d) {
74
+ index += 1;
75
+ continue;
76
+ }
77
+ const character = text[index];
78
+ if (character === "\"") {
79
+ const start = index;
80
+ index += 1;
81
+ while (index < text.length) {
82
+ const current = text.charCodeAt(index);
83
+ if (current === 0x5c) {
84
+ index += 2;
85
+ continue;
86
+ }
87
+ index += 1;
88
+ if (current === 0x22)
89
+ break;
90
+ }
91
+ const frame = frames[frames.length - 1];
92
+ if (frame?.kind === "object" && frame.state === "key") {
93
+ let key;
94
+ try {
95
+ key = JSON.parse(text.slice(start, index));
96
+ }
97
+ catch {
98
+ // Let the final JSON.parse report the malformed document.
99
+ continue;
100
+ }
101
+ if (frame.seen.has(key))
102
+ throw new TypeError("Typesense JSON contains a duplicate object key");
103
+ frame.seen.add(key);
104
+ frame.key = key;
105
+ frame.state = "value";
106
+ }
107
+ else {
108
+ afterValue();
109
+ }
110
+ continue;
111
+ }
112
+ if (character === "{") {
113
+ frames.push({ kind: "object", seen: new Set(), key: null, state: "key" });
114
+ index += 1;
115
+ continue;
116
+ }
117
+ if (character === "[") {
118
+ frames.push({ kind: "array", index: 0, state: "value" });
119
+ index += 1;
120
+ continue;
121
+ }
122
+ if (character === "}") {
123
+ frames.pop();
124
+ index += 1;
125
+ afterValue();
126
+ continue;
127
+ }
128
+ if (character === "]") {
129
+ frames.pop();
130
+ index += 1;
131
+ afterValue();
132
+ continue;
133
+ }
134
+ if (character === ":") {
135
+ const frame = frames[frames.length - 1];
136
+ if (frame?.kind === "object")
137
+ frame.state = "value";
138
+ index += 1;
139
+ continue;
140
+ }
141
+ if (character === ",") {
142
+ const frame = frames[frames.length - 1];
143
+ if (frame?.kind === "object")
144
+ frame.state = "key";
145
+ else if (frame?.kind === "array")
146
+ frame.index += 1;
147
+ index += 1;
148
+ continue;
149
+ }
150
+ if (character === "-" || (code >= 0x30 && code <= 0x39)) {
151
+ const start = index;
152
+ index += 1;
153
+ while (index < text.length) {
154
+ const current = text.charCodeAt(index);
155
+ if ((current >= 0x30 && current <= 0x39)
156
+ || current === 0x2b
157
+ || current === 0x2d
158
+ || current === 0x2e
159
+ || current === 0x45
160
+ || current === 0x65) {
161
+ index += 1;
162
+ continue;
163
+ }
164
+ break;
165
+ }
166
+ const token = text.slice(start, index);
167
+ // The only unsafe integer the adapter accepts is the server's native
168
+ // ranking score at its exact protocol path. It is carried through as its
169
+ // exact decimal string; every application document, facet or other value
170
+ // still has to round-trip losslessly.
171
+ if (isTextMatchPath(path()) && token.length <= 20 && UNSIGNED_INTEGER.test(token) && BigInt(token) <= MAX_UINT64) {
172
+ replacements.push({ start, end: index, token });
173
+ }
174
+ else {
175
+ checkNumber(token);
176
+ }
177
+ afterValue();
178
+ continue;
179
+ }
180
+ if (character === "t" || character === "f" || character === "n") {
181
+ index += character === "f" ? 5 : 4;
182
+ afterValue();
183
+ continue;
184
+ }
185
+ index += 1;
186
+ }
187
+ if (replacements.length === 0)
188
+ return text;
189
+ let transformed = "";
190
+ let last = 0;
191
+ for (const replacement of replacements) {
192
+ transformed += text.slice(last, replacement.start) + JSON.stringify(replacement.token);
193
+ last = replacement.end;
194
+ }
195
+ transformed += text.slice(last);
196
+ return transformed;
197
+ }
198
+ /**
199
+ * The one score location in a native search response. A document field named
200
+ * `text_match` lives under `hits[].document`, which is deliberately not this
201
+ * path and therefore cannot obtain an unsafe-number exemption.
202
+ */
203
+ function isTextMatchPath(path) {
204
+ return path.length === 3 && path[0] === "hits" && typeof path[1] === "number" && path[2] === "text_match";
205
+ }
206
+ /** Parses JSON after proving every number literal survives the round trip exactly. */
207
+ export function parseLosslessJson(text) {
208
+ return JSON.parse(assertLosslessNumbers(text));
209
+ }
210
+ /** True when a value is an exact unsigned uint64 decimal string. */
211
+ export function isExactUint64(value) {
212
+ return value.length <= 20 && UNSIGNED_INTEGER.test(value) && BigInt(value) <= MAX_UINT64;
213
+ }
214
+ /** True for a native number the adapter must not emit without losing precision. */
215
+ export function isUnsafeNativeNumber(value) {
216
+ return Number.isInteger(value) && !Number.isSafeInteger(value);
217
+ }
218
+ /** True when a number is acceptable in a native document, facet or filter. */
219
+ export function isLosslessNumber(value) {
220
+ return Number.isFinite(value) && !Object.is(value, -0) && !isUnsafeNativeNumber(value);
221
+ }
222
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { type TypesenseMetadataFailure } from "./errors.js";
2
+ export interface TypesenseFieldDefinition {
3
+ readonly name: string;
4
+ /** Real Typesense declared type, including array suffixes such as `string[]`. */
5
+ readonly type: string;
6
+ readonly facet: boolean;
7
+ /** Typesense `optional`; the implicit `id` is always reported non-null. */
8
+ readonly optional: boolean;
9
+ readonly index: boolean;
10
+ readonly sort: boolean;
11
+ readonly infix: boolean;
12
+ }
13
+ export interface TypesenseCollectionSchema {
14
+ readonly name: string;
15
+ readonly fields: readonly TypesenseFieldDefinition[];
16
+ /**
17
+ * The server's declared default sorting field. Typesense 30.2 always emits
18
+ * `default_sorting_field` in its collection summary and uses the empty string
19
+ * when a collection was created without one. An empty value is an honest
20
+ * sentinel for "no default sorting field"; it is never a sorting guarantee.
21
+ */
22
+ readonly defaultSortingField?: string;
23
+ readonly numDocuments?: number;
24
+ }
25
+ export type TypesenseSchemaDiscovery = {
26
+ readonly status: "available";
27
+ readonly schema: TypesenseCollectionSchema;
28
+ } | {
29
+ readonly status: "unavailable";
30
+ readonly reason: TypesenseMetadataFailure;
31
+ readonly httpStatus?: number;
32
+ };
33
+ export type TypesenseCollectionDiscovery = {
34
+ readonly status: "available";
35
+ readonly collections: readonly string[];
36
+ readonly truncated: boolean;
37
+ } | {
38
+ readonly status: "unavailable";
39
+ readonly reason: TypesenseMetadataFailure;
40
+ readonly httpStatus?: number;
41
+ };
42
+ export declare function metadataFailure(error: unknown): {
43
+ readonly reason: TypesenseMetadataFailure;
44
+ readonly httpStatus?: number;
45
+ };
46
+ export declare function supportedDeclaredType(type: string): boolean;
47
+ /** Parses the real collection schema. Arrays keep their declared native type. */
48
+ export declare function parseCollectionSchema(value: unknown, expectedName: string, maxFields: number): TypesenseCollectionSchema;
49
+ /** Parses `GET /collections` and never turns a denial into an empty list. */
50
+ export declare function parseCollectionList(value: unknown, maximum: number): {
51
+ readonly collections: readonly string[];
52
+ readonly truncated: boolean;
53
+ };
54
+ export declare function schemaFieldTypes(schema: TypesenseCollectionSchema): ReadonlyMap<string, string>;