@requence/service 0.8.2-edge.1154 → 0.8.2-edge.1156

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 (46) hide show
  1. package/README.md +258 -0
  2. package/build/{chunk-974rc2jy.js → chunk-gpyt51xn.js} +164 -3
  3. package/build/{chunk-974rc2jy.js.map → chunk-gpyt51xn.js.map} +7 -4
  4. package/build/cli.js +17 -30
  5. package/build/cli.js.map +3 -3
  6. package/build/index.js +537 -93
  7. package/build/index.js.map +17 -9
  8. package/build/types/helpers/src/index.d.ts +4 -0
  9. package/build/types/helpers/src/index.d.ts.map +1 -1
  10. package/build/types/helpers/src/protocol/NodeTree.d.ts +20 -0
  11. package/build/types/helpers/src/protocol/NodeTree.d.ts.map +1 -1
  12. package/build/types/helpers/src/protocol/command.d.ts +74 -13
  13. package/build/types/helpers/src/protocol/command.d.ts.map +1 -1
  14. package/build/types/helpers/src/protocol/update.d.ts +128 -10
  15. package/build/types/helpers/src/protocol/update.d.ts.map +1 -1
  16. package/build/types/helpers/src/utils/matchSchema.d.ts +14 -0
  17. package/build/types/helpers/src/utils/matchSchema.d.ts.map +1 -1
  18. package/build/types/helpers/src/utils/serviceRender.d.ts +73 -0
  19. package/build/types/helpers/src/utils/serviceRender.d.ts.map +1 -0
  20. package/build/types/helpers/src/utils/surfaceComponent.d.ts +116 -0
  21. package/build/types/helpers/src/utils/surfaceComponent.d.ts.map +1 -0
  22. package/build/types/helpers/src/utils/surfaceHandler.d.ts +171 -0
  23. package/build/types/helpers/src/utils/surfaceHandler.d.ts.map +1 -0
  24. package/build/types/helpers/src/utils/uiRebuild.d.ts +48 -0
  25. package/build/types/helpers/src/utils/uiRebuild.d.ts.map +1 -0
  26. package/build/types/service/src/boundary.d.ts +14 -1
  27. package/build/types/service/src/boundary.d.ts.map +1 -1
  28. package/build/types/service/src/createAmqpConnection.d.ts +55 -0
  29. package/build/types/service/src/createAmqpConnection.d.ts.map +1 -1
  30. package/build/types/service/src/errors.d.ts +11 -0
  31. package/build/types/service/src/errors.d.ts.map +1 -1
  32. package/build/types/service/src/helpers.d.ts +68 -0
  33. package/build/types/service/src/helpers.d.ts.map +1 -1
  34. package/build/types/service/src/index.d.ts +2 -0
  35. package/build/types/service/src/index.d.ts.map +1 -1
  36. package/build/types/service/src/surfaceHandler.d.ts +36 -0
  37. package/build/types/service/src/surfaceHandler.d.ts.map +1 -0
  38. package/build/types/service/src/surfaceUi.d.ts +141 -0
  39. package/build/types/service/src/surfaceUi.d.ts.map +1 -0
  40. package/build/types/service/src/transformer.d.ts +14 -0
  41. package/build/types/service/src/transformer.d.ts.map +1 -1
  42. package/build/types/service/src/ui.d.ts +247 -0
  43. package/build/types/service/src/ui.d.ts.map +1 -0
  44. package/build/types/service/src/uiWatch.d.ts +68 -0
  45. package/build/types/service/src/uiWatch.d.ts.map +1 -0
  46. package/package.json +10 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAE3E,OAA6B,EAC3B,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EAEpB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EACL,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAE1B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,cAAc,GACf,MAAM,2BAA2B,CAAA;AAGlC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACtE,MAAM,MAAM,UAAU,CACpB,CAAC,SAAS,MAAM,eAAe,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IACrD,aAAa,CAAC,CAAC,CAAC,CAAA;AAEpB,UAAU,cAAc,CAAC,CAAC,SAAS,MAAM;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,CAAC,CAAA;IACV;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,iBAAiB,CAAC,EAAE,4BAA4B,CAAC,mBAAmB,CAAC,CAAA;IACrE,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAA;IAGvB,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;CAClD;AAwCD,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,eAAe,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EACvD,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;AAC/D,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,eAAe,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EACvD,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAE3E,OAA6B,EAC3B,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EAEpB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EACL,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAA;AAC1B,cAAc,aAAa,CAAA;AAK3B,YAAY,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,EACZ,cAAc,EACd,SAAS,GACV,MAAM,gBAAgB,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAE1B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,cAAc,GACf,MAAM,2BAA2B,CAAA;AAGlC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACtE,MAAM,MAAM,UAAU,CACpB,CAAC,SAAS,MAAM,eAAe,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IACrD,aAAa,CAAC,CAAC,CAAC,CAAA;AAEpB,UAAU,cAAc,CAAC,CAAC,SAAS,MAAM;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,CAAC,CAAA;IACV;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,iBAAiB,CAAC,EAAE,4BAA4B,CAAC,mBAAmB,CAAC,CAAA;IACrE,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAA;IAGvB,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;CAClD;AA4CD,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,eAAe,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EACvD,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;AAC/D,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,eAAe,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EACvD,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,36 @@
