@haverstack/server 0.11.0 → 0.12.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.
Files changed (80) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +2 -0
  3. package/dist/app.js.map +1 -1
  4. package/dist/lib/canonicalJson.d.ts +7 -0
  5. package/dist/lib/canonicalJson.d.ts.map +1 -0
  6. package/dist/lib/canonicalJson.js +18 -0
  7. package/dist/lib/canonicalJson.js.map +1 -0
  8. package/dist/lib/historyPage.d.ts +12 -0
  9. package/dist/lib/historyPage.d.ts.map +1 -0
  10. package/dist/lib/historyPage.js +24 -0
  11. package/dist/lib/historyPage.js.map +1 -0
  12. package/dist/lib/ifMatch.d.ts +11 -0
  13. package/dist/lib/ifMatch.d.ts.map +1 -0
  14. package/dist/lib/ifMatch.js +11 -0
  15. package/dist/lib/ifMatch.js.map +1 -0
  16. package/dist/lib/installRequestStore.d.ts +46 -0
  17. package/dist/lib/installRequestStore.d.ts.map +1 -0
  18. package/dist/lib/installRequestStore.js +102 -0
  19. package/dist/lib/installRequestStore.js.map +1 -0
  20. package/dist/lib/queryWorker/protocol.d.ts +1 -1
  21. package/dist/lib/queryWorker/worker.js +1 -1
  22. package/dist/lib/queryWorker/worker.js.map +1 -1
  23. package/dist/lib/resumeBuffer.d.ts +0 -1
  24. package/dist/lib/resumeBuffer.d.ts.map +1 -1
  25. package/dist/lib/resumeBuffer.js +2 -1
  26. package/dist/lib/resumeBuffer.js.map +1 -1
  27. package/dist/lib/selfService.d.ts +2 -0
  28. package/dist/lib/selfService.d.ts.map +1 -0
  29. package/dist/lib/selfService.js +6 -0
  30. package/dist/lib/selfService.js.map +1 -0
  31. package/dist/middleware/auth.d.ts +10 -9
  32. package/dist/middleware/auth.d.ts.map +1 -1
  33. package/dist/middleware/auth.js +21 -10
  34. package/dist/middleware/auth.js.map +1 -1
  35. package/dist/middleware/errors.js +1 -1
  36. package/dist/middleware/errors.js.map +1 -1
  37. package/dist/middleware/params.d.ts +3 -5
  38. package/dist/middleware/params.d.ts.map +1 -1
  39. package/dist/middleware/params.js +3 -12
  40. package/dist/middleware/params.js.map +1 -1
  41. package/dist/routes/attachments.d.ts.map +1 -1
  42. package/dist/routes/attachments.js +5 -5
  43. package/dist/routes/attachments.js.map +1 -1
  44. package/dist/routes/auth.d.ts.map +1 -1
  45. package/dist/routes/auth.js +9 -20
  46. package/dist/routes/auth.js.map +1 -1
  47. package/dist/routes/changes.d.ts.map +1 -1
  48. package/dist/routes/changes.js +6 -7
  49. package/dist/routes/changes.js.map +1 -1
  50. package/dist/routes/entity.d.ts.map +1 -1
  51. package/dist/routes/entity.js +9 -11
  52. package/dist/routes/entity.js.map +1 -1
  53. package/dist/routes/installs.d.ts +13 -0
  54. package/dist/routes/installs.d.ts.map +1 -0
  55. package/dist/routes/installs.js +101 -0
  56. package/dist/routes/installs.js.map +1 -0
  57. package/dist/routes/records.d.ts.map +1 -1
  58. package/dist/routes/records.js +105 -165
  59. package/dist/routes/records.js.map +1 -1
  60. package/dist/routes/types.d.ts.map +1 -1
  61. package/dist/routes/types.js +7 -39
  62. package/dist/routes/types.js.map +1 -1
  63. package/dist/routes/wellknown.d.ts.map +1 -1
  64. package/dist/routes/wellknown.js +2 -0
  65. package/dist/routes/wellknown.js.map +1 -1
  66. package/dist/shutdown.d.ts.map +1 -1
  67. package/dist/shutdown.js +1 -0
  68. package/dist/shutdown.js.map +1 -1
  69. package/dist/stack.d.ts +2 -0
  70. package/dist/stack.d.ts.map +1 -1
  71. package/dist/stack.js +28 -6
  72. package/dist/stack.js.map +1 -1
  73. package/dist/testing.d.ts.map +1 -1
  74. package/dist/testing.js +13 -2
  75. package/dist/testing.js.map +1 -1
  76. package/package.json +6 -6
  77. package/dist/lib/queryLimit.d.ts +0 -6
  78. package/dist/lib/queryLimit.d.ts.map +0 -1
  79. package/dist/lib/queryLimit.js +0 -20
  80. package/dist/lib/queryLimit.js.map +0 -1
