@getodk/xforms-engine 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/dist/client/BaseNode.d.ts +4 -4
  2. package/dist/client/BaseValueNode.d.ts +7 -3
  3. package/dist/client/RootNode.d.ts +20 -16
  4. package/dist/client/UploadNode.d.ts +53 -0
  5. package/dist/client/attachments/InstanceAttachmentMeta.d.ts +8 -0
  6. package/dist/client/attachments/InstanceAttachmentsConfig.d.ts +8 -0
  7. package/dist/client/constants.d.ts +11 -12
  8. package/dist/client/form/CreateFormInstance.d.ts +14 -0
  9. package/dist/client/form/EditFormInstance.d.ts +62 -0
  10. package/dist/client/form/FormInstance.d.ts +104 -0
  11. package/dist/client/form/FormInstanceConfig.d.ts +19 -0
  12. package/dist/client/form/FormResource.d.ts +1 -0
  13. package/dist/client/form/LoadForm.d.ts +79 -0
  14. package/dist/client/form/LoadFormResult.d.ts +67 -0
  15. package/dist/client/form/RestoreFormInstance.d.ts +8 -0
  16. package/dist/client/hierarchy.d.ts +4 -5
  17. package/dist/client/index.d.ts +40 -11
  18. package/dist/client/node-types.d.ts +2 -3
  19. package/dist/client/repeat/BaseRepeatRangeNode.d.ts +3 -4
  20. package/dist/client/repeat/RepeatInstanceNode.d.ts +4 -5
  21. package/dist/client/repeat/RepeatRangeControlledNode.d.ts +2 -2
  22. package/dist/client/repeat/RepeatRangeUncontrolledNode.d.ts +2 -2
  23. package/dist/client/resources.d.ts +1 -1
  24. package/dist/client/serialization/InstanceData.d.ts +14 -0
  25. package/dist/client/serialization/InstanceFile.d.ts +6 -0
  26. package/dist/client/serialization/InstancePayload.d.ts +93 -0
  27. package/dist/client/serialization/InstancePayloadOptions.d.ts +24 -0
  28. package/dist/client/serialization/InstanceState.d.ts +12 -0
  29. package/dist/client/submission/{SubmissionDefinition.d.ts → SubmissionMeta.d.ts} +1 -1
  30. package/dist/entrypoints/FormInstance.d.ts +20 -0
  31. package/dist/entrypoints/FormResult/BaseFormResult.d.ts +22 -0
  32. package/dist/entrypoints/FormResult/BaseInstantiableFormResult.d.ts +25 -0
  33. package/dist/entrypoints/FormResult/FormFailureResult.d.ts +17 -0
  34. package/dist/entrypoints/FormResult/FormSuccessResult.d.ts +15 -0
  35. package/dist/entrypoints/FormResult/FormWarningResult.d.ts +15 -0
  36. package/dist/entrypoints/createInstance.d.ts +9 -0
  37. package/dist/entrypoints/editInstance.d.ts +9 -0
  38. package/dist/entrypoints/index.d.ts +4 -0
  39. package/dist/entrypoints/loadForm.d.ts +4 -0
  40. package/dist/entrypoints/restoreInstance.d.ts +9 -0
  41. package/dist/error/LoadFormFailureError.d.ts +9 -0
  42. package/dist/error/MalformedInstanceDataError.d.ts +3 -0
  43. package/dist/error/TemplatedNodeAttributeSerializationError.d.ts +22 -0
  44. package/dist/error/UploadValueTypeError.d.ts +8 -0
  45. package/dist/index.d.ts +2 -33
  46. package/dist/index.js +8280 -6779
  47. package/dist/index.js.map +1 -1
  48. package/dist/instance/Group.d.ts +6 -5
  49. package/dist/instance/InputControl.d.ts +5 -4
  50. package/dist/instance/ModelValue.d.ts +5 -4
  51. package/dist/instance/Note.d.ts +4 -3
  52. package/dist/instance/PrimaryInstance.d.ts +34 -8
  53. package/dist/instance/RangeControl.d.ts +5 -4
  54. package/dist/instance/RankControl.d.ts +6 -5
  55. package/dist/instance/Root.d.ts +7 -9
  56. package/dist/instance/SelectControl.d.ts +4 -3
  57. package/dist/instance/Subtree.d.ts +6 -5
  58. package/dist/instance/TriggerControl.d.ts +4 -3
  59. package/dist/instance/UploadControl.d.ts +58 -0
  60. package/dist/instance/abstract/DescendantNode.d.ts +10 -1
  61. package/dist/instance/abstract/InstanceNode.d.ts +7 -4
  62. package/dist/instance/abstract/ValueNode.d.ts +7 -5
  63. package/dist/instance/attachments/InstanceAttachment.d.ts +42 -0
  64. package/dist/instance/attachments/InstanceAttachmentsState.d.ts +9 -0
  65. package/dist/instance/children/DescendantNodeInitOptions.d.ts +32 -0
  66. package/dist/instance/{children.d.ts → children/buildChildren.d.ts} +1 -1
  67. package/dist/instance/children/childrenInitOptions.d.ts +9 -0
  68. package/dist/instance/children/normalizeChildInitOptions.d.ts +2 -0
  69. package/dist/instance/hierarchy.d.ts +6 -7
  70. package/dist/instance/input/InitialInstanceState.d.ts +13 -0
  71. package/dist/instance/input/InstanceAttachmentMap.d.ts +19 -0
  72. package/dist/instance/internal-api/InstanceAttachmentContext.d.ts +19 -0
  73. package/dist/instance/internal-api/InstanceConfig.d.ts +4 -9
  74. package/dist/instance/internal-api/InstanceValueContext.d.ts +8 -1
  75. package/dist/instance/internal-api/serialization/ClientReactiveSerializableInstance.d.ts +16 -0
  76. package/dist/instance/internal-api/serialization/ClientReactiveSerializableLeafNode.d.ts +32 -0
  77. package/dist/instance/internal-api/serialization/ClientReactiveSerializableParentNode.d.ts +18 -0
  78. package/dist/instance/internal-api/serialization/ClientReactiveSerializableTemplatedNode.d.ts +13 -0
  79. package/dist/instance/internal-api/serialization/ClientReactiveSerializableValueNode.d.ts +21 -0
  80. package/dist/instance/repeat/BaseRepeatRange.d.ts +10 -8
  81. package/dist/instance/repeat/RepeatInstance.d.ts +10 -7
  82. package/dist/instance/repeat/RepeatRangeControlled.d.ts +27 -3
  83. package/dist/instance/repeat/RepeatRangeUncontrolled.d.ts +4 -3
  84. package/dist/instance/resource.d.ts +5 -1
  85. package/dist/integration/xpath/EngineXPathEvaluator.d.ts +2 -2
  86. package/dist/integration/xpath/adapter/kind.d.ts +4 -10
  87. package/dist/integration/xpath/static-dom/StaticAttribute.d.ts +4 -5
  88. package/dist/integration/xpath/static-dom/StaticDocument.d.ts +13 -10
  89. package/dist/integration/xpath/static-dom/StaticElement.d.ts +21 -22
  90. package/dist/integration/xpath/static-dom/StaticNode.d.ts +1 -1
  91. package/dist/integration/xpath/static-dom/StaticParentNode.d.ts +13 -0
  92. package/dist/integration/xpath/static-dom/staticNodeName.d.ts +3 -0
  93. package/dist/lib/client-reactivity/instance-state/createNodeRangeInstanceState.d.ts +4 -0
  94. package/dist/lib/client-reactivity/instance-state/createParentNodeInstanceState.d.ts +4 -0
  95. package/dist/lib/client-reactivity/instance-state/createPrimaryInstanceState.d.ts +3 -0
  96. package/dist/lib/client-reactivity/instance-state/createRootInstanceState.d.ts +3 -0
  97. package/dist/lib/client-reactivity/instance-state/createTemplatedNodeInstanceState.d.ts +6 -0
  98. package/dist/lib/client-reactivity/instance-state/createValueNodeInstanceState.d.ts +3 -0
  99. package/dist/lib/client-reactivity/instance-state/prepareInstancePayload.d.ts +8 -0
  100. package/dist/lib/names/UnprefixedXFormsName.d.ts +4 -0
  101. package/dist/lib/reactivity/createInstanceAttachment.d.ts +8 -0
  102. package/dist/lib/reactivity/createInstanceValueState.d.ts +2 -27
  103. package/dist/lib/resource-helpers.d.ts +2 -0
  104. package/dist/parse/XFormDOM.d.ts +1 -1
  105. package/dist/parse/body/BodyDefinition.d.ts +2 -1
  106. package/dist/parse/body/control/UploadControlDefinition.d.ts +2 -0
  107. package/dist/parse/model/BindDefinition.d.ts +1 -1
  108. package/dist/parse/model/BindTypeDefinition.d.ts +2 -7
  109. package/dist/parse/model/ItextTranslationsDefinition.d.ts +18 -0
  110. package/dist/parse/model/LeafNodeDefinition.d.ts +4 -5
  111. package/dist/parse/model/ModelBindMap.d.ts +1 -1
  112. package/dist/parse/model/ModelDefinition.d.ts +9 -2
  113. package/dist/parse/model/NodeDefinition.d.ts +18 -30
  114. package/dist/parse/model/NoteNodeDefinition.d.ts +3 -2
  115. package/dist/parse/model/RangeNodeDefinition.d.ts +2 -1
  116. package/dist/parse/model/RepeatDefinition.d.ts +62 -0
  117. package/dist/parse/model/RootAttributeDefinition.d.ts +1 -4
  118. package/dist/parse/model/RootAttributeMap.d.ts +2 -1
  119. package/dist/parse/model/RootDefinition.d.ts +7 -8
  120. package/dist/parse/model/SecondaryInstance/SecondaryInstancesDefinition.d.ts +15 -2
  121. package/dist/parse/model/SecondaryInstance/assertSecondaryInstanceDefinition.d.ts +5 -0
  122. package/dist/parse/model/SecondaryInstance/defineSecondaryInstance.d.ts +5 -0
  123. package/dist/parse/model/SecondaryInstance/sources/BlankSecondaryInstanceSource.d.ts +1 -7
  124. package/dist/parse/model/SecondaryInstance/sources/CSVExternalSecondaryInstance.d.ts +1 -1
  125. package/dist/parse/model/SecondaryInstance/sources/GeoJSONExternalSecondaryInstance.d.ts +1 -1
  126. package/dist/parse/model/SecondaryInstance/sources/InternalSecondaryInstanceSource.d.ts +1 -1
  127. package/dist/parse/model/SecondaryInstance/sources/SecondaryInstanceSource.d.ts +1 -1
  128. package/dist/parse/model/SecondaryInstance/sources/XMLExternalSecondaryInstanceSource.d.ts +1 -1
  129. package/dist/parse/model/{FormSubmissionDefinition.d.ts → SubmissionDefinition.d.ts} +2 -2
  130. package/dist/parse/model/SubtreeDefinition.d.ts +4 -5
  131. package/dist/parse/model/nodeDefinitionMap.d.ts +5 -0
  132. package/dist/parse/shared/parseInstanceXML.d.ts +21 -0
  133. package/dist/parse/shared/parseStaticDocumentFromDOMSubtree.d.ts +4 -21
  134. package/dist/solid.js +8251 -6751
  135. package/dist/solid.js.map +1 -1
  136. package/package.json +15 -14
  137. package/src/client/BaseNode.ts +4 -4
  138. package/src/client/BaseValueNode.ts +7 -3
  139. package/src/client/RootNode.ts +32 -19
  140. package/src/client/UploadNode.ts +78 -0
  141. package/src/client/attachments/InstanceAttachmentMeta.ts +10 -0
  142. package/src/client/attachments/InstanceAttachmentsConfig.ts +13 -0
  143. package/src/client/constants.ts +12 -14
  144. package/src/client/form/CreateFormInstance.ts +19 -0
  145. package/src/client/form/EditFormInstance.ts +93 -0
  146. package/src/client/form/FormInstance.ts +114 -0
  147. package/src/client/form/FormInstanceConfig.ts +21 -0
  148. package/src/client/form/FormResource.ts +1 -0
  149. package/src/client/form/LoadForm.ts +92 -0
  150. package/src/client/form/LoadFormResult.ts +103 -0
  151. package/src/client/form/RestoreFormInstance.ts +14 -0
  152. package/src/client/hierarchy.ts +5 -8
  153. package/src/client/index.ts +49 -29
  154. package/src/client/node-types.ts +3 -8
  155. package/src/client/repeat/BaseRepeatRangeNode.ts +3 -4
  156. package/src/client/repeat/RepeatInstanceNode.ts +4 -8
  157. package/src/client/repeat/RepeatRangeControlledNode.ts +2 -2
  158. package/src/client/repeat/RepeatRangeUncontrolledNode.ts +2 -2
  159. package/src/client/resources.ts +2 -2
  160. package/src/client/serialization/InstanceData.ts +24 -0
  161. package/src/client/serialization/InstanceFile.ts +9 -0
  162. package/src/client/serialization/InstancePayload.ts +126 -0
  163. package/src/client/serialization/InstancePayloadOptions.ts +29 -0
  164. package/src/client/serialization/InstanceState.ts +14 -0
  165. package/src/client/submission/{SubmissionDefinition.ts → SubmissionMeta.ts} +1 -1
  166. package/src/entrypoints/FormInstance.ts +56 -0
  167. package/src/entrypoints/FormResult/BaseFormResult.ts +40 -0
  168. package/src/entrypoints/FormResult/BaseInstantiableFormResult.ts +109 -0
  169. package/src/entrypoints/FormResult/FormFailureResult.ts +44 -0
  170. package/src/entrypoints/FormResult/FormSuccessResult.ts +25 -0
  171. package/src/entrypoints/FormResult/FormWarningResult.ts +25 -0
  172. package/src/entrypoints/createInstance.ts +23 -0
  173. package/src/entrypoints/editInstance.ts +24 -0
  174. package/src/entrypoints/index.ts +4 -0
  175. package/src/entrypoints/loadForm.ts +154 -0
  176. package/src/entrypoints/restoreInstance.ts +27 -0
  177. package/src/error/LoadFormFailureError.ts +114 -0
  178. package/src/error/MalformedInstanceDataError.ts +3 -0
  179. package/src/error/TemplatedNodeAttributeSerializationError.ts +24 -0
  180. package/src/error/UploadValueTypeError.ts +13 -0
  181. package/src/index.ts +2 -46
  182. package/src/instance/Group.ts +16 -15
  183. package/src/instance/InputControl.ts +17 -11
  184. package/src/instance/ModelValue.ts +17 -11
  185. package/src/instance/Note.ts +10 -9
  186. package/src/instance/PrimaryInstance.ts +68 -31
  187. package/src/instance/RangeControl.ts +17 -11
  188. package/src/instance/RankControl.ts +28 -19
  189. package/src/instance/Root.ts +20 -31
  190. package/src/instance/SelectControl.ts +21 -12
  191. package/src/instance/Subtree.ts +16 -15
  192. package/src/instance/TriggerControl.ts +21 -12
  193. package/src/instance/UploadControl.ts +184 -0
  194. package/src/instance/abstract/DescendantNode.ts +12 -2
  195. package/src/instance/abstract/InstanceNode.ts +9 -5
  196. package/src/instance/abstract/ValueNode.ts +11 -13
  197. package/src/instance/attachments/InstanceAttachment.ts +69 -0
  198. package/src/instance/attachments/InstanceAttachmentsState.ts +18 -0
  199. package/src/instance/children/DescendantNodeInitOptions.ts +35 -0
  200. package/src/instance/{children.ts → children/buildChildren.ts} +57 -53
  201. package/src/instance/children/childrenInitOptions.ts +117 -0
  202. package/src/instance/children/normalizeChildInitOptions.ts +332 -0
  203. package/src/instance/hierarchy.ts +6 -9
  204. package/src/instance/input/InitialInstanceState.ts +108 -0
  205. package/src/instance/input/InstanceAttachmentMap.ts +154 -0
  206. package/src/instance/internal-api/InstanceAttachmentContext.ts +20 -0
  207. package/src/instance/internal-api/InstanceConfig.ts +6 -10
  208. package/src/instance/internal-api/InstanceValueContext.ts +9 -1
  209. package/src/instance/internal-api/serialization/ClientReactiveSerializableInstance.ts +22 -0
  210. package/src/instance/internal-api/serialization/ClientReactiveSerializableLeafNode.ts +43 -0
  211. package/src/instance/internal-api/serialization/ClientReactiveSerializableParentNode.ts +26 -0
  212. package/src/instance/internal-api/serialization/ClientReactiveSerializableTemplatedNode.ts +24 -0
  213. package/src/instance/internal-api/serialization/ClientReactiveSerializableValueNode.ts +28 -0
  214. package/src/instance/repeat/BaseRepeatRange.ts +19 -24
  215. package/src/instance/repeat/RepeatInstance.ts +26 -19
  216. package/src/instance/repeat/RepeatRangeControlled.ts +90 -17
  217. package/src/instance/repeat/RepeatRangeUncontrolled.ts +10 -9
  218. package/src/instance/resource.ts +14 -1
  219. package/src/integration/xpath/EngineXPathEvaluator.ts +2 -2
  220. package/src/integration/xpath/adapter/kind.ts +1 -28
  221. package/src/integration/xpath/adapter/traversal.ts +2 -2
  222. package/src/integration/xpath/static-dom/StaticAttribute.ts +6 -5
  223. package/src/integration/xpath/static-dom/StaticDocument.ts +17 -16
  224. package/src/integration/xpath/static-dom/StaticElement.ts +196 -50
  225. package/src/integration/xpath/static-dom/StaticNode.ts +1 -1
  226. package/src/integration/xpath/static-dom/StaticParentNode.ts +22 -0
  227. package/src/integration/xpath/static-dom/staticNodeName.ts +20 -0
  228. package/src/lib/client-reactivity/instance-state/createNodeRangeInstanceState.ts +17 -0
  229. package/src/lib/client-reactivity/instance-state/createParentNodeInstanceState.ts +22 -0
  230. package/src/lib/client-reactivity/instance-state/createPrimaryInstanceState.ts +12 -0
  231. package/src/lib/client-reactivity/{submission/createRootSubmissionState.ts → instance-state/createRootInstanceState.ts} +4 -4
  232. package/src/lib/client-reactivity/instance-state/createTemplatedNodeInstanceState.ts +31 -0
  233. package/src/lib/client-reactivity/instance-state/createValueNodeInstanceState.ts +21 -0
  234. package/src/lib/client-reactivity/instance-state/prepareInstancePayload.ts +237 -0
  235. package/src/lib/names/UnprefixedXFormsName.ts +12 -0
  236. package/src/lib/reactivity/createInstanceAttachment.ts +212 -0
  237. package/src/lib/reactivity/createInstanceValueState.ts +27 -51
  238. package/src/lib/resource-helpers.ts +33 -0
  239. package/src/parse/XFormDOM.ts +1 -3
  240. package/src/parse/body/BodyDefinition.ts +4 -0
  241. package/src/parse/body/control/UploadControlDefinition.ts +42 -0
  242. package/src/parse/model/BindDefinition.ts +1 -1
  243. package/src/parse/model/BindTypeDefinition.ts +68 -26
  244. package/src/parse/model/ItextTranslationsDefinition.ts +79 -0
  245. package/src/parse/model/LeafNodeDefinition.ts +3 -5
  246. package/src/parse/model/ModelBindMap.ts +0 -5
  247. package/src/parse/model/ModelDefinition.ts +36 -3
  248. package/src/parse/model/NodeDefinition.ts +19 -45
  249. package/src/parse/model/NoteNodeDefinition.ts +4 -3
  250. package/src/parse/model/RangeNodeDefinition.ts +3 -2
  251. package/src/parse/model/RepeatDefinition.ts +382 -0
  252. package/src/parse/model/RootAttributeDefinition.ts +6 -7
  253. package/src/parse/model/RootAttributeMap.ts +15 -10
  254. package/src/parse/model/RootDefinition.ts +17 -19
  255. package/src/parse/model/SecondaryInstance/SecondaryInstancesDefinition.ts +23 -2
  256. package/src/parse/model/SecondaryInstance/assertSecondaryInstanceDefinition.ts +14 -0
  257. package/src/parse/model/SecondaryInstance/defineSecondaryInstance.ts +32 -0
  258. package/src/parse/model/SecondaryInstance/sources/BlankSecondaryInstanceSource.ts +3 -24
  259. package/src/parse/model/SecondaryInstance/sources/CSVExternalSecondaryInstance.ts +33 -86
  260. package/src/parse/model/SecondaryInstance/sources/ExternalSecondaryInstanceResource.ts +1 -30
  261. package/src/parse/model/SecondaryInstance/sources/GeoJSONExternalSecondaryInstance.ts +64 -137
  262. package/src/parse/model/SecondaryInstance/sources/InternalSecondaryInstanceSource.ts +9 -7
  263. package/src/parse/model/SecondaryInstance/sources/SecondaryInstanceSource.ts +1 -1
  264. package/src/parse/model/SecondaryInstance/sources/XMLExternalSecondaryInstanceSource.ts +7 -7
  265. package/src/parse/model/{FormSubmissionDefinition.ts → SubmissionDefinition.ts} +2 -2
  266. package/src/parse/model/SubtreeDefinition.ts +4 -5
  267. package/src/parse/model/nodeDefinitionMap.ts +34 -0
  268. package/src/parse/shared/parseInstanceXML.ts +79 -0
  269. package/src/parse/shared/parseStaticDocumentFromDOMSubtree.ts +45 -130
  270. package/dist/client/EngineConfig.d.ts +0 -79
  271. package/dist/client/submission/SubmissionData.d.ts +0 -7
  272. package/dist/client/submission/SubmissionInstanceFile.d.ts +0 -6
  273. package/dist/client/submission/SubmissionOptions.d.ts +0 -23
  274. package/dist/client/submission/SubmissionResult.d.ts +0 -91
  275. package/dist/client/submission/SubmissionState.d.ts +0 -12
  276. package/dist/client/unsupported/UnsupportedControlNode.d.ts +0 -30
  277. package/dist/client/unsupported/UploadNode.d.ts +0 -9
  278. package/dist/instance/abstract/UnsupportedControl.d.ts +0 -54
  279. package/dist/instance/index.d.ts +0 -8
  280. package/dist/instance/internal-api/ValueContext.d.ts +0 -23
  281. package/dist/instance/internal-api/submission/ClientReactiveSubmittableInstance.d.ts +0 -14
  282. package/dist/instance/internal-api/submission/ClientReactiveSubmittableLeafNode.d.ts +0 -32
  283. package/dist/instance/internal-api/submission/ClientReactiveSubmittableParentNode.d.ts +0 -19
  284. package/dist/instance/internal-api/submission/ClientReactiveSubmittableValueNode.d.ts +0 -18
  285. package/dist/instance/unsupported/UploadControl.d.ts +0 -6
  286. package/dist/lib/client-reactivity/submission/createInstanceSubmissionState.d.ts +0 -3
  287. package/dist/lib/client-reactivity/submission/createLeafNodeSubmissionState.d.ts +0 -3
  288. package/dist/lib/client-reactivity/submission/createNodeRangeSubmissionState.d.ts +0 -4
  289. package/dist/lib/client-reactivity/submission/createParentNodeSubmissionState.d.ts +0 -4
  290. package/dist/lib/client-reactivity/submission/createRootSubmissionState.d.ts +0 -3
  291. package/dist/lib/client-reactivity/submission/createValueNodeSubmissionState.d.ts +0 -3
  292. package/dist/lib/client-reactivity/submission/prepareSubmission.d.ts +0 -8
  293. package/dist/lib/reactivity/createValueState.d.ts +0 -40
  294. package/dist/parse/model/ItextTranslation/ItextTranslationDefinition.d.ts +0 -4
  295. package/dist/parse/model/ItextTranslation/ItextTranslationRootDefinition.d.ts +0 -9
  296. package/dist/parse/model/ItextTranslation/ItextTranslationsDefinition.d.ts +0 -8
  297. package/dist/parse/model/RepeatInstanceDefinition.d.ts +0 -17
  298. package/dist/parse/model/RepeatRangeDefinition.d.ts +0 -32
  299. package/dist/parse/model/RepeatTemplateDefinition.d.ts +0 -31
  300. package/dist/parse/model/SecondaryInstance/SecondaryInstanceDefinition.d.ts +0 -4
  301. package/dist/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.d.ts +0 -7
  302. package/src/client/EngineConfig.ts +0 -84
  303. package/src/client/submission/SubmissionData.ts +0 -12
  304. package/src/client/submission/SubmissionInstanceFile.ts +0 -9
  305. package/src/client/submission/SubmissionOptions.ts +0 -28
  306. package/src/client/submission/SubmissionResult.ts +0 -124
  307. package/src/client/submission/SubmissionState.ts +0 -14
  308. package/src/client/unsupported/UnsupportedControlNode.ts +0 -36
  309. package/src/client/unsupported/UploadNode.ts +0 -14
  310. package/src/instance/abstract/UnsupportedControl.ts +0 -175
  311. package/src/instance/index.ts +0 -55
  312. package/src/instance/internal-api/ValueContext.ts +0 -28
  313. package/src/instance/internal-api/submission/ClientReactiveSubmittableInstance.ts +0 -20
  314. package/src/instance/internal-api/submission/ClientReactiveSubmittableLeafNode.ts +0 -43
  315. package/src/instance/internal-api/submission/ClientReactiveSubmittableParentNode.ts +0 -26
  316. package/src/instance/internal-api/submission/ClientReactiveSubmittableValueNode.ts +0 -24
  317. package/src/instance/unsupported/UploadControl.ts +0 -9
  318. package/src/lib/client-reactivity/submission/createInstanceSubmissionState.ts +0 -12
  319. package/src/lib/client-reactivity/submission/createLeafNodeSubmissionState.ts +0 -20
  320. package/src/lib/client-reactivity/submission/createNodeRangeSubmissionState.ts +0 -17
  321. package/src/lib/client-reactivity/submission/createParentNodeSubmissionState.ts +0 -22
  322. package/src/lib/client-reactivity/submission/createValueNodeSubmissionState.ts +0 -21
  323. package/src/lib/client-reactivity/submission/prepareSubmission.ts +0 -172
  324. package/src/lib/reactivity/createValueState.ts +0 -200
  325. package/src/parse/model/ItextTranslation/ItextTranslationDefinition.ts +0 -4
  326. package/src/parse/model/ItextTranslation/ItextTranslationRootDefinition.ts +0 -42
  327. package/src/parse/model/ItextTranslation/ItextTranslationsDefinition.ts +0 -31
  328. package/src/parse/model/RepeatInstanceDefinition.ts +0 -38
  329. package/src/parse/model/RepeatRangeDefinition.ts +0 -98
  330. package/src/parse/model/RepeatTemplateDefinition.ts +0 -149
  331. package/src/parse/model/SecondaryInstance/SecondaryInstanceDefinition.ts +0 -4
  332. package/src/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.ts +0 -12
