@lehnihon/bit-form 2.2.18 → 2.2.24
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 +10 -13
- package/dist/angular/index.cjs +1 -1
- package/dist/angular/index.cjs.map +1 -1
- package/dist/angular/index.d.cts +7 -6
- package/dist/angular/index.d.ts +7 -6
- package/dist/angular/index.js +1 -1
- package/dist/angular/index.js.map +1 -1
- package/dist/{chunk-DD6XWUMR.cjs → chunk-27LJCW56.cjs} +2 -2
- package/dist/chunk-27LJCW56.cjs.map +1 -0
- package/dist/chunk-3SEB4YRQ.cjs +2 -0
- package/dist/chunk-3SEB4YRQ.cjs.map +1 -0
- package/dist/chunk-4WPLTOBT.cjs +2 -0
- package/dist/chunk-4WPLTOBT.cjs.map +1 -0
- package/dist/chunk-5ILGCBKG.cjs +2 -0
- package/dist/chunk-5ILGCBKG.cjs.map +1 -0
- package/dist/chunk-725CMNAV.cjs +2 -0
- package/dist/chunk-725CMNAV.cjs.map +1 -0
- package/dist/{chunk-GKNGJOB3.cjs → chunk-7LCFS2JM.cjs} +2 -2
- package/dist/chunk-7LCFS2JM.cjs.map +1 -0
- package/dist/{chunk-AVUK52JW.cjs → chunk-AOMXTUA4.cjs} +2 -2
- package/dist/chunk-AOMXTUA4.cjs.map +1 -0
- package/dist/chunk-BSGJ3T5S.cjs.map +1 -1
- package/dist/chunk-CATA7YEV.js +2 -0
- package/dist/chunk-CATA7YEV.js.map +1 -0
- package/dist/chunk-DGEGYNQL.js +2 -0
- package/dist/{chunk-3NUJVIAM.js.map → chunk-DGEGYNQL.js.map} +1 -1
- package/dist/chunk-DNHPYPJA.js +2 -0
- package/dist/chunk-DNHPYPJA.js.map +1 -0
- package/dist/chunk-H3RTOA6X.cjs +2 -0
- package/dist/chunk-H3RTOA6X.cjs.map +1 -0
- package/dist/chunk-H6HGYVRV.cjs +2 -0
- package/dist/chunk-H6HGYVRV.cjs.map +1 -0
- package/dist/chunk-HTMNDK6W.js +2 -0
- package/dist/chunk-HTMNDK6W.js.map +1 -0
- package/dist/chunk-JVRTPL7W.js +2 -0
- package/dist/chunk-JVRTPL7W.js.map +1 -0
- package/dist/{chunk-77PK7U73.cjs → chunk-K2JSAJAF.cjs} +2 -2
- package/dist/chunk-K2JSAJAF.cjs.map +1 -0
- package/dist/chunk-K2KCQEER.js +2 -0
- package/dist/chunk-K2KCQEER.js.map +1 -0
- package/dist/chunk-L57KMBXS.js +2 -0
- package/dist/chunk-L57KMBXS.js.map +1 -0
- package/dist/chunk-LY67POOF.js +2 -0
- package/dist/chunk-LY67POOF.js.map +1 -0
- package/dist/chunk-MBEQLBJB.js +2 -0
- package/dist/chunk-MBEQLBJB.js.map +1 -0
- package/dist/chunk-MFSDDSVG.cjs.map +1 -1
- package/dist/chunk-PDFT5E2E.cjs +2 -0
- package/dist/chunk-PDFT5E2E.cjs.map +1 -0
- package/dist/chunk-PRMNTQD5.js +2 -0
- package/dist/chunk-PRMNTQD5.js.map +1 -0
- package/dist/chunk-QKGTVKBU.cjs.map +1 -1
- package/dist/chunk-RHMJPKNV.cjs.map +1 -1
- package/dist/chunk-SFVGMVIE.js +2 -0
- package/dist/chunk-SFVGMVIE.js.map +1 -0
- package/dist/chunk-SMCFLQIA.cjs +2 -0
- package/dist/chunk-SMCFLQIA.cjs.map +1 -0
- package/dist/chunk-T36GFQHU.cjs +2 -0
- package/dist/chunk-T36GFQHU.cjs.map +1 -0
- package/dist/chunk-W5CLDRRE.cjs.map +1 -1
- package/dist/chunk-WEZ5Q6YO.js +2 -0
- package/dist/chunk-WEZ5Q6YO.js.map +1 -0
- package/dist/chunk-X3DGA5UC.cjs +2 -0
- package/dist/chunk-X3DGA5UC.cjs.map +1 -0
- package/dist/{chunk-HE6EQZTH.js → chunk-X3OFU2UH.js} +2 -2
- package/dist/chunk-XPY6TCOO.js +2 -0
- package/dist/{chunk-SYEUXL2E.js.map → chunk-XPY6TCOO.js.map} +1 -1
- package/dist/cli/index.cjs +19 -18
- package/dist/{config-types-bTt2lcw9.d.ts → config-types-DB6FaTiZ.d.ts} +3 -3
- package/dist/{config-types-Dbyt7t3D.d.cts → config-types-mZFlp2Bi.d.cts} +3 -3
- package/dist/core/bindings.cjs +1 -1
- package/dist/core/bindings.cjs.map +1 -1
- package/dist/core/bindings.d.cts +4 -4
- package/dist/core/bindings.d.ts +4 -4
- package/dist/core/bindings.js +1 -1
- package/dist/core/status.cjs.map +1 -1
- package/dist/core/status.d.cts +3 -3
- package/dist/core/status.d.ts +3 -3
- package/dist/core/store.cjs +1 -1
- package/dist/core/store.cjs.map +1 -1
- package/dist/core/store.d.cts +5 -5
- package/dist/core/store.d.ts +5 -5
- package/dist/core/store.js +1 -1
- package/dist/core/utils.cjs +1 -1
- package/dist/core/utils.cjs.map +1 -1
- package/dist/core/utils.js +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +4 -4
- package/dist/core.d.ts +4 -4
- package/dist/core.js +1 -1
- package/dist/devtools/bridge.cjs +1 -1
- package/dist/devtools/bridge.cjs.map +1 -1
- package/dist/devtools/bridge.js +1 -1
- package/dist/devtools/index.cjs +17 -17
- package/dist/devtools/index.cjs.map +1 -1
- package/dist/devtools/index.d.cts +2 -2
- package/dist/devtools/index.d.ts +2 -2
- package/dist/devtools/index.js +17 -17
- package/dist/devtools/index.js.map +1 -1
- package/dist/devtools/protocol.cjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +1 -1
- package/dist/mask.cjs +1 -1
- package/dist/mask.cjs.map +1 -1
- package/dist/mask.d.cts +1 -1
- package/dist/mask.d.ts +1 -1
- package/dist/mask.js +1 -1
- package/dist/{meta-types-BC1VLABk.d.cts → meta-types-1Xcht8hj.d.cts} +1 -1
- package/dist/{meta-types-BC1VLABk.d.ts → meta-types-1Xcht8hj.d.ts} +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +6 -6
- package/dist/react/index.d.ts +6 -6
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react-native/index.cjs +1 -1
- package/dist/react-native/index.cjs.map +1 -1
- package/dist/react-native/index.d.cts +5 -5
- package/dist/react-native/index.d.ts +5 -5
- package/dist/react-native/index.js +1 -1
- package/dist/react-native/index.js.map +1 -1
- package/dist/resolvers/index.cjs +1 -1
- package/dist/resolvers/index.cjs.map +1 -1
- package/dist/resolvers/index.js +1 -1
- package/dist/resolvers/joi.cjs +1 -1
- package/dist/resolvers/joi.cjs.map +1 -1
- package/dist/resolvers/joi.js +1 -1
- package/dist/resolvers/types.cjs.map +1 -1
- package/dist/resolvers/yup.cjs +1 -1
- package/dist/resolvers/yup.cjs.map +1 -1
- package/dist/resolvers/yup.js +1 -1
- package/dist/resolvers/zod.cjs +1 -1
- package/dist/resolvers/zod.cjs.map +1 -1
- package/dist/resolvers/zod.js +1 -1
- package/dist/{runtime-types-D1SRZr-n.d.cts → runtime-types-BLCkMgcy.d.cts} +1 -1
- package/dist/{runtime-types-D1SRZr-n.d.ts → runtime-types-BLCkMgcy.d.ts} +1 -1
- package/dist/{store-api-types-i-zmM25p.d.ts → store-api-types-CgRVo2DA.d.ts} +4 -4
- package/dist/{store-api-types-BPD27biP.d.cts → store-api-types-D7i0KWbr.d.cts} +4 -4
- package/dist/{use-bit-persist-BGH2Bazx.d.ts → use-bit-persist-CFcuAzwp.d.ts} +5 -5
- package/dist/{use-bit-persist-DiwICsEm.d.cts → use-bit-persist-Dsr69hme.d.cts} +5 -5
- package/dist/utils.cjs +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.d.cts +23 -22
- package/dist/vue/index.d.ts +23 -22
- package/dist/vue/index.js +1 -1
- package/dist/vue/index.js.map +1 -1
- package/package.json +70 -16
- package/dist/chunk-3774TIGK.js +0 -2
- package/dist/chunk-3774TIGK.js.map +0 -1
- package/dist/chunk-3KI3GEU3.cjs +0 -2
- package/dist/chunk-3KI3GEU3.cjs.map +0 -1
- package/dist/chunk-3NUJVIAM.js +0 -2
- package/dist/chunk-77PK7U73.cjs.map +0 -1
- package/dist/chunk-AVUK52JW.cjs.map +0 -1
- package/dist/chunk-CTURHI75.cjs +0 -2
- package/dist/chunk-CTURHI75.cjs.map +0 -1
- package/dist/chunk-DD6XWUMR.cjs.map +0 -1
- package/dist/chunk-FGJB4DHQ.js +0 -2
- package/dist/chunk-FGJB4DHQ.js.map +0 -1
- package/dist/chunk-FTXV2NZO.cjs +0 -2
- package/dist/chunk-FTXV2NZO.cjs.map +0 -1
- package/dist/chunk-G3EHXKOS.js +0 -2
- package/dist/chunk-G3EHXKOS.js.map +0 -1
- package/dist/chunk-GDRNKTHO.js +0 -2
- package/dist/chunk-GDRNKTHO.js.map +0 -1
- package/dist/chunk-GKNGJOB3.cjs.map +0 -1
- package/dist/chunk-GSZTHF7Z.js +0 -2
- package/dist/chunk-GSZTHF7Z.js.map +0 -1
- package/dist/chunk-GUU6EXFN.js +0 -2
- package/dist/chunk-GUU6EXFN.js.map +0 -1
- package/dist/chunk-ICYXODTQ.js +0 -2
- package/dist/chunk-ICYXODTQ.js.map +0 -1
- package/dist/chunk-L7EAZ6K6.cjs +0 -2
- package/dist/chunk-L7EAZ6K6.cjs.map +0 -1
- package/dist/chunk-LIHWJJIM.js +0 -2
- package/dist/chunk-LIHWJJIM.js.map +0 -1
- package/dist/chunk-M2XR4C7T.js +0 -2
- package/dist/chunk-M2XR4C7T.js.map +0 -1
- package/dist/chunk-P5YQ62YN.cjs +0 -2
- package/dist/chunk-P5YQ62YN.cjs.map +0 -1
- package/dist/chunk-PFPGASVZ.cjs +0 -2
- package/dist/chunk-PFPGASVZ.cjs.map +0 -1
- package/dist/chunk-QCKCONCU.js +0 -2
- package/dist/chunk-QCKCONCU.js.map +0 -1
- package/dist/chunk-RSH6LQVC.cjs +0 -2
- package/dist/chunk-RSH6LQVC.cjs.map +0 -1
- package/dist/chunk-SYEUXL2E.js +0 -2
- package/dist/chunk-U5TBWV74.cjs +0 -2
- package/dist/chunk-U5TBWV74.cjs.map +0 -1
- package/dist/chunk-UT63HKR6.cjs +0 -2
- package/dist/chunk-UT63HKR6.cjs.map +0 -1
- package/dist/chunk-WRNR6SXK.cjs +0 -2
- package/dist/chunk-WRNR6SXK.cjs.map +0 -1
- package/dist/chunk-YO4TZ6N6.js +0 -2
- package/dist/chunk-YO4TZ6N6.js.map +0 -1
- /package/dist/{chunk-HE6EQZTH.js.map → chunk-X3OFU2UH.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/devtools/protocol.ts"],"names":["DEVTOOLS_PROTOCOL_VERSION","hasSupportedProtocolVersion","candidate","isDevToolsActionPayload","payload","isDevToolsActionMessage","message","isDevToolsStateUpdateMessage","isDevToolsPingMessage","isDevToolsHelloMessage"],"mappings":"AAEO,6EAAMA,CAAAA,CAA4B,CAAA,CA8DzC,SAASC,CAAAA,CAA4BC,CAAAA,CAA0C,CAC7E,OAAOA,CAAAA,CAAU,eAAA,GAAoB,CACvC,CAEO,SAASC,CAAAA,CACdC,CAAAA,CACkC,CAClC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CACjC,MAAO,CAAA,CAAA,CAGT,IAAMF,CAAAA,CAAYE,CAAAA,CAKlB,OACE,OAAOF,CAAAA,CAAU,OAAA,EAAY,QAAA,EAAA,CAC5BA,CAAAA,CAAU,MAAA,GAAW,MAAA,EACpBA,CAAAA,CAAU,MAAA,GAAW,MAAA,EACrBA,CAAAA,CAAU,MAAA,GAAW,OAAA,CAE3B,CAEO,SAASG,CAAAA,CACdC,CAAAA,CACkC,CAClC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CACjC,MAAO,CAAA,CAAA,CAGT,IAAMJ,CAAAA,CAAYI,CAAAA,CAMlB,OACEJ,CAAAA,CAAU,IAAA,GAAS,QAAA,EACnBD,CAAAA,CAA4BC,CAAS,CAAA,EACrCC,CAAAA,CAAwBD,CAAAA,CAAU,OAAO,CAE7C,CAEO,SAASK,CAAAA,CACdD,CAAAA,CACuC,CACvC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CACjC,MAAO,CAAA,CAAA,CAGT,IAAMJ,CAAAA,CAAYI,CAAAA,CAKlB,OACEJ,CAAAA,CAAU,IAAA,GAAS,cAAA,EAAkBD,CAAAA,CAA4BC,CAAS,CAE9E,CAEO,SAASM,CAAAA,CACdF,CAAAA,CACgC,CAChC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CACjC,MAAO,CAAA,CAAA,CAGT,IAAMJ,CAAAA,CAAYI,CAAAA,CAKlB,OAAOJ,CAAAA,CAAU,IAAA,GAAS,MAAA,EAAUD,CAAAA,CAA4BC,CAAS,CAC3E,CAEO,SAASO,CAAAA,CACdH,CAAAA,CACiC,CACjC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CACjC,MAAO,CAAA,CAAA,CAGT,IAAMJ,CAAAA,CAAYI,CAAAA,CAMlB,EAAA,CACEJ,CAAAA,CAAU,IAAA,GAAS,OAAA,EACnB,CAACA,CAAAA,CAAU,OAAA,EACX,CAACD,CAAAA,CAA4BC,CAAS,CAAA,CAEtC,MAAO,CAAA,CAAA,CAGT,IAAME,CAAAA,CAAUF,CAAAA,CAAU,OAAA,CAK1B,MAAA,CACGE,CAAAA,CAAQ,IAAA,GAAS,QAAA,EAAYA,CAAAA,CAAQ,IAAA,GAAS,QAAA,CAAA,EAC/CA,CAAAA,CAAQ,eAAA,GAAoB,CAEhC,CAAA,yFAAA","file":"/
|
|
1
|
+
{"version":3,"sources":["../src/devtools/protocol.ts"],"names":["DEVTOOLS_PROTOCOL_VERSION","hasSupportedProtocolVersion","candidate","isDevToolsActionPayload","payload","isDevToolsActionMessage","message","isDevToolsStateUpdateMessage","isDevToolsPingMessage","isDevToolsHelloMessage"],"mappings":"AAEO,6EAAMA,CAAAA,CAA4B,CAAA,CA8DzC,SAASC,CAAAA,CAA4BC,CAAAA,CAA0C,CAC7E,OAAOA,CAAAA,CAAU,eAAA,GAAoB,CACvC,CAEO,SAASC,CAAAA,CACdC,CAAAA,CACkC,CAClC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CACjC,MAAO,CAAA,CAAA,CAGT,IAAMF,CAAAA,CAAYE,CAAAA,CAKlB,OACE,OAAOF,CAAAA,CAAU,OAAA,EAAY,QAAA,EAAA,CAC5BA,CAAAA,CAAU,MAAA,GAAW,MAAA,EACpBA,CAAAA,CAAU,MAAA,GAAW,MAAA,EACrBA,CAAAA,CAAU,MAAA,GAAW,OAAA,CAE3B,CAEO,SAASG,CAAAA,CACdC,CAAAA,CACkC,CAClC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CACjC,MAAO,CAAA,CAAA,CAGT,IAAMJ,CAAAA,CAAYI,CAAAA,CAMlB,OACEJ,CAAAA,CAAU,IAAA,GAAS,QAAA,EACnBD,CAAAA,CAA4BC,CAAS,CAAA,EACrCC,CAAAA,CAAwBD,CAAAA,CAAU,OAAO,CAE7C,CAEO,SAASK,CAAAA,CACdD,CAAAA,CACuC,CACvC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CACjC,MAAO,CAAA,CAAA,CAGT,IAAMJ,CAAAA,CAAYI,CAAAA,CAKlB,OACEJ,CAAAA,CAAU,IAAA,GAAS,cAAA,EAAkBD,CAAAA,CAA4BC,CAAS,CAE9E,CAEO,SAASM,CAAAA,CACdF,CAAAA,CACgC,CAChC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CACjC,MAAO,CAAA,CAAA,CAGT,IAAMJ,CAAAA,CAAYI,CAAAA,CAKlB,OAAOJ,CAAAA,CAAU,IAAA,GAAS,MAAA,EAAUD,CAAAA,CAA4BC,CAAS,CAC3E,CAEO,SAASO,CAAAA,CACdH,CAAAA,CACiC,CACjC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CACjC,MAAO,CAAA,CAAA,CAGT,IAAMJ,CAAAA,CAAYI,CAAAA,CAMlB,EAAA,CACEJ,CAAAA,CAAU,IAAA,GAAS,OAAA,EACnB,CAACA,CAAAA,CAAU,OAAA,EACX,CAACD,CAAAA,CAA4BC,CAAS,CAAA,CAEtC,MAAO,CAAA,CAAA,CAGT,IAAME,CAAAA,CAAUF,CAAAA,CAAU,OAAA,CAK1B,MAAA,CACGE,CAAAA,CAAQ,IAAA,GAAS,QAAA,EAAYA,CAAAA,CAAQ,IAAA,GAAS,QAAA,CAAA,EAC/CA,CAAAA,CAAQ,eAAA,GAAoB,CAEhC,CAAA,yFAAA","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-QKGTVKBU.cjs","sourcesContent":["export type DevToolsActionName = \"undo\" | \"redo\" | \"reset\";\n\nexport const DEVTOOLS_PROTOCOL_VERSION = 1;\n\nexport interface DevToolsProtocolMessageBase {\n protocolVersion: number;\n}\n\nexport interface DevToolsHistoryMeta {\n canUndo: boolean;\n canRedo: boolean;\n totalSteps: number;\n currentIndex: number;\n}\n\nexport interface DevToolsStoreSnapshot {\n values: unknown;\n errors: Record<string, unknown>;\n touched: Record<string, unknown>;\n isValid: boolean;\n isDirty: boolean;\n isSubmitting: boolean;\n isValidating?: Record<string, unknown>;\n persist?: unknown;\n _meta: DevToolsHistoryMeta;\n}\n\nexport type DevToolsStoreSnapshots = Record<string, DevToolsStoreSnapshot>;\n\nexport interface DevToolsActionPayload {\n storeId: string;\n action: DevToolsActionName;\n}\n\nexport interface DevToolsStateUpdateMessage extends DevToolsProtocolMessageBase {\n type: \"STATE_UPDATE\";\n payload: DevToolsStoreSnapshots;\n}\n\nexport interface DevToolsPingMessage extends DevToolsProtocolMessageBase {\n type: \"PING\";\n}\n\nexport interface DevToolsActionMessage extends DevToolsProtocolMessageBase {\n type: \"ACTION\";\n payload: DevToolsActionPayload;\n}\n\nexport interface DevToolsHelloPayload {\n role: \"client\" | \"server\";\n protocolVersion: number;\n}\n\nexport interface DevToolsHelloMessage extends DevToolsProtocolMessageBase {\n type: \"HELLO\";\n payload: DevToolsHelloPayload;\n}\n\nexport type DevToolsRemoteMessage =\n | DevToolsStateUpdateMessage\n | DevToolsPingMessage\n | DevToolsActionMessage\n | DevToolsHelloMessage;\n\nfunction hasSupportedProtocolVersion(candidate: { protocolVersion?: unknown }) {\n return candidate.protocolVersion === DEVTOOLS_PROTOCOL_VERSION;\n}\n\nexport function isDevToolsActionPayload(\n payload: unknown,\n): payload is DevToolsActionPayload {\n if (!payload || typeof payload !== \"object\") {\n return false;\n }\n\n const candidate = payload as {\n storeId?: unknown;\n action?: unknown;\n };\n\n return (\n typeof candidate.storeId === \"string\" &&\n (candidate.action === \"undo\" ||\n candidate.action === \"redo\" ||\n candidate.action === \"reset\")\n );\n}\n\nexport function isDevToolsActionMessage(\n message: unknown,\n): message is DevToolsActionMessage {\n if (!message || typeof message !== \"object\") {\n return false;\n }\n\n const candidate = message as {\n type?: unknown;\n payload?: unknown;\n protocolVersion?: unknown;\n };\n\n return (\n candidate.type === \"ACTION\" &&\n hasSupportedProtocolVersion(candidate) &&\n isDevToolsActionPayload(candidate.payload)\n );\n}\n\nexport function isDevToolsStateUpdateMessage(\n message: unknown,\n): message is DevToolsStateUpdateMessage {\n if (!message || typeof message !== \"object\") {\n return false;\n }\n\n const candidate = message as {\n type?: unknown;\n protocolVersion?: unknown;\n };\n\n return (\n candidate.type === \"STATE_UPDATE\" && hasSupportedProtocolVersion(candidate)\n );\n}\n\nexport function isDevToolsPingMessage(\n message: unknown,\n): message is DevToolsPingMessage {\n if (!message || typeof message !== \"object\") {\n return false;\n }\n\n const candidate = message as {\n type?: unknown;\n protocolVersion?: unknown;\n };\n\n return candidate.type === \"PING\" && hasSupportedProtocolVersion(candidate);\n}\n\nexport function isDevToolsHelloMessage(\n message: unknown,\n): message is DevToolsHelloMessage {\n if (!message || typeof message !== \"object\") {\n return false;\n }\n\n const candidate = message as {\n type?: unknown;\n payload?: unknown;\n protocolVersion?: unknown;\n };\n\n if (\n candidate.type !== \"HELLO\" ||\n !candidate.payload ||\n !hasSupportedProtocolVersion(candidate)\n ) {\n return false;\n }\n\n const payload = candidate.payload as {\n role?: unknown;\n protocolVersion?: unknown;\n };\n\n return (\n (payload.role === \"client\" || payload.role === \"server\") &&\n payload.protocolVersion === DEVTOOLS_PROTOCOL_VERSION\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/store/shared/scope-status.ts"],"names":["areScopeErrorsEqual","currentErrors","nextErrors","currentKeys","nextKeys","key","isScopeStatusEqual","currentStatus","nextStatus","getScopeSubscriptionPaths","scopeFields","getScopeRegistrySubscriptionPath","scopeName"],"mappings":"AAEO,kFAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACS,CACT,IAAMC,CAAAA,CAAc,MAAA,CAAO,IAAA,CAAKF,CAAa,CAAA,CACvCG,CAAAA,CAAW,MAAA,CAAO,IAAA,CAAKF,CAAU,CAAA,CAEvC,OAAIC,CAAAA,CAAY,MAAA,GAAWC,CAAAA,CAAS,MAAA,CAC3B,CAAA,CAAA,CAGFD,CAAAA,CAAY,KAAA,CAAOE,CAAAA,EAAQJ,CAAAA,CAAcI,CAAG,CAAA,GAAMH,CAAAA,CAAWG,CAAG,CAAC,CAC1E,CAEO,SAASC,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACS,CACT,OACED,CAAAA,CAAc,SAAA,GAAcC,CAAAA,CAAW,SAAA,EACvCD,CAAAA,CAAc,OAAA,GAAYC,CAAAA,CAAW,OAAA,EACrCR,CAAAA,CAAoBO,CAAAA,CAAc,MAAA,CAAQC,CAAAA,CAAW,MAAM,CAE/D,CAEO,SAASC,CAAAA,CAA0BC,CAAAA,CAAgC,CACxE,MAAO,CAAC,GAAGA,CAAAA,CAAa,SAAS,CACnC,CAEO,SAASC,CAAAA,CAAiCC,CAAAA,CAAmB,CAClE,MAAO,CAAA,UAAA,EAAaA,CAAS,CAAA,CAAA","file":"/
|
|
1
|
+
{"version":3,"sources":["../src/core/store/shared/scope-status.ts"],"names":["areScopeErrorsEqual","currentErrors","nextErrors","currentKeys","nextKeys","key","isScopeStatusEqual","currentStatus","nextStatus","getScopeSubscriptionPaths","scopeFields","getScopeRegistrySubscriptionPath","scopeName"],"mappings":"AAEO,kFAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACS,CACT,IAAMC,CAAAA,CAAc,MAAA,CAAO,IAAA,CAAKF,CAAa,CAAA,CACvCG,CAAAA,CAAW,MAAA,CAAO,IAAA,CAAKF,CAAU,CAAA,CAEvC,OAAIC,CAAAA,CAAY,MAAA,GAAWC,CAAAA,CAAS,MAAA,CAC3B,CAAA,CAAA,CAGFD,CAAAA,CAAY,KAAA,CAAOE,CAAAA,EAAQJ,CAAAA,CAAcI,CAAG,CAAA,GAAMH,CAAAA,CAAWG,CAAG,CAAC,CAC1E,CAEO,SAASC,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACS,CACT,OACED,CAAAA,CAAc,SAAA,GAAcC,CAAAA,CAAW,SAAA,EACvCD,CAAAA,CAAc,OAAA,GAAYC,CAAAA,CAAW,OAAA,EACrCR,CAAAA,CAAoBO,CAAAA,CAAc,MAAA,CAAQC,CAAAA,CAAW,MAAM,CAE/D,CAEO,SAASC,CAAAA,CAA0BC,CAAAA,CAAgC,CACxE,MAAO,CAAC,GAAGA,CAAAA,CAAa,SAAS,CACnC,CAEO,SAASC,CAAAA,CAAiCC,CAAAA,CAAmB,CAClE,MAAO,CAAA,UAAA,EAAaA,CAAS,CAAA,CAAA","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-RHMJPKNV.cjs","sourcesContent":["import type { ScopeStatus } from \"../contracts/types\";\n\nexport function areScopeErrorsEqual(\n currentErrors: Record<string, string>,\n nextErrors: Record<string, string>,\n): boolean {\n const currentKeys = Object.keys(currentErrors);\n const nextKeys = Object.keys(nextErrors);\n\n if (currentKeys.length !== nextKeys.length) {\n return false;\n }\n\n return currentKeys.every((key) => currentErrors[key] === nextErrors[key]);\n}\n\nexport function isScopeStatusEqual(\n currentStatus: ScopeStatus,\n nextStatus: ScopeStatus,\n): boolean {\n return (\n currentStatus.hasErrors === nextStatus.hasErrors &&\n currentStatus.isDirty === nextStatus.isDirty &&\n areScopeErrorsEqual(currentStatus.errors, nextStatus.errors)\n );\n}\n\nexport function getScopeSubscriptionPaths(scopeFields: readonly string[]) {\n return [...scopeFields, \"isDirty\"];\n}\n\nexport function getScopeRegistrySubscriptionPath(scopeName: string) {\n return `__scope__.${scopeName}`;\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as s,b as i,c as n}from"./chunk-HTMNDK6W.js";var f=(a,r)=>async(l,p)=>{let{error:o}=a.validate(l,{abortEarly:r?.abortEarly??!1,allowUnknown:r?.allowUnknown??!1,stripUnknown:r?.stripUnknown??!1});if(!o)return{};let e={};return o.details.forEach(t=>{let c=s(t.path.join("."));i(e,c,t.message)}),n(e,p?.scopeFields)};export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-SFVGMVIE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/resolvers/joi.ts"],"sourcesContent":["import { ObjectSchema } from \"joi\";\nimport { BitErrors } from \"../core\";\nimport { filterErrorsByScope, setFirstError, normalizeErrorPath } from \"./utils\";\nimport { BitJoiResolverConfig, BitResolverScopeOptions } from \"./types\";\n\nexport const joiResolver = <T extends object>(\n schema: ObjectSchema<T>,\n config?: BitJoiResolverConfig,\n) => {\n return async (\n values: T,\n options?: BitResolverScopeOptions,\n ): Promise<BitErrors<T>> => {\n const { error } = schema.validate(values, {\n abortEarly: config?.abortEarly ?? false,\n allowUnknown: config?.allowUnknown ?? false,\n stripUnknown: config?.stripUnknown ?? false,\n });\n\n if (!error) return {};\n\n const errors: BitErrors<T> = {};\n\n error.details.forEach((detail) => {\n const path = normalizeErrorPath(detail.path.join(\".\"));\n\n setFirstError(errors, path, detail.message);\n });\n\n return filterErrorsByScope(errors, options?.scopeFields);\n };\n};\n"],"mappings":"sDAKO,IAAMA,EAAc,CACzBC,EACAC,IAEO,MACLC,EACAC,IAC0B,CAC1B,GAAM,CAAE,MAAAC,CAAM,EAAIJ,EAAO,SAASE,EAAQ,CACxC,WAAYD,GAAQ,YAAc,GAClC,aAAcA,GAAQ,cAAgB,GACtC,aAAcA,GAAQ,cAAgB,EACxC,CAAC,EAED,GAAI,CAACG,EAAO,MAAO,CAAC,EAEpB,IAAMC,EAAuB,CAAC,EAE9B,OAAAD,EAAM,QAAQ,QAASE,GAAW,CAChC,IAAMC,EAAOC,EAAmBF,EAAO,KAAK,KAAK,GAAG,CAAC,EAErDG,EAAcJ,EAAQE,EAAMD,EAAO,OAAO,CAC5C,CAAC,EAEMI,EAAoBL,EAAQF,GAAS,WAAW,CACzD","names":["joiResolver","schema","config","values","options","error","errors","detail","path","normalizeErrorPath","setFirstError","filterErrorsByScope"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkQKGTVKBUcjs = require('./chunk-QKGTVKBU.cjs');var _chunkPDFT5E2Ecjs = require('./chunk-PDFT5E2E.cjs');function k(e){return{values:e.values,errors:e.errors,touched:e.touched,isValid:e.isValid,isDirty:e.isDirty,isSubmitting:e.isSubmitting,isValidating:e.isValidating,persist:e.persist}}function w(e){let o=e.getHistoryMetadata();return{...k(e.getState()),_meta:{canUndo:o.canUndo,canRedo:o.canRedo,totalSteps:o.historySize,currentIndex:o.historyIndex}}}function m(e){let o={};for(let[t,i]of Object.entries(e))o[t]=w(i);return o}function I(e){if(!e||typeof e!="object")return!1;let o=e;return typeof o.getState=="function"&&typeof o.getHistoryMetadata=="function"}function O(e){if(!I(e))return!1;let o=e;return typeof o.undo=="function"&&typeof o.redo=="function"&&typeof o.reset=="function"}function h(e,o){let t=e[o];return O(t)?t:null}var f=null,x=50;function _(e,o=_chunkPDFT5E2Ecjs.a){f&&(console.warn("[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado)."),f());let t=null,i=null,T,n=null,u,a=new Set,b=!1,d=r=>{_optionalChain([t, 'optionalAccess', _2 => _2.readyState])===WebSocket.OPEN&&t.send(JSON.stringify(r))},D=()=>{if(a.size===0)return;let r=m(Array.from(a).reduce((s,l)=>{let p=o.stores[l];return p&&(s[l]=p),s},{}));a.clear(),n=null,Object.keys(r).length>0&&d({type:"STATE_UPDATE",protocolVersion:1,payload:r})},R=()=>{n||(n=setTimeout(()=>{D()},x))},y=()=>{b=!1,t=new WebSocket(e),t.onopen=()=>{console.log("[bit-form] \u{1F50C} Conectado ao CLI DevTools via WebSocket."),d({type:"HELLO",protocolVersion:1,payload:{role:"server",protocolVersion:1}});let r=m(o.stores);Object.keys(r).length>0&&d({type:"STATE_UPDATE",protocolVersion:1,payload:r}),i=o.subscribe((s,l)=>{a.add(s),R()}),T=setInterval(()=>{d({type:"PING",protocolVersion:1})},3e4)},t.onmessage=r=>{try{let s=JSON.parse(r.data);if(_chunkQKGTVKBUcjs.c.call(void 0, s)){let{storeId:l,action:p}=s.payload,S=h(o.stores,l);if(!S)return;switch(p){case"undo":S.undo();break;case"redo":S.redo();break;case"reset":S.reset();break}}}catch(s){console.warn("[bit-form] Erro ao processar comando do CLI:",s)}},t.onclose=()=>{i&&i(),clearInterval(T),n&&(clearTimeout(n),n=null),a.clear(),b?console.log("[bit-form] Ponte antiga encerrada com sucesso."):(console.log("[bit-form] Conex\xE3o perdida. Reconectando em 3s..."),u=setTimeout(y,3e3))}};y();let g=()=>{b=!0,u&&(clearTimeout(u),u=void 0),i&&i(),clearInterval(T),n&&(clearTimeout(n),n=null),a.clear(),t&&(t.readyState===WebSocket.OPEN||t.readyState===WebSocket.CONNECTING)&&t.close(),f=null};return f=g,g}exports.a = m; exports.b = h; exports.c = _;
|
|
2
|
+
//# sourceMappingURL=chunk-SMCFLQIA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/builds/kenji.ccp-group/bit-form/dist/chunk-SMCFLQIA.cjs","../src/devtools/store-snapshot.ts","../src/devtools/store-port.ts","../src/devtools/bridge.ts"],"names":["normalizeStoreState","state","createDevToolsStoreSnapshot","store","historyMeta","createDevToolsSnapshotMap","stores","snapshots","storeId","instance","isDevToolsReadableStore","value","candidate","isDevToolsActionableStore","getDevToolsActionableStore","activeBridgeCleanup","STATE_BATCH_INTERVAL_MS","setupRemoteBridge","url","bus","bitBus","socket","unsubscribeBus","heartbeatInterval","batchFlushTimeout","reconnectTimer","pendingStoreIds","isIntentionalDisconnect","sendWhenOpen","message","flushPendingStoreUpdates","payload","acc","storeInstance","scheduleStoreFlush","connect","initialState","_newState","event","isDevToolsActionMessage","action","e","cleanup"],"mappings":"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","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-SMCFLQIA.cjs","sourcesContent":[null,"import type { BitBusStorePort, BitState } from \"../core\";\nimport type { DevToolsStoreSnapshot, DevToolsStoreSnapshots } from \"./protocol\";\n\nfunction normalizeStoreState<T extends object>(\n state: Readonly<BitState<T>>,\n): Omit<DevToolsStoreSnapshot, \"_meta\"> {\n return {\n values: state.values,\n errors: state.errors as Record<string, unknown>,\n touched: state.touched as Record<string, unknown>,\n isValid: state.isValid,\n isDirty: state.isDirty,\n isSubmitting: state.isSubmitting,\n isValidating: state.isValidating as Record<string, unknown>,\n persist: state.persist,\n };\n}\n\nexport function createDevToolsStoreSnapshot<T extends object>(store: {\n getState: () => Readonly<BitState<T>>;\n getHistoryMetadata: () => {\n canUndo: boolean;\n canRedo: boolean;\n historySize: number;\n historyIndex: number;\n };\n}): DevToolsStoreSnapshot {\n const historyMeta = store.getHistoryMetadata();\n\n return {\n ...normalizeStoreState(store.getState()),\n _meta: {\n canUndo: historyMeta.canUndo,\n canRedo: historyMeta.canRedo,\n totalSteps: historyMeta.historySize,\n currentIndex: historyMeta.historyIndex,\n },\n };\n}\n\nexport function createDevToolsSnapshotMap(\n stores: Record<string, BitBusStorePort<object>>,\n): DevToolsStoreSnapshots {\n const snapshots: DevToolsStoreSnapshots = {};\n\n for (const [storeId, instance] of Object.entries(stores)) {\n snapshots[storeId] = createDevToolsStoreSnapshot(instance);\n }\n\n return snapshots;\n}\n","import type { BitBusStorePort } from \"../core\";\n\nexport type BitDevToolsReadableStore<T extends object = object> =\n BitBusStorePort<T>;\n\nexport type BitDevToolsActionableStore<T extends object = object> =\n BitBusStorePort<T>;\n\nexport function isDevToolsReadableStore(\n value: unknown,\n): value is BitDevToolsReadableStore<object> {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as unknown as Record<string, unknown>;\n\n return (\n typeof candidate.getState === \"function\" &&\n typeof candidate.getHistoryMetadata === \"function\"\n );\n}\n\nexport function isDevToolsActionableStore(\n value: unknown,\n): value is BitDevToolsActionableStore<object> {\n if (!isDevToolsReadableStore(value)) {\n return false;\n }\n\n const candidate = value as unknown as Record<string, unknown>;\n\n return (\n typeof candidate.undo === \"function\" &&\n typeof candidate.redo === \"function\" &&\n typeof candidate.reset === \"function\"\n );\n}\n\nexport function getDevToolsActionableStore(\n stores: Record<string, unknown>,\n storeId: string,\n): BitDevToolsActionableStore<object> | null {\n const candidate = stores[storeId];\n return isDevToolsActionableStore(candidate) ? candidate : null;\n}\n","import { bitBus } from \"../core\";\nimport type { BitBus } from \"../core\";\nimport type { BitBusStorePort } from \"../core\";\nimport { DEVTOOLS_PROTOCOL_VERSION, isDevToolsActionMessage } from \"./protocol\";\nimport { createDevToolsSnapshotMap } from \"./store-snapshot\";\nimport { getDevToolsActionableStore } from \"./store-port\";\n\nlet activeBridgeCleanup: (() => void) | null = null;\nconst STATE_BATCH_INTERVAL_MS = 50;\n\nexport function setupRemoteBridge(url: string, bus: BitBus = bitBus) {\n if (activeBridgeCleanup) {\n console.warn(\n \"[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado).\",\n );\n activeBridgeCleanup();\n }\n\n let socket: WebSocket | null = null;\n let unsubscribeBus: (() => void) | null = null;\n let heartbeatInterval: ReturnType<typeof setInterval>;\n let batchFlushTimeout: ReturnType<typeof setTimeout> | null = null;\n let reconnectTimer: ReturnType<typeof setTimeout> | undefined;\n const pendingStoreIds = new Set<string>();\n let isIntentionalDisconnect = false;\n\n const sendWhenOpen = (message: Record<string, unknown>) => {\n if (socket?.readyState !== WebSocket.OPEN) {\n return;\n }\n\n socket.send(JSON.stringify(message));\n };\n\n const flushPendingStoreUpdates = () => {\n if (pendingStoreIds.size === 0) {\n return;\n }\n\n const payload = createDevToolsSnapshotMap(\n Array.from(pendingStoreIds).reduce<\n Record<string, BitBusStorePort<object>>\n >((acc, storeId) => {\n const storeInstance = bus.stores[storeId];\n if (storeInstance) {\n acc[storeId] = storeInstance;\n }\n return acc;\n }, {}),\n );\n\n pendingStoreIds.clear();\n batchFlushTimeout = null;\n\n if (Object.keys(payload).length > 0) {\n sendWhenOpen({\n type: \"STATE_UPDATE\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload,\n });\n }\n };\n\n const scheduleStoreFlush = () => {\n if (batchFlushTimeout) {\n return;\n }\n\n batchFlushTimeout = setTimeout(() => {\n flushPendingStoreUpdates();\n }, STATE_BATCH_INTERVAL_MS);\n };\n\n const connect = () => {\n isIntentionalDisconnect = false;\n socket = new WebSocket(url);\n\n socket.onopen = () => {\n console.log(\"[bit-form] 🔌 Conectado ao CLI DevTools via WebSocket.\");\n\n sendWhenOpen({\n type: \"HELLO\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: { role: \"server\", protocolVersion: DEVTOOLS_PROTOCOL_VERSION },\n });\n\n const initialState = createDevToolsSnapshotMap(bus.stores);\n if (Object.keys(initialState).length > 0) {\n sendWhenOpen({\n type: \"STATE_UPDATE\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: initialState,\n });\n }\n\n unsubscribeBus = bus.subscribe((storeId, _newState) => {\n pendingStoreIds.add(storeId);\n scheduleStoreFlush();\n });\n\n heartbeatInterval = setInterval(() => {\n sendWhenOpen({\n type: \"PING\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n });\n }, 30000);\n };\n\n socket.onmessage = (event) => {\n try {\n const message = JSON.parse(event.data) as unknown;\n\n if (isDevToolsActionMessage(message)) {\n const { storeId, action } = message.payload;\n const store = getDevToolsActionableStore(bus.stores, storeId);\n\n if (!store) {\n return;\n }\n\n switch (action) {\n case \"undo\":\n store.undo();\n break;\n case \"redo\":\n store.redo();\n break;\n case \"reset\":\n store.reset();\n break;\n }\n }\n } catch (e) {\n console.warn(\"[bit-form] Erro ao processar comando do CLI:\", e);\n }\n };\n\n socket.onclose = () => {\n if (unsubscribeBus) unsubscribeBus();\n clearInterval(heartbeatInterval);\n if (batchFlushTimeout) {\n clearTimeout(batchFlushTimeout);\n batchFlushTimeout = null;\n }\n pendingStoreIds.clear();\n\n if (!isIntentionalDisconnect) {\n console.log(\"[bit-form] Conexão perdida. Reconectando em 3s...\");\n reconnectTimer = setTimeout(connect, 3000);\n } else {\n console.log(\"[bit-form] Ponte antiga encerrada com sucesso.\");\n }\n };\n };\n\n connect();\n\n const cleanup = () => {\n isIntentionalDisconnect = true;\n if (reconnectTimer) {\n clearTimeout(reconnectTimer);\n reconnectTimer = undefined;\n }\n\n if (unsubscribeBus) unsubscribeBus();\n clearInterval(heartbeatInterval);\n if (batchFlushTimeout) {\n clearTimeout(batchFlushTimeout);\n batchFlushTimeout = null;\n }\n pendingStoreIds.clear();\n if (\n socket &&\n (socket.readyState === WebSocket.OPEN ||\n socket.readyState === WebSocket.CONNECTING)\n ) {\n socket.close();\n }\n activeBridgeCleanup = null;\n };\n\n activeBridgeCleanup = cleanup;\n\n return cleanup;\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkPDFT5E2Ecjs = require('./chunk-PDFT5E2E.cjs');var _chunkAOMXTUA4cjs = require('./chunk-AOMXTUA4.cjs');var _chunkRHMJPKNVcjs = require('./chunk-RHMJPKNV.cjs');var _chunk7LCFS2JMcjs = require('./chunk-7LCFS2JM.cjs');var _chunk3SEB4YRQcjs = require('./chunk-3SEB4YRQ.cjs');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var _=_react.createContext.call(void 0, null),yt= exports.a =({store:t,children:e})=>{let r=_react.useMemo.call(void 0, ()=>_chunkPDFT5E2Ecjs.d.call(void 0, t),[t]);return _react.useEffect.call(void 0, ()=>()=>{_optionalChain([r, 'access', _2 => _2.feature, 'optionalAccess', _3 => _3.cleanup, 'optionalCall', _4 => _4()])},[r]),_jsxruntime.jsx.call(void 0, _.Provider,{value:r,children:e})},p= exports.b =()=>{let t=_react.useContext.call(void 0, _);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};function Tt(){let t=p(),[e,r]=_react.useState.call(void 0, null),[i,s]=_react.useState.call(void 0, null),o=_react.useRef.call(void 0, null),u=_react.useCallback.call(void 0, S=>_chunkAOMXTUA4cjs.b.call(void 0, t,S),[t]),a=_react.useCallback.call(void 0, ()=>{let S=_chunkAOMXTUA4cjs.a.call(void 0, t);return o.current&&o.current.isValid===S.isValid&&o.current.isDirty===S.isDirty&&o.current.isSubmitting===S.isSubmitting?o.current:(o.current=S,S)},[t]),n=_react.useSyncExternalStore.call(void 0, u,a,a),c=_react.useMemo.call(void 0, ()=>_chunkAOMXTUA4cjs.i.call(void 0, t,{clearSubmissionState:()=>{r(null),s(null)},setSubmissionResult:S=>{s(S)},setSubmissionError:S=>{r(S)}}),[t]),{controller:l,actions:P}=c,g=_react.useCallback.call(void 0, l.submit,[l]),y=_react.useCallback.call(void 0, l.onSubmit,[l]),F=_react.useCallback.call(void 0, l.reset,[l]),m=_react.useCallback.call(void 0, l.getValues,[l]),f=_react.useCallback.call(void 0, l.getErrors,[l]),b=_react.useCallback.call(void 0, l.getTouched,[l]),h=_react.useCallback.call(void 0, l.getDirtyValues,[l]),w=_react.useMemo.call(void 0, ()=>({...n,submitError:e,lastResponse:i}),[n,e,i]);return _react.useMemo.call(void 0, ()=>({meta:w,getValues:m,getErrors:f,getTouched:b,getDirtyValues:h,submit:g,onSubmit:y,reset:F,...P}),[w,m,f,b,h,g,y,F,P])}function At(t){let e=p(),r=_react.useMemo.call(void 0, ()=>_chunkAOMXTUA4cjs.g.call(void 0, e,t),[e,t]),i=_react.useRef.call(void 0, null),s=_react.useCallback.call(void 0, ()=>{let n=r.readItems();return i.current&&_chunk3SEB4YRQcjs.c.call(void 0, i.current,n)?i.current:(i.current=n,n)},[r]),o=_react.useCallback.call(void 0, n=>e.observe.subscribePath(t,()=>n()),[e,t]),u=_react.useSyncExternalStore.call(void 0, o,s,s),a=_react.useMemo.call(void 0, ()=>r.getFields(u),[r,u]);return _react.useEffect.call(void 0, ()=>()=>{_chunkAOMXTUA4cjs.k.call(void 0, e,`${t}.`)},[e,t]),_react.useMemo.call(void 0, ()=>({fields:a,length:u.length,append:r.append,prepend:r.prepend,insert:r.insert,remove:r.remove,move:r.move,swap:r.swap,replace:r.replace,clear:r.clear}),[a,u.length,r])}function It(t){let e=p(),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let n=e.read.getScopeStatus(t);return r.current&&_chunkRHMJPKNVcjs.b.call(void 0, r.current,n)?r.current:(r.current=n,n)},[e,t]),s=_react.useCallback.call(void 0, n=>e.observe.subscribeScopeStatus(t,()=>n()),[e,t]),o=_react.useSyncExternalStore.call(void 0, s,i,i),u=_react.useCallback.call(void 0, async()=>{let n=await e.feature.validate({scope:t}),c=e.read.getScopeErrors(t);return{valid:n,errors:c}},[e,t]),a=_react.useCallback.call(void 0, ()=>e.read.getScopeErrors(t),[e,t]);return _react.useMemo.call(void 0, ()=>({scopeName:t,status:o,errors:o.errors,validate:u,getErrors:a,isValid:!o.hasErrors,isDirty:o.isDirty}),[t,o,u,a])}function _t(t){if(t.length===0)throw new Error("useBitSteps: scopeNames must not be empty");let e=p(),[r,i]=_react.useState.call(void 0, 0),s=_nullishCoalesce(t[r], () => ("")),o=_react.useRef.call(void 0, null),u=_react.useCallback.call(void 0, ()=>{let m=e.read.getScopeStatus(s);return o.current&&_chunkRHMJPKNVcjs.b.call(void 0, o.current,m)?o.current:(o.current=m,m)},[e,s]),a=_react.useSyncExternalStore.call(void 0, _react.useCallback.call(void 0, m=>e.observe.subscribeScopeStatus(s,()=>m()),[e,s]),u,u),n=_react.useCallback.call(void 0, async()=>{let m=await e.feature.validate({scope:s}),f=e.read.getScopeErrors(s);return{valid:m,errors:f}},[e,s]),c=_react.useCallback.call(void 0, ()=>e.read.getScopeErrors(s),[e,s]),l=_react.useCallback.call(void 0, async()=>{let m=e.read.getScopeFields(s);if(e.feature.hasValidationsInProgress(m))return!1;let f=await e.feature.validate({scope:s});if(f)i(b=>Math.min(b+1,t.length-1));else{let b=e.read.getScopeErrors(s),h=Object.keys(b);h.length>0&&e.write.markFieldsTouched(h)}return f},[e,s,t.length]),P=_react.useCallback.call(void 0, ()=>{i(m=>Math.max(m-1,0))},[]),g=_react.useCallback.call(void 0, m=>{i(Math.max(0,Math.min(m-1,t.length-1)))},[t.length]),y=r===0,F=r>=t.length-1;return _react.useMemo.call(void 0, ()=>({step:r+1,stepIndex:r,scope:s,next:l,prev:P,goTo:g,isFirst:y,isLast:F,status:a,errors:a.errors,isValid:!a.hasErrors,isDirty:a.isDirty,validate:n,getErrors:c}),[r,s,l,P,g,y,F,a,n,c])}function Qt(t){let e=p(),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let o=_chunk3SEB4YRQcjs.f.call(void 0, e.read.getState().values,t);return r.current!==null&&_chunk3SEB4YRQcjs.c.call(void 0, r.current,o)?r.current:(r.current=o,o)},[e,t]),s=_react.useCallback.call(void 0, o=>e.observe.subscribePath(t,()=>o()),[e,t]);return _react.useSyncExternalStore.call(void 0, s,i,i)}function te(){let t=p(),e=_react.useCallback.call(void 0, c=>_chunkAOMXTUA4cjs.e.call(void 0, t,c),[t]),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let c=_chunkAOMXTUA4cjs.d.call(void 0, t);return r.current&&r.current.isSaving===c.isSaving&&r.current.isRestoring===c.isRestoring&&r.current.error===c.error?r.current:(r.current=c,c)},[t]),s=_react.useSyncExternalStore.call(void 0, e,i,i),o=_react.useCallback.call(void 0, async()=>t.feature.restorePersisted(),[t]),u=_react.useCallback.call(void 0, async()=>{await t.feature.forceSave()},[t]),a=_react.useCallback.call(void 0, async()=>{await t.feature.clearPersisted()},[t]),n=_react.useMemo.call(void 0, ()=>({isSaving:s.isSaving,isRestoring:s.isRestoring,error:s.error}),[s]);return _react.useMemo.call(void 0, ()=>({restore:o,save:u,clear:a,meta:n}),[o,u,a,n])}function ue(t){let e=p(),r=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>()=>_chunkAOMXTUA4cjs.j.call(void 0, e,t),[e,t]);let i=_react.useCallback.call(void 0, ()=>{let n=e.read.getFieldState(t),c=_chunk7LCFS2JMcjs.a.call(void 0, n,r.current);return r.current=c,c},[e,t]),s=_react.useCallback.call(void 0, n=>e.observe.subscribeFieldState(t,()=>n()),[e,t]),o=_react.useSyncExternalStore.call(void 0, s,i,i),u=_react.useCallback.call(void 0, n=>e.write.setField(t,n),[e,t]),a=_react.useCallback.call(void 0, ()=>e.write.blurField(t),[e,t]);return{fieldState:o,setValue:u,setBlur:a,store:e}}exports.a = yt; exports.b = p; exports.c = Tt; exports.d = ue; exports.e = At; exports.f = It; exports.g = _t; exports.h = Qt; exports.i = te;
|
|
2
|
+
//# sourceMappingURL=chunk-T36GFQHU.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/builds/kenji.ccp-group/bit-form/dist/chunk-T36GFQHU.cjs","../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts"],"names":["BitContext","createContext","BitFormProvider","store","children","adapted","useMemo","createFrameworkStoreAdapter","useEffect","jsx","useBitStore","useContext","useBitForm","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","useRef","subscribeMeta","useCallback","cb","subscribeFormMetaSnapshot","getMetaSnapshot","nextMeta","readFormMetaSnapshot","metaState","useSyncExternalStore","binding","createFrameworkFormBinding","result","error","controller","actions","submit","onSubmit","reset","getValues","getErrors","getTouched","getDirtyValues","meta","useBitArray","path","createArrayBinding","lastSnapshotRef","getSnapshot","next","valueEqual","subscribeArray","data","fields","cleanupRegisteredPrefix"],"mappings":"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","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-T36GFQHU.cjs","sourcesContent":[null,"import React, { createContext, useContext, useEffect, useMemo } from \"react\";\nimport type { BitFrameworkStoreApi, BitStoreApi } from \"../core\";\nimport { createFrameworkStoreAdapter } from \"../core\";\n\nconst BitContext = createContext<BitFrameworkStoreApi<any> | null>(null);\n\ninterface BitFormProviderProps<T extends object> {\n store: BitFrameworkStoreApi<T> | BitStoreApi<T>;\n children: React.ReactNode;\n}\n\ninterface BitFormProviderRuntimeProps {\n store: unknown;\n children: React.ReactNode;\n}\n\ntype BitFormProviderComponent = {\n <T extends object>(props: BitFormProviderProps<T>): React.ReactElement;\n (props: BitFormProviderRuntimeProps): React.ReactElement;\n};\n\nexport const BitFormProvider: BitFormProviderComponent = ({\n store,\n children,\n}: BitFormProviderRuntimeProps) => {\n const adapted = useMemo(() => createFrameworkStoreAdapter(store), [store]);\n\n useEffect(() => {\n return () => {\n (adapted as any).feature?.cleanup?.();\n };\n }, [adapted]);\n\n return (\n <BitContext.Provider value={adapted}>\n {children}\n </BitContext.Provider>\n );\n};\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitFrameworkStoreApi<T>;\n};\n","import {\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport {\n createFrameworkFormBinding,\n readFormMetaSnapshot,\n subscribeFormMetaSnapshot,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n const lastMeta = useRef<ReturnType<typeof readFormMetaSnapshot<T>> | null>(\n null,\n );\n\n const subscribeMeta = useCallback(\n (cb: () => void) => subscribeFormMetaSnapshot(store, cb),\n [store],\n );\n const getMetaSnapshot = useCallback(() => {\n const nextMeta = readFormMetaSnapshot(store);\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === nextMeta.isValid &&\n lastMeta.current.isDirty === nextMeta.isDirty &&\n lastMeta.current.isSubmitting === nextMeta.isSubmitting\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const metaState = useSyncExternalStore(\n subscribeMeta,\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const binding = useMemo(\n () =>\n createFrameworkFormBinding(store, {\n clearSubmissionState: () => {\n setSubmitError(null);\n setLastResponse(null);\n },\n setSubmissionResult: (result) => {\n setLastResponse(result);\n },\n setSubmissionError: (error) => {\n setSubmitError(error);\n },\n }),\n [store],\n );\n\n const { controller, actions } = binding;\n\n const submit = useCallback(controller.submit, [controller]);\n const onSubmit = useCallback(controller.onSubmit, [controller]);\n const reset = useCallback(controller.reset, [controller]);\n\n const getValues = useCallback(controller.getValues, [controller]);\n const getErrors = useCallback(controller.getErrors, [controller]);\n const getTouched = useCallback(controller.getTouched, [controller]);\n const getDirtyValues = useCallback(controller.getDirtyValues, [controller]);\n\n const meta = useMemo(\n () => ({\n ...metaState,\n submitError,\n lastResponse,\n }),\n [metaState, submitError, lastResponse],\n );\n\n return useMemo(\n () => ({\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit,\n onSubmit,\n reset,\n ...actions,\n }),\n [\n meta,\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n submit,\n onSubmit,\n reset,\n actions,\n ],\n );\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useSyncExternalStore,\n} from \"react\";\nimport {\n BitArrayPath,\n cleanupRegisteredPrefix,\n createArrayBinding,\n valueEqual,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const controller = useMemo(\n () => createArrayBinding<TForm, P>(store, path),\n [store, path],\n );\n type ArraySnapshot = ReturnType<typeof controller.readItems>;\n const lastSnapshotRef = useRef<ArraySnapshot | null>(null);\n\n const getSnapshot = useCallback(() => {\n const next = controller.readItems();\n\n if (lastSnapshotRef.current && valueEqual(lastSnapshotRef.current, next)) {\n return lastSnapshotRef.current;\n }\n\n lastSnapshotRef.current = next;\n return next;\n }, [controller]);\n\n const subscribeArray = useCallback(\n (cb: () => void) => store.observe.subscribePath(path, () => cb()),\n [store, path],\n );\n\n const data = useSyncExternalStore(subscribeArray, getSnapshot, getSnapshot);\n\n const fields = useMemo(() => controller.getFields(data), [controller, data]);\n\n useEffect(() => {\n return () => {\n cleanupRegisteredPrefix(store, `${path as string}.`);\n };\n }, [store, path]);\n\n return useMemo(\n () => ({\n fields,\n length: data.length,\n append: controller.append,\n prepend: controller.prepend,\n insert: controller.insert,\n remove: controller.remove,\n move: controller.move,\n swap: controller.swap,\n replace: controller.replace,\n clear: controller.clear,\n }),\n [fields, data.length, controller],\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["/builds/kenji.ccp-group/bit-form/dist/chunk-W5CLDRRE.cjs"],"names":[],"mappings":"AAAA","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-W5CLDRRE.cjs"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as i,b as a,c as f}from"./chunk-HTMNDK6W.js";import{ValidationError as c}from"yup";var y=(l,s)=>async(p,o)=>{let e={};if(o?.scopeFields&&o.scopeFields.length>0)return await Promise.all(o.scopeFields.map(async t=>{try{await l.validateAt(t,p,{abortEarly:s?.abortEarly??!1})}catch(r){if(r instanceof c)if(r.inner&&r.inner.length>0)for(let n of r.inner)n.path&&a(e,i(n.path),n.message);else r.path&&a(e,i(r.path),r.message);else throw r}})),e;try{return await l.validate(p,{abortEarly:s?.abortEarly??!1,stripUnknown:s?.stripUnknown??!1}),{}}catch(t){if(t instanceof c){for(let r of t.inner??[])r.path&&a(e,i(r.path),r.message);return f(e,o?.scopeFields)}throw t}};export{y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-WEZ5Q6YO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/resolvers/yup.ts"],"sourcesContent":["import { ValidationError, Schema } from \"yup\";\nimport { BitErrors } from \"../core\";\nimport {\n filterErrorsByScope,\n normalizeErrorPath,\n setFirstError,\n} from \"./utils\";\nimport { BitResolverScopeOptions, BitYupResolverConfig } from \"./types\";\n\nexport const yupResolver = <T extends object>(\n schema: Schema<T>,\n config?: BitYupResolverConfig,\n) => {\n return async (\n values: T,\n options?: BitResolverScopeOptions,\n ): Promise<BitErrors<T>> => {\n const errors: BitErrors<T> = {};\n\n if (options?.scopeFields && options.scopeFields.length > 0) {\n await Promise.all(\n options.scopeFields.map(async (field) => {\n try {\n await schema.validateAt(field, values, {\n abortEarly: config?.abortEarly ?? false,\n });\n } catch (error: unknown) {\n if (error instanceof ValidationError) {\n if (error.inner && error.inner.length > 0) {\n for (const item of error.inner) {\n if (item.path) {\n setFirstError(errors, normalizeErrorPath(item.path), item.message);\n }\n }\n } else if (error.path) {\n setFirstError(errors, normalizeErrorPath(error.path), error.message);\n }\n } else {\n throw error;\n }\n }\n }),\n );\n return errors;\n }\n\n try {\n await schema.validate(values, {\n abortEarly: config?.abortEarly ?? false,\n stripUnknown: config?.stripUnknown ?? false,\n });\n return {};\n } catch (error: unknown) {\n if (error instanceof ValidationError) {\n for (const item of error.inner ?? []) {\n if (item.path) {\n setFirstError(errors, normalizeErrorPath(item.path), item.message);\n }\n }\n\n return filterErrorsByScope(errors, options?.scopeFields);\n }\n\n throw error;\n }\n };\n};\n"],"mappings":"sDAAA,OAAS,mBAAAA,MAA+B,MASjC,IAAMC,EAAc,CACzBC,EACAC,IAEO,MACLC,EACAC,IAC0B,CAC1B,IAAMC,EAAuB,CAAC,EAE9B,GAAID,GAAS,aAAeA,EAAQ,YAAY,OAAS,EACvD,aAAM,QAAQ,IACZA,EAAQ,YAAY,IAAI,MAAOE,GAAU,CACvC,GAAI,CACF,MAAML,EAAO,WAAWK,EAAOH,EAAQ,CACrC,WAAYD,GAAQ,YAAc,EACpC,CAAC,CACH,OAASK,EAAgB,CACvB,GAAIA,aAAiBC,EACnB,GAAID,EAAM,OAASA,EAAM,MAAM,OAAS,EACtC,QAAWE,KAAQF,EAAM,MACnBE,EAAK,MACPC,EAAcL,EAAQM,EAAmBF,EAAK,IAAI,EAAGA,EAAK,OAAO,OAG5DF,EAAM,MACfG,EAAcL,EAAQM,EAAmBJ,EAAM,IAAI,EAAGA,EAAM,OAAO,MAGrE,OAAMA,CAEV,CACF,CAAC,CACH,EACOF,EAGT,GAAI,CACF,aAAMJ,EAAO,SAASE,EAAQ,CAC5B,WAAYD,GAAQ,YAAc,GAClC,aAAcA,GAAQ,cAAgB,EACxC,CAAC,EACM,CAAC,CACV,OAASK,EAAgB,CACvB,GAAIA,aAAiBC,EAAiB,CACpC,QAAWC,KAAQF,EAAM,OAAS,CAAC,EAC7BE,EAAK,MACPC,EAAcL,EAAQM,EAAmBF,EAAK,IAAI,EAAGA,EAAK,OAAO,EAIrE,OAAOG,EAAoBP,EAAQD,GAAS,WAAW,CACzD,CAEA,MAAMG,CACR,CACF","names":["ValidationError","yupResolver","schema","config","values","options","errors","field","error","ValidationError","item","setFirstError","normalizeErrorPath","filterErrorsByScope"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var X={"#":/\d/,A:/[a-zA-Z]/,X:/[a-zA-Z0-9]/,H:/[0-9a-fA-F]/,U:/[A-Z]/,L:/[a-z]/,"*":/./},C= exports.a =(r,n)=>{if(r==null||r==="")return"";let t=String(r),c=t.startsWith("-"),o=n?n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):"",p=new RegExp(`[^a-zA-Z0-9${o}]`,"g"),m=t.replace(p,"");return c&&m&&!m.startsWith("-")?`-${m}`:m},te= exports.b =(r,n=2)=>{if(typeof r=="number")return r;if(!r)return 0;let t=String(r),c=t.includes("-"),o=t.replace(/\D/g,"");if(!o)return 0;let p=parseInt(o,10)/Math.pow(10,n);return c?-p:p},i= exports.c =(r,n)=>{let t=s=>s.split("").filter(e=>X[e]).length,c=Array.isArray(r)?r:[r];if(c.length===0)return{format:s=>s==null||s===""?"":String(s),parse:s=>String(_nullishCoalesce(s, () => ("")))};let o=[...c].sort((s,e)=>t(s)-t(e)),p=s=>{let e=o[o.length-1];for(let l of o)if(s<=t(l)){e=l;break}return e},m=s=>{let e=C(s,_optionalChain([n, 'optionalAccess', _2 => _2.allowChars]));if(!e&&!_optionalChain([n, 'optionalAccess', _3 => _3.guide]))return"";let l=p(e.length),a=_optionalChain([n, 'optionalAccess', _4 => _4.guide])||!1,d=_optionalChain([n, 'optionalAccess', _5 => _5.placeholderChar])||"_",k="",f=0;for(let h=0;h<l.length;h++){let g=l[h],x=X[g];if(f<e.length){let H=e[f];if(x)if(g==="U"&&(H=H.toUpperCase()),g==="L"&&(H=H.toLowerCase()),x.test(H))k+=H,f++;else if(a)k+=d;else break;else k+=g,H===g&&f++}else if(a)k+=x?d:g;else break}return k};return{format:m,parse:s=>{if(_optionalChain([n, 'optionalAccess', _6 => _6.customParse]))return n.customParse(s);let e=m(s);if(_optionalChain([n, 'optionalAccess', _7 => _7.saveRaw])){if(_optionalChain([n, 'optionalAccess', _8 => _8.guide])){let a=(n.placeholderChar||"_").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=new RegExp(a,"g");return e.replace(d,"")}return e}return C(e,_optionalChain([n, 'optionalAccess', _9 => _9.allowChars]))}}},u= exports.d =({prefix:r="",suffix:n="",thousand:t,decimal:c,precision:o=2,allowNegative:p=!0,saveRaw:m=!1})=>{let s=e=>{if(e==null||e==="")return"";let l=String(e);l.length>200&&(l=l.slice(0,200));let a=typeof e=="number"?Math.abs(e).toFixed(o).replace(/\D/g,""):l.replace(/\D/g,"");if(!a&&String(e).includes("-")&&p)return"-";if(!a)return"";let d=20;a.length>d&&(a=a.slice(0,d)),a=a.padStart(o+1,"0");let k=o>0?a.slice(0,-o).replace(/^0+(?=\d)/,"")||"0":a.replace(/^0+(?=\d)/,"")||"0",f=o>0?a.slice(-o):"",h=k.replace(/\B(?=(\d{3})+(?!\d))/g,t),x=(typeof e=="number"?e<0:String(e).includes("-"))&&p?"-":"";return o===0?`${x}${r}${h}${n}`:`${x}${r}${h}${c}${f}${n}`};return{format:s,parse:e=>{let l=te(e,o),a=p?l:Math.abs(l);return m?s(a):a}}},$= exports.e =r=>{let n=t=>/^3[47]/.test(t)?"#### ###### #####":/^3(?:0[0-5]|[68])/.test(t)?"#### ###### ####":"#### #### #### ####";return{format:t=>{let c=C(t,_optionalChain([r, 'optionalAccess', _10 => _10.allowChars])),o=n(c);return i(o,r).format(t)},parse:t=>{let c=C(t,_optionalChain([r, 'optionalAccess', _11 => _11.allowChars])),o=n(c);return i(o,r).parse(t)}}},M= exports.f =r=>{let t=(_optionalChain([r, 'optionalAccess', _12 => _12.format])||"DD/MM/YYYY")==="YYYY-MM-DD",c=i(t?"####-##-##":"##/##/####",r);return{format:o=>{let p=C(o);if(!p)return"";let m,s,e;if(t?(e=p.substring(0,4),s=p.substring(4,6),m=p.substring(6,8)):(m=p.substring(0,2),s=p.substring(2,4),e=p.substring(4,8)),m.length===2){let a=parseInt(m,10);if(a>31&&(a=31),a===0&&(a=1),s.length===2){let d=parseInt(s,10),k=e.length===4?parseInt(e,10):e.length>0?parseInt(e.padEnd(4,"0"),10):0,g=_nullishCoalesce({1:31,2:k>0&&(k%4===0&&k%100!==0||k%400===0)?29:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}[d], () => (31));a>g&&(a=g)}m=String(a).padStart(2,"0")}if(s.length===2){let a=parseInt(s,10);a>12&&(s="12"),a===0&&(s="01")}let l=t?`${e}${s}${m}`:`${m}${s}${e}`;return c.format(l)},parse:o=>c.parse(o)}};var S=u({prefix:"R$ ",thousand:".",decimal:",",precision:2}),y= exports.h =u({prefix:"$",thousand:",",decimal:".",precision:2}),D= exports.i =u({suffix:" \u20AC",thousand:".",decimal:",",precision:2}),b= exports.j =u({prefix:"\xA3",thousand:",",decimal:".",precision:2}),I= exports.k =u({prefix:"\xA5",thousand:",",decimal:".",precision:0}),Y= exports.l =u({suffix:"%",thousand:".",decimal:",",precision:1}),B= exports.m =u({thousand:".",decimal:",",precision:2}),P= exports.n =u({thousand:".",decimal:",",precision:0}),R= exports.o =i("###.###.###-##"),A= exports.p =i("##.###.###/####-##"),U= exports.q =i(["(##) ####-####","(##) #####-####"]),N= exports.r =i("(##) ####-####"),V= exports.s =i("#####-###"),w= exports.t =M({format:"DD/MM/YYYY",guide:!0,customParse:r=>{let n=r.replace(/_/g,""),t=n.split("/");return t.length===3&&t[2].length===4?`${t[2]}-${t[1]}-${t[0]}`:n.replace(/\D/g,"")}}),L= exports.u =i("##:##"),E= exports.v =i("###########"),Z= exports.w =i(["##.###.###","##.###.###-X"]),z= exports.x =i(["###.###.###-##","##.###.###/####-##"]),F= exports.y ={format(r){let n=String(_nullishCoalesce(r, () => (""))).replace(/[^a-zA-Z0-9]/g,"").toUpperCase().slice(0,7);if(n.length===0)return"";let t=n.slice(0,3),c=n.slice(3);return c.length===0?t:c.length>=2&&/[A-Z]/.test(c[1])?`${t}${c}`:`${t}-${c}`},parse(r){return String(_nullishCoalesce(r, () => (""))).replace(/[^a-zA-Z0-9]/g,"").toUpperCase().slice(0,7)}},O= exports.z =i("(###) ###-####"),T= exports.A =i("#####-####"),G= exports.B =i("##/##/####"),J= exports.C =i("###-##-####"),_= exports.D =$(),j= exports.E =i("####"),W= exports.F =M({format:"YYYY-MM-DD",saveRaw:!0,guide:!0}),q= exports.G =i("HH:HH:HH:HH:HH:HH"),K= exports.H =i("#HHHHHH"),Q= exports.I =i("###.###.###.###"),v= exports.J =i("HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH"),ee= exports.K =i("UU## XXXX XXXX XXXX XXXX XXXX XXXX XXXX XX",{allowChars:" "});var ae={brl:S,usd:y,eur:D,gbp:b,jpy:I,percent:Y,decimal:B,int:P,integer:P,cpf:R,cnpj:A,cpfCnpj:z,rg:Z,cep:V,cnh:E,plate:F,phone:U,landline:N,date:w,time:L,usPhone:O,zipCode:T,dateUS:G,ssn:J,cc:_,cvv:j,dateISO:W,ip:Q,ipv6:v,mac:q,color:K,iban:ee};exports.a = C; exports.b = te; exports.c = i; exports.d = u; exports.e = $; exports.f = M; exports.g = S; exports.h = y; exports.i = D; exports.j = b; exports.k = I; exports.l = Y; exports.m = B; exports.n = P; exports.o = R; exports.p = A; exports.q = U; exports.r = N; exports.s = V; exports.t = w; exports.u = L; exports.v = E; exports.w = Z; exports.x = z; exports.y = F; exports.z = O; exports.A = T; exports.B = G; exports.C = J; exports.D = _; exports.E = j; exports.F = W; exports.G = q; exports.H = K; exports.I = Q; exports.J = v; exports.K = ee; exports.L = ae;
|
|
2
|
+
//# sourceMappingURL=chunk-X3DGA5UC.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/mask/creators.ts"],"names":["tokens","unmask","value","allowChars","stringValue","isNegative","escapedChars","regex","clean"],"mappings":"AASA,qrBAAMA,CAAAA,CAAmB,CACvB,GAAA,CAAK,IAAA,CACL,CAAA,CAAG,UAAA,CACH,CAAA,CAAG,aAAA,CACH,CAAA,CAAG,aAAA,CACH,CAAA,CAAG,OAAA,CACH,CAAA,CAAG,OAAA,CACH,GAAA,CAAK,GACP,CAAA,CAEaC,CAAAA,aAAS,CACpBC,CAAAA,CACAC,CAAAA,CAAAA,EACW,CACX,EAAA,CAAID,CAAAA,EAAU,IAAA,EAA+BA,CAAAA,GAAU,EAAA,CAAI,MAAO,EAAA,CAClE,IAAME,CAAAA,CAAc,MAAA,CAAOF,CAAK,CAAA,CAC1BG,CAAAA,CAAaD,CAAAA,CAAY,UAAA,CAAW,GAAG,CAAA,CAEvCE,CAAAA,CAAeH,CAAAA,CACjBA,CAAAA,CAAW,OAAA,CAAQ,qBAAA,CAAuB,MAAM,CAAA,CAChD,EAAA,CACEI,CAAAA,CAAQ,IAAI,MAAA,CAAO,CAAA,WAAA,EAAcD,CAAY,CAAA,CAAA,CAAA,CAAK,GAAG,CAAA,CAErDE,CAAAA,CAAQJ,CAAAA,CAAY,OAAA,CAAQG,CAAAA,CAAO,EAAE,CAAA,CAC3C,OAAOF,CAAAA,EAAcG,CAAAA,EAAS,CAACA,CAAAA,CAAM,UAAA,CAAW,GAAG,CAAA,CAAI,CAAA,CAAA,EAAIA,CAAK,CAAA,CAAA","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-X3DGA5UC.cjs","sourcesContent":["import {\n BitMask,\n CurrencyMaskConfig,\n DateMaskConfig,\n PatternMaskOptions,\n} from \"./types\";\n\ntype TokenMap = Record<string, RegExp>;\n\nconst tokens: TokenMap = {\n \"#\": /\\d/,\n A: /[a-zA-Z]/,\n X: /[a-zA-Z0-9]/,\n H: /[0-9a-fA-F]/,\n U: /[A-Z]/,\n L: /[a-z]/,\n \"*\": /./,\n};\n\nexport const unmask = (\n value: string | number | null | undefined,\n allowChars?: string,\n): string => {\n if (value === null || value === undefined || value === \"\") return \"\";\n const stringValue = String(value);\n const isNegative = stringValue.startsWith(\"-\");\n\n const escapedChars = allowChars\n ? allowChars.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n : \"\";\n const regex = new RegExp(`[^a-zA-Z0-9${escapedChars}]`, \"g\");\n\n const clean = stringValue.replace(regex, \"\");\n return isNegative && clean && !clean.startsWith(\"-\") ? `-${clean}` : clean;\n};\n\nexport const unmaskCurrency = (value: any, precision = 2): number => {\n if (typeof value === \"number\") return value;\n if (!value) return 0;\n\n const stringValue = String(value);\n const isNegative = stringValue.includes(\"-\");\n const digits = stringValue.replace(/\\D/g, \"\");\n\n if (!digits) return 0;\n\n const numberValue = parseInt(digits, 10) / Math.pow(10, precision);\n return isNegative ? -numberValue : numberValue;\n};\n\nexport const createPatternMask = (\n pattern: string | string[],\n options?: PatternMaskOptions,\n): BitMask => {\n const getRawLength = (p: string) =>\n p.split(\"\").filter((c) => tokens[c]).length;\n\n const patterns = Array.isArray(pattern) ? pattern : [pattern];\n\n if (patterns.length === 0) {\n return {\n format: (value: unknown) =>\n value === undefined || value === null || value === \"\"\n ? \"\"\n : String(value),\n parse: (value: unknown) => String(value ?? \"\"),\n };\n }\n\n const sortedPatterns = [...patterns].sort(\n (a, b) => getRawLength(a) - getRawLength(b),\n );\n\n const getActivePattern = (rawValueLength: number) => {\n let activePattern = sortedPatterns[sortedPatterns.length - 1];\n for (const candidate of sortedPatterns) {\n if (rawValueLength <= getRawLength(candidate)) {\n activePattern = candidate;\n break;\n }\n }\n return activePattern;\n };\n\n const formatValue = (value: string | number | null | undefined): string => {\n const stringVal = unmask(value, options?.allowChars);\n\n if (!stringVal && !options?.guide) {\n return \"\";\n }\n\n const activePattern = getActivePattern(stringVal.length);\n const showGuide = options?.guide || false;\n const placeholder = options?.placeholderChar || \"_\";\n\n let masked = \"\";\n let valueIndex = 0;\n\n for (let i = 0; i < activePattern.length; i++) {\n const patternChar = activePattern[i];\n const token = tokens[patternChar];\n\n if (valueIndex < stringVal.length) {\n let dataChar = stringVal[valueIndex];\n\n if (token) {\n if (patternChar === \"U\") dataChar = dataChar.toUpperCase();\n if (patternChar === \"L\") dataChar = dataChar.toLowerCase();\n\n if (token.test(dataChar)) {\n masked += dataChar;\n valueIndex++;\n } else if (showGuide) {\n masked += placeholder;\n } else {\n break;\n }\n } else {\n masked += patternChar;\n if (dataChar === patternChar) valueIndex++;\n }\n } else if (showGuide) {\n masked += token ? placeholder : patternChar;\n } else {\n break;\n }\n }\n\n return masked;\n };\n\n return {\n format: formatValue,\n parse: (value: string) => {\n if (options?.customParse) return options.customParse(value);\n\n const formatted = formatValue(value);\n\n if (options?.saveRaw) {\n if (options?.guide) {\n const placeholder = options.placeholderChar || \"_\";\n const escapedPlaceholder = placeholder.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n \"\\\\$&\",\n );\n const placeholderRegex = new RegExp(escapedPlaceholder, \"g\");\n\n return formatted.replace(placeholderRegex, \"\");\n }\n\n return formatted;\n }\n\n return unmask(formatted, options?.allowChars);\n },\n };\n};\n\nexport const createCurrencyMask = ({\n prefix = \"\",\n suffix = \"\",\n thousand,\n decimal,\n precision = 2,\n allowNegative = true,\n saveRaw = false,\n}: CurrencyMaskConfig): BitMask => {\n const formatFn = (value: any) => {\n if (value === undefined || value === null || value === \"\") return \"\";\n\n let rawString = String(value);\n // Truncate input BEFORE stripping non-digits to avoid ReDoS on huge strings\n if (rawString.length > 200) {\n rawString = rawString.slice(0, 200);\n }\n let stringValue =\n typeof value === \"number\"\n ? Math.abs(value).toFixed(precision).replace(/\\D/g, \"\")\n : rawString.replace(/\\D/g, \"\");\n\n if (!stringValue && String(value).includes(\"-\") && allowNegative)\n return \"-\";\n if (!stringValue) return \"\";\n\n // Truncate to prevent ReDoS on pathological input\n const MAX_CURRENCY_DIGITS = 20;\n if (stringValue.length > MAX_CURRENCY_DIGITS) {\n stringValue = stringValue.slice(0, MAX_CURRENCY_DIGITS);\n }\n\n stringValue = stringValue.padStart(precision + 1, \"0\");\n\n const integerPart =\n precision > 0\n ? stringValue.slice(0, -precision).replace(/^0+(?=\\d)/, \"\") || \"0\"\n : stringValue.replace(/^0+(?=\\d)/, \"\") || \"0\";\n const decimalPart = precision > 0 ? stringValue.slice(-precision) : \"\";\n\n const formattedInteger = integerPart.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n thousand,\n );\n\n const isNegative =\n typeof value === \"number\" ? value < 0 : String(value).includes(\"-\");\n const sign = isNegative && allowNegative ? \"-\" : \"\";\n\n if (precision === 0) {\n return `${sign}${prefix}${formattedInteger}${suffix}`;\n }\n\n return `${sign}${prefix}${formattedInteger}${decimal}${decimalPart}${suffix}`;\n };\n\n return {\n format: formatFn,\n parse: (value: string) => {\n const numericValue = unmaskCurrency(value, precision);\n const finalNumber = !allowNegative\n ? Math.abs(numericValue)\n : numericValue;\n if (saveRaw) return formatFn(finalNumber);\n return finalNumber;\n },\n };\n};\n\nexport const createCreditCardMask = (options?: PatternMaskOptions): BitMask => {\n // Função auxiliar para descobrir o padrão dinamicamente\n const getCardPattern = (rawValue: string) => {\n // Amex (American Express) começa com 34 ou 37 -> 15 dígitos\n if (/^3[47]/.test(rawValue)) {\n return \"#### ###### #####\";\n }\n // Diners Club começa com 300-305, 36 ou 38 -> 14 dígitos\n if (/^3(?:0[0-5]|[68])/.test(rawValue)) {\n return \"#### ###### ####\";\n }\n // Default: Visa, Mastercard, Discover, Elo, etc -> 16 dígitos\n return \"#### #### #### ####\";\n };\n\n return {\n format: (value: any) => {\n const stringVal = unmask(value, options?.allowChars);\n const pattern = getCardPattern(stringVal);\n const mask = createPatternMask(pattern, options);\n return mask.format(value);\n },\n parse: (value: string) => {\n const stringVal = unmask(value, options?.allowChars);\n const pattern = getCardPattern(stringVal);\n\n const mask = createPatternMask(pattern, options);\n return mask.parse(value);\n },\n };\n};\n\nexport const createDateMask = (config?: DateMaskConfig): BitMask => {\n const formatType = config?.format || \"DD/MM/YYYY\";\n const isISO = formatType === \"YYYY-MM-DD\";\n\n // Criamos a máscara base consoante o formato escolhido\n const baseMask = createPatternMask(\n isISO ? \"####-##-##\" : \"##/##/####\",\n config,\n );\n\n return {\n format: (value: any) => {\n let stringVal = unmask(value);\n if (!stringVal) return \"\";\n\n let day: string;\n let month: string;\n let year: string;\n\n // Separamos os componentes consoante o que o utilizador já digitou\n if (isISO) {\n year = stringVal.substring(0, 4);\n month = stringVal.substring(4, 6);\n day = stringVal.substring(6, 8);\n } else {\n day = stringVal.substring(0, 2);\n month = stringVal.substring(2, 4);\n year = stringVal.substring(4, 8);\n }\n\n // Validação do Dia (01 a 31) com limites por mês e ano bissexto\n if (day.length === 2) {\n let d = parseInt(day, 10);\n if (d > 31) d = 31;\n if (d === 0) d = 1;\n\n if (month.length === 2) {\n const m = parseInt(month, 10);\n const y =\n year.length === 4\n ? parseInt(year, 10)\n : year.length > 0\n ? parseInt(year.padEnd(4, \"0\"), 10)\n : 0;\n const isLeapYear =\n y > 0 && ((y % 4 === 0 && y % 100 !== 0) || y % 400 === 0);\n const daysInMonth: Record<number, number> = {\n 1: 31, 2: isLeapYear ? 29 : 28, 3: 31, 4: 30, 5: 31, 6: 30,\n 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31,\n };\n const maxDay = daysInMonth[m] ?? 31;\n if (d > maxDay) d = maxDay;\n }\n\n day = String(d).padStart(2, \"0\");\n }\n\n // Validação do Mês (01 a 12)\n if (month.length === 2) {\n const m = parseInt(month, 10);\n if (m > 12) month = \"12\";\n if (m === 0) month = \"01\";\n }\n\n // Reconstruímos a string limpa e passamos para o pattern normal\n const safeString = isISO\n ? `${year}${month}${day}`\n : `${day}${month}${year}`;\n\n return baseMask.format(safeString);\n },\n parse: (value: string) => {\n // Usamos a funcionalidade completa da máscara base (incluindo o saveRaw e o unmasking)\n return baseMask.parse(value);\n },\n };\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{d as r}from"./chunk-JVRTPL7W.js";function o(i,e){return e&&e.value===i.value&&e.error===i.error&&e.touched===i.touched&&e.isHidden===i.isHidden&&e.isRequired===i.isRequired&&e.isDirty===i.isDirty&&e.isValidating===i.isValidating?e:{value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating}}function d(i,e){return i===e?!0:!i||!e?!1:r(i.value,e.value)&&i.error===e.error&&i.touched===e.touched&&i.isHidden===e.isHidden&&i.isRequired===e.isRequired&&i.isDirty===e.isDirty&&i.isValidating===e.isValidating}var n=d;export{o as a,d as b,n as c};
|
|
2
|
+
//# sourceMappingURL=chunk-X3OFU2UH.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f as c}from"./chunk-JVRTPL7W.js";import{b as l,c as u}from"./chunk-DGEGYNQL.js";function m(e){let t=e.read.getState();return{isValid:t.isValid,isDirty:t.isDirty,isSubmitting:t.isSubmitting}}function f(e,t){return e.observe.subscribeFormMeta(()=>t())}function g(e,t){return t(m(e)),f(e,()=>{t(m(e))})}function B(e){return e.read.getPersistMetadata()}function v(e,t){return e.observe.subscribePersistMeta(()=>t())}function x(e,t){return t(B(e)),e.observe.subscribePersistMeta(o=>{t(o)})}function w(e,t){let o=!1,a=r=>Array.isArray(r)?r:r==null?[]:((!(typeof process<"u")||process.env.NODE_ENV!=="production")&&!o&&(o=!0,console.warn(`[bit-form] createArrayBinding expected an array at path "${String(t)}" but received ${typeof r}. Returning an empty array.`)),[]),p=r=>e.feature.getArrayItemIds(t,r);return{readItems(){let r=c(e.read.getState().values,t);return a(r)},getFields(r){let i=p(r.length);return r.map((n,s)=>({key:i[s]||`temp-${s}`,value:n,index:s}))},append(r){e.feature.pushItem(t,r)},prepend(r){e.feature.prependItem(t,r)},insert(r,i){e.feature.insertItem(t,r,i)},remove(r){e.feature.removeItem(t,r)},move(r,i){e.feature.moveItem(t,r,i)},swap(r,i){e.feature.swapItems(t,r,i)},replace(r){e.feature.replaceItems(t,r)},clear(){e.feature.clearItems(t)}}}function b(e,t,o){return{setValue:i=>{let n=o();e.setField(t,u(i,n))},setBlur:()=>e.blurField(t),displayValue:i=>l(i,o())}}function M(e,t){return{fieldController:b({setField(a,p){e.write.setField(a,p)},blurField(a){e.write.blurField(a)}},t,()=>e.feature.resolveMask(t))}}function F(e,t){e?.preventDefault?.(),t?.stopPropagation&&e?.stopPropagation?.()}function y(e,t,o){return{submit:i=>async n=>{F(n,o),await e.submit(i)},onSubmit:i=>async n=>{F(n,o),t.setSubmissionError(null);let s,d=await e.submit(async(P,S)=>{s=await i(P,S)});if(d.status==="submitted"){t.setSubmissionResult(s),t.setSubmissionError(null);return}d.status==="failed"&&t.setSubmissionError(d.error instanceof Error?d.error:new Error(String(d.error)))},reset:()=>{e.reset(),t.clearSubmissionState()},getValues:()=>e.getState().values,getErrors:()=>e.getState().errors,getTouched:()=>e.getState().touched,getDirtyValues:()=>e.getDirtyValues()}}function T(e,t,o){let a={getState:e.read.getState.bind(e.read),getDirtyValues:e.read.getDirtyValues.bind(e.read),submit:e.write.submit.bind(e.write),reset:e.write.reset.bind(e.write),setServerErrors:e.write.setServerErrors.bind(e.write)};return{controller:y(a,t,o),actions:{setField:e.write.setField.bind(e.write),blurField:e.write.blurField.bind(e.write),setValues:e.write.setValues.bind(e.write),setError:e.write.setError.bind(e.write),setErrors:e.write.setErrors.bind(e.write),setServerErrors:e.write.setServerErrors.bind(e.write),validate:e.feature.validate.bind(e.feature),transaction:e.write.transaction.bind(e.write)}}}function A(e,t){e.feature?.unregisterField?.(t)}function k(e,t){e.feature?.unregisterPrefix?.(t)}export{m as a,f as b,g as c,B as d,v as e,x as f,w as g,M as h,T as i,A as j,k};
|
|
2
|
+
//# sourceMappingURL=chunk-XPY6TCOO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/bindings/form-meta.ts","../src/core/bindings/persist-meta.ts","../src/core/bindings/array-controller.ts","../src/core/field-controller.ts","../src/core/bindings/field-binding.ts","../src/core/form-controller.ts","../src/core/bindings/form-binding.ts","../src/core/bindings/framework-cleanup.ts"],"sourcesContent":["import type { BitFormMeta } from \"../store/contracts/public/meta-types\";\nimport type { BitStoreApi } from \"../store/contracts/public/store-api-types\";\n\nexport function readFormMetaSnapshot<T extends object>(\n store: BitStoreApi<T>,\n): BitFormMeta {\n const state = store.read.getState();\n return {\n isValid: state.isValid,\n isDirty: state.isDirty,\n isSubmitting: state.isSubmitting,\n };\n}\n\nexport function subscribeFormMetaSnapshot<T extends object>(\n store: BitStoreApi<T>,\n listener: () => void,\n): () => void {\n return store.observe.subscribeFormMeta(() => listener());\n}\n\nexport function observeFormMetaSnapshot<T extends object>(\n store: BitStoreApi<T>,\n listener: (meta: BitFormMeta) => void,\n): () => void {\n listener(readFormMetaSnapshot(store));\n\n return subscribeFormMetaSnapshot(store, () => {\n listener(readFormMetaSnapshot(store));\n });\n}\n","import type { BitPersistMetadata } from \"../store/contracts/types\";\n\ntype BitPersistMetaReadableStore = {\n read: {\n getPersistMetadata(): BitPersistMetadata;\n };\n observe: {\n subscribePersistMeta(\n listener: (meta: BitPersistMetadata) => void,\n ): () => void;\n };\n};\n\nexport function readPersistMetaSnapshot(store: {\n read: {\n getPersistMetadata(): BitPersistMetadata;\n };\n}): BitPersistMetadata {\n return store.read.getPersistMetadata();\n}\n\nexport function subscribePersistMetaSnapshot(\n store: BitPersistMetaReadableStore,\n listener: () => void,\n): () => void {\n return store.observe.subscribePersistMeta(() => listener());\n}\n\nexport function observePersistMetaSnapshot(\n store: BitPersistMetaReadableStore,\n listener: (meta: BitPersistMetadata) => void,\n): () => void {\n listener(readPersistMetaSnapshot(store));\n\n return store.observe.subscribePersistMeta((meta) => {\n listener(meta);\n });\n}\n","import type { BitStoreApi } from \"../store/contracts/public/store-api-types\";\nimport type {\n BitArrayItem,\n BitArrayPath,\n BitPathValue,\n} from \"../store/contracts/types\";\nimport type { BitArrayBinding, BitArrayBindingField } from \"../types/bindings\";\nimport { getDeepValue } from \"../utils\";\n\nexport type { BitArrayBinding, BitArrayBindingField };\n\nexport function createArrayBinding<\n TForm extends object,\n P extends BitArrayPath<TForm>,\n>(store: BitStoreApi<TForm>, path: P): BitArrayBinding<TForm, P> {\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n let warnedTypeMismatch = false;\n\n const normalizeItems = (value: unknown): Item[] => {\n if (Array.isArray(value)) {\n return value as Item[];\n }\n\n if (value == null) {\n return [];\n }\n\n const isDev =\n typeof process !== \"undefined\"\n ? process.env.NODE_ENV !== \"production\"\n : true;\n\n if (isDev && !warnedTypeMismatch) {\n warnedTypeMismatch = true;\n console.warn(\n `[bit-form] createArrayBinding expected an array at path \"${String(\n path,\n )}\" but received ${typeof value}. Returning an empty array.`,\n );\n }\n\n return [];\n };\n\n const getIds = (length: number) =>\n store.feature.getArrayItemIds(path, length);\n\n return {\n readItems() {\n const value = getDeepValue(\n store.read.getState().values,\n path as string,\n ) as BitPathValue<TForm, P> | undefined;\n return normalizeItems(value);\n },\n\n getFields(items) {\n const ids = getIds(items.length);\n return items.map((item, index) => ({\n key: ids[index] || `temp-${index}`,\n value: item,\n index,\n }));\n },\n\n append(value) {\n store.feature.pushItem(path, value);\n },\n\n prepend(value) {\n store.feature.prependItem(path, value);\n },\n\n insert(index, value) {\n store.feature.insertItem(path, index, value);\n },\n\n remove(index) {\n store.feature.removeItem(path, index);\n },\n\n move(from, to) {\n store.feature.moveItem(path, from, to);\n },\n\n swap(indexA, indexB) {\n store.feature.swapItems(path, indexA, indexB);\n },\n\n replace(items) {\n store.feature.replaceItems(path, items);\n },\n\n clear() {\n store.feature.clearItems(path);\n },\n };\n}\n","import { formatMaskedValue, parseMaskedInput } from \"./mask/field-binding\";\nimport type { BitMask } from \"./mask/types\";\nimport type { BitPath } from \"./store/contracts/types\";\n\ntype BitMaskedFieldControllerStore<TForm extends object> = {\n setField(path: BitPath<TForm>, value: unknown): void;\n blurField(path: BitPath<TForm>): void;\n};\n\nexport function createMaskedFieldController<\n TForm extends object,\n P extends BitPath<TForm>,\n>(\n store: BitMaskedFieldControllerStore<TForm>,\n path: P,\n resolveMask: () => BitMask | undefined,\n) {\n const setValue = (value: unknown) => {\n const mask = resolveMask();\n store.setField(path, parseMaskedInput(value, mask));\n };\n\n const setBlur = () => store.blurField(path);\n\n const displayValue = (value: unknown) =>\n formatMaskedValue(value, resolveMask());\n\n return {\n setValue,\n setBlur,\n displayValue,\n };\n}\n","import { createMaskedFieldController } from \"../field-controller\";\nimport type { BitStoreApi } from \"../store/contracts/public/store-api-types\";\nimport type { BitPath, BitPathValue } from \"../store/contracts/types\";\n\nexport function createFrameworkMaskedFieldBinding<\n TForm extends object,\n P extends BitPath<TForm>,\n>(store: BitStoreApi<TForm>, path: P) {\n const fieldStore = {\n setField<PPath extends BitPath<TForm>>(\n targetPath: PPath,\n value: BitPathValue<TForm, PPath>,\n ) {\n store.write.setField(targetPath, value);\n },\n blurField<PPath extends BitPath<TForm>>(targetPath: PPath) {\n store.write.blurField(targetPath);\n },\n };\n\n return {\n fieldController: createMaskedFieldController(fieldStore, path, () =>\n store.feature.resolveMask(path as string),\n ),\n };\n}\n","import type { BitFormControllerStoreApi } from \"./store/contracts/public/store-api-types\";\n\nexport type BitFormDomEvent = {\n preventDefault?: () => void;\n stopPropagation?: () => void;\n};\n\nexport interface BitFormControllerRuntime {\n clearSubmissionState: () => void;\n setSubmissionResult: (result: unknown) => void;\n setSubmissionError: (error: Error | null) => void;\n}\n\nexport interface BitFormControllerOptions {\n stopPropagation?: boolean;\n}\n\nexport function preventFormEvent(\n event?: BitFormDomEvent,\n options?: BitFormControllerOptions,\n) {\n event?.preventDefault?.();\n if (options?.stopPropagation) {\n event?.stopPropagation?.();\n }\n}\n\nexport function createFormController<T extends object>(\n store: BitFormControllerStoreApi<T>,\n runtime: BitFormControllerRuntime,\n options?: BitFormControllerOptions,\n) {\n const submit = (\n onSuccess: (\n values: T,\n dirtyValues?: Partial<T>,\n ) => unknown | Promise<unknown>,\n ) => {\n return async (event?: BitFormDomEvent): Promise<void> => {\n preventFormEvent(event, options);\n await store.submit(onSuccess);\n };\n };\n\n const onSubmit = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return async (event?: BitFormDomEvent): Promise<void> => {\n preventFormEvent(event, options);\n runtime.setSubmissionError(null);\n\n let submissionResult: unknown;\n const submitResult = await store.submit(async (values, dirtyValues) => {\n submissionResult = await handler(values, dirtyValues);\n });\n\n if (submitResult.status === \"submitted\") {\n runtime.setSubmissionResult(submissionResult);\n runtime.setSubmissionError(null);\n return;\n }\n\n if (submitResult.status === \"failed\") {\n runtime.setSubmissionError(\n submitResult.error instanceof Error\n ? submitResult.error\n : new Error(String(submitResult.error)),\n );\n }\n };\n };\n\n const reset = () => {\n store.reset();\n runtime.clearSubmissionState();\n };\n\n return {\n submit,\n onSubmit,\n reset,\n getValues: () => store.getState().values,\n getErrors: () => store.getState().errors,\n getTouched: () => store.getState().touched,\n getDirtyValues: () => store.getDirtyValues(),\n };\n}\n","import type {\n BitFormControllerOptions,\n BitFormControllerRuntime,\n} from \"../form-controller\";\nimport { createFormController } from \"../form-controller\";\nimport type { BitStoreApi } from \"../store/contracts/public/store-api-types\";\n\nexport function createFrameworkFormBinding<T extends object>(\n store: BitStoreApi<T>,\n runtime: BitFormControllerRuntime,\n options?: BitFormControllerOptions,\n) {\n const controllerStore = {\n getState: store.read.getState,\n getDirtyValues: store.read.getDirtyValues,\n submit: store.write.submit,\n reset: store.write.reset,\n setServerErrors: store.write.setServerErrors,\n };\n\n return {\n controller: createFormController(controllerStore, runtime, options),\n actions: {\n setField: store.write.setField.bind(store.write),\n blurField: store.write.blurField.bind(store.write),\n setValues: store.write.setValues.bind(store.write),\n setError: store.write.setError.bind(store.write),\n setErrors: store.write.setErrors.bind(store.write),\n setServerErrors: store.write.setServerErrors.bind(store.write),\n validate: store.feature.validate.bind(store.feature),\n transaction: store.write.transaction.bind(store.write),\n },\n };\n}\n","type FieldCleanupStore = {\n feature?: {\n unregisterField?: (path: string) => void;\n };\n};\n\ntype PrefixCleanupStore = {\n feature?: {\n unregisterPrefix?: (prefix: string) => void;\n };\n};\n\nexport function cleanupRegisteredField(\n store: FieldCleanupStore,\n path: string,\n): void {\n store.feature?.unregisterField?.(path);\n}\n\nexport function cleanupRegisteredPrefix(\n store: PrefixCleanupStore,\n prefix: string,\n): void {\n store.feature?.unregisterPrefix?.(prefix);\n}\n"],"mappings":"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","names":["readFormMetaSnapshot","store","state","subscribeFormMetaSnapshot","listener","observeFormMetaSnapshot","readPersistMetaSnapshot","store","subscribePersistMetaSnapshot","listener","observePersistMetaSnapshot","meta","createArrayBinding","store","path","warnedTypeMismatch","normalizeItems","value","getIds","length","getDeepValue","items","ids","item","index","from","to","indexA","indexB","createMaskedFieldController","store","path","resolveMask","value","mask","parseMaskedInput","formatMaskedValue","createFrameworkMaskedFieldBinding","store","path","createMaskedFieldController","targetPath","value","preventFormEvent","event","options","createFormController","store","runtime","onSuccess","handler","submissionResult","submitResult","values","dirtyValues","createFrameworkFormBinding","store","runtime","options","controllerStore","createFormController","cleanupRegisteredField","store","path","cleanupRegisteredPrefix","prefix"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/bindings/form-meta.ts","../src/core/bindings/persist-meta.ts","../src/core/bindings/array-controller.ts","../src/core/field-controller.ts","../src/core/bindings/field-binding.ts","../src/core/form-controller.ts","../src/core/bindings/form-binding.ts","../src/core/bindings/framework-cleanup.ts"],"sourcesContent":["import type { BitFormMeta } from \"../store/contracts/public/meta-types\";\nimport type { BitStoreApi } from \"../store/contracts/public/store-api-types\";\n\nexport function readFormMetaSnapshot<T extends object>(\n store: BitStoreApi<T>,\n): BitFormMeta {\n const state = store.read.getState();\n return {\n isValid: state.isValid,\n isDirty: state.isDirty,\n isSubmitting: state.isSubmitting,\n };\n}\n\nexport function subscribeFormMetaSnapshot<T extends object>(\n store: BitStoreApi<T>,\n listener: () => void,\n): () => void {\n return store.observe.subscribeFormMeta(() => listener());\n}\n\nexport function observeFormMetaSnapshot<T extends object>(\n store: BitStoreApi<T>,\n listener: (meta: BitFormMeta) => void,\n): () => void {\n listener(readFormMetaSnapshot(store));\n\n return subscribeFormMetaSnapshot(store, () => {\n listener(readFormMetaSnapshot(store));\n });\n}\n","import type { BitPersistMetadata } from \"../store/contracts/types\";\n\ntype BitPersistMetaReadableStore = {\n read: {\n getPersistMetadata(): BitPersistMetadata;\n };\n observe: {\n subscribePersistMeta(\n listener: (meta: BitPersistMetadata) => void,\n ): () => void;\n };\n};\n\nexport function readPersistMetaSnapshot(store: {\n read: {\n getPersistMetadata(): BitPersistMetadata;\n };\n}): BitPersistMetadata {\n return store.read.getPersistMetadata();\n}\n\nexport function subscribePersistMetaSnapshot(\n store: BitPersistMetaReadableStore,\n listener: () => void,\n): () => void {\n return store.observe.subscribePersistMeta(() => listener());\n}\n\nexport function observePersistMetaSnapshot(\n store: BitPersistMetaReadableStore,\n listener: (meta: BitPersistMetadata) => void,\n): () => void {\n listener(readPersistMetaSnapshot(store));\n\n return store.observe.subscribePersistMeta((meta) => {\n listener(meta);\n });\n}\n","import type { BitStoreApi } from \"../store/contracts/public/store-api-types\";\nimport type {\n BitArrayItem,\n BitArrayPath,\n BitPathValue,\n} from \"../store/contracts/types\";\nimport type { BitArrayBinding, BitArrayBindingField } from \"../types/bindings\";\nimport { getDeepValue } from \"../utils\";\n\nexport type { BitArrayBinding, BitArrayBindingField };\n\nexport function createArrayBinding<\n TForm extends object,\n P extends BitArrayPath<TForm>,\n>(store: BitStoreApi<TForm>, path: P): BitArrayBinding<TForm, P> {\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n let warnedTypeMismatch = false;\n\n const normalizeItems = (value: unknown): Item[] => {\n if (Array.isArray(value)) {\n return value as Item[];\n }\n\n if (value == null) {\n return [];\n }\n\n const isDev =\n typeof process !== \"undefined\"\n ? process.env.NODE_ENV !== \"production\"\n : true;\n\n if (isDev && !warnedTypeMismatch) {\n warnedTypeMismatch = true;\n console.warn(\n `[bit-form] createArrayBinding expected an array at path \"${String(\n path,\n )}\" but received ${typeof value}. Returning an empty array.`,\n );\n }\n\n return [];\n };\n\n const getIds = (length: number) =>\n store.feature.getArrayItemIds(path, length);\n\n return {\n readItems() {\n const value = getDeepValue(\n store.read.getState().values,\n path as string,\n ) as BitPathValue<TForm, P> | undefined;\n return normalizeItems(value);\n },\n\n getFields(items) {\n const ids = getIds(items.length);\n return items.map((item, index) => ({\n key: ids[index] || `temp-${index}`,\n value: item,\n index,\n }));\n },\n\n append(value) {\n store.feature.pushItem(path, value);\n },\n\n prepend(value) {\n store.feature.prependItem(path, value);\n },\n\n insert(index, value) {\n store.feature.insertItem(path, index, value);\n },\n\n remove(index) {\n store.feature.removeItem(path, index);\n },\n\n move(from, to) {\n store.feature.moveItem(path, from, to);\n },\n\n swap(indexA, indexB) {\n store.feature.swapItems(path, indexA, indexB);\n },\n\n replace(items) {\n store.feature.replaceItems(path, items);\n },\n\n clear() {\n store.feature.clearItems(path);\n },\n };\n}\n","import { formatMaskedValue, parseMaskedInput } from \"./mask/field-binding\";\nimport type { BitMask } from \"./mask/types\";\nimport type { BitPath } from \"./store/contracts/types\";\n\ntype BitMaskedFieldControllerStore<TForm extends object> = {\n setField(path: BitPath<TForm>, value: unknown): void;\n blurField(path: BitPath<TForm>): void;\n};\n\nexport function createMaskedFieldController<\n TForm extends object,\n P extends BitPath<TForm>,\n>(\n store: BitMaskedFieldControllerStore<TForm>,\n path: P,\n resolveMask: () => BitMask | undefined,\n) {\n const setValue = (value: unknown) => {\n const mask = resolveMask();\n store.setField(path, parseMaskedInput(value, mask));\n };\n\n const setBlur = () => store.blurField(path);\n\n const displayValue = (value: unknown) =>\n formatMaskedValue(value, resolveMask());\n\n return {\n setValue,\n setBlur,\n displayValue,\n };\n}\n","import { createMaskedFieldController } from \"../field-controller\";\nimport type { BitStoreApi } from \"../store/contracts/public/store-api-types\";\nimport type { BitPath, BitPathValue } from \"../store/contracts/types\";\n\nexport function createFrameworkMaskedFieldBinding<\n TForm extends object,\n P extends BitPath<TForm>,\n>(store: BitStoreApi<TForm>, path: P) {\n const fieldStore = {\n setField<PPath extends BitPath<TForm>>(\n targetPath: PPath,\n value: BitPathValue<TForm, PPath>,\n ) {\n store.write.setField(targetPath, value);\n },\n blurField<PPath extends BitPath<TForm>>(targetPath: PPath) {\n store.write.blurField(targetPath);\n },\n };\n\n return {\n fieldController: createMaskedFieldController(fieldStore, path, () =>\n store.feature.resolveMask(path as string),\n ),\n };\n}\n","import type { BitFormControllerStoreApi } from \"./store/contracts/public/store-api-types\";\n\nexport type BitFormDomEvent = {\n preventDefault?: () => void;\n stopPropagation?: () => void;\n};\n\nexport interface BitFormControllerRuntime {\n clearSubmissionState: () => void;\n setSubmissionResult: (result: unknown) => void;\n setSubmissionError: (error: Error | null) => void;\n}\n\nexport interface BitFormControllerOptions {\n stopPropagation?: boolean;\n}\n\nexport function preventFormEvent(\n event?: BitFormDomEvent,\n options?: BitFormControllerOptions,\n) {\n event?.preventDefault?.();\n if (options?.stopPropagation) {\n event?.stopPropagation?.();\n }\n}\n\nexport function createFormController<T extends object>(\n store: BitFormControllerStoreApi<T>,\n runtime: BitFormControllerRuntime,\n options?: BitFormControllerOptions,\n) {\n const submit = (\n onSuccess: (\n values: T,\n dirtyValues?: Partial<T>,\n ) => unknown | Promise<unknown>,\n ) => {\n return async (event?: BitFormDomEvent): Promise<void> => {\n preventFormEvent(event, options);\n await store.submit(onSuccess);\n };\n };\n\n const onSubmit = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return async (event?: BitFormDomEvent): Promise<void> => {\n preventFormEvent(event, options);\n runtime.setSubmissionError(null);\n\n let submissionResult: unknown;\n const submitResult = await store.submit(async (values, dirtyValues) => {\n submissionResult = await handler(values, dirtyValues);\n });\n\n if (submitResult.status === \"submitted\") {\n runtime.setSubmissionResult(submissionResult);\n runtime.setSubmissionError(null);\n return;\n }\n\n if (submitResult.status === \"failed\") {\n runtime.setSubmissionError(\n submitResult.error instanceof Error\n ? submitResult.error\n : new Error(String(submitResult.error)),\n );\n }\n };\n };\n\n const reset = () => {\n store.reset();\n runtime.clearSubmissionState();\n };\n\n return {\n submit,\n onSubmit,\n reset,\n getValues: () => store.getState().values,\n getErrors: () => store.getState().errors,\n getTouched: () => store.getState().touched,\n getDirtyValues: () => store.getDirtyValues(),\n };\n}\n","import type {\n BitFormControllerOptions,\n BitFormControllerRuntime,\n} from \"../form-controller\";\nimport { createFormController } from \"../form-controller\";\nimport type { BitStoreApi } from \"../store/contracts/public/store-api-types\";\n\nexport function createFrameworkFormBinding<T extends object>(\n store: BitStoreApi<T>,\n runtime: BitFormControllerRuntime,\n options?: BitFormControllerOptions,\n) {\n const controllerStore = {\n getState: store.read.getState.bind(store.read),\n getDirtyValues: store.read.getDirtyValues.bind(store.read),\n submit: store.write.submit.bind(store.write),\n reset: store.write.reset.bind(store.write),\n setServerErrors: store.write.setServerErrors.bind(store.write),\n };\n\n return {\n controller: createFormController(controllerStore, runtime, options),\n actions: {\n setField: store.write.setField.bind(store.write),\n blurField: store.write.blurField.bind(store.write),\n setValues: store.write.setValues.bind(store.write),\n setError: store.write.setError.bind(store.write),\n setErrors: store.write.setErrors.bind(store.write),\n setServerErrors: store.write.setServerErrors.bind(store.write),\n validate: store.feature.validate.bind(store.feature),\n transaction: store.write.transaction.bind(store.write),\n },\n };\n}\n","type FieldCleanupStore = {\n feature?: {\n unregisterField?: (path: string) => void;\n };\n};\n\ntype PrefixCleanupStore = {\n feature?: {\n unregisterPrefix?: (prefix: string) => void;\n };\n};\n\nexport function cleanupRegisteredField(\n store: FieldCleanupStore,\n path: string,\n): void {\n store.feature?.unregisterField?.(path);\n}\n\nexport function cleanupRegisteredPrefix(\n store: PrefixCleanupStore,\n prefix: string,\n): void {\n store.feature?.unregisterPrefix?.(prefix);\n}\n"],"mappings":"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","names":["readFormMetaSnapshot","store","state","subscribeFormMetaSnapshot","listener","observeFormMetaSnapshot","readPersistMetaSnapshot","store","subscribePersistMetaSnapshot","listener","observePersistMetaSnapshot","meta","createArrayBinding","store","path","warnedTypeMismatch","normalizeItems","value","getIds","length","getDeepValue","items","ids","item","index","from","to","indexA","indexB","createMaskedFieldController","store","path","resolveMask","value","mask","parseMaskedInput","formatMaskedValue","createFrameworkMaskedFieldBinding","store","path","createMaskedFieldController","targetPath","value","preventFormEvent","event","options","createFormController","store","runtime","onSuccess","handler","submissionResult","submitResult","values","dirtyValues","createFrameworkFormBinding","store","runtime","options","controllerStore","createFormController","cleanupRegisteredField","store","path","cleanupRegisteredPrefix","prefix"]}
|