@fuzdev/fuz_app 0.137.0 → 0.139.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 (132) hide show
  1. package/LICENSE +10 -17
  2. package/README.md +1 -1
  3. package/dist/actions/action_codegen.js +1 -1
  4. package/dist/actions/action_event.js +1 -1
  5. package/dist/actions/action_rpc.d.ts +1 -1
  6. package/dist/actions/action_rpc.d.ts.map +1 -1
  7. package/dist/actions/connection_closer.d.ts +1 -1
  8. package/dist/actions/connection_closer.d.ts.map +1 -1
  9. package/dist/actions/peer_request.d.ts +1 -1
  10. package/dist/actions/peer_request.d.ts.map +1 -1
  11. package/dist/actions/perform_action.d.ts +1 -1
  12. package/dist/actions/perform_action.d.ts.map +1 -1
  13. package/dist/actions/register_action_ws.d.ts +1 -1
  14. package/dist/actions/register_action_ws.d.ts.map +1 -1
  15. package/dist/actions/transports_ws_backend.d.ts +1 -1
  16. package/dist/actions/transports_ws_backend.d.ts.map +1 -1
  17. package/dist/actions/transports_ws_backend.js +1 -1
  18. package/dist/auth/account_schema.d.ts +2 -3
  19. package/dist/auth/account_schema.d.ts.map +1 -1
  20. package/dist/auth/account_schema.js +2 -4
  21. package/dist/auth/actor_lookup_action_specs.js +1 -1
  22. package/dist/auth/actor_lookup_queries.d.ts +1 -1
  23. package/dist/auth/actor_lookup_queries.d.ts.map +1 -1
  24. package/dist/auth/actor_search_action_specs.d.ts.map +1 -1
  25. package/dist/auth/actor_search_action_specs.js +1 -2
  26. package/dist/auth/actor_search_queries.d.ts +1 -1
  27. package/dist/auth/actor_search_queries.d.ts.map +1 -1
  28. package/dist/auth/admin_action_specs.d.ts.map +1 -1
  29. package/dist/auth/admin_action_specs.js +1 -2
  30. package/dist/auth/app_settings_schema.d.ts +1 -1
  31. package/dist/auth/app_settings_schema.d.ts.map +1 -1
  32. package/dist/auth/app_settings_schema.js +1 -1
  33. package/dist/auth/audit_emitter.d.ts +1 -1
  34. package/dist/auth/audit_emitter.d.ts.map +1 -1
  35. package/dist/auth/audit_log_schema.d.ts +1 -1
  36. package/dist/auth/audit_log_schema.d.ts.map +1 -1
  37. package/dist/auth/audit_log_schema.js +1 -2
  38. package/dist/auth/bootstrap_route_schema.d.ts.map +1 -1
  39. package/dist/auth/bootstrap_route_schema.js +1 -2
  40. package/dist/auth/cell_action_specs.d.ts +22 -22
  41. package/dist/auth/cell_action_specs.d.ts.map +1 -1
  42. package/dist/auth/cell_action_specs.js +1 -3
  43. package/dist/auth/cell_actions.d.ts +1 -1
  44. package/dist/auth/cell_actions.d.ts.map +1 -1
  45. package/dist/auth/cell_audit_action_specs.js +1 -1
  46. package/dist/auth/cell_audit_metadata.js +1 -1
  47. package/dist/auth/cell_field_action_specs.js +1 -1
  48. package/dist/auth/cell_field_audit_metadata.js +1 -1
  49. package/dist/auth/cell_grant_action_specs.js +1 -1
  50. package/dist/auth/cell_grant_audit_metadata.js +1 -1
  51. package/dist/auth/cell_item_action_specs.d.ts.map +1 -1
  52. package/dist/auth/cell_item_action_specs.js +1 -2
  53. package/dist/auth/cell_item_audit_metadata.js +1 -1
  54. package/dist/auth/cell_relation_visibility.d.ts +1 -1
  55. package/dist/auth/cell_relation_visibility.d.ts.map +1 -1
  56. package/dist/auth/invite_schema.d.ts +1 -2
  57. package/dist/auth/invite_schema.d.ts.map +1 -1
  58. package/dist/auth/invite_schema.js +1 -2
  59. package/dist/auth/role_grant_offer_action_specs.d.ts.map +1 -1
  60. package/dist/auth/role_grant_offer_action_specs.js +1 -2
  61. package/dist/auth/role_grant_offer_notifications.d.ts +1 -1
  62. package/dist/auth/role_grant_offer_notifications.d.ts.map +1 -1
  63. package/dist/auth/role_grant_offer_notifications.js +1 -2
  64. package/dist/auth/role_grant_offer_queries.d.ts +1 -1
  65. package/dist/auth/role_grant_offer_queries.d.ts.map +1 -1
  66. package/dist/auth/role_grant_offer_schema.d.ts +1 -1
  67. package/dist/auth/role_grant_offer_schema.d.ts.map +1 -1
  68. package/dist/auth/role_grant_offer_schema.js +1 -2
  69. package/dist/auth/role_grant_queries.d.ts +1 -1
  70. package/dist/auth/role_grant_queries.d.ts.map +1 -1
  71. package/dist/auth/signup_route_schema.d.ts.map +1 -1
  72. package/dist/auth/signup_route_schema.js +1 -2
  73. package/dist/cli/args.d.ts +2 -1
  74. package/dist/cli/args.d.ts.map +1 -1
  75. package/dist/cli/args.js +19 -19
  76. package/dist/cli/config.d.ts +6 -6
  77. package/dist/cli/config.d.ts.map +1 -1
  78. package/dist/cli/config.js +9 -8
  79. package/dist/cli/daemon.d.ts +28 -10
  80. package/dist/cli/daemon.d.ts.map +1 -1
  81. package/dist/cli/daemon.js +13 -12
  82. package/dist/db/cell_audit_queries.d.ts +1 -1
  83. package/dist/db/cell_audit_queries.d.ts.map +1 -1
  84. package/dist/db/cell_field_queries.d.ts +1 -1
  85. package/dist/db/cell_field_queries.d.ts.map +1 -1
  86. package/dist/db/cell_grant_queries.d.ts +1 -1
  87. package/dist/db/cell_grant_queries.d.ts.map +1 -1
  88. package/dist/db/cell_item_queries.d.ts +1 -1
  89. package/dist/db/cell_item_queries.d.ts.map +1 -1
  90. package/dist/db/cell_queries.d.ts +1 -1
  91. package/dist/db/cell_queries.d.ts.map +1 -1
  92. package/dist/http/auth_shape.js +2 -2
  93. package/dist/http/db_routes.d.ts +1 -1
  94. package/dist/http/db_routes.d.ts.map +1 -1
  95. package/dist/primitive_schemas.d.ts +48 -10
  96. package/dist/primitive_schemas.d.ts.map +1 -1
  97. package/dist/primitive_schemas.js +47 -10
  98. package/dist/server/serve_fact_route.js +1 -2
  99. package/dist/testing/adversarial_input.js +1 -1
  100. package/dist/testing/app_server.d.ts +1 -1
  101. package/dist/testing/app_server.d.ts.map +1 -1
  102. package/dist/testing/cross_backend/fact_serving.js +1 -1
  103. package/dist/testing/cross_backend/setup.d.ts +1 -1
  104. package/dist/testing/cross_backend/setup.d.ts.map +1 -1
  105. package/dist/testing/cross_backend/setup.js +1 -2
  106. package/dist/testing/cross_backend/testing_reset_actions.d.ts +1 -1
  107. package/dist/testing/cross_backend/testing_reset_actions.d.ts.map +1 -1
  108. package/dist/testing/cross_backend/testing_reset_actions.js +1 -2
  109. package/dist/testing/role_grant_helpers.d.ts +1 -1
  110. package/dist/testing/role_grant_helpers.d.ts.map +1 -1
  111. package/dist/testing/schema_generators.d.ts +1 -1
  112. package/dist/testing/schema_generators.d.ts.map +1 -1
  113. package/dist/testing/schema_generators.js +1 -1
  114. package/dist/testing/transports/bootstrap.d.ts +1 -1
  115. package/dist/testing/transports/bootstrap.d.ts.map +1 -1
  116. package/dist/testing/transports/bootstrap.js +1 -1
  117. package/dist/testing/ws_round_trip.d.ts +1 -1
  118. package/dist/testing/ws_round_trip.d.ts.map +1 -1
  119. package/dist/testing/ws_round_trip.js +1 -1
  120. package/dist/ui/AdminAccounts.svelte +2 -2
  121. package/dist/ui/ConfirmButton.svelte +1 -1
  122. package/dist/ui/RoleGrantOfferInbox.svelte +1 -1
  123. package/dist/ui/admin_accounts_state.svelte.d.ts +1 -1
  124. package/dist/ui/admin_accounts_state.svelte.d.ts.map +1 -1
  125. package/dist/ui/admin_invites_state.svelte.d.ts +1 -1
  126. package/dist/ui/admin_invites_state.svelte.d.ts.map +1 -1
  127. package/dist/ui/admin_sessions_state.svelte.d.ts +1 -1
  128. package/dist/ui/admin_sessions_state.svelte.d.ts.map +1 -1
  129. package/dist/zod.d.ts +64 -0
  130. package/dist/zod.d.ts.map +1 -0
  131. package/dist/zod.js +171 -0
  132. package/package.json +13 -13