@@ -1,11 +1,6 @@
1
1
  import { XPathNodeKind } from '@getodk/xpath';
2
- import { AnyChildNode, AnyNode, AnyParentNode, AnyValueNode } from '../../../instance/hierarchy.ts';
3
- import { ValueContext } from '../../../instance/internal-api/ValueContext.ts';
2
+ import { AnyChildNode, AnyNode, AnyParentNode } from '../../../instance/hierarchy.ts';
4
3
  import { PrimaryInstance } from '../../../instance/PrimaryInstance.ts';
5
- import { ItextTranslationDefinition } from '../../../parse/model/ItextTranslation/ItextTranslationDefinition.ts';
6
- import { ItextTranslationRootDefinition } from '../../../parse/model/ItextTranslation/ItextTranslationRootDefinition.ts';
7
- import { SecondaryInstanceDefinition } from '../../../parse/model/SecondaryInstance/SecondaryInstanceDefinition.ts';
8
- import { SecondaryInstanceRootDefinition } from '../../../parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.ts';
9
4
  import { StaticAttribute } from '../static-dom/StaticAttribute.ts';
10
5
  import { StaticDocument } from '../static-dom/StaticDocument.ts';
11
6
  import { StaticElement } from '../static-dom/StaticElement.ts';
@@ -15,16 +10,15 @@ export type PrimaryInstanceXPathNode = Extract<AnyNode, XFormsXPathPrimaryInstan
15
10
  export type PrimaryInstanceXPathElement = Extract<AnyChildNode, XFormsXPathElement>;
