@platforma-sdk/model 1.42.15 → 1.42.20

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 (228) hide show
  1. package/dist/bconfig/index.d.ts +0 -1
  2. package/dist/bconfig/lambdas.d.ts +0 -1
  3. package/dist/bconfig/normalization.cjs +19 -0
  4. package/dist/bconfig/normalization.cjs.map +1 -0
  5. package/dist/bconfig/normalization.d.ts +0 -1
  6. package/dist/bconfig/normalization.js +16 -0
  7. package/dist/bconfig/normalization.js.map +1 -0
  8. package/dist/bconfig/types.cjs +8 -0
  9. package/dist/bconfig/types.cjs.map +1 -0
  10. package/dist/bconfig/types.d.ts +0 -1
  11. package/dist/bconfig/types.js +6 -0
  12. package/dist/bconfig/types.js.map +1 -0
  13. package/dist/bconfig/util.d.ts +0 -1
  14. package/dist/bconfig/v3.d.ts +0 -1
  15. package/dist/block_api_v1.d.ts +0 -1
  16. package/dist/block_api_v2.d.ts +0 -1
  17. package/dist/block_state_patch.d.ts +0 -1
  18. package/dist/block_state_util.cjs +28 -0
  19. package/dist/block_state_util.cjs.map +1 -0
  20. package/dist/block_state_util.d.ts +0 -1
  21. package/dist/block_state_util.js +24 -0
  22. package/dist/block_state_util.js.map +1 -0
  23. package/dist/branding.d.ts +0 -1
  24. package/dist/builder.cjs +166 -0
  25. package/dist/builder.cjs.map +1 -0
  26. package/dist/builder.d.ts +0 -1
  27. package/dist/builder.js +164 -0
  28. package/dist/builder.js.map +1 -0
  29. package/dist/components/PFrameForGraphs.cjs +261 -0
  30. package/dist/components/PFrameForGraphs.cjs.map +1 -0
  31. package/dist/components/PFrameForGraphs.d.ts +5 -9
  32. package/dist/components/PFrameForGraphs.js +254 -0
  33. package/dist/components/PFrameForGraphs.js.map +1 -0
  34. package/dist/components/PlAnnotations/filter.d.ts +0 -1
  35. package/dist/components/PlAnnotations/filters_ui.cjs +556 -0
  36. package/dist/components/PlAnnotations/filters_ui.cjs.map +1 -0
  37. package/dist/components/PlAnnotations/filters_ui.d.ts +0 -1
  38. package/dist/components/PlAnnotations/filters_ui.js +548 -0
  39. package/dist/components/PlAnnotations/filters_ui.js.map +1 -0
  40. package/dist/components/PlAnnotations/index.d.ts +0 -1
  41. package/dist/components/PlAnnotations/types.d.ts +0 -1
  42. package/dist/components/PlDataTable.cjs +337 -0
  43. package/dist/components/PlDataTable.cjs.map +1 -0
  44. package/dist/components/PlDataTable.d.ts +3 -4
  45. package/dist/components/PlDataTable.js +324 -0
  46. package/dist/components/PlDataTable.js.map +1 -0
  47. package/dist/components/PlMultiSequenceAlignment.cjs +33 -0
  48. package/dist/components/PlMultiSequenceAlignment.cjs.map +1 -0
  49. package/dist/components/PlMultiSequenceAlignment.d.ts +0 -1
  50. package/dist/components/PlMultiSequenceAlignment.js +31 -0
  51. package/dist/components/PlMultiSequenceAlignment.js.map +1 -0
  52. package/dist/components/PlSelectionModel.cjs +11 -0
  53. package/dist/components/PlSelectionModel.cjs.map +1 -0
  54. package/dist/components/PlSelectionModel.d.ts +0 -1
  55. package/dist/components/PlSelectionModel.js +9 -0
  56. package/dist/components/PlSelectionModel.js.map +1 -0
  57. package/dist/components/index.d.ts +0 -1
  58. package/dist/config/actions.cjs +266 -0
  59. package/dist/config/actions.cjs.map +1 -0
  60. package/dist/config/actions.d.ts +0 -1
  61. package/dist/config/actions.js +233 -0
  62. package/dist/config/actions.js.map +1 -0
  63. package/dist/config/actions_kinds.d.ts +0 -1
  64. package/dist/config/index.d.ts +0 -1
  65. package/dist/config/model.d.ts +0 -1
  66. package/dist/config/model_meta.d.ts +0 -1
  67. package/dist/config/type_engine.d.ts +0 -1
  68. package/dist/config/type_util.d.ts +0 -1
  69. package/dist/env_value.cjs +11 -0
  70. package/dist/env_value.cjs.map +1 -0
  71. package/dist/env_value.d.ts +0 -1
  72. package/dist/env_value.js +9 -0
  73. package/dist/env_value.js.map +1 -0
  74. package/dist/global.d.ts +14 -0
  75. package/dist/index.cjs +138 -0
  76. package/dist/index.cjs.map +1 -0
  77. package/dist/index.d.ts +0 -1
  78. package/dist/index.js +26 -1
  79. package/dist/index.js.map +1 -1
  80. package/dist/internal.cjs +56 -0
  81. package/dist/internal.cjs.map +1 -0
  82. package/dist/internal.d.ts +0 -1
  83. package/dist/internal.js +49 -0
  84. package/dist/internal.js.map +1 -0
  85. package/dist/package.json.cjs +6 -0
  86. package/dist/package.json.cjs.map +1 -0
  87. package/dist/package.json.js +4 -0
  88. package/dist/package.json.js.map +1 -0
  89. package/dist/pframe.cjs +34 -0
  90. package/dist/pframe.cjs.map +1 -0
  91. package/dist/pframe.d.ts +0 -1
  92. package/dist/pframe.js +32 -0
  93. package/dist/pframe.js.map +1 -0
  94. package/dist/platforma.d.ts +0 -1
  95. package/dist/raw_globals.cjs +28 -0
  96. package/dist/raw_globals.cjs.map +1 -0
  97. package/dist/raw_globals.d.ts +0 -1
  98. package/dist/raw_globals.js +25 -0
  99. package/dist/raw_globals.js.map +1 -0
  100. package/dist/ref_util.cjs +21 -0
  101. package/dist/ref_util.cjs.map +1 -0
  102. package/dist/ref_util.d.ts +11 -12
  103. package/dist/ref_util.js +18 -0
  104. package/dist/ref_util.js.map +1 -0
  105. package/dist/render/accessor.cjs +233 -0
  106. package/dist/render/accessor.cjs.map +1 -0
  107. package/dist/render/accessor.d.ts +0 -1
  108. package/dist/render/accessor.js +230 -0
  109. package/dist/render/accessor.js.map +1 -0
  110. package/dist/render/api.cjs +514 -0
  111. package/dist/render/api.cjs.map +1 -0
  112. package/dist/render/api.d.ts +0 -1
  113. package/dist/render/api.js +511 -0
  114. package/dist/render/api.js.map +1 -0
  115. package/dist/render/future.cjs +35 -0
  116. package/dist/render/future.cjs.map +1 -0
  117. package/dist/render/future.d.ts +0 -1
  118. package/dist/render/future.js +33 -0
  119. package/dist/render/future.js.map +1 -0
  120. package/dist/render/index.d.ts +0 -1
  121. package/dist/render/internal.cjs +43 -0
  122. package/dist/render/internal.cjs.map +1 -0
  123. package/dist/render/internal.d.ts +0 -1
  124. package/dist/render/internal.js +37 -0
  125. package/dist/render/internal.js.map +1 -0
  126. package/dist/render/traversal_ops.d.ts +0 -1
  127. package/dist/render/util/axis_filtering.cjs +87 -0
  128. package/dist/render/util/axis_filtering.cjs.map +1 -0
  129. package/dist/render/util/axis_filtering.d.ts +0 -1
  130. package/dist/render/util/axis_filtering.js +85 -0
  131. package/dist/render/util/axis_filtering.js.map +1 -0
  132. package/dist/render/util/column_collection.cjs +309 -0
  133. package/dist/render/util/column_collection.cjs.map +1 -0
  134. package/dist/render/util/column_collection.d.ts +0 -1
  135. package/dist/render/util/column_collection.js +307 -0
  136. package/dist/render/util/column_collection.js.map +1 -0
  137. package/dist/render/util/index.d.ts +0 -1
  138. package/dist/render/util/label.cjs +153 -0
  139. package/dist/render/util/label.cjs.map +1 -0
  140. package/dist/render/util/label.d.ts +0 -3
  141. package/dist/render/util/label.js +149 -0
  142. package/dist/render/util/label.js.map +1 -0
  143. package/dist/render/util/pcolumn_data.cjs +342 -0
  144. package/dist/render/util/pcolumn_data.cjs.map +1 -0
  145. package/dist/render/util/pcolumn_data.d.ts +0 -1
  146. package/dist/render/util/pcolumn_data.js +330 -0
  147. package/dist/render/util/pcolumn_data.js.map +1 -0
  148. package/dist/render/util/pframe_upgraders.cjs +47 -0
  149. package/dist/render/util/pframe_upgraders.cjs.map +1 -0
  150. package/dist/render/util/pframe_upgraders.d.ts +0 -1
  151. package/dist/render/util/pframe_upgraders.js +45 -0
  152. package/dist/render/util/pframe_upgraders.js.map +1 -0
  153. package/dist/render/util/split_selectors.d.ts +0 -1
  154. package/dist/sdk_info.cjs +10 -0
  155. package/dist/sdk_info.cjs.map +1 -0
  156. package/dist/sdk_info.d.ts +0 -1
  157. package/dist/sdk_info.js +8 -0
  158. package/dist/sdk_info.js.map +1 -0
  159. package/dist/unionize.d.ts +0 -1
  160. package/dist/version.cjs +8 -0
  161. package/dist/version.cjs.map +1 -0
  162. package/dist/version.d.ts +0 -1
  163. package/dist/version.js +6 -0
  164. package/dist/version.js.map +1 -0
  165. package/package.json +16 -18
  166. package/src/components/PFrameForGraphs.test.ts +22 -23
  167. package/src/components/PFrameForGraphs.ts +56 -75
  168. package/src/components/PlAnnotations/filters_ui.test.ts +1 -1
  169. package/src/components/PlDataTable.ts +9 -6
  170. package/src/components/PlMultiSequenceAlignment.ts +9 -5
  171. package/src/render/api.ts +4 -2
  172. package/src/render/util/column_collection.ts +3 -2
  173. package/src/render/util/label.test.ts +5 -5
  174. package/src/render/util/label.ts +4 -7
  175. package/src/typing.test.ts +2 -1
  176. package/dist/bconfig/index.d.ts.map +0 -1
  177. package/dist/bconfig/lambdas.d.ts.map +0 -1
  178. package/dist/bconfig/normalization.d.ts.map +0 -1
  179. package/dist/bconfig/types.d.ts.map +0 -1
  180. package/dist/bconfig/util.d.ts.map +0 -1
  181. package/dist/bconfig/v3.d.ts.map +0 -1
  182. package/dist/block_api_v1.d.ts.map +0 -1
  183. package/dist/block_api_v2.d.ts.map +0 -1
  184. package/dist/block_state_patch.d.ts.map +0 -1
  185. package/dist/block_state_util.d.ts.map +0 -1
  186. package/dist/branding.d.ts.map +0 -1
  187. package/dist/builder.d.ts.map +0 -1
  188. package/dist/components/PFrameForGraphs.d.ts.map +0 -1
  189. package/dist/components/PlAnnotations/filter.d.ts.map +0 -1
  190. package/dist/components/PlAnnotations/filters_ui.d.ts.map +0 -1
  191. package/dist/components/PlAnnotations/index.d.ts.map +0 -1
  192. package/dist/components/PlAnnotations/types.d.ts.map +0 -1
  193. package/dist/components/PlDataTable.d.ts.map +0 -1
  194. package/dist/components/PlMultiSequenceAlignment.d.ts.map +0 -1
  195. package/dist/components/PlSelectionModel.d.ts.map +0 -1
  196. package/dist/components/index.d.ts.map +0 -1
  197. package/dist/config/actions.d.ts.map +0 -1
  198. package/dist/config/actions_kinds.d.ts.map +0 -1
  199. package/dist/config/index.d.ts.map +0 -1
  200. package/dist/config/model.d.ts.map +0 -1
  201. package/dist/config/model_meta.d.ts.map +0 -1
  202. package/dist/config/type_engine.d.ts.map +0 -1
  203. package/dist/config/type_util.d.ts.map +0 -1
  204. package/dist/env_value.d.ts.map +0 -1
  205. package/dist/index.d.ts.map +0 -1
  206. package/dist/index.mjs +0 -2875
  207. package/dist/index.mjs.map +0 -1
  208. package/dist/internal.d.ts.map +0 -1
  209. package/dist/pframe.d.ts.map +0 -1
  210. package/dist/platforma.d.ts.map +0 -1
  211. package/dist/raw_globals.d.ts.map +0 -1
  212. package/dist/ref_util.d.ts.map +0 -1
  213. package/dist/render/accessor.d.ts.map +0 -1
  214. package/dist/render/api.d.ts.map +0 -1
  215. package/dist/render/future.d.ts.map +0 -1
  216. package/dist/render/index.d.ts.map +0 -1
  217. package/dist/render/internal.d.ts.map +0 -1
  218. package/dist/render/traversal_ops.d.ts.map +0 -1
  219. package/dist/render/util/axis_filtering.d.ts.map +0 -1
  220. package/dist/render/util/column_collection.d.ts.map +0 -1
  221. package/dist/render/util/index.d.ts.map +0 -1
  222. package/dist/render/util/label.d.ts.map +0 -1
  223. package/dist/render/util/pcolumn_data.d.ts.map +0 -1
  224. package/dist/render/util/pframe_upgraders.d.ts.map +0 -1
  225. package/dist/render/util/split_selectors.d.ts.map +0 -1
  226. package/dist/sdk_info.d.ts.map +0 -1
  227. package/dist/unionize.d.ts.map +0 -1
  228. package/dist/version.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessor.cjs","sources":["../../src/render/accessor.ts"],"sourcesContent":["import type {\n AnyLogHandle,\n ImportProgress,\n LocalBlobHandleAndSize,\n PColumn,\n PObject,\n RemoteBlobHandleAndSize,\n FolderURL,\n ArchiveFormat,\n ProgressLogWithInfo,\n RangeBytes,\n} from '@milaboratories/pl-model-common';\nimport {\n isPColumn,\n mapPObjectData,\n} from '@milaboratories/pl-model-common';\nimport { getCfgRenderCtx } from '../internal';\nimport { FutureRef } from './future';\nimport type { AccessorHandle } from './internal';\nimport type { CommonFieldTraverseOps, FieldTraversalStep, ResourceType } from './traversal_ops';\n\nexport function ifDef<T, R>(value: T | undefined, cb: (value: T) => R): R | undefined {\n return value === undefined ? undefined : cb(value);\n}\n\ntype FieldMapOps = {\n /**\n * Type of fields to iterate over.\n * (default 'Input')\n * */\n readonly fieldType?: 'Input' | 'Output' | 'Dynamic';\n /**\n * If not locked, `undefined` value will be returned. Do nothing if mapping `Dynamic` fields.\n * (default true)\n * */\n readonly requireLocked?: boolean;\n /**\n * Will skip unresolved fields.\n * (default false)\n * */\n readonly skipUnresolved?: boolean;\n};\n\n/** Represent resource tree node accessor */\nexport class TreeNodeAccessor {\n constructor(\n public readonly handle: AccessorHandle,\n public readonly resolvePath: string[],\n ) {}\n\n /** Shortcut for {@link resolveInput} */\n public resolve(\n ...steps: [\n Omit<FieldTraversalStep, 'errorIfFieldNotSet'> & {\n errorIfFieldNotAssigned: true;\n },\n ]\n ): TreeNodeAccessor;\n /** Shortcut for {@link resolveInput} */\n public resolve(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined;\n public resolve(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined {\n const transformedSteps = steps.map(\n (s) =>\n ({\n assertFieldType: 'Input',\n ...(typeof s === 'string' ? { field: s } : s),\n }) satisfies FieldTraversalStep,\n );\n return this.resolveWithCommon({}, ...transformedSteps);\n }\n\n /** If field type assertion is not specified for the step, default is Output. */\n public resolveOutput(\n ...steps: [\n Omit<FieldTraversalStep, 'errorIfFieldNotSet'> & {\n errorIfFieldNotAssigned: true;\n },\n ]\n ): TreeNodeAccessor;\n /** If field type assertion is not specified for the step, default is Output. */\n public resolveOutput(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined;\n public resolveOutput(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined {\n const transformedSteps = steps.map(\n (s) =>\n ({\n assertFieldType: 'Output',\n ...(typeof s === 'string' ? { field: s } : s),\n }) satisfies FieldTraversalStep,\n );\n return this.resolveWithCommon({}, ...transformedSteps);\n }\n\n /** If field type assertion is not specified for the step, default is Input. */\n public resolveInput(\n ...steps: [\n Omit<FieldTraversalStep, 'errorIfFieldNotSet'> & {\n errorIfFieldNotAssigned: true;\n },\n ]\n ): TreeNodeAccessor;\n /** If field type assertion is not specified for the step, default is Input. */\n public resolveInput(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined;\n public resolveInput(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined {\n const transformedSteps = steps.map(\n (s) =>\n ({\n assertFieldType: 'Input',\n ...(typeof s === 'string' ? { field: s } : s),\n }) satisfies FieldTraversalStep,\n );\n return this.resolveWithCommon({}, ...transformedSteps);\n }\n\n public resolveAny(\n ...steps: [\n Omit<FieldTraversalStep, 'errorIfFieldNotSet'> & {\n errorIfFieldNotAssigned: true;\n },\n ]\n ): TreeNodeAccessor;\n public resolveAny(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined;\n public resolveAny(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined {\n return this.resolveWithCommon({}, ...steps);\n }\n\n public resolveWithCommon(\n commonOptions: CommonFieldTraverseOps,\n ...steps: (FieldTraversalStep | string)[]\n ): TreeNodeAccessor | undefined {\n const resolvePath = [\n ...this.resolvePath,\n ...steps.map((step) => typeof step === 'string' ? step : step.field),\n ];\n return ifDef(\n getCfgRenderCtx().resolveWithCommon(this.handle, commonOptions, ...steps),\n (accessor) => new TreeNodeAccessor(accessor, resolvePath),\n );\n }\n\n public get resourceType(): ResourceType {\n return getCfgRenderCtx().getResourceType(this.handle);\n }\n\n public getInputsLocked(): boolean {\n return getCfgRenderCtx().getInputsLocked(this.handle);\n }\n\n public getOutputsLocked(): boolean {\n return getCfgRenderCtx().getOutputsLocked(this.handle);\n }\n\n public getIsReadyOrError(): boolean {\n return getCfgRenderCtx().getIsReadyOrError(this.handle);\n }\n\n public getIsFinal(): boolean {\n return getCfgRenderCtx().getIsFinal(this.handle);\n }\n\n public getError(): TreeNodeAccessor | undefined {\n const resolvePath = [...this.resolvePath, 'error'];\n return ifDef(\n getCfgRenderCtx().getError(this.handle),\n (accsessor) => new TreeNodeAccessor(accsessor, resolvePath),\n );\n }\n\n public listInputFields(): string[] {\n return getCfgRenderCtx().listInputFields(this.handle);\n }\n\n public listOutputFields(): string[] {\n return getCfgRenderCtx().listOutputFields(this.handle);\n }\n\n public listDynamicFields(): string[] {\n return getCfgRenderCtx().listDynamicFields(this.handle);\n }\n\n public getKeyValueBase64(key: string): string | undefined {\n return getCfgRenderCtx().getKeyValueBase64(this.handle, key);\n }\n\n public getKeyValueAsString(key: string): string | undefined {\n return getCfgRenderCtx().getKeyValueAsString(this.handle, key);\n }\n\n public getKeyValueAsJson<T>(key: string): T {\n const content = this.getKeyValueAsString(key);\n if (content == undefined) throw new Error('Resource has no content.');\n return JSON.parse(content);\n }\n\n public getDataBase64(): string | undefined {\n return getCfgRenderCtx().getDataBase64(this.handle);\n }\n\n public getDataAsString(): string | undefined {\n return getCfgRenderCtx().getDataAsString(this.handle);\n }\n\n public getDataAsJson<T>(): T {\n const content = this.getDataAsString();\n if (content == undefined) throw new Error('Resource has no content.');\n return JSON.parse(content);\n }\n\n /**\n *\n */\n public getPColumns(\n errorOnUnknownField: boolean = false,\n prefix: string = '',\n ): PColumn<TreeNodeAccessor>[] | undefined {\n const result = this.parsePObjectCollection(errorOnUnknownField, prefix);\n if (result === undefined) return undefined;\n\n const pf = Object.entries(result).map(([, obj]) => {\n if (!isPColumn(obj)) throw new Error(`not a PColumn (kind = ${obj.spec.kind})`);\n return obj;\n });\n\n return pf;\n }\n\n /**\n *\n */\n public parsePObjectCollection(\n errorOnUnknownField: boolean = false,\n prefix: string = '',\n ): Record<string, PObject<TreeNodeAccessor>> | undefined {\n const pObjects = getCfgRenderCtx().parsePObjectCollection(\n this.handle,\n errorOnUnknownField,\n prefix,\n ...this.resolvePath,\n );\n if (pObjects === undefined) return undefined;\n const result: Record<string, PObject<TreeNodeAccessor>> = {};\n for (const [key, value] of Object.entries(pObjects)) {\n const resolvePath = [...this.resolvePath, key];\n result[key] = mapPObjectData(value, (c) => new TreeNodeAccessor(c, resolvePath));\n }\n return result;\n }\n\n public getFileContentAsBase64(range?: RangeBytes): FutureRef<string | undefined> {\n return new FutureRef(getCfgRenderCtx().getBlobContentAsBase64(this.handle, range));\n }\n\n public getFileContentAsString(range?: RangeBytes): FutureRef<string | undefined> {\n return new FutureRef(getCfgRenderCtx().getBlobContentAsString(this.handle, range));\n }\n\n public getFileContentAsJson<T>(range?: RangeBytes): FutureRef<T | undefined> {\n return new FutureRef<string | undefined>(\n getCfgRenderCtx().getBlobContentAsString(this.handle, range),\n ).mapDefined((v) => JSON.parse(v) as T);\n }\n\n /**\n * @deprecated use getFileContentAsBase64\n */\n public getBlobContentAsBase64(): FutureRef<string | undefined> {\n return this.getFileContentAsBase64();\n }\n\n /**\n * @deprecated use getFileContentAsString\n */\n public getBlobContentAsString(): FutureRef<string | undefined> {\n return this.getFileContentAsString();\n }\n\n /**\n * @returns downloaded file handle\n */\n public getFileHandle(): FutureRef<LocalBlobHandleAndSize | undefined> {\n return new FutureRef(getCfgRenderCtx().getDownloadedBlobContentHandle(this.handle));\n }\n\n /**\n * @deprecated use getFileHandle\n */\n public getDownloadedBlobHandle(): FutureRef<LocalBlobHandleAndSize | undefined> {\n return this.getFileHandle();\n }\n\n /**\n * @returns downloaded file handle\n */\n public getRemoteFileHandle(): FutureRef<RemoteBlobHandleAndSize | undefined> {\n return new FutureRef(getCfgRenderCtx().getOnDemandBlobContentHandle(this.handle));\n }\n\n /**\n * @deprecated use getRemoteFileHandle\n */\n public getOnDemandBlobHandle(): FutureRef<RemoteBlobHandleAndSize | undefined> {\n return this.getRemoteFileHandle();\n }\n\n /**\n * @returns the url to the extracted folder\n */\n public extractArchiveAndGetURL(format: ArchiveFormat): FutureRef<FolderURL | undefined> {\n return new FutureRef(getCfgRenderCtx().extractArchiveAndGetURL(this.handle, format));\n }\n\n public getImportProgress(): FutureRef<ImportProgress> {\n return new FutureRef(getCfgRenderCtx().getImportProgress(this.handle));\n }\n\n public getLastLogs(nLines: number): FutureRef<string | undefined> {\n return new FutureRef(getCfgRenderCtx().getLastLogs(this.handle, nLines));\n }\n\n public getProgressLog(patternToSearch: string): FutureRef<string | undefined> {\n return new FutureRef(getCfgRenderCtx().getProgressLog(this.handle, patternToSearch));\n }\n\n public getProgressLogWithInfo(patternToSearch: string): FutureRef<ProgressLogWithInfo | undefined> {\n return new FutureRef(getCfgRenderCtx().getProgressLogWithInfo(this.handle, patternToSearch));\n }\n\n public getLogHandle(): FutureRef<AnyLogHandle | undefined> {\n return new FutureRef(getCfgRenderCtx().getLogHandle(this.handle));\n }\n\n public allFieldsResolved(fieldType: 'Input' | 'Output' = 'Input'): boolean {\n switch (fieldType) {\n case 'Input':\n return (\n this.getInputsLocked()\n && this.listInputFields().every(\n (field) => this.resolve({ field, assertFieldType: 'Input' }) !== undefined,\n )\n );\n case 'Output':\n return (\n this.getOutputsLocked()\n && this.listOutputFields().every(\n (field) => this.resolve({ field, assertFieldType: 'Output' }) !== undefined,\n )\n );\n }\n }\n\n public mapFields<T>(\n _mapping: (name: string, value: TreeNodeAccessor) => T,\n _ops: FieldMapOps & { skipUnresolved: true }\n ): T[] | undefined;\n public mapFields<T>(\n _mapping: (name: string, value: TreeNodeAccessor | undefined) => T,\n _ops?: FieldMapOps\n ): T[] | undefined;\n public mapFields<T>(\n _mapping: (name: string, value: TreeNodeAccessor) => T,\n _ops?: FieldMapOps,\n ): T[] | undefined {\n const { fieldType, requireLocked, skipUnresolved } = {\n fieldType: 'Input' as const,\n requireLocked: true,\n skipUnresolved: false,\n ..._ops,\n };\n const mapping = _mapping as (name: string, value: TreeNodeAccessor | undefined) => T;\n if (requireLocked) {\n if (fieldType === 'Input' && !this.getInputsLocked()) return undefined;\n if (fieldType === 'Output' && !this.getOutputsLocked()) return undefined;\n }\n const fieldList\n = fieldType === 'Input'\n ? this.listInputFields()\n : fieldType === 'Output'\n ? this.listOutputFields()\n : this.listDynamicFields();\n let fieldEntries = fieldList.map(\n (field) => [field, this.resolve({ field, assertFieldType: fieldType })] as const,\n );\n if (skipUnresolved) fieldEntries = fieldEntries.filter((e) => e[1] !== undefined);\n return fieldEntries.map(([name, value]) => mapping(name, value));\n }\n}\n"],"names":["getCfgRenderCtx","isPColumn","mapPObjectData","FutureRef"],"mappings":"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"}
@@ -122,4 +122,3 @@ export declare class TreeNodeAccessor {
122
122
  mapFields<T>(_mapping: (name: string, value: TreeNodeAccessor | undefined) => T, _ops?: FieldMapOps): T[] | undefined;
123
123
  }
124
124
  export {};
125
- //# sourceMappingURL=accessor.d.ts.map
@@ -0,0 +1,230 @@
1
+ import { isPColumn, mapPObjectData } from '@milaboratories/pl-model-common';
2
+ import { getCfgRenderCtx } from '../internal.js';
3
+ import { FutureRef } from './future.js';
4
+
5
+ function ifDef(value, cb) {
6
+ return value === undefined ? undefined : cb(value);
7
+ }
8
+ /** Represent resource tree node accessor */
9
+ class TreeNodeAccessor {
10
+ handle;
11
+ resolvePath;
12
+ constructor(handle, resolvePath) {
13
+ this.handle = handle;
14
+ this.resolvePath = resolvePath;
15
+ }
16
+ resolve(...steps) {
17
+ const transformedSteps = steps.map((s) => ({
18
+ assertFieldType: 'Input',
19
+ ...(typeof s === 'string' ? { field: s } : s),
20
+ }));
21
+ return this.resolveWithCommon({}, ...transformedSteps);
22
+ }
23
+ resolveOutput(...steps) {
24
+ const transformedSteps = steps.map((s) => ({
25
+ assertFieldType: 'Output',
26
+ ...(typeof s === 'string' ? { field: s } : s),
27
+ }));
28
+ return this.resolveWithCommon({}, ...transformedSteps);
29
+ }
30
+ resolveInput(...steps) {
31
+ const transformedSteps = steps.map((s) => ({
32
+ assertFieldType: 'Input',
33
+ ...(typeof s === 'string' ? { field: s } : s),
34
+ }));
35
+ return this.resolveWithCommon({}, ...transformedSteps);
36
+ }
37
+ resolveAny(...steps) {
38
+ return this.resolveWithCommon({}, ...steps);
39
+ }
40
+ resolveWithCommon(commonOptions, ...steps) {
41
+ const resolvePath = [
42
+ ...this.resolvePath,
43
+ ...steps.map((step) => typeof step === 'string' ? step : step.field),
44
+ ];
45
+ return ifDef(getCfgRenderCtx().resolveWithCommon(this.handle, commonOptions, ...steps), (accessor) => new TreeNodeAccessor(accessor, resolvePath));
46
+ }
47
+ get resourceType() {
48
+ return getCfgRenderCtx().getResourceType(this.handle);
49
+ }
50
+ getInputsLocked() {
51
+ return getCfgRenderCtx().getInputsLocked(this.handle);
52
+ }
53
+ getOutputsLocked() {
54
+ return getCfgRenderCtx().getOutputsLocked(this.handle);
55
+ }
56
+ getIsReadyOrError() {
57
+ return getCfgRenderCtx().getIsReadyOrError(this.handle);
58
+ }
59
+ getIsFinal() {
60
+ return getCfgRenderCtx().getIsFinal(this.handle);
61
+ }
62
+ getError() {
63
+ const resolvePath = [...this.resolvePath, 'error'];
64
+ return ifDef(getCfgRenderCtx().getError(this.handle), (accsessor) => new TreeNodeAccessor(accsessor, resolvePath));
65
+ }
66
+ listInputFields() {
67
+ return getCfgRenderCtx().listInputFields(this.handle);
68
+ }
69
+ listOutputFields() {
70
+ return getCfgRenderCtx().listOutputFields(this.handle);
71
+ }
72
+ listDynamicFields() {
73
+ return getCfgRenderCtx().listDynamicFields(this.handle);
74
+ }
75
+ getKeyValueBase64(key) {
76
+ return getCfgRenderCtx().getKeyValueBase64(this.handle, key);
77
+ }
78
+ getKeyValueAsString(key) {
79
+ return getCfgRenderCtx().getKeyValueAsString(this.handle, key);
80
+ }
81
+ getKeyValueAsJson(key) {
82
+ const content = this.getKeyValueAsString(key);
83
+ if (content == undefined)
84
+ throw new Error('Resource has no content.');
85
+ return JSON.parse(content);
86
+ }
87
+ getDataBase64() {
88
+ return getCfgRenderCtx().getDataBase64(this.handle);
89
+ }
90
+ getDataAsString() {
91
+ return getCfgRenderCtx().getDataAsString(this.handle);
92
+ }
93
+ getDataAsJson() {
94
+ const content = this.getDataAsString();
95
+ if (content == undefined)
96
+ throw new Error('Resource has no content.');
97
+ return JSON.parse(content);
98
+ }
99
+ /**
100
+ *
101
+ */
102
+ getPColumns(errorOnUnknownField = false, prefix = '') {
103
+ const result = this.parsePObjectCollection(errorOnUnknownField, prefix);
104
+ if (result === undefined)
105
+ return undefined;
106
+ const pf = Object.entries(result).map(([, obj]) => {
107
+ if (!isPColumn(obj))
108
+ throw new Error(`not a PColumn (kind = ${obj.spec.kind})`);
109
+ return obj;
110
+ });
111
+ return pf;
112
+ }
113
+ /**
114
+ *
115
+ */
116
+ parsePObjectCollection(errorOnUnknownField = false, prefix = '') {
117
+ const pObjects = getCfgRenderCtx().parsePObjectCollection(this.handle, errorOnUnknownField, prefix, ...this.resolvePath);
118
+ if (pObjects === undefined)
119
+ return undefined;
120
+ const result = {};
121
+ for (const [key, value] of Object.entries(pObjects)) {
122
+ const resolvePath = [...this.resolvePath, key];
123
+ result[key] = mapPObjectData(value, (c) => new TreeNodeAccessor(c, resolvePath));
124
+ }
125
+ return result;
126
+ }
127
+ getFileContentAsBase64(range) {
128
+ return new FutureRef(getCfgRenderCtx().getBlobContentAsBase64(this.handle, range));
129
+ }
130
+ getFileContentAsString(range) {
131
+ return new FutureRef(getCfgRenderCtx().getBlobContentAsString(this.handle, range));
132
+ }
133
+ getFileContentAsJson(range) {
134
+ return new FutureRef(getCfgRenderCtx().getBlobContentAsString(this.handle, range)).mapDefined((v) => JSON.parse(v));
135
+ }
136
+ /**
137
+ * @deprecated use getFileContentAsBase64
138
+ */
139
+ getBlobContentAsBase64() {
140
+ return this.getFileContentAsBase64();
141
+ }
142
+ /**
143
+ * @deprecated use getFileContentAsString
144
+ */
145
+ getBlobContentAsString() {
146
+ return this.getFileContentAsString();
147
+ }
148
+ /**
149
+ * @returns downloaded file handle
150
+ */
151
+ getFileHandle() {
152
+ return new FutureRef(getCfgRenderCtx().getDownloadedBlobContentHandle(this.handle));
153
+ }
154
+ /**
155
+ * @deprecated use getFileHandle
156
+ */
157
+ getDownloadedBlobHandle() {
158
+ return this.getFileHandle();
159
+ }
160
+ /**
161
+ * @returns downloaded file handle
162
+ */
163
+ getRemoteFileHandle() {
164
+ return new FutureRef(getCfgRenderCtx().getOnDemandBlobContentHandle(this.handle));
165
+ }
166
+ /**
167
+ * @deprecated use getRemoteFileHandle
168
+ */
169
+ getOnDemandBlobHandle() {
170
+ return this.getRemoteFileHandle();
171
+ }
172
+ /**
173
+ * @returns the url to the extracted folder
174
+ */
175
+ extractArchiveAndGetURL(format) {
176
+ return new FutureRef(getCfgRenderCtx().extractArchiveAndGetURL(this.handle, format));
177
+ }
178
+ getImportProgress() {
179
+ return new FutureRef(getCfgRenderCtx().getImportProgress(this.handle));
180
+ }
181
+ getLastLogs(nLines) {
182
+ return new FutureRef(getCfgRenderCtx().getLastLogs(this.handle, nLines));
183
+ }
184
+ getProgressLog(patternToSearch) {
185
+ return new FutureRef(getCfgRenderCtx().getProgressLog(this.handle, patternToSearch));
186
+ }
187
+ getProgressLogWithInfo(patternToSearch) {
188
+ return new FutureRef(getCfgRenderCtx().getProgressLogWithInfo(this.handle, patternToSearch));
189
+ }
190
+ getLogHandle() {
191
+ return new FutureRef(getCfgRenderCtx().getLogHandle(this.handle));
192
+ }
193
+ allFieldsResolved(fieldType = 'Input') {
194
+ switch (fieldType) {
195
+ case 'Input':
196
+ return (this.getInputsLocked()
197
+ && this.listInputFields().every((field) => this.resolve({ field, assertFieldType: 'Input' }) !== undefined));
198
+ case 'Output':
199
+ return (this.getOutputsLocked()
200
+ && this.listOutputFields().every((field) => this.resolve({ field, assertFieldType: 'Output' }) !== undefined));
201
+ }
202
+ }
203
+ mapFields(_mapping, _ops) {
204
+ const { fieldType, requireLocked, skipUnresolved } = {
205
+ fieldType: 'Input',
206
+ requireLocked: true,
207
+ skipUnresolved: false,
208
+ ..._ops,
209
+ };
210
+ const mapping = _mapping;
211
+ if (requireLocked) {
212
+ if (fieldType === 'Input' && !this.getInputsLocked())
213
+ return undefined;
214
+ if (fieldType === 'Output' && !this.getOutputsLocked())
215
+ return undefined;
216
+ }
217
+ const fieldList = fieldType === 'Input'
218
+ ? this.listInputFields()
219
+ : fieldType === 'Output'
220
+ ? this.listOutputFields()
221
+ : this.listDynamicFields();
222
+ let fieldEntries = fieldList.map((field) => [field, this.resolve({ field, assertFieldType: fieldType })]);
223
+ if (skipUnresolved)
224
+ fieldEntries = fieldEntries.filter((e) => e[1] !== undefined);
225
+ return fieldEntries.map(([name, value]) => mapping(name, value));
226
+ }
227
+ }
228
+
229
+ export { TreeNodeAccessor, ifDef };
230
+ //# sourceMappingURL=accessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessor.js","sources":["../../src/render/accessor.ts"],"sourcesContent":["import type {\n AnyLogHandle,\n ImportProgress,\n LocalBlobHandleAndSize,\n PColumn,\n PObject,\n RemoteBlobHandleAndSize,\n FolderURL,\n ArchiveFormat,\n ProgressLogWithInfo,\n RangeBytes,\n} from '@milaboratories/pl-model-common';\nimport {\n isPColumn,\n mapPObjectData,\n} from '@milaboratories/pl-model-common';\nimport { getCfgRenderCtx } from '../internal';\nimport { FutureRef } from './future';\nimport type { AccessorHandle } from './internal';\nimport type { CommonFieldTraverseOps, FieldTraversalStep, ResourceType } from './traversal_ops';\n\nexport function ifDef<T, R>(value: T | undefined, cb: (value: T) => R): R | undefined {\n return value === undefined ? undefined : cb(value);\n}\n\ntype FieldMapOps = {\n /**\n * Type of fields to iterate over.\n * (default 'Input')\n * */\n readonly fieldType?: 'Input' | 'Output' | 'Dynamic';\n /**\n * If not locked, `undefined` value will be returned. Do nothing if mapping `Dynamic` fields.\n * (default true)\n * */\n readonly requireLocked?: boolean;\n /**\n * Will skip unresolved fields.\n * (default false)\n * */\n readonly skipUnresolved?: boolean;\n};\n\n/** Represent resource tree node accessor */\nexport class TreeNodeAccessor {\n constructor(\n public readonly handle: AccessorHandle,\n public readonly resolvePath: string[],\n ) {}\n\n /** Shortcut for {@link resolveInput} */\n public resolve(\n ...steps: [\n Omit<FieldTraversalStep, 'errorIfFieldNotSet'> & {\n errorIfFieldNotAssigned: true;\n },\n ]\n ): TreeNodeAccessor;\n /** Shortcut for {@link resolveInput} */\n public resolve(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined;\n public resolve(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined {\n const transformedSteps = steps.map(\n (s) =>\n ({\n assertFieldType: 'Input',\n ...(typeof s === 'string' ? { field: s } : s),\n }) satisfies FieldTraversalStep,\n );\n return this.resolveWithCommon({}, ...transformedSteps);\n }\n\n /** If field type assertion is not specified for the step, default is Output. */\n public resolveOutput(\n ...steps: [\n Omit<FieldTraversalStep, 'errorIfFieldNotSet'> & {\n errorIfFieldNotAssigned: true;\n },\n ]\n ): TreeNodeAccessor;\n /** If field type assertion is not specified for the step, default is Output. */\n public resolveOutput(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined;\n public resolveOutput(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined {\n const transformedSteps = steps.map(\n (s) =>\n ({\n assertFieldType: 'Output',\n ...(typeof s === 'string' ? { field: s } : s),\n }) satisfies FieldTraversalStep,\n );\n return this.resolveWithCommon({}, ...transformedSteps);\n }\n\n /** If field type assertion is not specified for the step, default is Input. */\n public resolveInput(\n ...steps: [\n Omit<FieldTraversalStep, 'errorIfFieldNotSet'> & {\n errorIfFieldNotAssigned: true;\n },\n ]\n ): TreeNodeAccessor;\n /** If field type assertion is not specified for the step, default is Input. */\n public resolveInput(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined;\n public resolveInput(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined {\n const transformedSteps = steps.map(\n (s) =>\n ({\n assertFieldType: 'Input',\n ...(typeof s === 'string' ? { field: s } : s),\n }) satisfies FieldTraversalStep,\n );\n return this.resolveWithCommon({}, ...transformedSteps);\n }\n\n public resolveAny(\n ...steps: [\n Omit<FieldTraversalStep, 'errorIfFieldNotSet'> & {\n errorIfFieldNotAssigned: true;\n },\n ]\n ): TreeNodeAccessor;\n public resolveAny(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined;\n public resolveAny(...steps: (FieldTraversalStep | string)[]): TreeNodeAccessor | undefined {\n return this.resolveWithCommon({}, ...steps);\n }\n\n public resolveWithCommon(\n commonOptions: CommonFieldTraverseOps,\n ...steps: (FieldTraversalStep | string)[]\n ): TreeNodeAccessor | undefined {\n const resolvePath = [\n ...this.resolvePath,\n ...steps.map((step) => typeof step === 'string' ? step : step.field),\n ];\n return ifDef(\n getCfgRenderCtx().resolveWithCommon(this.handle, commonOptions, ...steps),\n (accessor) => new TreeNodeAccessor(accessor, resolvePath),\n );\n }\n\n public get resourceType(): ResourceType {\n return getCfgRenderCtx().getResourceType(this.handle);\n }\n\n public getInputsLocked(): boolean {\n return getCfgRenderCtx().getInputsLocked(this.handle);\n }\n\n public getOutputsLocked(): boolean {\n return getCfgRenderCtx().getOutputsLocked(this.handle);\n }\n\n public getIsReadyOrError(): boolean {\n return getCfgRenderCtx().getIsReadyOrError(this.handle);\n }\n\n public getIsFinal(): boolean {\n return getCfgRenderCtx().getIsFinal(this.handle);\n }\n\n public getError(): TreeNodeAccessor | undefined {\n const resolvePath = [...this.resolvePath, 'error'];\n return ifDef(\n getCfgRenderCtx().getError(this.handle),\n (accsessor) => new TreeNodeAccessor(accsessor, resolvePath),\n );\n }\n\n public listInputFields(): string[] {\n return getCfgRenderCtx().listInputFields(this.handle);\n }\n\n public listOutputFields(): string[] {\n return getCfgRenderCtx().listOutputFields(this.handle);\n }\n\n public listDynamicFields(): string[] {\n return getCfgRenderCtx().listDynamicFields(this.handle);\n }\n\n public getKeyValueBase64(key: string): string | undefined {\n return getCfgRenderCtx().getKeyValueBase64(this.handle, key);\n }\n\n public getKeyValueAsString(key: string): string | undefined {\n return getCfgRenderCtx().getKeyValueAsString(this.handle, key);\n }\n\n public getKeyValueAsJson<T>(key: string): T {\n const content = this.getKeyValueAsString(key);\n if (content == undefined) throw new Error('Resource has no content.');\n return JSON.parse(content);\n }\n\n public getDataBase64(): string | undefined {\n return getCfgRenderCtx().getDataBase64(this.handle);\n }\n\n public getDataAsString(): string | undefined {\n return getCfgRenderCtx().getDataAsString(this.handle);\n }\n\n public getDataAsJson<T>(): T {\n const content = this.getDataAsString();\n if (content == undefined) throw new Error('Resource has no content.');\n return JSON.parse(content);\n }\n\n /**\n *\n */\n public getPColumns(\n errorOnUnknownField: boolean = false,\n prefix: string = '',\n ): PColumn<TreeNodeAccessor>[] | undefined {\n const result = this.parsePObjectCollection(errorOnUnknownField, prefix);\n if (result === undefined) return undefined;\n\n const pf = Object.entries(result).map(([, obj]) => {\n if (!isPColumn(obj)) throw new Error(`not a PColumn (kind = ${obj.spec.kind})`);\n return obj;\n });\n\n return pf;\n }\n\n /**\n *\n */\n public parsePObjectCollection(\n errorOnUnknownField: boolean = false,\n prefix: string = '',\n ): Record<string, PObject<TreeNodeAccessor>> | undefined {\n const pObjects = getCfgRenderCtx().parsePObjectCollection(\n this.handle,\n errorOnUnknownField,\n prefix,\n ...this.resolvePath,\n );\n if (pObjects === undefined) return undefined;\n const result: Record<string, PObject<TreeNodeAccessor>> = {};\n for (const [key, value] of Object.entries(pObjects)) {\n const resolvePath = [...this.resolvePath, key];\n result[key] = mapPObjectData(value, (c) => new TreeNodeAccessor(c, resolvePath));\n }\n return result;\n }\n\n public getFileContentAsBase64(range?: RangeBytes): FutureRef<string | undefined> {\n return new FutureRef(getCfgRenderCtx().getBlobContentAsBase64(this.handle, range));\n }\n\n public getFileContentAsString(range?: RangeBytes): FutureRef<string | undefined> {\n return new FutureRef(getCfgRenderCtx().getBlobContentAsString(this.handle, range));\n }\n\n public getFileContentAsJson<T>(range?: RangeBytes): FutureRef<T | undefined> {\n return new FutureRef<string | undefined>(\n getCfgRenderCtx().getBlobContentAsString(this.handle, range),\n ).mapDefined((v) => JSON.parse(v) as T);\n }\n\n /**\n * @deprecated use getFileContentAsBase64\n */\n public getBlobContentAsBase64(): FutureRef<string | undefined> {\n return this.getFileContentAsBase64();\n }\n\n /**\n * @deprecated use getFileContentAsString\n */\n public getBlobContentAsString(): FutureRef<string | undefined> {\n return this.getFileContentAsString();\n }\n\n /**\n * @returns downloaded file handle\n */\n public getFileHandle(): FutureRef<LocalBlobHandleAndSize | undefined> {\n return new FutureRef(getCfgRenderCtx().getDownloadedBlobContentHandle(this.handle));\n }\n\n /**\n * @deprecated use getFileHandle\n */\n public getDownloadedBlobHandle(): FutureRef<LocalBlobHandleAndSize | undefined> {\n return this.getFileHandle();\n }\n\n /**\n * @returns downloaded file handle\n */\n public getRemoteFileHandle(): FutureRef<RemoteBlobHandleAndSize | undefined> {\n return new FutureRef(getCfgRenderCtx().getOnDemandBlobContentHandle(this.handle));\n }\n\n /**\n * @deprecated use getRemoteFileHandle\n */\n public getOnDemandBlobHandle(): FutureRef<RemoteBlobHandleAndSize | undefined> {\n return this.getRemoteFileHandle();\n }\n\n /**\n * @returns the url to the extracted folder\n */\n public extractArchiveAndGetURL(format: ArchiveFormat): FutureRef<FolderURL | undefined> {\n return new FutureRef(getCfgRenderCtx().extractArchiveAndGetURL(this.handle, format));\n }\n\n public getImportProgress(): FutureRef<ImportProgress> {\n return new FutureRef(getCfgRenderCtx().getImportProgress(this.handle));\n }\n\n public getLastLogs(nLines: number): FutureRef<string | undefined> {\n return new FutureRef(getCfgRenderCtx().getLastLogs(this.handle, nLines));\n }\n\n public getProgressLog(patternToSearch: string): FutureRef<string | undefined> {\n return new FutureRef(getCfgRenderCtx().getProgressLog(this.handle, patternToSearch));\n }\n\n public getProgressLogWithInfo(patternToSearch: string): FutureRef<ProgressLogWithInfo | undefined> {\n return new FutureRef(getCfgRenderCtx().getProgressLogWithInfo(this.handle, patternToSearch));\n }\n\n public getLogHandle(): FutureRef<AnyLogHandle | undefined> {\n return new FutureRef(getCfgRenderCtx().getLogHandle(this.handle));\n }\n\n public allFieldsResolved(fieldType: 'Input' | 'Output' = 'Input'): boolean {\n switch (fieldType) {\n case 'Input':\n return (\n this.getInputsLocked()\n && this.listInputFields().every(\n (field) => this.resolve({ field, assertFieldType: 'Input' }) !== undefined,\n )\n );\n case 'Output':\n return (\n this.getOutputsLocked()\n && this.listOutputFields().every(\n (field) => this.resolve({ field, assertFieldType: 'Output' }) !== undefined,\n )\n );\n }\n }\n\n public mapFields<T>(\n _mapping: (name: string, value: TreeNodeAccessor) => T,\n _ops: FieldMapOps & { skipUnresolved: true }\n ): T[] | undefined;\n public mapFields<T>(\n _mapping: (name: string, value: TreeNodeAccessor | undefined) => T,\n _ops?: FieldMapOps\n ): T[] | undefined;\n public mapFields<T>(\n _mapping: (name: string, value: TreeNodeAccessor) => T,\n _ops?: FieldMapOps,\n ): T[] | undefined {\n const { fieldType, requireLocked, skipUnresolved } = {\n fieldType: 'Input' as const,\n requireLocked: true,\n skipUnresolved: false,\n ..._ops,\n };\n const mapping = _mapping as (name: string, value: TreeNodeAccessor | undefined) => T;\n if (requireLocked) {\n if (fieldType === 'Input' && !this.getInputsLocked()) return undefined;\n if (fieldType === 'Output' && !this.getOutputsLocked()) return undefined;\n }\n const fieldList\n = fieldType === 'Input'\n ? this.listInputFields()\n : fieldType === 'Output'\n ? this.listOutputFields()\n : this.listDynamicFields();\n let fieldEntries = fieldList.map(\n (field) => [field, this.resolve({ field, assertFieldType: fieldType })] as const,\n );\n if (skipUnresolved) fieldEntries = fieldEntries.filter((e) => e[1] !== undefined);\n return fieldEntries.map(([name, value]) => mapping(name, value));\n }\n}\n"],"names":[],"mappings":"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"}