@haverstack/wire-types 0.41.0 → 0.42.0

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.
@@ -37,13 +37,13 @@ export type DiscoveryCapabilities = {
37
37
  filter?: {
38
38
  content?: string;
39
39
  contentPresent?: boolean;
40
- contentByType?: number;
40
+ contentByType?: boolean;
41
41
  search?: boolean;
42
42
  };
43
43
  sort?: {
44
44
  fields?: string[];
45
45
  contentField?: boolean;
46
- contentFieldByType?: number;
46
+ contentFieldByType?: boolean;
47
47
  };
48
48
  limits?: {
49
49
  attachmentBytes?: number | null;
@@ -52,10 +52,10 @@ export type DiscoveryCapabilities = {
52
52
  };
53
53
  /**
54
54
  * Resolves anything absent, malformed or unrecognized to the least capable
55
- * value it could stand for — one rule, applied once, rather than a default
56
- * per key at each call site. A `null` limit is the one permissive reading,
57
- * since the server's own ceiling still answers 413. See
58
- * docs/spec/adapters.md § Adapter capabilities.
55
+ * value it could stand for, and what needs the POST /records/query body to
56
+ * false below `'none'` — applied once, where capabilities enter. A `null`
57
+ * limit is the one permissive reading. See docs/spec/adapters.md § Adapter
58
+ * capabilities.
59
59
  */
60
60
  export declare function normalizeCapabilities(capabilities: DiscoveryCapabilities | undefined): StackCapabilities;
61
61
  /** Splits a MAJOR.MINOR protocol version. Returns null if it isn't one. */
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAuC,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,wEAAwE;AACxE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAClG,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClF,MAAM,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC5E,CAAC;AAKF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,qBAAqB,GAAG,SAAS,GAC9C,iBAAiB,CA2BnB;AAUD,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAG7F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAwB,GAAG,OAAO,CAI9F"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAuC,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,wEAAwE;AACxE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACnF,MAAM,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC5E,CAAC;AAKF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,qBAAqB,GAAG,SAAS,GAC9C,iBAAiB,CAkCnB;AAMD,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAG7F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAwB,GAAG,OAAO,CAI9F"}
package/dist/discovery.js CHANGED
@@ -18,10 +18,10 @@ const CONTENT_FILTER_REACHES = new Set(['none', 'field', 'path']);
18
18
  const SORT_FIELDS = new Set(NATIVE_SORT_FIELDS);
19
19
  /**
20
20
  * Resolves anything absent, malformed or unrecognized to the least capable
21
- * value it could stand for — one rule, applied once, rather than a default
22
- * per key at each call site. A `null` limit is the one permissive reading,
23
- * since the server's own ceiling still answers 413. See
24
- * docs/spec/adapters.md § Adapter capabilities.
21
+ * value it could stand for, and what needs the POST /records/query body to
22
+ * false below `'none'` — applied once, where capabilities enter. A `null`
23
+ * limit is the one permissive reading. See docs/spec/adapters.md § Adapter
24
+ * capabilities.
25
25
  */
26
26
  export function normalizeCapabilities(capabilities) {
27
27
  const filter = capabilities?.filter;
@@ -30,20 +30,27 @@ export function normalizeCapabilities(capabilities) {
30
30
  const reach = CONTENT_FILTER_REACHES.has(filter?.content)
31
31
  ? filter?.content
32
32
  : 'none';
33
- // The per-Type shapes travel in the POST /records/query body, which a
34
- // server reaching no content does not serve.
35
- const cap = (value) => (reach === 'none' ? 0 : capOrZero(value));
33
+ // These travel in the POST /records/query body, which a server reaching
34
+ // no content does not serve.
35
+ const reaches = reach !== 'none';
36
36
  return {
37
37
  filter: {
38
38
  content: reach,
39
- contentPresent: filter?.contentPresent === true,
40
- contentByType: cap(filter?.contentByType),
39
+ contentPresent: reaches && filter?.contentPresent === true,
40
+ contentByType: reaches && filter?.contentByType === true,
41
41
  search: filter?.search === true,
42
42
  },
43
43
  sort: {
44
- fields: (sort?.fields ?? []).filter((f) => SORT_FIELDS.has(f)),
44
+ // The floor is `createdAt`, not nothing: a query naming no sort reads
45
+ // in it, so every server already orders by it.
46
+ fields: [
47
+ ...new Set([
48
+ 'createdAt',
49
+ ...(sort?.fields ?? []).filter((f) => SORT_FIELDS.has(f)),
50
+ ]),
51
+ ],
45
52
  contentField: sort?.contentField === true,
46
- contentFieldByType: cap(sort?.contentFieldByType),
53
+ contentFieldByType: reaches && sort?.contentFieldByType === true,
47
54
  },
48
55
  limits: {
49
56
  attachmentBytes: finiteOrNull(limits?.attachmentBytes),
@@ -51,8 +58,6 @@ export function normalizeCapabilities(capabilities) {
51
58
  },
52
59
  };
53
60
  }
54
- /** A cap on keys, or 0 — declined — for anything but a non-negative integer. */
55
- const capOrZero = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value > 0 ? value : 0;
56
61
  /** A ceiling this client can compare against, or null for "cannot pre-check". */
57
62
  const finiteOrNull = (value) => typeof value === 'number' && Number.isFinite(value) ? value : null;
58
63
  /** Splits a MAJOR.MINOR protocol version. Returns null if it isn't one. */
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAMtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AA8B3C,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1E,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAA+C;IAE/C,MAAM,MAAM,GAAG,YAAY,EAAE,MAAM,CAAC;IACpC,MAAM,IAAI,GAAG,YAAY,EAAE,IAAI,CAAC;IAChC,MAAM,MAAM,GAAG,YAAY,EAAE,MAAM,CAAC;IACpC,MAAM,KAAK,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAiB,CAAC;QACjE,CAAC,CAAE,MAAM,EAAE,OAA8B;QACzC,CAAC,CAAC,MAAM,CAAC;IACX,wEAAwE;IACxE,6BAA6B;IAC7B,MAAM,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC;IACjC,OAAO;QACL,MAAM,EAAE;YACN,OAAO,EAAE,KAAK;YACd,cAAc,EAAE,OAAO,IAAI,MAAM,EAAE,cAAc,KAAK,IAAI;YAC1D,aAAa,EAAE,OAAO,IAAI,MAAM,EAAE,aAAa,KAAK,IAAI;YACxD,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI;SAChC;QACD,IAAI,EAAE;YACJ,sEAAsE;YACtE,+CAA+C;YAC/C,MAAM,EAAE;gBACN,GAAG,IAAI,GAAG,CAAkB;oBAC1B,WAAW;oBACX,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAChF,CAAC;aACH;YACD,YAAY,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI;YACzC,kBAAkB,EAAE,OAAO,IAAI,IAAI,EAAE,kBAAkB,KAAK,IAAI;SACjE;QACD,MAAM,EAAE;YACN,eAAe,EAAE,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC;YACtD,YAAY,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC;SACjD;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,YAAY,GAAG,CAAC,KAAc,EAAiB,EAAE,CACrD,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAErE,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,OAAO,GAAG,qBAAqB;IACnF,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;AAC7E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haverstack/wire-types",
3
- "version": "0.41.0",
3
+ "version": "0.42.0",
4
4
  "description": "HTTP wire types and serialization for Haverstack",
5
5
  "type": "module",
6
6
  "exports": {
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "license": "CC0-1.0",
23
23
  "dependencies": {
24
- "@haverstack/core": "^0.42.0"
24
+ "@haverstack/core": "^0.43.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "^22.0.0",