package/dist/cli/args.js CHANGED
@@ -38,7 +38,8 @@ export const parse_command_args = (remaining, schema) => {
38
38
  * read on any wrapper layer of the entry), and the fallback provides defaults
39
39
  * when parsing fails. Every entry is global, both of a `no-` pair like `color`
40
40
  * and `no-color` included, so `--no-color`, which `argv_parse` reads as
41
- * `color: false`, never lands in `remaining`.
41
+ * `color: false`, never lands in `remaining`. A `no-` pair and aliases resolve
42
+ * as `args_parse` resolves them.
42
43
  *
43
44
  * @param schema - fuz_schema object schema for global flags
44
45
  * @param fallback - default values when parsing fails
@@ -46,37 +47,35 @@ export const parse_command_args = (remaining, schema) => {
46
47
  */
47
48
  export const create_extract_global_flags = (schema, fallback) => {
48
49
  return (unparsed) => {
49
- // get all global flag names and aliases from schema
50
+ // get all global flag names and aliases from schema, `input_names` with
51
+ // those of a `_` entry, which is read but never stripped from `remaining`
50
52
  const global_props = to_global_props(schema);
51
53
  const global_names = new Set();
54
+ const input_names = new Set();
52
55
  for (const prop of global_props) {
56
+ input_names.add(prop.name);
57
+ for (const alias of prop.aliases)
58
+ input_names.add(alias);
53
59
  if (prop.name === '_')
54
60
  continue;
55
61
  global_names.add(prop.name);
56
62
  for (const alias of prop.aliases)
57
63
  global_names.add(alias);
58
64
  }
59
- // extract global flag values, handling aliases
60
- const flags_input = {};
61
- for (const prop of global_props) {
62
- // check canonical name first, then aliases
63
- if (prop.name in unparsed) {
64
- flags_input[prop.name] = unparsed[prop.name];
65
- }
66
- else {
67
- for (const alias of prop.aliases) {
68
- if (alias in unparsed) {
69
- flags_input[prop.name] = unparsed[alias];
70
- break;
71
- }
72
- }
73
- }
65
+ // copy the given global flags in the order they were given, aliases included,
66
+ // so `args_parse` expands aliases and resolves a `no-` pair given both ways
67
+ // to the side given last; a null prototype keeps every key an own key
68
+ const flags_input = Object.create(null);
69
+ for (const [key, value] of Object.entries(unparsed)) {
70
+ if (input_names.has(key))
71
+ flags_input[key] = value;
74
72
  }
75
73
  // parse global flags
76
74
  const global_parsed = args_parse(flags_input, schema);
77
75
  const flags = global_parsed.ok ? global_parsed.value : fallback;
78
- // build remaining args without global flags
79
- const remaining = { _: [...unparsed._] };
76
+ // build remaining args without global flags, `__proto__` as an own key
77
+ const remaining = Object.create(null);
78
+ remaining._ = [...unparsed._];
80
79
  for (const [key, value] of Object.entries(unparsed)) {
81
80
  if (key === '_')
82
81
  continue;
@@ -84,6 +83,7 @@ export const create_extract_global_flags = (schema, fallback) => {
84
83
  continue;
85
84
  remaining[key] = value;
86
85
  }
86
+ Object.setPrototypeOf(remaining, Object.prototype);
87
87
  return { flags, remaining };
88
88
  };
89
89
  };
@@ -2,12 +2,12 @@
2
2
  * Generic CLI configuration loader.
3
3
  *
4
4
  * Manages CLI-specific configuration stored at `~/.{name}/config.json`.
5
- * Consumers keep their project-specific Zod schemas locally and use
6
- * these generic load/save functions.
5
+ * Consumers keep their project-specific `@fuzdev/fuz_schema` schemas locally
6
+ * and use these generic load/save functions.
7
7
  *
8
8
  * @module
9
9
  */
10
- import type { z } from 'zod';
10
+ import { type Schema } from '@fuzdev/fuz_schema/schema.ts';
11
11
  import type { EnvDeps, FsReadDeps, FsWriteDeps, LogDeps } from '../runtime/deps.js';
12
12
  /**
13
13
  * Get the CLI config directory path (`~/.{name}`).
@@ -26,14 +26,14 @@ export declare const get_app_dir: (runtime: Pick<EnvDeps, "env_get">, name: stri
26
26
  */
27
27
  export declare const get_config_path: (runtime: Pick<EnvDeps, "env_get">, name: string) => string | null;
28
28
  /**
29
- * Load CLI configuration from a JSON file with Zod schema validation.
29
+ * Load CLI configuration from a JSON file validated by a `@fuzdev/fuz_schema` schema.
30
30
  *
31
31
  * @param runtime - runtime with file read capability
32
32
  * @param path - path to the config JSON file
33
- * @param schema - Zod schema to validate against
33
+ * @param schema - fuz_schema schema to validate against
34
34
  * @returns parsed config, or null if file doesn't exist or is invalid
35
35
  */
36
- export declare const load_config: <T>(runtime: Pick<FsReadDeps, "stat" | "read_text_file"> & LogDeps, path: string, schema: z.ZodType<T>) => Promise<T | null>;
36
+ export declare const load_config: <T>(runtime: Pick<FsReadDeps, "stat" | "read_text_file"> & LogDeps, path: string, schema: Schema<T, any>) => Promise<T | null>;
37
37
  /**
38
38
  * Save CLI configuration to a JSON file.
39
39
  *
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/cli/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,IAGtF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,IAG1F,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,EAClC,SAAS,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAAG,OAAO,EAC9D,MAAM,MAAM,EACZ,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,CAAC,GAAG,IAAI,CAoBlB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,EAClC,SAAS,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB,CAAC,EACvD,MAAM,MAAM,EACZ,KAAK,MAAM,EACX,QAAQ,CAAC,KACP,OAAO,CAAC,IAAI,CAOd,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/cli/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAuB,KAAK,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEhF,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,IAGtF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,IAG1F,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,EAClC,SAAS,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAAG,OAAO,EAC9D,MAAM,MAAM,EACZ,QAAQ,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,KACpB,OAAO,CAAC,CAAC,GAAG,IAAI,CAoBlB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,EAClC,SAAS,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB,CAAC,EACvD,MAAM,MAAM,EACZ,KAAK,MAAM,EACX,QAAQ,CAAC,KACP,OAAO,CAAC,IAAI,CAOd,CAAC"}
@@ -2,11 +2,12 @@
2
2
  * Generic CLI configuration loader.
3
3
  *
4
4
  * Manages CLI-specific configuration stored at `~/.{name}/config.json`.
5
- * Consumers keep their project-specific Zod schemas locally and use
6
- * these generic load/save functions.
5
+ * Consumers keep their project-specific `@fuzdev/fuz_schema` schemas locally
6
+ * and use these generic load/save functions.
7
7
  *
8
8
  * @module
9
9
  */
10
+ import { format_issue, parse } from '@fuzdev/fuz_schema/schema.ts';
10
11
  /**
11
12
  * Get the CLI config directory path (`~/.{name}`).
12
13
  *
@@ -30,11 +31,11 @@ export const get_config_path = (runtime, name) => {
30
31
  return app_dir ? `${app_dir}/config.json` : null;
31
32
  };
32
33
  /**
33
- * Load CLI configuration from a JSON file with Zod schema validation.
34
+ * Load CLI configuration from a JSON file validated by a `@fuzdev/fuz_schema` schema.
34
35
  *
35
36
  * @param runtime - runtime with file read capability
36
37
  * @param path - path to the config JSON file
37
- * @param schema - Zod schema to validate against
38
+ * @param schema - fuz_schema schema to validate against
38
39
  * @returns parsed config, or null if file doesn't exist or is invalid
39
40
  */
40
41
  export const load_config = async (runtime, path, schema) => {
@@ -46,12 +47,12 @@ export const load_config = async (runtime, path, schema) => {
46
47
  try {
47
48
  const content = await runtime.read_text_file(path);
48
49
  const parsed = JSON.parse(content);
49
- const result = schema.safeParse(parsed);
50
- if (!result.success) {
51
- runtime.warn(`Invalid config.json: ${result.error.message}`);
50
+ const result = parse(schema, parsed);
51
+ if (!result.ok) {
52
+ runtime.warn(`Invalid config.json: ${result.issues.map(format_issue).join('; ')}`);
52
53
  return null;
53
54
  }
54
- return result.data;
55
+ return result.value;
55
56
  }
56
57
  catch (error) {
57
58
  runtime.warn(`Failed to read config.json: ${error.message}`);
@@ -7,19 +7,37 @@
7
7
  *
8
8
  * @module
9
9
  */
10
- import { z } from 'zod';
10
+ import { type Infer } from '@fuzdev/fuz_schema/schema.ts';
11
11
  import { type CommandDeps, type EnvDeps, type FetchDeps, type FsReadDeps, type FsRemoveDeps, type FsWriteDeps, type LogDeps } from '../runtime/deps.js';
12
12
  /**
13
- * Daemon info schema for `~/.{name}/run/daemon.json`.
13
+ * Daemon info schema for `~/.{name}/run/daemon.json`, a strict
14
+ * `@fuzdev/fuz_schema` object schema.
14
15
  */
15
- export declare const DaemonInfo: z.ZodObject<{
16
- version: z.ZodNumber;
17
- pid: z.ZodNumber;
18
- port: z.ZodNumber;
19
- started: z.ZodString;
20
- app_version: z.ZodString;
21
- }, z.core.$strict>;
22
- export type DaemonInfo = z.infer<typeof DaemonInfo>;
16
+ export declare const DaemonInfo: import("@fuzdev/fuz_schema/schema.ts").Schema<{
17
+ version: number;
18
+ pid: number;
19
+ port: number;
20
+ started: string;
21
+ app_version: string;
22
+ }, {
23
+ version: number;
24
+ pid: number;
25
+ port: number;
26
+ started: string;
27
+ app_version: string;
28
+ }, "object", {
29
+ /** Schema version. */
30
+ version: import("@fuzdev/fuz_schema/schema.ts").Schema<number, number, "number", undefined>;
31
+ /** Server process ID. */
32
+ pid: import("@fuzdev/fuz_schema/schema.ts").Schema<number, number, "number", undefined>;
33
+ /** Port the server is listening on. */
34
+ port: import("@fuzdev/fuz_schema/schema.ts").Schema<number, number, "number", undefined>;
35
+ /** ISO timestamp when server started. */
36
+ started: import("@fuzdev/fuz_schema/schema.ts").Schema<string, string, "string", undefined>;
37
+ /** Package version of the application. */
38
+ app_version: import("@fuzdev/fuz_schema/schema.ts").Schema<string, string, "string", undefined>;
39
+ }>;
40
+ export type DaemonInfo = Infer<typeof DaemonInfo>;
23
41
  /**
24
42
  * Get the daemon info file path (`~/.{name}/run/daemon.json`).
25
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/cli/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,MAAM,oBAAoB,CAAC;AAI5B;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;kBAWrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAChC,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EACjC,MAAM,MAAM,KACV,MAAM,GAAG,IAGX,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC7B,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,QAAQ,CAAC,EAC7F,MAAM,MAAM,EACZ,MAAM,UAAU,KACd,OAAO,CAAC,IAAI,CAWd,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC5B,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAAG,OAAO,EACzF,MAAM,MAAM,KACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAwB3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAU,SAAS,WAAW,EAAE,KAAK,MAAM,KAAG,OAAO,CAAC,OAAO,CAG1F,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAC/B,MAAM,SAAS,EACf,MAAM,MAAM,EACZ,aAAkB,EAClB,mBAAiB,KACf,OAAO,CAAC,OAAO,CAYjB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,GACvB,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAChC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAC3C,YAAY,GACZ,WAAW,GACX,OAAO,EACR,MAAM,MAAM,KACV,OAAO,CAAC,gBAAgB,CA2C1B,CAAC"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/cli/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAMN,KAAK,KAAK,EACV,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,MAAM,oBAAoB,CAAC;AAI5B;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;IACtB,sBAAsB;;IAEtB,yBAAyB;;IAEzB,uCAAuC;;IAEvC,yCAAyC;;IAEzC,0CAA0C;;EAEzC,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAChC,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EACjC,MAAM,MAAM,KACV,MAAM,GAAG,IAGX,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC7B,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,QAAQ,CAAC,EAC7F,MAAM,MAAM,EACZ,MAAM,UAAU,KACd,OAAO,CAAC,IAAI,CAWd,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC5B,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAAG,OAAO,EACzF,MAAM,MAAM,KACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAwB3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAU,SAAS,WAAW,EAAE,KAAK,MAAM,KAAG,OAAO,CAAC,OAAO,CAG1F,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAC/B,MAAM,SAAS,EACf,MAAM,MAAM,EACZ,aAAkB,EAClB,mBAAiB,KACf,OAAO,CAAC,OAAO,CAYjB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,GACvB,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAChC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAC3C,YAAY,GACZ,WAAW,GACX,OAAO,EACR,MAAM,MAAM,KACV,OAAO,CAAC,gBAAgB,CA2C1B,CAAC"}
@@ -7,24 +7,25 @@
7
7
  *
8
8
  * @module
9
9
  */
10
- import { z } from 'zod';
10
+ import { format_issue, number, object, parse, string } from '@fuzdev/fuz_schema/schema.ts';
11
11
  import {} from '../runtime/deps.js';
12
12
  import { write_file_atomic } from '../runtime/fs.js';
13
13
  import { get_app_dir } from './config.js';
14
14
  /**
15
- * Daemon info schema for `~/.{name}/run/daemon.json`.
15
+ * Daemon info schema for `~/.{name}/run/daemon.json`, a strict
16
+ * `@fuzdev/fuz_schema` object schema.
16
17
  */
17
- export const DaemonInfo = z.strictObject({
18
+ export const DaemonInfo = object({
18
19
  /** Schema version. */
19
- version: z.number(),
20
+ version: number,
20
21
  /** Server process ID. */
21
- pid: z.number(),
22
+ pid: number,
22
23
  /** Port the server is listening on. */
23
- port: z.number(),
24
+ port: number,
24
25
  /** ISO timestamp when server started. */
25
- started: z.string(),
26
+ started: string,
26
27
  /** Package version of the application. */
27
- app_version: z.string()
28
+ app_version: string
28
29
  });
29
30
  /**
30
31
  * Get the daemon info file path (`~/.{name}/run/daemon.json`).
@@ -75,12 +76,12 @@ export const read_daemon_info = async (runtime, name) => {
75
76
  try {
76
77
  const content = await runtime.read_text_file(daemon_path);
77
78
  const parsed = JSON.parse(content);
78
- const result = DaemonInfo.safeParse(parsed);
79
- if (!result.success) {
80
- runtime.warn(`Invalid daemon.json: ${result.error.message}`);
79
+ const result = parse(DaemonInfo, parsed);
80
+ if (!result.ok) {
81
+ runtime.warn(`Invalid daemon.json: ${result.issues.map(format_issue).join('; ')}`);
81
82
  return null;
82
83
  }
83
- return result.data;
84
+ return result.value;
84
85
  }
85
86
  catch {
86
87
  runtime.warn('Failed to parse daemon.json');
@@ -14,7 +14,7 @@
14
14
  */
15
15
  import type { QueryDeps } from './query_deps.js';
16
16
  import type { AuditLogEvent } from '../auth/audit_log_schema.js';
17
- import type { Uuid } from '@fuzdev/fuz_util/id.ts';
17
+ import type { Uuid } from '../primitive_schemas.js';
18
18
  export interface CellAuditListOptions {
19
19
  limit: number;
20
20
  /** Cursor — return rows with `seq < before`. */
@@ -1 +1 @@
1
- {"version":3,"file":"cell_audit_queries.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/cell_audit_queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAoBnD,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACxC,MAAM,SAAS,EACf,SAAS,IAAI,EACb,SAAS,oBAAoB,KAC3B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAwB9B,CAAC"}
1
+ {"version":3,"file":"cell_audit_queries.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/cell_audit_queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAoBpD,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACxC,MAAM,SAAS,EACf,SAAS,IAAI,EACb,SAAS,oBAAoB,KAC3B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAwB9B,CAAC"}
@@ -17,7 +17,7 @@
17
17
  * @module
18
18
  */
19
19
  import type { QueryDeps } from './query_deps.js';
20
- import type { Uuid } from '@fuzdev/fuz_util/id.ts';
20
+ import type { Uuid } from '../primitive_schemas.js';
21
21
  /** Row shape returned by `cell_field` SELECTs. */
22
22
  export interface CellFieldRow {
23
23
  source_id: Uuid;
@@ -1 +1 @@
1
- {"version":3,"file":"cell_field_queries.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/cell_field_queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAInD,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,2DAKuB,CAAC;AAKvD,wCAAwC;AACxC,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,SAAS,EACf,OAAO,sBAAsB,KAC3B,OAAO,CAAC,YAAY,CAUtB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,SAAS,EACf,WAAW,IAAI,EACf,MAAM,MAAM,KACV,OAAO,CAAC,YAAY,GAAG,IAAI,CAM7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GACnC,MAAM,SAAS,EACf,WAAW,IAAI,EACf,MAAM,MAAM,KACV,OAAO,CAAC,YAAY,GAAG,IAAI,CAO7B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gCAAgC,GAC5C,MAAM,SAAS,EACf,WAAW,IAAI,EACf,UAAU;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KAC/C,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAa7B,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gCAAgC,GAC5C,MAAM,SAAS,EACf,WAAW,IAAI,EACf,UAAU;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAS5B,CAAC"}
1
+ {"version":3,"file":"cell_field_queries.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/cell_field_queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAIpD,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,2DAKuB,CAAC;AAKvD,wCAAwC;AACxC,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,SAAS,EACf,OAAO,sBAAsB,KAC3B,OAAO,CAAC,YAAY,CAUtB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,SAAS,EACf,WAAW,IAAI,EACf,MAAM,MAAM,KACV,OAAO,CAAC,YAAY,GAAG,IAAI,CAM7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GACnC,MAAM,SAAS,EACf,WAAW,IAAI,EACf,MAAM,MAAM,KACV,OAAO,CAAC,YAAY,GAAG,IAAI,CAO7B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gCAAgC,GAC5C,MAAM,SAAS,EACf,WAAW,IAAI,EACf,UAAU;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KAC/C,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAa7B,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gCAAgC,GAC5C,MAAM,SAAS,EACf,WAAW,IAAI,EACf,UAAU;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAS5B,CAAC"}
@@ -22,7 +22,7 @@
22
22
  * @module
23
23
  */
24
24
  import type { QueryDeps } from './query_deps.js';
25
- import type { Uuid } from '@fuzdev/fuz_util/id.ts';
25
+ import type { Uuid } from '../primitive_schemas.js';
26
26
  import type { CellGrantLevel } from '../auth/cell_grant_action_specs.js';
27
27
  /** Row shape returned by `cell_grant` SELECTs. */
28
28
  export interface CellGrantRow {
@@ -1 +1 @@
1
- {"version":3,"file":"cell_grant_queries.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/cell_grant_queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIzE,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,iGASuB,CAAC;AAKvD;;;;;GAKG;AACH,MAAM,MAAM,4BAA4B,GACvC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3F,2CAA2C;AAC3C,MAAM,WAAW,yBAAyB;IACzC,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,4BAA4B,CAAC;IACxC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GACnC,MAAM,SAAS,EACf,OAAO,yBAAyB,KAC9B,OAAO,CAAC,YAAY,CAsBtB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,SAAS,EACf,UAAU,IAAI,KACZ,OAAO,CAAC,YAAY,GAAG,IAAI,CAM7B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GACnC,MAAM,SAAS,EACf,UAAU,IAAI,KACZ,OAAO,CAAC,YAAY,GAAG,IAAI,CAM7B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,GAC1C,MAAM,SAAS,EACf,SAAS,IAAI,KACX,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAM5B,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,+BAA+B,GAC3C,MAAM,SAAS,EACf,UAAU,aAAa,CAAC,IAAI,CAAC,KAC3B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAQ7B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qCAAqC,GACjD,MAAM,SAAS,EACf,UAAU,aAAa,CAAC,IAAI,CAAC,EAC7B,iBAAiB,IAAI,GAAG,IAAI,EAC5B,kBAAkB,aAAa,CAAC,MAAM,CAAC,EACvC,sBAAsB,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,KAC9C,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAmB7B,CAAC"}
1
+ {"version":3,"file":"cell_grant_queries.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/cell_grant_queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIzE,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,iGASuB,CAAC;AAKvD;;;;;GAKG;AACH,MAAM,MAAM,4BAA4B,GACvC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3F,2CAA2C;AAC3C,MAAM,WAAW,yBAAyB;IACzC,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,4BAA4B,CAAC;IACxC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GACnC,MAAM,SAAS,EACf,OAAO,yBAAyB,KAC9B,OAAO,CAAC,YAAY,CAsBtB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,SAAS,EACf,UAAU,IAAI,KACZ,OAAO,CAAC,YAAY,GAAG,IAAI,CAM7B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GACnC,MAAM,SAAS,EACf,UAAU,IAAI,KACZ,OAAO,CAAC,YAAY,GAAG,IAAI,CAM7B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,GAC1C,MAAM,SAAS,EACf,SAAS,IAAI,KACX,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAM5B,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,+BAA+B,GAC3C,MAAM,SAAS,EACf,UAAU,aAAa,CAAC,IAAI,CAAC,KAC3B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAQ7B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qCAAqC,GACjD,MAAM,SAAS,EACf,UAAU,aAAa,CAAC,IAAI,CAAC,EAC7B,iBAAiB,IAAI,GAAG,IAAI,EAC5B,kBAAkB,aAAa,CAAC,MAAM,CAAC,EACvC,sBAAsB,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,KAC9C,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAmB7B,CAAC"}
@@ -20,7 +20,7 @@
20
20
  * @module
21
21
  */
22
22
  import type { QueryDeps } from './query_deps.js';
23
- import type { Uuid } from '@fuzdev/fuz_util/id.ts';
23
+ import type { Uuid } from '../primitive_schemas.js';
24
24
  /** Row shape returned by `cell_item` SELECTs. */
25
25
  export interface CellItemRow {
26
26
  parent_id: Uuid;
@@ -1 +1 @@
1
- {"version":3,"file":"cell_item_queries.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/cell_item_queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAInD,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,8DAKuB,CAAC;AAKtD,0CAA0C;AAC1C,MAAM,WAAW,wBAAwB;IACxC,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,GAClC,MAAM,SAAS,EACf,OAAO,wBAAwB,KAC7B,OAAO,CAAC,WAAW,CAQrB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC/B,MAAM,SAAS,EACf,WAAW,IAAI,EACf,UAAU,MAAM,KACd,OAAO,CAAC,WAAW,GAAG,IAAI,CAM5B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,SAAS,EACf,WAAW,IAAI,EACf,cAAc,MAAM,EACpB,cAAc,MAAM,KAClB,OAAO,CAAC,WAAW,GAAG,IAAI,CAS5B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAClC,MAAM,SAAS,EACf,WAAW,IAAI,EACf,UAAU,MAAM,KACd,OAAO,CAAC,WAAW,GAAG,IAAI,CAO5B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,+BAA+B,GAC3C,MAAM,SAAS,EACf,WAAW,IAAI,EACf,UAAU;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,KACnD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAa5B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B,GAC1C,MAAM,SAAS,EACf,UAAU,IAAI,EACd,UAAU;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAS3B,CAAC"}
1
+ {"version":3,"file":"cell_item_queries.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/cell_item_queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAIpD,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,8DAKuB,CAAC;AAKtD,0CAA0C;AAC1C,MAAM,WAAW,wBAAwB;IACxC,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,GAClC,MAAM,SAAS,EACf,OAAO,wBAAwB,KAC7B,OAAO,CAAC,WAAW,CAQrB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC/B,MAAM,SAAS,EACf,WAAW,IAAI,EACf,UAAU,MAAM,KACd,OAAO,CAAC,WAAW,GAAG,IAAI,CAM5B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,SAAS,EACf,WAAW,IAAI,EACf,cAAc,MAAM,EACpB,cAAc,MAAM,KAClB,OAAO,CAAC,WAAW,GAAG,IAAI,CAS5B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAClC,MAAM,SAAS,EACf,WAAW,IAAI,EACf,UAAU,MAAM,KACd,OAAO,CAAC,WAAW,GAAG,IAAI,CAO5B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,+BAA+B,GAC3C,MAAM,SAAS,EACf,WAAW,IAAI,EACf,UAAU;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,KACnD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAa5B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B,GAC1C,MAAM,SAAS,EACf,UAAU,IAAI,EACd,UAAU;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAS3B,CAAC"}
@@ -22,7 +22,7 @@
22
22
  */
23
23
  import type { QueryDeps } from './query_deps.js';
24
24
  import type { Json } from '@fuzdev/fuz_util/json.ts';
25
- import type { Uuid } from '@fuzdev/fuz_util/id.ts';
25
+ import type { Uuid } from '../primitive_schemas.js';
26
26
  import type { FactHash } from '@fuzdev/fuz_util/hash_schemas.ts';
27
27
  import type { CellData } from '../auth/cell_data_schema.js';
28
28
  import type { CellVisibility } from '../auth/cell_action_specs.js';
@@ -1 +1 @@
1
- {"version":3,"file":"cell_queries.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/cell_queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cell_queries.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/cell_queries.ts"],"names":[],"mappings":"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"}
@@ -33,8 +33,8 @@
33
33
  * @module
34
34
  */
35
35
  import { z } from 'zod';
36
- import { Uuid } from '@fuzdev/fuz_util/id.ts';
37
- import { zod_unwrap_to_object } from '@fuzdev/fuz_util/zod.ts';
36
+ import { Uuid } from '../primitive_schemas.js';
37
+ import { zod_unwrap_to_object } from '../zod.js';
38
38
  /**
39
39
  * `acting` field shared by every input that needs the caller's acting actor.
40
40
  * Declaring `acting: ActingActor` on a route or action input signals to the
@@ -10,7 +10,7 @@
10
10
  * @module
11
11
  */
12
12
  import type { Logger } from '@fuzdev/fuz_util/log.ts';
13
- import type { Uuid } from '@fuzdev/fuz_util/id.ts';
13
+ import type { Uuid } from '../primitive_schemas.js';
14
14
  import type { Db, DbType } from '../db/db.js';
15
15
  import { type RouteSpec } from './route_spec.js';
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"db_routes.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/http/db_routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAiBpF;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,sDAAsD;AACtD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,CAKrD,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,CAKrD,CAAC;AAEH;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;;;;OAQG;IACH,KAAK,EAAE;QACN,IAAI,EAAE,CACL,GAAG,EAAE;YACJ,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,mBAAmB,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SACvD,EACD,KAAK,EAAE;YACN,UAAU,EAAE,qBAAqB,CAAC;YAClC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;YACxB,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;SAC3D,KACG,IAAI,CAAC;KACV,CAAC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,8EAA8E;IAC9E,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,oBAAoB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC7C;AA2CD;;GAEG;AACH,eAAO,MAAM,qBAAqB,GACjC,MAAM,WAAW,EACjB,SAAS,cAAc,KACrB,KAAK,CAAC,SAAS,CA8XjB,CAAC"}
1
+ {"version":3,"file":"db_routes.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/http/db_routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAiBpF;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,sDAAsD;AACtD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,CAKrD,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,CAKrD,CAAC;AAEH;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;;;;OAQG;IACH,KAAK,EAAE;QACN,IAAI,EAAE,CACL,GAAG,EAAE;YACJ,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,mBAAmB,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SACvD,EACD,KAAK,EAAE;YACN,UAAU,EAAE,qBAAqB,CAAC;YAClC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;YACxB,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;SAC3D,KACG,IAAI,CAAC;KACV,CAAC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,8EAA8E;IAC9E,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,oBAAoB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC7C;AA2CD;;GAEG;AACH,eAAO,MAAM,qBAAqB,GACjC,MAAM,WAAW,EACjB,SAAS,cAAc,KACrB,KAAK,CAAC,SAAS,CA8XjB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Reusable validator-schema primitives — `bounded_string`, `Username`,
3
- * `UsernameProvided`, `Email`. Lives at the top level (not inside `auth/` or `http/`) because
4
- * these shapes don't depend on or imply any domain — accounts hold a
5
- * username and email, but invites, password resets, future cell-sharing,
6
- * and other surfaces all reach for the same primitives without going
7
- * through auth.
3
+ * `UsernameProvided`, `Email`, the branded `Uuid` and `Datetime` with their
4
+ * factories, and the hash schemas `Blake3Hash` and `FactHashSchema`. Lives at
5
+ * the top level (not inside `auth/` or `http/`) because these shapes don't
6
+ * depend on or imply any domain — accounts hold a username and email, but
7
+ * invites, password resets, cells, and other surfaces all reach for the same
8
+ * primitives without going through auth.
8
9
  *
9
10
  * Split out from `auth/account_schema.ts` so the auth module shrinks to
10
11
  * entity types + client-safe JSON shapes (its real responsibility) and
@@ -12,9 +13,13 @@
12
13
  * auth domain along. Future cross-domain primitives (phone, url, slug)
13
14
  * land here too.
14
15
  *
16
+ * Client-safe: nothing here imports `@fuzdev/blake3-wasm`, so wire schemas
17
+ * that validate a hash don't pull the WASM binary into a bundle.
18
+ *
15
19
  * @module
16
20
  */
17
21
  import { z } from 'zod';
22
+ import { type FactHash } from '@fuzdev/fuz_util/hash_schemas.ts';
18
23
  /** Length bounds for `bounded_string`, in UTF-16 code units. */
19
24
  export interface BoundedStringOptions {
20
25
  /** Shortest string admitted. Omit for no lower bound. */
@@ -91,11 +96,9 @@ export type UsernameProvided = z.infer<typeof UsernameProvided>;
91
96
  */
92
97
  export declare const EMAIL_LENGTH_MAX = 254;
93
98
  /**
94
- * Email validation. Lives here rather than `@fuzdev/fuz_util` because every
95
- * current consumer pairs it with `Username` (signup, invites, audit log) —
96
- * keeping the two together avoids a cross-package import for the
97
- * identity-primitive bundle. Promote to fuz_util if a non-identity consumer
98
- * surfaces.
99
+ * Email validation. Every current consumer pairs it with `Username` (signup,
100
+ * invites, audit log), so the two live together with the other Zod
101
+ * primitives.
99
102
  *
100
103
  * Deliberately permissive — a structural shape check (`EMAIL_REGEX` plus the
101
104
  * `EMAIL_LENGTH_MAX` byte bound), not RFC 5322 conformance or deliverability
@@ -112,4 +115,39 @@ export declare const EMAIL_LENGTH_MAX = 254;
112
115
  */
113
116
  export declare const Email: z.ZodString;
114
117
  export type Email = z.infer<typeof Email>;
118
+ /** Returns a new random (v4) `Uuid`. */
119
+ export declare const create_uuid: () => Uuid;
120
+ /** Branded UUID schema. */
121
+ export declare const Uuid: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
122
+ export type Uuid = z.infer<typeof Uuid>;
123
+ /** `Uuid` that defaults to a fresh `create_uuid()` when the input is `undefined`. */
124
+ export declare const UuidWithDefault: z.ZodDefault<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
125
+ export type UuidWithDefault = z.infer<typeof UuidWithDefault>;
126
+ /** Branded ISO 8601 datetime schema. */
127
+ export declare const Datetime: z.core.$ZodBranded<z.ZodISODateTime, "Datetime", "out">;
128
+ export type Datetime = z.infer<typeof Datetime>;
129
+ /** Returns an ISO 8601 datetime string for the current time. */
130
+ export declare const get_datetime_now: () => Datetime;
131
+ /** `Datetime` that defaults to `get_datetime_now()` when the input is `undefined`. */
132
+ export declare const DatetimeNow: z.ZodDefault<z.core.$ZodBranded<z.ZodISODateTime, "Datetime", "out">>;
133
+ export type DatetimeNow = z.infer<typeof DatetimeNow>;
134
+ /** Zod schema for a BLAKE3 hex hash — 64 lowercase hex characters (256-bit output). */
135
+ export declare const Blake3Hash: z.ZodString;
136
+ export type Blake3Hash = z.infer<typeof Blake3Hash>;
137
+ /**
138
+ * Wire-form schema for a `blake3:`-prefixed fact hash, whose output is
139
+ * `FactHash` from `@fuzdev/fuz_util/hash_schemas.ts` — the type
140
+ * `fact_hash_bytes`, `fact_hash_stream`, and `FactStore` use — so a parsed
141
+ * value passes straight to them. Client-side (cell payloads) and server-side
142
+ * (DB-row hashes) consumers reuse this same schema.
143
+ *
144
+ * The output type is a cast over a plain regex check: Zod's `.brand('FactHash')`
145
+ * would output Zod's own brand, which doesn't fit fuz_util's fuz_schema-branded
146
+ * `FactHash`, and a `.transform` or `z.custom` that produced the right type
147
+ * makes `z.toJSONSchema` throw, as neither can be represented in JSON Schema.
148
+ * The cast costs nothing at runtime and keeps the `ZodString` API and the
149
+ * `pattern` in the generated JSON Schema, so `.meta()`, `.nullable()`, and
150
+ * `z.array()` compose as before.
151
+ */
152
+ export declare const FactHashSchema: z.ZodString & z.ZodType<FactHash, string>;
115
153
  //# sourceMappingURL=primitive_schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitive_schemas.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/primitive_schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACpC,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,cAAc,GAAI,2BAA2B,oBAAoB,KAAG,CAAC,CAAC,SA8ClF,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,6GAA6G;AAC7G,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,gNAAgN;AAChN,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,wDAEc,CAAC;AACpC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,wDAEqE,CAAC;AACnG,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAqBpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,KAAK,aAYhB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"primitive_schemas.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/primitive_schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAIlF,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACpC,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,cAAc,GAAI,2BAA2B,oBAAoB,KAAG,CAAC,CAAC,SA8ClF,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,6GAA6G;AAC7G,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,gNAAgN;AAChN,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,wDAEc,CAAC;AACpC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,wDAEqE,CAAC;AACnG,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAqBpC;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,KAAK,aAYhB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAE1C,wCAAwC;AACxC,eAAO,MAAM,WAAW,QAAO,IAAmC,CAAC;AAEnE,2BAA2B;AAC3B,eAAO,MAAM,IAAI,8CAAyB,CAAC;AAC3C,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,qFAAqF;AACrF,eAAO,MAAM,eAAe,4DAA4B,CAAC;AACzD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,wCAAwC;AACxC,eAAO,MAAM,QAAQ,yDAAqC,CAAC;AAC3D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,QAAO,QAAgD,CAAC;AAErF,sFAAsF;AACtF,eAAO,MAAM,WAAW,uEAAqC,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,uFAAuF;AACvF,eAAO,MAAM,UAAU,aAEuD,CAAC;AAC/E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAEA,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Reusable validator-schema primitives — `bounded_string`, `Username`,
3
- * `UsernameProvided`, `Email`. Lives at the top level (not inside `auth/` or `http/`) because
4
- * these shapes don't depend on or imply any domain — accounts hold a
5
- * username and email, but invites, password resets, future cell-sharing,
6
- * and other surfaces all reach for the same primitives without going
7
- * through auth.
3
+ * `UsernameProvided`, `Email`, the branded `Uuid` and `Datetime` with their
4
+ * factories, and the hash schemas `Blake3Hash` and `FactHashSchema`. Lives at
5
+ * the top level (not inside `auth/` or `http/`) because these shapes don't
6
+ * depend on or imply any domain — accounts hold a username and email, but
7
+ * invites, password resets, cells, and other surfaces all reach for the same
8
+ * primitives without going through auth.
8
9
  *
9
10
  * Split out from `auth/account_schema.ts` so the auth module shrinks to
10
11
  * entity types + client-safe JSON shapes (its real responsibility) and
@@ -12,9 +13,13 @@
12
13
  * auth domain along. Future cross-domain primitives (phone, url, slug)
13
14
  * land here too.
14
15
  *
16
+ * Client-safe: nothing here imports `@fuzdev/blake3-wasm`, so wire schemas
17
+ * that validate a hash don't pull the WASM binary into a bundle.
18
+ *
15
19
  * @module
16
20
  */
17
21
  import { z } from 'zod';
22
+ import { FACT_HASH_EXACT } from '@fuzdev/fuz_util/hash_schemas.ts';
18
23
  /**
19
24
  * A string schema whose length is bounded in UTF-16 code units — what
20
25
  * `String.length` measures, and what the Rust spine counts
@@ -147,11 +152,9 @@ const EMAIL_REGEX = /^[^\s\u0085@]+@[^\s\u0085@]+\.[^\s\u0085@]+$/;
147
152
  /** UTF-8 encoder for the `EMAIL_LENGTH_MAX` byte (octet) bound. */
148
153
  const utf8_encoder = new TextEncoder();
149
154
  /**
150
- * Email validation. Lives here rather than `@fuzdev/fuz_util` because every
151
- * current consumer pairs it with `Username` (signup, invites, audit log) —
152
- * keeping the two together avoids a cross-package import for the
153
- * identity-primitive bundle. Promote to fuz_util if a non-identity consumer
154
- * surfaces.
155
+ * Email validation. Every current consumer pairs it with `Username` (signup,
156
+ * invites, audit log), so the two live together with the other Zod
157
+ * primitives.
155
158
  *
156
159
  * Deliberately permissive — a structural shape check (`EMAIL_REGEX` plus the
157
160
  * `EMAIL_LENGTH_MAX` byte bound), not RFC 5322 conformance or deliverability
@@ -176,3 +179,37 @@ export const Email = z
176
179
  .refine((s) => s.length <= EMAIL_LENGTH_MAX && utf8_encoder.encode(s).length <= EMAIL_LENGTH_MAX, {
177
180
  message: `Email must be at most ${EMAIL_LENGTH_MAX} bytes`
178
181
  });
182
+ /** Returns a new random (v4) `Uuid`. */
183
+ export const create_uuid = () => crypto.randomUUID();
184
+ /** Branded UUID schema. */
185
+ export const Uuid = z.uuid().brand('Uuid');
186
+ /** `Uuid` that defaults to a fresh `create_uuid()` when the input is `undefined`. */
187
+ export const UuidWithDefault = Uuid.default(create_uuid);
188
+ /** Branded ISO 8601 datetime schema. */
189
+ export const Datetime = z.iso.datetime().brand('Datetime');
190
+ /** Returns an ISO 8601 datetime string for the current time. */
191
+ export const get_datetime_now = () => new Date().toISOString();
192
+ /** `Datetime` that defaults to `get_datetime_now()` when the input is `undefined`. */
193
+ export const DatetimeNow = Datetime.default(get_datetime_now);
194
+ /** Zod schema for a BLAKE3 hex hash — 64 lowercase hex characters (256-bit output). */
195
+ export const Blake3Hash = z
196
+ .string()
197
+ .regex(/^[0-9a-f]{64}$/, 'Expected a 64-character lowercase hex blake3 hash');
198
+ /**
199
+ * Wire-form schema for a `blake3:`-prefixed fact hash, whose output is
200
+ * `FactHash` from `@fuzdev/fuz_util/hash_schemas.ts` — the type
201
+ * `fact_hash_bytes`, `fact_hash_stream`, and `FactStore` use — so a parsed
202
+ * value passes straight to them. Client-side (cell payloads) and server-side
203
+ * (DB-row hashes) consumers reuse this same schema.
204
+ *
205
+ * The output type is a cast over a plain regex check: Zod's `.brand('FactHash')`
206
+ * would output Zod's own brand, which doesn't fit fuz_util's fuz_schema-branded
207
+ * `FactHash`, and a `.transform` or `z.custom` that produced the right type
208
+ * makes `z.toJSONSchema` throw, as neither can be represented in JSON Schema.
209
+ * The cast costs nothing at runtime and keeps the `ZodString` API and the
210
+ * `pattern` in the generated JSON Schema, so `.meta()`, `.nullable()`, and
211
+ * `z.array()` compose as before.
212
+ */
213
+ export const FactHashSchema = z
214
+ .string()
215
+ .regex(FACT_HASH_EXACT);
@@ -93,8 +93,7 @@
93
93
  import { createReadStream } from 'node:fs';
94
94
  import { Readable } from 'node:stream';
95
95
  import { join } from 'node:path';
96
- import { FactHashSchema } from '@fuzdev/fuz_util/hash_schemas.ts';
97
- import { Uuid } from '@fuzdev/fuz_util/id.ts';
96
+ import { FactHashSchema, Uuid } from '../primitive_schemas.js';
98
97
  import { z } from 'zod';
99
98
  import { build_request_context, get_request_context, has_scoped_role } from '../auth/request_context.js';
100
99
  import { ROLE_ADMIN } from '../auth/role_schema.js';
@@ -14,7 +14,7 @@ import './assert_dev_env.js';
14
14
  */
15
15
  import { test, assert, describe } from 'vitest';
16
16
  import { z } from 'zod';
17
- import { zod_unwrap_to_object, zod_extract_fields } from '@fuzdev/fuz_util/zod.ts';
17
+ import { zod_unwrap_to_object, zod_extract_fields } from '../zod.js';
18
18
  import { is_null_schema } from '../http/schema_helpers.js';
19
19
  import { filter_routes_with_input, filter_routes_with_params, filter_routes_with_query } from '../http/surface_query.js';
20
20
  import { ValidationError, ERROR_INVALID_REQUEST_BODY, ERROR_INVALID_JSON_BODY, ERROR_INVALID_ROUTE_PARAMS, ERROR_INVALID_QUERY_PARAMS } from '../http/error_schemas.js';