16
11
  export type PrimaryInstanceXPathComment = Extract<AnyChildNode, XFormsXPathComment>;
17
12
  export type PrimaryInstanceXPathChildNode = PrimaryInstanceXPathElement | PrimaryInstanceXPathComment;
18
- export type PrimaryInstanceXPathValueElement<Value> = AnyValueNode & ValueContext<Value> & XFormsXPathElement;
19
- export type EngineXPathDocument = PrimaryInstance | ItextTranslationDefinition | SecondaryInstanceDefinition | StaticDocument;
20
- export type EngineXPathElement = PrimaryInstanceXPathElement | ItextTranslationRootDefinition | SecondaryInstanceRootDefinition | StaticElement;
13
+ export type EngineXPathDocument = PrimaryInstance | StaticDocument;
14
+ export type EngineXPathElement = PrimaryInstanceXPathElement | StaticElement;
21
15
  export type EngineXPathComment = PrimaryInstanceXPathComment;
22
16
  export type EngineXPathAttribute = StaticAttribute;
23
17
  export type EngineXPathText = StaticText;
24
18
  export type XFormsXPathChildNode = EngineXPathElement | EngineXPathText | EngineXPathComment;
25
19
  type XPathAdapterParentNode = XFormsXPathDocument | XFormsXPathElement;
