@vscada/builder 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/standard-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/registries.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/versions.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/schemas.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/checks.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/errors.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/parse.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ar.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/az.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/be.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/bg.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ca.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/cs.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/da.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/de.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/el.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/en.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/eo.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/es.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fa.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fi.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fr.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fr-CA.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/he.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hr.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hu.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hy.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/id.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/is.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/it.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ja.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ka.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/kh.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/km.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ko.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/lt.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/mk.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ms.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/nl.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/no.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ota.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ps.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/pl.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/pt.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ro.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ru.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/sl.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/sv.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ta.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/th.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/tr.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ua.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/uk.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ur.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/uz.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/vi.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/zh-CN.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/zh-TW.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/yo.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/index.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/doc.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/api.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-generator.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/index.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/errors.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/parse.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/checks.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/compat.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/from-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/coerce.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/index.d.cts","../../core/dist/scene/scene-schema.d.ts","../../core/dist/scene/validate-scene.d.ts","../../core/dist/registry/element-catalog.d.ts","../../core/dist/scene-authoring.d.ts","../src/catalog.ts","../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/css-tag.d.ts","../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-controller.d.ts","../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts","../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/development/directive.d.ts","../../../node_modules/.pnpm/@types+trusted-types@2.0.7/node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/development/lit-html.d.ts","../../../node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/development/lit-element.d.ts","../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/development/is-server.d.ts","../../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/development/index.d.ts","../../core/dist/contracts/tag-value.d.ts","../../core/dist/contracts/connection-state.d.ts","../../core/dist/contracts/time-source.d.ts","../../core/dist/contracts/renderer.d.ts","../../core/dist/contracts/handles.d.ts","../../core/dist/store/value-store.d.ts","../../core/dist/scheduler/animation-registry.d.ts","../../core/dist/topology/graph.d.ts","../../core/dist/media/registry.d.ts","../../core/dist/tokens.d.ts","../../core/dist/contracts/primitive.d.ts","../../core/dist/scheduler/quality.d.ts","../../core/dist/scheduler/quality-overlay.d.ts","../../core/dist/topology/inference.d.ts","../../core/dist/scheduler/scheduler.d.ts","../../core/dist/a11y/static-representation-registry.d.ts","../../core/dist/a11y/reduced-motion.d.ts","../../core/dist/scada-view.d.ts","../../core/dist/scene/constants.d.ts","../../core/dist/scene/errors.d.ts","../../core/dist/scene/structural-validator.d.ts","../../core/dist/registry/primitive-registry.d.ts","../../core/dist/scene/connection-geometry.d.ts","../../core/dist/contracts/connection-renderer.d.ts","../../core/dist/registry/connection-registry.d.ts","../../core/dist/registry/theme-registry.d.ts","../../core/dist/scene/lane-offset.d.ts","../../core/dist/scene/crossing-jumps.d.ts","../../core/dist/topology/traversal.d.ts","../../core/dist/topology/upstream-highlight.d.ts","../../core/dist/scheduler/visual-state-resolver.d.ts","../../core/dist/scheduler/alarm-band.d.ts","../../core/dist/scene/groups.d.ts","../../core/dist/topology/group-collapse.d.ts","../../core/dist/view/group-view-state.d.ts","../../core/dist/fsm/fsm.d.ts","../../core/dist/fsm/tween.d.ts","../../core/dist/license/format.d.ts","../../core/dist/license/state.d.ts","../../core/dist/interaction/gesture-arbiter.d.ts","../../core/dist/interaction/pointer-pipeline.d.ts","../../core/dist/a11y/contrast.d.ts","../../core/dist/units/registry.d.ts","../../core/dist/units/formatter.d.ts","../../core/dist/bindings/transforms.d.ts","../../core/dist/bindings/color-ramp.d.ts","../../core/dist/import/svg-source-registry.d.ts","../../core/dist/index.d.ts","../src/errors.ts","../src/element-builder.ts","../src/factories.ts","../src/port-ref.ts","../src/placement.ts","../src/scene-builder.ts","../src/index.ts","../src/type-tests.ts","../src/fixtures/walking-skeleton.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/@types+pngjs@6.0.5/node_modules/@types/pngjs/index.d.ts"],"fileIdsList":[[204,254,271,272],[133,134,204,254,271,272],[204,251,252,254,271,272],[204,253,254,271,272],[254,271,272],[204,254,259,271,272,289],[204,254,255,260,265,271,272,274,286,297],[204,254,255,256,265,271,272,274],[199,200,201,204,254,271,272],[204,254,257,271,272,298],[204,254,258,259,266,271,272,275],[204,254,259,271,272,286,294],[204,254,260,262,265,271,272,274],[204,253,254,261,271,272],[204,254,262,263,271,272],[204,254,264,265,271,272],[204,253,254,265,271,272],[204,254,265,266,267,271,272,286,297],[204,254,265,266,267,271,272,281,286,289],[204,246,254,262,265,268,271,272,274,286,297],[204,254,265,266,268,269,271,272,274,286,294,297],[204,254,268,270,271,272,286,294,297],[202,203,204,205,206,207,208,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303],[204,254,265,271,272],[204,254,271,272,273,297],[204,254,262,265,271,272,274,286],[204,254,271,272,275],[204,254,271,272,276],[204,253,254,271,272,277],[204,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303],[204,254,271,272,279],[204,254,271,272,280],[204,254,265,271,272,281,282],[204,254,271,272,281,283,298,300],[204,254,266,271,272],[204,254,265,271,272,286,287,289],[204,254,271,272,288,289],[204,254,271,272,286,287],[204,254,271,272,289],[204,254,271,272,290],[204,251,254,271,272,286,291,297],[204,254,265,271,272,292,293],[204,254,271,272,292,293],[204,254,259,271,272,274,286,294],[204,254,271,272,295],[204,254,271,272,274,296],[204,254,268,271,272,280,297],[204,254,259,271,272,298],[204,254,271,272,286,299],[204,254,271,272,273,300],[204,254,271,272,301],[204,246,254,271,272],[204,246,254,265,267,271,272,277,286,289,297,299,300,302],[204,254,271,272,286,303],[204,254,271,272,286,303,304],[135,138,204,254,271,272],[138,204,254,271,272],[136,137,204,254,271,272],[135,138,139,140,204,254,271,272],[204,218,222,254,271,272,297],[204,218,254,271,272,286,297],[204,213,254,271,272],[204,215,218,254,271,272,294,297],[204,254,271,272,274,294],[204,254,271,272,304],[204,213,254,271,272,304],[204,215,218,254,271,272,274,297],[204,210,211,214,217,254,265,271,272,286,297],[204,218,225,254,271,272],[204,210,216,254,271,272],[204,218,239,240,254,271,272],[204,214,218,254,271,272,289,297,304],[204,239,254,271,272,304],[204,212,213,254,271,272,304],[204,218,254,271,272],[204,212,213,214,215,216,217,218,219,220,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,240,241,242,243,244,245,254,271,272],[204,218,233,254,271,272],[204,218,225,226,254,271,272],[204,216,218,226,227,254,271,272],[204,217,254,271,272],[204,210,213,218,254,271,272],[204,218,222,226,227,254,271,272],[204,222,254,271,272],[204,216,218,221,254,271,272,297],[204,210,215,218,225,254,271,272],[204,254,271,272,286],[204,213,218,239,254,271,272,302,304],[126,204,254,271,272],[117,204,254,271,272],[117,120,204,254,271,272],[52,112,115,117,118,119,120,121,122,123,124,125,204,254,271,272],[48,50,120,204,254,271,272],[117,118,204,254,271,272],[49,117,119,204,254,271,272],[50,52,54,55,56,57,204,254,271,272],[52,54,56,57,204,254,271,272],[52,54,56,204,254,271,272],[49,52,54,55,57,204,254,271,272],[48,50,51,52,53,54,55,56,57,58,59,112,113,114,115,116,204,254,271,272],[48,50,51,54,204,254,271,272],[50,51,54,204,254,271,272],[54,57,204,254,271,272],[48,49,51,52,53,55,56,57,204,254,271,272],[48,49,50,54,117,204,254,271,272],[54,55,56,57,204,254,271,272],[56,204,254,271,272],[60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,204,254,271,272],[131,204,254,271,272],[132,189,190,204,254,271,272],[132,191,204,254,271,272],[189,192,195,204,254,271,272],[132,190,191,192,195,204,254,271,272],[190,191,193,204,254,271,272],[131,189,190,191,193,194,204,254,271,272],[191,192,204,254,271,272],[157,204,254,271,272],[146,204,254,271,272],[151,186,204,254,271,272],[128,142,204,254,271,272],[145,146,152,164,204,254,271,272],[142,145,204,254,271,272],[128,145,146,151,204,254,271,272],[142,204,254,271,272],[128,142,143,144,145,146,149,150,151,152,153,155,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,180,182,183,184,185,186,187,188,204,254,271,272],[181,204,254,271,272],[179,204,254,271,272],[149,204,254,271,272],[165,204,254,271,272],[152,204,254,271,272],[151,204,254,271,272],[128,141,142,143,144,145,148,156,158,204,254,271,272],[129,130,204,254,271,272],[128,149,204,254,271,272],[128,164,204,254,271,272],[128,145,149,152,153,164,204,254,271,272],[164,204,254,271,272],[127,204,254,271,272],[128,161,204,254,271,272],[128,204,254,271,272],[128,151,204,254,271,272],[145,152,153,204,254,271,272],[147,204,254,271,272],[143,144,145,146,147,148,153,154,155,204,254,271,272],[153,204,254,271,272],[142,144,204,254,271,272],[150,204,254,271,272],[145,149,204,254,271,272],[128,148,204,254,271,272]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6","impliedFormat":1},{"version":"835fb2909ce458740fb4a49fc61709896c6864f5ce3db7f0a88f06c720d74d02","impliedFormat":1},{"version":"6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc","impliedFormat":1},{"version":"ead8e39c2e11891f286b06ae2aa71f208b1802661fcdb2425cffa4f494a68854","impliedFormat":1},{"version":"40ba6c32eb732a09e4446ade5cb6ad0c147f186f9c9dc6878b90b4418ad9f6ea","impliedFormat":1},{"version":"fdd814741843f85c98281522c58f5a646590ba9019fad2efaa95987655e0611b","impliedFormat":1},{"version":"c78aff4fb58b28b8f642d5095fc7eeb79f00e652a67caa19693af1adabb833c9","impliedFormat":1},{"version":"f80a08ced8818dc99359c0acd5b3f12762e1ce53758007759b0d4e503cbf4a5e","impliedFormat":1},{"version":"37935fa7564bcc6e0bc845b766a24391098d26f7c8245d6e8ab37bc016816e94","impliedFormat":1},{"version":"68add36d9632bc096d7245d24d6b0b8ad5f125183016102a3dad4c9c2438ccb0","impliedFormat":1},{"version":"3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4","impliedFormat":1},{"version":"0f8a263f4c8595c8a07de52e3f3927640c44386c1aa2984de9eae50d75e613b2","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"346fffde7c32da87c2196eb7494422449dc2ca82d3b4e6bf55be1d1a33ffc2b0","impliedFormat":1},{"version":"add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79","impliedFormat":1},{"version":"8b5875e4958528042103fdd775e106a7f76bafc29709f0690df9a7d2241d52a7","impliedFormat":1},{"version":"2f67911e4bf4e0717dc2ded248ce2d5e4398d945ee13889a6852c1233ea41508","impliedFormat":1},{"version":"d8430c275b0f59417ea8e173cfb888a4477b430ec35b595bf734f3ec7a7d729f","impliedFormat":1},{"version":"69364df1c776372d7df1fb46a6cb3a6bf7f55e700f533a104e3f9d70a32bec18","impliedFormat":1},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"5a3bd57ed7a9d9afef74c75f77fce79ba3c786401af9810cdf45907c4e93f30e","impliedFormat":1},{"version":"aef26cf95593c8ace1c62c4724f9afac77bdfa756fb8a00613cd152117cb2f43","impliedFormat":1},{"version":"30db853bb2e60170ba11e39ab48bacecb32d06d4def89eedf17e58ebab762a65","impliedFormat":1},{"version":"e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761","impliedFormat":1},{"version":"2316301dd223d31962d917999acf8e543e0119c5d24ec984c9f22cb23247160c","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"268fd6d9f2e807a39a6c5aa654b00f949feb63d3faa7dd0f9bba7dde9172159c","impliedFormat":1},{"version":"29f823cbe0166e10e7176a94afe609a24b9e5af3858628c541ff8ce1727023cd","impliedFormat":1},"e440bfd558f1ed98f5663e68978c4ece88dea07e831dcc6ea39870a121f98b9a","7e95718f2a08286917ed2fc8b4bcdaee4674e17c7cd6fe862dbeaa360fc7e03b","98f5dfde177549c68f2cc9c267bbba0922933d2a21966f9c3fe36e7ef7bb88d2","fb277c73f13379605e290a5267543a28669f71b1b35cc17625e58567cdd5c580",{"version":"8417b2b059048d03864a2f6294e43d90ea3fbb56ef211151f757b87b55217536","signature":"2b2833b2c89ff5558e0913c14834912e2adf9c23d533bc4756312a641bb6e57f"},{"version":"74012d464fbc5354ca3a7d5e71bee43b17da01a853c8ff10971bbe3680c76f40","impliedFormat":99},{"version":"5e30131b6a5587fe666926ad1d9807e733c0a597ed12d682669fcaa331aea576","impliedFormat":99},{"version":"a0f82d2f9450bd147a8c137798d9501bd49b7c9e118f75b07b76709ff39b6b55","affectsGlobalScope":true,"impliedFormat":99},{"version":"00cb63103f9670f8094c238a4a7e252c8b4c06ba371fea5c44add7e41b7247e4","impliedFormat":99},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"e09db3291e6b440f7debed2227d8357e80c95987a0d0d67ac17521d8f7b11bdb","impliedFormat":99},{"version":"9a318e3a8900672b85cd3c8c3a5acf51b88049557a3ae897ccdcf2b85a8f61f9","impliedFormat":99},{"version":"1bcd560deed90a43c51b08aa18f7f55229f2e30974ab5ed1b7bb5721be379013","impliedFormat":99},{"version":"dc08fe04e50bc24d1baded4f33e942222bbdd5d77d6341a93cfe6e4e4586a3be","impliedFormat":99},"681d73788d313db4eab1f8290077b892e70b2b1f3abdb1ed3661f9802a27999b","1987cc7589b4de59aea46f23c070a35f3e2c48f73b99384994c3cc207c088111","1aab37a8bbf0f0305c181146bf876dd2ae9f317d1b44c2fffde5b77c22d7a77b","237fd213a58e20827c363b4a86eb584d0341338c6ca33489b3e58037770f1acc","b463f3cb4aa04e1011b624369afff748284eda7a72680e9ba006ab2b32552c41","66cb7bccc3f8a450d6fde871af53ebfe57af5215341f52b2a81b48ccdc71ae11","6746b771110bf781a8c4dd6fef80255ada78d73fcac664221aa0b4a385105814","d9d4bb833a7f2f5948a3bd219a58b74969f3180421cc4eb6cc0c187d2b773fe8","ddcb981b5d939087baade70d13961b28d1436200427f12b36f00187b18d6d832","0e75b454f758293b5f6f4759c23a0d56730348717f372a7e7602354333f32826","2356f42ced08775d0b925ad69082a183923cd28ca167b56172ccc9b76d3a7b10","e661a131f8f3f2c323167efb1e15591a795c6d8850ce1d683becfbe2fafc09bf","b76bb55e84812dde380179e1670e4f20dc592563f5af12e904674731a2c13b0a","11e85ccf5f12a3356f2b6e5cf3db6f05e6416749f20bd7d6016f855ad22be0ff","959cd4782c3e6dbff24e24be8f9a3d76cfeb69e999c9307d509f89ea0dc20bab","5a52d41667b7c92fdab694b4798463c47a4b55e1af278c25e31a63c34139c330","49991295d23e418bc2a01ccad9bf4547e2303e0ebd2bf8e015d2fe883e12475e","fc3a2be1eb3eefafa7a2fe4d8449f22a7da2754a8a4f2a53abe45c28949f7812","259d1fc5ed365c55ba3ec4a4236d3240f4d057a0d9e1774f8588f25d12338fc0","9af4348354094535ba6e3791e816a78c3978499809f4c59c047f83a8bf4a842d","9f290708b155df1a45ea278567a62d3b2cef7f57002276bdb06f893166176f0d","5be9736412661ebbaf6c1d8607fd3909d407080529aebae482dfc78e6046ec3a","8c43bdd094699f9c634f2787a4e190e98e80c091ceae4364c1efd2a9a560e887","a19d2b338117dd9649afc43ea029d4c621049edf68b9398d2b8d997cf2085c0c","c1da17f4c815ec426197f84a9d04fe8e8b42d17c1186a0860e5f54ce76db0e0d","6bb6f750643e5e6ce257cb1c02c4f858da537ef36157514551e6a627d07504c6","ab29ae9662805ff19f6eb939da720c4a0a98d74076a4e02e3e0e5d75356629f6","d0c89afddabf6654e112a20082508e3b93ff30b6d76fc00f315fb8afad3f7625","b4ee409278e592c6ecc3cac3bf39f457b49ea833e588d9d70459124d525f01e7","a77e3a55d531e5ee8a1989d3e3897e506d967a191d164bc44060088706eaf55f","5428d320eae54104d07509907b933415bf486af14db5711b7f06262d9ce2a63f","f0c82ca58f62a8ea4fceebcb5461c8879fd62e0cc862114f82e179983db9c9f2","4d010d85ac039f1cc61f84fdcf3856d58eb28c04861473b732d4b495e4984ac0","8f8e9e970d0f47d762cd1c1e0b12d7f100bc52b76ffa411252036b2d6ef61600","065eddf62ace417dd123053aac4513acd717fac25969f06c0f1a677e18cd5d36","afa5d567c3c0532beb6002ebcdf25a84be7bf0d619f866e5504210d10ed4258d","5e993aef2ca3d70921bd02b96e543a4288fc87ebea77fa642509fd14b8cf1ead","56aa396b18f69b3b4c19903e643f91695d2b6c06e6361183274630745d676058","0ec7aa3882d394903a37ecc39482207ef86a7c232f1d0c508c9fd5f6a6b8a27d","dc49645dd9d131c5258809ea847b5520a48ca134ecdecc50bc305f3b5481e0c0","b16ede8d9a84ec1f75a47ab5bf4a21b2fad274657eb45575276ff6a5409717c0","09a2f722ef529b70620263e0340e91d6788bb9786a65fbf12d1f25b4b4ae62ac","7077e44386a54aa6048564ee9a3af2ce7652a208c80930212ba18119b65dfb7f","9ed05e5ec0a2553f76708d501d02d4b125dc2e43655321987074990199f3f926","4afbc739a300e955995c4fbdd6b5ad055b739e81625fabcc917894ccf4c4ea00","dc989c1edd3ceb3e226d3b815d2146e0c6a8ccf81bb874d81449f7cd0636996a","cadaa5ff77e63de11a92ce8f3fccf5d1844297c37ba930e08e43ce1b21d5a7e4","9b74e19b30bb0710fcf35a0e91c911649093a728a267307d5cc5e2a64fb72867",{"version":"2025f1d7ca43087de1f127d8f8973203a75b685b8c84d269094249f65fe4d625","signature":"dd1e06f5df98f65b3007f85667399d4cbe29dd523c35da5cccfdf8902fc3007c"},{"version":"4afcd8293bcd5da5d64872cf863f98588b343720695d3be304fa6ba7775652e0","signature":"b71455a494a011531749429399c3ccc746f8b4170b9eacec4043f90e717dba5e"},{"version":"39de684f9aec252a943bbf96fb82ca2490e6f4477592a90ec00d560b80c02aa0","signature":"1bb6d1118a6aea79ff9928b92e9410bac9fa2052367e30b95480c761dbe3b612"},{"version":"a676e08845a9339fc296095170caaa5057c3bf535047d29317009019c0f6412c","signature":"21ac79053b6bf0a431a77ab87426b4f3a02cb2f77a2a31f8d38370753d9b0e49"},{"version":"f8f84d2c6e7c13c8cbc82c87edf4ac1048f8e24285397b5e43b27237f41ae534","signature":"91ae656fd0a9673ba841caa13491cd054c251be5898e713b0434b057478e5a4a"},{"version":"85df9fe77dd63573c55fd0f50533ba8bc7f0902e8f7e9b895ed52e5453134935","signature":"98f729248326fbe5124bbf4ec16d08e4b054b1a14b48ce1fed43c0be6a13f280"},"fef4e790e1c1be9ae3fdd9ca0165a2430c7e21b7304565a78d6c25002b5f098f",{"version":"01bf0b0a7b669eebda5d155142747123efcf2e4e44e1d1e14342bd1f45e6dd10","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f437b21d75849a086e75cffb9abf93b9613b41293fa133ac1ca9bcb7e96331e0","signature":"65565279c0c65b30f063fbe24999a13a686d40ecc003897b40d203dc1d71921f"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"d61e0a64cd175208ac0b83670151a9a6b5916f0d1ffcdc5c29c90b1cebfc5045","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1},{"version":"90ac19cb97ae85c7ccfd0c04322b02ce088bda9de7b42cc081cbb3674fe5446d","impliedFormat":1}],"root":[132,[190,198]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"module":99,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":7,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[133,1],[134,1],[135,2],[251,3],[252,3],[253,4],[204,5],[254,6],[255,7],[256,8],[199,1],[202,9],[200,1],[201,1],[257,10],[258,11],[259,12],[260,13],[261,14],[262,15],[263,15],[264,16],[265,17],[266,18],[267,19],[205,1],[203,1],[268,20],[269,21],[270,22],[304,23],[271,24],[272,1],[273,25],[274,26],[275,27],[276,28],[277,29],[278,30],[279,31],[280,32],[281,33],[282,33],[283,34],[284,1],[285,35],[286,36],[288,37],[287,38],[289,39],[290,40],[291,41],[292,42],[293,43],[294,44],[295,45],[296,46],[297,47],[298,48],[299,49],[300,50],[301,51],[206,1],[207,1],[208,1],[247,52],[248,1],[249,1],[250,39],[302,53],[303,54],[305,55],[137,1],[209,1],[139,56],[136,57],[140,1],[138,58],[141,59],[46,1],[47,1],[8,1],[9,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[20,1],[21,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[1,1],[225,60],[235,61],[224,60],[245,62],[216,63],[215,64],[244,65],[238,66],[243,67],[218,68],[232,69],[217,70],[241,71],[213,72],[212,65],[242,73],[214,74],[219,75],[220,1],[223,75],[210,1],[246,76],[236,77],[227,78],[228,79],[230,80],[226,81],[229,82],[239,65],[221,83],[222,84],[231,85],[211,86],[234,77],[233,75],[237,1],[240,87],[127,88],[121,89],[125,90],[122,90],[118,89],[126,91],[123,92],[124,90],[119,93],[120,94],[114,95],[55,96],[57,97],[113,1],[56,98],[117,99],[116,100],[115,101],[48,1],[58,96],[59,1],[50,102],[54,103],[49,1],[51,104],[52,105],[53,1],[60,106],[61,106],[62,106],[63,106],[64,106],[65,106],[66,106],[67,106],[68,106],[69,106],[70,106],[71,106],[72,106],[73,106],[75,106],[74,106],[76,106],[77,106],[78,106],[79,106],[80,106],[112,107],[81,106],[82,106],[83,106],[84,106],[85,106],[86,106],[87,106],[88,106],[89,106],[90,106],[91,106],[92,106],[93,106],[95,106],[94,106],[96,106],[97,106],[98,106],[99,106],[100,106],[101,106],[102,106],[103,106],[104,106],[105,106],[106,106],[107,106],[108,106],[111,106],[109,106],[110,106],[132,108],[191,109],[190,1],[192,110],[198,111],[196,112],[194,113],[193,1],[195,114],[197,115],[183,1],[158,116],[157,117],[187,118],[186,119],[165,120],[143,1],[146,121],[152,122],[145,1],[142,1],[144,1],[177,123],[178,1],[188,1],[189,124],[181,1],[182,125],[179,1],[180,126],[150,127],[166,128],[130,1],[163,129],[167,130],[159,131],[131,132],[164,133],[160,1],[169,134],[161,1],[174,135],[168,136],[128,137],[162,138],[129,139],[173,140],[148,117],[154,141],[153,142],[156,143],[172,144],[147,145],[151,146],[149,139],[175,133],[155,127],[170,127],[171,147],[185,1],[184,1],[176,148]],"latestChangedDtsFile":"./fixtures/walking-skeleton.d.ts","version":"5.9.3"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Story 5.1 (AD-10): the builder's only source of per-type port names is
3
+ * `@vscada/core`'s `scene-authoring` subpath — never `@vscada/primitives`
4
+ * (builder may depend on core's public entries only). See
5
+ * `packages/core/src/registry/element-catalog.ts` for the catalog itself
6
+ * and why it lives there.
7
+ */
8
+ export { ELEMENT_CATALOG, type ElementCatalogEntry, type ElementTypeName, type PortDefinition, type PortDirection, type PortName, } from '@vscada/core/scene-authoring';
9
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,QAAQ,GACd,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,95 @@
1
+ import type { Binding, Threshold } from '@vscada/core';
2
+ import { type ElementTypeName, type PortDefinition, type PortName } from './catalog';
3
+ /** A "elementId.portName" reference — see `port-ref.ts#parsePortRef` for the runtime-checked half. */
4
+ export type PortRef = `${string}.${string}`;
5
+ export interface RightOfRule {
6
+ readonly kind: 'right-of';
7
+ readonly refId: string;
8
+ readonly gap: number;
9
+ }
10
+ export interface BelowRule {
11
+ readonly kind: 'below';
12
+ readonly refId: string;
13
+ readonly gap: number;
14
+ }
15
+ export type PlacementRule = RightOfRule | BelowRule;
16
+ export interface AlignPortsRule {
17
+ readonly myPort: string;
18
+ readonly refPortRef: string;
19
+ }
20
+ /**
21
+ * Story 5.1 Task 2 (AC2's teeth): `T` pins the element's TYPE at the
22
+ * type level, so `.port()` and `.alignPorts()`'s first argument are
23
+ * constrained to `PortName<T>` — a string-literal union derived straight
24
+ * from `ELEMENT_CATALOG[T]['ports']`. A misspelled or wrong-type port name
25
+ * is a compile error, not a runtime one. `Id` similarly pins the element's
26
+ * OWN id as a literal type, so `.port('outlet-bot')` on a `tankVertical('T-101')`
27
+ * returns the literal type `` `T-101.outlet-bot` `` — exactly the
28
+ * `'T-101.outlet-bot'`-shaped template-literal type the story's Dev Notes
29
+ * describe.
30
+ *
31
+ * Cross-element references (`.rightOf()`, `.below()`, `.alignPorts()`'s
32
+ * second argument, `connect()`) are plain strings resolved at `.build()`
33
+ * time instead (Task 4's "unresolved port" errors) — a scene-wide
34
+ * accumulating type of every valid `id.port` pair is possible in principle
35
+ * but balloons compile time for little benefit once `.port()` already
36
+ * makes the common (own-element) case compile-checked.
37
+ */
38
+ export declare class ElementBuilder<Id extends string = string, T extends ElementTypeName = ElementTypeName> {
39
+ readonly id: Id;
40
+ readonly type: T;
41
+ /** @internal */ _x: number;
42
+ /** @internal */ _y: number;
43
+ /** @internal */ _w: number;
44
+ /** @internal */ _h: number;
45
+ /** @internal */ _label: string | undefined;
46
+ /** @internal */ _medium: string | undefined;
47
+ /** @internal */ _bindings: Binding[];
48
+ /** @internal */ _thresholds: Threshold[];
49
+ /** @internal */ _transitions: Record<string, {
50
+ duration: number;
51
+ easing: string;
52
+ }>;
53
+ /** @internal */ _placement: PlacementRule | undefined;
54
+ /** @internal */ _alignPorts: AlignPortsRule | undefined;
55
+ /** @internal */ _target: {
56
+ scene: string;
57
+ port: string;
58
+ } | undefined;
59
+ constructor(id: Id, type: T);
60
+ /** @internal this element type's port catalog (name -> geometry) */
61
+ get catalogPorts(): Record<string, PortDefinition>;
62
+ at(x: number, y: number): this;
63
+ size(w: number, h: number): this;
64
+ label(label: string): this;
65
+ medium(medium: string): this;
66
+ bind(...bindings: Binding[]): this;
67
+ thresholds(...thresholds: Threshold[]): this;
68
+ transition(pair: `${string}→${string}`, spec: {
69
+ duration: number;
70
+ easing: string;
71
+ }): this;
72
+ /**
73
+ * Only meaningful for an `off-page` element — the schema requires it
74
+ * (`OffPageElementSchema.target`), and the always-on structural validator
75
+ * `scada-view` runs rejects an `off-page` element without one. No
76
+ * dedicated `off-page` builder subclass exists yet, so this is exposed
77
+ * generically rather than left entirely unsupported.
78
+ */
79
+ target(scene: string, port: string): this;
80
+ /** Compile-time-checked own-port reference — AC2. */
81
+ port<P extends PortName<T>>(name: P): `${Id}.${P}`;
82
+ /** Place this element's left edge `gap` px right of `refId`'s right edge, top-aligned. Resolved at `.build()`. */
83
+ rightOf(refId: string, gap?: number): this;
84
+ /** Place this element's top edge `gap` px below `refId`'s bottom edge, left-aligned. Resolved at `.build()`. */
85
+ below(refId: string, gap?: number): this;
86
+ /**
87
+ * Nudge this element (after any `.rightOf()`/`.below()`/`.at()` placement)
88
+ * so `myPort` lines up with `refPortRef` on the relevant axis: a
89
+ * left/right-facing port aligns Y, an up/down-facing port aligns X.
90
+ */
91
+ alignPorts(myPort: PortName<T>, refPortRef: PortRef): this;
92
+ }
93
+ /** Escape hatch for a type not covered by a named factory in `factories.ts`. */
94
+ export declare function element<Id extends string, T extends ElementTypeName>(id: Id, type: T): ElementBuilder<Id, T>;
95
+ //# sourceMappingURL=element-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-builder.d.ts","sourceRoot":"","sources":["../src/element-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAmB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGtG,sGAAsG;AACtG,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAc,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,eAAe,GAAG,eAAe;IACjG,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjB,gBAAgB,CAAC,EAAE,SAAK;IACxB,gBAAgB,CAAC,EAAE,SAAK;IACxB,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,CAAM;IAC3C,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,CAAM;IAC/C,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IACzF,gBAAgB,CAAC,UAAU,EAAE,aAAa,GAAG,SAAS,CAAC;IACvD,gBAAgB,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACzD,gBAAgB,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;gBAE1D,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAS3B,oEAAoE;IACpE,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAEjD;IAED,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAO9B,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAMhC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAKlC,UAAU,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAK5C,UAAU,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAKzF;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzC,qDAAqD;IACrD,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE;IAIlD,kHAAkH;IAClH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,IAAI;IAKrC,gHAAgH;IAChH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,IAAI;IAKnC;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;CAI3D;AAED,gFAAgF;AAChF,wBAAgB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,SAAS,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAE5G"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Story 5.1 Task 4 — "error-message quality pass (misplaced ref, duplicate
3
+ * id, unresolved port → messages a first-hour user can act on)". Every
4
+ * error names the offending id/port, the call that produced it, and what
5
+ * to do next.
6
+ */
7
+ export declare class BuilderError extends Error {
8
+ constructor(message: string);
9
+ }
10
+ export declare function duplicateIdError(id: string): BuilderError;
11
+ export declare function unknownElementTypeError(type: string): BuilderError;
12
+ export declare function malformedPortRefError(ref: string, context: string): BuilderError;
13
+ export declare function unknownElementRefError(elementId: string, context: string): BuilderError;
14
+ export declare function unknownPortRefError(elementId: string, portName: string, context: string): BuilderError;
15
+ export declare function forwardReferenceError(refId: string, fromId: string, method: string): BuilderError;
16
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAIzD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMlE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAIhF;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAKvF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAKtG;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAMjG"}
@@ -0,0 +1,51 @@
1
+ import { ElementBuilder } from './element-builder';
2
+ export declare const tankVertical: <Id extends string>(id: Id) => ElementBuilder<Id, "tank-vertical">;
3
+ export declare const tankHorizontal: <Id extends string>(id: Id) => ElementBuilder<Id, "tank-horizontal">;
4
+ export declare const tankSpherical: <Id extends string>(id: Id) => ElementBuilder<Id, "tank-spherical">;
5
+ export declare const hopper: <Id extends string>(id: Id) => ElementBuilder<Id, "hopper">;
6
+ export declare const silo: <Id extends string>(id: Id) => ElementBuilder<Id, "silo">;
7
+ export declare const drum: <Id extends string>(id: Id) => ElementBuilder<Id, "drum">;
8
+ export declare const pumpCentrifugal: <Id extends string>(id: Id) => ElementBuilder<Id, "pump-centrifugal">;
9
+ export declare const pumpPositiveDisplacement: <Id extends string>(id: Id) => ElementBuilder<Id, "pump-positive-displacement">;
10
+ export declare const fanAxial: <Id extends string>(id: Id) => ElementBuilder<Id, "fan-axial">;
11
+ export declare const fanCentrifugal: <Id extends string>(id: Id) => ElementBuilder<Id, "fan-centrifugal">;
12
+ export declare const compressor: <Id extends string>(id: Id) => ElementBuilder<Id, "compressor">;
13
+ export declare const turbine: <Id extends string>(id: Id) => ElementBuilder<Id, "turbine">;
14
+ export declare const motor: <Id extends string>(id: Id) => ElementBuilder<Id, "motor">;
15
+ export declare const valveGate: <Id extends string>(id: Id) => ElementBuilder<Id, "valve-gate">;
16
+ export declare const valveBall: <Id extends string>(id: Id) => ElementBuilder<Id, "valve-ball">;
17
+ export declare const valveButterfly: <Id extends string>(id: Id) => ElementBuilder<Id, "valve-butterfly">;
18
+ export declare const valveControl: <Id extends string>(id: Id) => ElementBuilder<Id, "valve-control">;
19
+ export declare const valveCheck: <Id extends string>(id: Id) => ElementBuilder<Id, "valve-check">;
20
+ export declare const valveRelief: <Id extends string>(id: Id) => ElementBuilder<Id, "valve-relief">;
21
+ export declare const heatExchangerShellTube: <Id extends string>(id: Id) => ElementBuilder<Id, "heat-exchanger-shell-tube">;
22
+ export declare const heatExchangerCoil: <Id extends string>(id: Id) => ElementBuilder<Id, "heat-exchanger-coil">;
23
+ export declare const boiler: <Id extends string>(id: Id) => ElementBuilder<Id, "boiler">;
24
+ export declare const furnace: <Id extends string>(id: Id) => ElementBuilder<Id, "furnace">;
25
+ export declare const condenser: <Id extends string>(id: Id) => ElementBuilder<Id, "condenser">;
26
+ export declare const coolingTower: <Id extends string>(id: Id) => ElementBuilder<Id, "cooling-tower">;
27
+ export declare const duct: <Id extends string>(id: Id) => ElementBuilder<Id, "duct">;
28
+ export declare const conveyor: <Id extends string>(id: Id) => ElementBuilder<Id, "conveyor">;
29
+ export declare const screwFeeder: <Id extends string>(id: Id) => ElementBuilder<Id, "screw-feeder">;
30
+ export declare const gaugeAnalog: <Id extends string>(id: Id) => ElementBuilder<Id, "gauge-analog">;
31
+ export declare const gaugeDigital: <Id extends string>(id: Id) => ElementBuilder<Id, "gauge-digital">;
32
+ export declare const indicatorLamp: <Id extends string>(id: Id) => ElementBuilder<Id, "indicator-lamp">;
33
+ export declare const readoutPanel: <Id extends string>(id: Id) => ElementBuilder<Id, "readout-panel">;
34
+ export declare const bargraph: <Id extends string>(id: Id) => ElementBuilder<Id, "bargraph">;
35
+ export declare const trendMini: <Id extends string>(id: Id) => ElementBuilder<Id, "trend-mini">;
36
+ export declare const pushbutton: <Id extends string>(id: Id) => ElementBuilder<Id, "pushbutton">;
37
+ export declare const selectorSwitch: <Id extends string>(id: Id) => ElementBuilder<Id, "selector-switch">;
38
+ export declare const motorStarterPanel: <Id extends string>(id: Id) => ElementBuilder<Id, "motor-starter-panel">;
39
+ export declare const breaker: <Id extends string>(id: Id) => ElementBuilder<Id, "breaker">;
40
+ export declare const transformer: <Id extends string>(id: Id) => ElementBuilder<Id, "transformer">;
41
+ export declare const busbar: <Id extends string>(id: Id) => ElementBuilder<Id, "busbar">;
42
+ export declare const generator: <Id extends string>(id: Id) => ElementBuilder<Id, "generator">;
43
+ export declare const bagFilter: <Id extends string>(id: Id) => ElementBuilder<Id, "bag-filter">;
44
+ export declare const cyclone: <Id extends string>(id: Id) => ElementBuilder<Id, "cyclone">;
45
+ export declare const scrubber: <Id extends string>(id: Id) => ElementBuilder<Id, "scrubber">;
46
+ export declare const stack: <Id extends string>(id: Id) => ElementBuilder<Id, "stack">;
47
+ export declare const plume: <Id extends string>(id: Id) => ElementBuilder<Id, "plume">;
48
+ export declare const steamVent: <Id extends string>(id: Id) => ElementBuilder<Id, "steam-vent">;
49
+ export declare const offPage: <Id extends string>(id: Id) => ElementBuilder<Id, "off-page">;
50
+ export declare const readout: <Id extends string>(id: Id) => ElementBuilder<Id, "readout">;
51
+ //# sourceMappingURL=factories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAiBnD,eAAO,MAAM,YAAY,GANA,EAAE,SAAS,MAAM,gDAMgB,CAAC;AAC3D,eAAO,MAAM,cAAc,GAPF,EAAE,SAAS,MAAM,kDAOoB,CAAC;AAC/D,eAAO,MAAM,aAAa,GARD,EAAE,SAAS,MAAM,iDAQkB,CAAC;AAC7D,eAAO,MAAM,MAAM,GATM,EAAE,SAAS,MAAM,yCASG,CAAC;AAC9C,eAAO,MAAM,IAAI,GAVQ,EAAE,SAAS,MAAM,uCAUD,CAAC;AAC1C,eAAO,MAAM,IAAI,GAXQ,EAAE,SAAS,MAAM,uCAWD,CAAC;AAG1C,eAAO,MAAM,eAAe,GAdH,EAAE,SAAS,MAAM,mDAcsB,CAAC;AACjE,eAAO,MAAM,wBAAwB,GAfZ,EAAE,SAAS,MAAM,6DAeyC,CAAC;AACpF,eAAO,MAAM,QAAQ,GAhBI,EAAE,SAAS,MAAM,4CAgBQ,CAAC;AACnD,eAAO,MAAM,cAAc,GAjBF,EAAE,SAAS,MAAM,kDAiBoB,CAAC;AAC/D,eAAO,MAAM,UAAU,GAlBE,EAAE,SAAS,MAAM,6CAkBW,CAAC;AACtD,eAAO,MAAM,OAAO,GAnBK,EAAE,SAAS,MAAM,0CAmBK,CAAC;AAChD,eAAO,MAAM,KAAK,GApBO,EAAE,SAAS,MAAM,wCAoBC,CAAC;AAG5C,eAAO,MAAM,SAAS,GAvBG,EAAE,SAAS,MAAM,6CAuBU,CAAC;AACrD,eAAO,MAAM,SAAS,GAxBG,EAAE,SAAS,MAAM,6CAwBU,CAAC;AACrD,eAAO,MAAM,cAAc,GAzBF,EAAE,SAAS,MAAM,kDAyBoB,CAAC;AAC/D,eAAO,MAAM,YAAY,GA1BA,EAAE,SAAS,MAAM,gDA0BgB,CAAC;AAC3D,eAAO,MAAM,UAAU,GA3BE,EAAE,SAAS,MAAM,8CA2BY,CAAC;AACvD,eAAO,MAAM,WAAW,GA5BC,EAAE,SAAS,MAAM,+CA4Bc,CAAC;AAGzD,eAAO,MAAM,sBAAsB,GA/BV,EAAE,SAAS,MAAM,4DA+BsC,CAAC;AACjF,eAAO,MAAM,iBAAiB,GAhCL,EAAE,SAAS,MAAM,sDAgC2B,CAAC;AACtE,eAAO,MAAM,MAAM,GAjCM,EAAE,SAAS,MAAM,yCAiCG,CAAC;AAC9C,eAAO,MAAM,OAAO,GAlCK,EAAE,SAAS,MAAM,0CAkCK,CAAC;AAChD,eAAO,MAAM,SAAS,GAnCG,EAAE,SAAS,MAAM,4CAmCS,CAAC;AACpD,eAAO,MAAM,YAAY,GApCA,EAAE,SAAS,MAAM,gDAoCgB,CAAC;AAG3D,eAAO,MAAM,IAAI,GAvCQ,EAAE,SAAS,MAAM,uCAuCD,CAAC;AAC1C,eAAO,MAAM,QAAQ,GAxCI,EAAE,SAAS,MAAM,2CAwCO,CAAC;AAClD,eAAO,MAAM,WAAW,GAzCC,EAAE,SAAS,MAAM,+CAyCc,CAAC;AAGzD,eAAO,MAAM,WAAW,GA5CC,EAAE,SAAS,MAAM,+CA4Cc,CAAC;AACzD,eAAO,MAAM,YAAY,GA7CA,EAAE,SAAS,MAAM,gDA6CgB,CAAC;AAC3D,eAAO,MAAM,aAAa,GA9CD,EAAE,SAAS,MAAM,iDA8CkB,CAAC;AAC7D,eAAO,MAAM,YAAY,GA/CA,EAAE,SAAS,MAAM,gDA+CgB,CAAC;AAC3D,eAAO,MAAM,QAAQ,GAhDI,EAAE,SAAS,MAAM,2CAgDO,CAAC;AAClD,eAAO,MAAM,SAAS,GAjDG,EAAE,SAAS,MAAM,6CAiDU,CAAC;AAGrD,eAAO,MAAM,UAAU,GApDE,EAAE,SAAS,MAAM,6CAoDW,CAAC;AACtD,eAAO,MAAM,cAAc,GArDF,EAAE,SAAS,MAAM,kDAqDoB,CAAC;AAC/D,eAAO,MAAM,iBAAiB,GAtDL,EAAE,SAAS,MAAM,sDAsD2B,CAAC;AAGtE,eAAO,MAAM,OAAO,GAzDK,EAAE,SAAS,MAAM,0CAyDK,CAAC;AAChD,eAAO,MAAM,WAAW,GA1DC,EAAE,SAAS,MAAM,8CA0Da,CAAC;AACxD,eAAO,MAAM,MAAM,GA3DM,EAAE,SAAS,MAAM,yCA2DG,CAAC;AAC9C,eAAO,MAAM,SAAS,GA5DG,EAAE,SAAS,MAAM,4CA4DS,CAAC;AAGpD,eAAO,MAAM,SAAS,GA/DG,EAAE,SAAS,MAAM,6CA+DU,CAAC;AACrD,eAAO,MAAM,OAAO,GAhEK,EAAE,SAAS,MAAM,0CAgEK,CAAC;AAChD,eAAO,MAAM,QAAQ,GAjEI,EAAE,SAAS,MAAM,2CAiEO,CAAC;AAClD,eAAO,MAAM,KAAK,GAlEO,EAAE,SAAS,MAAM,wCAkEC,CAAC;AAG5C,eAAO,MAAM,KAAK,GArEO,EAAE,SAAS,MAAM,wCAqEC,CAAC;AAC5C,eAAO,MAAM,SAAS,GAtEG,EAAE,SAAS,MAAM,6CAsEU,CAAC;AAGrD,eAAO,MAAM,OAAO,GAzEK,EAAE,SAAS,MAAM,2CAyEM,CAAC;AAGjD,eAAO,MAAM,OAAO,GA5EK,EAAE,SAAS,MAAM,0CA4EK,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Scene } from '@vscada/core';
2
+ /**
3
+ * Story 5.1 Task 4 — the builder-form rebuild of
4
+ * `packages/core/test/fixtures/scenes/valid-tank-pump.json` (the
5
+ * walking-skeleton scene from Story 1.7: tank T-101 + readout TI-101 +
6
+ * pump PMP-05). Kept in its own file, separate from the equivalence/
7
+ * line-count tests that consume it, so both can measure/import it cleanly.
8
+ */
9
+ export declare function buildWalkingSkeleton(): Scene;
10
+ //# sourceMappingURL=walking-skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walking-skeleton.d.ts","sourceRoot":"","sources":["../../src/fixtures/walking-skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAI1C;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,KAAK,CA2D5C"}
@@ -0,0 +1,6 @@
1
+ export { createScene, SceneBuilder, type CreateSceneOptions, type ConnectOptions, type GroupOptions } from './scene-builder';
2
+ export { ElementBuilder, element, type PortRef } from './element-builder';
3
+ export { BuilderError } from './errors';
4
+ export { ELEMENT_CATALOG, type ElementTypeName, type PortName } from './catalog';
5
+ export * from './factories';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7H,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AACjF,cAAc,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,273 @@
1
+ import { ELEMENT_CATALOG as e, validateScene as t } from "@vscada/core/scene-authoring";
2
+ //#region src/errors.ts
3
+ var n = class extends Error {
4
+ constructor(e) {
5
+ super(e), this.name = "BuilderError";
6
+ }
7
+ };
8
+ function r(e) {
9
+ return new n(`Duplicate id "${e}": every element and group in a scene needs a unique id. Rename one of the two "${e}"s.`);
10
+ }
11
+ function i(e) {
12
+ return new n(`Unknown element type "${e}" — it has no entry in @vscada/core's ELEMENT_CATALOG. Check doc/SCADA-COMPONENT-SPEC.md#6.1 for the supported type names, or use one of @vscada/builder's named factories (e.g. tankVertical, pumpCentrifugal) for autocomplete.`);
13
+ }
14
+ function a(e, t) {
15
+ return new n(`${t}: "${e}" is not a valid port reference — expected "elementId.portName" (e.g. "T-101.outlet-bot").`);
16
+ }
17
+ function o(e, t) {
18
+ return new n(`${t}: no element with id "${e}" has been .add()-ed to this scene. Check for a typo, or add "${e}" before referencing it.`);
19
+ }
20
+ function s(e, t, r) {
21
+ return new n(`${r}: element "${e}" has no port named "${t}". Check the spelling, or the element's type catalog entry for its valid port names.`);
22
+ }
23
+ function c(e, t, r) {
24
+ return new n(`${t}.${r}("${e}", ...): "${e}" is declared AFTER "${t}" in this scene. Placement helpers resolve in declaration order (no auto-layout) — .add() "${e}" before "${t}", or swap the order the two elements are added in.`);
25
+ }
26
+ //#endregion
27
+ //#region src/port-ref.ts
28
+ function l(e) {
29
+ let t = e.indexOf(".");
30
+ return t <= 0 || t === e.length - 1 ? null : {
31
+ elementId: e.slice(0, t),
32
+ portName: e.slice(t + 1)
33
+ };
34
+ }
35
+ //#endregion
36
+ //#region src/placement.ts
37
+ function u(e) {
38
+ let t = new Map(e.map((e) => [e.id, e])), n = /* @__PURE__ */ new Map();
39
+ for (let r of e) {
40
+ let e = r._x, i = r._y, u = r._w, d = r._h;
41
+ if (r._placement) {
42
+ let { kind: a, refId: s, gap: l } = r._placement, u = a === "right-of" ? "rightOf" : "below", d = n.get(s);
43
+ if (!d) throw t.has(s) ? c(s, r.id, u) : o(s, `${r.id}.${u}("${s}")`);
44
+ a === "right-of" ? (e = d.x + d.w + l, i = d.y) : (e = d.x, i = d.y + d.h + l);
45
+ }
46
+ if (r._alignPorts) {
47
+ let { myPort: u, refPortRef: d } = r._alignPorts, f = `${r.id}.alignPorts("${u}", "${d}")`, p = l(d);
48
+ if (!p) throw a(d, f);
49
+ let m = t.get(p.elementId);
50
+ if (!m) throw o(p.elementId, f);
51
+ let h = n.get(p.elementId);
52
+ if (!h) throw c(p.elementId, r.id, "alignPorts");
53
+ let g = m.catalogPorts[p.portName];
54
+ if (!g) throw s(p.elementId, p.portName, f);
55
+ let _ = r.catalogPorts[u], v = {
56
+ x: e + _.x,
57
+ y: i + _.y
58
+ }, y = {
59
+ x: h.x + g.x,
60
+ y: h.y + g.y
61
+ };
62
+ _.dir === "left" || _.dir === "right" ? i += y.y - v.y : e += y.x - v.x;
63
+ }
64
+ n.set(r.id, {
65
+ x: e,
66
+ y: i,
67
+ w: u,
68
+ h: d
69
+ });
70
+ }
71
+ return n;
72
+ }
73
+ //#endregion
74
+ //#region src/scene-builder.ts
75
+ var d = class {
76
+ constructor(e, t) {
77
+ this.elements = [], this.connections = [], this.groupDefs = /* @__PURE__ */ new Map(), this.inferTopologyFlag = !1, this.connectionCounter = 0, this.id = e, this.options = t;
78
+ }
79
+ add(e) {
80
+ if (this.elements.some((t) => t.id === e.id) || this.groupDefs.has(e.id)) throw r(e.id);
81
+ return this.elements.push(e), this;
82
+ }
83
+ connect(e, t, n) {
84
+ let r = n?.id ?? `conn-${++this.connectionCounter}`;
85
+ return this.connections.push({
86
+ id: r,
87
+ from: e,
88
+ to: t,
89
+ opts: n
90
+ }), this;
91
+ }
92
+ group(e, t) {
93
+ if (this.elements.some((t) => t.id === e) || this.groupDefs.has(e)) throw r(e);
94
+ return this.groupDefs.set(e, t), this;
95
+ }
96
+ topology(e) {
97
+ return this.explicitTopology = e, this;
98
+ }
99
+ inferTopology() {
100
+ return this.inferTopologyFlag = !0, this;
101
+ }
102
+ build() {
103
+ let e = u(this.elements), r = this.elements.map((t) => p(t, e.get(t.id))), i = new Map(this.elements.map((e) => [e.id, e])), a = this.connections.map((e) => (m(e.from, i, `connect("${e.from}", "${e.to}")`), m(e.to, i, `connect("${e.from}", "${e.to}")`), {
104
+ id: e.id,
105
+ from: e.from,
106
+ to: e.to,
107
+ ...e.opts?.medium === void 0 ? {} : { medium: e.opts.medium },
108
+ routing: e.opts?.routing ?? "orthogonal",
109
+ ...e.opts?.cornerRadius === void 0 ? {} : { cornerRadius: e.opts.cornerRadius },
110
+ ...e.opts?.laneOffset === void 0 ? {} : { laneOffset: e.opts.laneOffset },
111
+ ...e.opts?.waypoints === void 0 ? {} : { waypoints: e.opts.waypoints },
112
+ bindings: e.opts?.bindings ?? []
113
+ })), o = this.explicitTopology ?? (this.inferTopologyFlag ? h(a) : {
114
+ nodes: [],
115
+ edges: []
116
+ }), s = [...this.groupDefs.entries()].map(([e, t]) => ({
117
+ id: e,
118
+ type: "group",
119
+ ...t.label === void 0 ? {} : { label: t.label },
120
+ collapsed: t.collapsed ?? !1,
121
+ x: t.x,
122
+ y: t.y,
123
+ w: t.w,
124
+ h: t.h,
125
+ summaryTags: t.summaryTags ?? [],
126
+ ports: {},
127
+ children: t.children,
128
+ portMap: t.portMap ?? {}
129
+ })), c = t({
130
+ version: "1.0",
131
+ id: this.id,
132
+ ...this.options.title === void 0 ? {} : { title: this.options.title },
133
+ canvas: this.options.canvas,
134
+ ...this.options.theme === void 0 ? {} : { theme: this.options.theme },
135
+ media: {},
136
+ elements: r,
137
+ connections: a,
138
+ topology: o,
139
+ groups: s,
140
+ inferFlow: !1
141
+ });
142
+ if (!c.success) {
143
+ let e = c.issues.map((e) => ` - ${e.path || "(root)"}: ${e.message}`).join("\n");
144
+ throw new n(`Scene "${this.id}" failed schema validation:\n${e}`);
145
+ }
146
+ return c.data;
147
+ }
148
+ };
149
+ function f(e, t) {
150
+ return new d(e, t);
151
+ }
152
+ function p(e, t) {
153
+ let n = {};
154
+ for (let [t, r] of Object.entries(e.catalogPorts)) n[t] = {
155
+ x: r.x,
156
+ y: r.y,
157
+ dir: r.dir
158
+ };
159
+ return {
160
+ id: e.id,
161
+ type: e.type,
162
+ x: t.x,
163
+ y: t.y,
164
+ w: t.w,
165
+ h: t.h,
166
+ ...e._label === void 0 ? {} : { label: e._label },
167
+ ...e._medium === void 0 ? {} : { medium: e._medium },
168
+ ports: n,
169
+ bindings: e._bindings,
170
+ thresholds: e._thresholds,
171
+ transitions: e._transitions,
172
+ ...e._target === void 0 ? {} : { target: e._target }
173
+ };
174
+ }
175
+ function m(e, t, n) {
176
+ let r = l(e);
177
+ if (!r) throw a(e, n);
178
+ let i = t.get(r.elementId);
179
+ if (!i) throw o(r.elementId, n);
180
+ if (!i.catalogPorts[r.portName]) throw s(r.elementId, r.portName, n);
181
+ }
182
+ function h(e) {
183
+ let t = /* @__PURE__ */ new Set(), n = [];
184
+ for (let r of e) {
185
+ let e = l(r.from)?.elementId ?? r.from, i = l(r.to)?.elementId ?? r.to;
186
+ t.add(e), t.add(i), n.push({
187
+ id: r.id,
188
+ from: e,
189
+ to: i,
190
+ medium: r.medium
191
+ });
192
+ }
193
+ return {
194
+ nodes: [...t],
195
+ edges: n
196
+ };
197
+ }
198
+ //#endregion
199
+ //#region src/element-builder.ts
200
+ var g = class {
201
+ constructor(t, n) {
202
+ this._x = 0, this._y = 0, this._bindings = [], this._thresholds = [], this._transitions = {};
203
+ let r = e[n];
204
+ if (!r) throw i(n);
205
+ this.id = t, this.type = n, this._w = r.defaultSize.w, this._h = r.defaultSize.h;
206
+ }
207
+ get catalogPorts() {
208
+ return e[this.type].ports;
209
+ }
210
+ at(e, t) {
211
+ return this._x = e, this._y = t, this._placement = void 0, this;
212
+ }
213
+ size(e, t) {
214
+ return this._w = e, this._h = t, this;
215
+ }
216
+ label(e) {
217
+ return this._label = e, this;
218
+ }
219
+ medium(e) {
220
+ return this._medium = e, this;
221
+ }
222
+ bind(...e) {
223
+ return this._bindings.push(...e), this;
224
+ }
225
+ thresholds(...e) {
226
+ return this._thresholds.push(...e), this;
227
+ }
228
+ transition(e, t) {
229
+ return this._transitions[e] = t, this;
230
+ }
231
+ target(e, t) {
232
+ return this._target = {
233
+ scene: e,
234
+ port: t
235
+ }, this;
236
+ }
237
+ port(e) {
238
+ return `${this.id}.${e}`;
239
+ }
240
+ rightOf(e, t = 0) {
241
+ return this._placement = {
242
+ kind: "right-of",
243
+ refId: e,
244
+ gap: t
245
+ }, this;
246
+ }
247
+ below(e, t = 0) {
248
+ return this._placement = {
249
+ kind: "below",
250
+ refId: e,
251
+ gap: t
252
+ }, this;
253
+ }
254
+ alignPorts(e, t) {
255
+ return this._alignPorts = {
256
+ myPort: e,
257
+ refPortRef: t
258
+ }, this;
259
+ }
260
+ };
261
+ function _(e, t) {
262
+ return new g(e, t);
263
+ }
264
+ //#endregion
265
+ //#region src/factories.ts
266
+ function v(e) {
267
+ return function(t) {
268
+ return new g(t, e);
269
+ };
270
+ }
271
+ var y = v("tank-vertical"), ee = v("tank-horizontal"), b = v("tank-spherical"), x = v("hopper"), S = v("silo"), C = v("drum"), w = v("pump-centrifugal"), T = v("pump-positive-displacement"), E = v("fan-axial"), D = v("fan-centrifugal"), O = v("compressor"), k = v("turbine"), A = v("motor"), j = v("valve-gate"), M = v("valve-ball"), N = v("valve-butterfly"), P = v("valve-control"), F = v("valve-check"), I = v("valve-relief"), L = v("heat-exchanger-shell-tube"), R = v("heat-exchanger-coil"), z = v("boiler"), te = v("furnace"), B = v("condenser"), V = v("cooling-tower"), H = v("duct"), U = v("conveyor"), W = v("screw-feeder"), G = v("gauge-analog"), K = v("gauge-digital"), q = v("indicator-lamp"), J = v("readout-panel"), Y = v("bargraph"), X = v("trend-mini"), Z = v("pushbutton"), Q = v("selector-switch"), ne = v("motor-starter-panel"), re = v("breaker"), ie = v("transformer"), ae = v("busbar"), oe = v("generator"), $ = v("bag-filter"), se = v("cyclone"), ce = v("scrubber"), le = v("stack"), ue = v("plume"), de = v("steam-vent"), fe = v("off-page"), pe = v("readout");
272
+ //#endregion
273
+ export { n as BuilderError, e as ELEMENT_CATALOG, g as ElementBuilder, d as SceneBuilder, $ as bagFilter, Y as bargraph, z as boiler, re as breaker, ae as busbar, O as compressor, B as condenser, U as conveyor, V as coolingTower, f as createScene, se as cyclone, C as drum, H as duct, _ as element, E as fanAxial, D as fanCentrifugal, te as furnace, G as gaugeAnalog, K as gaugeDigital, oe as generator, R as heatExchangerCoil, L as heatExchangerShellTube, x as hopper, q as indicatorLamp, A as motor, ne as motorStarterPanel, fe as offPage, ue as plume, w as pumpCentrifugal, T as pumpPositiveDisplacement, Z as pushbutton, pe as readout, J as readoutPanel, W as screwFeeder, ce as scrubber, Q as selectorSwitch, S as silo, le as stack, de as steamVent, ee as tankHorizontal, b as tankSpherical, y as tankVertical, ie as transformer, X as trendMini, k as turbine, M as valveBall, N as valveButterfly, F as valveCheck, P as valveControl, j as valveGate, I as valveRelief };
@@ -0,0 +1,16 @@
1
+ import type { ElementBuilder } from './element-builder';
2
+ export interface ResolvedPosition {
3
+ x: number;
4
+ y: number;
5
+ w: number;
6
+ h: number;
7
+ }
8
+ /**
9
+ * Story 5.1 Task 3: pure relative-coordinate arithmetic, resolved once at
10
+ * `.build()` time in declaration order — NO auto-layout, no solver (AC4).
11
+ * An element referencing another element that hasn't been resolved yet
12
+ * (either because it hasn't been `.add()`-ed at all, or was `.add()`-ed
13
+ * LATER in the scene) is a forward-reference error, not a silent 0,0.
14
+ */
15
+ export declare function resolvePlacements(elements: readonly ElementBuilder[]): Map<string, ResolvedPosition>;
16
+ //# sourceMappingURL=placement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placement.d.ts","sourceRoot":"","sources":["../src/placement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CA0DpG"}
@@ -0,0 +1,7 @@
1
+ /** Shared by `placement.ts` and `scene-builder.ts` — both resolve "id.port" strings at `.build()` time. */
2
+ export interface ParsedPortRef {
3
+ elementId: string;
4
+ portName: string;
5
+ }
6
+ export declare function parsePortRef(ref: string): ParsedPortRef | null;
7
+ //# sourceMappingURL=port-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port-ref.d.ts","sourceRoot":"","sources":["../src/port-ref.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAI9D"}
@@ -0,0 +1,62 @@
1
+ import type { Binding, Scene, Topology } from '@vscada/core';
2
+ import type { ElementBuilder, PortRef } from './element-builder';
3
+ export interface CreateSceneOptions {
4
+ canvas: {
5
+ width: number;
6
+ height: number;
7
+ };
8
+ title?: string;
9
+ theme?: string;
10
+ }
11
+ export interface ConnectOptions {
12
+ id?: string;
13
+ medium?: string;
14
+ routing?: 'direct' | 'orthogonal' | 'manual';
15
+ cornerRadius?: number;
16
+ laneOffset?: number;
17
+ waypoints?: {
18
+ x: number;
19
+ y: number;
20
+ }[] | null;
21
+ bindings?: Binding[];
22
+ }
23
+ export interface GroupOptions {
24
+ label?: string;
25
+ collapsed?: boolean;
26
+ x: number;
27
+ y: number;
28
+ w: number;
29
+ h: number;
30
+ summaryTags?: string[];
31
+ children: string[];
32
+ portMap?: Record<string, string>;
33
+ }
34
+ /**
35
+ * Story 5.1 Task 1: `createScene(id, {canvas})` returns this, chainable
36
+ * through `.add()`/`.connect()`/`.group()`/`.topology()`/`.inferTopology()`,
37
+ * terminated by `.build()` — which resolves placement (Task 3), validates
38
+ * every connection/alignPorts port reference (Task 4's runtime-checked
39
+ * half of AC2), and always Zod-validates the result against core's schema
40
+ * before returning it (Dev Notes: "Zod always-on" for this dev tool).
41
+ */
42
+ export declare class SceneBuilder {
43
+ private readonly id;
44
+ private readonly options;
45
+ private readonly elements;
46
+ private readonly connections;
47
+ private readonly groupDefs;
48
+ private explicitTopology;
49
+ private inferTopologyFlag;
50
+ private connectionCounter;
51
+ constructor(id: string, options: CreateSceneOptions);
52
+ add(element: ElementBuilder): this;
53
+ connect(from: PortRef, to: PortRef, opts?: ConnectOptions): this;
54
+ group(id: string, options: GroupOptions): this;
55
+ /** Explicit topology (§5.4) — overrides `.inferTopology()` when both are used. */
56
+ topology(topology: Topology): this;
57
+ /** Derive topology nodes/edges from `.connect()` calls (the 90% case) — explicit `.topology()` wins if also set. */
58
+ inferTopology(): this;
59
+ build(): Scene;
60
+ }
61
+ export declare function createScene(id: string, options: CreateSceneOptions): SceneBuilder;
62
+ //# sourceMappingURL=scene-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-builder.d.ts","sourceRoot":"","sources":["../src/scene-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAA2B,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAElG,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AASD;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAC7D,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,iBAAiB,CAAK;gBAElB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;IAKnD,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQlC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI;IAMhE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAQ9C,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKlC,oHAAoH;IACpH,aAAa,IAAI,IAAI;IAKrB,KAAK,IAAI,KAAK;CA4Df;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,YAAY,CAEjF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=type-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-tests.d.ts","sourceRoot":"","sources":["../src/type-tests.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@vscada/builder",
3
+ "version": "0.0.1",
4
+ "description": "VScada Typed fluent scene builder (real content: Story 5.1)",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "license": "UNLICENSED",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ }
16
+ },
17
+ "dependencies": {
18
+ "@vscada/core": "0.0.1"
19
+ },
20
+ "devDependencies": {
21
+ "typescript": "~5.9.3",
22
+ "vite": "~8.1.5"
23
+ },
24
+ "scripts": {
25
+ "build": "vite build && tsc -b",
26
+ "typecheck": "tsc -b"
27
+ }
28
+ }