@effect-app/vue 0.86.2 → 0.87.0-next.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @effect-app/vue
2
2
 
3
+ ## 0.87.0-next.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [bd2130b]
8
+ - @effect-app/prelude@0.107.0-next.1
9
+ - @effect-app/schema@0.150.0-next.1
10
+ - @effect-app/vue@0.87.0-next.1
11
+
12
+ ## 0.87.0-next.0
13
+
14
+ ### Minor Changes
15
+
16
+ - 87a6ac2: update packages
17
+
18
+ ### Patch Changes
19
+
20
+ - Updated dependencies [87a6ac2]
21
+ - @effect-app/prelude@0.107.0-next.0
22
+ - @effect-app/schema2@0.1.0-next.0
23
+ - @effect-app/core@0.97.0-next.0
24
+ - @effect-app/vue@0.87.0-next.0
25
+
3
26
  ## 0.86.2
4
27
 
5
28
  ### Patch Changes
@@ -9,9 +9,9 @@ exports.parseRouteParams = parseRouteParams;
9
9
  exports.parseRouteParamsOption = parseRouteParamsOption;
10
10
  var tsplus_module_1 = _interopRequireWildcard(require("effect/Option"));
11
11
  var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/core/Function"));
12
- var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Option"));
13
- var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/prelude/utils"));
14
- var _schema = require("@effect-app/prelude/schema");
12
+ var tsplus_module_3 = _interopRequireWildcard(require("@effect/schema/Parser"));
13
+ var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/Option"));
14
+ var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/prelude/utils"));
15
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
17
  function getQueryParam(search, param) {
@@ -23,18 +23,18 @@ function getQueryParam(search, param) {
23
23
  }
24
24
  const getQueryParamO = exports.getQueryParamO = tsplus_module_2.flow(getQueryParam, tsplus_module_1.fromNullable);
25
25
  const parseOpt = t => {
26
- const dec = tsplus_module_2.flow((0, _schema.EParserFor)(t), x => x.effect._tag === "Right" ? x.effect.right[1]._tag === "None" ? tsplus_module_1.some(x.effect.right[0]) : tsplus_module_3.none : tsplus_module_3.none);
26
+ const dec = tsplus_module_2.flow(tsplus_module_3.parseEither(t), x => x._tag === "Right" ? tsplus_module_1.some(x.right) : tsplus_module_4.none);
27
27
  return dec;
28
28
  };
29
29
  exports.parseOpt = parseOpt;
30
30
  const parseOptUnknown = t => {
31
- const dec = tsplus_module_2.flow(_schema.Parser.for(t), x => x.effect._tag === "Right" ? x.effect.right[1]._tag === "None" ? tsplus_module_1.some(x.effect.right[0]) : tsplus_module_3.none : tsplus_module_3.none);
31
+ const dec = tsplus_module_2.flow(tsplus_module_3.parseEither(t), x => x._tag === "Right" ? tsplus_module_1.some(x.right) : tsplus_module_4.none);
32
32
  return dec;
33
33
  };
34
34
  exports.parseOptUnknown = parseOptUnknown;
35
35
  function parseRouteParamsOption(query, t // enforce non empty
36
36
  ) {
37
- return tsplus_module_4.RecordKeys(tsplus_module_4.object$(t)).reduce((prev, cur) => {
37
+ return tsplus_module_5.RecordKeys(tsplus_module_5.object$(t)).reduce((prev, cur) => {
38
38
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
39
39
  prev[cur] = tsplus_module_1.flatMap(getQueryParamO(query, cur), parseOpt(t[cur]));
40
40
  return prev;
@@ -42,9 +42,9 @@ function parseRouteParamsOption(query, t // enforce non empty
42
42
  }
43
43
  function parseRouteParams(query, t // enforce non empty
44
44
  ) {
45
- return tsplus_module_4.RecordKeys(tsplus_module_4.object$(t)).reduce((prev, cur) => {
45
+ return tsplus_module_5.RecordKeys(tsplus_module_5.object$(t)).reduce((prev, cur) => {
46
46
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
47
- prev[cur] = (0, _schema.unsafe)((0, _schema.EParserFor)(t[cur]))(query[cur]);
47
+ prev[cur] = tsplus_module_3.parseSync(t[cur])(query[cur]);
48
48
  return prev;
49
49
  }, {});
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"routeParams.cjs","names":["_schema","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","getQueryParam","search","param","v","Array","isArray","getQueryParamO","exports","tsplus_module_2","flow","tsplus_module_1","fromNullable","parseOpt","dec","EParserFor","x","effect","_tag","right","some","tsplus_module_3","none","parseOptUnknown","Parser","for","parseRouteParamsOption","query","tsplus_module_4","RecordKeys","object$","reduce","prev","cur","flatMap","parseRouteParams","unsafe"],"sources":["../_src/routeParams.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"routeParams.cjs","names":["getQueryParam","search","param","v","Array","isArray","getQueryParamO","exports","tsplus_module_2","flow","tsplus_module_1","fromNullable","parseOpt","t","dec","tsplus_module_3","parseEither","x","_tag","some","right","tsplus_module_4","none","parseOptUnknown","parseRouteParamsOption","query","tsplus_module_5","RecordKeys","object$","reduce","prev","cur","flatMap","parseRouteParams","parseSync"],"sources":["../_src/routeParams.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;AAGM,SAAUA,aAAaA,CAACC,MAAmB,EAAEC,KAAa;EAC9D,MAAMC,CAAC,GAAGF,MAAM,CAACC,KAAK,CAAC;EACvB,IAAIE,KAAK,CAACC,OAAO,CAACF,CAAC,CAAC,EAAE;IACpB,OAAOA,CAAC,CAAC,CAAC,CAAC;EACb;EACA,OAAOA,CAAC,IAAI,IAAI;AAClB;AAEO,MAAMG,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAGE,eAAA,CAAAC,IAAI,CAACT,aAAa,EAAAU,eAAA,CAAAC,YAAA,CAAsB;AAE/D,MAAMC,QAAQ,GAAUC,CAAoB,IAAI;EACrD,MAAMC,GAAG,GAAGN,eAAA,CAAAC,IAAI,CAAAM,eAAA,CAAAC,WAAA,CAACH,CAAC,GAAeI,CAAC,IAChCA,CAAC,CAACC,IAAI,KAAK,OAAO,GACdR,eAAA,CAAAS,IAAA,CAAOF,CAAC,CAACG,KAAK,CAAC,GAChBC,eAAA,CAAAC,IAAY,CAAC;EAClB,OAAOR,GAAG;AACZ,CAAC;AAAAP,OAAA,CAAAK,QAAA,GAAAA,QAAA;AAEM,MAAMW,eAAe,GAAUV,CAAoB,IAAI;EAC5D,MAAMC,GAAG,GAAGN,eAAA,CAAAC,IAAI,CAAAM,eAAA,CAAAC,WAAA,CAACH,CAAC,GAAeI,CAAC,IAChCA,CAAC,CAACC,IAAI,KAAK,OAAO,GACdR,eAAA,CAAAS,IAAA,CAAOF,CAAC,CAACG,KAAK,CAAC,GAChBC,eAAA,CAAAC,IAAY,CAAC;EAClB,OAAOR,GAAG;AACZ,CAAC;AAAAP,OAAA,CAAAgB,eAAA,GAAAA,eAAA;AAEK,SAAUC,sBAAsBA,CACpCC,KAA0B,EAC1BZ,CAAM,CAAC;AAAA,E;EAIP,OAAOa,eAAA,CAAAC,UAAA,CAAAD,eAAA,CAAAE,OAAA,CAAAf,CAAC,GAASgB,MAAM,CACrB,CAACC,IAAI,EAAEC,GAAG,KAAI;IACZ;IACAD,IAAI,CAACC,GAAG,CAAC,GAAGrB,eAAA,CAAAsB,OAAA,CAAA1B,cAAc,CAACmB,KAAK,EAAEM,GAAa,CAAC,EAASnB,QAAQ,CAACC,CAAC,CAACkB,GAAG,CAAE,CAAC,CAAC;IAE3E,OAAOD,IAAI;EACb,CAAC,EACD,EAEC,CACF;AACH;AAEM,SAAUG,gBAAgBA,CAC9BR,KAA0B,EAC1BZ,CAAM,CAAC;AAAA,E;EAIP,OAAOa,eAAA,CAAAC,UAAA,CAAAD,eAAA,CAAAE,OAAA,CAAAf,CAAC,GAASgB,MAAM,CACrB,CAACC,IAAI,EAAEC,GAAG,KAAI;IACZ;IACAD,IAAI,CAACC,GAAG,CAAC,GAAGhB,eAAA,CAAAmB,SAAA,CAAArB,CAAC,CAACkB,GAAG,CAAE,EAAWN,KAAK,CAACM,GAAU,CAAC,CAAC;IAEhD,OAAOD,IAAI;EACb,CAAC,EACD,EAEC,CACF;AACH"}
@@ -1,6 +1,8 @@
1
- import { drawError, getMetadataFromSchemaOrProp, isSchema, Parser, These, unsafe } from "@effect-app/prelude/schema"
2
- import type { AnyField, Field, FieldRecord, From, SchemaAny, To } from "@effect-app/prelude/schema"
1
+ import { type drawError, type Field, getMetadataFromSchemaOrProp } from "@effect-app/prelude/schema"
2
+ import type { AnyField, FromStruct, Schema, StructFields, To, ToStruct } from "@effect-app/schema"
3
+ import { AST } from "@effect-app/schema/schema"
3
4
  import { createIntl, type IntlFormatters } from "@formatjs/intl"
5
+ import type { Simplify } from "effect/Types"
4
6
  import type { Ref } from "vue"
5
7
  import { capitalize, ref, watch } from "vue"
6
8
 
@@ -18,7 +20,7 @@ export function convertOut(v: string, set: (v: unknown | null) => void, type?: "
18
20
  return set(convertOutInt(v, type))
19
21
  }
20
22
 
21
- export function buildFieldInfoFromFields<Fields extends FieldRecord>(
23
+ export function buildFieldInfoFromFields<Fields extends StructFields>(
22
24
  fields: Fields
23
25
  ) {
24
26
  return fields.$$.keys.reduce(
@@ -28,8 +30,8 @@ export function buildFieldInfoFromFields<Fields extends FieldRecord>(
28
30
  },
29
31
  {} as {
30
32
  [K in keyof Fields]: FieldInfo<
31
- From<GetSchemaFromProp<Fields[K]>>,
32
- To<GetSchemaFromProp<Fields[K]>>
33
+ Schema.From<GetSchemaFromProp<Fields[K]>>,
34
+ Schema.To<GetSchemaFromProp<Fields[K]>>
33
35
  >
34
36
  }
35
37
  )
@@ -61,17 +63,19 @@ type GetSchemaFromProp<T> = T extends Field<infer S, any, any, any> ? S
61
63
 
62
64
  const defaultIntl = createIntl({ locale: "en" })
63
65
  export const translate = ref<IntlFormatters["formatMessage"]>(defaultIntl.formatMessage.bind(defaultIntl))
64
- export const customSchemaErrors = ref<Map<SchemaAny, (message: string, e: unknown, v: unknown) => string>>(new Map())
66
+ export const customSchemaErrors = ref<Map<Schema<any, any>, (message: string, e: unknown, v: unknown) => string>>(
67
+ new Map()
68
+ )
65
69
 
66
70
  function buildFieldInfo(
67
- propOrSchema: AnyField | SchemaAny,
71
+ propOrSchema: Schema<any, any>,
68
72
  fieldKey: PropertyKey
69
73
  ): FieldInfo<any, any> {
70
- const metadata = getMetadataFromSchemaOrProp(propOrSchema)
71
- const schema = isSchema(propOrSchema) ? propOrSchema : propOrSchema._schema
72
- const parse = Parser.for(schema)
74
+ const metadata = getMetadataFromSchemaOrProp(propOrSchema) // TODO
75
+ const schema = propOrSchema
76
+ const parse = schema.parseEither
73
77
 
74
- const nullable = Schema.findAnnotation(schema, Schema.nullableIdentifier)
78
+ const nullable = AST.isUnion(schema.ast) && schema.ast.types.includes(Schema2.null.ast)
75
79
 
76
80
  function renderError(e: any, v: unknown) {
77
81
  const err = drawError(e)
@@ -136,7 +140,6 @@ function buildFieldInfo(
136
140
  const parseRule = (v: unknown) =>
137
141
  pipe(
138
142
  parse(v),
139
- These.result,
140
143
  (_) =>
141
144
  _.match(
142
145
  {
@@ -184,24 +187,18 @@ function buildFieldInfo(
184
187
  }
185
188
 
186
189
  export const buildFormFromSchema = <
187
- To,
188
- From,
189
- ConstructorInput,
190
- Fields extends FieldRecord,
190
+ Fields extends StructFields,
191
191
  OnSubmitA
192
192
  >(
193
- s: Schema.Schema<
194
- unknown,
195
- To,
196
- ConstructorInput,
197
- From,
198
- { fields: Fields }
193
+ s: Schema<
194
+ Simplify<FromStruct<Fields>>,
195
+ Simplify<ToStruct<Fields>>
199
196
  >,
200
- state: Ref<From>,
201
- onSubmit: (a: To) => Promise<OnSubmitA>
197
+ state: Ref<FromStruct<Fields>>,
198
+ onSubmit: (a: ToStruct<Fields>) => Promise<OnSubmitA>
202
199
  ) => {
203
200
  const fields = buildFieldInfoFromFields(s.Api.fields)
204
- const parse = unsafe(Schema.Parser.for(s))
201
+ const parse = s.parseSync
205
202
  const isDirty = ref(false)
206
203
  const isValid = ref(true)
207
204
 
@@ -1,5 +1,4 @@
1
- import type { ReqRes, SchemaAny, To } from "@effect-app/prelude/schema"
2
- import { EParserFor, Parser, unsafe } from "@effect-app/prelude/schema"
1
+ import type { REST, Schema } from "@effect-app/prelude/schema"
3
2
  import type { ParsedQuery } from "query-string"
4
3
 
5
4
  export function getQueryParam(search: ParsedQuery, param: string) {
@@ -12,31 +11,27 @@ export function getQueryParam(search: ParsedQuery, param: string) {
12
11
 
13
12
  export const getQueryParamO = flow(getQueryParam, Option.fromNullable)
14
13
 
15
- export const parseOpt = <E, A>(t: ReqRes<E, A>) => {
16
- const dec = flow(EParserFor(t), (x) =>
17
- x.effect._tag === "Right"
18
- ? x.effect.right[1]._tag === "None"
19
- ? Option(x.effect.right[0])
20
- : Option.none
14
+ export const parseOpt = <E, A>(t: REST.ReqRes<E, A>) => {
15
+ const dec = flow(t.parseEither, (x) =>
16
+ x._tag === "Right"
17
+ ? Option(x.right)
21
18
  : Option.none)
22
19
  return dec
23
20
  }
24
21
 
25
- export const parseOptUnknown = <E, A>(t: ReqRes<E, A>) => {
26
- const dec = flow(Parser.for(t), (x) =>
27
- x.effect._tag === "Right"
28
- ? x.effect.right[1]._tag === "None"
29
- ? Option(x.effect.right[0])
30
- : Option.none
22
+ export const parseOptUnknown = <E, A>(t: REST.ReqRes<E, A>) => {
23
+ const dec = flow(t.parseEither, (x) =>
24
+ x._tag === "Right"
25
+ ? Option(x.right)
31
26
  : Option.none)
32
27
  return dec
33
28
  }
34
29
 
35
- export function parseRouteParamsOption<NER extends Record<string, SchemaAny>>(
30
+ export function parseRouteParamsOption<NER extends Record<string, Schema<any, any>>>(
36
31
  query: Record<string, any>,
37
32
  t: NER // enforce non empty
38
33
  ): {
39
- [K in keyof NER]: Option<To<NER[K]>>
34
+ [K in keyof NER]: Option<Schema.To<NER[K]>>
40
35
  } {
41
36
  return t.$$.keys.reduce(
42
37
  (prev, cur) => {
@@ -46,26 +41,26 @@ export function parseRouteParamsOption<NER extends Record<string, SchemaAny>>(
46
41
  return prev
47
42
  },
48
43
  {} as {
49
- [K in keyof NER]: Option<To<NER[K]>>
44
+ [K in keyof NER]: Option<Schema.To<NER[K]>>
50
45
  }
51
46
  )
52
47
  }
53
48
 
54
- export function parseRouteParams<NER extends Record<string, SchemaAny>>(
49
+ export function parseRouteParams<NER extends Record<string, Schema<any, any>>>(
55
50
  query: Record<string, any>,
56
51
  t: NER // enforce non empty
57
52
  ): {
58
- [K in keyof NER]: To<NER[K]>
53
+ [K in keyof NER]: Schema.To<NER[K]>
59
54
  } {
60
55
  return t.$$.keys.reduce(
61
56
  (prev, cur) => {
62
57
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
63
- prev[cur] = unsafe(EParserFor(t[cur]!))(query[cur as any])
58
+ prev[cur] = t[cur]!.parseSync(query[cur as any])
64
59
 
65
60
  return prev
66
61
  },
67
62
  {} as {
68
- [K in keyof NER]: To<NER[K]>
63
+ [K in keyof NER]: Schema.To<NER[K]>
69
64
  }
70
65
  )
71
66
  }
@@ -1,15 +1,14 @@
1
1
  import { Option } from "@effect-app/core/Option";
2
- import type { ReqRes, SchemaAny, To } from "@effect-app/prelude/schema";
3
- import { Parser } from "@effect-app/prelude/schema";
2
+ import type { REST, Schema } from "@effect-app/prelude/schema";
4
3
  import type { ParsedQuery } from "query-string";
5
4
  export declare function getQueryParam(search: ParsedQuery, param: string): string | null | undefined;
6
5
  export declare const getQueryParamO: (search: ParsedQuery, param: string) => import("effect/Option").Option<string>;
7
- export declare const parseOpt: <E, A>(t: ReqRes<E, A>) => (u: E, env?: Parser.ParserEnv | undefined) => import("effect/Option").None<A> | import("effect/Option").Some<A>;
8
- export declare const parseOptUnknown: <E, A>(t: ReqRes<E, A>) => (u: unknown, env?: Parser.ParserEnv | undefined) => import("effect/Option").None<A> | import("effect/Option").Some<A>;
9
- export declare function parseRouteParamsOption<NER extends Record<string, SchemaAny>>(query: Record<string, any>, t: NER): {
10
- [K in keyof NER]: Option<To<NER[K]>>;
6
+ export declare const parseOpt: <E, A>(t: REST.ReqRes<E, A>) => (i: unknown, options?: import("@effect/schema/AST").ParseOptions | undefined) => import("effect/Option").None<A> | import("effect/Option").Some<A>;
7
+ export declare const parseOptUnknown: <E, A>(t: REST.ReqRes<E, A>) => (i: unknown, options?: import("@effect/schema/AST").ParseOptions | undefined) => import("effect/Option").None<A> | import("effect/Option").Some<A>;
8
+ export declare function parseRouteParamsOption<NER extends Record<string, Schema<any, any>>>(query: Record<string, any>, t: NER): {
9
+ [K in keyof NER]: Option<Schema.To<NER[K]>>;
11
10
  };
12
- export declare function parseRouteParams<NER extends Record<string, SchemaAny>>(query: Record<string, any>, t: NER): {
13
- [K in keyof NER]: To<NER[K]>;
11
+ export declare function parseRouteParams<NER extends Record<string, Schema<any, any>>>(query: Record<string, any>, t: NER): {
12
+ [K in keyof NER]: Schema.To<NER[K]>;
14
13
  };
15
14
  //# sourceMappingURL=routeParams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routeParams.d.ts","sourceRoot":"","sources":["../_src/routeParams.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAc,MAAM,EAAU,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,6BAM/D;AAED,eAAO,MAAM,cAAc,gFAA2C,CAAA;AAEtE,eAAO,MAAM,QAAQ,4IAQpB,CAAA;AAED,eAAO,MAAM,eAAe,kJAQ3B,CAAA;AAED,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC1E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,CAAC,EAAE,GAAG,GACL;KACA,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACrC,CAYA;AAED,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACpE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,CAAC,EAAE,GAAG,GACL;KACA,CAAC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC7B,CAYA"}
1
+ {"version":3,"file":"routeParams.d.ts","sourceRoot":"","sources":["../_src/routeParams.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,6BAM/D;AAED,eAAO,MAAM,cAAc,gFAA2C,CAAA;AAEtE,eAAO,MAAM,QAAQ,YAAa,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,uJAMlD,CAAA;AAED,eAAO,MAAM,eAAe,YAAa,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,uJAMzD,CAAA;AAED,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EACjF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,CAAC,EAAE,GAAG,GACL;KACA,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5C,CAYA;AAED,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAC3E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,CAAC,EAAE,GAAG,GACL;KACA,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpC,CAYA"}
@@ -1,8 +1,8 @@
1
1
  import * as tsplus_module_1 from "effect/Option";
2
2
  import * as tsplus_module_2 from "@effect-app/core/Function";
3
- import * as tsplus_module_3 from "@effect-app/core/Option";
4
- import * as tsplus_module_4 from "@effect-app/prelude/utils";
5
- import { EParserFor, Parser, unsafe } from "@effect-app/prelude/schema";
3
+ import * as tsplus_module_3 from "@effect/schema/Parser";
4
+ import * as tsplus_module_4 from "@effect-app/core/Option";
5
+ import * as tsplus_module_5 from "@effect-app/prelude/utils";
6
6
  export function getQueryParam(search, param) {
7
7
  const v = search[param];
8
8
  if (Array.isArray(v)) {
@@ -12,24 +12,20 @@ export function getQueryParam(search, param) {
12
12
  }
13
13
  export const getQueryParamO = tsplus_module_2.flow(getQueryParam, tsplus_module_1.fromNullable);
14
14
  export const parseOpt = (t) => {
15
- const dec = tsplus_module_2.flow(EParserFor(t), (x) => x.effect._tag === "Right"
16
- ? x.effect.right[1]._tag === "None"
17
- ? tsplus_module_1.some(x.effect.right[0])
18
- : tsplus_module_3.none
19
- : tsplus_module_3.none);
15
+ const dec = tsplus_module_2.flow(tsplus_module_3.parseEither(t), (x) => x._tag === "Right"
16
+ ? tsplus_module_1.some(x.right)
17
+ : tsplus_module_4.none);
20
18
  return dec;
21
19
  };
22
20
  export const parseOptUnknown = (t) => {
23
- const dec = tsplus_module_2.flow(Parser.for(t), (x) => x.effect._tag === "Right"
24
- ? x.effect.right[1]._tag === "None"
25
- ? tsplus_module_1.some(x.effect.right[0])
26
- : tsplus_module_3.none
27
- : tsplus_module_3.none);
21
+ const dec = tsplus_module_2.flow(tsplus_module_3.parseEither(t), (x) => x._tag === "Right"
22
+ ? tsplus_module_1.some(x.right)
23
+ : tsplus_module_4.none);
28
24
  return dec;
29
25
  };
30
26
  export function parseRouteParamsOption(query, t // enforce non empty
31
27
  ) {
32
- return tsplus_module_4.RecordKeys(tsplus_module_4.object$(t)).reduce((prev, cur) => {
28
+ return tsplus_module_5.RecordKeys(tsplus_module_5.object$(t)).reduce((prev, cur) => {
33
29
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
34
30
  prev[cur] = tsplus_module_1.flatMap(getQueryParamO(query, cur), parseOpt(t[cur]));
35
31
  return prev;
@@ -37,10 +33,10 @@ export function parseRouteParamsOption(query, t // enforce non empty
37
33
  }
38
34
  export function parseRouteParams(query, t // enforce non empty
39
35
  ) {
40
- return tsplus_module_4.RecordKeys(tsplus_module_4.object$(t)).reduce((prev, cur) => {
36
+ return tsplus_module_5.RecordKeys(tsplus_module_5.object$(t)).reduce((prev, cur) => {
41
37
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
42
- prev[cur] = unsafe(EParserFor(t[cur]))(query[cur]);
38
+ prev[cur] = tsplus_module_3.parseSync(t[cur])(query[cur]);
43
39
  return prev;
44
40
  }, {});
45
41
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVQYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL3JvdXRlUGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUd2RSxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQW1CLEVBQUUsS0FBYTtJQUM5RCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFBO0FBQ2xCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsZ0JBQUEsSUFBSSxDQUFDLGFBQWEsK0JBQXNCLENBQUE7QUFFdEUsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQU8sQ0FBZSxFQUFFLEVBQUU7SUFDaEQsTUFBTSxHQUFHLEdBQUcsZ0JBQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU87UUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNO1lBQ2pDLENBQUMsQ0FBQyxxQkFBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixDQUFDLHFCQUFZO1FBQ2YsQ0FBQyxxQkFBWSxDQUFDLENBQUE7SUFDbEIsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBTyxDQUFlLEVBQUUsRUFBRTtJQUN2RCxNQUFNLEdBQUcsR0FBRyxnQkFBQSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU87UUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNO1lBQ2pDLENBQUMsQ0FBQyxxQkFBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixDQUFDLHFCQUFZO1FBQ2YsQ0FBQyxxQkFBWSxDQUFDLENBQUE7SUFDbEIsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDLENBQUE7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLEtBQTBCLEVBQzFCLENBQU0sQ0FBQyxvQkFBb0I7O0lBSTNCLE9BQU8sbURBQUEsQ0FBQyxHQUFTLE1BQU0sQ0FDckIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDWixvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLHdCQUFBLGNBQWMsQ0FBQyxLQUFLLEVBQUUsR0FBYSxDQUFDLEVBQVMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUUsQ0FBQyxDQUFDLENBQUE7UUFFM0UsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDLEVBQ0QsRUFFQyxDQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixLQUEwQixFQUMxQixDQUFNLENBQUMsb0JBQW9COztJQUkzQixPQUFPLG1EQUFBLENBQUMsR0FBUyxNQUFNLENBQ3JCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ1osb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQVUsQ0FBQyxDQUFDLENBQUE7UUFFMUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDLEVBQ0QsRUFFQyxDQUNGLENBQUE7QUFDSCxDQUFDIn0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVQYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL3JvdXRlUGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFtQixFQUFFLEtBQWE7SUFDOUQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2IsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQTtBQUNsQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGdCQUFBLElBQUksQ0FBQyxhQUFhLCtCQUFzQixDQUFBO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFPLENBQW9CLEVBQUUsRUFBRTtJQUNyRCxNQUFNLEdBQUcsR0FBRyxnQkFBQSxJQUFJLDZCQUFDLENBQUMsR0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3BDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTztRQUNoQixDQUFDLENBQUMscUJBQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDLHFCQUFZLENBQUMsQ0FBQTtJQUNsQixPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFPLENBQW9CLEVBQUUsRUFBRTtJQUM1RCxNQUFNLEdBQUcsR0FBRyxnQkFBQSxJQUFJLDZCQUFDLENBQUMsR0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3BDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTztRQUNoQixDQUFDLENBQUMscUJBQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDLHFCQUFZLENBQUMsQ0FBQTtJQUNsQixPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMsQ0FBQTtBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsS0FBMEIsRUFDMUIsQ0FBTSxDQUFDLG9CQUFvQjs7SUFJM0IsT0FBTyxtREFBQSxDQUFDLEdBQVMsTUFBTSxDQUNyQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNaLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsd0JBQUEsY0FBYyxDQUFDLEtBQUssRUFBRSxHQUFhLENBQUMsRUFBUyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsQ0FBQTtRQUUzRSxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFDRCxFQUVDLENBQ0YsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQTBCLEVBQzFCLENBQU0sQ0FBQyxvQkFBb0I7O0lBSTNCLE9BQU8sbURBQUEsQ0FBQyxHQUFTLE1BQU0sQ0FDckIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDWixvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLDBCQUFBLENBQUMsQ0FBQyxHQUFHLENBQUUsRUFBVyxLQUFLLENBQUMsR0FBVSxDQUFDLENBQUMsQ0FBQTtRQUVoRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFDRCxFQUVDLENBQ0YsQ0FBQTtBQUNILENBQUMifQ==
package/package.json CHANGED
@@ -1,20 +1,21 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "0.86.2",
3
+ "version": "0.87.0-next.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@effect/platform-browser": "^0.25.0",
8
+ "@effect/schema": "^0.56.1",
8
9
  "@fp-ts/optic": "^0.21.0",
9
10
  "@formatjs/intl": "^2.9.9",
10
11
  "effect": "^2.0.0-next.62",
11
12
  "query-string": "^8.1.0",
12
13
  "swrv": "^1.0.4",
13
14
  "vue": "^3.3.13",
14
- "@effect-app/prelude": "0.106.1",
15
- "@effect-app/core": "0.96.1",
16
- "@effect-app/schema": "0.90.1",
17
- "@effect-app/vue": "0.86.2"
15
+ "@effect-app/prelude": "0.107.0-next.1",
16
+ "@effect-app/schema": "0.150.0-next.1",
17
+ "@effect-app/vue": "0.87.0-next.1",
18
+ "@effect-app/core": "0.97.0-next.0"
18
19
  },
19
20
  "devDependencies": {
20
21
  "@rollup/pluginutils": "^5.1.0",
@@ -25,7 +26,7 @@
25
26
  "typescript": "npm:@effect-app/typescript@5.4.0-tsplus.202311222",
26
27
  "vite": "^5.0.10",
27
28
  "vitest": "^1.1.0",
28
- "@effect-app/compiler": "0.47.1"
29
+ "@effect-app/compiler": "0.48.0-next.0"
29
30
  },
30
31
  "typesVersions": {
31
32
  "*": {
@@ -55,16 +56,6 @@
55
56
  "default": "./_cjs/_global.cjs"
56
57
  }
57
58
  },
58
- "./form": {
59
- "import": {
60
- "types": "./dist/form.d.ts",
61
- "default": "./dist/form.js"
62
- },
63
- "require": {
64
- "types": "./dist/form.d.ts",
65
- "default": "./_cjs/form.cjs"
66
- }
67
- },
68
59
  "./hooks": {
69
60
  "import": {
70
61
  "types": "./dist/hooks.d.ts",
package/tsconfig.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "strict": true,
4
4
  "allowUnusedLabels": false,
5
5
  "allowUnreachableCode": false,
6
- "exactOptionalPropertyTypes": false,
6
+ "exactOptionalPropertyTypes": true,
7
7
  "noFallthroughCasesInSwitch": true,
8
8
  "noImplicitOverride": true,
9
9
  "noImplicitReturns": false,
@@ -43,6 +43,7 @@
43
43
  "./node_modules/@effect-app/core/vendor/effect-stm-tsplus.json",
44
44
  "./node_modules/@effect-app/core/vendor/effect-stream-tsplus.json",
45
45
  "./node_modules/@effect-app/core/vendor/fp-ts-optic-tsplus.json",
46
+ "./node_modules/@effect-app/core/vendor/effect-schema-tsplus.json",
46
47
  "./node_modules/@effect-app/core/vendor/effect-platform-tsplus.json"
47
48
  ],
48
49
  "plugins": [
package/_cjs/form.cjs DELETED
@@ -1,142 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.buildFieldInfoFromFields = buildFieldInfoFromFields;
7
- exports.buildFormFromSchema = void 0;
8
- exports.convertIn = convertIn;
9
- exports.convertOut = convertOut;
10
- exports.convertOutInt = convertOutInt;
11
- exports.translate = exports.customSchemaErrors = void 0;
12
- var tsplus_module_1 = _interopRequireWildcard(require("@effect-app/prelude/utils"));
13
- var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/prelude"));
14
- var tsplus_module_3 = _interopRequireWildcard(require("effect/Option"));
15
- var tsplus_module_4 = _interopRequireWildcard(require("effect/Either"));
16
- var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/Function"));
17
- var _schema = require("@effect-app/prelude/schema");
18
- var _intl = require("@formatjs/intl");
19
- var _vue = require("vue");
20
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
- function convertIn(v, type) {
23
- return v === null ? "" : type === "text" ? v : `${v}`;
24
- }
25
- function convertOutInt(v, type) {
26
- v = v == null ? v : v.trim();
27
- const c = v === "" ? null : type === "float" ? parseFloat(v) : type === "int" ? parseInt(v) : v;
28
- return c;
29
- }
30
- function convertOut(v, set, type) {
31
- return set(convertOutInt(v, type));
32
- }
33
- function buildFieldInfoFromFields(fields) {
34
- return tsplus_module_1.RecordKeys(tsplus_module_1.object$(fields)).reduce((prev, cur) => {
35
- prev[cur] = buildFieldInfo(fields[cur], cur);
36
- return prev;
37
- }, {});
38
- }
39
- const f = Symbol();
40
- class PhantomTypeParameter {}
41
- const defaultIntl = (0, _intl.createIntl)({
42
- locale: "en"
43
- });
44
- const translate = exports.translate = (0, _vue.ref)(defaultIntl.formatMessage.bind(defaultIntl));
45
- const customSchemaErrors = exports.customSchemaErrors = (0, _vue.ref)(new Map());
46
- function buildFieldInfo(propOrSchema, fieldKey) {
47
- const metadata = (0, _schema.getMetadataFromSchemaOrProp)(propOrSchema);
48
- const schema = (0, _schema.isSchema)(propOrSchema) ? propOrSchema : propOrSchema._schema;
49
- const parse = _schema.Parser.for(schema);
50
- const nullable = tsplus_module_2.Schema.findAnnotation(schema, tsplus_module_2.Schema.nullableIdentifier);
51
- function renderError(e, v) {
52
- const err = (0, _schema.drawError)(e);
53
- const custom = customSchemaErrors.value.get(schema) ?? (nullable?.self ? customSchemaErrors.value.get(nullable.self) : undefined);
54
- return custom ? custom(err, e, v) : translate.value({
55
- defaultMessage: "The entered value is not a valid {type}: {message}",
56
- id: "validation.not_a_valid"
57
- }, {
58
- type: translate.value({
59
- defaultMessage: (0, _vue.capitalize)(fieldKey.toString()),
60
- id: `fieldNames.${String(fieldKey)}`
61
- }),
62
- message: err.slice(err.indexOf("expected")) // TODO: this is not translated.
63
- });
64
- }
65
- const stringRules = [v => v === null || metadata.minLength === undefined || v.length >= metadata.minLength || translate.value({
66
- defaultMessage: "The field requires at least {minLength} characters",
67
- id: "validation.string.minLength"
68
- }, {
69
- minLength: metadata.minLength
70
- }), v => v === null || metadata.maxLength === undefined || v.length <= metadata.maxLength || translate.value({
71
- defaultMessage: "The field cannot have more than {maxLength} characters",
72
- id: "validation.string.maxLength"
73
- }, {
74
- maxLength: metadata.maxLength
75
- })];
76
- const numberRules = [v => v === null || metadata.minimum === undefined || metadata.minimumExclusive && v > metadata.minimum || !metadata.minimumExclusive && v >= metadata.minimum || translate.value({
77
- defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
78
- id: "validation.number.min"
79
- }, {
80
- isExclusive: metadata.minimumExclusive,
81
- minimum: metadata.minimum
82
- }), v => v === null || metadata.maximum === undefined || metadata.maximumExclusive && v < metadata.maximum || !metadata.maximumExclusive && v <= metadata.maximum || translate.value({
83
- defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
84
- id: "validation.number.max"
85
- }, {
86
- isExclusive: metadata.maximumExclusive,
87
- maximum: metadata.maximum
88
- })];
89
- const parseRule = v => tsplus_module_5.pipe(parse(v), _schema.These.result, _ => tsplus_module_4.match(_, {
90
- onLeft: _ => renderError(_, v),
91
- onRight: ([_, optErr]) => tsplus_module_3.isSome(optErr) ? renderError(optErr.value, v) : true
92
- }));
93
- const rules = [...(metadata.type === "text" ? stringRules : numberRules), parseRule];
94
- const info = {
95
- type: metadata.type,
96
- rules: [v => !metadata.required || v !== "" || translate.value({
97
- defaultMessage: "The field cannot be empty",
98
- id: "validation.empty"
99
- }), v => {
100
- const converted = convertOutInt(v, metadata.type);
101
- for (const r of rules) {
102
- const res = r(converted);
103
- if (res !== true) {
104
- return res;
105
- }
106
- }
107
- return true;
108
- }],
109
- metadata
110
- };
111
- return info;
112
- }
113
- const buildFormFromSchema = (s, state, onSubmit) => {
114
- const fields = buildFieldInfoFromFields(s.Api.fields);
115
- const parse = (0, _schema.unsafe)(tsplus_module_2.Schema.Parser.for(s));
116
- const isDirty = (0, _vue.ref)(false);
117
- const isValid = (0, _vue.ref)(true);
118
- const submit1 = onSubmit => async e => {
119
- const r = await e;
120
- if (!r.valid) return;
121
- return onSubmit(parse(state.value));
122
- };
123
- const submit = submit1(onSubmit);
124
- (0, _vue.watch)(state, v => {
125
- // TODO: do better
126
- isDirty.value = JSON.stringify(v) !== JSON.stringify(state.value);
127
- }, {
128
- deep: true
129
- });
130
- const submitFromState = () => submit(Promise.resolve({
131
- valid: isValid.value
132
- }));
133
- return {
134
- fields,
135
- submit,
136
- submitFromState,
137
- isDirty,
138
- isValid
139
- };
140
- };
141
- exports.buildFormFromSchema = buildFormFromSchema;
142
- //# sourceMappingURL=form.cjs.map
package/_cjs/form.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"form.cjs","names":["_schema","require","_intl","_vue","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","convertIn","v","type","convertOutInt","trim","c","parseFloat","parseInt","convertOut","buildFieldInfoFromFields","fields","tsplus_module_1","RecordKeys","object$","reduce","prev","cur","buildFieldInfo","f","Symbol","PhantomTypeParameter","defaultIntl","createIntl","locale","translate","exports","ref","formatMessage","bind","customSchemaErrors","Map","propOrSchema","fieldKey","metadata","getMetadataFromSchemaOrProp","schema","isSchema","parse","Parser","for","nullable","tsplus_module_2","Schema","findAnnotation","nullableIdentifier","renderError","err","drawError","custom","value","self","undefined","defaultMessage","id","capitalize","toString","String","message","slice","indexOf","stringRules","minLength","length","maxLength","numberRules","minimum","minimumExclusive","isExclusive","maximum","maximumExclusive","parseRule","tsplus_module_5","pipe","These","result","_","tsplus_module_4","match","onLeft","onRight","optErr","tsplus_module_3","isSome","rules","info","required","converted","res","buildFormFromSchema","s","state","onSubmit","Api","unsafe","isDirty","isValid","submit1","valid","submit","watch","JSON","stringify","deep","submitFromState","Promise","resolve"],"sources":["../_src/form.ts"],"sourcesContent":[null],"mappings":"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"}
package/dist/form.d.ts DELETED
@@ -1,45 +0,0 @@
1
- import { Schema } from "@effect-app/prelude";
2
- import type { Field, FieldRecord, From, SchemaAny, To } from "@effect-app/prelude/schema";
3
- import type { Ref } from "vue";
4
- export declare function convertIn(v: string | null, type?: "text" | "float" | "int"): string;
5
- export declare function convertOutInt(v: string, type?: "text" | "float" | "int"): string | number | null;
6
- export declare function convertOut(v: string, set: (v: unknown | null) => void, type?: "text" | "float" | "int"): void;
7
- export declare function buildFieldInfoFromFields<Fields extends FieldRecord>(fields: Fields): { [K in keyof Fields]: FieldInfo<From<GetSchemaFromProp<Fields[K]>>, To<GetSchemaFromProp<Fields[K]>>>; };
8
- export interface FieldMetadata {
9
- minLength: number | undefined;
10
- maxLength: number | undefined;
11
- required: boolean;
12
- }
13
- declare const f: unique symbol;
14
- declare abstract class PhantomTypeParameter<Identifier extends keyof any, InstantiatedType> {
15
- protected abstract readonly _: {
16
- readonly [NameP in Identifier]: (_: InstantiatedType) => InstantiatedType;
17
- };
18
- }
19
- export interface FieldInfo<Tin, Tout> extends PhantomTypeParameter<typeof f, {
20
- in: Tin;
21
- out: Tout;
22
- }> {
23
- rules: ((v: string) => boolean | string)[];
24
- metadata: FieldMetadata;
25
- type: "text" | "float" | "int";
26
- }
27
- type GetSchemaFromProp<T> = T extends Field<infer S, any, any, any> ? S : never;
28
- export declare const translate: Ref<{
29
- (descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>> | undefined, opts?: import("intl-messageformat").Options | undefined): string;
30
- <T extends unknown>(descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | T | import("intl-messageformat").FormatXMLElementFn<T>> | undefined, opts?: import("intl-messageformat").Options | undefined): string | T | (string | T)[];
31
- }>;
32
- export declare const customSchemaErrors: Ref<Map<SchemaAny, (message: string, e: unknown, v: unknown) => string>>;
33
- export declare const buildFormFromSchema: <To, From, ConstructorInput, Fields extends FieldRecord, OnSubmitA>(s: Schema.Schema<unknown, To, ConstructorInput, From, {
34
- fields: Fields;
35
- }>, state: Ref<From>, onSubmit: (a: To) => Promise<OnSubmitA>) => {
36
- fields: { [K in keyof Fields]: FieldInfo<import("@effect-app/prelude/schema").From<GetSchemaFromProp<Fields[K]>>, ReturnType<GetSchemaFromProp<Fields[K]>["_To"]>>; };
37
- submit: <T extends Promise<{
38
- valid: boolean;
39
- }>>(e: T) => Promise<OnSubmitA | undefined>;
40
- submitFromState: () => Promise<OnSubmitA | undefined>;
41
- isDirty: Ref<boolean>;
42
- isValid: Ref<boolean>;
43
- };
44
- export {};
45
- //# sourceMappingURL=form.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../_src/form.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAY,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAA;AAEnG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAG9B,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,UAE1E;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,0BAIvE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,QAEtG;AAED,wBAAgB,wBAAwB,CAAC,MAAM,SAAS,WAAW,EACjE,MAAM,EAAE,MAAM,6GAcf;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,CAAC,eAAW,CAAA;AAClB,uBAAe,oBAAoB,CACjC,UAAU,SAAS,MAAM,GAAG,EAC5B,gBAAgB;IAEhB,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC7B,QAAQ,EAAE,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,gBAAgB,KAAK,gBAAgB;KAC1E,CAAA;CACF;AACD,MAAM,WAAW,SAAS,CAAC,GAAG,EAAE,IAAI,CAAE,SAAQ,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAAE,EAAE,EAAE,GAAG,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC;IAClG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1C,QAAQ,EAAE,aAAa,CAAA;IACvB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAA;CAC/B;AAED,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GACnE,KAAK,CAAA;AAGT,eAAO,MAAM,SAAS;;;EAAoF,CAAA;AAC1G,eAAO,MAAM,kBAAkB,+BAAgC,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,MAAM,EAAa,CAAA;AA0HrH,eAAO,MAAM,mBAAmB,yEAO3B,aAAa,CACd,OAAO,EACP,EAAE,EACF,gBAAgB,EAChB,IAAI,EACJ;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CACnB,SACM,IAAI,IAAI,CAAC,gBACF,EAAE,KAAK,QAAQ,SAAS,CAAC;;;eAOmD,OAAO;;;;;CAmBlG,CAAA"}
package/dist/form.js DELETED
@@ -1,139 +0,0 @@
1
- import * as tsplus_module_1 from "@effect-app/prelude/utils";
2
- import * as tsplus_module_2 from "@effect-app/prelude";
3
- import * as tsplus_module_3 from "effect/Option";
4
- import * as tsplus_module_4 from "effect/Either";
5
- import * as tsplus_module_5 from "@effect-app/core/Function";
6
- import { drawError, getMetadataFromSchemaOrProp, isSchema, Parser, These, unsafe } from "@effect-app/prelude/schema";
7
- import { createIntl } from "@formatjs/intl";
8
- import { capitalize, ref, watch } from "vue";
9
- export function convertIn(v, type) {
10
- return v === null ? "" : type === "text" ? v : `${v}`;
11
- }
12
- export function convertOutInt(v, type) {
13
- v = v == null ? v : v.trim();
14
- const c = v === "" ? null : type === "float" ? parseFloat(v) : type === "int" ? parseInt(v) : v;
15
- return c;
16
- }
17
- export function convertOut(v, set, type) {
18
- return set(convertOutInt(v, type));
19
- }
20
- export function buildFieldInfoFromFields(fields) {
21
- return tsplus_module_1.RecordKeys(tsplus_module_1.object$(fields)).reduce((prev, cur) => {
22
- prev[cur] = buildFieldInfo(fields[cur], cur);
23
- return prev;
24
- }, {});
25
- }
26
- const f = Symbol();
27
- class PhantomTypeParameter {
28
- }
29
- const defaultIntl = createIntl({ locale: "en" });
30
- export const translate = ref(defaultIntl.formatMessage.bind(defaultIntl));
31
- export const customSchemaErrors = ref(new Map());
32
- function buildFieldInfo(propOrSchema, fieldKey) {
33
- const metadata = getMetadataFromSchemaOrProp(propOrSchema);
34
- const schema = isSchema(propOrSchema) ? propOrSchema : propOrSchema._schema;
35
- const parse = Parser.for(schema);
36
- const nullable = tsplus_module_2.Schema.findAnnotation(schema, tsplus_module_2.Schema.nullableIdentifier);
37
- function renderError(e, v) {
38
- const err = drawError(e);
39
- const custom = customSchemaErrors.value.get(schema)
40
- ?? (nullable?.self ? customSchemaErrors.value.get(nullable.self) : undefined);
41
- return custom ? custom(err, e, v) : translate.value({ defaultMessage: "The entered value is not a valid {type}: {message}", id: "validation.not_a_valid" }, {
42
- type: translate.value({
43
- defaultMessage: capitalize(fieldKey.toString()),
44
- id: `fieldNames.${String(fieldKey)}`
45
- }),
46
- message: err.slice(err.indexOf("expected")) // TODO: this is not translated.
47
- });
48
- }
49
- const stringRules = [
50
- (v) => v === null
51
- || metadata.minLength === undefined
52
- || v.length >= metadata.minLength
53
- || translate.value({
54
- defaultMessage: "The field requires at least {minLength} characters",
55
- id: "validation.string.minLength"
56
- }, {
57
- minLength: metadata.minLength
58
- }),
59
- (v) => v === null
60
- || metadata.maxLength === undefined
61
- || v.length <= metadata.maxLength
62
- || translate.value({
63
- defaultMessage: "The field cannot have more than {maxLength} characters",
64
- id: "validation.string.maxLength"
65
- }, {
66
- maxLength: metadata.maxLength
67
- })
68
- ];
69
- const numberRules = [
70
- (v) => v === null
71
- || metadata.minimum === undefined
72
- || metadata.minimumExclusive && v > metadata.minimum
73
- || !metadata.minimumExclusive && v >= metadata.minimum
74
- || translate.value({
75
- defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
76
- id: "validation.number.min"
77
- }, { isExclusive: metadata.minimumExclusive, minimum: metadata.minimum }),
78
- (v) => v === null
79
- || metadata.maximum === undefined
80
- || metadata.maximumExclusive && v < metadata.maximum
81
- || !metadata.maximumExclusive && v <= metadata.maximum
82
- || translate.value({
83
- defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
84
- id: "validation.number.max"
85
- }, { isExclusive: metadata.maximumExclusive, maximum: metadata.maximum })
86
- ];
87
- const parseRule = (v) => tsplus_module_5.pipe(parse(v), These.result, (_) => tsplus_module_4.match(_, {
88
- onLeft: (_) => renderError(_, v),
89
- onRight: ([_, optErr]) => tsplus_module_3.isSome(optErr)
90
- ? renderError(optErr.value, v)
91
- : true
92
- }));
93
- const rules = [
94
- ...(metadata.type === "text"
95
- ? stringRules
96
- : numberRules),
97
- parseRule
98
- ];
99
- const info = {
100
- type: metadata.type,
101
- rules: [
102
- (v) => !metadata.required
103
- || v !== ""
104
- || translate.value({ defaultMessage: "The field cannot be empty", id: "validation.empty" }),
105
- (v) => {
106
- const converted = convertOutInt(v, metadata.type);
107
- for (const r of rules) {
108
- const res = r(converted);
109
- if (res !== true) {
110
- return res;
111
- }
112
- }
113
- return true;
114
- }
115
- ],
116
- metadata
117
- };
118
- return info;
119
- }
120
- export const buildFormFromSchema = (s, state, onSubmit) => {
121
- const fields = buildFieldInfoFromFields(s.Api.fields);
122
- const parse = unsafe(tsplus_module_2.Schema.Parser.for(s));
123
- const isDirty = ref(false);
124
- const isValid = ref(true);
125
- const submit1 = (onSubmit) => async (e) => {
126
- const r = await e;
127
- if (!r.valid)
128
- return;
129
- return onSubmit(parse(state.value));
130
- };
131
- const submit = submit1(onSubmit);
132
- watch(state, (v) => {
133
- // TODO: do better
134
- isDirty.value = JSON.stringify(v) !== JSON.stringify(state.value);
135
- }, { deep: true });
136
- const submitFromState = () => submit(Promise.resolve({ valid: isValid.value }));
137
- return { fields, submit, submitFromState, isDirty, isValid };
138
- };
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFcEgsT0FBTyxFQUFFLFVBQVUsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFNUMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxDQUFnQixFQUFFLElBQStCO0lBQ3pFLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUE7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsQ0FBUyxFQUFFLElBQStCO0lBQ3RFLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0YsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxDQUFTLEVBQUUsR0FBZ0MsRUFBRSxJQUErQjtJQUNyRyxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsTUFBYztJQUVkLE9BQU8sbURBQUEsTUFBTSxHQUFTLE1BQU0sQ0FDMUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUN4RCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFDRCxFQUtDLENBQ0YsQ0FBQTtBQUNILENBQUM7QUFRRCxNQUFNLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQUNsQixNQUFlLG9CQUFvQjtDQU9sQztBQVVELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ2hELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQWtDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7QUFDMUcsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFzRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUE7QUFFckgsU0FBUyxjQUFjLENBQ3JCLFlBQWtDLEVBQ2xDLFFBQXFCO0lBRXJCLE1BQU0sUUFBUSxHQUFHLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFBO0lBQzNFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFaEMsTUFBTSxRQUFRLEdBQUcsZ0JBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFFekUsU0FBUyxXQUFXLENBQUMsQ0FBTSxFQUFFLENBQVU7UUFDckMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO2VBQzlDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQy9FLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FDakQsRUFBRSxjQUFjLEVBQUUsb0RBQW9ELEVBQUUsRUFBRSxFQUFFLHdCQUF3QixFQUFFLEVBQ3RHO1lBQ0UsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3BCLGNBQWMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMvQyxFQUFFLEVBQUUsY0FBYyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7YUFDckMsQ0FBQztZQUNGLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0M7U0FDN0UsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHO1FBQ2xCLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQ25CLENBQUMsS0FBSyxJQUFJO2VBQ1AsUUFBUSxDQUFDLFNBQVMsS0FBSyxTQUFTO2VBQ2hDLENBQUMsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFNBQVM7ZUFDOUIsU0FBUyxDQUFDLEtBQUssQ0FBQztnQkFDakIsY0FBYyxFQUFFLG9EQUFvRDtnQkFDcEUsRUFBRSxFQUFFLDZCQUE2QjthQUNsQyxFQUFFO2dCQUNELFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUzthQUM5QixDQUFDO1FBQ0osQ0FBQyxDQUFnQixFQUFFLEVBQUUsQ0FDbkIsQ0FBQyxLQUFLLElBQUk7ZUFDUCxRQUFRLENBQUMsU0FBUyxLQUFLLFNBQVM7ZUFDaEMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsU0FBUztlQUM5QixTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUNqQixjQUFjLEVBQUUsd0RBQXdEO2dCQUN4RSxFQUFFLEVBQUUsNkJBQTZCO2FBQ2xDLEVBQUU7Z0JBQ0QsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO2FBQzlCLENBQUM7S0FDTCxDQUFBO0lBRUQsTUFBTSxXQUFXLEdBQUc7UUFDbEIsQ0FBQyxDQUFnQixFQUFFLEVBQUUsQ0FDbkIsQ0FBQyxLQUFLLElBQUk7ZUFDUCxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVM7ZUFDOUIsUUFBUSxDQUFDLGdCQUFnQixJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTztlQUNqRCxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU87ZUFDbkQsU0FBUyxDQUFDLEtBQUssQ0FBQztnQkFDakIsY0FBYyxFQUFFLDBGQUEwRjtnQkFDMUcsRUFBRSxFQUFFLHVCQUF1QjthQUM1QixFQUFFLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNFLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQ25CLENBQUMsS0FBSyxJQUFJO2VBQ1AsUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTO2VBQzlCLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU87ZUFDakQsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPO2VBQ25ELFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2pCLGNBQWMsRUFBRSwwRkFBMEY7Z0JBQzFHLEVBQUUsRUFBRSx1QkFBdUI7YUFDNUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztLQUM1RSxDQUFBO0lBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFVLEVBQUUsRUFBRSxDQUMvQixnQkFBQSxJQUFJLENBQ0YsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUNSLEtBQUssQ0FBQyxNQUFNLEVBQ1osQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLHNCQUFBLENBQUMsRUFDQztRQUNFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUN2Qix1QkFBQSxNQUFNLENBQVM7WUFDYixDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxJQUFJO0tBQ1gsQ0FDRixDQUNKLENBQUE7SUFHSCxNQUFNLEtBQUssR0FBa0I7UUFDM0IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssTUFBTTtZQUMxQixDQUFDLENBQUMsV0FBVztZQUNiLENBQUMsQ0FBQyxXQUFXLENBQWtCO1FBQ2pDLFNBQXdCO0tBQ3pCLENBQUE7SUFFRCxNQUFNLElBQUksR0FBRztRQUNYLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtRQUNuQixLQUFLLEVBQUU7WUFDTCxDQUFDLENBQVMsRUFBRSxFQUFFLENBQ1osQ0FBQyxRQUFRLENBQUMsUUFBUTttQkFDZixDQUFDLEtBQUssRUFBRTttQkFDUixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsY0FBYyxFQUFFLDJCQUEyQixFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQzdGLENBQUMsQ0FBUyxFQUFFLEVBQUU7Z0JBQ1osTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBRWpELEtBQUssTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ3RCLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtvQkFDeEIsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7d0JBQ2pCLE9BQU8sR0FBRyxDQUFBO29CQUNaLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7U0FDRjtRQUNELFFBQVE7S0FDVCxDQUFBO0lBRUQsT0FBTyxJQUFXLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBT2pDLENBTUMsRUFDRCxLQUFnQixFQUNoQixRQUF1QyxFQUN2QyxFQUFFO0lBQ0YsTUFBTSxNQUFNLEdBQUcsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNyRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsZ0JBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMxQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDMUIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXpCLE1BQU0sT0FBTyxHQUFHLENBQUksUUFBK0IsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUF5QyxDQUFJLEVBQUUsRUFBRTtRQUM1RyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQTtRQUNqQixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxPQUFNO1FBQ3BCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUNyQyxDQUFDLENBQUE7SUFDRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFaEMsS0FBSyxDQUNILEtBQUssRUFDTCxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ0osa0JBQWtCO1FBQ2xCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNuRSxDQUFDLEVBQ0QsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQ2YsQ0FBQTtJQUVELE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM5RCxDQUFDLENBQUEifQ==