package/dist/stack.js CHANGED
@@ -1,17 +1,19 @@
1
1
  import { LocalAdapter, NativeTokenStore, defaultTokenStorePath } from '@haverstack/adapter-local';
2
- import { ARTICLE, BOOKMARK, CONTACT, NOTE, PAGE, PHOTO, PLACE, TASK, defineCommonsTypes, } from '@haverstack/commons';
2
+ import { ARTICLE, BOOKMARK, CONTACT, IMAGE, NOTE, PAGE, PLACE, POST, SITE, TASK, defineCommonsTypes, } from '@haverstack/commons';
3
3
  import { Stack } from '@haverstack/core';
4
4
  import { AuthNonceStore, defaultNonceStorePath } from './lib/nonceStore.js';
5
+ import { InstallRequestStore, defaultInstallRequestStorePath } from './lib/installRequestStore.js';
5
6
  import { QueryWorkerPool } from './lib/queryWorker/pool.js';
6
7
  import { ChangeStreamRegistry } from './lib/changeStreams.js';
7
8
  export async function initStack(config, logger) {
8
- // openOrInitialize() decides between open and create without a TOCTOU
9
- // gap. ownerEntityId goes in as a lazy provider so openOrInitialize()'s own
9
+ // `create: 'ifMissing'` decides between open and create without a TOCTOU
10
+ // gap. ownerEntityId goes in as a lazy provider so open()'s own
10
11
  // owner-mismatch check, which throws, never runs on the open path —
11
12
  // ENTITY_ID divergence is a warning below, not a failure — and so a
12
13
  // missing ENTITY_ID is an error only when creating a database.
13
- const adapter = await LocalAdapter.openOrInitialize({
14
+ const adapter = await LocalAdapter.open({
14
15
  path: config.dbPath,
16
+ create: 'ifMissing',
15
17
  ownerEntityId: () => {
16
18
  if (!config.entityId) {
17
19
  throw new Error('ENTITY_ID is required when initializing a new database (DB_PATH does not exist yet)');
@@ -29,13 +31,25 @@ export async function initStack(config, logger) {
29
31
  // Opt-in (SEED_COMMONS_TYPES). defineType() is idempotent — an identical
30
32
  // schema is a no-op preserving createdAt — so this is safe every boot.
31
33
  if (config.seedCommonsTypes) {
32
- await defineCommonsTypes(stack, [NOTE, BOOKMARK, TASK, CONTACT, ARTICLE, PLACE, PAGE, PHOTO]);
34
+ await defineCommonsTypes(stack, [
35
+ NOTE,
36
+ BOOKMARK,
37
+ TASK,
38
+ CONTACT,
39
+ ARTICLE,
40
+ PLACE,
41
+ PAGE,
42
+ IMAGE,
43
+ POST,
44
+ SITE,
45
+ ]);
33
46
  }
34
47
  // Composed as a separate part rather than sniffed off the adapter: auth
35
48
  // material lives in its own file beside stack.db (not inside the
36
49
  // portable stack export) per docs/spec/wire-format.md § Authentication.
37
50
  const tokens = await NativeTokenStore.open({ path: defaultTokenStorePath(config.dbPath) });
38
51
  const nonces = AuthNonceStore.open(defaultNonceStorePath(config.dbPath));
52
+ const installRequests = InstallRequestStore.open(defaultInstallRequestStorePath(config.dbPath));
39
53
  // Spawned only once the adapter has opened and seeded stack.db: each
40
54
  // worker opens its own connection to that same file, and idempotent
41
55
  // seeding makes the race survivable rather than worth running.
@@ -45,6 +59,14 @@ export async function initStack(config, logger) {
45
59
  queueLimit: config.queryQueueLimit,
46
60
  logger,
47
61
  });
48
- return { adapter, stack, tokens, nonces, queryWorker, changeStreams: new ChangeStreamRegistry() };
62
+ return {
63
+ adapter,
64
+ stack,
65
+ tokens,
66
+ nonces,
67
+ installRequests,
68
+ queryWorker,
69
+ changeStreams: new ChangeStreamRegistry(),
70
+ };
49
71
  }
50
72
  //# sourceMappingURL=stack.js.map
package/dist/stack.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stack.js","sourceRoot":"","sources":["../src/stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,EACJ,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,MAAc;IAC5D,sEAAsE;IACtE,4EAA4E;IAC5E,oEAAoE;IACpE,oEAAoE;IACpE,+DAA+D;IAC/D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC;QAClD,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,aAAa,EAAE,GAAG,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC;QACjE,MAAM,CAAC,IAAI,CACT,EAAE,kBAAkB,EAAE,MAAM,CAAC,QAAQ,EAAE,mBAAmB,EAAE,OAAO,CAAC,aAAa,EAAE,EACnF,oFAAoF,CACrF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAC5B,OAAO,EACP,MAAM,CAAC,SAAS;QACd,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,IAAI,SAAS,EAAE,EAAE;QACvF,CAAC,CAAC,SAAS,CACd,CAAC;IAEF,yEAAyE;IACzE,uEAAuE;IACvE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,wEAAwE;IACxE,iEAAiE;IACjE,wEAAwE;IACxE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,qEAAqE;IACrE,oEAAoE;IACpE,+DAA+D;IAC/D,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;QACtC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAC/B,QAAQ,EAAE,MAAM,CAAC,mBAAmB;QACpC,UAAU,EAAE,MAAM,CAAC,eAAe;QAClC,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,oBAAoB,EAAE,EAAE,CAAC;AACpG,CAAC"}
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../src/stack.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAMnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAChE,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAC9C,eAAO,MAAM,eAAe,qCAAqC,CAAC;AAMlE,eAAO,MAAM,aAAa,8BAA8B,CAAC;AAEzD,eAAO,MAAM,MAAM,EAAE,MAAkC,CAAC;AAExD;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAInC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,eAAqC,GAC1C,OAAO,CAAC,YAAY,CAAC,CAgBvB;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,eAAqC,GAAG,MAAM,CAoB9F;AAkBD,MAAM,MAAM,UAAU,GAAG;IACvB,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,YAAY,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,IAAI,GAAE,eAAqC,GAC1C,OAAO,CAAC,UAAU,CAAC,CA0BrB"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAOnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAChE,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAC9C,eAAO,MAAM,eAAe,qCAAqC,CAAC;AAMlE,eAAO,MAAM,aAAa,8BAA8B,CAAC;AAEzD,eAAO,MAAM,MAAM,EAAE,MAAkC,CAAC;AAExD;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAInC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,eAAqC,GAC1C,OAAO,CAAC,YAAY,CAAC,CA0BvB;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,eAAqC,GAAG,MAAM,CAoB9F;AAkBD,MAAM,MAAM,UAAU,GAAG;IACvB,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,YAAY,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,IAAI,GAAE,eAAqC,GAC1C,OAAO,CAAC,UAAU,CAAC,CA0BrB"}
package/dist/testing.js CHANGED
@@ -21,6 +21,7 @@ import pino from 'pino';
21
21
  import { createApp } from './app.js';
22
22
  import { createShutdownHandler } from './shutdown.js';
23
23
  import { AuthNonceStore, defaultNonceStorePath } from './lib/nonceStore.js';
24
+ import { InstallRequestStore, defaultInstallRequestStorePath } from './lib/installRequestStore.js';
24
25
  import { QueryWorkerPool } from './lib/queryWorker/pool.js';
25
26
  import { ChangeStreamRegistry } from './lib/changeStreams.js';
26
27
  export const TEST_ENTITY_ID = 'did:key:test-entity-id-00000001';
@@ -43,21 +44,31 @@ export function tempDbPath() {
43
44
  return join(dir, 'stack.db');
44
45
  }
45
46
  export async function createTestContext(dbPath, opts = { timezone: 'UTC' }) {
46
- const adapter = await LocalAdapter.initialize({
47
+ const adapter = await LocalAdapter.open({
47
48
  path: dbPath,
49
+ create: 'exclusive',
48
50
  ownerEntityId: TEST_ENTITY_ID,
49
51
  ...(opts.timezone !== undefined && { timezone: opts.timezone }),
50
52
  });
51
53
  const stack = await Stack.open(adapter);
52
54
  const tokens = await NativeTokenStore.open({ path: defaultTokenStorePath(dbPath) });
53
55
  const nonces = AuthNonceStore.open(defaultNonceStorePath(dbPath));
56
+ const installRequests = InstallRequestStore.open(defaultInstallRequestStorePath(dbPath));
54
57
  const queryWorker = new QueryWorkerPool({
55
58
  init: { dbPath },
56
59
  poolSize: 1,
57
60
  queueLimit: 64,
58
61
  logger,
59
62
  });
60
- return { adapter, stack, tokens, nonces, queryWorker, changeStreams: new ChangeStreamRegistry() };
63
+ return {
64
+ adapter,
65
+ stack,
66
+ tokens,
67
+ nonces,
68
+ installRequests,
69
+ queryWorker,
70
+ changeStreams: new ChangeStreamRegistry(),
71
+ };
61
72
  }
62
73
  export function testConfig(dbPath, opts = { timezone: 'UTC' }) {
63
74
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haverstack/server",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Reference server implementation for Haverstack",
5
5
  "type": "module",
6
6
  "engines": {
@@ -41,10 +41,10 @@
41
41
  "format:check": "prettier --check ."
42
42
  },
43
43
  "dependencies": {
44
- "@haverstack/adapter-local": "^0.37.0",
45
- "@haverstack/commons": "^0.32.0",
46
- "@haverstack/core": "^0.38.0",
47
- "@haverstack/wire-types": "^0.37.0",
44
+ "@haverstack/adapter-local": "^0.42.0",
45
+ "@haverstack/commons": "^0.38.0",
46
+ "@haverstack/core": "^0.43.0",
47
+ "@haverstack/wire-types": "^0.42.0",
48
48
  "@hono/node-server": "^2.1.1",
49
49
  "hono": "^4.13.7",
50
50
  "pino": "^10.3.1",
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "@eslint/js": "^10.0.1",
55
- "@haverstack/conformance-fixtures": "^0.32.0",
55
+ "@haverstack/conformance-fixtures": "^0.37.0",
56
56
  "@types/node": "^26.2.0",
57
57
  "eslint": "^10.8.1",
58
58
  "eslint-config-prettier": "^10.1.8",
@@ -1,6 +0,0 @@
1
- import type { StackQuery } from '@haverstack/core';
2
- export declare const MAX_QUERY_LIMIT = 1000;
3
- export declare function clampLimit(query: StackQuery): StackQuery;
4
- export declare const MAX_JOURNAL_LIMIT = 500;
5
- export declare function clampJournalLimit(limit: number | undefined): number;
6
- //# sourceMappingURL=queryLimit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryLimit.d.ts","sourceRoot":"","sources":["../../src/lib/queryLimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAKnD,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAGxD;AAQD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEnE"}
@@ -1,20 +0,0 @@
1
- // core's parsers (@haverstack/core/wire) report `limit` as requested and
2
- // never clamp it — a ceiling is deployment policy, not wire contract. This
3
- // server's ceilings, applied at the call sites in records.ts.
4
- export const MAX_QUERY_LIMIT = 1000;
5
- export function clampLimit(query) {
6
- if (query.limit === undefined)
7
- return query;
8
- return { ...query, limit: Math.min(query.limit, MAX_QUERY_LIMIT) };
9
- }
10
- // The journal is the one read with no ceiling when `limit` is omitted, so
11
- // a page size can't be supplied on the caller's behalf: omitting `limit`
12
- // reads the whole log by contract, and truncating it silently would betray
13
- // exactly the caller reconstructing an association's full history. This
14
- // server bounds a page and says so in `cursor` instead. See
15
- // docs/spec/wire-format.md § Journal.
16
- export const MAX_JOURNAL_LIMIT = 500;
17
- export function clampJournalLimit(limit) {
18
- return limit === undefined ? MAX_JOURNAL_LIMIT : Math.min(limit, MAX_JOURNAL_LIMIT);
19
- }
20
- //# sourceMappingURL=queryLimit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryLimit.js","sourceRoot":"","sources":["../../src/lib/queryLimit.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,2EAA2E;AAC3E,8DAA8D;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AACxE,4DAA4D;AAC5D,sCAAsC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACtF,CAAC"}