@regle/schemas 1.20.1 → 1.20.3
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/dist/regle-schemas.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/schemas v1.20.
|
|
2
|
+
* @regle/schemas v1.20.3
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { ArrayElement, CreateScopedUseRegleOptions, DeepMaybeRef, DeepPartial, DeepReactiveState, GlobalConfigOverrides, HasNamedKeys, HaveAnyRequiredProps, JoinDiscriminatedUnions, LocalRegleBehaviourOptions, Maybe, MaybeOutput, MergedScopedRegles, NoInferLegacy, PrimitiveTypes, RegleBehaviourOptions, RegleCollectionErrors, RegleCommonStatus, RegleErrorTree, RegleFieldIssue, RegleIssuesTree, RegleRuleStatus, RegleShortcutDefinition, RegleStaticImpl, TupleToPlainObj, UseScopedRegleOptions, useCollectScopeFn } from "@regle/core";
|
|
8
8
|
import { MaybeRef, MaybeRefOrGetter, Raw, UnwrapNestedRefs } from "vue";
|
|
9
9
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
10
|
-
import { EmptyObject, IsUnion, UnionToTuple } from "type-fest";
|
|
10
|
+
import { EmptyObject, IsAny, IsUnion, IsUnknown, UnionToTuple } from "type-fest";
|
|
11
11
|
type MaybeSchemaVariantStatus<TState extends Record<string, any> | undefined = Record<string, any>, TSchema extends StandardSchemaV1 = StandardSchemaV1, TShortcuts extends RegleShortcutDefinition = {}, TRoot extends boolean = false> = IsUnion<NonNullable<TState>> extends true ? Omit<RegleSchemaStatus<TState, TSchema, TShortcuts, TRoot>, '$fields'> & {
|
|
12
12
|
$fields: ProcessChildrenFields<TState, TShortcuts>[keyof ProcessChildrenFields<TState, TShortcuts>];
|
|
13
13
|
} & (HasNamedKeys<TState> extends true ? ProcessChildrenFields<TState, TShortcuts>[keyof ProcessChildrenFields<TState, TShortcuts>] : {}) : RegleSchemaStatus<TState, TSchema, TShortcuts, TRoot>;
|
|
@@ -63,7 +63,7 @@ type RegleSchemaStatus<TState extends Record<string, any> | undefined = Record<s
|
|
|
63
63
|
/**
|
|
64
64
|
* @public
|
|
65
65
|
*/
|
|
66
|
-
type InferRegleSchemaStatusType<TState extends unknown, TShortcuts extends RegleShortcutDefinition = {}> = NonNullable<TState> extends Array<any> ? RegleSchemaCollectionStatus<NonNullable<TState>, TShortcuts> : NonNullable<TState> extends Date | File ? RegleSchemaFieldStatus<TState, TShortcuts> : unknown extends TState ? RegleSchemaFieldStatus<TState extends EmptyObject ? unknown : TState, TShortcuts> : NonNullable<TState> extends Record<string, any> ? NonNullable<NonNullable<TState>> extends RegleStaticImpl<infer U> ? RegleSchemaFieldStatus<Raw<U>, TShortcuts> : MaybeSchemaVariantStatus<NonNullable<TState> extends Record<string, any> ? NonNullable<TState> : {}, StandardSchemaV1, TShortcuts> : RegleSchemaFieldStatus<TState, TShortcuts>;
|
|
66
|
+
type InferRegleSchemaStatusType<TState extends unknown, TShortcuts extends RegleShortcutDefinition = {}> = IsAny<TState> extends true ? RegleSchemaFieldStatus<any, TShortcuts> : IsUnknown<TState> extends true ? RegleCommonStatus<unknown> : NonNullable<TState> extends Array<any> ? RegleSchemaCollectionStatus<NonNullable<TState>, TShortcuts> : NonNullable<TState> extends Date | File ? RegleSchemaFieldStatus<TState, TShortcuts> : unknown extends TState ? RegleSchemaFieldStatus<TState extends EmptyObject ? unknown : TState, TShortcuts> : NonNullable<TState> extends Record<string, any> ? NonNullable<NonNullable<TState>> extends RegleStaticImpl<infer U> ? RegleSchemaFieldStatus<Raw<U>, TShortcuts> : MaybeSchemaVariantStatus<NonNullable<TState> extends Record<string, any> ? NonNullable<TState> : {}, StandardSchemaV1, TShortcuts> : RegleSchemaFieldStatus<TState, TShortcuts>;
|
|
67
67
|
/**
|
|
68
68
|
* @public
|
|
69
69
|
*/
|
package/dist/regle-schemas.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/schemas v1.20.
|
|
2
|
+
* @regle/schemas v1.20.3
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { createScopedUseRegle, useRootStorage } from "@regle/core";
|
|
8
|
-
import { computed, effectScope, getCurrentScope, isRef, nextTick, onMounted, onScopeDispose, reactive, ref, toValue, unref, watch } from "vue";
|
|
8
|
+
import { computed, effectScope, getCurrentInstance, getCurrentScope, isRef, nextTick, onMounted, onScopeDispose, reactive, ref, toValue, unref, watch } from "vue";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Server side friendly way of checking for a File
|
|
@@ -161,7 +161,7 @@ function cloneDeep(obj, dep = 0) {
|
|
|
161
161
|
function toReactive(objectRef, isDisabled) {
|
|
162
162
|
if (!isRef(objectRef)) return reactive(objectRef);
|
|
163
163
|
const firstRun = ref(false);
|
|
164
|
-
onMounted(async () => {
|
|
164
|
+
if (getCurrentInstance()) onMounted(async () => {
|
|
165
165
|
await nextTick();
|
|
166
166
|
if (typeof window !== "undefined") window.requestAnimationFrame(() => {
|
|
167
167
|
firstRun.value = true;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/schemas v1.20.
|
|
2
|
+
* @regle/schemas v1.20.3
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import{createScopedUseRegle as e,useRootStorage as t}from"@regle/core";import{computed as n,effectScope as r,
|
|
7
|
+
import{createScopedUseRegle as e,useRootStorage as t}from"@regle/core";import{computed as n,effectScope as r,getCurrentInstance as i,getCurrentScope as a,isRef as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,ref as d,toValue as f,unref as p,watch as m}from"vue";function h(e){return e?.constructor?.name==`File`}function g(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function _(e,t,n,r){var i,a;if(Array.isArray(t)&&(i=t.slice(0)),typeof t==`string`&&(i=t.split(`.`)),typeof t==`symbol`&&(i=[t]),!Array.isArray(i))throw Error(`props arg must be an array, a string or a symbol`);if(a=i.pop(),!a)return!1;y(a);for(var o;o=i.shift();)if(y(o),isNaN(parseInt(o))?(e[o]===void 0&&(e[o]={}),e=e[o]):(e.$each??=[],x(e.$each[o])&&(e.$each[o]={}),e=e.$each[o]),!e||typeof e!=`object`)return!1;return r?e[a]?e[a].$self=(e[a].$self??=[]).concat(n):e[a]={$self:n}:isNaN(parseInt(a))?Array.isArray(e[a])?e[a]=e[a].concat(n):e[a]=n:(e.$each??=[],e.$each[a]=(e.$each[a]??=[]).concat(n)),!0}function v(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function y(e){if(e==`__proto__`||e==`constructor`||e==`prototype`)throw Error(`setting of prototype values not supported`)}function b(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function x(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):h(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:g(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}function S(e){let t=[];return e.global&&t.push(`g`),e.ignoreCase&&t.push(`i`),e.multiline&&t.push(`m`),e.sticky&&t.push(`y`),e.unicode&&t.push(`u`),t.join(``)}function C(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>C(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[C(e[0]),C(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,S(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=C(e[r],t++)}return n}function w(e,t){if(!o(e))return u(e);let n=d(!1);return i()&&c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{n.value=!0})}),u(new Proxy({},{get(r,i,a){if(t.value&&i!==`$value`&&n.value)return Reflect.get(r,i,a);if(e.value!==void 0)return p(Reflect.get(e.value,i,a))},set(t,n,r){return o(e.value[n])&&!o(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}))}function T(e){return e.path?.map(e=>typeof e==`object`?e.key:e.toString()).join(`.`)??``}function E(e){let t=e.path?.at(-1);return typeof t==`object`?t.key:t}function D(e){let t=e.path?.at(-1),n=typeof t==`object`?typeof t.key==`string`:typeof t==`string`,r=e.path?.findLastIndex(e=>typeof e==`object`?typeof e.key==`number`:typeof e==`number`);if(!(!n&&r===-1)&&r!=null){let t=e.path?.slice(0,r+1);return{...e,path:t}}}function O(e,t){let n=T(e),r=e.path?.[e.path.length-1],i=typeof r==`object`?r.key:r;return{isArray:(typeof r==`object`&&`value`in r?Array.isArray(r.value):!1)||(`type`in e?e.type===`array`:!1)||Array.isArray(v(t.value,n)),$path:n,lastItemKey:i,lastItem:r}}function k(e,t,n,r=!1){return!r&&n?t.value.length?t.value.reduce((t,n)=>{if(`$currentArrayValue`in n&&g(n.$currentArrayValue)&&`$id`in n.$currentArrayValue){let r=n.$currentArrayValue.$id,i=E(n),a=e.find(e=>e?.$currentArrayValue?.$id===r&&E(e)===i);a&&t.push({...n,path:a?.path??[]})}else e.some(e=>T(e)===T(n))&&t.push(n);return t},[]):[]:e}function A(e,t,n,r=!1){return k(e,t,n,r)?.map(e=>({$message:e.message,$property:e.path?.[e.path.length-1]?.toString()??`-`,$rule:`schema`,...e}))??[]}function j({result:e,previousIssues:t,processedState:n,rewardEarly:r,isValidate:i=!1}){let a={},o=e.issues?.map(e=>{let t=D(e);if(t){let r=v(n.value,T(t));Object.defineProperty(e,`$currentArrayValue`,{value:r,enumerable:!0,configurable:!0,writable:!0})}return e}),s=k(o??[],t,r,i);if(o?.length){let e=s.map(e=>{let{isArray:t,$path:r,lastItemKey:i}=O(e,n);return{...e,$path:r,isArray:t,$property:i,$rule:`schema`,$message:e.message}});e.forEach(({isArray:e,$path:t,...n})=>{_(a,t,[n],e)}),t.value=e}else t.value=[];return a}function M(e){let t=o(e)?e:d(e);return{processedState:t,isSingleField:n(()=>!g(t.value)),initialState:d(g(t.value)?{...C(t.value)}:C(t.value)),originalState:g(t.value)?{...C(t.value)}:C(t.value)}}function N({processedState:e,getSchema:t,isSingleField:n,customErrors:r,previousIssues:i,resolvedOptions:a,syncOnUpdate:o,syncOnValidate:s}){let c;function l(){u(),c=m([e,t],()=>{a.silent||t()[`~standard`].vendor!==`regle`&&d()},{deep:!0})}function u(){c?.(),c=void 0}async function d(c=!1){let d=t()[`~standard`].validate(e.value);return d instanceof Promise&&(d=await d),n.value?r.value=A(d.issues??[],i,f(a.rewardEarly),c):r.value=j({result:d,previousIssues:i,processedState:e,rewardEarly:f(a.rewardEarly),isValidate:c}),d.issues||(c&&s||!c&&o)&&(u(),g(e.value)?e.value=b(e.value,d.value):e.value=d.value,l()),d}return{computeErrors:d,defineWatchState:l,stopWatching:u}}function P(e){let{options:i,shortcuts:o,overrides:c}=e??{};function u(e,u,h){if(!p(u)?.[`~standard`])throw Error(`Only "standard-schema" compatible libraries are supported`);let{syncState:g={onUpdate:!1,onValidate:!1},..._}=h??{},{onUpdate:v=!1,onValidate:y=!1}=g,b={...i,..._},{processedState:x,isSingleField:S,initialState:C,originalState:T}=M(e),E=d({}),D=d([]),O,k;function A(){return N({processedState:x,getSchema:()=>p(u),isSingleField:S,customErrors:E,previousIssues:D,resolvedOptions:b,syncOnUpdate:v,syncOnValidate:y})}function j(){O?.stop(),O=r(),O.run(()=>{k=A(),k.defineWatchState(),k.computeErrors()})}function P(){k?.stopWatching(),k=void 0,O?.stop(),O=void 0}j();let F=m(()=>f(b.disabled),e=>{e?P():j()});f(b.disabled)&&s().then(()=>{P()});let I,L=async()=>{try{let e=await(k??A()).computeErrors(!0);return I?.value?.$touch(),{valid:!e.issues?.length,data:x.value,errors:I?.value?.$errors,issues:E.value}}catch(e){return Promise.reject(e)}};a()&&l(()=>{F(),P()});let R=n(()=>f(b.disabled)??!1);return I=t({scopeRules:n(()=>({})),state:x,options:b,schemaErrors:E,initialState:C,originalState:T,shortcuts:o,schemaMode:!0,onValidate:L,overrides:c}),{r$:w(I,R)}}return u}const F=P();function I(e,t){return e}function L(){function e(e,t){return t}return e}const R=L();function z({modifiers:e,shortcuts:t,overrides:n}){return{useRegleSchema:P({options:e,shortcuts:t,overrides:n}),inferSchema:L()}}const B=t=>{let{customStore:n,customUseRegle:r=F,asRecord:i=!1}=t??{};return e({customStore:n,customUseRegle:r,asRecord:i})},{useCollectScope:V,useScopedRegle:H}=e({customUseRegle:F}),U=V,W=H;export{B as createScopedUseRegleSchema,z as defineRegleSchemaConfig,R as inferSchema,U as useCollectSchemaScope,F as useRegleSchema,W as useScopedRegleSchema,I as withDeps};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@regle/schemas",
|
|
3
|
-
"version": "1.20.
|
|
3
|
+
"version": "1.20.3",
|
|
4
4
|
"description": "Schemas adapter for Regle",
|
|
5
5
|
"homepage": "https://reglejs.dev/",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,20 +37,20 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@standard-schema/spec": "1.1.0",
|
|
39
39
|
"type-fest": "5.4.4",
|
|
40
|
-
"@regle/
|
|
41
|
-
"@regle/
|
|
40
|
+
"@regle/core": "1.20.3",
|
|
41
|
+
"@regle/rules": "1.20.3"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@total-typescript/ts-reset": "0.6.1",
|
|
45
|
-
"@types/node": "24.
|
|
45
|
+
"@types/node": "24.12.0",
|
|
46
|
+
"@typescript/native-preview": "7.0.0-dev.20260311.1",
|
|
46
47
|
"@vue/test-utils": "2.4.6",
|
|
47
48
|
"tsdown": "0.20.3",
|
|
48
49
|
"type-fest": "5.4.4",
|
|
49
50
|
"typescript": "5.9.3",
|
|
50
|
-
"@typescript/native-preview": "7.0.0-dev.20260303.1",
|
|
51
51
|
"valibot": "1.2.0",
|
|
52
52
|
"vitest": "4.0.18",
|
|
53
|
-
"vue": "3.5.
|
|
53
|
+
"vue": "3.5.30",
|
|
54
54
|
"vue-tsc": "3.2.5",
|
|
55
55
|
"zod": "4.3.6"
|
|
56
56
|
},
|