foldkit 0.156.0 → 0.157.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.
- package/README.md +3 -3
- package/dist/asyncData/asyncData.d.ts +7 -7
- package/dist/asyncData/asyncData.d.ts.map +1 -1
- package/dist/asyncData/asyncData.js +12 -12
- package/dist/calendar/calendarDate.d.ts +15 -15
- package/dist/calendar/calendarDate.d.ts.map +1 -1
- package/dist/calendar/calendarDate.js +14 -14
- package/dist/calendar/comparison.d.ts +2 -2
- package/dist/calendar/comparison.d.ts.map +1 -1
- package/dist/calendar/comparison.js +5 -5
- package/dist/calendar/info.d.ts +2 -2
- package/dist/calendar/info.d.ts.map +1 -1
- package/dist/calendar/info.js +2 -2
- package/dist/calendar/locale.d.ts +7 -7
- package/dist/calendar/locale.d.ts.map +1 -1
- package/dist/calendar/locale.js +23 -23
- package/dist/canvas/shape.d.ts +89 -89
- package/dist/canvas/shape.d.ts.map +1 -1
- package/dist/canvas/shape.js +65 -53
- package/dist/command/index.d.ts +3 -3
- package/dist/customElement/index.d.ts +2 -2
- package/dist/customElement/index.js +2 -2
- package/dist/devTools/protocol.d.ts +278 -278
- package/dist/devTools/protocol.d.ts.map +1 -1
- package/dist/devTools/protocol.js +98 -92
- package/dist/devTools/schemaSummarize.d.ts.map +1 -1
- package/dist/devTools/schemaSummarize.js +24 -24
- package/dist/devTools/serialize.d.ts +1 -1
- package/dist/devTools/serialize.d.ts.map +1 -1
- package/dist/devTools/serialize.js +10 -10
- package/dist/devTools/store.d.ts.map +1 -1
- package/dist/devTools/store.js +52 -28
- package/dist/devTools/submodelPath.d.ts.map +1 -1
- package/dist/devTools/submodelPath.js +3 -3
- package/dist/devTools/summarize.d.ts +6 -6
- package/dist/devTools/summarize.d.ts.map +1 -1
- package/dist/devTools/summarize.js +13 -13
- package/dist/devTools/webSocketBridge.d.ts +3 -3
- package/dist/devTools/webSocketBridge.d.ts.map +1 -1
- package/dist/devTools/webSocketBridge.js +8 -8
- package/dist/dom/dom.d.ts +2 -0
- package/dist/dom/dom.d.ts.map +1 -1
- package/dist/dom/dom.js +47 -13
- package/dist/experimental/machine/machine.d.ts +29 -6
- package/dist/experimental/machine/machine.d.ts.map +1 -1
- package/dist/experimental/machine/machine.js +9 -8
- package/dist/experimental/server/entry.js +2 -2
- package/dist/experimental/server/serialize.js +2 -2
- package/dist/experimental/server/server.js +4 -4
- package/dist/fieldValidation/fieldValidation.d.ts +12 -12
- package/dist/fieldValidation/fieldValidation.d.ts.map +1 -1
- package/dist/fieldValidation/fieldValidation.js +9 -9
- package/dist/fieldValidation/rule.d.ts +2 -2
- package/dist/fieldValidation/rule.d.ts.map +1 -1
- package/dist/fieldValidation/rule.js +6 -6
- package/dist/file/file.d.ts +3 -3
- package/dist/file/file.d.ts.map +1 -1
- package/dist/file/file.js +3 -3
- package/dist/html/boundary.d.ts +93 -36
- package/dist/html/boundary.d.ts.map +1 -1
- package/dist/html/boundary.js +242 -75
- package/dist/html/childAttribute.d.ts +6 -4
- package/dist/html/childAttribute.d.ts.map +1 -1
- package/dist/html/childAttribute.js +7 -1
- package/dist/html/index.d.ts +31 -16
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +97 -40
- package/dist/html/lazy.d.ts +6 -6
- package/dist/html/lazy.d.ts.map +1 -1
- package/dist/html/lazy.js +37 -15
- package/dist/html/public.d.ts +1 -1
- package/dist/html/public.d.ts.map +1 -1
- package/dist/html/runtimeSingleton.d.ts +27 -6
- package/dist/html/runtimeSingleton.d.ts.map +1 -1
- package/dist/html/runtimeSingleton.js +46 -29
- package/dist/html/submodel.d.ts.map +1 -1
- package/dist/html/submodel.js +28 -39
- package/dist/http/http.d.ts +1 -1
- package/dist/http/http.js +1 -1
- package/dist/managedResource/managedResource.d.ts +5 -5
- package/dist/managedResource/managedResource.js +3 -3
- package/dist/mount/index.d.ts +92 -39
- package/dist/mount/index.d.ts.map +1 -1
- package/dist/mount/index.js +28 -8
- package/dist/mount/public.d.ts +1 -1
- package/dist/mount/public.d.ts.map +1 -1
- package/dist/mount/public.js +1 -1
- package/dist/navigation/urlRequest.d.ts +9 -9
- package/dist/navigation/urlRequest.d.ts.map +1 -1
- package/dist/navigation/urlRequest.js +2 -2
- package/dist/onUnmountModule.d.ts +19 -0
- package/dist/onUnmountModule.d.ts.map +1 -0
- package/dist/onUnmountModule.js +80 -0
- package/dist/port/port.d.ts +5 -5
- package/dist/port/port.js +5 -5
- package/dist/route/parser.d.ts +2 -2
- package/dist/route/parser.js +2 -2
- package/dist/runtime/hmrProtocol.d.ts +10 -10
- package/dist/runtime/hmrProtocol.d.ts.map +1 -1
- package/dist/runtime/hmrProtocol.js +10 -10
- package/dist/runtime/runtime.d.ts +4 -4
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +168 -51
- package/dist/schema/index.d.ts +41 -29
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +9 -9
- package/dist/snabbdom/init.d.ts +1 -1
- package/dist/snabbdom/init.d.ts.map +1 -1
- package/dist/snabbdom/init.js +5 -1
- package/dist/snabbdom/vnode.d.ts +1 -0
- package/dist/snabbdom/vnode.d.ts.map +1 -1
- package/dist/snabbdom/vnode.js +1 -0
- package/dist/subscription/animationFrame.d.ts +3 -3
- package/dist/subscription/animationFrame.d.ts.map +1 -1
- package/dist/subscription/animationFrame.js +2 -2
- package/dist/subscription/fromEvent.d.ts +2 -2
- package/dist/subscription/fromEvent.js +2 -2
- package/dist/subscription/subscription.d.ts +3 -3
- package/dist/subscription/subscription.js +1 -1
- package/dist/test/apps/bubbling.d.ts +6 -6
- package/dist/test/apps/bubbling.d.ts.map +1 -1
- package/dist/test/apps/bubbling.js +6 -6
- package/dist/test/apps/colorPicker.d.ts +7 -7
- package/dist/test/apps/colorPicker.d.ts.map +1 -1
- package/dist/test/apps/colorPicker.js +5 -5
- package/dist/test/apps/contextMenu.d.ts +5 -5
- package/dist/test/apps/contextMenu.d.ts.map +1 -1
- package/dist/test/apps/contextMenu.js +4 -4
- package/dist/test/apps/counter.d.ts +8 -8
- package/dist/test/apps/counter.d.ts.map +1 -1
- package/dist/test/apps/counter.js +8 -8
- package/dist/test/apps/crashOnRender.d.ts +18 -18
- package/dist/test/apps/crashOnRender.d.ts.map +1 -1
- package/dist/test/apps/crashOnRender.js +11 -11
- package/dist/test/apps/drafts.d.ts +9 -9
- package/dist/test/apps/drafts.d.ts.map +1 -1
- package/dist/test/apps/drafts.js +6 -6
- package/dist/test/apps/feedSocket.d.ts +6 -6
- package/dist/test/apps/feedSocket.d.ts.map +1 -1
- package/dist/test/apps/feedSocket.js +8 -8
- package/dist/test/apps/fileUpload.d.ts +2 -2
- package/dist/test/apps/fileUpload.d.ts.map +1 -1
- package/dist/test/apps/fileUpload.js +2 -2
- package/dist/test/apps/focusBoundary.d.ts +3 -3
- package/dist/test/apps/focusBoundary.d.ts.map +1 -1
- package/dist/test/apps/focusBoundary.js +3 -3
- package/dist/test/apps/formChild.d.ts +11 -11
- package/dist/test/apps/formChild.d.ts.map +1 -1
- package/dist/test/apps/formChild.js +13 -12
- package/dist/test/apps/interactions.d.ts +8 -8
- package/dist/test/apps/interactions.d.ts.map +1 -1
- package/dist/test/apps/interactions.js +8 -8
- package/dist/test/apps/keypress.d.ts +6 -6
- package/dist/test/apps/keypress.d.ts.map +1 -1
- package/dist/test/apps/keypress.js +6 -6
- package/dist/test/apps/login.d.ts +11 -11
- package/dist/test/apps/login.d.ts.map +1 -1
- package/dist/test/apps/login.js +15 -15
- package/dist/test/apps/logoutButton.d.ts +3 -3
- package/dist/test/apps/logoutButton.d.ts.map +1 -1
- package/dist/test/apps/logoutButton.js +2 -2
- package/dist/test/apps/mountPanel.d.ts +9 -9
- package/dist/test/apps/mountPanel.d.ts.map +1 -1
- package/dist/test/apps/mountPanel.js +9 -9
- package/dist/test/apps/multiRole.d.ts +3 -3
- package/dist/test/apps/multiRole.d.ts.map +1 -1
- package/dist/test/apps/multiRole.js +2 -2
- package/dist/test/apps/pointer.d.ts +7 -7
- package/dist/test/apps/pointer.d.ts.map +1 -1
- package/dist/test/apps/pointer.js +7 -7
- package/dist/test/apps/resumeUpload.d.ts +8 -8
- package/dist/test/apps/resumeUpload.d.ts.map +1 -1
- package/dist/test/apps/resumeUpload.js +7 -7
- package/dist/test/apps/scorePanel.d.ts +3 -3
- package/dist/test/apps/scorePanel.d.ts.map +1 -1
- package/dist/test/apps/scorePanel.js +2 -2
- package/dist/test/apps/selectiveKeys.d.ts +3 -3
- package/dist/test/apps/selectiveKeys.d.ts.map +1 -1
- package/dist/test/apps/selectiveKeys.js +3 -3
- package/dist/test/apps/uploads.d.ts +18 -18
- package/dist/test/apps/uploads.d.ts.map +1 -1
- package/dist/test/apps/uploads.js +13 -13
- package/dist/test/matchers.d.ts.map +1 -1
- package/dist/test/matchers.js +4 -4
- package/dist/test/query.d.ts.map +1 -1
- package/dist/test/query.js +28 -28
- package/dist/test/scene.d.ts +37 -8
- package/dist/test/scene.d.ts.map +1 -1
- package/dist/test/scene.js +58 -15
- package/dist/test/story.d.ts +35 -8
- package/dist/test/story.d.ts.map +1 -1
- package/dist/test/story.js +44 -22
- package/dist/update/update.d.ts +17 -20
- package/dist/update/update.d.ts.map +1 -1
- package/dist/url/index.d.ts +8 -8
- package/dist/url/index.d.ts.map +1 -1
- package/dist/url/index.js +19 -19
- package/dist/vdom.d.ts +3 -2
- package/dist/vdom.d.ts.map +1 -1
- package/dist/vdom.js +16 -6
- package/package.json +1 -1
package/dist/test/scene.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Array, Context, Effect, Equal, Function, Match
|
|
1
|
+
import { Array, Context, Effect, Equal, Function, Match, Option, Predicate, String, pipe, } from 'effect';
|
|
2
2
|
import { dual } from 'effect/Function';
|
|
3
3
|
import { kebabToPascal } from '../customElement/index.js';
|
|
4
4
|
import { serializedStylePropertyName } from '../domReflection.js';
|
|
@@ -233,13 +233,30 @@ const applyMessageWithoutBoundaryChecks = (simulation, message) => {
|
|
|
233
233
|
};
|
|
234
234
|
/* eslint-enable @typescript-eslint/consistent-type-assertions */
|
|
235
235
|
};
|
|
236
|
-
const
|
|
236
|
+
const assertExternalMessageBoundary = (simulation, context) => {
|
|
237
237
|
const internal = toInternal(simulation);
|
|
238
238
|
assertNoUnresolvedCommands(internal.commands, context);
|
|
239
239
|
assertNoUnresolvedMounts(internal.mounts, context);
|
|
240
240
|
assertNoUnacknowledgedUnmounts(unacknowledgedEndedMountsOf(internal.mountSlots), context);
|
|
241
|
+
};
|
|
242
|
+
const applyExternalMessages = (simulation, messages, context) => {
|
|
243
|
+
assertExternalMessageBoundary(simulation, context);
|
|
241
244
|
return Array.reduce(messages, simulation, applyMessageWithoutBoundaryChecks);
|
|
242
245
|
};
|
|
246
|
+
const applySubscriptionMessage = (simulation, message) => {
|
|
247
|
+
const internal = toInternal(simulation);
|
|
248
|
+
const context = 'when a Subscription emitted a new Message';
|
|
249
|
+
assertExternalMessageBoundary(simulation, context);
|
|
250
|
+
const messageUpdate = internal.updateFn(internal.model, message);
|
|
251
|
+
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
252
|
+
return {
|
|
253
|
+
...internal,
|
|
254
|
+
model: messageUpdate.model,
|
|
255
|
+
message,
|
|
256
|
+
commands: Array.appendAll(internal.commands, messageUpdate.commands ?? []),
|
|
257
|
+
outMessage: messageUpdate.outMessage,
|
|
258
|
+
};
|
|
259
|
+
};
|
|
243
260
|
/** Clears the pending fall-through, marking it acknowledged. Paired with
|
|
244
261
|
* {@link assertNoUnacknowledgedIgnored}, which is what it silences. */
|
|
245
262
|
const withNoUnacknowledgedIgnored = (simulation) =>
|
|
@@ -303,7 +320,7 @@ const lookupStringAttribute = (vnode, name) => {
|
|
|
303
320
|
return undefined;
|
|
304
321
|
};
|
|
305
322
|
const isSubmitButton = (element) => {
|
|
306
|
-
const maybeType = pipe(lookupStringAttribute(element, 'type'), Option.fromNullishOr, Option.map(
|
|
323
|
+
const maybeType = pipe(lookupStringAttribute(element, 'type'), Option.fromNullishOr, Option.map(String.toLowerCase));
|
|
307
324
|
if (element.sel === 'button') {
|
|
308
325
|
return Option.match(maybeType, {
|
|
309
326
|
onNone: () => true,
|
|
@@ -551,7 +568,10 @@ const applyExternalMessage = (simulation, message, context) => {
|
|
|
551
568
|
* the test exercises the handler wiring this step skips. Like an
|
|
552
569
|
* interaction, it throws if unresolved Commands, unresolved Mounts, or
|
|
553
570
|
* unacknowledged unmounts are pending. */
|
|
554
|
-
const emitSubscriptionMessage = (message) => (
|
|
571
|
+
const emitSubscriptionMessage = (message) => ({
|
|
572
|
+
_tag: 'SubscriptionMessageStep',
|
|
573
|
+
message,
|
|
574
|
+
});
|
|
555
575
|
const MANAGED_RESOURCE_CONTEXT = 'when a ManagedResource dispatched a new Message';
|
|
556
576
|
/** Declares that a ManagedResource's acquire succeeded, feeding the entry's
|
|
557
577
|
* `onAcquired` Message through update the way the runtime would. The step
|
|
@@ -610,7 +630,7 @@ const emitCustomElementEvent = (spec, target, eventName, detail) => (simulation)
|
|
|
610
630
|
if (!Object.hasOwn(spec.events, eventName)) {
|
|
611
631
|
const declared = Object.keys(spec.events).join(', ');
|
|
612
632
|
throw new Error(`I tried to emit "${eventName}" but the '${spec.tag}' element does not declare it.\n\n` +
|
|
613
|
-
`Declared events: ${
|
|
633
|
+
`Declared events: ${String.isEmpty(declared) ? '(none)' : declared}.`);
|
|
614
634
|
}
|
|
615
635
|
const internal = toInternal(simulation);
|
|
616
636
|
const scopedTarget = applyScopeToTarget(internal.scope, target);
|
|
@@ -712,7 +732,11 @@ export const CustomElement = {
|
|
|
712
732
|
};
|
|
713
733
|
/** Asserts by structural equality that the latest update-producing Scene step
|
|
714
734
|
* emitted exactly the expected OutMessage. */
|
|
715
|
-
export const expectOutMessage = (expected) => (
|
|
735
|
+
export const expectOutMessage = (expected) => ({
|
|
736
|
+
_tag: 'OutMessageStep',
|
|
737
|
+
expected,
|
|
738
|
+
});
|
|
739
|
+
const assertOutMessage = (simulation, expected) => {
|
|
716
740
|
const internal = toInternal(simulation);
|
|
717
741
|
const maybeOutMessage = Array.head(internal.outMessages);
|
|
718
742
|
if (Option.isNone(maybeOutMessage)) {
|
|
@@ -724,16 +748,18 @@ export const expectOutMessage = (expected) => (simulation) => {
|
|
|
724
748
|
if (!Equal.equals(maybeOutMessage.value, expected)) {
|
|
725
749
|
throw new Error(`Expected OutMessage:\n\n ${JSON.stringify(expected)}\n\nBut got:\n\n ${JSON.stringify(maybeOutMessage.value)}`);
|
|
726
750
|
}
|
|
727
|
-
return simulation;
|
|
728
751
|
};
|
|
729
752
|
/** Asserts by structural equality that the latest update-producing Scene
|
|
730
753
|
* step emitted two or more expected OutMessages in runtime order. */
|
|
731
|
-
export const expectOutMessages = (...expected) => (
|
|
754
|
+
export const expectOutMessages = (...expected) => ({
|
|
755
|
+
_tag: 'OutMessagesStep',
|
|
756
|
+
expected,
|
|
757
|
+
});
|
|
758
|
+
const assertOutMessages = (simulation, expected) => {
|
|
732
759
|
const actual = toInternal(simulation).outMessages;
|
|
733
760
|
if (!Equal.equals(actual, expected)) {
|
|
734
761
|
throw new Error(`Expected OutMessages:\n\n ${JSON.stringify(expected)}\n\nBut got:\n\n ${JSON.stringify(actual)}`);
|
|
735
762
|
}
|
|
736
|
-
return simulation;
|
|
737
763
|
};
|
|
738
764
|
/** Asserts that the latest update-producing Scene step emitted no OutMessages. */
|
|
739
765
|
export const expectNoOutMessage = () => (simulation) => {
|
|
@@ -772,7 +798,7 @@ export const expectNoOutMessage = () => (simulation) => {
|
|
|
772
798
|
* assertion that says so, and it fails until the handler is fixed. Where
|
|
773
799
|
* falling through is intended, reach for {@link expectIgnored} instead,
|
|
774
800
|
* which a fall-through requires. */
|
|
775
|
-
export const expectHandled = () => (simulation) =>
|
|
801
|
+
export const expectHandled = () => (simulation) => Match.value(toInternal(simulation).lastInteractionOutcome).pipe(Match.withReturnType(), Match.tagsExhaustive({
|
|
776
802
|
NotRun: () => {
|
|
777
803
|
throw new Error('I was asked whether the last interaction was handled, but no interaction has run yet.\n\n' +
|
|
778
804
|
'Put `expectHandled()` after a step like `click`, `keydown`, or `change`.');
|
|
@@ -800,7 +826,7 @@ export const expectHandled = () => (simulation) => M.value(toInternal(simulation
|
|
|
800
826
|
* Carries the same adjacency caveat as {@link expectHandled}: only
|
|
801
827
|
* interaction steps set the outcome, so keep the assertion next to the
|
|
802
828
|
* interaction it covers. */
|
|
803
|
-
export const expectIgnored = () => (simulation) =>
|
|
829
|
+
export const expectIgnored = () => (simulation) => Match.value(toInternal(simulation).lastInteractionOutcome).pipe(Match.withReturnType(), Match.tagsExhaustive({
|
|
804
830
|
NotRun: () => {
|
|
805
831
|
throw new Error('I was asked whether the last interaction was ignored, but no interaction has run yet.\n\n' +
|
|
806
832
|
'Put `expectIgnored()` after a step like `click`, `keydown`, or `change`.');
|
|
@@ -815,6 +841,23 @@ export const tap = (f) => (simulation) => {
|
|
|
815
841
|
f(simulation);
|
|
816
842
|
return simulation;
|
|
817
843
|
};
|
|
844
|
+
const applySceneStep = (simulation, step) => {
|
|
845
|
+
if (Predicate.isTagged(step, 'SubscriptionMessageStep')) {
|
|
846
|
+
return applySubscriptionMessage(simulation, step.message);
|
|
847
|
+
}
|
|
848
|
+
if (Predicate.isTagged(step, 'OutMessageStep')) {
|
|
849
|
+
assertOutMessage(simulation, step.expected);
|
|
850
|
+
return simulation;
|
|
851
|
+
}
|
|
852
|
+
if (Predicate.isTagged(step, 'OutMessagesStep')) {
|
|
853
|
+
assertOutMessages(simulation, step.expected);
|
|
854
|
+
return simulation;
|
|
855
|
+
}
|
|
856
|
+
if (Predicate.isFunction(step)) {
|
|
857
|
+
return step(simulation);
|
|
858
|
+
}
|
|
859
|
+
return simulation;
|
|
860
|
+
};
|
|
818
861
|
const runSteps = (seed, steps) =>
|
|
819
862
|
/* eslint-disable @typescript-eslint/consistent-type-assertions */
|
|
820
863
|
Array.reduce(steps, seed, (current, step) => {
|
|
@@ -824,7 +867,7 @@ Array.reduce(steps, seed, (current, step) => {
|
|
|
824
867
|
...currentInternal,
|
|
825
868
|
updateFn: outMessageCapture.updateFn,
|
|
826
869
|
};
|
|
827
|
-
const stepResult =
|
|
870
|
+
const stepResult = applySceneStep(capturingSimulation, step);
|
|
828
871
|
const restoredSimulation = {
|
|
829
872
|
...toInternal(stepResult),
|
|
830
873
|
updateFn: currentInternal.updateFn,
|
|
@@ -1243,7 +1286,7 @@ const assertHasStyle = (name, value) => assertOnElement(vnode => {
|
|
|
1243
1286
|
return Option.match(maybeActualValue, {
|
|
1244
1287
|
onNone: () => ({ pass: false, actual: 'it is not present' }),
|
|
1245
1288
|
onSome: actualValue => ({
|
|
1246
|
-
pass: String(actualValue) === value,
|
|
1289
|
+
pass: globalThis.String(actualValue) === value,
|
|
1247
1290
|
actual: `received "${actualValue}"`,
|
|
1248
1291
|
}),
|
|
1249
1292
|
});
|
|
@@ -1317,8 +1360,8 @@ const assertIsEmpty = assertOnElement(vnode => {
|
|
|
1317
1360
|
const childCount = (vnode.children ?? []).length;
|
|
1318
1361
|
const text = textContent(vnode);
|
|
1319
1362
|
return {
|
|
1320
|
-
pass:
|
|
1321
|
-
actual:
|
|
1363
|
+
pass: String.isEmpty(text) && childCount === 0,
|
|
1364
|
+
actual: String.isNonEmpty(text)
|
|
1322
1365
|
? `received text "${text}"`
|
|
1323
1366
|
: `received ${childCount} child(ren)`,
|
|
1324
1367
|
};
|
package/dist/test/story.d.ts
CHANGED
|
@@ -17,14 +17,38 @@ export type ModelStep<Model> = Readonly<{
|
|
|
17
17
|
readonly _tag: 'ModelStep';
|
|
18
18
|
readonly assert: (model: Model) => void;
|
|
19
19
|
}>;
|
|
20
|
-
/** A
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
/** A typed Message-dispatch step produced by {@link message}. */
|
|
21
|
+
export type MessageStep<Message> = Readonly<{
|
|
22
|
+
_tag: 'MessageStep';
|
|
23
|
+
message: Message;
|
|
24
|
+
}>;
|
|
25
|
+
/** A typed OutMessage assertion step produced by {@link expectOutMessage}. */
|
|
26
|
+
export type OutMessageStep<OutMessage> = Readonly<{
|
|
27
|
+
_tag: 'OutMessageStep';
|
|
28
|
+
expected: OutMessage;
|
|
29
|
+
}>;
|
|
30
|
+
/** A grouped sequence of Story steps produced by {@link steps}. */
|
|
31
|
+
export type StoryStepsStep<GivenModel, ModelAssertion, Message, OutMessage> = Readonly<{
|
|
32
|
+
_tag: 'StoryStepsStep';
|
|
33
|
+
/** @internal Carries the produced Model type through a reusable step group. */
|
|
34
|
+
_phantomGivenModel?: GivenModel;
|
|
35
|
+
/** @internal Carries Model assertion types through a reusable step group. */
|
|
36
|
+
_phantomModelAssertion?: ModelAssertion;
|
|
37
|
+
/** @internal Carries the Message type through a reusable step group. */
|
|
38
|
+
_phantomMessage?: Message;
|
|
39
|
+
/** @internal Carries the OutMessage type through a reusable step group. */
|
|
40
|
+
_phantomOutMessage?: OutMessage;
|
|
41
|
+
steps: ReadonlyArray<StoryStep<any, any, any>>;
|
|
42
|
+
}>;
|
|
43
|
+
/** A single step in a story: a {@link GivenStep}, {@link ModelStep},
|
|
44
|
+
* {@link MessageStep}, {@link OutMessageStep}, {@link StoryStepsStep}, or
|
|
45
|
+
* simulation transform. */
|
|
46
|
+
export type StoryStep<Model, Message = unknown, OutMessage = unknown> = GivenStep<NoInfer<Model>> | ModelStep<NoInfer<Model>> | MessageStep<NoInfer<Message>> | OutMessageStep<NoInfer<OutMessage>> | StoryStepsStep<NoInfer<Model>, (model: NoInfer<Model>) => void, NoInfer<Message>, NoInfer<OutMessage>> | ((simulation: StorySimulation<any, any, any>) => StorySimulation<any, any, any>);
|
|
23
47
|
/** Sets the initial Model for a test story. */
|
|
24
48
|
export declare const given: <Model>(model: Model) => GivenStep<Model>;
|
|
25
49
|
/** Sends a Message through update. Commands stay pending until resolve or
|
|
26
50
|
* resolveAll. */
|
|
27
|
-
export declare const message: <
|
|
51
|
+
export declare const message: <Message>(message_: Message) => MessageStep<Message>;
|
|
28
52
|
/** Resolves listed Commands with their result Messages, cascading through any
|
|
29
53
|
* Commands the result produces. Each entry is consumed by exactly one
|
|
30
54
|
* matching dispatch in declaration order, so
|
|
@@ -42,6 +66,9 @@ declare const resolveAllCommands: <Matchers extends ReadonlyArray<ResolvableComm
|
|
|
42
66
|
declare const resolveAllExactCommands: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
|
|
43
67
|
/** Runs an assertion function against the current Model. */
|
|
44
68
|
export declare const model: <Model>(f: (model: Model) => void) => ModelStep<Model>;
|
|
69
|
+
/** Groups Story steps so a reusable setup can remain type-safe without
|
|
70
|
+
* erasing its Message or OutMessage types through function composition. */
|
|
71
|
+
export declare const steps: <Steps extends ReadonlyArray<StoryStep<any, any, any>>>(...storySteps: Steps) => StoryStepsStep<Steps[number] extends infer Step ? Step extends GivenStep<infer Model> ? Model : Step extends StoryStepsStep<infer Model, any, any, any> ? Model : never : never, Steps[number] extends infer Step ? Step extends ModelStep<infer Model> ? (model: Model) => void : Step extends StoryStepsStep<any, infer ModelAssertion, any, any> ? ModelAssertion : never : never, Steps[number] extends infer Step ? Step extends MessageStep<infer Message> ? Message : Step extends StoryStepsStep<any, any, infer Message, any> ? Message : never : never, Steps[number] extends infer Step ? Step extends OutMessageStep<infer OutMessage> ? OutMessage : Step extends StoryStepsStep<any, any, any, infer OutMessage> ? OutMessage : never : never>;
|
|
45
72
|
/** Asserts that every given matcher matches a pending Command. Definition
|
|
46
73
|
* matchers match by name only; Instance matchers match by name + args. */
|
|
47
74
|
declare const expectHasCommandsStep: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
|
|
@@ -79,20 +106,20 @@ export declare const Command: {
|
|
|
79
106
|
};
|
|
80
107
|
/** Asserts by structural equality that update emitted the expected OutMessage,
|
|
81
108
|
* so callers can pass a freshly constructed expected value. */
|
|
82
|
-
export declare const expectOutMessage: <
|
|
109
|
+
export declare const expectOutMessage: <OutMessage>(expected: OutMessage) => OutMessageStep<OutMessage>;
|
|
83
110
|
/** Asserts that update emitted no OutMessage. */
|
|
84
111
|
export declare const expectNoOutMessage: () => <Model, Message, OutMessage>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
|
|
85
112
|
/** Executes a test story. Throws if any Commands remain unresolved. */
|
|
86
113
|
export declare const story: {
|
|
87
|
-
<Model, Message, OutMessage>(updateFn: (model: Model, message: Message) => Readonly<{
|
|
114
|
+
<Model, Message, OutMessage = never>(updateFn: (model: Model, message: Message) => Readonly<{
|
|
88
115
|
model: Model;
|
|
89
116
|
commands?: ReadonlyArray<AnyCommand>;
|
|
90
117
|
outMessage?: OutMessage;
|
|
91
|
-
}>, ...steps: ReadonlyArray<StoryStep<NoInfer<Model>>>): void;
|
|
118
|
+
}>, ...steps: ReadonlyArray<StoryStep<NoInfer<Model>, NoInfer<Message>, NoInfer<OutMessage>>>): void;
|
|
92
119
|
<Model, Message>(updateFn: (model: Model, message: Message) => Readonly<{
|
|
93
120
|
model: Model;
|
|
94
121
|
commands?: ReadonlyArray<AnyCommand>;
|
|
95
122
|
outMessage?: never;
|
|
96
|
-
}>, ...steps: ReadonlyArray<StoryStep<NoInfer<Model
|
|
123
|
+
}>, ...steps: ReadonlyArray<StoryStep<NoInfer<Model>, NoInfer<Message>, undefined>>): void;
|
|
97
124
|
};
|
|
98
125
|
//# sourceMappingURL=story.d.ts.map
|
package/dist/test/story.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../src/test/story.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,2BAA2B,EAC3B,wBAAwB,EACxB,QAAQ,EAGT,MAAM,eAAe,CAAA;AAetB,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAA;AAEpD,yDAAyD;AACzD,MAAM,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,IAAI,QAAQ,CAAC;IAC7E,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACnC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAA;CACnC,CAAC,CAAA;AAEF,qGAAqG;AACrG,MAAM,MAAM,SAAS,CAAC,KAAK,IAAI,QAAQ,CAAC;IAAE,aAAa,EAAE,KAAK,CAAA;CAAE,CAAC,GAC/D,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAClC,UAAU,EAAE,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,KAChD,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAE/C,wDAAwD;AACxD,MAAM,MAAM,SAAS,CAAC,KAAK,IAAI,QAAQ,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACxC,CAAC,CAAA;AAEF;
|
|
1
|
+
{"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../src/test/story.ts"],"names":[],"mappings":"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"}
|
package/dist/test/story.js
CHANGED
|
@@ -17,23 +17,25 @@ export const given = (model) => {
|
|
|
17
17
|
});
|
|
18
18
|
/* eslint-enable @typescript-eslint/consistent-type-assertions */
|
|
19
19
|
};
|
|
20
|
-
|
|
21
|
-
* resolveAll. */
|
|
22
|
-
export const message = (message_) => (simulation) => {
|
|
20
|
+
const applyMessage = (simulation, message_) => {
|
|
23
21
|
const internal = toInternal(simulation);
|
|
24
22
|
assertNoUnresolvedCommands(internal.commands, 'when you sent a new Message');
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const messageUpdate = internal.updateFn(internal.model, messageAsParent);
|
|
23
|
+
const messageUpdate = internal.updateFn(internal.model, message_);
|
|
24
|
+
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
28
25
|
return {
|
|
29
26
|
...internal,
|
|
30
27
|
model: messageUpdate.model,
|
|
31
|
-
message:
|
|
28
|
+
message: message_,
|
|
32
29
|
commands: Array.appendAll(internal.commands, messageUpdate.commands ?? []),
|
|
33
30
|
outMessage: messageUpdate.outMessage,
|
|
34
31
|
};
|
|
35
|
-
/* eslint-enable @typescript-eslint/consistent-type-assertions */
|
|
36
32
|
};
|
|
33
|
+
/** Sends a Message through update. Commands stay pending until resolve or
|
|
34
|
+
* resolveAll. */
|
|
35
|
+
export const message = (message_) => ({
|
|
36
|
+
_tag: 'MessageStep',
|
|
37
|
+
message: message_,
|
|
38
|
+
});
|
|
37
39
|
/** Resolves a pending Command with the given result Message. Accepts either
|
|
38
40
|
* a Command Definition (matches by name; any pending Command of that name)
|
|
39
41
|
* or a Command instance (matches by name AND args; strict). */
|
|
@@ -74,6 +76,12 @@ export const model = (f) => ({
|
|
|
74
76
|
_tag: 'ModelStep',
|
|
75
77
|
assert: f,
|
|
76
78
|
});
|
|
79
|
+
/** Groups Story steps so a reusable setup can remain type-safe without
|
|
80
|
+
* erasing its Message or OutMessage types through function composition. */
|
|
81
|
+
export const steps = (...storySteps) => ({
|
|
82
|
+
_tag: 'StoryStepsStep',
|
|
83
|
+
steps: storySteps,
|
|
84
|
+
});
|
|
77
85
|
/** Asserts that every given matcher matches a pending Command. Definition
|
|
78
86
|
* matchers match by name only; Instance matchers match by name + args. */
|
|
79
87
|
const expectHasCommandsStep = (...matchers) => (simulation) => {
|
|
@@ -115,16 +123,19 @@ export const Command = {
|
|
|
115
123
|
/** Asserts that there are no pending Commands. */
|
|
116
124
|
expectNone: expectNoCommandsStep,
|
|
117
125
|
};
|
|
118
|
-
|
|
119
|
-
* so callers can pass a freshly constructed expected value. */
|
|
120
|
-
export const expectOutMessage = (expected) => (simulation) => {
|
|
126
|
+
const assertOutMessage = (simulation, expected) => {
|
|
121
127
|
const internal = toInternal(simulation);
|
|
122
128
|
const outMessage = internal.outMessage;
|
|
123
129
|
if (outMessage === undefined || !Equal.equals(outMessage, expected)) {
|
|
124
130
|
throw new Error(`Expected OutMessage:\n\n ${JSON.stringify(expected)}\n\nBut got:\n\n ${JSON.stringify(outMessage)}`);
|
|
125
131
|
}
|
|
126
|
-
return simulation;
|
|
127
132
|
};
|
|
133
|
+
/** Asserts by structural equality that update emitted the expected OutMessage,
|
|
134
|
+
* so callers can pass a freshly constructed expected value. */
|
|
135
|
+
export const expectOutMessage = (expected) => ({
|
|
136
|
+
_tag: 'OutMessageStep',
|
|
137
|
+
expected,
|
|
138
|
+
});
|
|
128
139
|
/** Asserts that update emitted no OutMessage. */
|
|
129
140
|
export const expectNoOutMessage = () => (simulation) => {
|
|
130
141
|
const internal = toInternal(simulation);
|
|
@@ -135,6 +146,26 @@ export const expectNoOutMessage = () => (simulation) => {
|
|
|
135
146
|
return simulation;
|
|
136
147
|
};
|
|
137
148
|
// STORY
|
|
149
|
+
const applyStoryStep = (current, step) => {
|
|
150
|
+
if (Predicate.isTagged(step, 'ModelStep')) {
|
|
151
|
+
step.assert(toInternal(current).model);
|
|
152
|
+
return current;
|
|
153
|
+
}
|
|
154
|
+
if (Predicate.isTagged(step, 'MessageStep')) {
|
|
155
|
+
return applyMessage(current, step.message);
|
|
156
|
+
}
|
|
157
|
+
if (Predicate.isTagged(step, 'OutMessageStep')) {
|
|
158
|
+
assertOutMessage(current, step.expected);
|
|
159
|
+
return current;
|
|
160
|
+
}
|
|
161
|
+
if (Predicate.isTagged(step, 'StoryStepsStep')) {
|
|
162
|
+
return Array.reduce(step.steps, current, applyStoryStep);
|
|
163
|
+
}
|
|
164
|
+
if (Predicate.isFunction(step)) {
|
|
165
|
+
return step(current);
|
|
166
|
+
}
|
|
167
|
+
return current;
|
|
168
|
+
};
|
|
138
169
|
/** Executes a test story. Throws if any Commands remain unresolved. */
|
|
139
170
|
export const story = (updateFn, ...steps) => {
|
|
140
171
|
/* eslint-disable @typescript-eslint/consistent-type-assertions */
|
|
@@ -146,16 +177,7 @@ export const story = (updateFn, ...steps) => {
|
|
|
146
177
|
updateFn,
|
|
147
178
|
resolvers: [],
|
|
148
179
|
};
|
|
149
|
-
const result =
|
|
150
|
-
if (typeof step === 'function') {
|
|
151
|
-
return step(current);
|
|
152
|
-
}
|
|
153
|
-
if ('_tag' in step && step._tag === 'ModelStep') {
|
|
154
|
-
step.assert(toInternal(current).model);
|
|
155
|
-
return current;
|
|
156
|
-
}
|
|
157
|
-
return current;
|
|
158
|
-
}, seed);
|
|
180
|
+
const result = Array.reduce(steps, seed, applyStoryStep);
|
|
159
181
|
/* eslint-enable @typescript-eslint/consistent-type-assertions */
|
|
160
182
|
const internal = toInternal(result);
|
|
161
183
|
assertAllCommandsResolved(internal.commands);
|
package/dist/update/update.d.ts
CHANGED
|
@@ -176,29 +176,26 @@ export type ChildFold<ParentModel, ParentMessage, ChildModel, Input, ChildMessag
|
|
|
176
176
|
* no second copy of the wrapper, and the mapping stays recorded on the
|
|
177
177
|
* Command for `Story.Command.resolve` and `Scene.Command.resolve`.
|
|
178
178
|
*
|
|
179
|
-
* The annotated standalone const takes both parameters, so
|
|
180
|
-
* OutMessage value
|
|
179
|
+
* The annotated standalone const takes both parameters, so pass the
|
|
180
|
+
* OutMessage value to its union matcher:
|
|
181
181
|
*
|
|
182
182
|
* ```ts
|
|
183
183
|
* const foldLoginOutMessage = (
|
|
184
184
|
* outMessage: Login.OutMessage,
|
|
185
185
|
* { liftCommand }: Update.FoldContext<Login.Message, Message>,
|
|
186
186
|
* ) =>
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
* }),
|
|
200
|
-
* }),
|
|
201
|
-
* )
|
|
187
|
+
* Login.OutMessage.match<Update.Step<Model, Message>>(outMessage, {
|
|
188
|
+
* RequestedMagicLink:
|
|
189
|
+
* ({ email }) =>
|
|
190
|
+
* model => ({
|
|
191
|
+
* model,
|
|
192
|
+
* commands: [
|
|
193
|
+
* liftCommand(
|
|
194
|
+
* Login.SendMagicLink({ email, redirectRoute: model.route }),
|
|
195
|
+
* ),
|
|
196
|
+
* ],
|
|
197
|
+
* }),
|
|
198
|
+
* })
|
|
202
199
|
* ``` */
|
|
203
200
|
export type FoldContext<ChildMessage, ParentMessage> = Readonly<{
|
|
204
201
|
liftCommand: <E = never, R = never>(command: Command<ChildMessage, E, R>) => Command<ParentMessage, E, R>;
|
|
@@ -210,9 +207,9 @@ export type FoldContext<ChildMessage, ParentMessage> = Readonly<{
|
|
|
210
207
|
* - `foldOutMessage`: folds the child's OutMessage into the parent as a
|
|
211
208
|
* {@link Step}. The Step receives the parent Model with the child
|
|
212
209
|
* already written back, and its Commands follow the child's in the
|
|
213
|
-
* returned batch. Match on the OutMessage tag
|
|
214
|
-
*
|
|
215
|
-
*
|
|
210
|
+
* returned batch. Match on the OutMessage tag through its union matcher,
|
|
211
|
+
* and build a multi-step fold with {@link combine}. Takes an optional
|
|
212
|
+
* second parameter, a
|
|
216
213
|
* {@link FoldContext} of lifters bound to `toParentMessage`, for a
|
|
217
214
|
* Command the Step returns whose result is the child's Message. Parent Model
|
|
218
215
|
* inference comes from `read` and `write`; the child wrapper and OutMessage
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/update/update.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/update/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAQ,MAAM,QAAQ,CAAA;AAEtD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,KAAK,OAAO,EAA2B,MAAM,qBAAqB,CAAA;AAE3E;;;;;;;;;UASU;AACV,MAAM,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,aAAa,CACtD,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAC3B,CAAA;AAED;;;;;;;;;;;;;;;;kCAgBkC;AAClC,MAAM,MAAM,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC;IACvD,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC/B;;iEAE6D;IAC7D,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,CAAC,CAAA;AAEF;;;;oDAIoD;AACpD,MAAM,MAAM,oBAAoB,CAC9B,KAAK,EACL,OAAO,EACP,UAAU,EACV,CAAC,GAAG,KAAK,IACP,QAAQ,CAAC;IACX,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;gEAkBgE;AAChE,eAAO,MAAM,cAAc,EAAE;IAC3B,CAAC,UAAU,EACT,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,EAC3B,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KACpC,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;IACxD,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,GAAG,KAAK,EACpC,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,EACvC,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;CAQvD,CAAA;AAED;;;2DAG2D;AAC3D,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,CAC5C,KAAK,EAAE,KAAK,KACT,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;AAE9B;;aAEa;AACb,MAAM,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,GAAG,KAAK,IAAI,CACtE,KAAK,EAAE,KAAK,KACT,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;AAExD;;;;;;;;;;;;;;;;;;;;;;;;UAwBU;AACV,eAAO,MAAM,OAAO,EAAE;IACpB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,EACxB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,GAC5C,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IAC1B,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,EACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,GAC5C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;CAc7B,CAAA;AAED;;;;;;;;;;qDAUqD;AACrD,MAAM,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC;IAClE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtD,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACxE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAA;IACrD,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;CACjC,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;UAeU;AACV,eAAO,MAAM,OAAO,GACjB,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,eACjB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAChD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAYtB,CAAA;AAEL;;;;;;;;;;;;;4EAa4E;AAC5E,MAAM,MAAM,SAAS,CACnB,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,CAAC,GAAG,KAAK,IACP,QAAQ,CAAC;IACX,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,KACT,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;IACxC,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,KAAK,WAAW,CAAA;IACtE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,aAAa,CAAA;CAC1D,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAkCU;AACV,MAAM,MAAM,WAAW,CAAC,YAAY,EAAE,aAAa,IAAI,QAAQ,CAAC;IAC9D,WAAW,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAChC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,KACjC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,YAAY,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EACjC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KACjD,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CACjD,CAAC,CAAA;AAEF;;;;;;;;;;;;;8CAa8C;AAC9C,MAAM,MAAM,uBAAuB,CACjC,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,IACnC,QAAQ,CAAC;IACX,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,KACT,oBAAoB,CACvB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,CAClB,CAAA;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,KAAK,WAAW,CAAA;IACtE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,aAAa,CAAA;IACzD,cAAc,EAAE,CACd,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,KAC9C,IAAI,CACP,OAAO,CAAC,WAAW,CAAC,EACpB,qBAAqB,EACrB,0BAA0B,CAC3B,CAAA;CACF,CAAC,CAAA;AAEF;;;;8DAI8D;AAC9D,MAAM,MAAM,oCAAoC,CAC9C,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,IACnC,QAAQ,CAAC;IACX,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,KACT,oBAAoB,CACvB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,CAClB,CAAA;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,KAAK,WAAW,CAAA;IACtE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,aAAa,CAAA;IACzD,kBAAkB,CAAC,EAAE,KAAK,CAAA;IAC1B,cAAc,EAAE,CACd,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,KAC9C,kBAAkB,CACrB,OAAO,CAAC,WAAW,CAAC,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,CAC3B,CAAA;CACF,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;qCAkBqC;AACrC,MAAM,MAAM,6BAA6B,CACvC,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,EACrC,uBAAuB,GAAG,gBAAgB,IACxC,QAAQ,CAAC;IACX,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,KACT,oBAAoB,CACvB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,CAClB,CAAA;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,KAAK,WAAW,CAAA;IACtE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,aAAa,CAAA;IACzD,kBAAkB,EAAE,CAClB,UAAU,EAAE,eAAe,KACxB,gBAAgB,GAAG,SAAS,CAAA;IACjC,cAAc,CAAC,EAAE,CACf,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,KAC9C,kBAAkB,CACrB,OAAO,CAAC,WAAW,CAAC,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,CAC3B,CAAA;CACF,CAAC,CAAA;AAwBF;;;wBAGwB;AACxB,MAAM,MAAM,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI;IAC/D,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;IACzE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;CACpD,CAAA;AAED;;;wDAGwD;AACxD,MAAM,MAAM,kBAAkB,CAC5B,WAAW,EACX,aAAa,EACb,KAAK,EACL,gBAAgB,EAChB,CAAC,GAAG,KAAK,IACP;IACF,CACE,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,KAAK,GACX,oBAAoB,CAAC,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;IACxE,CACE,KAAK,EAAE,KAAK,GACX,kBAAkB,CAAC,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;CACvE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA4DU;AACV,eAAO,MAAM,SAAS,EAAE;IACtB,CACE,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,EACrC,uBAAuB,GAAG,gBAAgB,EAE1C,SAAS,EAAE,6BAA6B,CACtC,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,CACxB,GACA,kBAAkB,CACnB,WAAW,EACX,aAAa,GAAG,qBAAqB,EACrC,KAAK,EACL,gBAAgB,GAAG,uBAAuB,EAC1C,iBAAiB,GAAG,0BAA0B,CAC/C,CAAA;IACD,CACE,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,EAErC,SAAS,EAAE,uBAAuB,CAChC,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,CACtB,GACA,IAAI,CACL,WAAW,EACX,aAAa,GAAG,qBAAqB,EACrC,KAAK,EACL,iBAAiB,GAAG,0BAA0B,CAC/C,CAAA;IACD,CACE,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,EAErC,SAAS,EAAE,oCAAoC,CAC7C,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,CACtB,GACA,kBAAkB,CACnB,WAAW,EACX,aAAa,GAAG,qBAAqB,EACrC,KAAK,EACL,gBAAgB,EAChB,iBAAiB,GAAG,0BAA0B,CAC/C,CAAA;IACD,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,GAAG,KAAK,EACrE,SAAS,EAAE,SAAS,CAClB,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,EACZ,CAAC,CACF,GACA,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;CAO9C,CAAA;AA8DD;;;;oBAIoB;AACpB,MAAM,MAAM,aAAa,CACvB,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,CAAC,GAAG,KAAK,IACP,QAAQ,CAAC;IACX,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;IACvE,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,KAAK,WAAW,CAAA;IACtE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,aAAa,CAAA;CAC1D,CAAC,CAAA;AAEF;;;;6EAI6E;AAC7E,MAAM,MAAM,2BAA2B,CACrC,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,IACnC,QAAQ,CAAC;IACX,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,KACnB,oBAAoB,CACvB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,CAClB,CAAA;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,KAAK,WAAW,CAAA;IACtE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,aAAa,CAAA;IACzD,cAAc,EAAE,CACd,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,KAC9C,IAAI,CACP,OAAO,CAAC,WAAW,CAAC,EACpB,qBAAqB,EACrB,0BAA0B,CAC3B,CAAA;CACF,CAAC,CAAA;AAEF;;uDAEuD;AACvD,MAAM,MAAM,wCAAwC,CAClD,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,IACnC,QAAQ,CAAC;IACX,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,KACnB,oBAAoB,CACvB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,CAClB,CAAA;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,KAAK,WAAW,CAAA;IACtE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,aAAa,CAAA;IACzD,kBAAkB,CAAC,EAAE,KAAK,CAAA;IAC1B,cAAc,EAAE,CACd,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,KAC9C,kBAAkB,CACrB,OAAO,CAAC,WAAW,CAAC,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,CAC3B,CAAA;CACF,CAAC,CAAA;AAEF;;;;;;;;;;;;;+CAa+C;AAC/C,MAAM,MAAM,iCAAiC,CAC3C,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,EACrC,uBAAuB,GAAG,gBAAgB,IACxC,QAAQ,CAAC;IACX,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,KACnB,oBAAoB,CACvB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,CAClB,CAAA;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,KAAK,WAAW,CAAA;IACtE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,aAAa,CAAA;IACzD,kBAAkB,EAAE,CAClB,UAAU,EAAE,eAAe,KACxB,gBAAgB,GAAG,SAAS,CAAA;IACjC,cAAc,CAAC,EAAE,CACf,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,KAC9C,kBAAkB,CACrB,OAAO,CAAC,WAAW,CAAC,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,CAC3B,CAAA;CACF,CAAC,CAAA;AAiBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAmC6C;AAC7C,eAAO,MAAM,aAAa,EAAE;IAC1B,CACE,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,EACrC,uBAAuB,GAAG,gBAAgB,EAE1C,SAAS,EAAE,iCAAiC,CAC1C,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,CACxB,GACA,kBAAkB,CACnB,WAAW,EACX,aAAa,GAAG,qBAAqB,EACrC,gBAAgB,GAAG,uBAAuB,EAC1C,iBAAiB,GAAG,0BAA0B,CAC/C,CAAA;IACD,CACE,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,EAErC,SAAS,EAAE,2BAA2B,CACpC,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,CACtB,GACA,IAAI,CACL,WAAW,EACX,aAAa,GAAG,qBAAqB,EACrC,iBAAiB,GAAG,0BAA0B,CAC/C,CAAA;IACD,CACE,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAAG,KAAK,EACzB,0BAA0B,GAAG,iBAAiB,EAC9C,qBAAqB,GAAG,aAAa,EAErC,SAAS,EAAE,wCAAwC,CACjD,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,CACtB,GACA,kBAAkB,CACnB,WAAW,EACX,aAAa,GAAG,qBAAqB,EACrC,gBAAgB,EAChB,iBAAiB,GAAG,0BAA0B,CAC/C,CAAA;IACD,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,GAAG,KAAK,EAC9D,SAAS,EAAE,aAAa,CACtB,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,CAAC,CACF,GACA,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;CAKvC,CAAA"}
|
package/dist/url/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Option, Schema
|
|
1
|
+
import { Option, Schema } from 'effect';
|
|
2
2
|
/** Schema representing a parsed URL with protocol, host, port, pathname, search, and hash fields. */
|
|
3
|
-
export declare const Url:
|
|
4
|
-
readonly protocol:
|
|
5
|
-
readonly host:
|
|
6
|
-
readonly port:
|
|
7
|
-
readonly pathname:
|
|
8
|
-
readonly search:
|
|
9
|
-
readonly hash:
|
|
3
|
+
export declare const Url: Schema.Struct<{
|
|
4
|
+
readonly protocol: Schema.String;
|
|
5
|
+
readonly host: Schema.String;
|
|
6
|
+
readonly port: Schema.Option<Schema.String>;
|
|
7
|
+
readonly pathname: Schema.String;
|
|
8
|
+
readonly search: Schema.Option<Schema.String>;
|
|
9
|
+
readonly hash: Schema.Option<Schema.String>;
|
|
10
10
|
}>;
|
|
11
11
|
export type Url = typeof Url.Type;
|
|
12
12
|
/** Parses a URL string into a `Url`, returning `Option.None` if invalid. */
|
package/dist/url/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/url/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/url/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,MAAM,EAIP,MAAM,QAAQ,CAAA;AAIf,qGAAqG;AACrG,eAAO,MAAM,GAAG;;;;;;;EAOd,CAAA;AACF,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,IAAI,CAAA;AAwFjC,4EAA4E;AAC5E,eAAO,MAAM,UAAU,QAAS,MAAM;;;;;;;EACG,CAAA;AACzC,2CAA2C;AAC3C,eAAO,MAAM,QAAQ,QAAS,GAAG,WAA0C,CAAA"}
|
package/dist/url/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Effect, Option, Schema
|
|
1
|
+
import { Effect, Option, Schema, SchemaIssue, SchemaTransformation, String, } from 'effect';
|
|
2
2
|
import { OptionExt } from '../effectExtensions/index.js';
|
|
3
3
|
/** Schema representing a parsed URL with protocol, host, port, pathname, search, and hash fields. */
|
|
4
|
-
export const Url =
|
|
5
|
-
protocol:
|
|
6
|
-
host:
|
|
7
|
-
port:
|
|
8
|
-
pathname:
|
|
9
|
-
search:
|
|
10
|
-
hash:
|
|
4
|
+
export const Url = Schema.Struct({
|
|
5
|
+
protocol: Schema.String,
|
|
6
|
+
host: Schema.String,
|
|
7
|
+
port: Schema.Option(Schema.String),
|
|
8
|
+
pathname: Schema.String,
|
|
9
|
+
search: Schema.Option(Schema.String),
|
|
10
|
+
hash: Schema.Option(Schema.String),
|
|
11
11
|
});
|
|
12
|
-
const LocationAndHref =
|
|
13
|
-
href:
|
|
14
|
-
location:
|
|
15
|
-
protocol:
|
|
16
|
-
host:
|
|
17
|
-
port:
|
|
12
|
+
const LocationAndHref = Schema.Struct({
|
|
13
|
+
href: Schema.String,
|
|
14
|
+
location: Schema.Struct({
|
|
15
|
+
protocol: Schema.String,
|
|
16
|
+
host: Schema.String,
|
|
17
|
+
port: Schema.String,
|
|
18
18
|
}),
|
|
19
19
|
});
|
|
20
|
-
const LocationAndHrefFromString =
|
|
20
|
+
const LocationAndHrefFromString = Schema.String.pipe(Schema.decodeTo(LocationAndHref, SchemaTransformation.transformOrFail({
|
|
21
21
|
decode: urlString => Effect.try({
|
|
22
22
|
try: () => {
|
|
23
23
|
const url = new URL(urlString);
|
|
@@ -39,7 +39,7 @@ const LocationAndHrefFromString = S.String.pipe(S.decodeTo(LocationAndHref, Sche
|
|
|
39
39
|
return Effect.succeed(`${location.protocol}//${location.host}${portString}${href}`);
|
|
40
40
|
},
|
|
41
41
|
})));
|
|
42
|
-
const UrlFromLocationAndHref = LocationAndHref.pipe(
|
|
42
|
+
const UrlFromLocationAndHref = LocationAndHref.pipe(Schema.decodeTo(Url, SchemaTransformation.transform({
|
|
43
43
|
decode: ({ href, location }) => {
|
|
44
44
|
const [pathAndQuery, hashPart] = String.split(href, '#');
|
|
45
45
|
const [pathname, searchPart] = String.split(pathAndQuery, '?');
|
|
@@ -72,8 +72,8 @@ const UrlFromLocationAndHref = LocationAndHref.pipe(S.decodeTo(Url, SchemaTransf
|
|
|
72
72
|
};
|
|
73
73
|
},
|
|
74
74
|
})));
|
|
75
|
-
const UrlFromString = LocationAndHrefFromString.pipe(
|
|
75
|
+
const UrlFromString = LocationAndHrefFromString.pipe(Schema.decodeTo(UrlFromLocationAndHref));
|
|
76
76
|
/** Parses a URL string into a `Url`, returning `Option.None` if invalid. */
|
|
77
|
-
export const fromString = (str) =>
|
|
77
|
+
export const fromString = (str) => Schema.decodeOption(UrlFromString)(str);
|
|
78
78
|
/** Serializes a `Url` back to a string. */
|
|
79
|
-
export const toString = (url) =>
|
|
79
|
+
export const toString = (url) => Schema.encodeSync(UrlFromString)(url);
|
package/dist/vdom.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Option } from 'effect';
|
|
|
2
2
|
import { type VNode, toVNode } from './snabbdom/index.js';
|
|
3
3
|
export type { VNode } from './snabbdom/index.js';
|
|
4
4
|
export { toVNode };
|
|
5
|
-
export declare const patch: (oldVnode: VNode | Element | DocumentFragment, vnode: VNode) => VNode;
|
|
5
|
+
export declare const patch: (oldVnode: VNode | Element | DocumentFragment, vnode: VNode, onRootPatched?: (vnode: VNode) => void) => VNode;
|
|
6
6
|
export declare const memoizedVNodes: WeakSet<VNode>;
|
|
7
7
|
/** Clones any reused vnode in the tree so snabbdom never sees one object at two
|
|
8
8
|
* positions. Memoized subtrees (createLazy/createKeyedLazy results) are left
|
|
@@ -17,5 +17,6 @@ export declare const dedupeSharedVNodes: (root: VNode, seen?: Set<object>) => VN
|
|
|
17
17
|
* the top-level pass still exempts it by membership rather than treating it as
|
|
18
18
|
* a duplicate. */
|
|
19
19
|
export declare const dedupeMemoizedResult: (root: VNode, seen?: Set<object>) => VNode;
|
|
20
|
-
export declare const __patchVNode: (maybeCurrentVNode: Option.Option<VNode>, nextVNode: VNode | null, container: HTMLElement, seen?: Set<object
|
|
20
|
+
export declare const __patchVNode: (maybeCurrentVNode: Option.Option<VNode>, nextVNode: VNode | null, container: HTMLElement, seen?: Set<object>, onRootPatched?: (vnode: VNode) => void) => VNode;
|
|
21
|
+
export declare const __recoverVNodeAfterPatchFailure: (currentVNode: VNode) => VNode;
|
|
21
22
|
//# sourceMappingURL=vdom.d.ts.map
|
package/dist/vdom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../src/vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../src/vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B,OAAO,EACL,KAAK,KAAK,EAQV,OAAO,EACR,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,CAAA;AASlB,eAAO,MAAM,KAAK,+GAQhB,CAAA;AAsBF,eAAO,MAAM,cAAc,gBAAuB,CAAA;AA2ClD;;;;mBAImB;AACnB,eAAO,MAAM,kBAAkB,SACvB,KAAK,SACL,GAAG,CAAC,MAAM,CAAC,KAChB,KAA0B,CAAA;AAE7B;;;;;mBAKmB;AACnB,eAAO,MAAM,oBAAoB,SACzB,KAAK,SACL,GAAG,CAAC,MAAM,CAAC,KAChB,KAMF,CAAA;AAwBD,eAAO,MAAM,YAAY,sBACJ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAC5B,KAAK,GAAG,IAAI,aACZ,WAAW,SACf,GAAG,CAAC,MAAM,CAAC,kBACF,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KACrC,KASF,CAAA;AAED,eAAO,MAAM,+BAA+B,iBAAkB,KAAK,KAAG,KAOrE,CAAA"}
|