foldkit 0.134.0 → 0.136.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 (64) hide show
  1. package/dist/asyncData/asyncData.d.ts +4 -6
  2. package/dist/asyncData/asyncData.d.ts.map +1 -1
  3. package/dist/asyncData/asyncData.js +4 -6
  4. package/dist/command/brand.d.ts +9 -0
  5. package/dist/command/brand.d.ts.map +1 -0
  6. package/dist/command/brand.js +15 -0
  7. package/dist/command/index.d.ts +119 -24
  8. package/dist/command/index.d.ts.map +1 -1
  9. package/dist/command/index.js +66 -26
  10. package/dist/command/interruptible/interruptible.d.ts +9 -94
  11. package/dist/command/interruptible/interruptible.d.ts.map +1 -1
  12. package/dist/command/interruptible/interruptible.js +9 -75
  13. package/dist/command/interruptible/public.d.ts +1 -1
  14. package/dist/command/interruptible/public.d.ts.map +1 -1
  15. package/dist/command/interruptible/public.js +1 -1
  16. package/dist/command/public.d.ts +1 -1
  17. package/dist/command/public.d.ts.map +1 -1
  18. package/dist/customElement/index.d.ts +3 -0
  19. package/dist/customElement/index.d.ts.map +1 -1
  20. package/dist/customElement/index.js +3 -1
  21. package/dist/http/http.d.ts +4 -7
  22. package/dist/http/http.d.ts.map +1 -1
  23. package/dist/http/http.js +4 -7
  24. package/dist/managedResource/managedResource.d.ts +21 -10
  25. package/dist/managedResource/managedResource.d.ts.map +1 -1
  26. package/dist/managedResource/managedResource.js +6 -1
  27. package/dist/port/port.d.ts +8 -9
  28. package/dist/port/port.d.ts.map +1 -1
  29. package/dist/port/port.js +8 -9
  30. package/dist/test/apps/colorPicker.d.ts +28 -0
  31. package/dist/test/apps/colorPicker.d.ts.map +1 -0
  32. package/dist/test/apps/colorPicker.js +43 -0
  33. package/dist/test/apps/counter.d.ts +3 -1
  34. package/dist/test/apps/counter.d.ts.map +1 -1
  35. package/dist/test/apps/counter.js +20 -6
  36. package/dist/test/apps/crashOnRender.d.ts.map +1 -1
  37. package/dist/test/apps/crashOnRender.js +4 -1
  38. package/dist/test/apps/drafts.d.ts +1 -2
  39. package/dist/test/apps/drafts.d.ts.map +1 -1
  40. package/dist/test/apps/drafts.js +7 -2
  41. package/dist/test/apps/feedSocket.d.ts +74 -0
  42. package/dist/test/apps/feedSocket.d.ts.map +1 -0
  43. package/dist/test/apps/feedSocket.js +69 -0
  44. package/dist/test/apps/formChild.d.ts.map +1 -1
  45. package/dist/test/apps/formChild.js +8 -2
  46. package/dist/test/apps/login.d.ts.map +1 -1
  47. package/dist/test/apps/login.js +4 -1
  48. package/dist/test/apps/resumeUpload.d.ts.map +1 -1
  49. package/dist/test/apps/resumeUpload.js +12 -5
  50. package/dist/test/apps/scorePanel.d.ts +32 -0
  51. package/dist/test/apps/scorePanel.d.ts.map +1 -0
  52. package/dist/test/apps/scorePanel.js +19 -0
  53. package/dist/test/apps/uploads.d.ts +4 -4
  54. package/dist/test/apps/uploads.d.ts.map +1 -1
  55. package/dist/test/apps/uploads.js +10 -1
  56. package/dist/test/internal.d.ts +2 -2
  57. package/dist/test/internal.js +1 -1
  58. package/dist/test/scene.d.ts +79 -7
  59. package/dist/test/scene.d.ts.map +1 -1
  60. package/dist/test/scene.js +204 -24
  61. package/dist/test/story.d.ts +5 -6
  62. package/dist/test/story.d.ts.map +1 -1
  63. package/dist/test/story.js +1 -2
  64. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import { Array, Context, Effect, Fiber, Option, Predicate, Schema, } from 'effect';
1
+ import { Array, Context, Effect, Fiber, Option, Schema } from 'effect';
2
2
  import { ts } from '../../schema/index.js';
3
- import { CommandDefinitionTypeId } from '../index.js';
3
+ import { CommandDefinitionTypeId, brandAsDefinition } from '../brand.js';
4
4
  /** At least one in-flight Command held the interrupt key, and every holder
5
5
  * has been stopped. Their declared result Messages are guaranteed never to
6
6
  * dispatch. */