1
+ import type { SurfaceHandlerObject } from '../../helpers/src/index.js';
2
+ import type { ValueHandler } from '@requence/transformer';
3
+ /** What a render's egress needs to turn one function prop into a reference. */
4
+ export interface SurfaceHandlerEgressContext {
5
+ /**
6
+ * Register a function found in a render payload and return its reference.
7
+ *
8
+ * Takes the value's **path in the payload**, which is the whole of what
9
+ * decides the reference's lifetime: a function under `defaults` was written at
10
+ * module scope and is durable, one under `props` was written at the render
11
+ * call and belongs to the publishing connection (#103). Nothing else about
12
+ * the function can tell the two apart, and the walk is the only place the
13
+ * position is known.
14
+ *
15
+ * Absent ⇒ this boundary is not a render boundary and a function on it is the
16
+ * ordinary callback case; see `transformer.ts`.
17
+ */
18
+ onSurfaceHandler(handler: (...args: unknown[]) => void, path: ReadonlyArray<string | number>): SurfaceHandlerObject;
19
+ }
20
+ /**
21
+ * The `RequenceHandler` tag's egress half, composed onto the **render**
22
+ * transformer only (`transformer.ts`).
23
+ *
24
+ * It claims functions exactly as the callback handler does, which is why the two
25
+ * live on different transformer instances rather than one: a function in a render
26
+ * payload is a surface handler, a function anywhere else in a service's output is
27
+ * a peer callback, and `canHandle` cannot see the difference.
28
+ *
29
+ * There is no ingress. A handler reference travels service → operator →
30
+ * ui/backend → browser and is never transformed back into a function by anyone:
31
+ * the browser holds a props path, and the invocation comes back as its own
32
+ * message. A reference reaching an inbound walk is therefore a routing bug, and
33
+ * says so.
34
+ */
35
+ export declare function createSurfaceHandlerValueHandler(): ValueHandler<(...args: unknown[]) => void, SurfaceHandlerObject, SurfaceHandlerEgressContext>;
36
+ //# sourceMappingURL=surfaceHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surfaceHandler.d.ts","sourceRoot":"","sources":["../../../../src/surfaceHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,+EAA+E;AAC/E,MAAM,WAAW,2BAA2B;IAC1C;;;;;;;;;;;;OAYG;IACH,gBAAgB,CACd,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EACrC,IAAI,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,GACnC,oBAAoB,CAAA;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gCAAgC,IAAI,YAAY,CAC9D,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EAC5B,oBAAoB,EACpB,2BAA2B,CAC5B,CAmBA"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Type declarations for `@requence/surface-ui` — the **primitives facade** of the
3
+ * surface host's shared runtime (`knowledge/service-ui-surfaces.md` D14), plus the
4
+ * React mount helper that ships beside them (#113).
5
+ *
6
+ * Declarations only: nothing here exists at run time in a service process. A
7
+ * component leaves `@requence/surface-ui` external in its own bundle, and the
8
+ * surface host's import map binds the specifier to its runtime build inside the
9
+ * frame. The implementation these mirror lives in
10
+ * `ui/frontend/surface-runtime/ui.tsx`.
11
+ *
12
+ * **This import is the opt-in, and it is where the price is paid** (D12/D13).
13
+ * There is no flag to set and nothing to declare at `createUI`: the host installs
14
+ * the import map for every surface, so marking `react`, `react-dom/client`,
15
+ * `react/jsx-runtime` and this specifier **external** is the whole of it. What it
16
+ * buys is a much smaller bundle and the host app's own look; what it costs has no
17
+ * escape hatch — there is exactly **one** runtime version, *current*. Nothing to
18
+ * pin, no old builds retained, so a host upgrade (a React major, a refactored
19
+ * primitive) can break a published component, which then shows the standard error
20
+ * state on its node. A bundle that ships its own framework imports none of these
21
+ * and is immune; `context.debug` stays the diagnostic underneath either way.
22
+ *
23
+ * They are shipped by the SDK so a component author gets a typed, JSX-checked
24
+ * facade from the one package they already depend on. The specifier itself is
25
+ * declared where it is used, because only the component's own build knows it is
26
+ * external:
27
+ *
28
+ * ```ts
29
+ * // surface-ui.d.ts, next to the component
30
+ * declare module '@requence/surface-ui' {
31
+ * export * from '@requence/service/surface-ui'
32
+ * }
33
+ * ```
34
+ *
35
+ * Like the facade itself, these are explicitly **best-effort** (D13/D14): there
36
+ * is one runtime version, *current*, so they describe what the host renders
37
+ * today and carry no compatibility guarantee. Hand-mirrored, therefore able to
38
+ * drift from the facade — additions there stay non-breaking, and a component
39
+ * that breaks against a host upgrade shows the standard error state on its node.
40
+ */
41
+ import type { Mount, SurfaceState } from '../../helpers/src/index.js';
42
+ import type { CSSProperties, ComponentProps, ReactElement, ReactNode, SelectHTMLAttributes } from 'react';
43
+ /**
44
+ * Turns a React component into the `mount` the surface frame calls, absorbing the
45
+ * four steps every component repeated — create the root, hold the state,
46
+ * subscribe to `onUpdate`, unmount on teardown:
47
+ *
48
+ * ```tsx
49
+ * import { Button, createSurface } from '@requence/surface-ui'
50
+ *
51
+ * import type { PropsOf } from '@requence/service'
52
+ * import type { buttonUI } from './button.ts'
53
+ *
54
+ * export default createSurface<PropsOf<typeof buttonUI>>(({ props, canInvoke }) => (
55
+ * <Button disabled={!canInvoke} onClick={() => props.onClick()}>
56
+ * {props.label}
57
+ * </Button>
58
+ * ))
59
+ * ```
60
+ *
61
+ * The component receives the surface state as its own props, so `props`,
62
+ * `canInvoke` and `theme` are destructured directly. Anything nested reads the
63
+ * same state with {@link useSurface} rather than having it drilled down.
64
+ *
65
+ * It is a **facade** export, not an SDK one: the implementation is the host's, and
66
+ * a bundle that ships its own React writes the `mount` itself. `SurfaceState` and
67
+ * `Mount` come from `@requence/service`, which is where they are documented.
68
+ */
69
+ export declare function createSurface<Props>(Component: (state: SurfaceState<Props>) => ReactNode): Mount<Props>;
70
+ /**
71
+ * Reads the surface state anywhere inside a {@link createSurface} tree — the same
72
+ * object the top-level component receives as props, re-read on every update.
73
+ *
74
+ * ```tsx
75
+ * function SubmitRow() {
76
+ * const { props, canInvoke } = useSurface<PropsOf<typeof askUI>>()
77
+ *
78
+ * return <Button disabled={!canInvoke} onClick={() => props.onSubmit()}>Send</Button>
79
+ * }
80
+ * ```
81
+ *
82
+ * Throws outside such a tree. `Props` is your assertion, exactly as it is at
83
+ * `createSurface`: nothing on the wire declares a shape for a service's props.
84
+ */
85
+ export declare function useSurface<Props>(): SurfaceState<Props>;
86
+ /** The facade's spacing scale, in 4px steps. (`Space`, in the facade itself.) */
87
+ export type SurfaceSpace = 0 | 1 | 2 | 3 | 4;
88
+ export interface StackProps {
89
+ children?: ReactNode;
90
+ /** `column` (the default) or `row`. */
91
+ direction?: 'column' | 'row';
92
+ /** Gap between children, in 4px steps. */
93
+ space?: SurfaceSpace;
94
+ /** Padding, in 4px steps. */
95
+ padding?: SurfaceSpace;
96
+ align?: CSSProperties['alignItems'];
97
+ justify?: CSSProperties['justifyContent'];
98
+ wrap?: boolean;
99
+ grow?: boolean;
100
+ className?: string;
101
+ style?: CSSProperties;
102
+ }
103
+ /** The layout primitive: a flex column or row with a spacing scale. */
104
+ export declare function Stack(props: StackProps): ReactElement;
105
+ export interface TextProps {
106
+ children?: ReactNode;
107
+ variant?: 'body' | 'title' | 'muted' | 'code';
108
+ className?: string;
109
+ style?: CSSProperties;
110
+ }
111
+ /** The text primitive. `code` renders monospace and preserves whitespace. */
112
+ export declare function Text(props: TextProps): ReactElement;
113
+ export interface ButtonProps extends Omit<ComponentProps<'button'>, 'className'> {
114
+ severity?: 'danger';
115
+ small?: boolean;
116
+ className?: string;
117
+ }
118
+ export declare function Button(props: ButtonProps): ReactElement;
119
+ export interface TextFieldProps extends Omit<ComponentProps<'input'>, 'className'> {
120
+ label?: ReactNode;
121
+ className?: string;
122
+ }
123
+ export declare function TextField(props: TextFieldProps): ReactElement;
124
+ export interface SelectOption {
125
+ value: string;
126
+ label?: string;
127
+ disabled?: boolean;
128
+ }
129
+ export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'className' | 'children'> {
130
+ label?: ReactNode;
131
+ /** The choices. A plain array, so no child component vocabulary is needed. */
132
+ options: SelectOption[];
133
+ className?: string;
134
+ }
135
+ export declare function Select(props: SelectProps): ReactElement;
136
+ export interface CheckboxProps extends Omit<ComponentProps<'input'>, 'className' | 'type'> {
137
+ label?: ReactNode;
138
+ className?: string;
139
+ }
140
+ export declare function Checkbox(props: CheckboxProps): ReactElement;
141
+ //# sourceMappingURL=surfaceUi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surfaceUi.d.ts","sourceRoot":"","sources":["../../../../src/surfaceUi.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,20 @@
5
5
  * (`boundary.ts`) is the only place that builds those ctx objects.
6
6
  */
7
7
  export declare const transformer: import("@requence/transformer").Transformer<import("@requence/files").FileEgressContext & import("@requence/files").StreamEgressContext & import("@requence/callbacks").CallbackEgressContext & object & import("@requence/files").ClaimCheckEgressContext, import("@requence/callbacks").CallbackIngressContext & object>;
8
+ /**
9
+ * The **render** payload's egress chain: the same byte references, with the
10
+ * callback handler swapped for the surface-handler one (#103).
11
+ *
12
+ * A second instance rather than a fifth handler on the first, because both
13
+ * claim every function and `canHandle` gets nothing to tell them apart. Which
14
+ * of the two is right is a property of the *payload*, not of the value: a
15
+ * function in a render is a handler prop the browser will press, a function
16
+ * anywhere else in a service's output is a callback a peer service will call.
17
+ * Choosing per boundary is the only place that distinction actually exists.
18
+ *
19
+ * Outbound-only in practice — nothing ever inbound-transforms a render.
20
+ */
21
+ export declare const renderTransformer: import("@requence/transformer").Transformer<import("@requence/files").FileEgressContext & import("@requence/files").StreamEgressContext & import("./surfaceHandler.ts").SurfaceHandlerEgressContext & object & import("@requence/files").ClaimCheckEgressContext, object>;
8
22
  /**
9
23
  * Inbound chain for passthrough consumers (the logic runtime): claim-checks
10
24
  * still resolve — a state seed may arrive as a ClaimCheck reference — but
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../../src/transformer.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,eAAO,MAAM,WAAW,4TAIiB,CAAA;AAqBzC;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,iHAID,CAAA"}
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../../src/transformer.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,eAAO,MAAM,WAAW,4TAEiB,CAAA;AAEzC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,2QAEW,CAAA;AAqBzC;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,iHAID,CAAA"}
@@ -0,0 +1,247 @@
1
+ import type { WrappedRequenceCallback } from '../../helpers/src/index.js';
2
+ /**
3
+ * A registered UI component: the built module's source plus its content hash.
4
+ * Opaque to the author at the value level — the only thing to do with it is pass
5
+ * it to `context.render(ui, props)`.
6
+ *
7
+ * `Props` is a phantom type parameter (never present at runtime) carrying the
8
+ * shape the service sends to this component. It is what makes `render(ui, props)`
9
+ * type-check against the service's own TypeScript, and what the component author
10
+ * reads back with {@link PropsOf} to type `mount`. Declare it once, at
11
+ * `createUI<Props>(url)`.
12
+ */
13
+ export interface RequenceUI<Props = unknown> {
14
+ /**
15
+ * This component's **stable identity** — what a durable handler reference
16
+ * names (#103), and the one thing about a UI that a rebuild must not change.
17
+ *
18
+ * The content hash cannot serve: a rebuild changes it while the module-scope
19
+ * function in the defaults stays the same function, so a durable reference
20
+ * keyed on the hash would stop resolving the moment the component was rebuilt
21
+ * — and would never resolve at all in a process that started after the render.
22
+ * Defaults to the built module's **file name**, which survives both a rebuild
23
+ * and a restart; {@link CreateUIOptions.id} overrides it.
24
+ *
25
+ * Unique per process, enforced at registration: two components sharing an id
26
+ * would make a durable invocation ambiguous, and the failure would be a click
27
+ * reaching the wrong handler rather than anything visible.
28
+ */
29
+ readonly id: string;
30
+ /**
31
+ * The bundle's content hash. `readonly` to the author but not immutable: in
32
+ * service dev mode a rebuild of the watched file rewrites this and `source`
33
+ * in place (D10), which is what makes the next ordinary render carry the new
34
+ * bundle. Read it at use, never cache it.
35
+ */
36
+ readonly hash: string;
37
+ readonly source: string;
38
+ /**
39
+ * The props this component always has, as declared at `createUI` — restated on
40
+ * every render of it, so a service states once what does not change per
41
+ * message and a render carries only what differs.
42
+ *
43
+ * Sent as their own field of the render payload rather than merged into the
44
+ * render's props, because the receiver ranks them **lowest** (#102): a default
45
+ * is what a surface shows until some render says otherwise, and it never
46
+ * overrides what one already did. Merging them here would rank them highest
47
+ * instead, which is the one thing a default must not be.
48
+ *
49
+ * Absent rather than empty when none were declared, so the payload of a
50
+ * component without defaults is exactly what it always was.
51
+ *
52
+ * Deliberately **not** part of the hash: they are what the service sends, not
53
+ * what the browser loads, so two registrations of one built file still dedupe
54
+ * on the same bundle.
55
+ */
56
+ readonly defaults?: Partial<Props>;
57
+ /**
58
+ * Phantom carrier for the props type — optional and never assigned, so it
59
+ * adds no runtime surface. Only `render`/{@link PropsOf} read it at the type
60
+ * level.
61
+ */
62
+ readonly __props?: Props;
63
+ }
64
+ /**
65
+ * What every invokable prop carries in the component, beside being callable.
66
+ *
67
+ * `reachable` is the answer to "would pressing this do anything", **per prop**
68
+ * (#106) — because one surface can carry handlers of both lifetimes at once and
69
+ * a surface-wide flag necessarily lies about one of them:
70
+ *
71
+ * ```
72
+ * reachable(durable) = the task is still running
73
+ * reachable(connection) = …and this surface's own connection is alive, with the
74
+ * reference belonging to its current render
75
+ * ```
76
+ *
77
+ * Read it *with* `ctx.canInvoke`, never instead of it: that one is permission,
78
+ * this one is whether there is anything at the other end. A control should be
79
+ * offered when both hold.
80
+ *
81
+ * Calling an unreachable handler **throws** (D32), naming the prop and the reason,
82
+ * and sends nothing. Catch it on `error.name === 'RequenceUnreachableHandlerError'`
83
+ * — the frame and your component share a realm but no module, so the name is the
84
+ * whole contract:
85
+ *
86
+ * ```js
87
+ * try {
88
+ * props.onSubmit(answer)
89
+ * } catch (error) {
90
+ * if (error.name === 'RequenceUnreachableHandlerError') showNotice(error.message)
91
+ * else throw error
92
+ * }
93
+ * ```
94
+ *
95
+ * It used to warn instead, which could not be handled: a component had no signal
96
+ * that the click went nowhere, and `reachable` — readable before the call — races
97
+ * a flip that lands between the render and the press. Reading `reachable` to
98
+ * withhold the control is still right; the throw is what covers the race and the
99
+ * component that does not check.
100
+ *
101
+ * **The viewer is told either way.** The frame also reports the refusal to the
102
+ * canvas, which shows it beneath the surface in the same strip a permission or
103
+ * byte-cap refusal uses. So catching is about saying something *better* in your
104
+ * own words and your own layout — not about whether the failure is visible.
105
+ */
106
+ export type HandlerReachability = {
107
+ readonly reachable: boolean;
108
+ };
109
+ /**
110
+ * An invokable prop as the component holds it: the function the service put in
111
+ * the props, plus {@link HandlerReachability}.
112
+ */
113
+ export type RequenceHandler<Arg> = ((arg: Arg) => void) & HandlerReachability;
114
+ /**
115
+ * How a single prop value looks to the component.
116
+ *
117
+ * Every function among the props is a **handler** the browser can invoke, so it
118
+ * arrives callable and carrying its own `reachable` flag. A callback sent by the
119
+ * service arrives rehydrated the same way (the browser is one more consumer of
120
+ * the same inbound transform a peer service uses), so the service-only
121
+ * `WrappedRequenceCallback` — its extra `.response()` — is reduced to what the
122
+ * component actually holds. Everything else passes through untouched, so branded
123
+ * values (`RequenceFile`, `RequenceStream`) and plain data keep their type
124
+ * exactly.
125
+ *
126
+ * The parameter list is preserved rather than collapsed to `RequenceHandler`'s
127
+ * single `Arg`, so a prop declared `onClose(): void` stays callable with no
128
+ * argument.
129
+ */
130
+ type ComponentPropValue<V> = V extends WrappedRequenceCallback<infer Arg> ? RequenceHandler<Arg> : V extends (...args: infer Args) => unknown ? ((...args: Args) => void) & HandlerReachability : V;
131
+ /**
132
+ * The props as the component receives them: the service-declared props with
133
+ * every top-level callback presented in its invokable form.
134
+ */
135
+ export type ComponentProps<Props> = Props extends object ? {
136
+ [K in keyof Props]: ComponentPropValue<Props[K]>;
137
+ } : Props;
138
+ /**
139
+ * Extracts the component-facing props type from a `ui` handle, so a component
140
+ * author can type `mount` straight off the value they imported:
141
+ * `SurfaceContext<PropsOf<typeof ui>>`.
142
+ */
143
+ export type PropsOf<U> = U extends RequenceUI<infer Props> ? ComponentProps<Props> : never;
144
+ /**
145
+ * The props one render may supply: **any subset** of the component's props.
146
+ *
147
+ * A render is a patch, not a whole value (#102) — what the surface shows is the
148
+ * fold of the UI's defaults, everything previously rendered onto that surface,
149
+ * and this render — so omitting a prop is the normal case and cannot be an
150
+ * error. A handler that redraws one field is the reason the fold exists, and the
151
+ * clearest instance of it is a handler that *cannot* restate the rest: a durable
152
+ * one, running in a process that never saw the original render.
153
+ *
154
+ * The accepted cost, and it is a real one: TypeScript cannot see the accumulated
155
+ * state, so it can no longer tell a legitimate patch from a first render that
156
+ * forgot half its props. `PropsOf` — the component's side — stays whole and
157
+ * required, because the component genuinely does receive the folded object; it
158
+ * is the service's responsibility that the fold covers it.
159
+ */
160
+ export type RenderProps<Props> = Partial<Props>;
161
+ /**
162
+ * What a component is handed, re-exported from the one place all three readers
163
+ * share (#113): the SDK, the frame protocol and the shared runtime's
164
+ * `createSurface`. Declared in `@requence/helpers/utils/surfaceComponent.ts`,
165
+ * which is where the documentation lives — an author reads them from here.
166
+ */
167
+ export type { Mount, SurfaceContext, SurfaceState, SurfaceTheme, } from '../../helpers/src/index.js';
168
+ export interface CreateUIOptions {
169
+ /**
170
+ * Where the built module is — `new URL('./component.js', import.meta.url)`.
171
+ *
172
+ * A URL rather than a path because it is the one form that resolves against
173
+ * the *module that wrote it*: a relative path resolves against the process's
174
+ * working directory, so a service started from anywhere but its own package
175
+ * silently failed to find its own component.
176
+ */
177
+ url: URL;
178
+ /**
179
+ * Override this component's stable id ({@link RequenceUI.id}), which defaults
180
+ * to the built module's file name.
181
+ *
182
+ * Three reasons to set it, and the first two are about the default being a
183
+ * file name: two components in different directories that build to `index.js`
184
+ * collide, and renaming a built file silently retires every durable handler
185
+ * reference already sitting in a queue or stored on a surface. The third is
186
+ * registering **one** file twice — two handles with different defaults — which
187
+ * is a collision like any other.
188
+ *
189
+ * A collision throws at registration, at module scope, so it is a startup
190
+ * error rather than a click resolving against the wrong component's defaults.
191
+ */
192
+ id?: string;
193
+ }
194
+ /**
195
+ * Registers a UI component from an already-built ES module — one default export
196
+ * `mount(element, ctx)`. Requence never bundles: the author builds with their
197
+ * own toolchain, and this only reads the result and hashes it, which is what
198
+ * keeps the contract portable across SDKs.
199
+ *
200
+ * Called at module scope, next to `createService`, so an oversized bundle fails
201
+ * at registration rather than on the first render in production
202
+ * (knowledge/service-ui-surfaces.md D4).
203
+ *
204
+ * ```ts
205
+ * const askUI = createUI<{ question: string }>(
206
+ * new URL('./ask.mount.js', import.meta.url), // or { url, id: 'ask' }
207
+ * )
208
+ * ```
209
+ *
210
+ * Nothing here declares how the bundle was built. A component may leave `react`,
211
+ * `react-dom/client`, `react/jsx-runtime` and `@requence/surface-ui` **external**
212
+ * and let the surface host's shared runtime resolve them — the import map is
213
+ * installed for every surface, so importing the facade is the whole opt-in, and
214
+ * its price is stated where that import is declared
215
+ * (`@requence/service/surface-ui`). A bundle that ships its own framework has no
216
+ * bare specifier left for the map to bind and is unaffected either way.
217
+ *
218
+ * Declare the props the service will send as the `Props` type argument: it is
219
+ * erased at runtime but flows to `render(ui, props)` and back to the component
220
+ * through {@link PropsOf}.
221
+ *
222
+ * `defaults` is any subset of `Props`, restated on every render of this
223
+ * component, so a service declares once what does not change per message:
224
+ *
225
+ * ```ts
226
+ * const panelUI = createUI<{ title: string; dense: boolean }>(
227
+ * new URL('./panel.js', import.meta.url),
228
+ * { dense: true },
229
+ * )
230
+ *
231
+ * context.render(panelUI, { title: 'Processing' }) // dense comes along
232
+ * ```
233
+ *
234
+ * They are the **weakest** layer of the surface's fold (#102): a render that
235
+ * names a defaulted prop overrides it, and it stays overridden for every later
236
+ * render that stays silent about it. A default answers "what does this surface
237
+ * show until something says otherwise", not "what does it show unless this
238
+ * render says otherwise".
239
+ *
240
+ * A function among them is a **durable** handler (D24): written at module scope, it
241
+ * closes over nothing one message owns, so any instance of the version can run it —
242
+ * including one started after the process that rendered has exited. That is the
243
+ * opposite of a function written inline at `context.render`, which dies with the
244
+ * message that published it. Where you write it is the whole decision.
245
+ */
246
+ export declare function createUI<Props = unknown>(target: URL | CreateUIOptions, defaults?: Partial<Props>): RequenceUI<Props>;
247
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/ui.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAMhE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,OAAO;IACzC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAClC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,mBAAmB,CAAA;AAE7E;;;;;;;;;;;;;;;GAeG;AACH,KAAK,kBAAkB,CAAC,CAAC,IACvB,CAAC,SAAS,uBAAuB,CAAC,MAAM,GAAG,CAAC,GACxC,eAAe,CAAC,GAAG,CAAC,GACpB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,GACxC,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,mBAAmB,GAC/C,CAAC,CAAA;AAET;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI,KAAK,SAAS,MAAM,GACpD;KAAG,CAAC,IAAI,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAAE,GACpD,KAAK,CAAA;AAET;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IACnB,CAAC,SAAS,UAAU,CAAC,MAAM,KAAK,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;AAEnE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,WAAW,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;AAE/C;;;;;GAKG;AACH,YAAY,EACV,KAAK,EACL,cAAc,EACd,YAAY,EACZ,YAAY,GACb,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,eAAe;IAC9B;;;;;;;OAOG;IACH,GAAG,EAAE,GAAG,CAAA;IACR;;;;;;;;;;;;;OAaG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAgB,QAAQ,CAAC,KAAK,GAAG,OAAO,EACtC,MAAM,EAAE,GAAG,GAAG,eAAe,EAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GACxB,UAAU,CAAC,KAAK,CAAC,CA0CnB"}
@@ -0,0 +1,68 @@
1
+ import type { RequenceUI } from './ui.ts';
2
+ /**
3
+ * A component handle as the watcher holds it — the object `createUI` returned,
4
+ * with every field writable. Derived from {@link RequenceUI} rather than
5
+ * restated, so a field added there cannot go unwatched. The public type keeps
6
+ * them `readonly`: rewriting them is this module's job and nobody else's.
7
+ *
8
+ * "Writable" is wider than "rewritten": a rebuild only ever replaces `hash` and
9
+ * `source`, because they are the only fields that come out of the file. The rest
10
+ * (`id`, `defaults`) are mutable here purely because `createUI` builds
11
+ * the handle as this type — `id` in particular is the one field a rebuild must
12
+ * NOT touch (#103).
13
+ *
14
+ * (The import is type-only, so `ui.ts` importing this module back is not a
15
+ * runtime cycle.)
16
+ */
17
+ export type MutableRequenceUI = {
18
+ -readonly [K in keyof Omit<RequenceUI, '__props'>]: RequenceUI[K];
19
+ };
20
+ export interface UIWatchListener {
21
+ /**
22
+ * A watched component's built file changed content. The handle already
23
+ * carries the new bytes; announcing the swap is the listener's job.
24
+ */
25
+ onRebuild: (ui: MutableRequenceUI) => void;
26
+ /**
27
+ * Something the author needs to hear about the watch itself. Reported rather
28
+ * than logged because this module is process-global and `silent` is a
29
+ * per-connection option — only the subscriber knows whether to print. Fanned
30
+ * out to every subscriber; in the normal case that is the one dev connection
31
+ * that turned the loop on.
32
+ */
33
+ onWarning: (message: string) => void;
34
+ }
35
+ /**
36
+ * Records a component built by `createUI`, so the dev loop can find it later.
37
+ *
38
+ * Unconditional, in every mode: `createUI` runs at module scope and cannot know
39
+ * whether the service it belongs to will connect with a dev token. Registration
40
+ * costs one object in a set and starts nothing — a watcher exists only once
41
+ * {@link watchUIRebuilds} is called, which only a dev-mode connection does.
42
+ */
43
+ export declare function registerUI(ui: MutableRequenceUI, filePath: string): void;
44
+ /**
45
+ * The UI a durable handler invocation names (#103), or `undefined` when this
46
+ * process has none under that id.
47
+ *
48
+ * Process-global, like the registry itself: a durable handler belongs to the
49
+ * *service version*, not to a connection, so whichever connection consumed the
50
+ * invocation resolves it against the same set of components the process
51
+ * registered at module scope.
52
+ */
53
+ export declare function findUIById(id: string): MutableRequenceUI | undefined;
54
+ /**
55
+ * Turns the dev loop on (D10): watch every registered component's built file
56
+ * and call `onRebuild` whenever one of them changes content.
57
+ *
58
+ * The handle itself is rewritten before the listener runs, so two things follow
59
+ * from one rebuild: every later render carries the new bundle (the render path
60
+ * reads the handle at call time), and the listener announces the swap for every
61
+ * surface already drawn (#108). Neither is a re-render — a rebuild changes which
62
+ * bytes the frame imports and nothing else — which is why the swap reaches a
63
+ * surface whose message has long since settled.
64
+ *
65
+ * Returns an unsubscribe. The last one out stops the watchers.
66
+ */
67
+ export declare function watchUIRebuilds(listener: UIWatchListener): () => void;
68
+ //# sourceMappingURL=uiWatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uiWatch.d.ts","sourceRoot":"","sources":["../../../../src/uiWatch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,UAAU,CAAC,IAAI,MAAM,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;CAClE,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,EAAE,CAAC,EAAE,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAC1C;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC;AAgCD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,QAsBjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI,CAmBrE"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@requence/service",
3
3
  "type": "module",
4
- "version": "0.8.2-edge.1154",
4
+ "version": "0.8.2-edge.1156",
5
5
  "bin": {
6
6
  "requence-service": "build/cli.js"
7
7
  },
@@ -17,7 +17,6 @@
17
17
  "ajv": "^8.17.1",
18
18
  "amqp-connection-manager": "^4.1.14",
19
19
  "amqplib": "^0.10.8",
20
- "chalk": "^5.6.2",
21
20
  "eventsource-client": "^1.2.0",
22
21
  "mime-types": "^3.0.1",
23
22
  "msgpackr": "^1.11.5",
@@ -28,15 +27,22 @@
28
27
  "@requence/callbacks": "workspace:*",
29
28
  "@requence/files": "workspace:*",
30
29
  "@requence/helpers": "workspace:*",
30
+ "@requence/logger": "workspace:*",
31
31
  "@requence/transformer": "workspace:*",
32
32
  "@requence/utils": "workspace:*",
33
33
  "@types/amqplib": "^0.10.7",
34
34
  "@types/bun": "^1.2.23",
35
+ "@types/react": "^19.2.17",
35
36
  "@types/yargs": "^17.0.33",
36
37
  "tsc-alias": "^1.8.16"
37
38
  },
38
39
  "exports": {
39
- "default": "./build/index.js",
40
- "types": "./build/types/service/src/index.d.ts"
40
+ ".": {
41
+ "types": "./build/types/service/src/index.d.ts",
42
+ "default": "./build/index.js"
43
+ },
44
+ "./surface-ui": {
45
+ "types": "./build/types/service/src/surfaceUi.d.ts"
46
+ }
41
47
  }
42
48
  }