26
20
  type PrimaryInstanceXPathParentNode = Extract<AnyParentNode, XPathAdapterParentNode>;
27
- export type EngineXPathParentNode = PrimaryInstanceXPathParentNode | ItextTranslationDefinition | SecondaryInstanceDefinition | ItextTranslationRootDefinition | SecondaryInstanceRootDefinition | StaticDocument | StaticElement;
21
+ export type EngineXPathParentNode = PrimaryInstanceXPathParentNode | StaticDocument | StaticElement;
28
22
  export type EngineXPathNode = EngineXPathDocument | EngineXPathElement | EngineXPathAttribute | EngineXPathText | EngineXPathComment;
29
23
  export declare const isEngineXPathNode: (value: unknown) => value is EngineXPathNode;
30
24
  export declare const getEngineXPathNodeKind: (node: EngineXPathNode) => XPathNodeKind;
@@ -4,10 +4,9 @@ import { XFormsXPathAttribute } from '../adapter/XFormsXPathNode.ts';
4
4
  import { StaticDocument } from './StaticDocument.ts';
5
5
  import { StaticElement } from './StaticElement.ts';
6
6
  import { StaticNode } from './StaticNode.ts';
7
- interface StaticAttributeOptions {
8
- readonly namespaceURI: string | null;
9
- readonly prefix?: string | null;
10
- readonly localName: string;
7
+ import { StaticNodeNameSource } from './staticNodeName.ts';
8
+ export interface StaticAttributeOptions {
9
+ readonly name: StaticNodeNameSource;
11
10
  readonly value: string;
12
11
  }
13
12
  export declare class StaticAttribute extends StaticNode<'attribute'> implements XFormsXPathAttribute {
@@ -17,10 +16,10 @@ export declare class StaticAttribute extends StaticNode<'attribute'> implements
17
16
  readonly rootDocument: StaticDocument;
18
17
  readonly root: StaticElement;
19
18
  readonly qualifiedName: QualifiedName;
19
+ readonly nodeset: string;
20
20
  readonly attributes: readonly [];
21
21
  readonly children: null;
22
22
  readonly value: string;
23
23
  constructor(parent: StaticElement, options: StaticAttributeOptions);
24
24
  getXPathValue(): string;
25
25
  }
26
- export {};
@@ -1,15 +1,18 @@
1
- import { XPathNodeKindKey } from '@getodk/xpath';
2
1
  import { XFormsXPathDocument } from '../adapter/XFormsXPathNode.ts';
3
- import { StaticElement } from './StaticElement.ts';
4
- import { StaticNode } from './StaticNode.ts';
5
- export type StaticDocumentRootFactory<T extends StaticDocument, Root extends StaticElement> = (staticDocument: T) => Root;
6
- export declare abstract class StaticDocument<DocumentRoot extends StaticElement = StaticElement> extends StaticNode<'document'> implements XFormsXPathDocument {
7
- readonly [XPathNodeKindKey] = "document";
8
- readonly nodeType = "static-document";
2
+ import { StaticElementOptions, StaticElement } from './StaticElement.ts';
3
+ import { StaticParentNode } from './StaticParentNode.ts';
4
+ interface StaticDocumentOptions {
5
+ readonly documentRoot: StaticElementOptions;
6
+ readonly nodesetPrefix?: string;
7
+ }
8
+ export declare class StaticDocument extends StaticParentNode<'document'> implements XFormsXPathDocument {
9
9
  readonly rootDocument: StaticDocument;
10
- readonly root: DocumentRoot;
10
+ readonly root: StaticElement;
11
11
  readonly parent: null;
12
- readonly children: readonly [root: DocumentRoot];
13
- constructor(rootFactory: StaticDocumentRootFactory<StaticDocument<DocumentRoot>, DocumentRoot>);
12
+ readonly nodeset: string;
13
+ readonly children: readonly [root: StaticElement];
14
+ readonly childElements: readonly [root: StaticElement];
15
+ constructor(options: StaticDocumentOptions);
14
16
  getXPathValue(): string;
15
17
  }
18
+ export {};
@@ -1,32 +1,29 @@
1
- import { XFORMS_KNOWN_ATTRIBUTE, XFORMS_LOCAL_NAME, XPathNodeKindKey } from '@getodk/xpath';
2
- import { QualifiedName } from '../../../lib/names/QualifiedName.ts';
1
+ import { QualifiedNameSource, QualifiedName } from '../../../lib/names/QualifiedName.ts';
3
2
  import { XFormsXPathElement } from '../adapter/XFormsXPathNode.ts';
4
- import { StaticAttribute } from './StaticAttribute.ts';
3
+ import { StaticAttributeOptions, StaticAttribute } from './StaticAttribute.ts';
5
4
  import { StaticDocument } from './StaticDocument.ts';
6
- import { StaticChildNode, StaticParentNode, StaticNode } from './StaticNode.ts';
7
- export type StaticElementAttributesFactory = (element: StaticElement) => readonly StaticAttribute[];
8
- export type StaticElementChildNodesFactory = (element: StaticElement) => readonly StaticChildNode[];
5
+ import { StaticChildNode } from './StaticNode.ts';
6
+ import { StaticParentNode } from './StaticParentNode.ts';
7
+ export type StaticElementChildOption = StaticElementOptions | string;
9
8
  export interface StaticElementOptions {
10
- readonly namespaceURI: string | null;
11
- readonly prefix?: string | null;
12
- readonly localName: string;
9
+ readonly name: QualifiedNameSource | string;
10
+ readonly attributes?: readonly StaticAttributeOptions[];
11
+ readonly children?: readonly StaticElementChildOption[];
13
12
  }
14
- type StaticElementKnownAttributeValue<T extends StaticElement, LocalName extends string> = T extends {
15
- readonly [XFORMS_KNOWN_ATTRIBUTE]: LocalName;
16
- } ? string : string | null;
17
- export declare class StaticElement<Parent extends StaticParentNode = StaticParentNode> extends StaticNode<'element'> implements XFormsXPathElement {
18
- readonly parent: Parent;
19
- readonly [XFORMS_LOCAL_NAME]?: string;
20
- readonly [XFORMS_KNOWN_ATTRIBUTE]?: string;
21
- readonly [XPathNodeKindKey] = "element";
22
- readonly nodeType = "static-element";
13
+ export declare class StaticElement extends StaticParentNode<'element'> implements XFormsXPathElement {
14
+ readonly parent: StaticDocument | StaticElement;
15
+ private computedValue;
23
16
  readonly rootDocument: StaticDocument;
24
17
  readonly root: StaticElement;
25
18
  readonly qualifiedName: QualifiedName;
19
+ readonly nodeset: string;
26
20
  readonly attributes: readonly StaticAttribute[];
27
21
  readonly children: readonly StaticChildNode[];
28
- readonly value: null;
29
- constructor(parent: Parent, attributesFactory: StaticElementAttributesFactory, childNodesFactory: StaticElementChildNodesFactory, options: StaticElementOptions);
22
+ readonly childElements: readonly StaticElement[];
23
+ readonly value: string | null;
24
+ constructor(parent: StaticDocument | StaticElement, options: StaticElementOptions);
25
+ isLeafElement(): this is StaticLeafElement;
26
+ assertLeafElement(): asserts this is StaticLeafElement;
30
27
  /**
31
28
  * @todo Generalize this, incorporate into {@link EngineDOMAdapter}
32
29
  * @todo Namespaced lookup
@@ -42,7 +39,9 @@ export declare class StaticElement<Parent extends StaticParentNode = StaticParen
42
39
  * up. (This was put off because the types are already plenty complex as it
43
40
  * is.)
44
41
  */
45
- getAttributeValue<This extends StaticElement, LocalName extends string>(this: This, localName: LocalName): StaticElementKnownAttributeValue<This, LocalName>;
42
+ getAttributeValue(localName: string): string | null;
46
43
  getXPathValue(): string;
47
44
  }
48
- export {};
45
+ export interface StaticLeafElement extends StaticElement {
46
+ readonly value: string;
47
+ }
@@ -29,5 +29,5 @@ export declare abstract class StaticNode<Kind extends StaticNodeKind> implements
29
29
  abstract getXPathValue(): string;
30
30
  }
31
31
  export type AnyStaticNode = StaticDocument | StaticElement | StaticAttribute | StaticText;
32
- export type StaticParentNode = StaticDocument | StaticElement;
32
+ export type StaticNodeParent = StaticDocument | StaticElement;
33
33
  export type StaticChildNode = StaticElement | StaticText;
@@ -0,0 +1,13 @@
1
+ import { XPathNodeKindKey } from '@getodk/xpath';
2
+ import { StaticElement } from './StaticElement.ts';
3
+ import { StaticNode, StaticChildNode } from './StaticNode.ts';
4
+ type StaticParentNodeKind = 'document' | 'element';
5
+ type StaticParentNodeType<Kind extends StaticParentNodeKind> = `static-${Kind}`;
6
+ export declare abstract class StaticParentNode<Kind extends StaticParentNodeKind> extends StaticNode<Kind> {
7
+ abstract readonly children: readonly StaticChildNode[];
8
+ abstract readonly childElements: readonly StaticElement[];
9
+ readonly [XPathNodeKindKey]: Kind;
10
+ readonly nodeType: StaticParentNodeType<Kind>;
11
+ constructor(kind: Kind);
12
+ }
13
+ export {};
@@ -0,0 +1,3 @@
1
+ import { QualifiedName, QualifiedNameSource } from '../../../lib/names/QualifiedName.ts';
2
+ export type StaticNodeNameSource = QualifiedName | QualifiedNameSource | string;
3
+ export declare const staticNodeName: (source: StaticNodeNameSource) => QualifiedName;
@@ -0,0 +1,4 @@
1
+ import { InstanceState } from '../../../client/serialization/InstanceState.ts';
2
+ import { ClientReactiveSerializableParentNode } from '../../../instance/internal-api/serialization/ClientReactiveSerializableParentNode.ts';
3
+ import { RepeatInstance } from '../../../instance/repeat/RepeatInstance.ts';
4
+ export declare const createNodeRangeInstanceState: (node: ClientReactiveSerializableParentNode<RepeatInstance>) => InstanceState;
@@ -0,0 +1,4 @@
1
+ import { InstanceState } from '../../../client/serialization/InstanceState.ts';
2
+ import { GeneralChildNode } from '../../../instance/hierarchy.ts';
3
+ import { ClientReactiveSerializableParentNode } from '../../../instance/internal-api/serialization/ClientReactiveSerializableParentNode.ts';
4
+ export declare const createParentNodeInstanceState: (node: ClientReactiveSerializableParentNode<GeneralChildNode>) => InstanceState;
@@ -0,0 +1,3 @@
1
+ import { InstanceState } from '../../../client/serialization/InstanceState.ts';
2
+ import { ClientReactiveSerializableInstance } from '../../../instance/internal-api/serialization/ClientReactiveSerializableInstance.ts';
3
+ export declare const createPrimaryInstanceState: (node: ClientReactiveSerializableInstance) => InstanceState;
@@ -0,0 +1,3 @@
1
+ import { InstanceState } from '../../../client/serialization/InstanceState.ts';
2
+ import { Root } from '../../../instance/Root.ts';
3
+ export declare const createRootInstanceState: (node: Root) => InstanceState;
@@ -0,0 +1,6 @@
1
+ import { InstanceState } from '../../../client/serialization/InstanceState.ts';
2
+ import { ClientReactiveSerializableTemplatedNode } from '../../../instance/internal-api/serialization/ClientReactiveSerializableTemplatedNode.ts';
3
+ /**
4
+ * @see {@link TemplatedNodeAttributeSerializationError}
5
+ */
6
+ export declare const createTemplatedNodeInstanceState: (node: ClientReactiveSerializableTemplatedNode) => InstanceState;
@@ -0,0 +1,3 @@
1
+ import { InstanceState } from '../../../client/serialization/InstanceState.ts';
2
+ import { ClientReactiveSerializableValueNode } from '../../../instance/internal-api/serialization/ClientReactiveSerializableValueNode.ts';
3
+ export declare const createValueNodeInstanceState: (node: ClientReactiveSerializableValueNode) => InstanceState;
@@ -0,0 +1,8 @@
1
+ import { InstancePayload } from '../../../client/serialization/InstancePayload.ts';
2
+ import { InstancePayloadType } from '../../../client/serialization/InstancePayloadOptions.ts';
3
+ import { ClientReactiveSerializableInstance } from '../../../instance/internal-api/serialization/ClientReactiveSerializableInstance.ts';
4
+ export interface PrepareInstancePayloadOptions<PayloadType extends InstancePayloadType> {
5
+ readonly payloadType: PayloadType;
6
+ readonly maxSize: number;
7
+ }
8
+ export declare const prepareInstancePayload: <PayloadType extends InstancePayloadType>(instanceRoot: ClientReactiveSerializableInstance, options: PrepareInstancePayloadOptions<PayloadType>) => InstancePayload<PayloadType>;
@@ -0,0 +1,4 @@
1
+ import { QualifiedName } from './QualifiedName.ts';
2
+ export declare class UnprefixedXFormsName extends QualifiedName {
3
+ constructor(localName: string);
4
+ }
@@ -0,0 +1,8 @@
1
+ import { InstanceAttachmentFileName, InstanceAttachment } from '../../instance/attachments/InstanceAttachment.ts';
2
+ import { InstanceAttachmentContext } from '../../instance/internal-api/InstanceAttachmentContext.ts';
3
+ export type InstanceAttachmentRuntimeValue = File | null;
4
+ export type InstanceAttachmentFormDataEntry = readonly [
5
+ key: InstanceAttachmentFileName,
6
+ value: NonNullable<InstanceAttachmentRuntimeValue>
7
+ ];
8
+ export declare const createInstanceAttachment: (context: InstanceAttachmentContext) => InstanceAttachment;
@@ -1,40 +1,15 @@
1
1
  import { InstanceValueContext } from '../../instance/internal-api/InstanceValueContext.ts';
2
2
  import { SimpleAtomicState } from './types.ts';
3
- type InitialValueSource = 'FORM_DEFAULT' | 'PRIMARY_INSTANCE';
4
- export interface InstanceValueStateOptions {
5
- /**
6
- * Specifies the source of a {@link createInstanceValueState} signal's initial
7
- * value state, where:
8
- *
9
- * - 'FORM_DEFAULT': Derives the initial state from the form's definition of
10
- * the node itself. This is the default option, appropriate when
11
- * initializing a form without additional primary instance data. In other
12
- * words, this value should not be used for edits.
13
- *
14
- * - 'PRIMARY_INSTANCE': Derives the initial state from the current text
15
- * content of the {@link ValueNode.contextNode}. This option should be
16
- * specified when initializing a form with existing primary instance data,
17
- * such as when editing a previous submission.
18
- *
19
- * @default 'FORM_DEFAULT'
20
- *
21
- * Specifies whether a {@link createInstanceValueState} signal's initial state
22
- * should be derived from the current text content of the
23
- * {@link ValueNode.contextNode | primary instance DOM state}.
24
- */
25
- readonly initialValueSource?: InitialValueSource;
26
- }
27
3
  export type InstanceValueState = SimpleAtomicState<string>;
28
4
  /**
29
5
  * Provides a consistent interface for value nodes of any type which:
30
6
  *
31
7
  * - derives initial state from either an existing instance (e.g. for edits) or
32
- * the node's definition (e.g. initializing a new submission)
8
+ * the node's definition (e.g. initializing a new instance)
33
9
  * - decodes current primary instance state into the value node's runtime type
34
10
  * - encodes updated runtime values to store updated instance state
35
11
  * - initializes reactive computation of `calculate` bind expressions for those
36
12
  * nodes defined with one
37
13
  * - prevents downstream writes to nodes in a readonly state
38
14
  */
39
- export declare const createInstanceValueState: (context: InstanceValueContext, options?: InstanceValueStateOptions) => InstanceValueState;
40
- export {};
15
+ export declare const createInstanceValueState: (context: InstanceValueContext) => InstanceValueState;
@@ -0,0 +1,2 @@
1
+ import { FetchResourceResponse } from '../client/resources.ts';
2
+ export declare const getResponseContentType: (response: FetchResourceResponse) => string | null;
@@ -29,7 +29,7 @@ export declare class XFormDOM {
29
29
  readonly secondaryInstanceElements: readonly DOMSecondaryInstanceElement[];
30
30
  readonly body: Element;
31
31
  protected constructor(sourceXML: string, options: XFormDOMOptions);
32
- toJSON(): Omit<this, "head" | "html" | "title" | "primaryInstance" | "model" | "primaryInstanceRoot" | "xformDocument" | "toJSON"> & {
32
+ toJSON(): Omit<this, "head" | "html" | "title" | "toJSON" | "model" | "primaryInstance" | "primaryInstanceRoot" | "xformDocument"> & {
33
33
  xformDocument: string;
34
34
  html: string;
35
35
  head: string;
@@ -69,7 +69,8 @@ export declare class BodyDefinition extends DependencyContext implements BodyEle
69
69
  readonly reference: string;
70
70
  constructor(form: XFormDefinition);
71
71
  getBodyElement(reference: string): AnyBodyElementDefinition | null;
72
+ getBodyElementType(reference: BodyElementReference): AnyBodyElementType | null;
72
73
  getChildElementDefinitions(form: XFormDefinition, parent: BodyElementParentContext, parentElement: Element, children?: readonly Element[]): readonly AnyBodyElementDefinition[];
73
- toJSON(): Omit<this, "form" | "toJSON" | "isTranslated" | "getBodyElement" | "getChildElementDefinitions">;
74
+ toJSON(): Omit<this, "form" | "toJSON" | "isTranslated" | "getBodyElement" | "getBodyElementType" | "getChildElementDefinitions">;
74
75
  }
75
76
  export {};
@@ -1,3 +1,4 @@
1
+ import { UploadNodeOptions } from '../../../client/UploadNode.ts';
1
2
  import { XFormDefinition } from '../../XFormDefinition.ts';
2
3
  import { UnknownAppearanceDefinition } from '../appearance/unknownAppearanceParser.ts';
3
4
  import { BodyElementParentContext } from '../BodyDefinition.ts';
@@ -6,6 +7,7 @@ export declare class UploadControlDefinition extends ControlDefinition<'upload'>
6
7
  static isCompatible(localName: string): boolean;
7
8
  readonly type = "upload";
8
9
  readonly appearances: UnknownAppearanceDefinition;
10
+ readonly options: UploadNodeOptions;
9
11
  constructor(form: XFormDefinition, parent: BodyElementParentContext, element: Element);
10
12
  toJSON(): object;
11
13
  }
@@ -36,5 +36,5 @@ export declare class BindDefinition<T extends BindType = BindType> extends Depen
36
36
  get reference(): string;
37
37
  get parentReference(): string | null;
38
38
  constructor(form: XFormDefinition, model: ModelDefinition, nodeset: string, bindElement: BindElement);
39
- toJSON(): Omit<this, "form" | "model" | "toJSON" | "reference" | "isTranslated" | "parentReference" | "bindElement" | "parentBind">;
39
+ toJSON(): Omit<this, "form" | "reference" | "parentReference" | "toJSON" | "isTranslated" | "model" | "bindElement" | "parentBind">;
40
40
  }
@@ -1,9 +1,5 @@
1
+ import { XFormDefinition } from '../XFormDefinition.ts';
1
2
  import { BindElement } from './BindElement.ts';
2
- /**
3
- * As specified by {@link https://getodk.github.io/xforms-spec/#bind-attributes}
4
- */
5
- export declare const DEFAULT_BIND_TYPE = "string";
6
- export type DefaultBindType = typeof DEFAULT_BIND_TYPE;
7
3
  /**
8
4
  * As specified by {@link https://getodk.github.io/xforms-spec/#data-types}
9
5
  */
@@ -13,8 +9,7 @@ export type BindType = BindTypes[number];
13
9
  export declare class BindTypeDefinition<T extends BindType = BindType> {
14
10
  readonly source: string | null;
15
11
  readonly resolved: T;
16
- static from<T extends BindType>(bindElement: BindElement): BindTypeDefinition<T>;
17
- private constructor();
12
+ static from<T extends BindType>(form: XFormDefinition, nodeset: string, bindElement: BindElement): BindTypeDefinition<T>;
18
13
  private constructor();
19
14
  }
20
15
  export {};
@@ -0,0 +1,18 @@
1
+ import { XFORMS_KNOWN_ATTRIBUTE, XFORMS_LOCAL_NAME, XFormsItextTranslationMap } from '@getodk/xpath';
2
+ import { StaticDocument } from '../../integration/xpath/static-dom/StaticDocument.ts';
3
+ import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
4
+ import { XFormDOM } from '../XFormDOM.ts';
5
+ export interface ItextTranslationDefinition extends StaticDocument {
6
+ readonly rootDocument: ItextTranslationDefinition;
7
+ readonly root: ItextTranslationRootDefinition;
8
+ }
9
+ export interface ItextTranslationRootDefinition extends StaticElement {
10
+ readonly [XFORMS_LOCAL_NAME]: 'translation';
11
+ readonly [XFORMS_KNOWN_ATTRIBUTE]: 'lang';
12
+ readonly root: ItextTranslationRootDefinition;
13
+ readonly rootDocument: ItextTranslationDefinition;
14
+ }
15
+ export declare class ItextTranslationsDefinition extends Map<string, ItextTranslationRootDefinition> implements XFormsItextTranslationMap<ItextTranslationRootDefinition> {
16
+ static from(xformDOM: XFormDOM): ItextTranslationsDefinition;
17
+ private constructor();
18
+ }
@@ -1,4 +1,5 @@
1
1
  import { ValueType } from '../../client/ValueType.ts';
2
+ import { StaticLeafElement } from '../../integration/xpath/static-dom/StaticElement.ts';
2
3
  import { NamespaceDeclarationMap, NamedSubtreeDefinition } from '../../lib/names/NamespaceDeclarationMap.ts';
3
4
  import { QualifiedName } from '../../lib/names/QualifiedName.ts';
4
5
  import { AnyBodyElementDefinition, ControlElementDefinition } from '../body/BodyDefinition.ts';
@@ -6,14 +7,12 @@ import { BindDefinition } from './BindDefinition.ts';
6
7
  import { DescendentNodeDefinition } from './DescendentNodeDefinition.ts';
7
8
  import { ParentNodeDefinition } from './NodeDefinition.ts';
8
9
  export declare class LeafNodeDefinition<V extends ValueType = ValueType> extends DescendentNodeDefinition<'leaf-node', ControlElementDefinition | null> implements NamedSubtreeDefinition {
9
- readonly node: Element;
10
+ readonly template: StaticLeafElement;
10
11
  readonly type = "leaf-node";
11
12
  readonly valueType: V;
12
13
  readonly namespaceDeclarations: NamespaceDeclarationMap;
13
14
  readonly qualifiedName: QualifiedName;
14
15
  readonly children: null;
15
- readonly instances: null;
16
- readonly defaultValue: string;
17
- constructor(parent: ParentNodeDefinition, bind: BindDefinition, bodyElement: AnyBodyElementDefinition | null, node: Element);
18
- toJSON(): Omit<this, "parent" | "bind" | "toJSON" | "root" | "bodyElement">;
16
+ constructor(parent: ParentNodeDefinition, bind: BindDefinition, bodyElement: AnyBodyElementDefinition | null, template: StaticLeafElement);
17
+ toJSON(): Omit<this, "parent" | "toJSON" | "bind" | "root" | "bodyElement">;
19
18
  }
@@ -10,6 +10,6 @@ export declare class ModelBindMap extends Map<BindNodeset, BindDefinition> {
10
10
  static fromModel(model: ModelDefinition): ModelBindMap;
11
11
  protected constructor(form: XFormDefinition, model: ModelDefinition);
12
12
  getOrCreateBindDefinition(nodeset: string): BindDefinition;
13
- toJSON(): [string, BindDefinition<"string" | "boolean" | "time" | "barcode" | "binary" | "date" | "dateTime" | "decimal" | "geopoint" | "geoshape" | "geotrace" | "int" | "intent">][];
13
+ toJSON(): [string, BindDefinition<"string" | "boolean" | "time" | "int" | "decimal" | "date" | "dateTime" | "geopoint" | "geotrace" | "geoshape" | "binary" | "barcode" | "intent">][];
14
14
  }
15
15
  export {};
@@ -1,12 +1,19 @@
1
+ import { StaticDocument } from '../../integration/xpath/static-dom/StaticDocument.ts';
1
2
  import { XFormDefinition } from '../XFormDefinition.ts';
2
- import { ItextTranslationsDefinition } from './ItextTranslation/ItextTranslationsDefinition.ts';
3
+ import { ItextTranslationsDefinition } from './ItextTranslationsDefinition.ts';
3
4
  import { ModelBindMap } from './ModelBindMap.ts';
5
+ import { AnyNodeDefinition } from './NodeDefinition.ts';
6
+ import { NodeDefinitionMap } from './nodeDefinitionMap.ts';
4
7
  import { RootDefinition } from './RootDefinition.ts';
5
8
  export declare class ModelDefinition {
6
9
  readonly form: XFormDefinition;
7
10
  readonly binds: ModelBindMap;
8
11
  readonly root: RootDefinition;
12
+ readonly nodes: NodeDefinitionMap;
13
+ readonly instance: StaticDocument;
9
14
  readonly itextTranslations: ItextTranslationsDefinition;
10
15
  constructor(form: XFormDefinition);
11
- toJSON(): Omit<this, "form" | "toJSON">;
16
+ getNodeDefinition(nodeset: string): AnyNodeDefinition;
17
+ getRootDefinition(instance: StaticDocument): RootDefinition;
18
+ toJSON(): Omit<this, "form" | "toJSON" | "getNodeDefinition" | "getRootDefinition">;
12
19
  }
@@ -1,55 +1,46 @@
1
+ import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
1
2
  import { NamedSubtreeDefinition, NamespaceDeclarationMap } from '../../lib/names/NamespaceDeclarationMap.ts';
2
3
  import { QualifiedName } from '../../lib/names/QualifiedName.ts';
3
4
  import { AnyBodyElementDefinition } from '../body/BodyDefinition.ts';
4
5
  import { RepeatElementDefinition } from '../body/RepeatElementDefinition.ts';
5
6
  import { BindDefinition } from './BindDefinition.ts';
6
7
  import { LeafNodeDefinition } from './LeafNodeDefinition.ts';
7
- import { RepeatInstanceDefinition } from './RepeatInstanceDefinition.ts';
8
- import { AnyRepeatRangeDefinition } from './RepeatRangeDefinition.ts';
9
- import { RepeatTemplateDefinition } from './RepeatTemplateDefinition.ts';
8
+ import { AnyRepeatDefinition } from './RepeatDefinition.ts';
10
9
  import { RootDefinition } from './RootDefinition.ts';
11
10
  import { SubtreeDefinition } from './SubtreeDefinition.ts';
12
11
  /**
13
- * Corresponds to the model/entry DOM root node, i.e.:
12
+ * Corresponds to a model instance root node, i.e.:
14
13
  *
15
14
  * - the element matching `/*` in primary instance expressions, a.k.a.
16
15
  * - `/h:html/h:head/xf:model/xf:instance[1]/*`
17
16
  */
18
17
  export type RootNodeType = 'root';
19
18
  /**
20
- * Corresponds to a range/sequence of model/entry DOM subtrees which in turn
21
- * corresponds to a <repeat> in the form body definition.
22
- */
23
- export type RepeatRangeType = 'repeat-range';
24
- /**
25
- * Corresponds to a template definition for a repeat range, which either has
26
- * an explicit `jr:template=""` attribute in the form definition or is inferred
27
- * as a template from the form's first element matched by a <repeat nodeset>.
28
- */
29
- export type RepeatTemplateType = 'repeat-template';
30
- /**
31
- * Corresponds to a single instance of a model/entry DOM subtree which
32
- * in turn corresponds to a <repeat> in the form body definition, and a
33
- * 'repeat-range' definition.
19
+ * Corresponds to the combined concepts defining a "repeat".
20
+ *
21
+ * @see {@link RepeatDefinition} for details on these concepts and how they are used to produce a "repeat definition", as such.
22
+ *
23
+ * , including or
24
+ * referencing all of the following:
25
+ *
34
26
  */
35
- export type RepeatInstanceType = 'repeat-instance';
27
+ export type RepeatType = 'repeat';
36
28
  /**
37
- * Corresponds to a model/entry DOM subtree which **does not** correspond to a
29
+ * Corresponds to a model instance subtree which **does not** correspond to a
38
30
  * <repeat> in the form definition. This will typically correspond to a <group>,
39
31
  * but this is not strictly necessary per spec (hence the distinct name).
40
32
  */
41
33
  export type SubtreeNodeType = 'subtree';
42
34
  /**
43
- * Corresponds to a model/entry DOM leaf node, i.e. one of:
35
+ * Corresponds to a model instance leaf node, i.e. one of:
44
36
  *
45
37
  * - An element with no child elements
46
38
  * - Any attribute corresponding to a bind's `nodeset` expression
47
39
  */
48
40
  export type LeafNodeType = 'leaf-node';
49
- export type NodeDefinitionType = RootNodeType | RepeatRangeType | RepeatTemplateType | RepeatInstanceType | SubtreeNodeType | LeafNodeType;
50
- export type ParentNodeDefinition = RootDefinition | RepeatTemplateDefinition | RepeatInstanceDefinition | SubtreeDefinition;
51
- export type ChildNodeDefinition = AnyRepeatRangeDefinition | LeafNodeDefinition | SubtreeDefinition;
52
- export type ChildNodeInstanceDefinition = RepeatTemplateDefinition | RepeatInstanceDefinition | SubtreeDefinition | LeafNodeDefinition;
41
+ export type NodeDefinitionType = RootNodeType | RepeatType | SubtreeNodeType | LeafNodeType;
42
+ export type ParentNodeDefinition = RootDefinition | AnyRepeatDefinition | SubtreeDefinition;
43
+ export type ChildNodeDefinition = AnyRepeatDefinition | LeafNodeDefinition | SubtreeDefinition;
53
44
  export declare abstract class NodeDefinition<Type extends NodeDefinitionType> implements NamedSubtreeDefinition {
54
45
  readonly bind: BindDefinition;
55
46
  abstract readonly type: Type;
@@ -59,12 +50,9 @@ export declare abstract class NodeDefinition<Type extends NodeDefinitionType> im
59
50
  abstract readonly isTranslated: boolean;
60
51
  abstract readonly root: RootDefinition;
61
52
  abstract readonly parent: ParentNodeDefinition | null;
53
+ abstract readonly template: StaticElement;
62
54
  abstract readonly children: readonly ChildNodeDefinition[] | null;
63
- abstract readonly instances: readonly RepeatInstanceDefinition[] | null;
64
- abstract readonly defaultValue: string | null;
65
- /** @todo leaf-node may be Attr */
66
- abstract readonly node: Element | null;
67
55
  readonly nodeset: string;
68
56
  constructor(bind: BindDefinition);
69
57
  }
70
- export type AnyNodeDefinition = RootDefinition | AnyRepeatRangeDefinition | RepeatTemplateDefinition | RepeatInstanceDefinition | SubtreeDefinition | LeafNodeDefinition;
58
+ export type AnyNodeDefinition = RootDefinition | AnyRepeatDefinition | SubtreeDefinition | LeafNodeDefinition;
@@ -1,4 +1,5 @@
1
1
  import { ValueType } from '../../client/ValueType.ts';
2
+ import { StaticLeafElement } from '../../integration/xpath/static-dom/StaticElement.ts';
2
3
  import { AnyBodyElementDefinition } from '../body/BodyDefinition.ts';
3
4
  import { InputControlDefinition } from '../body/control/InputControlDefinition.ts';
4
5
  import { BindComputationExpression } from '../expression/BindComputationExpression.ts';
@@ -26,6 +27,6 @@ export declare class NoteNodeDefinition<V extends ValueType = ValueType> extends
26
27
  readonly bind: NoteBindDefinition<V>;
27
28
  readonly bodyElement: InputControlDefinition;
28
29
  readonly noteTextDefinition: NoteTextDefinition;
29
- static from<V extends ValueType>(parent: ParentNodeDefinition, bind: BindDefinition<V>, bodyElement: AnyBodyElementDefinition | null, node: Element): NoteNodeDefinition<V> | null;
30
- constructor(parent: ParentNodeDefinition, bind: NoteBindDefinition<V>, bodyElement: InputControlDefinition, noteTextDefinition: NoteTextDefinition, node: Element);
30
+ static from<V extends ValueType>(parent: ParentNodeDefinition, bind: BindDefinition<V>, bodyElement: AnyBodyElementDefinition | null, node: StaticLeafElement): NoteNodeDefinition<V> | null;
31
+ constructor(parent: ParentNodeDefinition, bind: NoteBindDefinition<V>, bodyElement: InputControlDefinition, noteTextDefinition: NoteTextDefinition, template: StaticLeafElement);
31
32
  }
@@ -1,4 +1,5 @@
1
1
  import { ValueType } from '../../client/ValueType.ts';
2
+ import { StaticLeafElement } from '../../integration/xpath/static-dom/StaticElement.ts';
2
3
  import { RuntimeValue } from '../../lib/codecs/getSharedValueCodec.ts';
3
4
  import { RangeControlBoundsDefinition, RangeControlDefinition } from '../body/control/RangeControlDefinition.ts';
4
5
  import { BindDefinition } from './BindDefinition.ts';
@@ -33,7 +34,7 @@ declare class RangeNodeBoundsDefinition<V extends RangeValueType = RangeValueTyp
33
34
  export declare class RangeNodeDefinition<V extends RangeValueType = RangeValueType> extends LeafNodeDefinition<V> implements RangeLeafNodeDefinition<V> {
34
35
  readonly bind: BindDefinition<V>;
35
36
  readonly bodyElement: RangeControlDefinition;
36
- static from<V extends ValueType>(parent: ParentNodeDefinition, bind: BindDefinition<V>, bodyElement: RangeControlDefinition, node: Element): RangeNodeDefinition<Extract<V, RangeValueType>>;
37
+ static from<V extends ValueType>(parent: ParentNodeDefinition, bind: BindDefinition<V>, bodyElement: RangeControlDefinition, node: StaticLeafElement): RangeNodeDefinition<Extract<V, RangeValueType>>;
37
38
  readonly bounds: RangeNodeBoundsDefinition<V>;
38
39
  private constructor();
39
40
  }