@@ -64,7 +64,7 @@ export const __CurrentRegistry = Context.Reference('foldkit/Command/Interruptibl
64
64
  // `register` but before `ensuring` attached, the fiber would die without
65
65
  // ever removing itself from the registry, and every later Interrupt would
66
66
  // report `Interrupted` against that dead entry forever.
67
- const registerKeyWhileRunning = (key, effect) => Effect.withFiber(fiber => Effect.gen(function* () {
67
+ export const __registerKeyWhileRunning = (key, effect) => Effect.withFiber(fiber => Effect.gen(function* () {
68
68
  const registry = yield* __CurrentRegistry;
69
69
  return yield* Effect.uninterruptibleMask(restore => Effect.suspend(() => {
70
70
  registry.register(key, fiber);
@@ -76,16 +76,9 @@ const makeInterruptEffect = (key, toMessage) => Effect.gen(function* () {
76
76
  const outcome = yield* registry.interrupt(key);
77
77
  return toMessage(outcome);
78
78
  });
79
- const brandAsDefinition = (definition, name) => {
80
- Object.defineProperty(definition, 'name', {
81
- value: name,
82
- configurable: true,
83
- });
84
- Object.defineProperty(definition, CommandDefinitionTypeId, {
85
- value: CommandDefinitionTypeId,
86
- });
87
- };
88
- const makeInterruptDefinitionNoArgs = (name, key) => {
79
+ /** @internal Builds the `Interrupt` constructor for an interruptible definition
80
+ * whose key is the Command name. Internal to the Command module. */
81
+ export const __makeInterruptDefinitionNoArgs = (name, key) => {
89
82
  const interruptName = `${name}.Interrupt`;
90
83
  const definition = (toMessage) => ({
91
84
  name: interruptName,
@@ -96,7 +89,9 @@ const makeInterruptDefinitionNoArgs = (name, key) => {
96
89
  brandAsDefinition(definition, interruptName);
97
90
  return definition;
98
91
  };
99
- const makeInterruptDefinitionWithArgs = (name, toFullKey) => {
92
+ /** @internal Builds the `Interrupt` constructor for an interruptible definition
93
+ * whose key is derived from its args. Internal to the Command module. */
94
+ export const __makeInterruptDefinitionWithArgs = (name, toFullKey) => {
100
95
  const interruptName = `${name}.Interrupt`;
101
96
  const definition = (keyArgs, toMessage) => {
102
97
  const key = toFullKey(keyArgs);
@@ -111,64 +106,3 @@ const makeInterruptDefinitionWithArgs = (name, toFullKey) => {
111
106
  brandAsDefinition(definition, interruptName);
112
107
  return definition;
113
108
  };
114
- export function define(name, ...rest) {
115
- const [maybeArgs, maybeToKey] = rest;
116
- const isArgsRecord = Predicate.isObject(maybeArgs) && !Schema.isSchema(maybeArgs);
117
- if (!isArgsRecord) {
118
- const key = name;
119
- return (effect) => {
120
- const definition = () => ({
121
- name,
122
- key,
123
- effect: registerKeyWhileRunning(key, effect),
124
- messageMappers: [],
125
- });
126
- brandAsDefinition(definition, name);
127
- Object.defineProperty(definition, 'Interrupt', {
128
- value: makeInterruptDefinitionNoArgs(name, key),
129
- });
130
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
131
- return definition;
132
- };
133
- }
134
- const isToKeyFunction = Predicate.isFunction(maybeToKey) && !Schema.isSchema(maybeToKey);
135
- if (!isToKeyFunction) {
136
- const key = name;
137
- return (effectBuilder) => {
138
- const definition = (args) => ({
139
- name,
140
- args,
141
- key,
142
- effect: registerKeyWhileRunning(key, effectBuilder(args)),
143
- messageMappers: [],
144
- });
145
- brandAsDefinition(definition, name);
146
- Object.defineProperty(definition, 'Interrupt', {
147
- value: makeInterruptDefinitionNoArgs(name, key),
148
- });
149
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
150
- return definition;
151
- };
152
- }
153
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
154
- const toKey = maybeToKey;
155
- const toFullKey = (keyArgs) => `${name}:${toKey(keyArgs)}`;
156
- return (effectBuilder) => {
157
- const definition = (args) => {
158
- const key = toFullKey(args);
159
- return {
160
- name,
161
- args,
162
- key,
163
- effect: registerKeyWhileRunning(key, effectBuilder(args)),
164
- messageMappers: [],
165
- };
166
- };
167
- brandAsDefinition(definition, name);
168
- Object.defineProperty(definition, 'Interrupt', {
169
- value: makeInterruptDefinitionWithArgs(name, toFullKey),
170
- });
171
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
172
- return definition;
173
- };
174
- }
@@ -1,3 +1,3 @@
1
1
  export type { DefinitionNoArgs, DefinitionWithArgs, DefinitionWithArgsNameKeyed, InterruptDefinitionNoArgs, InterruptDefinitionWithArgs, } from './index.js';
2
- export { define, Interrupted, NotFound, Outcome } from './index.js';
2
+ export { Interrupted, NotFound, Outcome } from './index.js';
3
3
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/command/interruptible/public.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/command/interruptible/public.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA"}
@@ -1 +1 @@
1
- export { define, Interrupted, NotFound, Outcome } from './index.js';
1
+ export { Interrupted, NotFound, Outcome } from './index.js';
@@ -1,4 +1,4 @@
1
- export type { Command, CommandDefinition, CommandDefinitionNoArgs, CommandDefinitionWithArgs, } from './index.js';
1
+ export type { Command, CommandDefinition, CommandDefinitionNoArgs, CommandDefinitionWithArgs, InterruptOption, } from './index.js';
2
2
  export { CommandDefinitionTypeId, define, mapEffect, mapMessage, mapMessages, } from './index.js';
3
3
  export * as Interruptible from './interruptible/public.js';
4
4
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/command/public.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/command/public.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAA"}
@@ -39,6 +39,9 @@ export interface CustomElementSpec<Tag extends string, Properties extends Record
39
39
  * the value `Spec.withMessage<Message>()` returns, expressed as a type
40
40
  * consumers can name without reaching for `ReturnType<typeof ...>`. */
41
41
  export type Builder<Spec, Message> = Spec extends CustomElementSpec<string, infer Properties, infer Events> ? ElementBuilder<Message, Properties, Events> : never;
42
+ /** @internal Shared with the Scene test helpers so their error messages name
43
+ * the same `On*` factory this module generates. */
44
+ export declare const kebabToPascal: (input: string) => string;
42
45
  /**
43
46
  * Define a typed binding for a custom element. The returned spec describes
44
47
  * the element's properties and events with Schema, and exposes a
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/customElement/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/customElement/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { Array, String, pipe } from 'effect';
2
2
  import { OnCustomEvent, Prop, customElement as customElementVNode, } from '../html/index.js';
3
- const kebabToPascal = (input) => pipe(input, String.split('-'), Array.map(String.capitalize), Array.join(''));
3
+ /** @internal Shared with the Scene test helpers so their error messages name
4
+ * the same `On*` factory this module generates. */
5
+ export const kebabToPascal = (input) => pipe(input, String.split('-'), Array.map(String.capitalize), Array.join(''));
4
6
  const IDENTIFIER_PATTERN = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
5
7
  const isValidPropertyName = (name) => IDENTIFIER_PATTERN.test(name);
6
8
  const isValidEventName = (name) => {
@@ -24,12 +24,9 @@ import { HttpClient } from 'effect/unstable/http';
24
24
  * ```typescript
25
25
  * import { Http } from 'foldkit'
26
26
  *
27
- * const FetchCount = Command.define(
28
- * 'FetchCount',
29
- * SucceededFetchCount,
30
- * FailedFetchCount,
31
- * )(
32
- * Effect.gen(function* () {
27
+ * const FetchCount = Command.define('FetchCount', {
28
+ * messages: [SucceededFetchCount, FailedFetchCount],
29
+ * execute: Effect.gen(function* () {
33
30
  * const client = yield* HttpClient.HttpClient
34
31
  * const response = yield* client.get('/api/count')
35
32
  * const { count } = yield* S.decodeUnknownEffect(CountResponse)(
@@ -42,7 +39,7 @@ import { HttpClient } from 'effect/unstable/http';
42
39
  * ),
43
40
  * Effect.provide(Http.layer),
44
41
  * ),
45
- * )
42
+ * })
46
43
  * ```
47
44
  */
48
45
  export declare const layer: Layer.Layer<HttpClient.HttpClient>;
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,EAAmB,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAGpD,CAAA"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,EAAmB,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAGpD,CAAA"}
package/dist/http/http.js CHANGED
@@ -24,12 +24,9 @@ import { FetchHttpClient, HttpClient } from 'effect/unstable/http';
24
24
  * ```typescript
25
25
  * import { Http } from 'foldkit'
26
26
  *
27
- * const FetchCount = Command.define(
28
- * 'FetchCount',
29
- * SucceededFetchCount,
30
- * FailedFetchCount,
31
- * )(
32
- * Effect.gen(function* () {
27
+ * const FetchCount = Command.define('FetchCount', {
28
+ * messages: [SucceededFetchCount, FailedFetchCount],
29
+ * execute: Effect.gen(function* () {
33
30
  * const client = yield* HttpClient.HttpClient
34
31
  * const response = yield* client.get('/api/count')
35
32
  * const { count } = yield* S.decodeUnknownEffect(CountResponse)(
@@ -42,7 +39,7 @@ import { FetchHttpClient, HttpClient } from 'effect/unstable/http';
42
39
  * ),
43
40
  * Effect.provide(Http.layer),
44
41
  * ),
45
- * )
42
+ * })
46
43
  * ```
47
44
  */
48
45
  export const layer = Layer.provide(FetchHttpClient.layer, Layer.succeed(HttpClient.TracerPropagationEnabled, false));
@@ -49,8 +49,8 @@ export type ManagedResourceConfig<Model, Message> = {
49
49
  export type ManagedResources<Model, Message, Services = never> = Record<string, ManagedResourceConfig<Model, Message>> & {
50
50
  readonly __managedResourceServices?: Services;
51
51
  };
52
- type EntryBrand = {
53
- readonly __managedResourceEntry: never;
52
+ type EntryBrand<Model, Message> = {
53
+ readonly __managedResourceEntry: (model: Model) => Message;
54
54
  };
55
55
  /**
56
56
  * The requirements value the runtime hands to `acquire`. When the requirements
@@ -71,17 +71,22 @@ type AcquireParams<Requirements> = Requirements extends Option.Option<infer Para
71
71
  * The `Service` parameter carries the resource tag's identity so `make`,
72
72
  * `lift`, and `aggregate` can union the services a record requires. Read the
73
73
  * union off a finished record with `ManagedResource.ServicesOf`.
74
+ *
75
+ * The `OnAcquired` parameter preserves the arity of the `onAcquired` handler:
76
+ * an entry whose handler ignores the acquired value keeps that fact in its
77
+ * type, so callers that replay the handler (the Scene test steps) only demand
78
+ * the value when the handler consumes it.
74
79
  */
75
- export type Entry<Model, Message, Requirements, Value, Service = unknown> = {
80
+ export type Entry<Model, Message, Requirements, Value, Service = unknown, OnAcquired extends (...args: any) => Message = (value: Value) => Message> = {
76
81
  readonly schema: Schema.Schema<Requirements>;
77
82
  readonly resource: ManagedResource<Value, Service>;
78
83
  readonly modelToMaybeRequirements: (model: Model) => Requirements;
79
84
  readonly acquire: (params: AcquireParams<Requirements>) => Effect.Effect<Value, unknown, Scope.Scope>;
80
85
  readonly release: (value: Value) => Effect.Effect<void>;
81
- readonly onAcquired: (value: Value) => Message;
86
+ readonly onAcquired: OnAcquired;
82
87
  readonly onReleased: () => Message;
83
88
  readonly onAcquireError: (error: unknown) => Message;
84
- } & EntryBrand;
89
+ } & EntryBrand<Model, Message>;
85
90
  /** Type-level utility to extract the service union from a Managed Resources record. */
86
91
  export type ServicesOf<Resources> = {
87
92
  [Key in keyof Resources]: Resources[Key] extends {
@@ -95,16 +100,22 @@ export type ServicesOf<Resources> = {
95
100
  * before contextually typing `modelToMaybeRequirements` and `acquire`, so
96
101
  * destructuring patterns are inferred correctly even when the schema uses
97
102
  * transforms like `S.Option`.
103
+ *
104
+ * The `onAcquired` field is typed as `OnAcquired` intersected with the
105
+ * concrete `(value: Value) => Message` signature: the concrete member keeps
106
+ * contextual typing intact for destructured handler parameters, while the
107
+ * naked generic captures the handler's own type so the Entry records its
108
+ * arity.
98
109
  */
99
- export type EntryBuilder<Model, Message> = <RequirementsSchema extends Schema.Schema<any>, Value, Service>(schema: RequirementsSchema, config: {
110
+ export type EntryBuilder<Model, Message> = <RequirementsSchema extends Schema.Schema<any>, Value, Service, OnAcquired extends (value: Value) => Message>(schema: RequirementsSchema, config: {
100
111
  readonly resource: ManagedResource<Value, Service>;
101
112
  readonly modelToMaybeRequirements: (model: Model) => Schema.Schema.Type<RequirementsSchema>;
102
113
  readonly acquire: (params: AcquireParams<Schema.Schema.Type<RequirementsSchema>>) => Effect.Effect<Value, unknown, Scope.Scope>;
103
114
  readonly release: (value: Value) => Effect.Effect<void>;
104
- readonly onAcquired: (value: Value) => Message;
115
+ readonly onAcquired: OnAcquired & ((value: Value) => Message);
105
116
  readonly onReleased: () => Message;
106
117
  readonly onAcquireError: (error: unknown) => Message;
107
- }) => Entry<Model, Message, Schema.Schema.Type<RequirementsSchema>, Value, Service>;
118
+ }) => Entry<Model, Message, Schema.Schema.Type<RequirementsSchema>, Value, Service, OnAcquired>;
108
119
  /**
109
120
  * Declares a Managed Resources record. The Model and Message generics are
110
121
  * provided up front; the entries record follows, built from calls to the
@@ -192,7 +203,7 @@ export type EntryBuilder<Model, Message> = <RequirementsSchema extends Schema.Sc
192
203
  *
193
204
  * @see {@link ManagedResource.tag} for creating the resource identity.
194
205
  */
195
- export declare const make: <Model, Message>() => <Entries extends Record<string, Entry<Model, Message, any, any, any>>>(build: (entry: EntryBuilder<Model, Message>) => Entries) => Entries;
206
+ export declare const make: <Model, Message>() => <Entries extends Record<string, EntryBrand<Model, Message>>>(build: (entry: EntryBuilder<Model, Message>) => Entries) => Entries;
196
207
  type ChildModelOf<Resources> = Resources[keyof Resources] extends Entry<infer ChildModel, any, any, any, any> ? ChildModel : never;
197
208
  type ChildMessageOf<Resources> = Resources[keyof Resources] extends Entry<any, infer ChildMessage, any, any, any> ? ChildMessage : never;
198
209
  /**
@@ -210,7 +221,7 @@ type ChildMessageOf<Resources> = Resources[keyof Resources] extends Entry<any, i
210
221
  export declare const lift: <Resources extends Record<string, Entry<any, any, Option.Option<any>, any, any>>>(resources: Resources) => <ParentModel, ParentMessage>(config: {
211
222
  readonly toChildModel: (parentModel: ParentModel) => Option.Option<ChildModelOf<Resources>>;
212
223
  readonly toParentMessage: (message: ChildMessageOf<Resources>) => ParentMessage;
213
- }) => { readonly [Key in keyof Resources]: Resources[Key] extends Entry<any, any, infer Requirements, infer Value, infer Service> ? Entry<ParentModel, ParentMessage, Requirements, Value, Service> : never; };
224
+ }) => { readonly [Key in keyof Resources]: Resources[Key] extends Entry<any, any, infer Requirements, infer Value, infer Service, infer OnAcquired extends (...args: ReadonlyArray<any>) => any> ? Entry<ParentModel, ParentMessage, Requirements, Value, Service, (...args: Parameters<OnAcquired>) => ParentMessage> : never; };
214
225
  type MergeRecords<Records extends ReadonlyArray<unknown>> = Records extends readonly [infer Head, ...infer Rest] ? Head & (Rest extends ReadonlyArray<unknown> ? MergeRecords<Rest> : {}) : {};
215
226
  /**
216
227
  * Combines multiple Managed Resources records into one. Throws on duplicate
@@ -1 +1 @@
1
- {"version":3,"file":"managedResource.d.ts","sourceRoot":"","sources":["../../src/managedResource/managedResource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managedResource.d.ts","sourceRoot":"","sources":["../../src/managedResource/managedResource.ts"],"names":[],"mappings":"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"}
@@ -105,7 +105,12 @@ export const tag = () => (key) => {
105
105
  *
106
106
  * @see {@link ManagedResource.tag} for creating the resource identity.
107
107
  */
108
- export const make = () => (build) => {
108
+ export const make = () =>
109
+ // NOTE: the Entries constraint is the brand alone, not Entry. Naming Entry
110
+ // here hands the checker a concrete onAcquired signature through the return
111
+ // position, which poisons contextual typing of destructured onAcquired
112
+ // parameters at every entry call site (their bindings become any).
113
+ (build) => {
109
114
  /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
110
115
  const entry = ((schema, config) => ({
111
116
  schema,
@@ -125,15 +125,14 @@ export declare const subscription: <Value, Encoded, Message>(port: Inbound<Value
125
125
  * Effect:
126
126
  *
127
127
  * ```ts
128
- * const ReportCount = Command.define(
129
- * 'ReportCount',
130
- * { count: S.Number },
131
- * CompletedReportCount,
132
- * )(({ count }) =>
133
- * Port.emit(ports.outbound.countChanged, count).pipe(
134
- * Effect.as(CompletedReportCount()),
135
- * ),
136
- * )
128
+ * const ReportCount = Command.define('ReportCount', {
129
+ * args: { count: S.Number },
130
+ * messages: [CompletedReportCount],
131
+ * execute: ({ count }) =>
132
+ * Port.emit(ports.outbound.countChanged, count).pipe(
133
+ * Effect.as(CompletedReportCount()),
134
+ * ),
135
+ * })
137
136
  * ```
138
137
  *
139
138
  * When the program runs without an embed handle (started with `Runtime.run`),
@@ -1 +1 @@
1
- {"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../src/port/port.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../src/port/port.ts"],"names":[],"mappings":"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"}
package/dist/port/port.js CHANGED
@@ -128,15 +128,14 @@ export const subscription = (port, toMessage) => persistent(Stream.map(stream(po
128
128
  * Effect:
129
129
  *
130
130
  * ```ts
131
- * const ReportCount = Command.define(
132
- * 'ReportCount',
133
- * { count: S.Number },
134
- * CompletedReportCount,
135
- * )(({ count }) =>
136
- * Port.emit(ports.outbound.countChanged, count).pipe(
137
- * Effect.as(CompletedReportCount()),
138
- * ),
139
- * )
131
+ * const ReportCount = Command.define('ReportCount', {
132
+ * args: { count: S.Number },
133
+ * messages: [CompletedReportCount],
134
+ * execute: ({ count }) =>
135
+ * Port.emit(ports.outbound.countChanged, count).pipe(
136
+ * Effect.as(CompletedReportCount()),
137
+ * ),
138
+ * })
140
139
  * ```
141
140
  *
142
141
  * When the program runs without an embed handle (started with `Runtime.run`),
@@ -0,0 +1,28 @@
1
+ import { Schema as S } from 'effect';
2
+ import * as CustomElement from '../../customElement/index.js';
3
+ import type { Html, HtmlBuilder } from '../../html/index.js';
4
+ export declare const hexColorPicker: CustomElement.CustomElementSpec<"hex-color-picker", {
5
+ color: S.String;
6
+ }, {
7
+ 'color-changed': S.Struct<{
8
+ readonly value: S.String;
9
+ }>;
10
+ }>;
11
+ export declare const Model: S.Struct<{
12
+ readonly color: S.String;
13
+ }>;
14
+ export type Model = typeof Model.Type;
15
+ export declare const ChangedColor: import("../../schema/index.js").CallableTaggedStruct<"ChangedColor", {
16
+ value: S.String;
17
+ }>;
18
+ export declare const Message: S.Union<readonly [import("../../schema/index.js").CallableTaggedStruct<"ChangedColor", {
19
+ value: S.String;
20
+ }>]>;
21
+ export type Message = typeof Message.Type;
22
+ export declare const initialModel: {
23
+ readonly color: string;
24
+ };
25
+ export declare const update: (model: Model, message: Message) => readonly [Model, ReadonlyArray<never>];
26
+ export declare const view: (model: Model, h: HtmlBuilder<Message>) => Html;
27
+ export declare const viewWithoutHandler: (model: Model, h: HtmlBuilder<Message>) => Html;
28
+ //# sourceMappingURL=colorPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorPicker.d.ts","sourceRoot":"","sources":["../../../src/test/apps/colorPicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,KAAK,aAAa,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAM5D,eAAO,MAAM,cAAc;;;;;;EAQzB,CAAA;AAIF,eAAO,MAAM,KAAK;;EAAgC,CAAA;AAClD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,YAAY;;EAAyC,CAAA;AAElE,eAAO,MAAM,OAAO;;IAA0B,CAAA;AAC9C,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;CAAmC,CAAA;AAI5D,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAMrC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAkB5D,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,GAAG,WAAW,CAAC,OAAO,CAAC,KACtB,IAUF,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { Match as M, Schema as S } from 'effect';
2
+ import * as CustomElement from '../../customElement/index.js';
3
+ import { m } from '../../message/index.js';
4
+ import { evo } from '../../struct/index.js';
5
+ // CUSTOM ELEMENT
6
+ export const hexColorPicker = CustomElement.define({
7
+ tag: 'hex-color-picker',
8
+ properties: {
9
+ color: S.String,
10
+ },
11
+ events: {
12
+ 'color-changed': S.Struct({ value: S.String }),
13
+ },
14
+ });
15
+ // MODEL
16
+ export const Model = S.Struct({ color: S.String });
17
+ // MESSAGE
18
+ export const ChangedColor = m('ChangedColor', { value: S.String });
19
+ export const Message = S.Union([ChangedColor]);
20
+ // INIT
21
+ export const initialModel = Model.make({ color: '#000000' });
22
+ // UPDATE
23
+ export const update = (model, message) => M.value(message).pipe(M.withReturnType(), M.tagsExhaustive({
24
+ ChangedColor: ({ value }) => [evo(model, { color: () => value }), []],
25
+ }));
26
+ // VIEW
27
+ export const view = (model, h) => {
28
+ const picker = hexColorPicker.withMessage(h);
29
+ return h.div([], [
30
+ picker([
31
+ picker.Color(model.color),
32
+ picker.OnColorChanged(detail => ChangedColor({ value: detail.value })),
33
+ ], []),
34
+ h.span([h.Role('status')], [model.color]),
35
+ ]);
36
+ };
37
+ export const viewWithoutHandler = (model, h) => {
38
+ const picker = hexColorPicker.withMessage(h);
39
+ return h.div([], [
40
+ picker([picker.Color(model.color)], []),
41
+ h.span([h.Role('status')], [model.color]),
42
+ ]);
43
+ };
@@ -12,6 +12,8 @@ export declare const ClickedFetch: import("../../schema/index.js").CallableTagge
12
12
  export declare const ClickedFetchById: import("../../schema/index.js").CallableTaggedStruct<"ClickedFetchById", {
13
13
  id: S.Number;
14
14
  }>;
15
+ export declare const Ticked: import("../../schema/index.js").CallableTaggedStruct<"Ticked", {}>;
16
+ export declare const PolledCount: import("../../schema/index.js").CallableTaggedStruct<"PolledCount", {}>;
15
17
  export declare const StartedThreeFetches: import("../../schema/index.js").CallableTaggedStruct<"StartedThreeFetches", {}>;
16
18
  export declare const StartedTwoFetchesById: import("../../schema/index.js").CallableTaggedStruct<"StartedTwoFetchesById", {}>;
17
19
  export declare const StartedMixedFetches: import("../../schema/index.js").CallableTaggedStruct<"StartedMixedFetches", {}>;
@@ -23,7 +25,7 @@ export declare const FailedFetchCount: import("../../schema/index.js").CallableT
23
25
  }>;
24
26
  export declare const Message: S.Union<readonly [import("../../schema/index.js").CallableTaggedStruct<"ClickedIncrement", {}>, import("../../schema/index.js").CallableTaggedStruct<"ClickedDecrement", {}>, import("../../schema/index.js").CallableTaggedStruct<"ClickedFetch", {}>, import("../../schema/index.js").CallableTaggedStruct<"ClickedFetchById", {
25
27
  id: S.Number;
26
- }>, import("../../schema/index.js").CallableTaggedStruct<"StartedThreeFetches", {}>, import("../../schema/index.js").CallableTaggedStruct<"StartedTwoFetchesById", {}>, import("../../schema/index.js").CallableTaggedStruct<"StartedMixedFetches", {}>, import("../../schema/index.js").CallableTaggedStruct<"SucceededFetchCount", {
28
+ }>, import("../../schema/index.js").CallableTaggedStruct<"Ticked", {}>, import("../../schema/index.js").CallableTaggedStruct<"PolledCount", {}>, import("../../schema/index.js").CallableTaggedStruct<"StartedThreeFetches", {}>, import("../../schema/index.js").CallableTaggedStruct<"StartedTwoFetchesById", {}>, import("../../schema/index.js").CallableTaggedStruct<"StartedMixedFetches", {}>, import("../../schema/index.js").CallableTaggedStruct<"SucceededFetchCount", {
27
29
  count: S.Number;
28
30
  }>, import("../../schema/index.js").CallableTaggedStruct<"FailedFetchCount", {
29
31
  error: S.String;
@@ -1 +1 @@
1
- {"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/test/apps/counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAK5D,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,gBAAgB;;EAA0C,CAAA;AACvE,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,mBAAmB;;EAAgD,CAAA;AAChF,eAAO,MAAM,gBAAgB;;EAA6C,CAAA;AAE1E,eAAO,MAAM,OAAO;;;;;;IAUlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,UAAU;;;iBAIgC,CAAA;AAEvD,eAAO,MAAM,cAAc;;;;;iBAKyC,CAAA;AAIpE,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAiCxD,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAe5D,CAAA"}
1
+ {"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/test/apps/counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEvE,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAM5D,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,gBAAgB;;EAA0C,CAAA;AACvE,eAAO,MAAM,MAAM,oEAAc,CAAA;AACjC,eAAO,MAAM,WAAW,yEAAmB,CAAA;AAC3C,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,mBAAmB;;EAAgD,CAAA;AAChF,eAAO,MAAM,gBAAgB;;EAA6C,CAAA;AAE1E,eAAO,MAAM,OAAO;;;;;;IAYlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,UAAU;;;iBAGrB,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;iBAIzB,CAAA;AAIF,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAmCxD,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAe5D,CAAA"}
@@ -1,6 +1,7 @@
1
- import { Effect, Match as M, Schema as S } from 'effect';
1
+ import { Array, Effect, Match as M, Number, Schema as S } from 'effect';
2
2
  import * as Command from '../../command/index.js';
3
3
  import { m } from '../../message/index.js';
4
+ import { evo } from '../../struct/index.js';
4
5
  // MODEL
5
6
  export const Model = S.Struct({
6
7
  count: S.Number,
@@ -11,6 +12,8 @@ export const ClickedIncrement = m('ClickedIncrement');
11
12
  export const ClickedDecrement = m('ClickedDecrement');
12
13
  export const ClickedFetch = m('ClickedFetch');
13
14
  export const ClickedFetchById = m('ClickedFetchById', { id: S.Number });
15
+ export const Ticked = m('Ticked');
16
+ export const PolledCount = m('PolledCount');
14
17
  export const StartedThreeFetches = m('StartedThreeFetches');
15
18
  export const StartedTwoFetchesById = m('StartedTwoFetchesById');
16
19
  export const StartedMixedFetches = m('StartedMixedFetches');
@@ -21,6 +24,8 @@ export const Message = S.Union([
21
24
  ClickedDecrement,
22
25
  ClickedFetch,
23
26
  ClickedFetchById,
27
+ Ticked,
28
+ PolledCount,
24
29
  StartedThreeFetches,
25
30
  StartedTwoFetchesById,
26
31
  StartedMixedFetches,
@@ -28,16 +33,25 @@ export const Message = S.Union([
28
33
  FailedFetchCount,
29
34
  ]);
30
35
  // COMMAND
31
- export const FetchCount = Command.define('FetchCount', SucceededFetchCount, FailedFetchCount)(Effect.sync(() => SucceededFetchCount({ count: 0 })));
32
- export const FetchCountById = Command.define('FetchCountById', { id: S.Number }, SucceededFetchCount, FailedFetchCount)(({ id }) => Effect.sync(() => SucceededFetchCount({ count: id })));
36
+ export const FetchCount = Command.define('FetchCount', {
37
+ messages: [SucceededFetchCount, FailedFetchCount],
38
+ execute: Effect.sync(() => SucceededFetchCount({ count: 0 })),
39
+ });
40
+ export const FetchCountById = Command.define('FetchCountById', {
41
+ args: { id: S.Number },
42
+ messages: [SucceededFetchCount, FailedFetchCount],
43
+ execute: ({ id }) => Effect.sync(() => SucceededFetchCount({ count: id })),
44
+ });
33
45
  // INIT
34
46
  export const initialModel = { count: 0, log: [] };
35
47
  // UPDATE
36
48
  export const update = (model, message) => M.value(message).pipe(M.withReturnType(), M.tagsExhaustive({
37
- ClickedIncrement: () => [{ ...model, count: model.count + 1 }, []],
38
- ClickedDecrement: () => [{ ...model, count: model.count - 1 }, []],
49
+ ClickedIncrement: () => [evo(model, { count: Number.increment }), []],
50
+ ClickedDecrement: () => [evo(model, { count: Number.decrement }), []],
39
51
  ClickedFetch: () => [model, [FetchCount()]],
40
52
  ClickedFetchById: ({ id }) => [model, [FetchCountById({ id })]],
53
+ Ticked: () => [evo(model, { count: Number.increment }), []],
54
+ PolledCount: () => [model, [FetchCount()]],
41
55
  StartedThreeFetches: () => [
42
56
  model,
43
57
  [FetchCount(), FetchCount(), FetchCount()],
@@ -56,7 +70,7 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
56
70
  ],
57
71
  ],
58
72
  SucceededFetchCount: ({ count }) => [
59
- { count, log: [...model.log, count] },
73
+ evo(model, { count: () => count, log: Array.append(count) }),
60
74
  [],
61
75
  ],
62
76
  FailedFetchCount: () => [model, []],
@@ -1 +1 @@
1
- {"version":3,"file":"crashOnRender.d.ts","sourceRoot":"","sources":["../../../src/test/apps/crashOnRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE/D,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAMhE,eAAO,MAAM,SAAS;;;EAGpB,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAK7C,eAAO,MAAM,MAAM;;;EAGjB,CAAA;AACF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC,eAAO,MAAM,KAAK;;;;;EAEhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,aAAa;;;;;EAAsD,CAAA;AAChF,eAAO,MAAM,cAAc;;;;;EAA0C,CAAA;AACrE,eAAO,MAAM,oBAAoB;;EAA8C,CAAA;AAE/E,eAAO,MAAM,OAAO;;;;;;;;;;;;IAKlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAMzC,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,SAAS,CAGpD,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;iBAGoC,CAAA;AAI9D,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,SAAS,CAEjD,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,SAAS,CAErD,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAiC,CAAA;AAI5D,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAiBxD,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,QA4B5D,CAAA"}
1
+ {"version":3,"file":"crashOnRender.d.ts","sourceRoot":"","sources":["../../../src/test/apps/crashOnRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE/D,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAMhE,eAAO,MAAM,SAAS;;;EAGpB,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAK7C,eAAO,MAAM,MAAM;;;EAGjB,CAAA;AACF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC,eAAO,MAAM,KAAK;;;;;EAEhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,aAAa;;;;;EAAsD,CAAA;AAChF,eAAO,MAAM,cAAc;;;;;EAA0C,CAAA;AACrE,eAAO,MAAM,oBAAoB;;EAA8C,CAAA;AAE/E,eAAO,MAAM,OAAO;;;;;;;;;;;;IAKlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAMzC,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,SAAS,CAGpD,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;iBAGxB,CAAA;AAIF,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,SAAS,CAEjD,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,SAAS,CAErD,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAiC,CAAA;AAI5D,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAiBxD,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,QA4B5D,CAAA"}