You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2026/06/03 09:00:39 UTC
(streampipes-website) 01/08: feat: Restructure docs
This is an automated email from the ASF dual-hosted git repository.
dominikriemer pushed a commit to branch refactor-website
in repository https://gitbox.apache.org/repos/asf/streampipes-website.git
commit 7d67d22bebc3ff09128d527ded3b504410282b24
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Thu May 28 18:10:09 2026 +0200
feat: Restructure docs
---
docs/{01_try-overview.md => 01_overview.md} | 0
docs/01_try-installation.md | 62 -
docs/01_try-tutorial.md | 20 -
docs/02_concepts-adapter.md | 7 -
docs/02_concepts-data-streams.md | 7 -
docs/02_concepts-glossary.md | 7 -
docs/02_concepts-overview.md | 46 -
docs/02_concepts-pipeline.md | 7 -
docs/02_introduction.md | 85 -
.../02_quick-start-guide.md | 97 +-
.../03_concepts-architecture.md | 94 +-
.../03_concepts-introduction.md | 2 +-
.../03_concepts-terms.md | 14 +-
docs/03_use-configurations.md | 48 -
docs/03_use-connect.md | 72 -
docs/03_use-dashboard.md | 66 -
docs/03_use-install-pipeline-elements.md | 9 -
docs/03_use-managing-pipelines.md | 52 -
docs/03_use-notifications.md | 25 -
docs/03_use-pipeline-editor.md | 62 -
docs/03_use-programmatically-create-adapters.md | 154 -
docs/03_use-programmatically-create-pipelines.md | 164 -
docs/04_use-assets.md | 5 +
docs/{03_use-data-explorer.md => 04_use-charts.md} | 6 +-
.../03_use-connect.md => docs/04_use-connect.md | 155 +-
.../04_use-dashboards.md | 6 +-
...ploy-retention-config.md => 04_use-datasets.md} | 31 +-
docs/04_use-pipelines.md | 268 +
.../04_use-programmatic-access.md | 6 +-
docs/{03_use-shortcuts.md => 04_use-shortcuts.md} | 0
docs/05_deploy-choosing-the-right-flavor.md | 47 -
docs/05_deploy-docker.md | 92 -
docs/05_deploy-environment-variables.md | 88 -
docs/05_deploy-kubernetes.md | 269 -
docs/05_deploy-use-ssl.md | 35 -
.../05_how-to-custom-adapter.md | 14 +-
.../05_how-to-custom-data-processor.md | 16 +-
.../05_how-to-custom-data-sink.md | 10 +-
docs/{07_connect_mqtt.md => 05_how-to-mqtt.md} | 6 +-
docs/05_how-to-opcua.md | 5 +
.../06_configure-operate-deployment.md | 185 +-
.../06_configure-operate-environment-variables.md | 4 +-
docs/06_configure-operate-extension-services.md | 5 +
docs/06_configure-operate-extensions.md | 9 +
.../06_configure-operate-general-settings.md | 8 +-
...ecurity.md => 06_configure-operate-security.md} | 6 +-
docs/06_extend-archetypes.md | 46 -
docs/06_extend-client.md | 204 -
docs/06_extend-tutorial-adapters.md | 612 -
docs/06_extend-tutorial-data-processors.md | 454 -
docs/06_extend-tutorial-data-sinks.md | 272 -
.../07_extend-archetypes.md | 2 +-
docs/{06_extend-cli.md => 07_extend-cli.md} | 0
...d-customize-ui.md => 07_extend-customize-ui.md} | 0
...t-processor.md => 07_extend-first-processor.md} | 0
...event-model.md => 07_extend-sdk-event-model.md} | 2 +-
...sdk-functions.md => 07_extend-sdk-functions.md} | 2 +-
...gration-sd.md => 07_extend-sdk-migration-sd.md} | 0
...k-migrations.md => 07_extend-sdk-migrations.md} | 0
...egies.md => 07_extend-sdk-output-strategies.md} | 0
...rties.md => 07_extend-sdk-static-properties.md} | 0
...nts.md => 07_extend-sdk-stream-requirements.md} | 0
docs/{06_extend-setup.md => 07_extend-setup.md} | 4 +-
docs/08_technicals-architecture.md | 110 -
docs/08_technicals-messaging.md | 65 -
docs/08_technicals-runtime-wrappers.md | 37 -
docs/08_technicals-user-guidance.md | 7 -
.../version-0.92.0 => docs}/09_contribute.md | 0
docs/09_debugging.md | 7 -
.../version-0.95.0 => docs}/09_get-help.md | 0
docs/09_monitoring.md | 7 -
docs/10_contribute.md | 17 -
docs/10_get-help.md | 25 -
...apache.streampipes.connect.iiot.adapters.oi4.md | 2 +-
...onnect.iiot.adapters.plc4x.generic.knxnet-ip.md | 6 +-
...ipes.connect.iiot.protocol.stream.httpserver.md | 3 +-
...che.streampipes.processors.filters.jvm.merge.md | 4 +-
...tlong.processor.distancecalculator.haversine.md | 6 +-
...treampipes.processors.siddhi.numericalfilter.md | 4 +-
...nsformation.jvm.processor.booloperator.state.md | 2 +-
docs/user-guide-first-steps.md | 209 -
docs/user-guide-tour.md | 305 -
website-v2/blog/2020-01-23-streampipes_on_rpi.md | 2 +-
website-v2/blog/2020-05-27-streampipes_on_k3s.md | 4 +-
website-v2/docusaurus.config.js | 2 +-
website-v2/package-lock.json | 21876 ++++++++++++-------
website-v2/package.json | 10 +-
website-v2/sidebars.json | 465 +-
.../version-0.91.0/01_try-installation.md | 66 -
.../version-0.91.0/01_try-overview.md | 134 -
.../version-0.91.0/01_try-tutorial.md | 21 -
.../version-0.91.0/02_concepts-adapter.md | 8 -
.../version-0.91.0/02_concepts-data-streams.md | 8 -
.../version-0.91.0/02_concepts-glossary.md | 8 -
.../version-0.91.0/02_concepts-overview.md | 36 -
.../version-0.91.0/02_concepts-pipeline.md | 8 -
.../version-0.91.0/03_use-configurations.md | 49 -
.../version-0.91.0/03_use-dashboard.md | 67 -
.../version-0.91.0/03_use-data-explorer.md | 103 -
.../03_use-install-pipeline-elements.md | 10 -
.../version-0.91.0/03_use-managing-pipelines.md | 53 -
.../version-0.91.0/03_use-notifications.md | 26 -
.../version-0.91.0/03_use-pipeline-editor.md | 63 -
.../version-0.91.0/05_deploy-docker.md | 75 -
.../version-0.91.0/05_deploy-kubernetes.md | 61 -
.../version-0.91.0/05_deploy-security.md | 76 -
.../version-0.91.0/05_deploy-use-ssl.md | 36 -
.../version-0.91.0/06_extend-archetypes.md | 65 -
.../versioned_docs/version-0.91.0/06_extend-cli.md | 191 -
.../version-0.91.0/06_extend-first-processor.md | 58 -
.../version-0.91.0/06_extend-sdk-event-model.md | 142 -
.../version-0.91.0/06_extend-sdk-functions.md | 126 -
.../version-0.91.0/06_extend-sdk-migration-sd.md | 117 -
.../06_extend-sdk-output-strategies.md | 349 -
.../06_extend-sdk-static-properties.md | 267 -
.../06_extend-sdk-stream-requirements.md | 179 -
.../version-0.91.0/06_extend-setup.md | 51 -
.../06_extend-tutorial-data-processors.md | 363 -
.../06_extend-tutorial-data-sinks.md | 231 -
.../06_extend-tutorial-data-sources.md | 205 -
.../version-0.91.0/07_technicals-architecture.md | 63 -
.../version-0.91.0/07_technicals-configuration.md | 59 -
.../version-0.91.0/07_technicals-messaging.md | 8 -
.../07_technicals-runtime-wrappers.md | 8 -
.../version-0.91.0/07_technicals-user-guidance.md | 8 -
.../versioned_docs/version-0.91.0/08_debugging.md | 8 -
.../versioned_docs/version-0.91.0/08_monitoring.md | 8 -
.../versioned_docs/version-0.91.0/09_contribute.md | 18 -
.../versioned_docs/version-0.91.0/09_get-help.md | 26 -
.../version-0.91.0/dev-guide-archetype.md | 7 -
.../version-0.91.0/dev-guide-processor-sdk.md | 12 -
.../version-0.91.0/dev-guide-sink-sdk.md | 12 -
.../version-0.91.0/faq-common-problems.md | 74 -
...apache.streampipes.connect.adapters.coindesk.md | 45 -
...pache.streampipes.connect.adapters.flic.mqtt.md | 60 -
...rg.apache.streampipes.connect.adapters.gdelt.md | 43 -
...apache.streampipes.connect.adapters.iex.news.md | 49 -
...ache.streampipes.connect.adapters.iex.stocks.md | 48 -
...pache.streampipes.connect.adapters.image.set.md | 39 -
...he.streampipes.connect.adapters.image.stream.md | 39 -
...he.streampipes.connect.adapters.influxdb.set.md | 42 -
...streampipes.connect.adapters.influxdb.stream.md | 42 -
.../org.apache.streampipes.connect.adapters.iss.md | 40 -
...pache.streampipes.connect.adapters.mysql.set.md | 40 -
...he.streampipes.connect.adapters.mysql.stream.md | 40 -
...ache.streampipes.connect.adapters.netio.mqtt.md | 65 -
...ache.streampipes.connect.adapters.netio.rest.md | 65 -
....connect.adapters.nswaustralia.trafficcamera.md | 40 -
...rg.apache.streampipes.connect.adapters.opcua.md | 77 -
...he.streampipes.connect.adapters.plc4x.modbus.md | 40 -
...apache.streampipes.connect.adapters.plc4x.s7.md | 40 -
.../org.apache.streampipes.connect.adapters.ros.md | 65 -
...reampipes.connect.adapters.simulator.machine.md | 41 -
...pes.connect.adapters.simulator.randomdataset.md | 40 -
....connect.adapters.simulator.randomdatastream.md | 40 -
...rg.apache.streampipes.connect.adapters.slack.md | 40 -
.../org.apache.streampipes.connect.adapters.ti.md | 58 -
....streampipes.connect.adapters.wikipedia.edit.md | 40 -
...e.streampipes.connect.adapters.wikipedia.new.md | 40 -
...che.streampipes.connect.protocol.stream.file.md | 39 -
...che.streampipes.connect.protocol.stream.http.md | 39 -
...reampipes.connect.protocol.stream.httpserver.md | 39 -
...he.streampipes.connect.protocol.stream.kafka.md | 39 -
...che.streampipes.connect.protocol.stream.mqtt.md | 54 -
...e.streampipes.connect.protocol.stream.pulsar.md | 39 -
.../org.apache.streampipes.processor.geo.flink.md | 52 -
...ache.streampipes.processor.geo.jvm.geocoding.md | 61 -
...reampipes.processor.geo.jvm.reversegeocoding.md | 65 -
...treampipes.processor.geo.jvm.staticgeocoding.md | 62 -
...ssification.jvm.generic-image-classification.md | 53 -
...cessor.imageclassification.jvm.image-cropper.md | 44 -
...essor.imageclassification.jvm.image-enricher.md | 44 -
...ampipes.processor.imageclassification.qrcode.md | 69 -
...pes.processors.aggregation.flink.aggregation.md | 62 -
...reampipes.processors.aggregation.flink.count.md | 67 -
...ipes.processors.aggregation.flink.eventcount.md | 57 -
...treampipes.processors.aggregation.flink.rate.md | 55 -
...ampipes.processors.changedetection.jvm.cusum.md | 66 -
...cessors.enricher.flink.processor.math.mathop.md | 57 -
...s.enricher.flink.processor.math.staticmathop.md | 57 -
...essors.enricher.flink.processor.trigonometry.md | 57 -
...rs.enricher.flink.processor.urldereferencing.md | 52 -
...eampipes.processors.enricher.flink.timestamp.md | 49 -
...eampipes.processors.enricher.jvm.sizemeasure.md | 50 -
...e.streampipes.processors.filters.jvm.compose.md | 51 -
...he.streampipes.processors.filters.jvm.enrich.md | 48 -
...che.streampipes.processors.filters.jvm.limit.md | 71 -
...che.streampipes.processors.filters.jvm.merge.md | 58 -
...pipes.processors.filters.jvm.numericalfilter.md | 57 -
...s.processors.filters.jvm.numericaltextfilter.md | 68 -
...e.streampipes.processors.filters.jvm.project.md | 49 -
...treampipes.processors.filters.jvm.textfilter.md | 54 -
...streampipes.processors.filters.jvm.threshold.md | 57 -
...processors.geo.jvm.jts.processor.latLngToGeo.md | 74 -
...pes.processors.geo.jvm.jts.processor.setEPSG.md | 60 -
....processors.geo.jvm.jts.processor.trajectory.md | 84 -
...cessors.geo.jvm.processor.distancecalculator.md | 61 -
...reampipes.processors.geo.jvm.processor.speed.md | 56 -
...s.geo.jvm.processor.staticdistancecalculator.md | 71 -
...s.processors.pattern-detection.flink.absence.md | 54 -
...pipes.processors.pattern-detection.flink.and.md | 54 -
...ssors.pattern-detection.flink.peak-detection.md | 54 -
....processors.pattern-detection.flink.sequence.md | 54 -
...ache.streampipes.processors.siddhi.frequency.md | 56 -
...treampipes.processors.siddhi.frequencychange.md | 59 -
...pache.streampipes.processors.siddhi.increase.md | 66 -
...treampipes.processors.siddhi.numericalfilter.md | 64 -
...pache.streampipes.processors.siddhi.sequence.md | 36 -
...rg.apache.streampipes.processors.siddhi.stop.md | 57 -
...ocessors.statistics.flink.statistics-summary.md | 44 -
...rocessors.textmining.flink.languagedetection.md | 54 -
...mpipes.processors.textmining.flink.wordcount.md | 54 -
...treampipes.processors.textmining.jvm.chunker.md | 70 -
....processors.textmining.jvm.languagedetection.md | 170 -
...ampipes.processors.textmining.jvm.namefinder.md | 66 -
...pipes.processors.textmining.jvm.partofspeech.md | 63 -
....processors.textmining.jvm.sentencedetection.md | 60 -
...eampipes.processors.textmining.jvm.tokenizer.md | 60 -
...cessors.transformation.flink.field-converter.md | 55 -
...processors.transformation.flink.field-mapper.md | 70 -
...rocessors.transformation.flink.field-renamer.md | 69 -
....processors.transformation.flink.fieldhasher.md | 55 -
...nsformation.flink.measurement-unit-converter.md | 54 -
...s.transformation.flink.processor.boilerplate.md | 50 -
...sors.transformation.jvm.booloperator.counter.md | 65 -
...ors.transformation.jvm.booloperator.inverter.md | 52 -
....transformation.jvm.booloperator.timekeeping.md | 71 -
...essors.transformation.jvm.booloperator.timer.md | 57 -
....processors.transformation.jvm.changed-value.md | 46 -
...es.processors.transformation.jvm.count-array.md | 56 -
...es.processors.transformation.jvm.csvmetadata.md | 77 -
...processors.transformation.jvm.duration-value.md | 52 -
...ansformation.jvm.processor.booloperator.edge.md | 58 -
...nsformation.jvm.processor.booloperator.state.md | 59 -
...rs.transformation.jvm.processor.state.buffer.md | 55 -
...formation.jvm.processor.state.labeler.buffer.md | 70 -
...formation.jvm.processor.state.labeler.number.md | 59 -
...formation.jvm.processor.stringoperator.state.md | 52 -
...nsformation.jvm.processor.timestampextractor.md | 59 -
...es.processors.transformation.jvm.split-array.md | 60 -
...rs.transformation.jvm.stringoperator.counter.md | 62 -
...sors.transformation.jvm.stringoperator.timer.md | 64 -
...s.processors.transformation.jvm.taskduration.md | 51 -
...sors.transformation.jvm.transform-to-boolean.md | 51 -
.../pe/org.apache.streampipes.protocol.set.file.md | 39 -
.../pe/org.apache.streampipes.protocol.set.http.md | 39 -
...che.streampipes.sinks.brokers.jvm.bufferrest.md | 59 -
...org.apache.streampipes.sinks.brokers.jvm.jms.md | 61 -
...g.apache.streampipes.sinks.brokers.jvm.kafka.md | 62 -
...rg.apache.streampipes.sinks.brokers.jvm.mqtt.md | 62 -
...rg.apache.streampipes.sinks.brokers.jvm.nats.md | 79 -
....apache.streampipes.sinks.brokers.jvm.pulsar.md | 64 -
...pache.streampipes.sinks.brokers.jvm.rabbitmq.md | 74 -
...rg.apache.streampipes.sinks.brokers.jvm.rest.md | 53 -
...org.apache.streampipes.sinks.databases.ditto.md | 74 -
...eampipes.sinks.databases.flink.elasticsearch.md | 61 -
...ache.streampipes.sinks.databases.jvm.couchdb.md | 64 -
...che.streampipes.sinks.databases.jvm.influxdb.md | 86 -
...apache.streampipes.sinks.databases.jvm.iotdb.md | 71 -
...apache.streampipes.sinks.databases.jvm.mysql.md | 75 -
...apache.streampipes.sinks.databases.jvm.opcua.md | 73 -
...e.streampipes.sinks.databases.jvm.postgresql.md | 74 -
...che.streampipes.sinks.internal.jvm.dashboard.md | 53 -
...ache.streampipes.sinks.internal.jvm.datalake.md | 86 -
....streampipes.sinks.internal.jvm.notification.md | 58 -
...he.streampipes.sinks.notifications.jvm.email.md | 68 -
...treampipes.sinks.notifications.jvm.onesignal.md | 59 -
...he.streampipes.sinks.notifications.jvm.slack.md | 63 -
...streampipes.sinks.notifications.jvm.telegram.md | 68 -
.../version-0.91.0/user-guide-first-steps.md | 214 -
.../version-0.91.0/user-guide-tour.md | 307 -
.../version-0.92.0/01_try-installation.md | 66 -
.../version-0.92.0/01_try-overview.md | 133 -
.../version-0.92.0/01_try-tutorial.md | 20 -
.../version-0.92.0/02_concepts-adapter.md | 7 -
.../version-0.92.0/02_concepts-data-streams.md | 7 -
.../version-0.92.0/02_concepts-glossary.md | 7 -
.../version-0.92.0/02_concepts-overview.md | 46 -
.../version-0.92.0/02_concepts-pipeline.md | 7 -
.../version-0.92.0/02_introduction.md | 85 -
.../version-0.92.0/03_use-configurations.md | 48 -
.../version-0.92.0/03_use-connect.md | 72 -
.../version-0.92.0/03_use-dashboard.md | 66 -
.../version-0.92.0/03_use-data-explorer.md | 102 -
.../03_use-install-pipeline-elements.md | 9 -
.../version-0.92.0/03_use-managing-pipelines.md | 52 -
.../version-0.92.0/03_use-notifications.md | 25 -
.../version-0.92.0/03_use-pipeline-editor.md | 62 -
.../version-0.92.0/05_deploy-docker.md | 79 -
.../05_deploy-environment-variables.md | 5 -
.../version-0.92.0/05_deploy-kubernetes.md | 35 -
.../version-0.92.0/05_deploy-security.md | 75 -
.../version-0.92.0/05_deploy-use-ssl.md | 35 -
.../version-0.92.0/06_extend-archetypes.md | 48 -
.../versioned_docs/version-0.92.0/06_extend-cli.md | 190 -
.../version-0.92.0/06_extend-client.md | 204 -
.../version-0.92.0/06_extend-first-processor.md | 57 -
.../version-0.92.0/06_extend-sdk-event-model.md | 141 -
.../version-0.92.0/06_extend-sdk-functions.md | 125 -
.../version-0.92.0/06_extend-sdk-migration-sd.md | 116 -
.../06_extend-sdk-output-strategies.md | 348 -
.../06_extend-sdk-static-properties.md | 266 -
.../06_extend-sdk-stream-requirements.md | 178 -
.../version-0.92.0/06_extend-setup.md | 51 -
.../06_extend-tutorial-data-processors.md | 362 -
.../06_extend-tutorial-data-sinks.md | 230 -
.../06_extend-tutorial-data-sources.md | 204 -
.../version-0.92.0/07_technicals-messaging.md | 42 -
.../07_technicals-runtime-wrappers.md | 7 -
.../version-0.92.0/07_technicals-user-guidance.md | 7 -
.../versioned_docs/version-0.92.0/08_debugging.md | 7 -
.../versioned_docs/version-0.92.0/08_monitoring.md | 7 -
.../versioned_docs/version-0.92.0/09_get-help.md | 25 -
.../version-0.92.0/dev-guide-archetype.md | 7 -
.../version-0.92.0/dev-guide-introduction.md | 52 -
.../version-0.92.0/dev-guide-processor-sdk.md | 12 -
.../version-0.92.0/dev-guide-sink-sdk.md | 12 -
.../version-0.92.0/faq-common-problems.md | 73 -
...apache.streampipes.connect.adapters.coindesk.md | 44 -
...pache.streampipes.connect.adapters.flic.mqtt.md | 59 -
...rg.apache.streampipes.connect.adapters.gdelt.md | 42 -
...apache.streampipes.connect.adapters.iex.news.md | 48 -
...ache.streampipes.connect.adapters.iex.stocks.md | 47 -
...pache.streampipes.connect.adapters.image.set.md | 38 -
...he.streampipes.connect.adapters.image.stream.md | 38 -
...he.streampipes.connect.adapters.influxdb.set.md | 41 -
...streampipes.connect.adapters.influxdb.stream.md | 41 -
.../org.apache.streampipes.connect.adapters.iss.md | 39 -
...pache.streampipes.connect.adapters.mysql.set.md | 39 -
...he.streampipes.connect.adapters.mysql.stream.md | 39 -
...ache.streampipes.connect.adapters.netio.mqtt.md | 64 -
...ache.streampipes.connect.adapters.netio.rest.md | 64 -
....connect.adapters.nswaustralia.trafficcamera.md | 39 -
...rg.apache.streampipes.connect.adapters.opcua.md | 76 -
...he.streampipes.connect.adapters.plc4x.modbus.md | 75 -
...apache.streampipes.connect.adapters.plc4x.s7.md | 96 -
.../org.apache.streampipes.connect.adapters.ros.md | 64 -
...reampipes.connect.adapters.simulator.machine.md | 40 -
...pes.connect.adapters.simulator.randomdataset.md | 39 -
....connect.adapters.simulator.randomdatastream.md | 39 -
...rg.apache.streampipes.connect.adapters.slack.md | 39 -
.../org.apache.streampipes.connect.adapters.ti.md | 57 -
....streampipes.connect.adapters.wikipedia.edit.md | 39 -
...e.streampipes.connect.adapters.wikipedia.new.md | 39 -
...che.streampipes.connect.protocol.stream.file.md | 38 -
...che.streampipes.connect.protocol.stream.http.md | 38 -
...reampipes.connect.protocol.stream.httpserver.md | 38 -
...he.streampipes.connect.protocol.stream.kafka.md | 38 -
...che.streampipes.connect.protocol.stream.mqtt.md | 53 -
...e.streampipes.connect.protocol.stream.pulsar.md | 38 -
.../org.apache.streampipes.processor.geo.flink.md | 51 -
...ache.streampipes.processor.geo.jvm.geocoding.md | 60 -
...reampipes.processor.geo.jvm.reversegeocoding.md | 64 -
...treampipes.processor.geo.jvm.staticgeocoding.md | 61 -
...ssification.jvm.generic-image-classification.md | 52 -
...cessor.imageclassification.jvm.image-cropper.md | 43 -
...essor.imageclassification.jvm.image-enricher.md | 43 -
...ampipes.processor.imageclassification.qrcode.md | 68 -
...pes.processors.aggregation.flink.aggregation.md | 61 -
...reampipes.processors.aggregation.flink.count.md | 66 -
...ipes.processors.aggregation.flink.eventcount.md | 56 -
...treampipes.processors.aggregation.flink.rate.md | 54 -
...ampipes.processors.changedetection.jvm.cusum.md | 65 -
...cessors.enricher.flink.processor.math.mathop.md | 56 -
...s.enricher.flink.processor.math.staticmathop.md | 56 -
...essors.enricher.flink.processor.trigonometry.md | 56 -
...rs.enricher.flink.processor.urldereferencing.md | 51 -
...eampipes.processors.enricher.flink.timestamp.md | 48 -
...eampipes.processors.enricher.jvm.sizemeasure.md | 49 -
...e.streampipes.processors.filters.jvm.compose.md | 50 -
...he.streampipes.processors.filters.jvm.enrich.md | 47 -
...che.streampipes.processors.filters.jvm.limit.md | 70 -
...che.streampipes.processors.filters.jvm.merge.md | 57 -
...pipes.processors.filters.jvm.numericalfilter.md | 56 -
...s.processors.filters.jvm.numericaltextfilter.md | 67 -
...e.streampipes.processors.filters.jvm.project.md | 48 -
...treampipes.processors.filters.jvm.textfilter.md | 53 -
...streampipes.processors.filters.jvm.threshold.md | 56 -
...processors.geo.jvm.jts.processor.latLngToGeo.md | 73 -
...pes.processors.geo.jvm.jts.processor.setEPSG.md | 59 -
....processors.geo.jvm.jts.processor.trajectory.md | 83 -
...cessors.geo.jvm.processor.distancecalculator.md | 60 -
...reampipes.processors.geo.jvm.processor.speed.md | 55 -
...s.geo.jvm.processor.staticdistancecalculator.md | 70 -
...s.processors.pattern-detection.flink.absence.md | 53 -
...pipes.processors.pattern-detection.flink.and.md | 53 -
...ssors.pattern-detection.flink.peak-detection.md | 53 -
....processors.pattern-detection.flink.sequence.md | 53 -
...ache.streampipes.processors.siddhi.frequency.md | 55 -
...treampipes.processors.siddhi.frequencychange.md | 58 -
...pache.streampipes.processors.siddhi.increase.md | 65 -
...treampipes.processors.siddhi.numericalfilter.md | 63 -
...pache.streampipes.processors.siddhi.sequence.md | 35 -
...rg.apache.streampipes.processors.siddhi.stop.md | 56 -
...ocessors.statistics.flink.statistics-summary.md | 43 -
...rocessors.textmining.flink.languagedetection.md | 53 -
...mpipes.processors.textmining.flink.wordcount.md | 53 -
...treampipes.processors.textmining.jvm.chunker.md | 69 -
....processors.textmining.jvm.languagedetection.md | 169 -
...ampipes.processors.textmining.jvm.namefinder.md | 65 -
...pipes.processors.textmining.jvm.partofspeech.md | 62 -
....processors.textmining.jvm.sentencedetection.md | 59 -
...eampipes.processors.textmining.jvm.tokenizer.md | 59 -
...cessors.transformation.flink.field-converter.md | 54 -
...processors.transformation.flink.field-mapper.md | 69 -
...rocessors.transformation.flink.field-renamer.md | 68 -
....processors.transformation.flink.fieldhasher.md | 54 -
...nsformation.flink.measurement-unit-converter.md | 53 -
...s.transformation.flink.processor.boilerplate.md | 49 -
...sors.transformation.jvm.booloperator.counter.md | 64 -
...ors.transformation.jvm.booloperator.inverter.md | 51 -
....transformation.jvm.booloperator.timekeeping.md | 70 -
...essors.transformation.jvm.booloperator.timer.md | 56 -
....processors.transformation.jvm.changed-value.md | 45 -
...es.processors.transformation.jvm.count-array.md | 55 -
...es.processors.transformation.jvm.csvmetadata.md | 76 -
...processors.transformation.jvm.duration-value.md | 51 -
...ansformation.jvm.processor.booloperator.edge.md | 57 -
...nsformation.jvm.processor.booloperator.state.md | 58 -
...rs.transformation.jvm.processor.state.buffer.md | 54 -
...formation.jvm.processor.state.labeler.buffer.md | 69 -
...formation.jvm.processor.state.labeler.number.md | 58 -
...formation.jvm.processor.stringoperator.state.md | 51 -
...nsformation.jvm.processor.timestampextractor.md | 58 -
...es.processors.transformation.jvm.split-array.md | 59 -
...rs.transformation.jvm.stringoperator.counter.md | 61 -
...sors.transformation.jvm.stringoperator.timer.md | 63 -
...s.processors.transformation.jvm.taskduration.md | 50 -
...sors.transformation.jvm.transform-to-boolean.md | 50 -
.../pe/org.apache.streampipes.protocol.set.file.md | 38 -
.../pe/org.apache.streampipes.protocol.set.http.md | 38 -
...che.streampipes.sinks.brokers.jvm.bufferrest.md | 58 -
...org.apache.streampipes.sinks.brokers.jvm.jms.md | 60 -
...g.apache.streampipes.sinks.brokers.jvm.kafka.md | 61 -
...rg.apache.streampipes.sinks.brokers.jvm.mqtt.md | 62 -
...rg.apache.streampipes.sinks.brokers.jvm.nats.md | 78 -
....apache.streampipes.sinks.brokers.jvm.pulsar.md | 63 -
...pache.streampipes.sinks.brokers.jvm.rabbitmq.md | 73 -
...rg.apache.streampipes.sinks.brokers.jvm.rest.md | 52 -
...org.apache.streampipes.sinks.databases.ditto.md | 73 -
...eampipes.sinks.databases.flink.elasticsearch.md | 60 -
...ache.streampipes.sinks.databases.jvm.couchdb.md | 63 -
...che.streampipes.sinks.databases.jvm.influxdb.md | 85 -
...apache.streampipes.sinks.databases.jvm.iotdb.md | 70 -
...apache.streampipes.sinks.databases.jvm.mysql.md | 74 -
...apache.streampipes.sinks.databases.jvm.opcua.md | 72 -
...e.streampipes.sinks.databases.jvm.postgresql.md | 73 -
...che.streampipes.sinks.internal.jvm.dashboard.md | 52 -
...ache.streampipes.sinks.internal.jvm.datalake.md | 85 -
....streampipes.sinks.internal.jvm.notification.md | 57 -
...he.streampipes.sinks.notifications.jvm.email.md | 67 -
...treampipes.sinks.notifications.jvm.onesignal.md | 63 -
...he.streampipes.sinks.notifications.jvm.slack.md | 67 -
...streampipes.sinks.notifications.jvm.telegram.md | 70 -
.../version-0.92.0/user-guide-first-steps.md | 209 -
.../version-0.92.0/user-guide-tour.md | 305 -
.../version-0.93.0/01_try-installation.md | 62 -
.../version-0.93.0/01_try-overview.md | 134 -
.../version-0.93.0/01_try-tutorial.md | 20 -
.../version-0.93.0/02_concepts-adapter.md | 7 -
.../version-0.93.0/02_concepts-data-streams.md | 7 -
.../version-0.93.0/02_concepts-glossary.md | 7 -
.../version-0.93.0/02_concepts-pipeline.md | 7 -
.../version-0.93.0/03_use-configurations.md | 48 -
.../version-0.93.0/03_use-connect.md | 72 -
.../version-0.93.0/03_use-data-explorer.md | 102 -
.../03_use-install-pipeline-elements.md | 9 -
.../version-0.93.0/03_use-managing-pipelines.md | 52 -
.../version-0.93.0/03_use-notifications.md | 25 -
.../version-0.93.0/03_use-pipeline-editor.md | 62 -
.../05_deploy-choosing-the-right-flavor.md | 47 -
.../version-0.93.0/05_deploy-docker.md | 104 -
.../05_deploy-environment-variables.md | 88 -
.../version-0.93.0/05_deploy-security.md | 75 -
.../version-0.93.0/05_deploy-use-ssl.md | 35 -
.../version-0.93.0/06_extend-archetypes.md | 46 -
.../versioned_docs/version-0.93.0/06_extend-cli.md | 190 -
.../version-0.93.0/06_extend-customize-ui.md | 226 -
.../version-0.93.0/06_extend-first-processor.md | 54 -
.../version-0.93.0/06_extend-sdk-event-model.md | 141 -
.../version-0.93.0/06_extend-sdk-functions.md | 127 -
.../version-0.93.0/06_extend-sdk-migration-sd.md | 116 -
.../version-0.93.0/06_extend-sdk-migrations.md | 179 -
.../06_extend-sdk-output-strategies.md | 348 -
.../06_extend-sdk-static-properties.md | 267 -
.../06_extend-sdk-stream-requirements.md | 181 -
.../version-0.93.0/06_extend-setup.md | 50 -
.../06_extend-tutorial-data-processors.md | 454 -
.../06_extend-tutorial-data-sinks.md | 272 -
.../version-0.93.0/07_technicals-architecture.md | 110 -
.../version-0.93.0/07_technicals-messaging.md | 65 -
.../07_technicals-runtime-wrappers.md | 37 -
.../version-0.93.0/07_technicals-user-guidance.md | 7 -
.../versioned_docs/version-0.93.0/08_debugging.md | 7 -
.../versioned_docs/version-0.93.0/08_monitoring.md | 7 -
.../versioned_docs/version-0.93.0/09_contribute.md | 17 -
.../versioned_docs/version-0.93.0/09_get-help.md | 25 -
.../version-0.93.0/faq-common-problems.md | 73 -
...apache.streampipes.connect.adapters.coindesk.md | 44 -
...pache.streampipes.connect.adapters.flic.mqtt.md | 59 -
...he.streampipes.connect.adapters.image.stream.md | 38 -
.../org.apache.streampipes.connect.adapters.iss.md | 39 -
...rg.apache.streampipes.connect.adapters.slack.md | 39 -
.../org.apache.streampipes.connect.adapters.ti.md | 57 -
....streampipes.connect.adapters.wikipedia.edit.md | 39 -
...e.streampipes.connect.adapters.wikipedia.new.md | 39 -
...mpipes.connect.iiot.adapters.influxdb.stream.md | 41 -
...che.streampipes.connect.iiot.adapters.iolink.md | 90 -
...streampipes.connect.iiot.adapters.netio.mqtt.md | 64 -
...streampipes.connect.iiot.adapters.netio.rest.md | 64 -
...ache.streampipes.connect.iiot.adapters.opcua.md | 76 -
...reampipes.connect.iiot.adapters.plc4x.modbus.md | 75 -
...e.streampipes.connect.iiot.adapters.plc4x.s7.md | 96 -
...apache.streampipes.connect.iiot.adapters.ros.md | 64 -
...ipes.connect.iiot.adapters.simulator.machine.md | 40 -
...treampipes.connect.iiot.protocol.stream.file.md | 38 -
...treampipes.connect.iiot.protocol.stream.http.md | 38 -
...ipes.connect.iiot.protocol.stream.httpserver.md | 38 -
...reampipes.connect.iiot.protocol.stream.kafka.md | 38 -
...treampipes.connect.iiot.protocol.stream.mqtt.md | 53 -
...treampipes.connect.iiot.protocol.stream.nats.md | 69 -
...eampipes.connect.iiot.protocol.stream.pulsar.md | 38 -
...mpipes.connect.iiot.protocol.stream.rocketmq.md | 38 -
...eampipes.connect.iiot.protocol.stream.tubemq.md | 54 -
...ssification.jvm.generic-image-classification.md | 52 -
...cessor.imageclassification.jvm.image-cropper.md | 43 -
...essor.imageclassification.jvm.image-enricher.md | 43 -
...ampipes.processor.imageclassification.qrcode.md | 68 -
...pipes.processors.changedetection.jvm.welford.md | 72 -
...e.streampipes.processors.enricher.jvm.jseval.md | 55 -
...rocessors.enricher.jvm.processor.math.mathop.md | 56 -
...ors.enricher.jvm.processor.math.staticmathop.md | 56 -
...ocessors.enricher.jvm.processor.trigonometry.md | 56 -
...eampipes.processors.enricher.jvm.valuechange.md | 52 -
...e.streampipes.processors.filters.jvm.compose.md | 50 -
...he.streampipes.processors.filters.jvm.enrich.md | 47 -
...che.streampipes.processors.filters.jvm.limit.md | 70 -
...che.streampipes.processors.filters.jvm.merge.md | 57 -
...ampipes.processors.filters.jvm.movingaverage.md | 46 -
...pipes.processors.filters.jvm.numericalfilter.md | 56 -
...s.processors.filters.jvm.numericaltextfilter.md | 67 -
...ocessors.filters.jvm.processor.booleanfilter.md | 52 -
...e.streampipes.processors.filters.jvm.project.md | 48 -
...he.streampipes.processors.filters.jvm.schema.md | 46 -
...pache.streampipes.processors.filters.jvm.sdt.md | 85 -
...treampipes.processors.filters.jvm.textfilter.md | 53 -
...streampipes.processors.filters.jvm.threshold.md | 56 -
...ampipes.processors.filters.jvm.throughputmon.md | 56 -
...cessors.geo.jvm.jts.processor.buffergeometry.md | 95 -
...processors.geo.jvm.jts.processor.bufferpoint.md | 82 -
...mpipes.processors.geo.jvm.jts.processor.epsg.md | 64 -
...ssors.geo.jvm.jts.processor.latlngtojtspoint.md | 73 -
...rocessors.geo.jvm.jts.processor.reprojection.md | 68 -
....processors.geo.jvm.jts.processor.trajectory.md | 83 -
...ors.geo.jvm.jts.processor.validation.complex.md | 86 -
...sors.geo.jvm.jts.processor.validation.simple.md | 80 -
...tlong.processor.distancecalculator.haversine.md | 61 -
...processor.distancecalculator.haversinestatic.md | 74 -
...eo.jvm.latlong.processor.geocoder.googlemaps.md | 61 -
....latlong.processor.geocoder.googlemapsstatic.md | 62 -
...vm.latlong.processor.revgeocoder.geocityname.md | 67 -
...rs.geo.jvm.latlong.processor.speedcalculator.md | 59 -
...g.apache.streampipes.processors.siddhi.count.md | 66 -
...pache.streampipes.processors.siddhi.increase.md | 65 -
....streampipes.processors.siddhi.listcollector.md | 51 -
...che.streampipes.processors.siddhi.listfilter.md | 53 -
...treampipes.processors.siddhi.numericalfilter.md | 63 -
...rg.apache.streampipes.processors.siddhi.topk.md | 53 -
...treampipes.processors.textmining.jvm.chunker.md | 69 -
...ampipes.processors.textmining.jvm.namefinder.md | 65 -
...pipes.processors.textmining.jvm.partofspeech.md | 62 -
....processors.textmining.jvm.sentencedetection.md | 59 -
...eampipes.processors.textmining.jvm.tokenizer.md | 59 -
...sors.transformation.jvm.booloperator.counter.md | 66 -
...ors.transformation.jvm.booloperator.inverter.md | 51 -
...sors.transformation.jvm.booloperator.logical.md | 42 -
....transformation.jvm.booloperator.timekeeping.md | 70 -
...essors.transformation.jvm.booloperator.timer.md | 58 -
....processors.transformation.jvm.changed-value.md | 46 -
...es.processors.transformation.jvm.count-array.md | 55 -
...es.processors.transformation.jvm.csvmetadata.md | 77 -
...processors.transformation.jvm.duration-value.md | 51 -
...s.processors.transformation.jvm.field-mapper.md | 74 -
...es.processors.transformation.jvm.fieldhasher.md | 55 -
...es.processors.transformation.jvm.fieldrename.md | 59 -
....transformation.jvm.measurementunitconverter.md | 53 -
...ansformation.jvm.processor.booloperator.edge.md | 58 -
...nsformation.jvm.processor.booloperator.state.md | 63 -
...formation.jvm.processor.state.labeler.number.md | 58 -
...formation.jvm.processor.stringoperator.state.md | 51 -
...nsformation.jvm.processor.timestampextractor.md | 58 -
...eampipes.processors.transformation.jvm.round.md | 72 -
...es.processors.transformation.jvm.split-array.md | 60 -
...rs.transformation.jvm.stringoperator.counter.md | 65 -
...sors.transformation.jvm.stringoperator.timer.md | 66 -
...s.processors.transformation.jvm.taskduration.md | 50 -
...sors.transformation.jvm.transform-to-boolean.md | 53 -
...che.streampipes.sinks.brokers.jvm.bufferrest.md | 58 -
...org.apache.streampipes.sinks.brokers.jvm.jms.md | 60 -
...g.apache.streampipes.sinks.brokers.jvm.kafka.md | 61 -
...rg.apache.streampipes.sinks.brokers.jvm.mqtt.md | 61 -
...rg.apache.streampipes.sinks.brokers.jvm.nats.md | 78 -
....apache.streampipes.sinks.brokers.jvm.pulsar.md | 63 -
...pache.streampipes.sinks.brokers.jvm.rabbitmq.md | 73 -
...rg.apache.streampipes.sinks.brokers.jvm.rest.md | 52 -
...pache.streampipes.sinks.brokers.jvm.rocketmq.md | 59 -
....apache.streampipes.sinks.brokers.jvm.tubemq.md | 61 -
...ache.streampipes.sinks.brokers.jvm.websocket.md | 52 -
...org.apache.streampipes.sinks.databases.ditto.md | 73 -
...ache.streampipes.sinks.databases.jvm.couchdb.md | 63 -
...che.streampipes.sinks.databases.jvm.influxdb.md | 85 -
...apache.streampipes.sinks.databases.jvm.iotdb.md | 91 -
...apache.streampipes.sinks.databases.jvm.opcua.md | 72 -
...e.streampipes.sinks.databases.jvm.postgresql.md | 73 -
...apache.streampipes.sinks.databases.jvm.redis.md | 87 -
...ache.streampipes.sinks.internal.jvm.datalake.md | 52 -
....streampipes.sinks.internal.jvm.notification.md | 57 -
...he.streampipes.sinks.notifications.jvm.email.md | 67 -
...treampipes.sinks.notifications.jvm.onesignal.md | 63 -
...he.streampipes.sinks.notifications.jvm.slack.md | 67 -
...streampipes.sinks.notifications.jvm.telegram.md | 70 -
.../version-0.93.0/user-guide-first-steps.md | 209 -
.../version-0.93.0/user-guide-for-quickstart.md | 134 -
.../version-0.93.0/user-guide-tour.md | 305 -
.../version-0.95.0/01_try-installation.md | 62 -
.../version-0.95.0/01_try-overview.md | 134 -
.../version-0.95.0/01_try-tutorial.md | 20 -
.../version-0.95.0/02_concepts-adapter.md | 7 -
.../version-0.95.0/02_concepts-data-streams.md | 7 -
.../version-0.95.0/02_concepts-glossary.md | 7 -
.../version-0.95.0/02_concepts-overview.md | 46 -
.../version-0.95.0/02_concepts-pipeline.md | 7 -
.../version-0.95.0/02_introduction.md | 85 -
.../version-0.95.0/03_use-connect.md | 72 -
.../version-0.95.0/03_use-dashboard.md | 66 -
.../version-0.95.0/03_use-data-explorer.md | 102 -
.../03_use-install-pipeline-elements.md | 9 -
.../version-0.95.0/03_use-managing-pipelines.md | 52 -
.../version-0.95.0/03_use-notifications.md | 25 -
.../version-0.95.0/03_use-pipeline-editor.md | 62 -
.../05_deploy-choosing-the-right-flavor.md | 47 -
.../version-0.95.0/05_deploy-docker.md | 104 -
.../version-0.95.0/05_deploy-kubernetes.md | 269 -
.../version-0.95.0/05_deploy-security.md | 75 -
.../version-0.95.0/05_deploy-use-ssl.md | 35 -
.../versioned_docs/version-0.95.0/06_extend-cli.md | 190 -
.../version-0.95.0/06_extend-client.md | 204 -
.../version-0.95.0/06_extend-customize-ui.md | 226 -
.../version-0.95.0/06_extend-first-processor.md | 54 -
.../version-0.95.0/06_extend-sdk-event-model.md | 141 -
.../version-0.95.0/06_extend-sdk-functions.md | 127 -
.../version-0.95.0/06_extend-sdk-migration-sd.md | 117 -
.../version-0.95.0/06_extend-sdk-migrations.md | 179 -
.../06_extend-sdk-output-strategies.md | 348 -
.../06_extend-sdk-static-properties.md | 267 -
.../06_extend-sdk-stream-requirements.md | 181 -
.../version-0.95.0/06_extend-setup.md | 50 -
.../version-0.95.0/06_extend-tutorial-adapters.md | 612 -
.../version-0.95.0/07_technicals-architecture.md | 110 -
.../version-0.95.0/07_technicals-messaging.md | 65 -
.../07_technicals-runtime-wrappers.md | 37 -
.../version-0.95.0/07_technicals-user-guidance.md | 7 -
.../versioned_docs/version-0.95.0/08_debugging.md | 7 -
.../versioned_docs/version-0.95.0/08_monitoring.md | 7 -
.../versioned_docs/version-0.95.0/09_contribute.md | 17 -
.../version-0.95.0/faq-common-problems.md | 73 -
...he.streampipes.connect.adapters.image.stream.md | 38 -
.../org.apache.streampipes.connect.adapters.iss.md | 39 -
...mpipes.connect.iiot.adapters.influxdb.stream.md | 41 -
...che.streampipes.connect.iiot.adapters.iolink.md | 90 -
...streampipes.connect.iiot.adapters.netio.mqtt.md | 64 -
...streampipes.connect.iiot.adapters.netio.rest.md | 64 -
...apache.streampipes.connect.iiot.adapters.oi4.md | 88 -
...ache.streampipes.connect.iiot.adapters.opcua.md | 76 -
...reampipes.connect.iiot.adapters.plc4x.modbus.md | 75 -
...e.streampipes.connect.iiot.adapters.plc4x.s7.md | 96 -
...apache.streampipes.connect.iiot.adapters.ros.md | 64 -
...ipes.connect.iiot.adapters.simulator.machine.md | 40 -
...treampipes.connect.iiot.protocol.stream.file.md | 90 -
...treampipes.connect.iiot.protocol.stream.http.md | 38 -
...ipes.connect.iiot.protocol.stream.httpserver.md | 51 -
...reampipes.connect.iiot.protocol.stream.kafka.md | 38 -
...treampipes.connect.iiot.protocol.stream.mqtt.md | 53 -
...treampipes.connect.iiot.protocol.stream.nats.md | 69 -
...eampipes.connect.iiot.protocol.stream.pulsar.md | 38 -
...mpipes.connect.iiot.protocol.stream.rocketmq.md | 38 -
...eampipes.connect.iiot.protocol.stream.tubemq.md | 54 -
...ssification.jvm.generic-image-classification.md | 52 -
...cessor.imageclassification.jvm.image-cropper.md | 43 -
...essor.imageclassification.jvm.image-enricher.md | 43 -
...ampipes.processor.imageclassification.qrcode.md | 68 -
...pipes.processors.changedetection.jvm.welford.md | 72 -
...e.streampipes.processors.enricher.jvm.jseval.md | 55 -
...rocessors.enricher.jvm.processor.math.mathop.md | 56 -
...ors.enricher.jvm.processor.math.staticmathop.md | 56 -
...ocessors.enricher.jvm.processor.trigonometry.md | 56 -
...eampipes.processors.enricher.jvm.valuechange.md | 52 -
...e.streampipes.processors.filters.jvm.compose.md | 50 -
...he.streampipes.processors.filters.jvm.enrich.md | 47 -
...che.streampipes.processors.filters.jvm.limit.md | 70 -
...che.streampipes.processors.filters.jvm.merge.md | 57 -
...ampipes.processors.filters.jvm.movingaverage.md | 46 -
...pipes.processors.filters.jvm.numericalfilter.md | 56 -
...s.processors.filters.jvm.numericaltextfilter.md | 67 -
...ocessors.filters.jvm.processor.booleanfilter.md | 52 -
...e.streampipes.processors.filters.jvm.project.md | 48 -
...he.streampipes.processors.filters.jvm.schema.md | 46 -
...pache.streampipes.processors.filters.jvm.sdt.md | 85 -
...treampipes.processors.filters.jvm.textfilter.md | 53 -
...streampipes.processors.filters.jvm.threshold.md | 56 -
...ampipes.processors.filters.jvm.throughputmon.md | 56 -
...cessors.geo.jvm.jts.processor.buffergeometry.md | 95 -
...processors.geo.jvm.jts.processor.bufferpoint.md | 82 -
...mpipes.processors.geo.jvm.jts.processor.epsg.md | 64 -
...ssors.geo.jvm.jts.processor.latlngtojtspoint.md | 73 -
...rocessors.geo.jvm.jts.processor.reprojection.md | 68 -
....processors.geo.jvm.jts.processor.trajectory.md | 83 -
...ors.geo.jvm.jts.processor.validation.complex.md | 86 -
...sors.geo.jvm.jts.processor.validation.simple.md | 80 -
...tlong.processor.distancecalculator.haversine.md | 61 -
...processor.distancecalculator.haversinestatic.md | 74 -
...eo.jvm.latlong.processor.geocoder.googlemaps.md | 61 -
....latlong.processor.geocoder.googlemapsstatic.md | 62 -
...vm.latlong.processor.revgeocoder.geocityname.md | 67 -
...rs.geo.jvm.latlong.processor.speedcalculator.md | 59 -
...g.apache.streampipes.processors.siddhi.count.md | 66 -
...pache.streampipes.processors.siddhi.increase.md | 65 -
....streampipes.processors.siddhi.listcollector.md | 51 -
...che.streampipes.processors.siddhi.listfilter.md | 53 -
...treampipes.processors.siddhi.numericalfilter.md | 63 -
...rg.apache.streampipes.processors.siddhi.topk.md | 53 -
...treampipes.processors.textmining.jvm.chunker.md | 69 -
...ampipes.processors.textmining.jvm.namefinder.md | 65 -
...pipes.processors.textmining.jvm.partofspeech.md | 62 -
....processors.textmining.jvm.sentencedetection.md | 59 -
...eampipes.processors.textmining.jvm.tokenizer.md | 59 -
...sors.transformation.jvm.booloperator.counter.md | 66 -
...ors.transformation.jvm.booloperator.inverter.md | 51 -
...sors.transformation.jvm.booloperator.logical.md | 42 -
....transformation.jvm.booloperator.timekeeping.md | 70 -
...essors.transformation.jvm.booloperator.timer.md | 58 -
....processors.transformation.jvm.changed-value.md | 46 -
...es.processors.transformation.jvm.count-array.md | 55 -
...es.processors.transformation.jvm.csvmetadata.md | 77 -
...pipes.processors.transformation.jvm.datetime.md | 78 -
...processors.transformation.jvm.duration-value.md | 51 -
...s.processors.transformation.jvm.field-mapper.md | 74 -
...es.processors.transformation.jvm.fieldhasher.md | 55 -
...es.processors.transformation.jvm.fieldrename.md | 59 -
....transformation.jvm.measurementunitconverter.md | 53 -
...ansformation.jvm.processor.booloperator.edge.md | 58 -
...nsformation.jvm.processor.booloperator.state.md | 63 -
...formation.jvm.processor.state.labeler.number.md | 58 -
....transformation.jvm.processor.staticmetadata.md | 74 -
...formation.jvm.processor.stringoperator.state.md | 51 -
...nsformation.jvm.processor.timestampextractor.md | 58 -
...eampipes.processors.transformation.jvm.round.md | 72 -
...es.processors.transformation.jvm.split-array.md | 60 -
...rs.transformation.jvm.stringoperator.counter.md | 65 -
...sors.transformation.jvm.stringoperator.timer.md | 66 -
...s.processors.transformation.jvm.taskduration.md | 50 -
...sors.transformation.jvm.transform-to-boolean.md | 53 -
...che.streampipes.sinks.brokers.jvm.bufferrest.md | 58 -
...org.apache.streampipes.sinks.brokers.jvm.jms.md | 60 -
...g.apache.streampipes.sinks.brokers.jvm.kafka.md | 61 -
...rg.apache.streampipes.sinks.brokers.jvm.mqtt.md | 61 -
...rg.apache.streampipes.sinks.brokers.jvm.nats.md | 78 -
....apache.streampipes.sinks.brokers.jvm.pulsar.md | 63 -
...pache.streampipes.sinks.brokers.jvm.rabbitmq.md | 73 -
...rg.apache.streampipes.sinks.brokers.jvm.rest.md | 52 -
...pache.streampipes.sinks.brokers.jvm.rocketmq.md | 59 -
....apache.streampipes.sinks.brokers.jvm.tubemq.md | 61 -
...ache.streampipes.sinks.brokers.jvm.websocket.md | 52 -
...org.apache.streampipes.sinks.databases.ditto.md | 73 -
...ache.streampipes.sinks.databases.jvm.couchdb.md | 63 -
...che.streampipes.sinks.databases.jvm.influxdb.md | 85 -
...apache.streampipes.sinks.databases.jvm.iotdb.md | 91 -
...apache.streampipes.sinks.databases.jvm.opcua.md | 65 -
...e.streampipes.sinks.databases.jvm.postgresql.md | 73 -
...apache.streampipes.sinks.databases.jvm.redis.md | 87 -
...ache.streampipes.sinks.internal.jvm.datalake.md | 68 -
....streampipes.sinks.internal.jvm.notification.md | 63 -
...he.streampipes.sinks.notifications.jvm.email.md | 73 -
....streampipes.sinks.notifications.jvm.msteams.md | 86 -
...treampipes.sinks.notifications.jvm.onesignal.md | 63 -
...he.streampipes.sinks.notifications.jvm.slack.md | 66 -
...streampipes.sinks.notifications.jvm.telegram.md | 70 -
.../version-0.95.0/user-guide-first-steps.md | 209 -
.../version-0.95.0/user-guide-for-quickstart.md | 134 -
...apache.streampipes.connect.iiot.adapters.oi4.md | 2 +-
...onnect.iiot.adapters.plc4x.generic.knxnet-ip.md | 6 +-
...ipes.connect.iiot.protocol.stream.httpserver.md | 3 +-
...che.streampipes.processors.filters.jvm.merge.md | 4 +-
...tlong.processor.distancecalculator.haversine.md | 6 +-
...treampipes.processors.siddhi.numericalfilter.md | 4 +-
...nsformation.jvm.processor.booloperator.state.md | 2 +-
.../version-0.95.1/user-guide-first-steps.md | 3 +-
...apache.streampipes.connect.iiot.adapters.oi4.md | 2 +-
...onnect.iiot.adapters.plc4x.generic.knxnet-ip.md | 6 +-
...ipes.connect.iiot.protocol.stream.httpserver.md | 3 +-
...che.streampipes.processors.filters.jvm.merge.md | 4 +-
...tlong.processor.distancecalculator.haversine.md | 6 +-
...treampipes.processors.siddhi.numericalfilter.md | 4 +-
...nsformation.jvm.processor.booloperator.state.md | 2 +-
.../version-0.97.0/user-guide-first-steps.md | 3 +-
...apache.streampipes.connect.iiot.adapters.oi4.md | 2 +-
...onnect.iiot.adapters.plc4x.generic.knxnet-ip.md | 6 +-
...ipes.connect.iiot.protocol.stream.httpserver.md | 3 +-
...che.streampipes.processors.filters.jvm.merge.md | 4 +-
...tlong.processor.distancecalculator.haversine.md | 6 +-
...treampipes.processors.siddhi.numericalfilter.md | 4 +-
...nsformation.jvm.processor.booloperator.state.md | 2 +-
.../version-0.98.0/user-guide-first-steps.md | 3 +-
.../version-0.91.0-sidebars.json | 213 -
.../version-0.92.0-sidebars.json | 213 -
.../version-0.93.0-sidebars.json | 219 -
.../version-0.95.0-sidebars.json | 203 -
.../version-0.95.1-sidebars.json | 462 +-
.../version-0.97.0-sidebars.json | 442 +-
.../version-0.98.0-sidebars.json | 444 +-
website-v2/versions.json | 6 +-
821 files changed, 15811 insertions(+), 61838 deletions(-)
diff --git a/docs/01_try-overview.md b/docs/01_overview.md
similarity index 100%
rename from docs/01_try-overview.md
rename to docs/01_overview.md
diff --git a/docs/01_try-installation.md b/docs/01_try-installation.md
deleted file mode 100644
index bd92e48e9..000000000
--- a/docs/01_try-installation.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-id: try-installation
-title: Installation
-sidebar_label: Installation
----
-
-import DownloadSection from '@site/src/components/download/DownloadSection.tsx';
-
-The easiest way to install StreamPipes is our Docker-based installation. For production-grade deployments, we also
-recommend looking at our Kubernetes support, which is also part of the installation kit.
-
-## Prerequisites
-
-The Docker-based installation requires **Docker** and **Docker Compose** to be installed on the target machine.
-Installation instructions can be found below.
-
-:::info Install Docker
-Go to https://docs.docker.com/installation/ and follow the instructions to install Docker for your OS. Make sure
-docker can be started as a non-root user (described in the installation manual, don’t forget to log out and in
-again) and check that Docker is installed correctly by executing docker-run hello-world
-:::
-
-### Supported operating systems
-
-The Docker-based installation supports the operating systems **Linux**, **Mac OS X** and **Windows 10 upwards**. Older windows
-versions are not fully compatible with Docker. Linux VMs running under Windows might cause network problems with Docker,
-therefore some manual work might be needed to make StreamPipes run properly.
-
-### Web Browser
-
-The StreamPipes application itself will be accessible through a web browser. We recommend a recent version of Chrome (
-best experience), Firefox or Edge.
-
-## Install StreamPipes
-
-<DownloadSection version={'0.98.0'} releaseDate={'2025-12-15'}></DownloadSection>
-
-## Setup StreamPipes
-
-Once you've opened the browser at the URL given above, you should see the StreamPipes application as shown below. At
-initial startup, StreamPipes automatically performs an installation process.
-After the installation has finished, continue by clicking on "Go to login
-page", once all components are successfully configured.
-
-On the login page, enter your credentials, then you should be forwarded to the home page.
-
-Congratulations! You've successfully managed to install StreamPipes. Now we're ready to build our first pipeline!
-
-<div class="my-carousel docs-carousel">
- <img src="/img/01_try-installation/04_home.png" alt="Home page"/>
-</div>
-
-:::danger Errors during the installation process
-In most cases, errors during the installation are due to an under-powered system.
-If there is a problem with any of the components, please restart the whole system (`docker-compose
-down` and eventually also delete the volumes).
-Please also make sure that you've assigned enough memory available to Docker.
-:::
-
-## Next Steps
-
-That's it! Have a look at the usage guide to learn how to use Apache StreamPipes.
diff --git a/docs/01_try-tutorial.md b/docs/01_try-tutorial.md
deleted file mode 100644
index c13d6f1dc..000000000
--- a/docs/01_try-tutorial.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-id: try-tutorial
-title: Interactive Tutorial
-sidebar_label: Interactive Tutorial
----
-
-Once you've installed StreamPipes and see the home screen, you'll see a number of modules that are part of the StreamPipes toolbox.
-As a first step, you might be interested in taking the interactive tutorial that helps you create your first pipeline.
-Switch to the **Pipeline Editor** and you will see a dialog that asks you for the start of the interactive tutorial:
-
-<img className="docs-image" src="/img/01_try-tutorial/01_tutorial-welcome.png" alt="Tutorial Welcome Page"/>
-
-Click **Start Tour** to start the tour. In this tour, you'll build a simple pipeline that monitors (simulated) live data from a water tank system.
-Within the tour, perform the actions as recommended and click **Next** to trigger the next steps. Some tour steps won't require to select **Next**, but wait for you to take the recommended action.
-You can cancel the tour anytime by clicking the **Exit Tour** button.
-
-<img className="docs-image" src="/img/01_try-tutorial/02_tutorial-process.png" alt="Tutorial Welcome Page"/>
-
-Now after you've built your first pipeline, you might be interested in reading about some of our core [concepts](concepts-overview)
-
diff --git a/docs/02_concepts-adapter.md b/docs/02_concepts-adapter.md
deleted file mode 100644
index a94c38268..000000000
--- a/docs/02_concepts-adapter.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: concepts-adapter
-title: Data Adapters
-sidebar_label: Data Adapters
----
-
-tbd
diff --git a/docs/02_concepts-data-streams.md b/docs/02_concepts-data-streams.md
deleted file mode 100644
index 329f9b908..000000000
--- a/docs/02_concepts-data-streams.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: concepts-data-streams
-title: Data Streams
-sidebar_label: Data Streams
----
-
-tbd
\ No newline at end of file
diff --git a/docs/02_concepts-glossary.md b/docs/02_concepts-glossary.md
deleted file mode 100644
index b401d1829..000000000
--- a/docs/02_concepts-glossary.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: concepts-glossary
-title: Glossary
-sidebar_label: Glossary
----
-
-tbd
\ No newline at end of file
diff --git a/docs/02_concepts-overview.md b/docs/02_concepts-overview.md
deleted file mode 100644
index f26f3cc07..000000000
--- a/docs/02_concepts-overview.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-id: concepts-overview
-title: StreamPipes Concepts
-sidebar_label: Overview
----
-
-To understand how StreamPipes works, it is helpful to understand a few core concepts, which are illustrated below.
-These encompass the entire data journey within StreamPipes: Starting with data collection ([adapters](#adapter)),
-through data exchange ([data streams](#data-stream)) and data processing ([data processors](#data-processor) and [pipelines](#pipeline)),
-to data persistence and distribution ([data sinks](#data-sink)).
-
-<img src="/img/02_concepts-overview/components-overview.png" alt="Overview of concepts"/>
-
-## Adapter
-An adapter connects to any external data source (e.g., OPC-UA, MQTT, S7 PLC, Modbus) and forwards the events it receives to the internal StreamPipes system.
-Adapters can either be created by using a predefined adapter for a data source available in our marketplace [StreamPipes Connect](./03_use-connect.md).
-An overview of all available adapters can be found under the menu bar **📚 Pipeline Elements**.
-When you select one of these adapters, you can easily connect to the data source using an intuitive and convenient UI dialog (see the Connect section for more details).
-Alternatively, you can define your own adapter by [using the provided Software Development Kit (SDK)](./06_extend-tutorial-adapters.md).
-Creating an adapter is always the first step when you want to get data into StreamPipes and process it further.
-
-## Data Stream
-**Data streams** are the primary source for working with events in StreamPipes.
-A stream is an ordered sequence of events, where an event typically consists of one or more observation values and additional metadata.
-The `structure` (or `schema` as we call it) of an event provided by a data stream is stored in StreamPipes' internal semantic schema registry.
-Data streams are primarily created by adapters, but can also be created by a [StreamPipes Function](./06_extend-sdk-functions.md).
-
-## Data Processor
-**Data processors** in StreamPipes transform one or more input streams into an output stream.
-Such transformations can be simple, such as filtering based on a predefined rule, or more complex, such as applying rule-based or learning-based algorithms to the data.
-Data processors can be applied to any data stream that meets the input requirements of a processor.
-In addition, most processors can be configured by providing custom parameters directly in the user interface.
-Processing elements define stream requirements, which are a set of minimum characteristics that an incoming event stream must provide.
-Data processors can maintain state or perform stateless operations.
-
-## Data Sink
-**Data sinks** consume event streams similar to data processors, but do not provide an output data stream.
-As such, data sinks typically perform some action or trigger a visualization as a result of a stream transformation.
-Similar to data processors, sinks also require the presence of specific input requirements from each bound data stream and can be customized.
-StreamPipes provides several internal data sinks, for example, to generate notifications, visualize live data, or persist historical data from incoming streams.
-In addition, StreamPipes provides several data sinks to forward data streams to external systems such as databases.
-
-## Pipeline
-A pipeline in Apache StreamPipes describes the transformation process from a data stream to a data sink.
-Typically, a pipeline consists of at least one data stream, zero or more data processors, and at least one data sink.
-Pipelines are created graphically by users using the [Pipeline Editor](./03_use-pipeline-editor.md) and can be started and stopped at any time.
diff --git a/docs/02_concepts-pipeline.md b/docs/02_concepts-pipeline.md
deleted file mode 100644
index 3d2c5369b..000000000
--- a/docs/02_concepts-pipeline.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: concepts-pipelines
-title: Pipelines
-sidebar_label: Pipelines
----
-
-tbd
\ No newline at end of file
diff --git a/docs/02_introduction.md b/docs/02_introduction.md
deleted file mode 100644
index 6dc71b384..000000000
--- a/docs/02_introduction.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-id: introduction
-title: Introduction
-sidebar_label: Introduction
----
-
-## What is StreamPipes?
-
-Apache StreamPipes is a self-service Industrial IoT toolbox to enable non-technical users to connect, analyze and
-explore IoT data streams. The main goal of StreamPipes is to help users bridging the gap between operational
-technology (OT) and information technology (IT). This is achieved by providing a set of tools which help to make
-industrial data accessible for downstream tasks such as data analytics and condition monitoring.
-When working with industrial data and especially when building upon an open source stack for such tasks, users are often
-faced with the management and integration of a variety of different tools for data connectivity, messaging &
-integration, data enrichment, data storage, visualization and analytics. This results in an increasing operational
-complexity and hardly manageable software stacks.
-
-Apache StreamPipes addresses this problem: It provides a complete toolbox with a variety of different tools to easily
-gather data from OT systems such as Programmatic Logic Controllers (PLCs), industrial protocols (e.g., OPC-UA or
-Modbus), IT protocols (e.g., MQTT) and others. Data is integrated in the form of live data streams. Based on connected
-data, StreamPipes provides another module called the pipeline editor, which can be used to apply real-time analytics
-algorithms on connected data stream. To this end, a library of pre-defined algorithms can be used. Out of the box,
-StreamPipes provides more than 100 pipeline elements tailored at manufacturing data analytics. This includes simple
-rule-based algorithms (e.g., flank detection, peak detection, boolean timers), as well as the possibility to integrate
-more sophisticated ML-based algorithms. Finally, the pipeline editor allows to integrate with third-party systems by
-using a variety of data sinks (e.g., to forward data to messaging brokers such as Apache Kafka, MQTT or RocketMQ, to
-store data in databases such as PostgreSQL or Redis or to trigger notifications). Besides pipelines, an included data
-explorer allows to visually analyze industrial IoT data. For this purpose, a number of visualizations are integrated
-that allow non-technical users to quickly get first insights. Examples are correlations between several sensor values,
-value heatmaps, distributions or time-series visualizations. Further tools include a dashboard used for real-time
-monitoring, e.g., for visualizing live KPIs at shopfloor level.
-
-But StreamPipes is much more than just the user interface and an orchestration system for pipelines: It can be used as a
-whole developer platform for Industrial IoT application. Apache StreamPipes is made for extensibility - it provides
-several extension points, which allow the definition of custom algorithms, additional interfaces to third-party tools
-and proprietary data sources.
-
-StreamPipes includes developer support for Java and Python, making it easy to integrate custom-trained machine learning
-models into the data processing environment. With the built-in Python support, it is also possible to run online machine
-learning methods directly on data streams gathered by StreamPipes.
-
-## Where does StreamPipes help?
-
-Being positioned in the industrial IoT domain, the overall goal of StreamPipes is to help manufacturing companies to
-quickly build up an industrial IoT infrastructure and to analyse IIoT data without the need for manual programming.
-Oftentimes, StreamPipes is compared to other tools in this area such as Node-RED for visually wiring of pipelines, which
-is often used together with Grafana for data visualization and InfluxDB for time-series storage. The disadvantage of
-such architectures is the system complexity beyond the first prototype, especially when it comes to production
-deployments. Maintaining and securing multiple software instances is often a hard task requiring for substantial
-development effort. In addition, implementing single-sign-on and providing a unified user experience is another hurdle.
-This is where StreamPipes, as a single integrated tool with production-critical features such as access and role
-management, provides many advantages.
-StreamPipes has already a wide user range from the manufacturing domain. It helps users to quickly do the first steps
-related to industrial analytics but can also be used for monitoring whole production facilities, analysing data streams
-from multiple plants and sensors in real time using the integrated algorithm toolbox. Customization to individual use
-cases is easy due to several extension points:
-
-* Software development kit for adapters, data processors and sinks: The functionality of StreamPipes can be extending by
- using the integrated SDK. For instance, it is possible to integrate custom-tailored algorithms for proprietary sensors
- or models into the toolbox. Additional algorithms and data sinks can be installed at runtime.
-* Additional user interface plugins: StreamPipes allows to extend the default installation with additional UI views,
- making use of a micro frontend approach. For instance, users can extend the system with custom-tailored views for a
- specific machine or plant. Developers can use a platform API to communicate with the core StreamPipes instance.
-* UI customization: To ensure a consistent look and feel, StreamPipes can be customized to the company’s corporate
- identity.
-
-## How does StreamPipes technically work in a nutshell?
-
-
-<img className="docs-image docs-image-no-shadow" src="/img/architecture/streampipes-architecture-components.png" alt="Overview StreamPipes Architecture"/>
-
-
-To foster extensibility, Apache StreamPipes is based on a microservice architecture as illustrated above. The main
-services provided or used by StreamPipes are the a) user interface, b) the core, c) a time-series storage, d) a
-publish/subscribe messaging layer and e) extensions services. Adapters are created over the user interface using an
-intuitive configuration wizard and connect to the underlying source systems. Raw events coming from adapters can be
-pre-processed (e.g., measurement unit conversions or datatype conversions). Afterwards, events are sent to the message
-broker, which is the central backbone to provide IIoT data to internal and external applications.
-
-Besides adapters, extensions microservices can also integrate additional business logic in form of data processors and
-data sinks. StreamPipes comes with over 100 built-in processors and sinks, covering basic use cases out-of-the-box. The StreamPipes core cares about orchestration of these pipeline elements and communicates with the user
-interface. In addition, a time-series storage ensures persistence and can be used by any extensions service to write
-data into the internal storage. The StreamPipes core provides a query interface to access historical data, which is, for
-instance, used by the data explorer UI component. The user interface itself provides several built-in modules but can
-also be extended with additional micro frontends.
diff --git a/website-v2/versioned_docs/version-0.95.0/user-guide-tour.md b/docs/02_quick-start-guide.md
similarity index 82%
rename from website-v2/versioned_docs/version-0.95.0/user-guide-tour.md
rename to docs/02_quick-start-guide.md
index a6ae2f8ff..4a006e8e7 100644
--- a/website-v2/versioned_docs/version-0.95.0/user-guide-tour.md
+++ b/docs/02_quick-start-guide.md
@@ -1,9 +1,84 @@
---
-id: user-guide-tour
-title: Tour
-sidebar_label: Tour
+id: quick-start-guide
+title: Quick Start Guide
+sidebar_label: "🚀 Quick Start Guide"
---
+import DownloadSection from '@site/src/components/download/DownloadSection.tsx';
+
+The easiest way to install StreamPipes is our Docker-based installation. For production-grade deployments, we also
+recommend looking at our Kubernetes support, which is also part of the installation kit.
+
+## Prerequisites
+
+The Docker-based installation requires **Docker** and **Docker Compose** to be installed on the target machine.
+Installation instructions can be found below.
+
+:::info Install Docker
+Go to https://docs.docker.com/installation/ and follow the instructions to install Docker for your OS. Make sure
+docker can be started as a non-root user (described in the installation manual, don’t forget to log out and in
+again) and check that Docker is installed correctly by executing docker-run hello-world
+:::
+
+### Supported operating systems
+
+The Docker-based installation supports the operating systems **Linux**, **Mac OS X** and **Windows 10 upwards**. Older windows
+versions are not fully compatible with Docker. Linux VMs running under Windows might cause network problems with Docker,
+therefore some manual work might be needed to make StreamPipes run properly.
+
+### Web Browser
+
+The StreamPipes application itself will be accessible through a web browser. We recommend a recent version of Chrome (
+best experience), Firefox or Edge.
+
+## Install StreamPipes
+
+<DownloadSection version={'0.98.0'} releaseDate={'2025-12-15'}></DownloadSection>
+
+## Setup StreamPipes
+
+Once you've opened the browser at the URL given above, you should see the StreamPipes application as shown below. At
+initial startup, StreamPipes automatically performs an installation process.
+After the installation has finished, continue by clicking on "Go to login
+page", once all components are successfully configured.
+
+On the login page, enter your credentials, then you should be forwarded to the home page.
+
+Congratulations! You've successfully managed to install StreamPipes. Now we're ready to build our first pipeline!
+
+<div class="my-carousel docs-carousel">
+ <img src="/img/01_try-installation/04_home.png" alt="Home page"/>
+</div>
+
+:::danger Errors during the installation process
+In most cases, errors during the installation are due to an under-powered system.
+If there is a problem with any of the components, please restart the whole system (`docker-compose
+down` and eventually also delete the volumes).
+Please also make sure that you've assigned enough memory available to Docker.
+:::
+
+## Tutorial
+
+Once you've installed StreamPipes and see the home screen, you'll see a number of modules that are part of the StreamPipes toolbox.
+As a first step, you might be interested in taking the interactive tutorial that helps you create your first pipeline.
+Switch to the **Pipeline Editor** and you will see a dialog that asks you for the start of the interactive tutorial:
+
+<img className="docs-image" src="/img/01_try-tutorial/01_tutorial-welcome.png" alt="Tutorial Welcome Page"/>
+
+Click **Start Tour** to start the tour. In this tour, you'll build a simple pipeline that monitors (simulated) live data from a water tank system.
+Within the tour, perform the actions as recommended and click **Next** to trigger the next steps. Some tour steps won't require to select **Next**, but wait for you to take the recommended action.
+You can cancel the tour anytime by clicking the **Exit Tour** button.
+
+<img className="docs-image" src="/img/01_try-tutorial/02_tutorial-process.png" alt="Tutorial Welcome Page"/>
+
+Now after you've built your first pipeline, you might be interested in reading about some of our core [concepts](concepts-overview)
+
+
+## Next Steps
+
+That's it! Have a look at the usage guide to learn how to use Apache StreamPipes.
+
+
StreamPipes is a framework that enables domain experts to model and execute stream processing pipelines in a big data infrastructure.
The graphical user interface of StreamPipes is a web application that provides an easy to use solution for domain experts.
In this page, an overview of the many features of StreamPipes is given. We will tour through all features and explain what they do and how users can interact with them.
@@ -11,7 +86,7 @@ In this page, an overview of the many features of StreamPipes is given. We will
First of all, a user needs to log in to the system.
The credentials for the user are specified during the installation process.
-
+
## Home
After logging in, the user is redirected on to the home page.
@@ -45,7 +120,7 @@ The installation of pipeline elements is explained later in section [Install Pip
<img src="/img/features_0_62_0/editor/1_PipelineEditor_DataSets.png" alt="Data Sets"/>
</div>
-There are multiple ways to search for a pipeline element.
+There are multiple ways to search for a pipeline element.
The easiest way is to enter a search term in the search field on the top left corner.
The system filters the elements according to the search term and only presents the relevant ones.
Another way is to select one of the categories from the drop down menu.
@@ -79,7 +154,7 @@ When the user tries to connect two elements that are not compatible, the system
The example illustrated below shows such a case. The user tried to connect a text filter to a light sensor.
This is not possible since the text filter processing element requires at least one event property of type string, which is not provided by the light sensor.
-
+
To further improve the usability, multiple ways are available to connect new elements besides the drag and drop option.
Each processing element has multiple short-cut buttons to connect it with another element.
@@ -92,7 +167,7 @@ Each element can also be re-configured at a later point in time using the config
There is one important aspect about re-configuration of pipeline elements you need to be aware of: Only elements that are not yet connected to another element can be modified.
The reason for this behaviour is that some of the following elements might rely on the configuration of previous elements.
This way it is ensured that the user can not change the behaviour of the pipeline by accident.
-
+
<div class="my-carousel">
<img src="/img/features_0_62_0/editor/11_shortcut_buttons.png" alt="Shortcut Buttons"/>
@@ -106,7 +181,7 @@ Especially for larger pipelines, the auto layout button in the editor menu might
With this button, the pipeline will be beautifully aligned in the editor, helping users to get a better overview of the complete pipeline.
On the top left corner of the editor, the 'save' button can be found.
After the modelling of the pipeline is done, use this button to save and execute the pipeline.
-A save dialogue pops up when clicking the save button.
+A save dialogue pops up when clicking the save button.
The pipeline title must be entered and an additional description can be provided.
It is recommended to always provide a description, because it makes it easier for other users to understand the meaning of the pipeline.
In the save menu, the user can either just store the pipeline configuration or store it and immediately start the pipeline.
@@ -212,7 +287,7 @@ All files stored on the server can be downloaded via the download button.
If the files are not longer needed, they can be deleted by clicking the delete button.
This will remove the file from the server.
Since data is stored in Elasticsearch anyways. it is recommended not to store the files for a longer period of time on the server.
-When a file is needed again at a later point in time it is easy to create it again.
+When a file is needed again at a later point in time it is easy to create it again.
This way a lot of disk space on the server can be saved, especially when the files are rather large.
<div class="my-carousel">
@@ -257,7 +332,7 @@ This can be done in the "Install Pipeline Elements" view.
All available pipeline elements are shown here and can be selected to install or uninstall.
It is also possible to select multiple or all of them and then install them all together.
When a new element is installed by the user it is automatically available in the "Pipeline Editor" and can be used for pipelines.
-Elements that are uninstalled are removed from the system.
+Elements that are uninstalled are removed from the system.
They can not longer be used within pipelines.
<div class="my-carousel">
@@ -288,7 +363,7 @@ Once a container is registered it is represented in the configuration view.
The green dot on the top left indicates that tha container is running properly.
When there is a problem with a container the green dot changes to red and the user knows there is a problem.
To configure the parameters the top right arrow of a configuration box must be clicked.
-Then the configuration menu pops up.
+Then the configuration menu pops up.
Within there it is possible to change the parameters of a service.
To make the changes persistent the "Update" button must be clicked.
A user should keep in mind that sometimes it is necessary to restart a container when the parameters are changed.
diff --git a/website-v2/versioned_docs/version-0.92.0/07_technicals-architecture.md b/docs/03_concepts-architecture.md
similarity index 53%
rename from website-v2/versioned_docs/version-0.92.0/07_technicals-architecture.md
rename to docs/03_concepts-architecture.md
index 9a4dfbdf6..1c1651b78 100644
--- a/website-v2/versioned_docs/version-0.92.0/07_technicals-architecture.md
+++ b/docs/03_concepts-architecture.md
@@ -1,5 +1,5 @@
---
-id: technicals-architecture
+id: concepts-architecture
title: Architecture
sidebar_label: Architecture
---
@@ -25,7 +25,7 @@ Multiple extension services can be part of a single StreamPipes installation.
Each service might provide its own set of extensions. Extensions services register at the StreamPipes Core at startup. Users are able to install all or a subset of extensions of each service.
This allows StreamPipes to be extended at runtime by starting a new service with additional extensions.
-Extensions can be built using the SDK (see [Extending StreamPipes](06_extend-setup.md)).
+Extensions can be built using the SDK (see [Extending StreamPipes](07_extend-setup.md)).
Extensions services can be provided either in Java or in Python.
:::info
@@ -107,4 +107,94 @@ StreamPipes also supports arrays and nested structures, although we recommend us
+## Architecture
+
+To exchange messages at runtime between individual [Extensions Services](07_technicals-architecture.md), StreamPipes uses external messaging systems.
+This corresponds to an event-driven architecture with a central message broker and decoupled services which consume and produce events from the messaging system.
+
+There are many different open source messaging systems on the market, which each have individual strengths.
+To provide a flexible system which matches different needs, StreamPipes can be configured to use various messaging systems.
+
+## Supported messaging systems
+
+The following messaging systems are currently supported:
+
+* Apache Kafka
+* Apache Pulsar
+* MQTT
+* NATS
+
+## Configure StreamPipes to use another messaging system
+
+Configuring StreamPipes for one of these messaging system is an installation-time configuration.
+We currently do not recommend to change the configuration at runtime.
+
+The protocol can be configured with the environment variable `SP_PRIORITIZED_PROTOCOL` assigned to the core with one of the following values:
+
+```bash
+SP_PRIORITIZED_PROTOCOL=kafka # Use Kafka as protocol
+SP_PRIORITIZED_PROTOCOL=pulsar # Use Pulsar as protocol
+SP_PRIORITIZED_PROTOCOL=mqtt # Use MQTT as protocol
+SP_PRIORITIZED_PROTOCOL=nats # Use NATS as protocol
+```
+
+Note that each extension service can support an arbitrary number of protocols. For instance, you can have a lightweight extension service which only supports NATS, but have another, cloud-centered service which supports Kafka, both registered at the Core.
+To select a protocol when multiple protocols are supported by two pipeline elements, StreamPipes selects a protocol based on a priority, which can be configured in the [Configuration View](06_configure-operate-general-settings.md).
+StreamPipes ensures that only pipeline elements which have a commonly supported protocol can be connected.
+
+Note that you might need to change the installation files. For the `Docker-Compose` based installation, we provide various compose file for different messaging setups. For the `Kubernetes` installation, we provide variables which can be set in the helm chart's `values.yaml` file.
+
+### Configure broker addresses
+
+By default, StreamPipes assumes that the messaging system is started from its own environment, e.g., the system configured in the selected `Docker-Compose` file.
+
+Besides that, it is also possible to let StreamPipes connect to an externally provided messaging system. For this purpose, various environment variables exist.
+
+* `SP_PRIORITIZED_PROTOCOL` to set the prioritized protocol to either `kafka`, `mqtt`, `nats` or `pulsar`
+
+* `SP_KAFKA_HOST`, `SP_KAFKA_PORT` to configure Kafka access
+* `SP_MQTT_HOST`, `SP_MQTT_PORT` to configure MQTT access
+* `SP_NATS_HOST`, `SP_NATS_PORT` to configure NATS access
+* `SP_PULSAR_URL` to configure Pulsar access
+
+
+Most settings can also be set in the UI under `Settings->Messaging`.
+
+:::warning Installation-time configurations
+Although it is currently possible to change messaging settings in the user interface, we do not support dynamic modification of messaging systems.
+Choosing a proper system is considered an installation-time setting which should not be changed afterwards.
+Already existing Adapters and pipeline elements are not properly updated after changes of the messaging layer.
+:::
+
+
+## Overview
+
+In general, StreamPipes has an exchangeable runtime layer, e.g., the actual processing of incoming events can be delegated to a third-party stream processing system such as Kafka Streams or Apache Flink.
+
+The default runtime wrapper is the StreamPipes Native Wrapper, called the `StandaloneWrapper`.
+
+Although not recommended for production, we invite interested developers to check out our experimental wrappers:
+
+* Kafka Streams runtime wrapper at [https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-kafka-streams](https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-kafka-streams)
+* Apache Flink runtime wrapper at [https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-flink](https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-flink)
+
+## Assigning a runtime wrapper to an extension service
+
+Runtime wrappers can be assigned in the `Service Definition` of the `Init` class of an extension service:
+
+```java
+
+ @Override
+ public SpServiceDefinition provideServiceDefinition(){
+ return SpServiceDefinitionBuilder.create("org.apache.streampipes.extensions.all.jvm",
+ "StreamPipes Extensions (JVM)",
+ "",8090)
+ ...
+ .registerRuntimeProvider(new StandaloneStreamPipesRuntimeProvider())
+ ...
+ .build();
+ }
+
+```
+Please let us know through our communication channels if you are interested in this feature and if you are willing to contribute!
diff --git a/website-v2/versioned_docs/version-0.93.0/02_introduction.md b/docs/03_concepts-introduction.md
similarity index 99%
rename from website-v2/versioned_docs/version-0.93.0/02_introduction.md
rename to docs/03_concepts-introduction.md
index 6dc71b384..5b845ebfe 100644
--- a/website-v2/versioned_docs/version-0.93.0/02_introduction.md
+++ b/docs/03_concepts-introduction.md
@@ -1,5 +1,5 @@
---
-id: introduction
+id: concepts-introduction
title: Introduction
sidebar_label: Introduction
---
diff --git a/website-v2/versioned_docs/version-0.93.0/02_concepts-overview.md b/docs/03_concepts-terms.md
similarity index 91%
rename from website-v2/versioned_docs/version-0.93.0/02_concepts-overview.md
rename to docs/03_concepts-terms.md
index f26f3cc07..e85ec995a 100644
--- a/website-v2/versioned_docs/version-0.93.0/02_concepts-overview.md
+++ b/docs/03_concepts-terms.md
@@ -1,7 +1,7 @@
---
-id: concepts-overview
-title: StreamPipes Concepts
-sidebar_label: Overview
+id: concepts-terms
+title: Terms
+sidebar_label: Terms
---
To understand how StreamPipes works, it is helpful to understand a few core concepts, which are illustrated below.
@@ -13,17 +13,17 @@ to data persistence and distribution ([data sinks](#data-sink)).
## Adapter
An adapter connects to any external data source (e.g., OPC-UA, MQTT, S7 PLC, Modbus) and forwards the events it receives to the internal StreamPipes system.
-Adapters can either be created by using a predefined adapter for a data source available in our marketplace [StreamPipes Connect](./03_use-connect.md).
+Adapters can either be created by using a predefined adapter for a data source available in our marketplace [StreamPipes Connect](04_use-connect.md).
An overview of all available adapters can be found under the menu bar **📚 Pipeline Elements**.
When you select one of these adapters, you can easily connect to the data source using an intuitive and convenient UI dialog (see the Connect section for more details).
-Alternatively, you can define your own adapter by [using the provided Software Development Kit (SDK)](./06_extend-tutorial-adapters.md).
+Alternatively, you can define your own adapter by [using the provided Software Development Kit (SDK)](05_how-to-custom-adapter.md).
Creating an adapter is always the first step when you want to get data into StreamPipes and process it further.
## Data Stream
**Data streams** are the primary source for working with events in StreamPipes.
A stream is an ordered sequence of events, where an event typically consists of one or more observation values and additional metadata.
The `structure` (or `schema` as we call it) of an event provided by a data stream is stored in StreamPipes' internal semantic schema registry.
-Data streams are primarily created by adapters, but can also be created by a [StreamPipes Function](./06_extend-sdk-functions.md).
+Data streams are primarily created by adapters, but can also be created by a [StreamPipes Function](07_extend-sdk-functions.md).
## Data Processor
**Data processors** in StreamPipes transform one or more input streams into an output stream.
@@ -43,4 +43,4 @@ In addition, StreamPipes provides several data sinks to forward data streams to
## Pipeline
A pipeline in Apache StreamPipes describes the transformation process from a data stream to a data sink.
Typically, a pipeline consists of at least one data stream, zero or more data processors, and at least one data sink.
-Pipelines are created graphically by users using the [Pipeline Editor](./03_use-pipeline-editor.md) and can be started and stopped at any time.
+Pipelines are created graphically by users using the [Pipeline Editor](04_use-pipelines.md) and can be started and stopped at any time.
diff --git a/docs/03_use-configurations.md b/docs/03_use-configurations.md
deleted file mode 100644
index 4aa953fbb..000000000
--- a/docs/03_use-configurations.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-id: use-configurations
-title: Configurations
-sidebar_label: Configurations
----
-
-The configuration section is an admin-only interface for system-wide settings.
-
-## General configuration
-
-<img className="docs-image" src="/img/03_use-configurations/01_general-configuration.png" alt="General configuration"/>
-
-The general configuration serves to provide basic system settings. The basic settings allow to configure the app name (which is used, e.g., for mails sent by StreamPipes).
-Additionally, the externally available host and port can be set which is used by the mail system to add links to emails.
-
-Furthermore, self-registration and password recovery features can be activated in this view. Note that both features require a working email configuration.
-
-## Datalake
-
-<img className="docs-image" src="/img/03_use-configurations/02_datalake-configuration.png" alt="Datalake configuration"/>
-
-Here, stored data lake databases can be truncated or deleted. The view also gives information on the number of data points currently stored in a measurement series.
-
-## Email configuration
-
-<img className="docs-image" src="/img/03_use-configurations/03_email-configuration.png" alt="Email configuration"/>
-
-In this section, the email configuration is set. The email configuration is used to send mails to users. Most standard mail server settings are supported. The configuration can be validated by triggering a test mail that is sent to a given recipient.
-
-## Messaging
-
-<img className="docs-image" src="/img/03_use-configurations/04_messaging-configuration.png" alt="Messaging configuration"/>
-
-Messaging configuration is used to control parameters used for communication between pipeline elements. Individual Kafka settings can be configured, as well as the priority of selected message formats and protocols during pipeline creation.
-
-## Pipeline Element Configuration
-
-<img className="docs-image" src="/img/03_use-configurations/05_pipeline-element-configuration.png" alt="Pipeline element configuration"/>
-
-Individual configurations of extensions services are available in this view. The available configurations depend on the provided configuration variables in the service definition of each extensions service.
-
-## Security
-
-<img className="docs-image" src="/img/03_use-configurations/06_security-configuration.png" alt="Messaging configuration"/>
-
-The security configuration allows to manage existing user accounts, service accounts and groups. New users can be added and roles can be assigned.
-
-Please also read more about security [here](05_deploy-security.md).
diff --git a/docs/03_use-connect.md b/docs/03_use-connect.md
deleted file mode 100644
index ba8146481..000000000
--- a/docs/03_use-connect.md
+++ /dev/null
@@ -1,72 +0,0 @@
----
-id: use-connect
-title: StreamPipes Connect
-sidebar_label: StreamPipes Connect
----
-
-StreamPipes Connect is the module to connect external data sources with Apache StreamPipes directly from the user interface.
-StreamPipes Connect offers various adapters for common communication protocols and some specific sensors. Besides connecting data, StreamPipes Connect offers ways to pre-process data without the need to build pipelines and integrates a schema guesser that listens for incoming data and recommends the recognized event schema.
-
-The screenshot below illustrates the data marketplace, which shown after navigating to "StreamPipes Connect" and then clicking the "New adapter" button at the top.
-
-<img className="docs-image" src="/img/03_use-connect/01_connect-overview.png" alt="StreamPipes Connect Overview"/>
-
-## Connecting new data sources
-
-### Data Marketplace
-The data marketplace shows a list of all adapters that are currently installed in Apache StreamPipes. Each adapter offers various configuration options which depend on the specifics of the adapter.
-Adapters are distinguished a) by the data source concept they provide (data set or data stream) and b) the adapter type, where we distinguish between _generic adapters_, which usually implement a generic communication protocol such as MQTT or Apache Kafka or a specific sensor interface (e.g., for Netio power sockets).
-Several filter options are available to find a suitable adapter. The configuration of a new adapter starts with selecting one of the available adapters, which starts an assistant that supports the adapter generation.
-
-### Protocol/Basic Settings
-In the first step, basic configurations need to be provided. For instance, for an Apache PLC4X adapter, the IP address of the PLC needs to be provided. In this example, we provide basic settings for connecting to an Apache Kafka broker. After all values are provided, the "Next" button opens the next step.
-
-<img className="docs-image" src="/img/03_use-connect/06_connect-create.png" alt="StreamPipes Connect Basic Settings"/>
-
-### Format Specification
-The next step, format generation, is only available for generic adapters which support different message formats to be sent over the corresponding protocol. Think of a message broker that is able to consume messages in both JSON format or binary format.
-Currently supported formats include XML, various JSON representations, images and CSV. After a format has been selected, further format configurations can be provided (depending on the selected format) to further customize the incoming message format.
-
-<img className="docs-image" src="/img/03_use-connect/02_customize-format.png" alt="StreamPipes Connect Format Selection"/>
-
-### Schema Editor
-In the next step, based on the previously provided protocol and format settings, the system will either provide the fixed/pre-defined schema of the adapter or, in case of specific adapters, will connect to the underlying system and try to listen for incoming data. After a few seconds, the schema editor will appear that provides a list of detected fields from the incoming events (the schema).
-
-<img className="docs-image" src="/img/03_use-connect/03_schema-editor.png" alt="StreamPipes Connect Schema Editor"/>
-
-In the toolbar, several configuration options are available which transform the original schema:
-
-* **Add Nested Property**. This option allows to modify the structure of the event by creating a nested structure. The schema can be simply changed by dragging and dropping fields into the nested structure.
-* **Add Static Value**. This option allows to add a field containing a static value (e.g., an identifier) to the event.
-* **Add Timestamp**. This options appends the current timestamp to each incoming event, useful in case the timestamp is not provided by the origin.
-* **Refresh**. Re-triggers the schema guessing.
-* **Delete field**. Select one or more fields by clicking the checkbox on the right and trigger the delete button.
-* **Property scope**. For each field, a property scope can be defined which is either _Measurement_, _Dimension_ or _Header_. These values are later be used in the pipeline editor to assist in configuring pipeline elements and do not have any functional consequence.
-Use _Measurement_ to indicate the field measures a value (e.g., a temperature value from a sensor), use _Dimension_ for any identifier (e.g., the sensor ID) and use _Header_ for any other metadata such as timestamps.
-
-For each field (also called event property) of the schema, additional configuration options are available by clicking the _Edit_ button:
-
-* **Label**. Used to provide a human-readable label for the field, which will ease the identification of fields when building pipelines.
-* **Runtime Name.** This is the identifier of the field in the underlying message representation format (e.g., the JSON key). Renaming the runtime name will trigger a so-called _transformation rule_ which renames the incoming field name to the new field name before forwarding it to StreamPipes.
-* **Domain Property/Semantic Type**. To help StreamPipes better understand the value which is represented by the field, semantic type information can be given. Up from StreamPipes 0.68.0, the semantic type can be selected from a wide range of available options. Additionally, an URL can be manually provided that indicates the meaning of the value (e.g., http://schema.org/Temperature).
-* **Mark as Timestamp**. Indicates that the selected value represents a timestamp. When selected, a _timestamp converter_ can be configured which will convert incoming timestamps to the UNIX timestamp.
-* **Runtime Type**. Here, the data type can be changed
-* **Unit**. Allows to specify the unit in which the value is measured. Once selected, you can also automatically convert the unit to a target unit, which will then be inserted into the data stream produced by the adapter (see screenshot below).
-
-<img className="docs-image" src="/img/03_use-connect/04_schema-editor-conversion.png" alt="StreamPipes Connect Unit Conversion"/>
-
-Assigning a timestamp is mandatory and can be either done by adding a timestamp from the menu, or by choosing an existing field and marking it as timestamp.
-
-### Adapter Generation
-Finally, the adapter is ready to be started. In the _Adapter Generation_ page, a name and description for the resulting data stream must be provided.
-Once started, StreamPipes creates your new adapter and displays a preview of the connected data, which refreshes about once per second.
-Afterwards, the newly created data stream is available in the pipeline editor for further usage.
-
-<img className="docs-image" src="/img/03_use-connect/05_adapter-generation.png" alt="StreamPipes Connect Adapter Generation"/>
-
-## Managing adapters
-
-Currently running adapters are available in the "Running adapters" section of StreamPipes Connect. Existing adapters can be stopped and deleted. Currently, there is no mechanism to edit an existing adapter or to stop the adapter without deleting it.
-
-### Adapter Templates
-For frequently used configurations, adapter templates can be created. An adapter template is a pre-configured adapter which can be further customized by users. Created adapter templates are available in the marketplace similar to standard adapters.
diff --git a/docs/03_use-dashboard.md b/docs/03_use-dashboard.md
deleted file mode 100644
index 339bf6b57..000000000
--- a/docs/03_use-dashboard.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-id: use-dashboard
-title: Live Dashboard
-sidebar_label: Live Dashboard
----
-
-The live dashboard can be used to visualize live data of data streams using a set of visualizations
-The entry page of the live dashboard lists all created dashboards as in the screenshot below:
-
-<img className="docs-image" src="/img/03_use-dashboard/01_dashboard-overview.png" alt="StreamPipes Dashboard Overview"/>
-
-## Visualizing Data Streams
-
-To visualize data streams in the live dashboard, a pipeline must be created that makes use of the so-called **Data Lake** sink.
-Any data stream or data processor can serve as an input of the data lake sink. Switch to the pipeline editor, create a pipeline and configure the data lake sink. The visualization name is used to identify the sink in case multiple data lake sinks are used within a single pipeline.
-
-## Managing Dashboards
-Multiple dashboards can be created, e.g., to organize different assets in a single dashboard view.
-
-A new dashboard can be created by clicking the _New Dashboard_ button, which opens a dialog that requires basic dashboard settings such as the title and description of the new dashboard.
-Once created, the dashboard will be shown in the overview. Here, the following dashboard actions are available:
-
-* **Show** opens the dashboard.
-* **Window** opens the dashboard in a new window with reduced controls, e.g., without the StreamPipes navigation and toolbar. This is a useful view for standalone displays that should visualize key parameters.
-* **Settings** allows to modify the basic dashboard settings.
-* **Edit** opens the dashboard in edit mode, where widgets can be added to the dashboard.
-+ **Delete** deletes the selected dashboard.
-
-## Creating Visualizations
-
-Visualizations can be added to each dashboard in form of widgets. To add new visualizations, switch to the dashboard in _Edit_ mode.
-In edit mode, a button appears that allows to add a new visualization.
-
-Adding a new visualization is supported by a wizard consisting of three steps:
-
-<img className="docs-image" src="/img/03_use-dashboard/02_add-widget.png" alt="StreamPipes Dashboard Pipeline Selection"/>
-
-* **Select pipeline** is the first step where a pipeline is selected on which the visualization is based. In this view, all pipelines are listed that have at least one **Dashboard Sink**. In case a pipeline contains multiple data lake sinks, the visualization name is listed below the pipeline name which eases discovering of the proper visualization.
-* **Select widget** is the next step where the visualization widget must be selected. StreamPipes automatically filters this list based on input requirements of widgets. For instance, image visualizations are only visible if the input data stream provides an image object.
-* **Configure widget** provides widget-specific settings to configure the visualization. In most cases, colors and titles of widgets can be modified. Additionally, chart-specific settings such as axis value ranges can be configured.
-
-<img className="docs-image" src="/img/03_use-dashboard/03_configure-widget.png" alt="StreamPipes Dashboard Widget Configuration"/>
-
-By clicking _Create_, the new widget is placed on the canvas. Size and positioning of visualizations can be flexibly changed based on the provided grid. To change the widget configuration, the _Settings_ button of each widget can be clicked to re-open the configuration dialog.
-
-Once created, the dashboard provides a live view of all visualizations:
-
-<img className="docs-image" src="/img/03_use-dashboard/04_live-dashboard.png" alt="StreamPipes Live Dashboard"/>
-
-
-Before the dashboard is closed, make sure to click the _Save_ button to persist the updated dashboard. Changes can be discarded by clicking the _Discard_ button.
-
-
-## Available widgets
-
-The following visualizations are available in the latest release:
-
-* Area Chart
-* Gauge
-* HTML page (renders HTML markup)
-* Image
-* Line Chart
-* Raw (displays the raw JSON input for debugging purposes)
-* Single Value (displays a single measurement)
-* Table
-* Traffic Light
diff --git a/docs/03_use-install-pipeline-elements.md b/docs/03_use-install-pipeline-elements.md
deleted file mode 100644
index 852693200..000000000
--- a/docs/03_use-install-pipeline-elements.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: use-install-pipeline-elements
-title: Install Pipeline Elements
-sidebar_label: Install Pipeline Elements
----
-
-## Install Pipeline Elements
-
-(coming soon)
diff --git a/docs/03_use-managing-pipelines.md b/docs/03_use-managing-pipelines.md
deleted file mode 100644
index 2c64b53ee..000000000
--- a/docs/03_use-managing-pipelines.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-id: use-managing-pipelines
-title: Managing Pipelines
-sidebar_label: Managing Pipelines
----
-
-The pipeline view lists all created pipelines and provides several views and actions to manage the lifecycle of pipelines.
-
-In the entry screen, an overview of all created pipelines is shown:
-
-<img className="docs-image" src="/img/03_use-managing-pipelines/01_pipeline-overview.png" alt="StreamPipes Pipeline Overview"/>
-
-## Pipeline Actions
-Within the pipeline overview, for each pipeline several actions are available:
-* **Start/Stop pipeline** Starts or stops the selected pipeline. Once clicked, StreamPipes will trigger the selected action for all pipeline elements and open a success or error dialog as illustrated below.
-* **Show details** opens the pipeline detail view (see below).
-* **Modify pipeline** opens the pipeline in the pipeline editor, where the pipeline can be modified. Note that this button is only visible if the pipeline is not running.
-* **Delete pipeline** opens a confirm dialog, which subsequently deletes the selected pipeline.
-
-The screenshot below shows the status of a pipeline after it has been successfully started. By clicking the _Show details_ button, more information on the status of each corresponding pipeline element microservice becomes available. In case of failures, the failure reason will be shown for each pipeline element that has failed to start.
-
-<img className="docs-image" src="/img/03_use-managing-pipelines/02_pipeline-start-dialog.png" alt="StreamPipes Pipeline Start Dialog"/>
-
-## Organizing Pipelines into Categories
-Pipelines can be organized into categories, which is a useful feature in case a larger amount of pipelines is created.
-All categories will be shown as separate tabs in the pipeline overview. The same pipeline can be assigned to multiple categories.
-
-To add a new category or to add a new pipeline to an existing category, click the _Manage Categories_ button and configured the category and assigned pipelines in the dialog.
-
-## Pipeline Details
-The pipeline details view can be opened by clicking the _Show details_ button in the pipeline overview panel.
-
-<img className="docs-image" src="/img/03_use-managing-pipelines/03_pipeline-details.png" alt="StreamPipes Pipeline Details"/>
-
-### Overview
-The overview section displays the graphical structure of the pipeline and provides some statistics about recent pipeline actions. Additionally, pipelines can be directly started, stopped, modified and deletes within this view.
-
-### Monitoring
-Monitoring features will become available in version 0.68.0.
-
-### Errors
-Monitoring of failures and logs will become available in version 0.69.0.
-
-### QuickEdit
-The quick edit feature (only available for pipelines that are not running) is a quick and convenient way to modify some pipeline element configurations without opening the pipeline in the pipeline editor.
-To use the quick edit feature, switch to the _QuickEdit_ tab, which will display the selected pipeline.
-
-By clicking a pipeline element from the preview canvas, available configuration options of the selected pipeline element can be modified. Note that only modifications that do not affect the pipeline structure (e.g., different output streams) can be changed.
-
-<img className="docs-image" src="/img/03_use-managing-pipelines/04_pipeline-quick-edit.png" alt="StreamPipes Pipeline Quick Edit"/>
-
-After a configuration value was changed, make sure to click the _Update Pipeline_ button to save the changes.
diff --git a/docs/03_use-notifications.md b/docs/03_use-notifications.md
deleted file mode 100644
index b5c64ed98..000000000
--- a/docs/03_use-notifications.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-id: use-notifications
-title: Notifications
-sidebar_label: Notifications
----
-
-The notification module can be used to create internal notifications.
-
-<img className="docs-image" src="/img/03_use-notifications/01_notifications-overview.png" alt="StreamPipes Notifications"/>
-
-## Using notifications
-
-Any pipeline that includes the data sink **Notification** can trigger notifications that appear in the notification view. To configure a new notification, switch to the pipeline editor and append the notification sink to a data processor or data stream.
-The sink requires a title and message as configuration parameters.
-
-### Placeholders
-
-The notification message can include placeholders for fields which are replaced with the actual value at runtime.
-
-## Managing notifications
-
-The notification view is split into two parts. The left sides lists all pipelines which include a notification sink. By selecting a pipeline, available notifications will be shown in the right panel.
-By scrolling up, older notifications become visible. Notifications that have appeared in the detail view will be automatically marked as read, so that only new, unread notifications will appear in the left toolbar.
-
-
diff --git a/docs/03_use-pipeline-editor.md b/docs/03_use-pipeline-editor.md
deleted file mode 100644
index f09cf8486..000000000
--- a/docs/03_use-pipeline-editor.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-id: use-pipeline-editor
-title: Pipeline Editor
-sidebar_label: Pipeline Editor
----
-
-The pipeline editor module supports building pipelines that transform a data stream using a set of resuable data processors and data sinks.
-The empty pipeline editor looks similar to the illustration below after a new installation.
-
-<img className="docs-image" src="/img/03_use-pipeline-editor/01_pipeline-editor-overview.png" alt="StreamPipes Pipeline Editor Overview"/>
-
-## Pipeline Elements
-The four main concepts data sets, data streams, data processors and data sinks are available at the top of the pipeline editor. By switching the tabs, the individual pipeline elements for each category can be found.
-By clicking the questionmark symbol, which appears when hovering over an element, additional information can be viewed (e.g., for data streams a live preview of incoming data and the documentation of the pipeline element for data processors and sinks).
-
-<img className="docs-image" src="/img/03_use-pipeline-editor/02_pipeline-element-info.png" alt="StreamPipes Pipeline Element Info"/>
-
-## Creating Pipelines
-Pipelines are built by dragging data streams, processors and sinks into the pipeline assembly area. Typically, a pipeline is built step-by-step starting with a data soure (stream or set).
-Afterwards, data processors and sinks are subsequently added to the pipeline. Connections between pipeline elements are made by selecting the gray connector of the source and moving it to the target pipeline element.
-Once a connection is made, StreamPipes performs a quick validation step and, in case two pipeline elements are compatible, automatically opens a configuration window.
-
-### Configuring Pipeline Elements
-The configuration depends on the selected pipeline element and looks similar to the screenshot below.
-In general, pipeline elements are configured by providing the required values. Once the pipeline element is fully configured, the _Save_ button activates and can be used to save the configuration for the pipeline element.
-
-<img className="docs-image" src="/img/03_use-pipeline-editor/03_configure-pipeline-element.png" alt="StreamPipes Pipeline Element Configuration"/>
-
-In addition, the following options are available in the pipeline element configuration menu:
-* **Show documentation** extends the view and displays the pipeline element's documentation next to the configuration view.
-* **Show only recommended settings** filters the list of available fields provided by the connected input data stream based on the _property scope_, e.g., so that only measurement values are displayed and dimension fields from the input stream are not available for selection. If deactivated, selections contain the full list of available fields that match the input requirement of the data processor.
-
-### Pipeline Element Options
-Further options for a pipeline element can be displayed by hovering over a pipeline element in the assembly area, so that additional buttons appear around the pipeline element:
-
-* **Configure element** re-opens the configuration view to update the pipeline element configuration (only available for data processors and sinks)
-* **Delete element** removes the pipeline element from the pipeline
-* **Help** opens the pipeline element's documentation
-* **Compatible element** opens a dialog which shows all pipeline elements that are compatible to the current element's output data stream. The dialog offers an alternative to selecting pipeline elements directly from the pipeline element selection in the top.
-* **Pipeline Element Recommendation** opens a dialog which shows all recommended pipeline elements that are compatible the current element's output data stream. The recommendation is based on previously connected pipeline elements and is displayed below.
-
-### Pipeline Editor Options
-Several pipeline editor options are available in the menu bar of the pipeline assembly:
-
-<img className="docs-image" src="/img/03_use-pipeline-editor/05_pipeline-editor-options.png" alt="StreamPipes Pipeline Editor Options"/>
-
-* **Save pipeline** opens the save dialog (see below)
-* **Pan** allows to pan within the assembly area, useful for larger pipelines that do not fit in the screen
-* **Select** is visible if pan mode is active and switches back to the default select mode
-* **Zoom in/out** triggers the zoom in the pipeline assembly
-* **Auto Layout** layouts the pipeline in a much more beautiful way than you are able to do by yourself ;-)
-* **All pipeline modification saved** is displayed if the current pipeline has been cached. Cache updates are triggered after every change of the pipeline so that changes are not lost after reloading the window.
-* **Hints** are shown to display current errors (e.g., incomplete pipelines). Details can be opened by clicking the hint button.
-* **Clear assembly** clears the assembly and removes the current pipeline.
-
-### Saving a pipeline
-To save a pipeline, press the _save pipeline_ button. A dialog pops up where a name and description of the pipeline can be entered (only name is mandatory).
-Additionally, a pipeline can be directly started after it has been stored by checking the corresponding button.
-
-<img className="docs-image" src="/img/03_use-pipeline-editor/06_save-pipeline.png" alt="StreamPipes Save Pipeline Dialog"/>
-
-
diff --git a/docs/03_use-programmatically-create-adapters.md b/docs/03_use-programmatically-create-adapters.md
deleted file mode 100644
index 1c791dc39..000000000
--- a/docs/03_use-programmatically-create-adapters.md
+++ /dev/null
@@ -1,154 +0,0 @@
----
-id: use-programmatically-create-adapters
-title: Adapters as Code
-sidebar_label: Adapters as Code
----
-
-In Apache StreamPipes, adapters are typically created via the web interface.
-However, it is possible to create adapters programmatically using a compact YAML format and the StreamPipes REST API.
-Programmatic creation of adapters can be a useful feature in cases where many similar adapters have to be created.
-In this case, an externally managed YAMl file containing the full adapter configuration can be used and modified.
-
-## Introduction
-
-In StreamPipes, adapters are responsible for collecting data from various industrial data sources.
-While the UI simplifies this process, you can also manage adapters programmatically for better automation, integration with CI/CD pipelines, or infrastructure-as-code practices.
-
-This guide demonstrates how to define and create adapters using a YAML format and StreamPipes REST API, offering more flexibility to manage adapters programmatically.
-
-## Adapter YAML Structure
-
-An adapter in StreamPipes can be defined using a YAML file, which contains a compact description of the adapter configuration.
-The basic structure of the YAML format for an adapter definition includes:
-
-- **Name**: The name of the adapter.
-- **ID**: A unique ID for the adapter
-- **Description**: An additional description of the adapter
-- **AppID**: The adapter type
-- **Configuration**: Configuration details such as connection details, polling intervals, data format, and more
-- **Schema**: Schema refinements, e.g., additional label, description, semantic type and property scope
-- **Enrich**: Enrichment rules. Currently, only timestamp enrichment rules are supported in the YAML specification
-- **Transform**: Transformation rules. Currently, rename and measurement unit transforms are supported.
-- **CreateOptions**: Additional operations that are executed upon adapter generation.
-
-Here’s a sample structure to define an OPC-UA adapter:
-
-```yaml
-name: My OPC Adapter
-id: testadapter
-description: Test
-appId: org.apache.streampipes.connect.iiot.adapters.opcua
-configuration:
- - opc_host_or_url: OPC_URL
- opc_server_url: opc.tcp://localhost:62541/milo
- - adapter_type: PULL_MODE
- pulling_interval: 1000
- - access_mode: UNAUTHENTICATED
- - available_nodes:
- - "ns=2;s=Leakage Test Station/temperature"
- - "ns=2;s=Leakage Test Station/pressure"
-
-schema:
- temperature:
- propertyScope: measurement
- label: Temp
- description: Temperature value
- semanticType: http://schema.org/temperature
-
-enrich:
- timestamp: timestamp
-
-transform:
- rename:
- pressure: pressure3
-
-createOptions:
- persist: true
- start: true
-```
-
-## Programmatically creating adapters
-
-Here is a walkthrough to create an adapter programmatically over the API:
-
-### Background: Internal adapter generation process
-
-The YAML definition file is a more compact notation of StreamPipes internal data format to represent an adapter.
-When creating an adapter over the user interface, StreamPipes requires some basic, adapter-specific settings.
-Afterwards, a `Guess Schema` step is executed. In this step, StreamPipes connects to the underlying data sources, receives some samples of live data, determines the exact schema of the data stream and provides user with the source schema.
-This schema can be further refined using `Transformation Rules`.
-
-When an adapter is created using the more compact YAML notation, the same process is applied. Based on the provided configuration, the API connects to the given data source and determines the schema.
-The transformation rules provided in the YAMl definition are then applied on the original schema.
-Therefore, it is important that the provided schema refinement and transformation steps fit the original schema.
-
-### Getting a valid definition file
-
-The easiest way to create a valid YAML file is the user interface. Within the StreamPipes Connect view, it is possible to export the YAML definition for all existing adapters.
-In addition, the adapter generation wizard also offers the option to view the adapter configuration before creating the adapter by clicking the `Code` checkbox:
-
-<img className="docs-image" src="/img/03_use-programmatically-create-adapters/01_adapter-generation-code.png" alt="StreamPipes Adapter Code View"/>
-
-Another option is to open the adapter details view:
-
-<img className="docs-image" src="/img/03_use-programmatically-create-adapters/02_adapter-details-view-code.png" alt="StreamPipes Adapter Details Code View"/>
-
-You can copy this definition and modify it according to your needs.
-
-#### Configuration
-
-For each configuration option in the user interface, there is a mapping to the YAMl definition.
-
-A configuration value is a key/value pair, where the key corresponds to the internal name of the configuration and the value depends on the configuration type.
-
-#### Schema
-
-Schema definitions enhance the metadata of each field from the input stream.
-The following configurations are supported:
-
-* `label` to add an additional (human-readable) label to the field
-* `description` for an additional description
-* `propertyScope` to determine the type of the field (HEADER_PROPERTY, DIMENSION_PROPERTY or MEASUREMENT_PROPERTY)
-* `semanticType` to provide the semantic type of the field (e.g., `https://schema.org/temperature`)
-
-#### Enrich
-
-* `timestamp` defines that an additional field named timestamp is added to each incoming event containing the ingestion time as a UNIX timestamp.
-
-#### Transform
-
-Currently, the following transforms are supported:
-
-* `rename` defines renaming of individual fields from the input stream. A valid configuration consists of a key/value pair, where the key indicates the original field name and the value the target field name.
-* `measurementUnit` defines a value transformation between measurement units. A valid configuration consists of a key/value pair, where the key indicates the field name and the value the target measurement unit.
-
-#### CreateOptions
-
-Currently, two settings can be provided in the `CreateOptions` section:
-
-* `persist` indicates whether the data stream produced by the adapter should also be stored. In this case, a `Persist Pipeline` is automatically created.
-* `start` indicates whether the adapter should be immediately started after creation.
-
-### API
-
-To create a new adapter, call the StreamPipes API as follows:
-
-```
-POST /streampipes-backend/api/v2/connect/compact-adapters
-Content-type: application/yml
-Accept: application/yml
-```
-
-You must provide valid credentials by either adding a Bearer token or an API key:
-
-```
-X-API-USER: your username
-X-API-KEY: your api key
-```
-
-The body of the request should contain the YAML definition.
-
-:::info
-It is also possible to provide the adapter specification as a JSON document. In this case, change the `Content-type` to `application/json`.
-
-
diff --git a/docs/03_use-programmatically-create-pipelines.md b/docs/03_use-programmatically-create-pipelines.md
deleted file mode 100644
index a3a117bbc..000000000
--- a/docs/03_use-programmatically-create-pipelines.md
+++ /dev/null
@@ -1,164 +0,0 @@
----
-id: use-programmatically-create-pipelines
-title: Pipelines as Code
-sidebar_label: Pipelines as Code
----
-
-In Apache StreamPipes, pipelines represent the flow of data from sources (streams), through processors (filters, transformations, etc.), and finally to sinks (third-party-systems, storage, notifications).
-Traditionally, pipelines are created through the web-based user interface.
-However, they can also be defined programmatically as code, offering the flexibility to manage pipelines using Infrastructure as Code (IaC) practices.
-
-This guide explains how to define and create pipelines programmatically using a YAML structure.
-
-## Introduction
-
-Defining pipelines as code allows you to automate the creation, management, and deployment of StreamPipes pipelines.
-This is especially useful for managing multiple StreamPipes instances across environments.
-Pipelines are written in a YAML format (or alternatively as JSON) and can be deployed programmatically via the StreamPipes REST API.
-
-This guide provides an overview of how to structure pipeline definitions in YAML and deploy them using the API.
-
-## Pipeline YAML Structure
-
-A pipeline in YAML consists of several key sections:
-
-- **ID**: A unique identifier for the pipeline.
-- **Name and Description**: Optional fields to describe the pipeline.
-- **Pipeline Elements**: The components that make up the pipeline, including streams (data sources), processors (data transformations), and sinks (output destinations).
-- **Create Options**: Specifies how and when to start the pipeline (e.g., `start: false` means the pipeline won't start automatically).
-
-Here’s a high-level breakdown of the structure:
-
-```yaml
-id: my-pipeline
-name: ""
-description: ""
-pipelineElements: # Define pipeline components here
- - type: stream # Data source
- ref: <reference> # Unique reference ID
- id: <data-stream-id> # ID of the stream
-
- - type: processor # Data transformation
- ref: <reference> # Unique reference ID
- id: <processor-id> # ID of the processor
- connectedTo: # Previous pipeline element reference(s)
- - <reference>
- configuration: # Processor-specific configurations
- - <configuration-option>
-
- - type: sink # Data sink (output)
- ref: <reference> # Unique reference ID
- id: <sink-id> # ID of the sink
- connectedTo: # Previous pipeline element reference(s)
- - <reference>
- configuration: # Sink-specific configurations
- - <configuration-option>
-
-createOptions:
- start: <true|false> # Whether to start the pipeline immediately
-```
-
-## Pipeline Elements
-
-### Building blocks
-
-The key building blocks of a pipeline include:
-
-#### Stream
-A stream represents a data source in the pipeline, such as a sensor feed, API, or message queue. It is referenced by a unique ID that identifies the data stream.
-
-#### Processor
-A processor transforms, filters, or enriches the data coming from a stream or another processor. Each processor has configuration parameters that control its behavior, such as filtering criteria or mapping options.
-
-#### Sink
-A sink sends the processed data to a final destination, such as a database, file storage, or another service. Sinks may also have configuration options that specify where and how the data should be sent.
-
-A pipeline element is selected by providing its ID. For processors and sinks, the ID refers to the `appId` of the pipeline element, e.g., `org.apache.streampipes.processors.filters.jvm.numericalfilter`.
-For data streams, the ID refers to the `elementId` of the data stream.
-
-To define connections between pipeline elements, the `ref` and `connectedTo` fields can be used.
-`ref` can be a short string (e.g., `stream01` or `processor01`) which will be used as an internal identifier of the pipeline element.
-Within the `connectedTo` list, connections to other pipeline elements can be defined.
-Each item of the list should relate to an existing `ref`.
-
-### Configuration
-
-In the `configuration` section, which only applies for data processors and sinks, the pipeline element configuration can be applied.
-The configuration options depend on the pipeline element and have the same structure as the adapter configuration (see [Adapters as Code](use-programmatically-create-adapters))
-The easiest way to determine a valid configuration is the web interface.
-
-After creating a pipeline in the web interface and clicking on `Save pipeline`, the option `Show pipeline configuration as code` shows the current pipeline configuration in YAML or JSON format:
-
-<img className="docs-image" src="/img/03_use-programmatically-create-pipelines/01_pipeline-editor-pipeline-as-code.png" alt="StreamPipes Pipeline Editor Code View"/>
-
-Another option is to view the pipeline details for an existing pipeline. Here, the YAMl definition of the pipeline can be viewed by clicking the `View pipeline as code` button:
-
-<img className="docs-image" src="/img/03_use-programmatically-create-pipelines/02_pipeline-details-pipeline-as-code.png" alt="StreamPipes Pipeline Editor Code View"/>
-
-
-## Example pipeline as Code
-
-Here's an example of a pipeline written in YAML format:
-
-```yaml
-id: my-pipeline
-name: "Density Filter Pipeline"
-description: "A pipeline that filters data based on the density and stores it in a data lake."
-pipelineElements:
- - type: stream
- ref: stream01
- id: sp:spdatastream:GWWzMD
- - type: processor
- ref: processor01
- id: org.apache.streampipes.processors.filters.jvm.numericalfilter
- connectedTo:
- - stream01
- configuration:
- - number-mapping: s0::density
- - operation: <
- - value: "12"
- - type: sink
- ref: sink01
- id: org.apache.streampipes.sinks.internal.jvm.datalake
- connectedTo:
- - processor01
- configuration:
- - timestamp_mapping: s0::timestamp
- - db_measurement: my-measurement
- - schema_update: Update schema
- - dimensions_selection:
- - sensorId
- - ignore_duplicates: false
-createOptions:
- start: false
-```
-
-Stream: The pipeline begins with a data stream (sp:spdatastream:GWWzMD) referenced by stream01. This is the source of the data.
-
-Processor: The data is passed through a numerical filter processor (org.apache.streampipes.processors.filters.jvm.numericalfilter) which checks if the field s0::density is less than 12. The filter is connected to the stream via reference stream01.
-
-Sink: The filtered data is then sent to a data lake (org.apache.streampipes.sinks.internal.jvm.datalake). The sink is configured with several parameters including the mapping of the timestamp (s0::timestamp) and schema update options. The sink is connected to the processor via reference processor01.
-
-Create Options: The pipeline is set to not start automatically (start: false).
-
-## API
-
-To create a new pipeline, call the StreamPipes API as follows:
-
-```
-POST /streampipes-backend/api/v2/compact-pipelines
-Content-type: application/yml
-Accept: application/yml
-```
-
-You must provide valid credentials by either adding a Bearer token or an API key:
-
-```
-X-API-USER: your username
-X-API-KEY: your api key
-```
-
-The body of the request should contain the YAML definition.
-
-:::info
-It is also possible to provide the pipeline specification as a JSON document. In this case, change the `Content-type` to `application/json`.
diff --git a/docs/04_use-assets.md b/docs/04_use-assets.md
new file mode 100644
index 000000000..cd5c3a296
--- /dev/null
+++ b/docs/04_use-assets.md
@@ -0,0 +1,5 @@
+---
+id: use-assets
+title: Assets & Sites
+sidebar_label: Assets & Sites
+---
diff --git a/docs/03_use-data-explorer.md b/docs/04_use-charts.md
similarity index 99%
rename from docs/03_use-data-explorer.md
rename to docs/04_use-charts.md
index f84323bf6..1498e1819 100644
--- a/docs/03_use-data-explorer.md
+++ b/docs/04_use-charts.md
@@ -1,7 +1,7 @@
---
-id: use-data-explorer
-title: Data Explorer
-sidebar_label: Data Explorer
+id: use-charts
+title: Charts
+sidebar_label: Charts
---
The data explorer can be used to visualize and explore data streams that are persisted by using the **Data Lake** sink.
diff --git a/website-v2/versioned_docs/version-0.91.0/03_use-connect.md b/docs/04_use-connect.md
similarity index 51%
rename from website-v2/versioned_docs/version-0.91.0/03_use-connect.md
rename to docs/04_use-connect.md
index 34495cb6e..d4be57d6a 100644
--- a/website-v2/versioned_docs/version-0.91.0/03_use-connect.md
+++ b/docs/04_use-connect.md
@@ -1,8 +1,7 @@
---
id: use-connect
-title: StreamPipes Connect
-sidebar_label: StreamPipes Connect
-original_id: use-connect
+title: Connect IoT Data
+sidebar_label: Connect IoT Data
---
StreamPipes Connect is the module to connect external data sources with Apache StreamPipes directly from the user interface.
@@ -71,3 +70,153 @@ Currently running adapters are available in the "Running adapters" section of St
### Adapter Templates
For frequently used configurations, adapter templates can be created. An adapter template is a pre-configured adapter which can be further customized by users. Created adapter templates are available in the marketplace similar to standard adapters.
+
+
+In Apache StreamPipes, adapters are typically created via the web interface.
+However, it is possible to create adapters programmatically using a compact YAML format and the StreamPipes REST API.
+Programmatic creation of adapters can be a useful feature in cases where many similar adapters have to be created.
+In this case, an externally managed YAMl file containing the full adapter configuration can be used and modified.
+
+## Introduction
+
+In StreamPipes, adapters are responsible for collecting data from various industrial data sources.
+While the UI simplifies this process, you can also manage adapters programmatically for better automation, integration with CI/CD pipelines, or infrastructure-as-code practices.
+
+This guide demonstrates how to define and create adapters using a YAML format and StreamPipes REST API, offering more flexibility to manage adapters programmatically.
+
+## Adapter YAML Structure
+
+An adapter in StreamPipes can be defined using a YAML file, which contains a compact description of the adapter configuration.
+The basic structure of the YAML format for an adapter definition includes:
+
+- **Name**: The name of the adapter.
+- **ID**: A unique ID for the adapter
+- **Description**: An additional description of the adapter
+- **AppID**: The adapter type
+- **Configuration**: Configuration details such as connection details, polling intervals, data format, and more
+- **Schema**: Schema refinements, e.g., additional label, description, semantic type and property scope
+- **Enrich**: Enrichment rules. Currently, only timestamp enrichment rules are supported in the YAML specification
+- **Transform**: Transformation rules. Currently, rename and measurement unit transforms are supported.
+- **CreateOptions**: Additional operations that are executed upon adapter generation.
+
+Here’s a sample structure to define an OPC-UA adapter:
+
+```yaml
+name: My OPC Adapter
+id: testadapter
+description: Test
+appId: org.apache.streampipes.connect.iiot.adapters.opcua
+configuration:
+ - opc_host_or_url: OPC_URL
+ opc_server_url: opc.tcp://localhost:62541/milo
+ - adapter_type: PULL_MODE
+ pulling_interval: 1000
+ - access_mode: UNAUTHENTICATED
+ - available_nodes:
+ - "ns=2;s=Leakage Test Station/temperature"
+ - "ns=2;s=Leakage Test Station/pressure"
+
+schema:
+ temperature:
+ propertyScope: measurement
+ label: Temp
+ description: Temperature value
+ semanticType: http://schema.org/temperature
+
+enrich:
+ timestamp: timestamp
+
+transform:
+ rename:
+ pressure: pressure3
+
+createOptions:
+ persist: true
+ start: true
+```
+
+## Programmatically creating adapters
+
+Here is a walkthrough to create an adapter programmatically over the API:
+
+### Background: Internal adapter generation process
+
+The YAML definition file is a more compact notation of StreamPipes internal data format to represent an adapter.
+When creating an adapter over the user interface, StreamPipes requires some basic, adapter-specific settings.
+Afterwards, a `Guess Schema` step is executed. In this step, StreamPipes connects to the underlying data sources, receives some samples of live data, determines the exact schema of the data stream and provides user with the source schema.
+This schema can be further refined using `Transformation Rules`.
+
+When an adapter is created using the more compact YAML notation, the same process is applied. Based on the provided configuration, the API connects to the given data source and determines the schema.
+The transformation rules provided in the YAMl definition are then applied on the original schema.
+Therefore, it is important that the provided schema refinement and transformation steps fit the original schema.
+
+### Getting a valid definition file
+
+The easiest way to create a valid YAML file is the user interface. Within the StreamPipes Connect view, it is possible to export the YAML definition for all existing adapters.
+In addition, the adapter generation wizard also offers the option to view the adapter configuration before creating the adapter by clicking the `Code` checkbox:
+
+<img className="docs-image" src="/img/03_use-programmatically-create-adapters/01_adapter-generation-code.png" alt="StreamPipes Adapter Code View"/>
+
+Another option is to open the adapter details view:
+
+<img className="docs-image" src="/img/03_use-programmatically-create-adapters/02_adapter-details-view-code.png" alt="StreamPipes Adapter Details Code View"/>
+
+You can copy this definition and modify it according to your needs.
+
+#### Configuration
+
+For each configuration option in the user interface, there is a mapping to the YAMl definition.
+
+A configuration value is a key/value pair, where the key corresponds to the internal name of the configuration and the value depends on the configuration type.
+
+#### Schema
+
+Schema definitions enhance the metadata of each field from the input stream.
+The following configurations are supported:
+
+* `label` to add an additional (human-readable) label to the field
+* `description` for an additional description
+* `propertyScope` to determine the type of the field (HEADER_PROPERTY, DIMENSION_PROPERTY or MEASUREMENT_PROPERTY)
+* `semanticType` to provide the semantic type of the field (e.g., `https://schema.org/temperature`)
+
+#### Enrich
+
+* `timestamp` defines that an additional field named timestamp is added to each incoming event containing the ingestion time as a UNIX timestamp.
+
+#### Transform
+
+Currently, the following transforms are supported:
+
+* `rename` defines renaming of individual fields from the input stream. A valid configuration consists of a key/value pair, where the key indicates the original field name and the value the target field name.
+* `measurementUnit` defines a value transformation between measurement units. A valid configuration consists of a key/value pair, where the key indicates the field name and the value the target measurement unit.
+
+#### CreateOptions
+
+Currently, two settings can be provided in the `CreateOptions` section:
+
+* `persist` indicates whether the data stream produced by the adapter should also be stored. In this case, a `Persist Pipeline` is automatically created.
+* `start` indicates whether the adapter should be immediately started after creation.
+
+### API
+
+To create a new adapter, call the StreamPipes API as follows:
+
+```
+POST /streampipes-backend/api/v2/connect/compact-adapters
+Content-type: application/yml
+Accept: application/yml
+```
+
+You must provide valid credentials by either adding a Bearer token or an API key:
+
+```
+X-API-USER: your username
+X-API-KEY: your api key
+```
+
+The body of the request should contain the YAML definition.
+
+:::info
+It is also possible to provide the adapter specification as a JSON document. In this case, change the `Content-type` to `application/json`.
+
+
diff --git a/website-v2/versioned_docs/version-0.93.0/03_use-dashboard.md b/docs/04_use-dashboards.md
similarity index 98%
rename from website-v2/versioned_docs/version-0.93.0/03_use-dashboard.md
rename to docs/04_use-dashboards.md
index 339bf6b57..cd2f5818e 100644
--- a/website-v2/versioned_docs/version-0.93.0/03_use-dashboard.md
+++ b/docs/04_use-dashboards.md
@@ -1,7 +1,7 @@
---
-id: use-dashboard
-title: Live Dashboard
-sidebar_label: Live Dashboard
+id: use-dashboards
+title: Dashboards
+sidebar_label: Dashboards
---
The live dashboard can be used to visualize live data of data streams using a set of visualizations
diff --git a/docs/05_deploy-retention-config.md b/docs/04_use-datasets.md
similarity index 92%
rename from docs/05_deploy-retention-config.md
rename to docs/04_use-datasets.md
index f19a68114..a6ff6eb4c 100644
--- a/docs/05_deploy-retention-config.md
+++ b/docs/04_use-datasets.md
@@ -1,9 +1,10 @@
---
-id: deploy-retention-config
-title: Enable Datalake Retention
-sidebar_label: Enable Datalake Retention
+id: use-datasets
+title: Datasets
+sidebar_label: Datasets
---
+
This page provides instructions on how to enable and test the Datalake retention feature. The Datalake retention feature automates the process of deleting and saving the contents of the Datalake to either a local filesystem or a cloud provider (currently, only S3-compatible providers are supported) at predefined intervals. Retention actions are carried out as scheduled CRON jobs, executing at specified times.
## Prerequisites
@@ -46,34 +47,34 @@ The retention configuration must be set individually for each desired DataLake.
3. A dialog will appear, allowing you to configure the following options:
- **Data to Retain**: Select which data should be retained.
- **Retention Action**: Choose the retention action:
- - **Delete**
- - **Save**
- - **Save and Delete**
+ - **Delete**
+ - **Save**
+ - **Save and Delete**
If **Save** is selected, you can also configure:
- **Export Format**: Specify the format in which the data will be exported.
- **Export Destination**: Choose the destination for the saved data:
- - **Folder**: No further configuration needed.
- - **S3**: Requires an existing Export Provider to be set up (see the section below for details).
+ - **Folder**: No further configuration needed.
+ - **S3**: Requires an existing Export Provider to be set up (see the section below for details).
To create a new export provider go to `Configuration > DataLake`, click on `+` and provide the access key, secret, endpoint, bucket name, and region.
<img className="docs-image" src="/img/05_deploy-retention-config/NewExportProvider.png" alt="New Export Provider"/>
-For the Test Setting below this might be:
+For the Test Setting below this might be:
- **Access Key**: test
-- **Access Secret**: test
+- **Access Secret**: test
- **Endpoint**: http://0.0.0.0:4566
-- **Bucket**: random
+- **Bucket**: random
- **Region**: us-east-1
-## Test Setting
-For Testing and Developing S3-based Export Provider it is possible to rely on locally hosted docker container e.g., localstack.
+## Test Setting
+For Testing and Developing S3-based Export Provider it is possible to rely on locally hosted docker container e.g., localstack.
```yaml
services:
localstack:
@@ -95,7 +96,7 @@ volumes:
driver: local
```
-For local testing start the container `docker compose up`, create a new bucket with the following java script:
+For local testing start the container `docker compose up`, create a new bucket with the following java script:
```java
@@ -204,4 +205,4 @@ Pom.xml dependencies:
</dependency>
-```
\ No newline at end of file
+```
diff --git a/docs/04_use-pipelines.md b/docs/04_use-pipelines.md
new file mode 100644
index 000000000..906a8a3a0
--- /dev/null
+++ b/docs/04_use-pipelines.md
@@ -0,0 +1,268 @@
+---
+id: use-pipelines
+title: Pipelines
+sidebar_label: Pipelines
+---
+
+The pipeline editor module supports building pipelines that transform a data stream using a set of resuable data processors and data sinks.
+The empty pipeline editor looks similar to the illustration below after a new installation.
+
+<img className="docs-image" src="/img/03_use-pipeline-editor/01_pipeline-editor-overview.png" alt="StreamPipes Pipeline Editor Overview"/>
+
+## Pipeline Elements
+The four main concepts data sets, data streams, data processors and data sinks are available at the top of the pipeline editor. By switching the tabs, the individual pipeline elements for each category can be found.
+By clicking the questionmark symbol, which appears when hovering over an element, additional information can be viewed (e.g., for data streams a live preview of incoming data and the documentation of the pipeline element for data processors and sinks).
+
+<img className="docs-image" src="/img/03_use-pipeline-editor/02_pipeline-element-info.png" alt="StreamPipes Pipeline Element Info"/>
+
+## Creating Pipelines
+Pipelines are built by dragging data streams, processors and sinks into the pipeline assembly area. Typically, a pipeline is built step-by-step starting with a data soure (stream or set).
+Afterwards, data processors and sinks are subsequently added to the pipeline. Connections between pipeline elements are made by selecting the gray connector of the source and moving it to the target pipeline element.
+Once a connection is made, StreamPipes performs a quick validation step and, in case two pipeline elements are compatible, automatically opens a configuration window.
+
+### Configuring Pipeline Elements
+The configuration depends on the selected pipeline element and looks similar to the screenshot below.
+In general, pipeline elements are configured by providing the required values. Once the pipeline element is fully configured, the _Save_ button activates and can be used to save the configuration for the pipeline element.
+
+<img className="docs-image" src="/img/03_use-pipeline-editor/03_configure-pipeline-element.png" alt="StreamPipes Pipeline Element Configuration"/>
+
+In addition, the following options are available in the pipeline element configuration menu:
+* **Show documentation** extends the view and displays the pipeline element's documentation next to the configuration view.
+* **Show only recommended settings** filters the list of available fields provided by the connected input data stream based on the _property scope_, e.g., so that only measurement values are displayed and dimension fields from the input stream are not available for selection. If deactivated, selections contain the full list of available fields that match the input requirement of the data processor.
+
+### Pipeline Element Options
+Further options for a pipeline element can be displayed by hovering over a pipeline element in the assembly area, so that additional buttons appear around the pipeline element:
+
+* **Configure element** re-opens the configuration view to update the pipeline element configuration (only available for data processors and sinks)
+* **Delete element** removes the pipeline element from the pipeline
+* **Help** opens the pipeline element's documentation
+* **Compatible element** opens a dialog which shows all pipeline elements that are compatible to the current element's output data stream. The dialog offers an alternative to selecting pipeline elements directly from the pipeline element selection in the top.
+* **Pipeline Element Recommendation** opens a dialog which shows all recommended pipeline elements that are compatible the current element's output data stream. The recommendation is based on previously connected pipeline elements and is displayed below.
+
+### Pipeline Editor Options
+Several pipeline editor options are available in the menu bar of the pipeline assembly:
+
+<img className="docs-image" src="/img/03_use-pipeline-editor/05_pipeline-editor-options.png" alt="StreamPipes Pipeline Editor Options"/>
+
+* **Save pipeline** opens the save dialog (see below)
+* **Pan** allows to pan within the assembly area, useful for larger pipelines that do not fit in the screen
+* **Select** is visible if pan mode is active and switches back to the default select mode
+* **Zoom in/out** triggers the zoom in the pipeline assembly
+* **Auto Layout** layouts the pipeline in a much more beautiful way than you are able to do by yourself ;-)
+* **All pipeline modification saved** is displayed if the current pipeline has been cached. Cache updates are triggered after every change of the pipeline so that changes are not lost after reloading the window.
+* **Hints** are shown to display current errors (e.g., incomplete pipelines). Details can be opened by clicking the hint button.
+* **Clear assembly** clears the assembly and removes the current pipeline.
+
+### Saving a pipeline
+To save a pipeline, press the _save pipeline_ button. A dialog pops up where a name and description of the pipeline can be entered (only name is mandatory).
+Additionally, a pipeline can be directly started after it has been stored by checking the corresponding button.
+
+<img className="docs-image" src="/img/03_use-pipeline-editor/06_save-pipeline.png" alt="StreamPipes Save Pipeline Dialog"/>
+
+
+The pipeline view lists all created pipelines and provides several views and actions to manage the lifecycle of pipelines.
+
+In the entry screen, an overview of all created pipelines is shown:
+
+<img className="docs-image" src="/img/03_use-managing-pipelines/01_pipeline-overview.png" alt="StreamPipes Pipeline Overview"/>
+
+## Pipeline Actions
+Within the pipeline overview, for each pipeline several actions are available:
+* **Start/Stop pipeline** Starts or stops the selected pipeline. Once clicked, StreamPipes will trigger the selected action for all pipeline elements and open a success or error dialog as illustrated below.
+* **Show details** opens the pipeline detail view (see below).
+* **Modify pipeline** opens the pipeline in the pipeline editor, where the pipeline can be modified. Note that this button is only visible if the pipeline is not running.
+* **Delete pipeline** opens a confirm dialog, which subsequently deletes the selected pipeline.
+
+The screenshot below shows the status of a pipeline after it has been successfully started. By clicking the _Show details_ button, more information on the status of each corresponding pipeline element microservice becomes available. In case of failures, the failure reason will be shown for each pipeline element that has failed to start.
+
+<img className="docs-image" src="/img/03_use-managing-pipelines/02_pipeline-start-dialog.png" alt="StreamPipes Pipeline Start Dialog"/>
+
+## Organizing Pipelines into Categories
+Pipelines can be organized into categories, which is a useful feature in case a larger amount of pipelines is created.
+All categories will be shown as separate tabs in the pipeline overview. The same pipeline can be assigned to multiple categories.
+
+To add a new category or to add a new pipeline to an existing category, click the _Manage Categories_ button and configured the category and assigned pipelines in the dialog.
+
+## Pipeline Details
+The pipeline details view can be opened by clicking the _Show details_ button in the pipeline overview panel.
+
+<img className="docs-image" src="/img/03_use-managing-pipelines/03_pipeline-details.png" alt="StreamPipes Pipeline Details"/>
+
+### Overview
+The overview section displays the graphical structure of the pipeline and provides some statistics about recent pipeline actions. Additionally, pipelines can be directly started, stopped, modified and deletes within this view.
+
+### Monitoring
+Monitoring features will become available in version 0.68.0.
+
+### Errors
+Monitoring of failures and logs will become available in version 0.69.0.
+
+### QuickEdit
+The quick edit feature (only available for pipelines that are not running) is a quick and convenient way to modify some pipeline element configurations without opening the pipeline in the pipeline editor.
+To use the quick edit feature, switch to the _QuickEdit_ tab, which will display the selected pipeline.
+
+By clicking a pipeline element from the preview canvas, available configuration options of the selected pipeline element can be modified. Note that only modifications that do not affect the pipeline structure (e.g., different output streams) can be changed.
+
+<img className="docs-image" src="/img/03_use-managing-pipelines/04_pipeline-quick-edit.png" alt="StreamPipes Pipeline Quick Edit"/>
+
+After a configuration value was changed, make sure to click the _Update Pipeline_ button to save the changes.
+
+
+In Apache StreamPipes, pipelines represent the flow of data from sources (streams), through processors (filters, transformations, etc.), and finally to sinks (third-party-systems, storage, notifications).
+Traditionally, pipelines are created through the web-based user interface.
+However, they can also be defined programmatically as code, offering the flexibility to manage pipelines using Infrastructure as Code (IaC) practices.
+
+This guide explains how to define and create pipelines programmatically using a YAML structure.
+
+## Introduction
+
+Defining pipelines as code allows you to automate the creation, management, and deployment of StreamPipes pipelines.
+This is especially useful for managing multiple StreamPipes instances across environments.
+Pipelines are written in a YAML format (or alternatively as JSON) and can be deployed programmatically via the StreamPipes REST API.
+
+This guide provides an overview of how to structure pipeline definitions in YAML and deploy them using the API.
+
+## Pipeline YAML Structure
+
+A pipeline in YAML consists of several key sections:
+
+- **ID**: A unique identifier for the pipeline.
+- **Name and Description**: Optional fields to describe the pipeline.
+- **Pipeline Elements**: The components that make up the pipeline, including streams (data sources), processors (data transformations), and sinks (output destinations).
+- **Create Options**: Specifies how and when to start the pipeline (e.g., `start: false` means the pipeline won't start automatically).
+
+Here’s a high-level breakdown of the structure:
+
+```yaml
+id: my-pipeline
+name: ""
+description: ""
+pipelineElements: # Define pipeline components here
+ - type: stream # Data source
+ ref: <reference> # Unique reference ID
+ id: <data-stream-id> # ID of the stream
+
+ - type: processor # Data transformation
+ ref: <reference> # Unique reference ID
+ id: <processor-id> # ID of the processor
+ connectedTo: # Previous pipeline element reference(s)
+ - <reference>
+ configuration: # Processor-specific configurations
+ - <configuration-option>
+
+ - type: sink # Data sink (output)
+ ref: <reference> # Unique reference ID
+ id: <sink-id> # ID of the sink
+ connectedTo: # Previous pipeline element reference(s)
+ - <reference>
+ configuration: # Sink-specific configurations
+ - <configuration-option>
+
+createOptions:
+ start: <true|false> # Whether to start the pipeline immediately
+```
+
+## Pipeline Elements
+
+### Building blocks
+
+The key building blocks of a pipeline include:
+
+#### Stream
+A stream represents a data source in the pipeline, such as a sensor feed, API, or message queue. It is referenced by a unique ID that identifies the data stream.
+
+#### Processor
+A processor transforms, filters, or enriches the data coming from a stream or another processor. Each processor has configuration parameters that control its behavior, such as filtering criteria or mapping options.
+
+#### Sink
+A sink sends the processed data to a final destination, such as a database, file storage, or another service. Sinks may also have configuration options that specify where and how the data should be sent.
+
+A pipeline element is selected by providing its ID. For processors and sinks, the ID refers to the `appId` of the pipeline element, e.g., `org.apache.streampipes.processors.filters.jvm.numericalfilter`.
+For data streams, the ID refers to the `elementId` of the data stream.
+
+To define connections between pipeline elements, the `ref` and `connectedTo` fields can be used.
+`ref` can be a short string (e.g., `stream01` or `processor01`) which will be used as an internal identifier of the pipeline element.
+Within the `connectedTo` list, connections to other pipeline elements can be defined.
+Each item of the list should relate to an existing `ref`.
+
+### Configuration
+
+In the `configuration` section, which only applies for data processors and sinks, the pipeline element configuration can be applied.
+The configuration options depend on the pipeline element and have the same structure as the adapter configuration (see [Adapters as Code](use-programmatically-create-adapters))
+The easiest way to determine a valid configuration is the web interface.
+
+After creating a pipeline in the web interface and clicking on `Save pipeline`, the option `Show pipeline configuration as code` shows the current pipeline configuration in YAML or JSON format:
+
+<img className="docs-image" src="/img/03_use-programmatically-create-pipelines/01_pipeline-editor-pipeline-as-code.png" alt="StreamPipes Pipeline Editor Code View"/>
+
+Another option is to view the pipeline details for an existing pipeline. Here, the YAMl definition of the pipeline can be viewed by clicking the `View pipeline as code` button:
+
+<img className="docs-image" src="/img/03_use-programmatically-create-pipelines/02_pipeline-details-pipeline-as-code.png" alt="StreamPipes Pipeline Editor Code View"/>
+
+
+## Example pipeline as Code
+
+Here's an example of a pipeline written in YAML format:
+
+```yaml
+id: my-pipeline
+name: "Density Filter Pipeline"
+description: "A pipeline that filters data based on the density and stores it in a data lake."
+pipelineElements:
+ - type: stream
+ ref: stream01
+ id: sp:spdatastream:GWWzMD
+ - type: processor
+ ref: processor01
+ id: org.apache.streampipes.processors.filters.jvm.numericalfilter
+ connectedTo:
+ - stream01
+ configuration:
+ - number-mapping: s0::density
+ - operation: <
+ - value: "12"
+ - type: sink
+ ref: sink01
+ id: org.apache.streampipes.sinks.internal.jvm.datalake
+ connectedTo:
+ - processor01
+ configuration:
+ - timestamp_mapping: s0::timestamp
+ - db_measurement: my-measurement
+ - schema_update: Update schema
+ - dimensions_selection:
+ - sensorId
+ - ignore_duplicates: false
+createOptions:
+ start: false
+```
+
+Stream: The pipeline begins with a data stream (sp:spdatastream:GWWzMD) referenced by stream01. This is the source of the data.
+
+Processor: The data is passed through a numerical filter processor (org.apache.streampipes.processors.filters.jvm.numericalfilter) which checks if the field s0::density is less than 12. The filter is connected to the stream via reference stream01.
+
+Sink: The filtered data is then sent to a data lake (org.apache.streampipes.sinks.internal.jvm.datalake). The sink is configured with several parameters including the mapping of the timestamp (s0::timestamp) and schema update options. The sink is connected to the processor via reference processor01.
+
+Create Options: The pipeline is set to not start automatically (start: false).
+
+## API
+
+To create a new pipeline, call the StreamPipes API as follows:
+
+```
+POST /streampipes-backend/api/v2/compact-pipelines
+Content-type: application/yml
+Accept: application/yml
+```
+
+You must provide valid credentials by either adding a Bearer token or an API key:
+
+```
+X-API-USER: your username
+X-API-KEY: your api key
+```
+
+The body of the request should contain the YAML definition.
+
+:::info
+It is also possible to provide the pipeline specification as a JSON document. In this case, change the `Content-type` to `application/json`.
diff --git a/website-v2/versioned_docs/version-0.93.0/06_extend-client.md b/docs/04_use-programmatic-access.md
similarity index 98%
rename from website-v2/versioned_docs/version-0.93.0/06_extend-client.md
rename to docs/04_use-programmatic-access.md
index f584c3d2c..83eb1b120 100644
--- a/website-v2/versioned_docs/version-0.93.0/06_extend-client.md
+++ b/docs/04_use-programmatic-access.md
@@ -1,7 +1,7 @@
---
-id: extend-client
-title: StreamPipes Client
-sidebar_label: StreamPipes Client
+id: use-programmatic-access
+title: Programmatic Access
+sidebar_label: Programmatic Access
---
diff --git a/docs/03_use-shortcuts.md b/docs/04_use-shortcuts.md
similarity index 100%
rename from docs/03_use-shortcuts.md
rename to docs/04_use-shortcuts.md
diff --git a/docs/05_deploy-choosing-the-right-flavor.md b/docs/05_deploy-choosing-the-right-flavor.md
deleted file mode 100644
index a140bf46e..000000000
--- a/docs/05_deploy-choosing-the-right-flavor.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-id: choosing-the-right-flavor
-title: Choosing the right flavor
-sidebar_label: Service selection options
----
-
-
-## Introduction
-
-StreamPipes comes with many different options to customize a deployment. This section introduces the various options you can choose from when installing StreamPipes.
-
-You can choose between various **deployment modes**, choose from two different core packages and several extension packages, wich are described below.
-
-## Deployment Mode
-
-For the deployment model, you choose between a standard multi-container `Docker-Compose` installation and the `Kubernetes` installation.
-we provide several `Docker-Compose` files for the various options shown here and a `helm chart`.
-See [Docker Deployment](05_deploy-docker.md) and [Kubernetes Deployment](05_deploy-kubernetes.md) for more details.
-
-### Running StreamPipes in a non-containerized environment
-
-Of course, it is also possible to launch StreamPipes in a non-containerized environment.
-You will need to build your own executable binaries by running `mvn package`.
-In addition, it is required to install the required 3rd party services (see [Architecture](07_technicals-architecture.md)) and configure the environment variables as described in [Environment Variables](05_deploy-environment-variables.md).
-
-## Core Service
-
-We provide two different pre-packaged versions of core services. The default `streampipes-service-core` is a packaged JAR file which includes client libraries for the various messaging systems StreamPipes supports at the cost of a larger file size.
-In case you plan to run StreamPipes on less resource-intensive hardware, we recommend to switch to the `streampipes-service-core-minimal` package, which only includes support for MQTT and NATS, but has a smaller file size and slightly improved startup performance.
-
-## Extension Services
-
-Similar to the core, we provide several pre-packaged extension services which differ mainly by their file size, number of supported adapters and pipeline elements and messaging systems.
-
-The following packages exist:
-
-* `streampipes-extensions-all-jvm` is the largest package and includes all official StreamPipes adapters and pipeline elements. It also includes support for all messaging systems Streampipes currently supports.
-* `streampipes-extensions-all-iiot` is a subset of the aforementioned package and excludes adapters and pipeline elements which are often not relevant for IIoT use cases. For instance, the package excludes text mining-related pipeline elements.
-* `streampipes-extensions-iiot-minimal` is a subset of the aforementioned package and includes only support for the lightweight messaging systems MQTT and NATS.
-
-Generally said, in cases where you plan to deploy StreamPipes on a resource-limited edge device, we recommend a combination of the `streampipes-service-core-minimal` and `streampipes-extensions-iiot-minimal` package. This could, for instance, be a device with less than 4GB memory.
-In other cases, it depends on the use case and if you need all adapters and pipeline elements or are ok with the IIoT-related extensions.
-
-## Messaging System
-
-StreamPipes can be configured to use different messaging systems for exchanging events between adapters and pipeline elements.
-The section [Messaging](07_technicals-messaging.md) includes detailed information on the configuration of messaging systems.
diff --git a/docs/05_deploy-docker.md b/docs/05_deploy-docker.md
deleted file mode 100644
index 08dbfaa19..000000000
--- a/docs/05_deploy-docker.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-id: deploy-docker
-title: Docker Deployment
-sidebar_label: Docker Deployment
----
-
-StreamPipes Compose is a simple collection of user-friendly `docker-compose` files that easily lets gain first-hand experience with Apache StreamPipes.
-
-> **NOTE**: We recommend StreamPipes Compose to only use for initial try-out and testing. If you are a developer and
-> want to develop new pipeline elements or core feature, use the [StreamPipes CLI](06_extend-cli.md).
-
-#### TL;DR: A one-liner to rule them all :-)
-
-```bash
-docker-compose up -d
-```
-Go to http://localhost to finish the installation in the browser. Once finished, switch to the pipeline editor and start the interactive tour or check the [online tour](https://streampipes.apache.org/docs/user-guide-tour/) to learn how to create your first pipeline!
-
-## Prerequisites
-* Docker >= 17.06.0
-* Docker-Compose >= 1.17.0 (Compose file format: 3.4)
-* Google Chrome (recommended), Mozilla Firefox, Microsoft Edge
-
-Tested on: **macOS, Linux, Windows 10 upwards** (CMD, PowerShell, GitBash)
-
-**macOS** and **Windows** users can easily get Docker and Docker-Compose on their systems by installing **Docker for Mac/Windows** (recommended).
-
-> **NOTE**: On purpose, we disabled all port mappings except of http port **80** to access the StreamPipes UI to provide minimal surface for conflicting ports.
-
-## Usage
-We provide several options to get you going:
-
-- **default**: Default docker-compose file, called `docker-compose.yml`.
-- **nats**: The standard installation which uses Nats as message broker,called `docker-compose.nats.yml`.
-- **full**: Contains experimental Flink wrappers, called `docker-compose.full.yml`.
-
-:::info
-
-Other options include configurations for the internally used message broker. The current default is `Kafka`, but you can also start StreamPipes with `Nats`, `MQTT` or `Apache Pulsar`.
-Use one of the other provided docker-compose files.
-
-:::
-
-**Starting** the **default** option is as easy as simply running:
-> **NOTE**: Starting might take a while since `docker-compose up` also initially pulls all Docker images from Dockerhub.
-
-```bash
-docker-compose up -d
-# go to `http://localhost` after all services are started
-```
-After all containers are successfully started just got to your browser and visit http://localhost to finish the installation. Once finished, switch to the pipeline editor and start the interactive tour or check the [online tour](https://streampipes.apache.org/docs/user-guide-tour/) to learn how to create your first pipeline!
-
-**Stopping** the **default** option is similarly easy:
-```bash
-docker-compose down
-# if you want to remove mapped data volumes, run:
-# docker-compose down -v
-```
-
-Starting the **nats** option is almost the same, just specify the `docker-compose.nats.yml` file:
-```bash
-docker-compose -f docker-compose.nats.yml up -d
-# go to `http://localhost` after all services are started
-```
-**Stopping** the **nats** option:
-```bash
-docker-compose -f docker-compose.nats.yml down
-```
-
-
-Starting the **full** option is almost the same, just specify the `docker-compose.full.yml` file:
-```bash
-docker-compose -f docker-compose.full.yml up -d
-#go to `http://localhost` after all services are started
-```
-Stopping the **full** option:
-```bash
-docker-compose -f docker-compose.nats.yml down
-#docker-compose -f docker-compose.nats.yml down -v
-```
-
-## Update services
-To actively pull the latest available Docker images use:
-```bash
-docker-compose pull
-```
-
-## Upgrade
-To upgrade to another StreamPipes version, simply edit the `SP_VERSION` in the `.env` file.
-```
-SP_VERSION=<VERSION>
-```
diff --git a/docs/05_deploy-environment-variables.md b/docs/05_deploy-environment-variables.md
deleted file mode 100644
index c4066fb70..000000000
--- a/docs/05_deploy-environment-variables.md
+++ /dev/null
@@ -1,88 +0,0 @@
----
-id: deploy-environment-variables
-title: Environment Variables
-sidebar_label: Environment Variables
----
-
-## Introduction
-
-A StreamPipes installation can be configured in many ways by providing environment variables.
-The following lists describe available environment variables along with a description.
-
-## StreamPipes Core Service
-
-### Internal
-
-| Env Variable Name | Default Value | Description |
-|--------------------------------|---------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|
-| SP_DEBUG | false | Should only be set for local development to reroute traffic to localhost |
-| SP_INITIAL_ADMIN_EMAIL | admin@streampipes.apache.org | Installation-time variable for defining the default user name |
-| SP_INITIAL_ADMIN_PASSWORD | admin | Installation-time variable for defining the default user password |
-| SP_INITIAL_SERVICE_USER | sp-service-client | Installation-time variable for defining the initial service user (must be same to the configured user in the extension service) |
-| SP_INITIAL_SERVICE_USER_SECRET | my-apache-streampipes-secret-key-change-me | Installation-time variable for defining the initial service secret (minimum 35 chars) |
-| SP_JWT_SECRET | Empty for Docker, Auto-generated for K8s | JWT secret, base64-encoded, minimum 256 bits |
-| SP_JWT_SIGNING_MODE | HMAC | HMAC or RSA, RSA can be used to authenticate Core-Extensions communication |
-| SP_JWT_PRIVATE_KEY_LOC | Empty | Required id SP_JWT_SIGNING_MODE=RSA, path to the private key, can be generated in the UI (Settings->Security->Generate Key Pair) |
-| SP_ENCRYPTION_PASSCODE | eGgemyGBoILAu3xckolp for Docker, Auto-generated for K8s | Encryption passcode for `SecretStaticProperties` |
-| SP_PRIORITIZED_PROTOCOL | kafka | Messaging layer for data exchange between extensions |
-
-
-### Third-party services
-
-| Env Variable Name | Default Value | Description |
-|------------------------|---------------|---------------------------------------------------------------------------|
-| SP_COUCHDB_HOST | couchdb | The hostname or IP of the CouchDB database |
-| SP_COUCHDB_PROTOCOL | http | The protocol (http or https) of the CouchDB database |
-| SP_COUCHDB_PORT | 5984 | The port of the CouchDB database |
-| SP_COUCHDB_USER | admin | The user of the CouchDB database (must have permissions to add databases) |
-| SP_COUCHDB_PASSWORD | admin | The password of the CouchDB user |
-| SP_TS_STORAGE_HOST | influxdb | The hostname of the timeseries storage (currently InfluxDB) |
-| SP_TS_STORAGE_PORT | 8086 | The port of the timeseries storage |
-| SP_TS_STORAGE_PROTOCOL | http | The protocol of the timeseries storage (http or https) |
-| SP_TS_STORAGE_BUCKET | sp | The InfluxDB storage bucket name |
-| SP_TS_STORAGE_ORG | sp | The InfluxDB storage org |
-| SP_TS_STORAGE_TOKEN | sp-admin | The InfluxDB storage token |
-
-The InfluxDB itself can be configured by providing the variables `DOCKER_INFLUXDB_INIT_PASSWORD` and `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`. See the `docker-compose` file for details.
-
-## StreamPipes Extensions Service
-
-### Internal
-
-| Env Variable Name | Default Value | Description |
-|--------------------------------|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------|
-| SP_CLIENT_USER | Empty | Service account for communication with Core |
-| SP_CLIENT_SECRET | Empty | Service secret for communication with Core |
-| SP_EXT_AUTH_MODE | sp-service-client | When set to AUTH: all interfaces are only accessible with authentication (requires SP_JET_PRIVATE_KEY_LOC in Core) |
-| SP_JWT_PUBLIC_KEY_LOC | my-apache-streampipes-secret-key-change-me | Path to the public key of the corresponding SP_JWT_PRIVATE_KEY defined in Core |
-
-### Third-party services
-
-The following variables are only required for extensions which require access to the internal time-series storage (the `Data Lake Sink`).
-
-| Env Variable Name | Default Value | Description |
-|------------------------|---------------|---------------------------------------------------------------------------|
-| SP_TS_STORAGE_HOST | influxdb | The hostname of the timeseries storage (currently InfluxDB) |
-| SP_TS_STORAGE_PORT | 8086 | The port of the timeseries storage |
-| SP_TS_STORAGE_PROTOCOL | http | The protocol of the timeseries storage (http or https) |
-| SP_TS_STORAGE_BUCKET | sp | The InfluxDB storage bucket name |
-| SP_TS_STORAGE_ORG | sp | The InfluxDB storage org |
-| SP_TS_STORAGE_TOKEN | sp-admin | The InfluxDB storage token |
-
-
-## Recommended variables
-
-For a standard deployment, it is recommended to customize the following variables:
-
-* Initiales Admin-Passwort (SP_INITIAL_ADMIN_PASSWORD, Core)
-* Initiales Client Secret (SP_INITIAL_SERVICE_USER_SECRET, Core)
-* Client Secret Extensions (SP_CLIENT_USER, Extensions)
-* Encryption Passcode (SP_ENCRYPTION_PASSCODE, Core)
-* CouchDB-Password (SP_COUCHDB_PASSWORD, Core + Extensions + CouchDB)
-* InfluxDB Storage Password (DOCKER_INFLUXDB_INIT_PASSWORD, InfluxDB)
-* InfluxDB Storage Token (SP_TS_STORAGE_TOKEN (Core, Extensions)
- * DOCKER_INFLUXDB_INIT_ADMIN_TOKEN (InfluxDB service)
-
-## Auto-generation of variables in K8s setups
-
-See the [Kubernetes Guide](05_deploy-kubernetes.md) for an overview of auto-generated variables.
diff --git a/docs/05_deploy-kubernetes.md b/docs/05_deploy-kubernetes.md
deleted file mode 100644
index 6734676b4..000000000
--- a/docs/05_deploy-kubernetes.md
+++ /dev/null
@@ -1,269 +0,0 @@
----
-id: deploy-kubernetes
-title: Kubernetes Deployment
-sidebar_label: Kubernetes Deployment
----
-
-## Prerequisites
-Requires Helm (https://helm.sh/) and an actively running Kubernetes cluster.
-
-## Usage
-We provide helm chart options to get you going in the `installer/k8s`folder.
-
-**Starting** the default helm chart option is as easy as simply running the following command from the root of this folder:
-> **NOTE**: Starting might take a while since we also initially pull all Docker images from Dockerhub.
-
-```bash
-helm install streampipes ./
-```
-After a while, all containers should successfully started, indicated by the `Running` status.
-
-The `values.yaml` file contains several configuration options to customize your StreamPipes installation. See the section below for all configuration options.
-
-## Ingress
-
-The helm chart provides several options to configure an Ingress or to define an Ingressroute that directly integrates with Traefik.
-
-## Dynamic Volume Provisioning
-
-You can override the `storageClassName` variable to configure StreamPipes for dynamic volume provisioning.
-
-## Parameters
-
-Here is an overview of the supported parameters to configure StreamPipes.
-
-### Common parameters
-
-| Parameter Name | Description | Value |
-|--------------------------------------------------|---------------------------------------------------------|-----------------------------------------|
-| deployment | Deployment type (lite or full) | lite |
-| preferredBroker | Preferred broker for deployment | "nats" |
-| monitoringSystem | Enable monitoring system (true/false) | false |
-| pullPolicy | Image pull policy | "Always" |
-| restartPolicy | Restart policy for the container | Always |
-| persistentVolumeReclaimPolicy | Reclaim policy for persistent volumes | "Delete" |
-| persistentVolumeAccessModes | Access mode for persistent volumes | "ReadWriteOnce" |
-| initialDelaySeconds | Initial delay for liveness and readiness probes | 60 |
-| periodSeconds | Interval between liveness and readiness probes | 30 |
-| failureThreshold | Number of consecutive failures for readiness probes | 30 |
-| hostPath | Host path for the application | "" |
-
-### StreamPipes common parameters
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|---------------------------------------------------------|------------------------------------------|
-| streampipes.version | StreamPipes version | "0.93.0-SNAPSHOT" |
-| streampipes.registry | StreamPipes registry URL | "apachestreampipes" |
-| streampipes.auth.secretName | The secret name for storing secrets | "sp-secrets" |
-| streampipes.auth.users.admin.user | The initial admin user | "admin@streampipes.apache.org" |
-| streampipes.auth.users.admin.password | The initial admin password (leave empty for autogen) | "admin" |
-| streampipes.auth.users.service.user | The initial service account user | "sp-service-client" |
-| streampipes.auth.users.service.secret | The initial service account secret | empty (auto-generated) |
-| streampipes.auth.encryption.passcode | Passcode for value encryption | empty (auto-generated) |
-| streampipes.core.appName | StreamPipes backend application name | "backend" |
-| streampipes.core.port | StreamPipes backend port | 8030 |
-| streampipes.core.persistence.storageClassName | Storage class name for backend PVs | "hostpath" |
-| streampipes.core.persistence.storageSize | Size of the backend PV | "1Gi" |
-| streampipes.core.persistence.claimName | Name of the backend PersistentVolumeClaim | "backend-pvc" |
-| streampipes.core.persistence.pvName | Name of the backend PersistentVolume | "backend-pv" |
-| streampipes.core.service.name | Name of the backend service | "backend" |
-| streampipes.core.service.port | TargetPort of the StreamPipes backend service | 8030 |
-| streampipes.ui.appName | StreamPipes UI application name | "ui" |
-| streampipes.ui.resolverActive | Flag for enabling DNS resolver for Nginx proxy | true |
-| streampipes.ui.port | StreamPipes UI port | 8088 |
-| streampipes.ui.resolver | DNS resolver for Nginx proxy | "kube-dns.kube-system.svc.cluster.local" |
-| streampipes.ui.service.name | Name of the UI service | "ui" |
-| streampipes.ui.service.type | Type of the UI service | "ClusterIP" |
-| streampipes.ui.service.nodePort | Node port for the UI service | 8088 |
-| streampipes.ui.service.port | TargetPort of the StreamPipes UI service | 8088 |
-| streampipes.ingress.active | Flag for enabling Ingress for StreamPipes | false |
-| streampipes.ingress.annotations | Annotations for Ingress | {} |
-| streampipes.ingress.host | Hostname for Ingress | "" |
-| streampipes.ingressroute.active | Flag for enabling IngressRoute for StreamPipes | true |
-| streampipes.ingressroute.annotations | Annotations for IngressRoute | {} |
-| streampipes.ingressroute.entryPoints | Entry points for IngressRoute | ["web", "websecure"] |
-| streampipes.ingressroute.host | Hostname for IngressRoute | "" |
-| streampipes.ingressroute.certResolverActive | Flag for enabling certificate resolver for IngressRoute | true |
-| streampipes.ingressroute.certResolver | Certificate resolver for IngressRoute | "" |
-
-
-### Extensions common parameters
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|---------------------------------------------------------|------------------------------------------|
-| extensions.iiot.appName | IIoT extensions application name | extensions-all-iiot |
-| extensions.iiot.port | Port for the IIoT extensions application | 8090 |
-| extensions.iiot.service.name | Name of the IIoT extensions service | extensions-all-iiot |
-| extensions.iiot.service.port | TargetPort of the IIoT extensions service | 8090 |
-
-
-### External common parameters
-
-#### Couchdb common parameters
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
-| external.couchdb.appName | CouchDB application name | "couchdb" |
-| external.couchdb.version | CouchDB version | 3.3.1 |
-| external.couchdb.user | CouchDB admin username | "admin" |
-| external.couchdb.password | CouchDB admin password | empty (auto-generated) |
-| external.couchdb.port | Port for the CouchDB service | 5984 |
-| external.couchdb.service.name | Name of the CouchDB service | "couchdb" |
-| external.couchdb.service.port | TargetPort of the CouchDB service | 5984 |
-| external.couchdb.persistence.storageClassName | Storage class name for CouchDB PVs | "hostpath" |
-| external.couchdb.persistence.storageSize | Size of the CouchDB PV | "1Gi" |
-| external.couchdb.persistence.claimName | Name of the CouchDB PersistentVolumeClaim | "couchdb-pvc" |
-| external.couchdb.persistence.pvName | Name of the CouchDB PersistentVolume | "couchdb-pv" |
-
-#### Influxdb common parameters
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
-| external.influxdb.appName | InfluxDB application name | "influxdb" |
-| external.influxdb.version | InfluxDB version | 2.6 |
-| external.influxdb.username | InfluxDB admin username | "admin" |
-| external.influxdb.password | InfluxDB admin password | empty (auto-generated) |
-| external.influxdb.adminToken | InfluxDB admin token | empty (auto-generated) |
-| external.influxdb.initOrg | InfluxDB initial organization | "sp" |
-| external.influxdb.initBucket | InfluxDB initial bucket | "sp" |
-| external.influxdb.initMode | InfluxDB initialization mode | "setup" |
-| external.influxdb.apiPort | Port number for the InfluxDB service (API) | 8083 |
-| external.influxdb.httpPort | Port number for the InfluxDB service (HTTP) | 8086 |
-| external.influxdb.grpcPort | Port number for the InfluxDB service (gRPC) | 8090 |
-| external.influxdb.service.name | Name of the InfluxDB service | "influxdb" |
-| external.influxdb.service.apiPort | TargetPort of the InfluxDB service for API | 8083 |
-| external.influxdb.service.httpPort | TargetPort of the InfluxDB service for HTTP | 8086 |
-| external.influxdb.service.grpcPort | TargetPort of the InfluxDB service for gRPC | 8090 |
-| external.influxdb.persistence.storageClassName | Storage class name for InfluxDB PVs | "hostpath" |
-| external.influxdb.persistence.storageSize | Size of the InfluxDB PV | "1Gi" |
-| external.influxdb.persistence.storageSizeV1 | Size of the InfluxDB PV for v1 databases | "1Gi" |
-| external.influxdb.persistence.claimName | Name of the InfluxDBv2 PersistentVolumeClaim | "influxdb2-pvc" |
-| external.influxdb.persistence.claimNameV1 | Name of the InfluxDBv1 PersistentVolumeClaim | "influxdb-pvc" |
-| external.influxdb.persistence.pvName | Name of the InfluxDBv2 PersistentVolume | "influxdb2-pv" |
-| external.influxdb.persistence.pvNameV1 | Name of the InfluxDBv1 PersistentVolume | "influxdb-pv" |
-
-
-#### Nats common parameters
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
-| external.nats.appName | NATS application name | "nats" |
-| external.nats.port | Port for the NATS service | 4222 |
-| external.nats.version | NATS version | |
-| external.nats.service.type | Type of the NATS service | "NodePort" |
-| external.nats.service.externalTrafficPolicy | External traffic policy for the NATS service | "Local" |
-| external.nats.service.name | Name of the NATS service | "nats" |
-| external.nats.service.port | TargetPort of the NATS service | 4222 |
-
-
-#### Kafka common parameters
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
-| external.kafka.appName | Kafka application name | "kafka" |
-| external.kafka.version | Kafka version | 2.2.0 |
-| external.kafka.port | Port for the Kafka service | 9092 |
-| external.kafka.external.hostname | Name which will be advertised to external clients. Clients which use (default) port 9094 | "localhost"
-| external.kafka.service.name | Name of the Kafka service | "kafka" |
-| external.kafka.service.port | TargetPort of the Kafka service | 9092 |
-| external.kafka.service.portOutside | Port for Kafka client outside of the cluster | 9094 |
-| external.kafka.persistence.storageClassName | Storage class name for Kafka PVs | "hostpath" |
-| external.kafka.persistence.storageSize | Size of the Kafka PV | "1Gi" |
-| external.kafka.persistence.claimName | Name of the Kafka PersistentVolumeClaim | "kafka-pvc" |
-| external.kafka.persistence.pvName | Name of the Kafka PersistentVolume | "kafka-pv" |
-|
-
-#### Zookeeper common parameters
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
-| external.zookeeper.appName | ZooKeeper application name | "zookeeper" |
-| external.zookeeper.version | ZooKeeper version | 3.4.13 |
-| external.zookeeper.port | Port for the ZooKeeper service | 2181 |
-| external.zookeeper.service.name | Name of the ZooKeeper service | "zookeeper" |
-| external.zookeeper.service.port | TargetPort of the ZooKeeper service | 2181 |
-| external.zookeeper.persistence.storageClassName | Storage class name for ZooKeeper PVs | "hostpath" |
-| external.zookeeper.persistence.storageSize | Size of the ZooKeeper PV | "1Gi" |
-| external.zookeeper.persistence.claimName | Name of the ZooKeeper PersistentVolumeClaim | "zookeeper-pvc" |
-| external.zookeeper.persistence.pvName | Name of the ZooKeeper PersistentVolume | "zookeeper-pv" |
-
-
-#### Pulsar common parameters
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
-| external.pulsar.appName | pulsar application name | "pulsar" |
-| external.pulsar.version | pulsar version | 3.0.0 |
-| external.pulsar.port | Port for the pulsar service | 6650 |
-| external.pulsar.service.name | Name of the pulsar service | "pulsar" |
-| external.pulsar.service.port | TargetPort of the pulsar service | 6650 |
-| external.pulsar.persistence.storageClassName | Storage class name for pulsar PVs | "hostpath" |
-| external.pulsar.persistence.storageSize | Size of the pulsar PV | "1Gi" |
-| external.pulsar.persistence.claimName | Name of the pulsar PersistentVolumeClaim | "pulsar-pvc" |
-| external.pulsar.persistence.pvName | Name of the pulsar PersistentVolume | "pulsar-pv" |
-
-### Monitoring common parameters
-
-#### Monitoring - Prometheus
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
-| prometheus.appName | Prometheus application name | "prometheus" |
-| prometheus.version | Prometheus version | 2.45.0 |
-| prometheus.port | Prometheus port | 9090 |
-| prometheus.service.name | Prometheus service name | "prometheus" |
-| prometheus.service.port | Prometheus service port | 9090 |
-| prometheus.persistence.storageClassName | Prometheus storage class name | "hostpath" |
-| prometheus.persistence.storageSize | Prometheus storage size | "2Gi" |
-| prometheus.persistence.claimName | Prometheus PVC claim name | "prometheus-pvc" |
-| prometheus.persistence.pvName | Prometheus PV name | "prometheus-pv" |
-| prometheus.persistence.tokenStorageSize | Prometheus token storage size | "16Ki" |
-| prometheus.config.scrapeInterval | Prometheus scrape interval | 10s |
-| prometheus.config.evaluationInterval | Prometheus evaluation interval | 15s |
-| prometheus.config.backendJobName | Prometheus backend job name | "backend" |
-| prometheus.config.extensionsName | Prometheus extensions job name | "extensions-all-iiot" |
-| prometheus.config.tokenFileName | Prometheus token file name | "token" |
-| prometheus.config.tokenFileDir | Prometheus token file directory | "/opt/data"
-
-#### Monitoring - Grafana
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
-| grafana.appName | Grafana application name | "grafana" |
-| grafana.version | Grafana version | 10.1.2 |
-| grafana.port | Grafana port | 3000 |
-| grafana.service.name | Grafana service name | "grafana" |
-| grafana.service.port | Grafana service port | 3000 |
-| grafana.persistence.storageClassName | Grafana storage class name | "hostpath" |
-| grafana.persistence.storageSize | Grafana storage size | "1Gi" |
-| grafana.persistence.claimName | Grafana PVC claim name | "grafana-pvc" |
-| grafana.persistence.pvName | Grafana PV name | "grafana-pv" |
-
-
-## Auto-generation of parameters.
-
-The helm chart includes a `secrets.yaml` file which auto-generates several settings as follows:
-
-```yaml
-
-apiVersion: v1
-kind: Secret
-metadata:
- name: sp-secrets
- namespace: {{ .Release.Namespace | quote }}
-type: Opaque
-data:
- sp-initial-admin-password: {{ ternary (randAlphaNum 10) .Values.streampipes.auth.users.admin.password (empty .Values.streampipes.auth.users.admin.password) | b64enc | quote }}
- sp-initial-client-secret: {{ ternary (randAlphaNum 35) .Values.streampipes.auth.users.service.secret (empty .Values.streampipes.auth.users.service.secret) | b64enc | quote }}
- sp-encryption-passcode: {{ ternary (randAlphaNum 20) .Values.streampipes.auth.encryption.passcode (empty .Values.streampipes.auth.encryption.passcode) | b64enc | quote }}
- sp-couchdb-password: {{ ternary (randAlphaNum 20) .Values.external.couchdb.password (empty .Values.external.couchdb.password) | b64enc | quote }}
- sp-ts-storage-password: {{ ternary (randAlphaNum 20) .Values.external.influxdb.password (empty .Values.external.influxdb.password) | b64enc | quote }}
- sp-ts-storage-token: {{ ternary (randAlphaNum 20) .Values.external.influxdb.adminToken (empty .Values.external.influxdb.adminToken) | b64enc | quote }}
-
-```
-
-
-## Deleting the current helm chart deployment:
-```bash
-helm uninstall streampipes
-```
diff --git a/docs/05_deploy-use-ssl.md b/docs/05_deploy-use-ssl.md
deleted file mode 100644
index d5762b8dc..000000000
--- a/docs/05_deploy-use-ssl.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-id: deploy-use-ssl
-title: Use SSL
-sidebar_label: Use SSL
----
-
-This page explains how SSL Certificates can be used to provide transport layer security between your Browser and the Streampipes Backend.
-
-## Prerequisites
-You need a valid Certificate consisting of a Private and a Public Key. Both Keys must be in PEM Format. Please note that your Private Key should never be shared, otherwise the communication can not be considered secure.
-
-## Edit docker-compose.yml
-In order to use SSL you have to open port 443 on the nginx Service. Incoming insecure Traffic on Port 80 will be automatically rerouted to Port 443.
-
-The Environment-Variable NGINX_SSL must be set to "true".
-
-Finally you have to inject the Certificates into the Docker-Container. In the example below, the Certificates are placed in the directory /etc/ssl/private/ on the host machine. Please change the path according to the place where the Certificates are located on your machine. The path after the colon should not be changed!
-```yaml
-[...]
- nginx:
- image: apachestreampipes/ui
- ports:
- - "80:80"
- - "443:443"
- environment:
- - NGINX_SSL=true
- volumes:
- - /etc/ssl/private/private.pem:/etc/nginx/ssl/ssl.pem
- - /etc/ssl/private/public.pem:/etc/nginx/ssl/cert.pem
- depends_on:
- - backend
- networks:
- spnet:
-[...]
-```
diff --git a/website-v2/versioned_docs/version-0.93.0/06_extend-tutorial-adapters.md b/docs/05_how-to-custom-adapter.md
similarity index 98%
rename from website-v2/versioned_docs/version-0.93.0/06_extend-tutorial-adapters.md
rename to docs/05_how-to-custom-adapter.md
index 4e95cba9a..8b009cf4a 100644
--- a/website-v2/versioned_docs/version-0.93.0/06_extend-tutorial-adapters.md
+++ b/docs/05_how-to-custom-adapter.md
@@ -1,7 +1,7 @@
---
-id: extend-tutorial-adapters
-title: "Tutorial: Build Custom Adapters"
-sidebar_label: "Tutorial: Adapters"
+id: how-to-custom-adapter
+title: "Write a custom adapter"
+sidebar_label: "Write a custom adapter"
---
In this tutorial, we will create a new data source consisting of a single data stream.
@@ -18,7 +18,7 @@ to show how we can extend our existing adapter to be configurable via the UI.
This tutorial shows how to build your own type of adapter.
It is intended for people who are interested in extending StreamPipes to meet their own needs.
If you are here to explore StreamPipes and are interested in using an adapter, you may want to
-continue [here](./03_use-connect.md).
+continue [here](04_use-connect.md).
:::
## Objective
@@ -265,7 +265,7 @@ The two main parts that should always happen within this method are highlighted
* `Line 10`: Creating an event is crucial for our adapters. This event is then filled with data by the adapter before it
is distributed.
* `Line 13`: The event must finally be passed to the `collector`, which then takes the data and distributes it within
- StreamPipes in the form of a [data stream](./02_concepts-overview.md#data-stream).
+ StreamPipes in the form of a [data stream](03_concepts-terms.md#data-stream).
```java jsx {10,13} showLineNumbers
@Override
@@ -389,7 +389,7 @@ public GuessSchema onSchemaRequested(IAdapterParameterExtractor extractor,
An attribute of an Event is referred to as `property` in StreamPipes.
So in our case we have three properties.
Since StreamPipes creates a sample event in the UI when configuring the adapter (
-see [here](./03_use-connect.md#schema-editor)),
+see [here](04_use-connect.md#schema-editor)),
providing a meaningful sample value for every property allows StreamPipes to demonstrate its full potential.
Since every event schema is required to have a timestamp property, we provide a convenience definition (see `line 3`).
@@ -439,7 +439,7 @@ registering our adapter service with the core to make the adapter available in S
This is done within `provideServiceDefinition()`. Since we don't have the generic adapter ready yet,
we'll comment out its registration (`line 7`). Now we can run the `Init` class to register the adapter with your running
StreamPipes instance. If you don't have a running instance at your hand,
-you can take a look at our [Installation Guide](./01_try-installation.md).
+you can take a look at our [Installation Guide](02_installation.md).
```java jsx {7-8} showLineNumbers
@Override
diff --git a/website-v2/versioned_docs/version-0.95.0/06_extend-tutorial-data-processors.md b/docs/05_how-to-custom-data-processor.md
similarity index 97%
rename from website-v2/versioned_docs/version-0.95.0/06_extend-tutorial-data-processors.md
rename to docs/05_how-to-custom-data-processor.md
index 4c2d5ee25..a3406c715 100644
--- a/website-v2/versioned_docs/version-0.95.0/06_extend-tutorial-data-processors.md
+++ b/docs/05_how-to-custom-data-processor.md
@@ -1,7 +1,7 @@
---
-id: extend-tutorial-data-processors
-title: "Tutorial: Data Processors"
-sidebar_label: "Tutorial: Data Processors"
+id: how-to-custom-data-processor
+title: "Write a custom data processor"
+sidebar_label: "Write a custom data processor"
---
In this tutorial, we will add a new data processor.
@@ -42,7 +42,7 @@ mvn archetype:generate \
-DartifactId=my-example -DclassNamePrefix=MyExample -DpackageName=mypackagename
```
-You will see a project structure similar to the structure shown in the [archetypes](06_extend-archetypes.md) section.
+You will see a project structure similar to the structure shown in the [archetypes](07_extend-archetypes.md) section.
:::tip
@@ -218,7 +218,7 @@ The radius can be defined by adding a simple required text field to the descript
```
Such user-defined parameters are called _static properties_. There are many different types of static properties (see
-the [Processor SDK](06_extend-sdk-static-properties.md) for an overview). Similar to stream requirements, it is also recommended to type `Labels.withId("radius")` and move labels and descriptions to the resource file.
+the [Processor SDK](07_extend-sdk-static-properties.md) for an overview). Similar to stream requirements, it is also recommended to type `Labels.withId("radius")` and move labels and descriptions to the resource file.
In this example, we'll further add two very simple input fields to let users provide latitude and longitude of the
geofence center.
@@ -406,7 +406,7 @@ longitude fields from the input event (which is provided as a map data type) and
geofence center and these coordinates.
If the distance is below the given radius, the event is forwarded to the next operator.
-See the [event model](06_extend-sdk-event-model.md) guide to learn how to extract parameters from events.
+See the [event model](07_extend-sdk-event-model.md) guide to learn how to extract parameters from events.
## Registering the pipeline element
@@ -445,10 +445,10 @@ Execute the main method in the class `Init` we've just created.
The service automatically registers itself in StreamPipes.
To install the just created element, open the StreamPipes UI and follow the manual provided in
-the [user guide](03_use-install-pipeline-elements.md).
+the [user guide](06_configure-operate-extensions.md).
## Read more
Congratulations! You've just created your first data processor for StreamPipes.
There are many more things to explore and data processors can be defined in much more detail using multiple wrappers.
-Follow our [SDK guide](06_extend-sdk-static-properties.md) to see what's possible!
+Follow our [SDK guide](07_extend-sdk-static-properties.md) to see what's possible!
diff --git a/website-v2/versioned_docs/version-0.95.0/06_extend-tutorial-data-sinks.md b/docs/05_how-to-custom-data-sink.md
similarity index 98%
rename from website-v2/versioned_docs/version-0.95.0/06_extend-tutorial-data-sinks.md
rename to docs/05_how-to-custom-data-sink.md
index 09baeff71..15c700cef 100644
--- a/website-v2/versioned_docs/version-0.95.0/06_extend-tutorial-data-sinks.md
+++ b/docs/05_how-to-custom-data-sink.md
@@ -1,7 +1,7 @@
---
-id: extend-tutorial-data-sinks
-title: "Tutorial: Data Sinks"
-sidebar_label: "Tutorial: Data Sinks"
+id: how-to-custom-data-sink
+title: "Write a custom data sink"
+sidebar_label: "Write a custom data sink"
---
In this tutorial, we will add a new data sink using the standalone wrapper.
@@ -30,7 +30,7 @@ mvn archetype:generate -DarchetypeGroupId=org.apache.streampipes \
-DgroupId=org.streampipes.tutorial -DartifactId=sink-tutorial -DclassNamePrefix=Rest -DpackageName=mypackage
```
-You will see a project structure similar to the structure shown in the [archetypes](06_extend-archetypes.md) section.
+You will see a project structure similar to the structure shown in the [archetypes](07_extend-archetypes.md) section.
:::tip
@@ -263,7 +263,7 @@ Execute the main method in the class `Init` we've just created. The service auto
StreamPipes.
To install the created element, open the StreamPipes UI and follow the manual provided in
-the [user guide](03_use-install-pipeline-elements.md).
+the [user guide](06_configure-operate-extensions.md).
## Read more
diff --git a/docs/07_connect_mqtt.md b/docs/05_how-to-mqtt.md
similarity index 98%
rename from docs/07_connect_mqtt.md
rename to docs/05_how-to-mqtt.md
index bee2b3177..978c935b9 100644
--- a/docs/07_connect_mqtt.md
+++ b/docs/05_how-to-mqtt.md
@@ -1,7 +1,7 @@
---
-id: connect-mqtt
-title: MQTT
-sidebar_label: MQTT
+id: how-to-mqtt
+title: Integrate MQTT data
+sidebar_label: Integrate MQTT data
---
This document provides an overview of the MQTT connection and security configuration options available in StreamPipes. It covers how to configure broker connections, authentication modes, and TLS/SSL security settings — including guidance on keystore and truststore management for secure communication.
diff --git a/docs/05_how-to-opcua.md b/docs/05_how-to-opcua.md
new file mode 100644
index 000000000..5925eb2d8
--- /dev/null
+++ b/docs/05_how-to-opcua.md
@@ -0,0 +1,5 @@
+---
+id: how-to-opcua
+title: Integrate OPC UA data
+sidebar_label: Integrate OPC UA data
+---
diff --git a/website-v2/versioned_docs/version-0.93.0/05_deploy-kubernetes.md b/docs/06_configure-operate-deployment.md
similarity index 77%
rename from website-v2/versioned_docs/version-0.93.0/05_deploy-kubernetes.md
rename to docs/06_configure-operate-deployment.md
index 478e1a3c9..ca1f74339 100644
--- a/website-v2/versioned_docs/version-0.93.0/05_deploy-kubernetes.md
+++ b/docs/06_configure-operate-deployment.md
@@ -1,9 +1,140 @@
---
-id: deploy-kubernetes
-title: Kubernetes Deployment
-sidebar_label: Kubernetes Deployment
+id: configure-operate-deployment
+title: Deployment options
+sidebar_label: Deployment options
---
+
+## Introduction
+
+StreamPipes comes with many different options to customize a deployment. This section introduces the various options you can choose from when installing StreamPipes.
+
+You can choose between various **deployment modes**, choose from two different core packages and several extension packages, wich are described below.
+
+## Deployment Mode
+
+For the deployment model, you choose between a standard multi-container `Docker-Compose` installation and the `Kubernetes` installation.
+we provide several `Docker-Compose` files for the various options shown here and a `helm chart`.
+See [Docker Deployment](06_deploy-docker.md) and [Kubernetes Deployment](06_deploy-kubernetes.md) for more details.
+
+### Running StreamPipes in a non-containerized environment
+
+Of course, it is also possible to launch StreamPipes in a non-containerized environment.
+You will need to build your own executable binaries by running `mvn package`.
+In addition, it is required to install the required 3rd party services (see [Architecture](07_technicals-architecture.md)) and configure the environment variables as described in [Environment Variables](06_configure-operate-environment-variables.md).
+
+## Core Service
+
+We provide two different pre-packaged versions of core services. The default `streampipes-service-core` is a packaged JAR file which includes client libraries for the various messaging systems StreamPipes supports at the cost of a larger file size.
+In case you plan to run StreamPipes on less resource-intensive hardware, we recommend to switch to the `streampipes-service-core-minimal` package, which only includes support for MQTT and NATS, but has a smaller file size and slightly improved startup performance.
+
+## Extension Services
+
+Similar to the core, we provide several pre-packaged extension services which differ mainly by their file size, number of supported adapters and pipeline elements and messaging systems.
+
+The following packages exist:
+
+* `streampipes-extensions-all-jvm` is the largest package and includes all official StreamPipes adapters and pipeline elements. It also includes support for all messaging systems Streampipes currently supports.
+* `streampipes-extensions-all-iiot` is a subset of the aforementioned package and excludes adapters and pipeline elements which are often not relevant for IIoT use cases. For instance, the package excludes text mining-related pipeline elements.
+* `streampipes-extensions-iiot-minimal` is a subset of the aforementioned package and includes only support for the lightweight messaging systems MQTT and NATS.
+
+Generally said, in cases where you plan to deploy StreamPipes on a resource-limited edge device, we recommend a combination of the `streampipes-service-core-minimal` and `streampipes-extensions-iiot-minimal` package. This could, for instance, be a device with less than 4GB memory.
+In other cases, it depends on the use case and if you need all adapters and pipeline elements or are ok with the IIoT-related extensions.
+
+## Messaging System
+
+StreamPipes can be configured to use different messaging systems for exchanging events between adapters and pipeline elements.
+The section [Messaging](07_technicals-messaging.md) includes detailed information on the configuration of messaging systems.
+
+
+StreamPipes Compose is a simple collection of user-friendly `docker-compose` files that easily lets gain first-hand experience with Apache StreamPipes.
+
+> **NOTE**: We recommend StreamPipes Compose to only use for initial try-out and testing. If you are a developer and
+> want to develop new pipeline elements or core feature, use the [StreamPipes CLI](07_extend-cli.md).
+
+#### TL;DR: A one-liner to rule them all :-)
+
+```bash
+docker-compose up -d
+```
+Go to http://localhost to finish the installation in the browser. Once finished, switch to the pipeline editor and start the interactive tour or check the [online tour](https://streampipes.apache.org/docs/user-guide-tour/) to learn how to create your first pipeline!
+
+## Prerequisites
+* Docker >= 17.06.0
+* Docker-Compose >= 1.17.0 (Compose file format: 3.4)
+* Google Chrome (recommended), Mozilla Firefox, Microsoft Edge
+
+Tested on: **macOS, Linux, Windows 10 upwards** (CMD, PowerShell, GitBash)
+
+**macOS** and **Windows** users can easily get Docker and Docker-Compose on their systems by installing **Docker for Mac/Windows** (recommended).
+
+> **NOTE**: On purpose, we disabled all port mappings except of http port **80** to access the StreamPipes UI to provide minimal surface for conflicting ports.
+
+## Usage
+We provide several options to get you going:
+
+- **default**: Default docker-compose file, called `docker-compose.yml`.
+- **nats**: The standard installation which uses Nats as message broker,called `docker-compose.nats.yml`.
+- **full**: Contains experimental Flink wrappers, called `docker-compose.full.yml`.
+
+:::info
+
+Other options include configurations for the internally used message broker. The current default is `Kafka`, but you can also start StreamPipes with `Nats`, `MQTT` or `Apache Pulsar`.
+Use one of the other provided docker-compose files.
+
+:::
+
+**Starting** the **default** option is as easy as simply running:
+> **NOTE**: Starting might take a while since `docker-compose up` also initially pulls all Docker images from Dockerhub.
+
+```bash
+docker-compose up -d
+# go to `http://localhost` after all services are started
+```
+After all containers are successfully started just got to your browser and visit http://localhost to finish the installation. Once finished, switch to the pipeline editor and start the interactive tour or check the [online tour](https://streampipes.apache.org/docs/user-guide-tour/) to learn how to create your first pipeline!
+
+**Stopping** the **default** option is similarly easy:
+```bash
+docker-compose down
+# if you want to remove mapped data volumes, run:
+# docker-compose down -v
+```
+
+Starting the **nats** option is almost the same, just specify the `docker-compose.nats.yml` file:
+```bash
+docker-compose -f docker-compose.nats.yml up -d
+# go to `http://localhost` after all services are started
+```
+**Stopping** the **nats** option:
+```bash
+docker-compose -f docker-compose.nats.yml down
+```
+
+
+Starting the **full** option is almost the same, just specify the `docker-compose.full.yml` file:
+```bash
+docker-compose -f docker-compose.full.yml up -d
+#go to `http://localhost` after all services are started
+```
+Stopping the **full** option:
+```bash
+docker-compose -f docker-compose.nats.yml down
+#docker-compose -f docker-compose.nats.yml down -v
+```
+
+## Update services
+To actively pull the latest available Docker images use:
+```bash
+docker-compose pull
+```
+
+## Upgrade
+To upgrade to another StreamPipes version, simply edit the `SP_VERSION` in the `.env` file.
+```
+SP_VERSION=<VERSION>
+```
+
+
## Prerequisites
Requires Helm (https://helm.sh/) and an actively running Kubernetes cluster.
@@ -99,22 +230,6 @@ Here is an overview of the supported parameters to configure StreamPipes.
### External common parameters
-#### Consul common parameters
-
-| Parameter Name | Description | Value |
-|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
-| external.consul.appName | Consul application name | "consul" |
-| external.consul.version | Consul version | 1.14.3 |
-| external.consul.webPort | Port number for the Consul web interface | 8500 |
-| external.consul.dnsPort | Port number for the Consul DNS interface | 8600 |
-| external.consul.persistence.storageClassName | Storage class name for Consul PVs | "hostpath" |
-| external.consul.persistence.storageSize | Size of the Consul PV | "1Gi" |
-| external.consul.persistence.claimName | Name of the Consul PersistentVolumeClaim | "consul-pvc" |
-| external.consul.persistence.pvName | Name of the Consul PersistentVolume | "consul-pv" |
-| external.consul.service.name | Name of the Consul service | "consul" |
-| external.consul.service.webPort | TargetPort of the Consul service for web interface | 8500 |
-| external.consul.service.dnsPort | TargetPort of the Consul service for DNS interface | 8600 |
-
#### Couchdb common parameters
| Parameter Name | Description | Value |
@@ -283,3 +398,35 @@ data:
```bash
helm uninstall streampipes
```
+
+
+his page explains how SSL Certificates can be used to provide transport layer security between your Browser and the Streampipes Backend.
+
+## Prerequisites
+You need a valid Certificate consisting of a Private and a Public Key. Both Keys must be in PEM Format. Please note that your Private Key should never be shared, otherwise the communication can not be considered secure.
+
+## Edit docker-compose.yml
+In order to use SSL you have to open port 443 on the nginx Service. Incoming insecure Traffic on Port 80 will be automatically rerouted to Port 443.
+
+The Environment-Variable NGINX_SSL must be set to "true".
+
+Finally you have to inject the Certificates into the Docker-Container. In the example below, the Certificates are placed in the directory /etc/ssl/private/ on the host machine. Please change the path according to the place where the Certificates are located on your machine. The path after the colon should not be changed!
+```yaml
+[...]
+ nginx:
+ image: apachestreampipes/ui
+ ports:
+ - "80:80"
+ - "443:443"
+ environment:
+ - NGINX_SSL=true
+ volumes:
+ - /etc/ssl/private/private.pem:/etc/nginx/ssl/ssl.pem
+ - /etc/ssl/private/public.pem:/etc/nginx/ssl/cert.pem
+ depends_on:
+ - backend
+ networks:
+ spnet:
+[...]
+```
+
diff --git a/website-v2/versioned_docs/version-0.95.0/05_deploy-environment-variables.md b/docs/06_configure-operate-environment-variables.md
similarity index 98%
rename from website-v2/versioned_docs/version-0.95.0/05_deploy-environment-variables.md
rename to docs/06_configure-operate-environment-variables.md
index c4066fb70..916941fd8 100644
--- a/website-v2/versioned_docs/version-0.95.0/05_deploy-environment-variables.md
+++ b/docs/06_configure-operate-environment-variables.md
@@ -1,5 +1,5 @@
---
-id: deploy-environment-variables
+id: configure-operate-environment-variables
title: Environment Variables
sidebar_label: Environment Variables
---
@@ -85,4 +85,4 @@ For a standard deployment, it is recommended to customize the following variable
## Auto-generation of variables in K8s setups
-See the [Kubernetes Guide](05_deploy-kubernetes.md) for an overview of auto-generated variables.
+See the [Kubernetes Guide](06_deploy-kubernetes.md) for an overview of auto-generated variables.
diff --git a/docs/06_configure-operate-extension-services.md b/docs/06_configure-operate-extension-services.md
new file mode 100644
index 000000000..d746ee46f
--- /dev/null
+++ b/docs/06_configure-operate-extension-services.md
@@ -0,0 +1,5 @@
+---
+id: configure-operate-extension-services
+title: Extension Services
+sidebar_label: Extension Services
+---
diff --git a/docs/06_configure-operate-extensions.md b/docs/06_configure-operate-extensions.md
new file mode 100644
index 000000000..0ac09ae59
--- /dev/null
+++ b/docs/06_configure-operate-extensions.md
@@ -0,0 +1,9 @@
+---
+id: configure-operate-extensions
+title: Manage Extensions
+sidebar_label: Manage Extensions
+---
+
+## Install Pipeline Elements
+
+(coming soon)
diff --git a/website-v2/versioned_docs/version-0.95.0/03_use-configurations.md b/docs/06_configure-operate-general-settings.md
similarity index 93%
rename from website-v2/versioned_docs/version-0.95.0/03_use-configurations.md
rename to docs/06_configure-operate-general-settings.md
index 4aa953fbb..d6fd002ed 100644
--- a/website-v2/versioned_docs/version-0.95.0/03_use-configurations.md
+++ b/docs/06_configure-operate-general-settings.md
@@ -1,7 +1,7 @@
---
-id: use-configurations
-title: Configurations
-sidebar_label: Configurations
+id: configure-operate-general-settings
+title: General Settings
+sidebar_label: General Settings
---
The configuration section is an admin-only interface for system-wide settings.
@@ -45,4 +45,4 @@ Individual configurations of extensions services are available in this view. The
The security configuration allows to manage existing user accounts, service accounts and groups. New users can be added and roles can be assigned.
-Please also read more about security [here](05_deploy-security.md).
+Please also read more about security [here](06_configure-operate-security.md).
diff --git a/docs/05_deploy-security.md b/docs/06_configure-operate-security.md
similarity index 99%
rename from docs/05_deploy-security.md
rename to docs/06_configure-operate-security.md
index 01c2e024c..7101b36b4 100644
--- a/docs/05_deploy-security.md
+++ b/docs/06_configure-operate-security.md
@@ -1,7 +1,7 @@
---
-id: deploy-security
-title: Security
-sidebar_label: Security
+id: configure-operate-security
+title: Security & User Management
+sidebar_label: Security & User Management
---
## Overriding default settings
diff --git a/docs/06_extend-archetypes.md b/docs/06_extend-archetypes.md
deleted file mode 100644
index a6907f0ee..000000000
--- a/docs/06_extend-archetypes.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-id: extend-archetypes
-title: Maven Archetypes
-sidebar_label: Maven Archetypes
----
-
-In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks.
-We use IntelliJ in this tutorial, but it works with any IDE of your choice.
-
-## Prerequisites
-You need to have Maven installed, further you need an up and running StreamPipes installation on your development computer.
-
-## Create Project
-To create a new project, we provide multiple Maven Archteypes.
-Currently, we provide archetypes for standalone Java-based microservices and archetypes for the experimental Flink wrapper.
-The commands required to create a new pipeline element project can be found below. Make sure that you select a version compatible with your StreamPipes installation.
-Copy the command into your terminal to create a new project.
-The project will be created in the current folder.
-First, the ``groupId`` of the resulting Maven artifact must be set.
-We use ``groupId``: ``org.example`` and ``artifactId``: ``ExampleProcessor``.
-You can keep the default values for the other settings, confirm them by hitting enter.
-
-:::info Choosing the right version
-Make sure that the version used to create your archetype matches your running Apache StreamPipes version.
-In the example below, replace `{sp.version}` with the proper version, e.g., `0.92.0`.
-:::
-
-```bash
-mvn archetype:generate \
- -DarchetypeGroupId=org.apache.streampipes \
- -DarchetypeArtifactId=streampipes-archetype-extensions-jvm \
- -DarchetypeVersion={sp.version}
-```
-
-
-## Project structure
-Open the project in your IDE.
-If everything worked, the structure should look similar to the following image.
-In the *main* package, it is defined which processors / sinks you want to activate and the *pe.example* package contains two skeletons for creating a data processor and sink.
-For details, have a look at the other parts of the Developer Guide, where these classes are explained in more depth.
-
-<img src="/img/archetype/project_structure.png" width="30%" alt="Project Structure"/>
-
-## Next steps
-
-Click [here](06_extend-first-processor.md) to learn how to create your first data processor.
diff --git a/docs/06_extend-client.md b/docs/06_extend-client.md
deleted file mode 100644
index f584c3d2c..000000000
--- a/docs/06_extend-client.md
+++ /dev/null
@@ -1,204 +0,0 @@
----
-id: extend-client
-title: StreamPipes Client
-sidebar_label: StreamPipes Client
----
-
-
-:::info Looking for Python support?
-
-This section explains how to use the Apache StreamPipes Java Client. Please read the Python docs to find out how to use
-the client for Python.
-
-:::
-
-## About the StreamPipes client
-
-Sometimes you don't want to write your own extensions to StreamPipes, but want to interact with StreamPipes from
-external application.
-One example is to influence the lifecycle of pipelines - think of a feature which automatically starts or stops specific
-pipelines that monitor the production of a specific product.
-
-Another example is to gather live data from Apache StreamPipes, e.g., to consume data that has been previously connected
-by an external, standalone application.
-
-For such use cases, we provide the StreamPipes client, which is currently available in Python and Java. This section
-covers the usage of the Java client.
-
-## Using the StreamPipes client
-
-:::info Choosing the right version
-
-Your client library version should match the installed Apache StreamPipes version. Replace `${streampipes.version}` with
-the version of your installation, e.g., `0.92.0`.
-
-:::
-
-In your Java project, add the following dependency to your pom file:
-
-```xml
-
-<dependency>
- <groupId>org.apache.streampipes</groupId>
- <artifactId>streampipes-client</artifactId>
- <version>${streampipes.version}</version>
-</dependency>
-
-```
-
-## Obtaining an API token
-
-<img className="docs-image" src="/img/screenshots/streampipes-profile-token.png" alt="Overview StreamPipes Architecture"/>
-
-To communicate with Apache StreamPipes, you need to provide proper credentials. There are two ways to obtain
-credentials:
-
-* An API token, which is bound to a user. The API token can be generate from the UI clicking on the user icon and then
- navigate to `Profile/API`.
-* A service user, which can be created by users with role `Admin`.
-
-Service users can have their own permissions, while API tokens inherit all permissions from the corresponding user.
-
-## Connecting to StreamPipes
-
-Once you have your API token and configured your dependencies, you can connect to an Apache StreamPipes instance as
-follows:
-
-```java
-
-CredentialsProvider credentials=StreamPipesCredentials
- .withApiKey("admin@streampipes.apache.org","YOUR_API_KEY");
-
-// Create an instance of the StreamPipes client
- StreamPipesClient client=StreamPipesClient
- .create("localhost",8082,credentials,true);
-
-```
-
-The following configurations are required:
-
-* The `withApiKey` method expects the username and the API key. Alternatively, use the `withServiceToken` method to
- authenticate as a service user.
-* The client instance requires the hostname or IP address of your running StreamPipes instance. In addition, you need to
- provide the port, the credentials object and a flag which needs to be set in case the StreamPipes instance is not
- served over HTTPS.
-* There are short-hand convenience options to create a client instance.
-
-## Working with the client
-
-Here are some examples how you can work with the StreamPipes client:
-
-```java
-
-// Get streams
-List<SpDataStream> streams=client.streams().all();
-
-// Get a specific stream
- Optional<SpDataStream> stream=client.streams().get("STREAM_ID");
-
-// see the schema of a data stream
- EventSchema schema=stream.get().getEventSchema();
-
-// print the list of fields of this stream
- List<EventProperty> fields=schema.getEventProperties();
-
-// Get all pipelines
- List<Pipeline> pipelines=client.pipelines().all();
-
-// Start a pipeline
- PipelineOperationStatus status=client.pipelines().start(pipelines.get(0));
-
-// Stop a pipeline with providing a pipeline Id
- PipelineOperationStatus status=client.pipelines().stop("PIPELINE_ID");
-
-// Get all pipeline element templates
- List<PipelineElementTemplate> templates=client.pipelineElementTemplates().all();
-
-// Get all data sinks
- List<DataSinkInvocation> dataSinks=client.sinks().all();
-
-
-```
-
-## Consuming live data
-
-StreamPipes supports a variety of messaging protocols to internally handle data streams. If you plan to gather live data
-from the client library, you also need to add one or more of the supported messaging
-protocols to the pom file. The default protocol depends on the StreamPipes configuration and is set in the `.env` file
-in your installation folder.
-
-```xml
-
-<!-- For Kafka support -->
-<dependency>
- <groupId>org.apache.streampipes</groupId>
- <artifactId>streampipes-messaging-kafka</artifactId>
- <version>${streampipes.version}</version>
-</dependency>
-
- <!-- For Nats support -->
-<dependency>
-<groupId>org.apache.streampipes</groupId>
-<artifactId>streampipes-messaging-nats</artifactId>
-<version>${streampipes.version}</version>
-</dependency>
-
-
- <!-- For MQTT support -->
-<dependency>
-<groupId>org.apache.streampipes</groupId>
-<artifactId>streampipes-messaging-mqtt</artifactId>
-<version>${streampipes.version}</version>
-</dependency>
-
-```
-
-In addition, add the message format that is used internally by StreamPipes. The default message format used by
-StreamPipes is JSON, so let's include the dependency as well:
-
-```xml
-
-<!-- For JSON support -->
-<dependency>
- <groupId>org.apache.streampipes</groupId>
- <artifactId>streampipes-dataformat-json</artifactId>
- <version>${streampipes.version}</version>
-</dependency>
-
-```
-
-Once you've imported the dependencies, it is easy to consume live data. First, register the protocols and formats in
-your client instance:
-
-```java
-
-client.registerProtocol(new SpKafkaProtocolFactory());
-
-// or Nats:
- client.registerProtocol(new SpNatsProtocolFactory());
-
-// data format:
- client.registerDataFormat(new JsonDataFormatFactory());
-
-```
-
-Then, you are ready to consume data:
-
-```java
-
-client.streams().subscribe(dataStreams.get(0),new EventProcessor() {
-@Override
-public void onEvent(Event event) {
- // example
- MapUtils.debugPrint(System.out,"event",event.getRaw());
- }
- });
-
-```
-
-:::tip
-
-There are many more options to work with the StreamPipes Client - e.g., you can trigger emails directly from the API.
-Just explore the various classes and interfaces provided by the client!
-
-:::
diff --git a/docs/06_extend-tutorial-adapters.md b/docs/06_extend-tutorial-adapters.md
deleted file mode 100644
index 4e95cba9a..000000000
--- a/docs/06_extend-tutorial-adapters.md
+++ /dev/null
@@ -1,612 +0,0 @@
----
-id: extend-tutorial-adapters
-title: "Tutorial: Build Custom Adapters"
-sidebar_label: "Tutorial: Adapters"
----
-
-In this tutorial, we will create a new data source consisting of a single data stream.
-By the end of the tutorial, you will be able to implement custom adapters that allow you to connect to data sources
-other than those officially supported by StreamPipes.
-To do this, we will split the tutorial into two parts.
-The [first part](#building-a-basic-adapter) focuses on creating the adapter and defining the event stream.
-At the end, we will have a working adapter that produces an event stream that can be used in StreamPipes.
-This adapter does not provide any way to configure its behavior, so in
-the [second part](#building-a-more-advanced-adapter-by-processing-ui-input) of the tutorial
-to show how we can extend our existing adapter to be configurable via the UI.
-
-:::info
-This tutorial shows how to build your own type of adapter.
-It is intended for people who are interested in extending StreamPipes to meet their own needs.
-If you are here to explore StreamPipes and are interested in using an adapter, you may want to
-continue [here](./03_use-connect.md).
-:::
-
-## Objective
-
-We are going to create an adapter that will simulate a stream of data generated by a control station in a logistics
-center that is used to sort packages.
-This station consists of two sensors: a light barrier that detects when a package passes through, and a weight sensor.
-
-This sensor produces a continuous stream of events containing the current time stamp, an indicator of whether a package
-is present or the conveyor is empty, and the weight of the package in kilograms.
-The events are published in JSON format as follows
-
-```json
-{
- "timestamp": 1697720916959,
- "parcelPresent": true,
- "weight": 3.520
-}
-```
-
-In the following section, we will show you how to develop an adapter that is capable of generating this stream so that
-it is available for further processing in StreamPipes.
-
-## Project Set Up
-
-Instead of creating a new project from scratch, we recommend to use our Maven archetype to create a new project
-skeleton (`streampipes-archetype-extensions-jvm`).
-Enter the following command in a command line of your choice (please ensure
-that [Apache Maven](https://maven.apache.org/install.html) isinstalled):
-
-```bash
-mvn archetype:generate \
--DarchetypeGroupId=org.apache.streampipes -DarchetypeArtifactId=streampipes-archetype-extensions-jvm \
--DarchetypeVersion=0.93.0 -DgroupId=org.apache.streampipes \
--DartifactId=streampipes-archetype-extensions-jvm -DclassNamePrefix=ParcelControlStation -DpackageName=parcelcontrol
-```
-
-This command will ask you for input twice, you can just skip both of them by hitting *enter*.
-The first dialog sets the version to use for our `streampipes-archetype-extensions-jvm` module.
-Feel free to change this if you like.
-
-```bash
-Define value for property 'version' 1.0-SNAPSHOT: :
-
- Y: :
-```
-
-The `mvn archetype:generate` command generates some required files, the required file structure, and some boilerplate
-code.
-The generated file structure should look like the following:
-
-:::info
-Note that you can customize the parameters of the mvn command to affect the file structure and file naming.
-:::
-
-```bash
-
-|streampipes-archetype-extensions # name is determined by '-DartifactId'
-|-- development
-| |-- env
-|-- src
-| |-- main
-| | |-- java.org.apache.streampipes # name after .java. is determined by '-DgroupId'
-| | | |-- pe.parcelcontrol # name after .pe. is determined by '-DpackageName'
-| | | | |-- ParcelControlStationDataProcessor.java # class name is determined by '-DclassNamePrefix'
-| | | | |-- ParcelControlStationDataSink.java
-| | | | |-- ParcelControlStationGenericAdapter.java
-| | | | |-- ParcelControlStationSpecificAdapter.java
-| | | |-- Init.java
-| | |-- resources
-| | | |-- org.apache.streampipes.pe.parcelcontrol.genericadapter
-| | | | |-- documentation.md
-| | | | |-- icon.png
-| | | | |-- strings.en
-| | | |-- org.apache.streampipes.pe.parcelcontrol.processor
-| | | | |-- documentation.md
-| | | | |-- icon.png
-| | | | |-- strings.en
-| | | |-- org.apache.streampipes.pe.parcelcontrol.sink
-| | | | |-- documentation.md
-| | | | |-- icon.png
-| | | | |-- strings.en
-| | | |-- org.apache.streampipes.pe.parcelcontrol.specificadapter
-| | | | |-- documentation.md
-| | | | |-- icon.png
-| | | | |-- strings.en
-| |-- test.java.org.apache.streampipes # name after .java. is determined by '-DgroupId'
-| | |-- InitTest.java
-|-- Dockerfile
-|-- pom.xml
-
-```
-
-:::tip
-In addition to the basic project skeleton, the sample project also includes a sample `Dockerfile` that you can use to
-package your application into a Docker container.
-:::
-
-## Building a Basic Adapter
-
-In the following, we will demonstrate how to use the boilerplate code generated by the Maven plugin (
-see [Project setup](#project-setup)).
-Within this section, we will focus on creating an event stream that can be used within StreamPipes.
-The following section shows how to configure the created adapter with UI input.
-
-Attentive readers may have noticed that two adapter classes have been generated.
-We will focus on the `ParcelControlStationSpecificAdapter` first, the `ParcelControlStationSimulatorGenericAdapter` will
-be used later for more advanced adapter features.
-First, let us take a look at the `ParcelControlStationSpecificAdapter.java` file as generated by the Maven
-archetype.
-
-```java jsx showLineNumbers
-package org.apache.streampipes.pe.parcelcontrol;
-
-import org.apache.streampipes.commons.exceptions.connect.AdapterException;
-import org.apache.streampipes.extensions.api.connect.IAdapterConfiguration;
-import org.apache.streampipes.extensions.api.connect.IEventCollector;
-import org.apache.streampipes.extensions.api.connect.StreamPipesAdapter;
-import org.apache.streampipes.extensions.api.connect.context.IAdapterGuessSchemaContext;
-import org.apache.streampipes.extensions.api.connect.context.IAdapterRuntimeContext;
-import org.apache.streampipes.extensions.api.extractor.IAdapterParameterExtractor;
-import org.apache.streampipes.model.AdapterType;
-import org.apache.streampipes.model.connect.guess.GuessSchema;
-import org.apache.streampipes.sdk.builder.adapter.AdapterConfigurationBuilder;
-import org.apache.streampipes.sdk.builder.adapter.GuessSchemaBuilder;
-import org.apache.streampipes.sdk.helpers.Labels;
-import org.apache.streampipes.sdk.helpers.Locales;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class ParcelControlStationSpecificAdapter implements StreamPipesAdapter {
-
- private boolean running = false;
-
- @Override
- public IAdapterConfiguration declareConfig() {
- return AdapterConfigurationBuilder.create(
- "org.apache.streampipes.pe.parcelcontrol.specificadapter",
- ParcelControlStationSpecificAdapter::new
- )
- .withAssets(Assets.DOCUMENTATION, Assets.ICON)
- .withCategory(AdapterType.Manufacturing)
- .withLocales(Locales.EN)
- .buildConfiguration();
- }
-
- @Override
- public void onAdapterStarted(IAdapterParameterExtractor extractor,
- IEventCollector collector,
- IAdapterRuntimeContext adapterRuntimeContext) throws AdapterException {
-
- Runnable demo = () -> {
- while (running) {
- // make event
- Map<String, Object> event = new HashMap<>();
- // forward the event to the adapter pipeline
- collector.collect(event);
- }
- };
- running = true;
- new Thread(demo).start();
- }
-
- @Override
- public void onAdapterStopped(IAdapterParameterExtractor extractor,
- IAdapterRuntimeContext adapterRuntimeContext) throws AdapterException {
-
- // do cleanup
- running = false;
- }
-
- @Override
- public GuessSchema onSchemaRequested(IAdapterParameterExtractor extractor,
- IAdapterGuessSchemaContext adapterGuessSchemaContext) throws AdapterException {
-
- // build the schema by adding properties to the schema builder and a preview if possible
- return GuessSchemaBuilder
- .create()
- .build();
- }
- }
-
-```
-
-The class extends `StreamPipesAdapter`, which is the interface that all adapters within StreamPipes must implement.
-This interface requires us to implement four methods:
-
-* `declareConfig()`: This method is expected to return the configuration of the adapter. The configuration includes
- metadata about the adapter and its input parameters.
-* `onAdapterStarted()`: This method is expected to contain the actual adapter logic. It is called when the adapter is
- started, and is responsible for sending incoming data to StreamPipes as an event.
-* `onAdapterStopped()`: This method is called when the adapter is stopped and is responsible for gracefully exiting the
- adapter.
- gracefully and usually performs some cleanup tasks.
-* `onSchemaRequested()`: This method is expected to return the schema of the event stream. This is ideally done
- dynamically based on some incoming data (*guess*) or provided statically if not otherwise possible.
-
-### Describing the Adapter via the Configuration
-
-The standard code generated here is already sufficient for us.
-So let's have a quick look at the important aspects:
-
-* `Line 4`: Here we define a unique identifier for our adapter. This allows us to identify all instances of the same
- adapter. Including your own namespace is always a good choice to avoid conflicts.
-* `Line 7`: Here we define what assets are available for this adapter. In this case, we provide a documentation file and
- an icon. Both assets are located in the `resource' directory (see file tree above).
-* `Line 8`: This defines a rough categorization along predefined adapter types.
-* `Line 9`: Here we define which locales are available for this adapter. Since we only provide one `strings.en' file so
- far (see file tree above), the current selection is sufficient. Theoretically you can support multiple languages, but
- this is not fully supported yet.
-
-```java jsx {4,7-9} showLineNumbers
- @Override
- public IAdapterConfiguration declareConfig() {
- return AdapterConfigurationBuilder.create(
- "org.apache.streampipes.pe.parcelcontrol.specificadapter",
- ParcelControlStationSpecificAdapter::new
- )
- .withAssets(Assets.DOCUMENTATION, Assets.ICON)
- .withCategory(AdapterType.Manufacturing)
- .withLocales(Locales.EN)
- .buildConfiguration();
- }
-```
-
-Before we continue, let's quickly have a look at the `strings.en` file that defines our locales.
-Here we can define a meaningful and human-readable adapter tile in the first line and a short description:
-
-```text
-org.apache.streampipes.pe.parcelcontrol.specificadapter.title=Parcel Control Station (simple)
-org.apache.streampipes.pe.parcelcontrol.specificadapter.description=This adapter simulates data coming from a parcel control station in a logistics center.
-```
-
-Now we have successfully configured our adapter and prepared all descriptive elements, we can focus on the actual logic.
-
-### Creating the Data Stream
-
-The logic that creates events that are then populated via StreamPipes is defined in `onAdapterStarted()`.
-Within this method, connectors usually connect to the data source and extract data.
-In our case, however, we simply want to create some sample data directly.
-The two main parts that should always happen within this method are highlighted in the provided skeleton code:
-
-* `Line 10`: Creating an event is crucial for our adapters. This event is then filled with data by the adapter before it
- is distributed.
-* `Line 13`: The event must finally be passed to the `collector`, which then takes the data and distributes it within
- StreamPipes in the form of a [data stream](./02_concepts-overview.md#data-stream).
-
-```java jsx {10,13} showLineNumbers
-@Override
-public void onAdapterStarted(IAdapterParameterExtractor extractor,
- IEventCollector collector,
- IAdapterRuntimeContext adapterRuntimeContext) throws AdapterException {
-
- Runnable demo = () -> {
- while (running) {
-
- // make event
- Map<String, Object> event = new HashMap<>();
-
- // forward the event to the adapter pipeline
- collector.collect(event);
- }
- };
- running = true;
- new Thread(demo).start();
-}
-```
-
-So the only thing left to do is to create the actual events.
-In our scenario, we want to create two types of events: one describing an empty conveyor and one describing a detected
-and weighed package.
-To keep the implementation simple, we simply want to have a parcel event every five seconds. We can implement this as
-follows:
-
-```java
- Runnable parcelControl = () -> {
- while (running) {
-
- // get the current time in seconds
- long timestamp = System.currentTimeMillis();
- long timeInSeconds = (int) timestamp / 1000;
-
- // make event
- Map<String, Object> event = new HashMap<>();
- event.put("timestamp", timestamp);
-
- if (timeInSeconds % 5 == 0) {
- event.put("parcelPresent", true);
- event.put("weight", ThreadLocalRandom.current().nextDouble(0, 10));
-
- } else {
- event.put("parcelPresent", false);
- event.put("weight", 0);
- }
-
- // forward the event to the adapter pipeline
- collector.collect(event);
-
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- }
- };
- running = true;
- new Thread(parcelControl).start();
-```
-
-This is already enough to get a data stream into StreamPipes.
-As the next step we need to describe to event schema.
-
-### Defining the Event Schema
-
-In StreamPipes, each data stream comes with an event schema that describes what information the event contains,
-in what data formats, and some semantic type information.
-This allows StreamPipes to provide easy and convenient stream handling with a lot of automatic conversions and
-validations.
-For example, whether a particular data processor is suitable for a given event stream.
-This event schema is provided by `onSchemaRequested()`:
-
-```java
-@Override
-public GuessSchema onSchemaRequested(IAdapterParameterExtractor extractor,
- IAdapterGuessSchemaContext adapterGuessSchemaContext) throws AdapterException {
-
- // build the schema by adding properties to the schema builder and a preview if possible
- return GuessSchemaBuilder
- .create()
- .build();
- }
-
-```
-
-Normally, the event schema is determined automatically and dynamically, since an adapter is usually quite generic (read
-more in the [Advanced section](#advanced)).
-But in our case, we already know the event schema, and it never changes, so we can just define it:
-
-```java jsx {3,13-20} showLineNumbers
-@Override
-public GuessSchema onSchemaRequested(IAdapterParameterExtractor extractor,
- IAdapterGuessSchemaContext adapterGuessSchemaContext) throws AdapterException {
-
- // build the schema by adding properties to the schema builder and a preview if possible
- return GuessSchemaBuilder.create()
- .property(timestampProperty("timestamp"))
- .sample("timestamp", System.currentTimeMillis())
- .property(PrimitivePropertyBuilder
- .create(Datatypes.Boolean, "parcelPresent")
- .label("Parcel Present")
- .description("Indicates if a parcel is weighed.")
- .domainProperty(SO.BOOLEAN)
- .scope(PropertyScope.MEASUREMENT_PROPERTY)
- .build())
- .sample("parcelPresent", true)
- .property(PrimitivePropertyBuilder
- .create(Datatypes.Double, "weight")
- .label("Parcel Weight")
- .description("Parcel weight")
- .domainProperty(SO.WEIGHT)
- .scope(PropertyScope.MEASUREMENT_PROPERTY)
- .build())
- .sample("weight", 3.520)
- .build();
-```
-
-An attribute of an Event is referred to as `property` in StreamPipes.
-So in our case we have three properties.
-Since StreamPipes creates a sample event in the UI when configuring the adapter (
-see [here](./03_use-connect.md#schema-editor)),
-providing a meaningful sample value for every property allows StreamPipes to demonstrate its full potential.
-
-Since every event schema is required to have a timestamp property, we provide a convenience definition (see `line 3`).
-For all other properties the recommend way of definition is using the `PrimitivePropertyBuilder` (see `line 13-20`) and
-consists of the following steps:
-
-* `Line 14`: every property must have a data type specified and a property name
-* `Line 15`: In addition to the property name we can define a label that is designed for the end user and shown in the
- UI.
-* `Line 16`: Assigns a human-readable description to the event property. The description is used in the StreamPipes UI
- for better explaining users the meaning of the property.
-* `Line 17`: Specifies the semantics of the property (e.g., whether a double value stands for weight or temperature
- value).
-* `Line 18`: Assigns a property scope to the event property. This determines how the property is handled internally.
-
-:::note
-StreamPipes does not require you to provide all of this information about a property.
-Anything beyond line `14` (up to line `20`) is optional, but the more you provide, the better StreamPipes can show it's
-full potential and feature richness.
-:::
-
-This makes our adapter almost complete, there is only one little step left.
-
-### Defining the Adapter Termination
-
-As a final step, we need to define what should happen if the adapter is stopped.
-In general, the adapter should not fire any events after that.
-Normally, this step includes things like closing connections and clearing resources.
-In our case this is quite simple, we just need to stop our thread:
-
-```java
-@Override
-public void onAdapterStopped(IAdapterParameterExtractor extractor,
- IAdapterRuntimeContext adapterRuntimeContext) throws AdapterException {
-
- // do cleanup
- running = false;
-}
-```
-
-Now it's time to start our adapter and observe it in action!
-
-### Register and Run the Adapter
-
-Before we actually use our adapter, let's take a quick look at the `Init` class. This class is responsible for
-registering our adapter service with the core to make the adapter available in StreamPipes.
-This is done within `provideServiceDefinition()`. Since we don't have the generic adapter ready yet,
-we'll comment out its registration (`line 7`). Now we can run the `Init` class to register the adapter with your running
-StreamPipes instance. If you don't have a running instance at your hand,
-you can take a look at our [Installation Guide](./01_try-installation.md).
-
-```java jsx {7-8} showLineNumbers
-@Override
-public SpServiceDefinition provideServiceDefinition() {
- return SpServiceDefinitionBuilder.create("org.apache.streampipes",
- "human-readable service name",
- "human-readable service description", 8090)
- .registerRuntimeProvider(new StandaloneStreamPipesRuntimeProvider())
- //.registerAdapter(new ParcelControlStationGenericAdapter())
- .registerAdapter(new ParcelControlStationSpecificAdapter())
- .registerMessagingFormats(
- new JsonDataFormatFactory(),
- new CborDataFormatFactory(),
- new SmileDataFormatFactory(),
- new FstDataFormatFactory())
- .registerMessagingProtocols(
- new SpKafkaProtocolFactory(),
- new SpJmsProtocolFactory(),
- new SpMqttProtocolFactory(),
- new SpNatsProtocolFactory(),
- new SpPulsarProtocolFactory())
- .build();
-}
- ```
-
-:::tip
-When executing the `main()` method of the `Init` class, make sure that all environment variables are set from
-the `development/env` file are set.
-If they are not set, the adapter may not be able to register with StreamPipes.
-:::
-
-Once you see the following log message in the console, the adapter is ready, and you can switch to the UI of your
-StreamPipes instance.
-
-```bash
-s.s.e.c.ConnectWorkerRegistrationService : Successfully connected to master. Worker is now running.
-```
-
-Please go to the connect module and click on `New Adapter`,
-you should now be able to see your adapter `Parcel Control Station (simple)`:
-<img src="/img/06_tutorial_adapter/adapter-demo.gif" alt="Demo of parcel adapter"/>
-
-The adapter runs successfully in StreamPipes, you can now play around with the data stream that the
-adapter, or continue with the next section to learn how to make an adapter configurable through the UI.
-
-### Building a more Advanced Adapter by Processing UI Input
-
-In this section, we will extend our previous build apter by adding the ability to configure the minimum and maximum
-package
-in the UI from which the weight value is retrieved.
-The beauty of building adapters for StreamPipes is that you don't have to worry about the UI.
-StreamPipes provides a set of pre-built input elements for adapters that you can simply add to your adapter
-configuration.
-So the first thing we need to customize is `declareConfig()`:
-
-```java jsx {10-11} showLineNumbers
-@Override
-public IAdapterConfiguration declareConfig() {
- return AdapterConfigurationBuilder.create(
- "org.apache.streampipes.pe.parcelcontrol.specificadapter",
- ParcelControlStationSpecificAdapter::new
- )
- .withAssets(Assets.DOCUMENTATION, Assets.ICON)
- .withCategory(AdapterType.Manufacturing)
- .withLocales(Locales.EN)
- .requiredFloatParameter(Labels.withId("min-weight"), 0.0f)
- .requiredFloatParameter(Labels.withId("max-weight"), 10.f)
- .buildConfiguration();
-}
-
-```
-
-In line `9-10` we have introduced two input parameters that expect float values as input. They have a default value
-of `0` or `10` resp. The defined identifier (`min-weight` and `max-weight`) can be used two provide a caption and
-a description via the `strings.en` file:
-
-```text
-min-weight.title=Minimum Parcel Weight
-min-weight.description=The lower bound from which the weight values are sampled randomly.
-
-max-weight.title=Maximum Parcel Weight
-max-weight.description=The upper bound from which the weight values are sampled randomly.
-```
-
-As a last step, we now need to modify the calculation of the parcel weight, so that the provided parameters are actually
-applied.
-This is done in `onAdapterStarted()`.
-
-```java jsx {6-9,24} showLineNumbers
-@Override
-public void onAdapterStarted(IAdapterParameterExtractor extractor,
- IEventCollector collector,
- IAdapterRuntimeContext adapterRuntimeContext) throws AdapterException {
-
- var ex = extractor.getStaticPropertyExtractor();
-
- float minWeight = ex.singleValueParameter("min-weight", Float.class);
- float maxWeight = ex.singleValueParameter("max-weight", Float.class);
-
- Runnable parcelControl = () -> {
- while (running) {
-
- // get the current time in seconds
- long timestamp = System.currentTimeMillis();
- long timeInSeconds = (int) timestamp / 1000;
-
- // make event
- Map<String, Object> event = new HashMap<>();
- event.put("timestamp", timestamp);
-
- if (timeInSeconds % 5 == 0) {
- event.put("parcelPresent", true);
- event.put("weight", ThreadLocalRandom.current().nextDouble(minWeight, maxWeight));
-
- } else {
- event.put("parcelPresent", false);
- event.put("weight", 0);
- }
-
- // forward the event to the adapter pipeline
- collector.collect(event);
-
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- }
- };
- running = true;
- new Thread(parcelControl).start();
-}
-```
-
-* line `6-9`: We use an `StaticPropertyExtractor` to retrieve both user inputs
-* line `24`: We calculate the parcel weight by passing the configured values vor the minimum and maximum value.
-
-You can now run the `main()` method of the `Init` class to register the adapter at StreamPipes.
-The UI dialog to create a new instance of our parcel control station adapter looks now the following:
-<img src="/img/06_tutorial_adapter/adapter-with-ui-dialog.png" alt="Adapter with UI dialog"/>
-
-:::caution
-Please make sure that you uninstall the parcel adapter in `Install Pipeline Elements` before
-you restart the execution of the `Init` class, if you have already done so.
-Otherwise, the changes made in this section will have no effect.
-:::
-
-### Read More
-
-Congratulations! You've just created your first StreamPipes adapter 🎉 <br />
-
-There are many more things to explore and data sources can be defined in much more detail.
-If this is of interest to you, the [advanced section](#advanced) will satisfy your needs.
-
-If anything within this tutorial did not work for you or you had problems following it,
-please feel free to provide some feedback by opening an [issue on GitHub](https://github.com/apache/streampipes/issues/new?assignees=&labels=bug%2Cdocumentation%2Cwebsite&projects=&template=doc_website_issue_report.yml).
-
-<!-- ## Advanced
-
-There is more to come about advanced features of our adapters. Stay tuned!
-
-### Forward Log Messages to the UI to Allow Debugging for the End User
-
-### Determine the Event Schema Based on the Concrete Data Structure
-
-### Implement a Generic Adapter that is Capable of Multiple Input Formats
-
-### Extend the Existing Pool of Parsers by Your Own Parser
-
-### Introduce a Vew Version of an Adapter and Ensure Migration of Existing Adapters -->
diff --git a/docs/06_extend-tutorial-data-processors.md b/docs/06_extend-tutorial-data-processors.md
deleted file mode 100644
index 4c2d5ee25..000000000
--- a/docs/06_extend-tutorial-data-processors.md
+++ /dev/null
@@ -1,454 +0,0 @@
----
-id: extend-tutorial-data-processors
-title: "Tutorial: Data Processors"
-sidebar_label: "Tutorial: Data Processors"
----
-
-In this tutorial, we will add a new data processor.
-
-From an architectural point of view, we will create a self-contained service that includes the description of the data
-processor and an implementation.
-
-## Objective
-
-We are going to create a new data processor that realizes a simple geofencing algorithm - we detect vehicles that enter
-a specified radius around a user-defined location.
-This pipeline element will be a generic element that works with any event stream that provides geospatial coordinates in
-form of a latitude/longitude pair.
-
-The algorithm outputs every location event once the position has entered the geofence.
-
-:::note
-
-The implementation in this tutorial is pretty simple - our processor will fire an event every time the GPS location is
-inside the geofence.
-In a real-world application, you would probably want to define a pattern that recognizes the _first_ event a vehicle
-enters the geofence.
-
-This can be easily done using a CEP library.
-
-:::
-
-## Project setup
-
-Instead of creating a new project from scratch, we recommend to use the Maven archetype to create a new project
-skeleton (streampipes-archetype-extensions-jvm).
-Enter the following command in a command line of your choice (Apache Maven needs to be installed):
-
-```
-mvn archetype:generate \
--DarchetypeGroupId=org.apache.streampipes -DarchetypeArtifactId=streampipes-archetype-extensions-jvm \
--DarchetypeVersion=0.93.0 -DgroupId=my.groupId \
--DartifactId=my-example -DclassNamePrefix=MyExample -DpackageName=mypackagename
-```
-
-You will see a project structure similar to the structure shown in the [archetypes](06_extend-archetypes.md) section.
-
-:::tip
-
-Besides the basic project skeleton, the sample project also includes an example Dockerfile you can use to package your
-application into a Docker container.
-
-:::
-
-Now you're ready to create your first data processor for StreamPipes!
-
-## Adding data processor requirements
-
-First, we will add a new stream requirement.
-Create a new class `GeofencingProcessor` which should look as follows:
-
-```java
-package org.apache.streampipes.pe.example;
-
-import org.apache.streampipes.extensions.api.pe.IStreamPipesDataProcessor;
-import org.apache.streampipes.extensions.api.pe.config.IDataProcessorConfiguration;
-import org.apache.streampipes.extensions.api.pe.context.EventProcessorRuntimeContext;
-import org.apache.streampipes.extensions.api.pe.param.IDataProcessorParameters;
-import org.apache.streampipes.extensions.api.pe.routing.SpOutputCollector;
-import org.apache.streampipes.model.runtime.Event;
-import org.apache.streampipes.sdk.builder.ProcessingElementBuilder;
-import org.apache.streampipes.sdk.builder.StreamRequirementsBuilder;
-import org.apache.streampipes.sdk.builder.processor.DataProcessorConfiguration;
-import org.apache.streampipes.sdk.helpers.EpProperties;
-import org.apache.streampipes.sdk.helpers.EpRequirements;
-import org.apache.streampipes.sdk.helpers.Labels;
-import org.apache.streampipes.sdk.helpers.OutputStrategies;
-import org.apache.streampipes.sdk.helpers.SupportedFormats;
-import org.apache.streampipes.sdk.helpers.SupportedProtocols;
-import org.apache.streampipes.vocabulary.SO;
-
-public class GeofencingProcessor implements IStreamPipesDataProcessor {
-
- private static final String LATITUDE_CENTER = "latitude-center";
- private static final String LONGITUDE_CENTER = "longitude-center";
-
-
- public IDataProcessorConfiguration declareConfig() {
- return DataProcessorConfiguration.create(
- GeofencingProcessor::new,
- ProcessingElementBuilder.create(
- "org.apache.streampipes.tutorial-geofencing"
- )
- .category(DataProcessorType.ENRICH)
- .withAssets(Assets.DOCUMENTATION, Assets.ICON)
- .build());
- }
-
- @Override
- public void onPipelineStarted(IDataProcessorParameters params,
- SpOutputCollector collector,
- EventProcessorRuntimeContext runtimeContext) {
-
- }
-
- @Override
- public void onEvent(Event event,
- SpOutputCollector collector) {
-
- }
-
- @Override
- public void onPipelineStopped() {
-
- }
-}
-
-
-```
-
-In this class, we need to implement three methods: The `declareConfig` method is used to define abstract stream
-requirements such as event properties that must be present in any input stream that is later connected to the element
-using the StreamPipes UI.
-The second method, `onPipelineStarted` is triggered once a pipeline is started.
-The `onEvent` method is called for every incoming event.
-Finally, the `onPipelineStopped` method is called once the pipeline is stopped.
-
-Similar to data sources, the SDK provides a builder class to generate the description for data processors.
-
-The current code within the `declareConfig` method creates a new data processor with the ID.
-The ID is used as the internal ID of the data processor, but also used to reference additional assets in the `resources` folder, such as a `strings.en` file, used to configure labels and description, and a `documentation.md` file, which will later servce as a markdown documentation in the UI.
-But first, we will add some _stream requirements_ to the description. As we'd like to develop a generic pipeline element that
-works with any event that provides a lat/lng pair, we define two stream requirements as stated below:
-
-```java
-.requiredStream(StreamRequirementsBuilder
- .create()
- .requiredPropertyWithUnaryMapping(
- EpRequirements.domainPropertyReq(Geo.LAT),
- Labels.from("latitude-field","Latitude","The event property containing the latitude value"),
- PropertyScope.MEASUREMENT_PROPERTY
- )
- .requiredPropertyWithUnaryMapping(
- EpRequirements.domainPropertyReq(Geo.LNG),
- Labels.from("longitude-field","Longitude","The event property containing the longitude value"),
- PropertyScope.MEASUREMENT_PROPERTY
- )
- .build())
-```
-
-The first line, `.requiredStream()` defines that we want a data processor with exactly one input stream. Adding more
-stream requirements would create elements with multiple input connectors in StreamPipes.
-Stream requirements can be assigned by using the `StreamRequirementsBuilder` class.
-In our example, we define two requirements, so-called _domain property requirements_. In contrast to _data type
-requirements_ where we'd expect an event property with a field of a specific data type (e.g., float), domain property
-requirements expect a specific semantic type (called domain property), e.g., from a vocabulary such as the WGS84 Geo vocab.
-
-Once a pipeline is deployed, we are interested in the actual field (and its field name) that contains the latitude and
-longitude values.
-In some cases, there might be more than one field that satisfies a property requirement, and we would like users to
-select the property the geofencing component should operate on.
-Therefore, our example uses the method `requiredPropertyWithUnaryMapping`, which will map a requirement to a real event
-property of an input stream and let the user choose the appropriate field in the StreamPipes UI when pipelines are
-defined.
-
-Finally, the `PropertyScope` indicates that the required property is a measurement value (in contrast to a dimension
-value). This allows us later to provide improved user guidance in the pipeline editor.
-
-Similar to mapping properties, text parameters have an internalId (radius), a label and a description.
-In addition, we can assign a _value specification_ to the parameter indicating the value range we support.
-Our example supports a radius value between 0 and 1000 with a granularity of 1.
-In the StreamPipes UI, a required text parameter is rendered as a text input field, in case we provide an optional value
-specification, a slider input is automatically generated.
-
-For now, we've assigned parameters with an internal ID, a label and a description.
-To decouple human-readable labels and description from the actual data processor description, it is possible to extract the strings to a properties file.
-In the `resources` folder, switch to a folder with the same name as the data processor's ID. If you've used the Maven archetype to build our project, there should be a `strings.en` file.
-In this file, we can configure labels and descriptions. For instance, instead of writing
-
-```java
-
-.requiredPropertyWithUnaryMapping(
- EpRequirements.domainPropertyReq(Geo.LAT),
- Labels.from("latitude-field","Latitude","The event property containing the latitude value"),
- PropertyScope.MEASUREMENT_PROPERTY
- )
-
-```
-
-it is recommended to write
-
-```java
-
-.requiredPropertyWithUnaryMapping(
- EpRequirements.domainPropertyReq(Geo.LAT),
- Labels.withId("latitude-field"),
- PropertyScope.MEASUREMENT_PROPERTY
- )
-
-```
-
-and add the following line to the `strings.en` file:
-
-```properties
-
-latitude-field.title=Latitude
-latitute-field.description=The event property containing the latitude value
-
-```
-
-This feature will also ease future internationalization efforts.
-
-Besides requirements, users should be able to define the center coordinate of the Geofence and the size of the fence
-defined as a radius around the center in meters.
-The radius can be defined by adding a simple required text field to the description:
-
-```java
-.requiredIntegerParameter("radius","Geofence Size","The size of the circular geofence in meters.",0,1000,1)
-```
-
-Such user-defined parameters are called _static properties_. There are many different types of static properties (see
-the [Processor SDK](06_extend-sdk-static-properties.md) for an overview). Similar to stream requirements, it is also recommended to type `Labels.withId("radius")` and move labels and descriptions to the resource file.
-
-In this example, we'll further add two very simple input fields to let users provide latitude and longitude of the
-geofence center.
-
-Add the following line to the `declareConfig` method:
-
-```java
- .requiredFloatParameter(Labels.from(LATITUDE_KEY,"Latitude","The latitude value"))
- .requiredFloatParameter(Labels.from(LONGITUDE_KEY,"Longitude","The longitude value"))
-
-```
-
-Now we need to define the output of our Geofencing pipeline element.
-As explained in the first section, the element should fire every time some geo-located entity arrives within the defined
-geofence.
-Therefore, the processor outputs the same schema as it receives as an input.
-Although we don't know the exact input right now as it depends on the stream users connect in StreamPipes when creating
-pipelines, we can define an _output strategy_ as follows:
-
-```java
-.outputStrategy(OutputStrategies.keep())
-```
-
-This defines a _KeepOutputStrategy_, i.e., the input event schema is not modified by the processor.
-There are many more output strategies you can define depending on the functionality you desire, e.g., _AppendOutput_ for
-defining a processor that enriches events or _CustomOutput_ in case you would like users to select the output by
-themselves.
-
-That's it! We've now defined input requirements, required user input and an output strategy.
-In the next section, you will learn how to extract these parameters once the pipeline element is invoked after a
-pipeline was created.
-
-## Pipeline element invocation
-
-Once users start a pipeline that uses our geofencing component, the _onPipelineStarted_ method in our class is called. The
-interface `IDataProcessorParameters` includes convenient access to user-configured parameters a users has selected in the pipeline
-editor and information on the actual streams that are connected to the pipeline element.
-
-Next, we are interested in the fields of the input event stream that contains the latitude and longitude value we would
-like to compute against the geofence center location as follows:
-
-```java
- String latitudeFieldName = params.extractor().mappingPropertyValue("latitude-field");
- String longitudeFieldName = params.extractor().mappingPropertyValue("longitude-field");
-```
-
-We use the same `internalId` we've used to define the mapping property requirements in the `declareModel` method.
-
-Next, for extracting the geofence center coordinates, add to class variables centerLatitude and centerLongitude and
-assign the selected values using the following statements:
-
-```java
- this.centerLatitude = params.extractor().singleValueParameter(LATITUDE_CENTER,Float.class);
- this.centerLongitude = params.extractor().singleValueParameter(LONGITUDE_CENTER,Float.class);
-```
-
-The radius value can be extracted as follows:
-
-```java
- int radius = params.extractor().singleValueParameter("radius",Float.class);
-```
-
-Great! That's all we need to describe a data processor for usage in StreamPipes. Your processor class should look as
-follows:
-
-```java
-
-package org.apache.streampipes.pe.example;
-
-import org.apache.streampipes.extensions.api.pe.IStreamPipesDataProcessor;
-import org.apache.streampipes.extensions.api.pe.config.IDataProcessorConfiguration;
-import org.apache.streampipes.extensions.api.pe.context.EventProcessorRuntimeContext;
-import org.apache.streampipes.extensions.api.pe.param.IDataProcessorParameters;
-import org.apache.streampipes.extensions.api.pe.routing.SpOutputCollector;
-import org.apache.streampipes.model.runtime.Event;
-import org.apache.streampipes.sdk.builder.ProcessingElementBuilder;
-import org.apache.streampipes.sdk.builder.StreamRequirementsBuilder;
-import org.apache.streampipes.sdk.builder.processor.DataProcessorConfiguration;
-import org.apache.streampipes.sdk.helpers.EpProperties;
-import org.apache.streampipes.sdk.helpers.EpRequirements;
-import org.apache.streampipes.sdk.helpers.Labels;
-import org.apache.streampipes.sdk.helpers.OutputStrategies;
-import org.apache.streampipes.sdk.helpers.SupportedFormats;
-import org.apache.streampipes.sdk.helpers.SupportedProtocols;
-import org.apache.streampipes.vocabulary.SO;
-
-public class GeofencingProcessor implements IStreamPipesDataProcessor {
-
- private static final String LATITUDE_CENTER = "latitude-center";
- private static final String LONGITUDE_CENTER = "longitude-center";
-
- private float centerLatitude;
- private float centerLongitude;
- private String latitudeFieldName;
- private String longitudeFieldName;
-
- private int radius;
-
- public IDataProcessorConfiguration declareConfig() {
- return DataProcessorConfiguration.create(
- GeofencingProcessor::new,
- ProcessingElementBuilder.create("org.streampipes.tutorial-geofencing")
- .category(DataProcessorType.ENRICH)
- .withAssets(Assets.DOCUMENTATION, Assets.ICON)
- .withLocales(Locales.EN)
- .requiredStream(StreamRequirementsBuilder
- .create()
- .requiredPropertyWithUnaryMapping(EpRequirements.domainPropertyReq(Geo.lat),
- Labels.from("latitude-field", "Latitude", "The event " +
- "property containing the latitude value"), PropertyScope.MEASUREMENT_PROPERTY)
- .requiredPropertyWithUnaryMapping(EpRequirements.domainPropertyReq(Geo.lng),
- Labels.from("longitude-field", "Longitude", "The event " +
- "property containing the longitude value"), PropertyScope.MEASUREMENT_PROPERTY)
- .build())
- .outputStrategy(OutputStrategies.keep())
- .requiredIntegerParameter("radius", "Geofence Size", "The size of the circular geofence in meters.", 0, 1000, 1)
- .requiredFloatParameter(Labels.from(LATITUDE_CENTER, "Latitude", "The latitude value"))
- .requiredFloatParameter(Labels.from(LONGITUDE_CENTER, "Longitude", "The longitude value"))
- .build()
- );
- }
-
- @Override
- public void onPipelineStarted(IDataProcessorParameters params,
- SpOutputCollector collector,
- EventProcessorRuntimeContext runtimeContext) {
- this.centerLatitude = params.extractor().singleValueParameter(LATITUDE_CENTER, Float.class);
- this.centerLongitude = params.extractor().singleValueParameter(LONGITUDE_CENTER, Float.class);
- this.latitudeFieldName = params.extractor().mappingPropertyValue("latitude-field");
- this.longitudeFieldName = params.extractor().mappingPropertyValue("longitude-field");
- this.radius = params.extractor().singleValueParameter("radius", Integer.class);
- }
-
- @Override
- public void onEvent(Event event,
- SpOutputCollector collector) {
-
- }
-
- @Override
- public void onPipelineStopped() {
-
- }
-}
-
-```
-
-## Adding an implementation
-
-Everything we need to do now is to add an implementation.
-
-Add the following piece of code to the onEvent method, which realizes the Geofencing functionality:
-
-```java
-
- @Override
- public void onEvent(Event event,
- SpOutputCollector collector) {
- float latitude = event.getFieldBySelector(latitudeFieldName).getAsPrimitive().getAsFloat();
- float longitude = event.getFieldBySelector(longitudeFieldName).getAsPrimitive().getAsFloat();
-
- float distance = distFrom(latitude,longitude, centerLatitude, centerLongitude);
-
- if(distance <= radius){
- collector.collect(event);
- }
- }
-
- public static float distFrom(float lat1, float lng1, float lat2, float lng2) {
- double earthRadius = 6371000;
- double dLat = Math.toRadians(lat2-lat1);
- double dLng = Math.toRadians(lng2-lng1);
- double a = Math.sin(dLat/2)*Math.sin(dLat/2) +
- Math.cos(Math.toRadians(lat1))*Math.cos(Math.toRadians(lat2)) *
- Math.sin(dLng/2)*Math.sin(dLng/2);
-
- double c = 2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));
-
- return(float)(earthRadius*c);
- }
-```
-
-We won't go into details here as this isn't StreamPipes-related code, but in general the class extracts latitude and
-longitude fields from the input event (which is provided as a map data type) and calculates the distance between the
-geofence center and these coordinates.
-If the distance is below the given radius, the event is forwarded to the next operator.
-
-See the [event model](06_extend-sdk-event-model.md) guide to learn how to extract parameters from events.
-
-## Registering the pipeline element
-
-The final step is to register the data processor in the `Init` method. Add the following line to
-the `SpServiceDefinitionBuilder`:
-
-```java
- .registerPipelineElement(new GeofencingProcessor())
-```
-
-## Starting the service
-
-:::tip
-
-Once you start the service, it will register in StreamPipes with the hostname. The hostname will be auto-discovered and
-should work out-of-the-box.
-In some cases, the detected hostname is not resolvable from within a container (where the core is running). In this
-case, provide a SP_HOST environment variable to override the auto-discovery.
-
-:::
-
-:::tip
-
-The default port of all pipeline element services as defined in the `create` method is port 8090.
-If you'd like to run multiple services at the same time on your development machine, change the port here. As an
-alternative, you can also provide an env variable `SP_PORT` which overrides the port settings. This is useful to use
-different configs for dev and prod environments.
-
-:::
-
-Now we are ready to start our service!
-
-Configure your IDE to provide an environment variable called ``SP_DEBUG`` with value ``true`` when starting the project.
-
-Execute the main method in the class `Init` we've just created.
-
-The service automatically registers itself in StreamPipes.
-To install the just created element, open the StreamPipes UI and follow the manual provided in
-the [user guide](03_use-install-pipeline-elements.md).
-
-## Read more
-
-Congratulations! You've just created your first data processor for StreamPipes.
-There are many more things to explore and data processors can be defined in much more detail using multiple wrappers.
-Follow our [SDK guide](06_extend-sdk-static-properties.md) to see what's possible!
diff --git a/docs/06_extend-tutorial-data-sinks.md b/docs/06_extend-tutorial-data-sinks.md
deleted file mode 100644
index 09baeff71..000000000
--- a/docs/06_extend-tutorial-data-sinks.md
+++ /dev/null
@@ -1,272 +0,0 @@
----
-id: extend-tutorial-data-sinks
-title: "Tutorial: Data Sinks"
-sidebar_label: "Tutorial: Data Sinks"
----
-
-In this tutorial, we will add a new data sink using the standalone wrapper.
-
-From an architectural point of view, we will create a self-contained service that includes the description of the data
-sink and a corresponding implementation.
-
-## Objective
-
-We are going to create a new data sink that calls an external HTTP endpoint to forward data to an external service.
-
-For each incoming event, an external service is invoked using an HTTP POST request. In this example, we'll call an
-endpoint provided by [RequestBin](https://requestbin.com/).
-To setup your own endpoint, go to [https://requestbin.com/](https://requestbin.com/) and click "Create a request bin".
-Copy the URL of the newly created endpoint.
-
-## Project setup
-
-Instead of creating a new project from scratch, we recommend to use the Maven archetype to create a new project
-skeleton (streampipes-archetype-extensions-jvm).
-Enter the following command in a command line of your choice (Apache Maven needs to be installed):
-
-```
-mvn archetype:generate -DarchetypeGroupId=org.apache.streampipes \
--DarchetypeArtifactId=streampipes-archetype-extensions-jvm -DarchetypeVersion=0.93.0 \
--DgroupId=org.streampipes.tutorial -DartifactId=sink-tutorial -DclassNamePrefix=Rest -DpackageName=mypackage
-```
-
-You will see a project structure similar to the structure shown in the [archetypes](06_extend-archetypes.md) section.
-
-:::tip
-
-Besides the basic project skeleton, the sample project also includes an example Dockerfile you can use to package your
-application into a Docker container.
-
-:::
-
-Now you're ready to create your first data sink for StreamPipes!
-
-## Adding data sink requirements
-
-First, we will add a new stream requirement.
-Create a class `RestSink` which should look as follows:
-
-```java
-package org.apache.streampipes.pe.example;
-
-import org.apache.streampipes.extensions.api.pe.IStreamPipesDataSink;
-import org.apache.streampipes.extensions.api.pe.config.IDataSinkConfiguration;
-import org.apache.streampipes.extensions.api.pe.context.EventSinkRuntimeContext;
-import org.apache.streampipes.extensions.api.pe.param.IDataSinkParameters;
-import org.apache.streampipes.model.DataSinkType;
-import org.apache.streampipes.model.runtime.Event;
-import org.apache.streampipes.model.schema.PropertyScope;
-import org.apache.streampipes.sdk.builder.DataSinkBuilder;
-import org.apache.streampipes.sdk.builder.StreamRequirementsBuilder;
-import org.apache.streampipes.sdk.builder.sink.DataSinkConfiguration;
-import org.apache.streampipes.sdk.helpers.EpRequirements;
-import org.apache.streampipes.sdk.helpers.Labels;
-import org.apache.streampipes.sdk.helpers.Locales;
-import org.apache.streampipes.sdk.utils.Assets;
-
-public class RestSink implements IStreamPipesDataSink {
-
- @Override
- public IDataSinkConfiguration declareConfig() {
- return DataSinkConfiguration.create(
- RestSink::new,
- DataSinkBuilder.create("org.apache.streampipes.tutorial.pe.sink.rest")
- .category(DataSinkType.NOTIFICATION)
- .withAssets(Assets.DOCUMENTATION, Assets.ICON)
- .withLocales(Locales.EN)
- .requiredStream(StreamRequirementsBuilder
- .create()
- .requiredPropertyWithNaryMapping(EpRequirements.anyProperty(), Labels.withId(
- "fields-to-send"), PropertyScope.NONE)
- .build())
- .build()
- );
- }
-
- @Override
- public void onPipelineStarted(IDataSinkParameters params,
- EventSinkRuntimeContext eventSinkRuntimeContext) {
-
- }
-
- @Override
- public void onEvent(Event event) {
-
- }
-
- @Override
- public void onPipelineStopped() {
-
- }
-
-
-```
-
-In this class, we need to implement three methods: The `declareConfig` method is used to define abstract stream
-requirements such as event properties that must be present in any input stream that is later connected to the element
-using the StreamPipes UI.
-The second method, `onPipelineStarted` is called once a pipeline using this sink is started. The third method, `onEvent`, is
-called for every incoming event.
-
-The `DataSinkBuilder` within the ``declareConfig`` method describes the properties of our data sink:
-
-* ``category`` defines a category for this sink.
-* ``withAssets`` denotes that we will provide an external documentation file and an icon, which can be found in
- the ``resources`` folder
-* ``withLocales`` defines that we will provide an external language file, also available in the ``resources`` folder
-* ``requiredStream`` defines requirements any input stream connected to this sink must provide. In this case, we do not
- have any specific requirements, we just forward all incoming events to the REST sink. However, we want to let the user
- display a list of available fields from the connected input event, where users can select a subset. This is defined by
- defining a Mapping from the empty requirement. This will later on render a selection dialog in the pipeline editor.
-
-The ``onPipelineStarted`` method is called when a pipeline containing the sink is started. Once a pipeline is started, we
-would like to extract user-defined parameters.
-In this example, we simply extract the fields selected by users that should be forwarded to the REST sink. Finally, we
-return a new configured event sink containing the parameters.
-
-## Pipeline element invocation
-
-Once users start a pipeline that uses our geofencing component, the _onInvocation_ method in our class is called. The
-interface `IDataSinkParameters` includes methods to extract the configuration parameters a user has selected in
-the pipeline editor and information on the actual streams that are connected to the pipeline element.
-
-## Adding an implementation
-
-Now we'll add a proper implementation (i.e., the Rest call executed for every incoming event) to the following methods:
-
-Our final class should look as follows:
-
-```java
-package org.apache.streampipes.pe.example;
-
-import org.apache.streampipes.commons.exceptions.SpRuntimeException;
-import org.apache.streampipes.dataformat.SpDataFormatDefinition;
-import org.apache.streampipes.dataformat.json.JsonDataFormatDefinition;
-import org.apache.streampipes.extensions.api.pe.IStreamPipesDataSink;
-import org.apache.streampipes.extensions.api.pe.config.IDataSinkConfiguration;
-import org.apache.streampipes.extensions.api.pe.context.EventSinkRuntimeContext;
-import org.apache.streampipes.extensions.api.pe.param.IDataSinkParameters;
-import org.apache.streampipes.model.DataSinkType;
-import org.apache.streampipes.model.runtime.Event;
-import org.apache.streampipes.model.schema.PropertyScope;
-import org.apache.streampipes.sdk.builder.DataSinkBuilder;
-import org.apache.streampipes.sdk.builder.StreamRequirementsBuilder;
-import org.apache.streampipes.sdk.builder.sink.DataSinkConfiguration;
-import org.apache.streampipes.sdk.helpers.EpRequirements;
-import org.apache.streampipes.sdk.helpers.Labels;
-import org.apache.streampipes.sdk.helpers.Locales;
-import org.apache.streampipes.sdk.utils.Assets;
-
-import com.google.common.base.Charsets;
-import org.apache.http.client.fluent.Request;
-import org.apache.http.entity.StringEntity;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-public class RestSink implements IStreamPipesDataSink {
-
- private static final Logger LOG = LoggerFactory.getLogger(RestSink.class);
-
- private static final String REST_ENDPOINT_URI = YOUR_REQUEST_BIN_URL;
- private List<String> fieldsToSend;
- private SpDataFormatDefinition dataFormatDefinition;
-
- @Override
- public IDataSinkConfiguration declareConfig() {
- return DataSinkConfiguration.create(
- RestSink::new,
- DataSinkBuilder.create("org.apache.streampipes.tutorial.pe.sink.rest")
- .category(DataSinkType.NOTIFICATION)
- .withAssets(Assets.DOCUMENTATION, Assets.ICON)
- .withLocales(Locales.EN)
- .requiredStream(StreamRequirementsBuilder
- .create()
- .requiredPropertyWithNaryMapping(EpRequirements.anyProperty(), Labels.withId(
- "fields-to-send"), PropertyScope.NONE)
- .build())
- .build()
- );
- }
-
- @Override
- public void onPipelineStarted(IDataSinkParameters params,
- EventSinkRuntimeContext eventSinkRuntimeContext) {
- this.dataFormatDefinition = new JsonDataFormatDefinition();
- this.fieldsToSend = params.extractor().mappingPropertyValues("fields-to-send");
- }
-
- @Override
- public void onEvent(Event event) {
- Map<String, Object> outEventMap = event.getSubset(fieldsToSend).getRaw();
- try {
- String json = new String(dataFormatDefinition.fromMap(outEventMap));
- Request.Post(REST_ENDPOINT_URI).body(new StringEntity(json, Charsets.UTF_8)).execute();
- } catch (SpRuntimeException e) {
- LOG.error("Could not parse incoming event");
- } catch (IOException e) {
- LOG.error("Could not reach endpoint at {}", REST_ENDPOINT_URI);
- }
- }
-
- @Override
- public void onPipelineStopped() {
-
- }
-}
-
-```
-
-The only class variable you need to change right now is the REST_ENDPOINT_URL. Change this url to the URL provided by
-your request bin.
-In the ``ònEvent`` method, we use a helper method to get a subset of the incoming event.
-Finally, we convert the resulting ``Map`` to a JSON string and call the endpoint.
-
-## Preparing the service
-
-The final step is to register the sink as a pipeline element.
-
-Go to the class `Init` and register the sink:
-
-```java
-.registerPipelineElement(new RestSink())
-```
-
-## Starting the service
-
-:::tip
-
-Once you start the service, it will register in StreamPipes with the hostname. The hostname will be auto-discovered and
-should work out-of-the-box.
-In some cases, the detected hostname is not resolvable from within a container (where the core is running). In this
-case, provide a SP_HOST environment variable to override the auto-discovery.
-
-:::
-
-:::tip
-
-The default port of all pipeline element services as defined in the `create` method is port 8090.
-If you'd like to run multiple services at the same time on your development machine, change the port here. As an
-alternative, you can also provide an env variable `SP_PORT` which overrides the port settings. This is useful to use
-different configs for dev and prod environments.
-
-:::
-
-Now we are ready to start our service!
-
-Configure your IDE to provide an environment variable called ``SP_DEBUG`` with value ``true`` when starting the project.
-
-Execute the main method in the class `Init` we've just created. The service automatically registers itself in
-StreamPipes.
-
-To install the created element, open the StreamPipes UI and follow the manual provided in
-the [user guide](03_use-install-pipeline-elements.md).
-
-## Read more
-
-Congratulations! You've just created your first data sink for StreamPipes.
-There are many more things to explore and data sinks can be defined in much more detail using multiple wrappers.
-Follow our [SDK guide](../dev-guide-sdk-guide-sinks) to see what's possible!
diff --git a/website-v2/versioned_docs/version-0.95.0/06_extend-archetypes.md b/docs/07_extend-archetypes.md
similarity index 97%
rename from website-v2/versioned_docs/version-0.95.0/06_extend-archetypes.md
rename to docs/07_extend-archetypes.md
index a6907f0ee..c8736a40b 100644
--- a/website-v2/versioned_docs/version-0.95.0/06_extend-archetypes.md
+++ b/docs/07_extend-archetypes.md
@@ -43,4 +43,4 @@ For details, have a look at the other parts of the Developer Guide, where these
## Next steps
-Click [here](06_extend-first-processor.md) to learn how to create your first data processor.
+Click [here](07_extend-first-processor.md) to learn how to create your first data processor.
diff --git a/docs/06_extend-cli.md b/docs/07_extend-cli.md
similarity index 100%
rename from docs/06_extend-cli.md
rename to docs/07_extend-cli.md
diff --git a/docs/06_extend-customize-ui.md b/docs/07_extend-customize-ui.md
similarity index 100%
rename from docs/06_extend-customize-ui.md
rename to docs/07_extend-customize-ui.md
diff --git a/docs/06_extend-first-processor.md b/docs/07_extend-first-processor.md
similarity index 100%
rename from docs/06_extend-first-processor.md
rename to docs/07_extend-first-processor.md
diff --git a/docs/06_extend-sdk-event-model.md b/docs/07_extend-sdk-event-model.md
similarity index 98%
rename from docs/06_extend-sdk-event-model.md
rename to docs/07_extend-sdk-event-model.md
index 42cc8d472..42e36cf0f 100644
--- a/docs/06_extend-sdk-event-model.md
+++ b/docs/07_extend-sdk-event-model.md
@@ -10,7 +10,7 @@ This guide explains the usage of the event model to manipulate runtime events fo
## Prerequisites
-This guide assumes that you are already familiar with the basic setup of [data processors](06_extend-first-processor.md).
+This guide assumes that you are already familiar with the basic setup of [data processors](07_extend-first-processor.md).
### Property Selectors
diff --git a/docs/06_extend-sdk-functions.md b/docs/07_extend-sdk-functions.md
similarity index 99%
rename from docs/06_extend-sdk-functions.md
rename to docs/07_extend-sdk-functions.md
index 150f2381d..b2c577c23 100644
--- a/docs/06_extend-sdk-functions.md
+++ b/docs/07_extend-sdk-functions.md
@@ -32,7 +32,7 @@ APIs are subject to change in a future version.
:::
-To define a function, create a new extensions service using the [Maven Archetypes](06_extend-archetypes.md) or use an already existing service.
+To define a function, create a new extensions service using the [Maven Archetypes](07_extend-archetypes.md) or use an already existing service.
### Skeleton
diff --git a/docs/06_extend-sdk-migration-sd.md b/docs/07_extend-sdk-migration-sd.md
similarity index 100%
rename from docs/06_extend-sdk-migration-sd.md
rename to docs/07_extend-sdk-migration-sd.md
diff --git a/docs/06_extend-sdk-migrations.md b/docs/07_extend-sdk-migrations.md
similarity index 100%
rename from docs/06_extend-sdk-migrations.md
rename to docs/07_extend-sdk-migrations.md
diff --git a/docs/06_extend-sdk-output-strategies.md b/docs/07_extend-sdk-output-strategies.md
similarity index 100%
rename from docs/06_extend-sdk-output-strategies.md
rename to docs/07_extend-sdk-output-strategies.md
diff --git a/docs/06_extend-sdk-static-properties.md b/docs/07_extend-sdk-static-properties.md
similarity index 100%
rename from docs/06_extend-sdk-static-properties.md
rename to docs/07_extend-sdk-static-properties.md
diff --git a/docs/06_extend-sdk-stream-requirements.md b/docs/07_extend-sdk-stream-requirements.md
similarity index 100%
rename from docs/06_extend-sdk-stream-requirements.md
rename to docs/07_extend-sdk-stream-requirements.md
diff --git a/docs/06_extend-setup.md b/docs/07_extend-setup.md
similarity index 97%
rename from docs/06_extend-setup.md
rename to docs/07_extend-setup.md
index 12a96eb8e..a79887750 100644
--- a/docs/06_extend-setup.md
+++ b/docs/07_extend-setup.md
@@ -16,7 +16,7 @@ The only requirements in terms of development tools are that you have Java 17 an
In order to quickly test developed pipeline elements without needing to install all services required by StreamPipes, we provide a CLI tool that allows you to selectively start StreamPipes components.
The CLI tool allows to switch to several templates (based on docker-compose) depending on the role.
-The documentation on the usage of the CLI tool is available [here](06_extend-cli.md).
+The documentation on the usage of the CLI tool is available [here](07_extend-cli.md).
## Override the SP_HOST variable
@@ -43,7 +43,7 @@ Instead of starting from scratch, we recommend using our provided maven archetyp
### Maven archetypes
-Create the Maven archetype as described in the [Maven Archetypes](06_extend-archetypes.md) guide.
+Create the Maven archetype as described in the [Maven Archetypes](07_extend-archetypes.md) guide.
### Examples
diff --git a/docs/08_technicals-architecture.md b/docs/08_technicals-architecture.md
deleted file mode 100644
index e62ba4625..000000000
--- a/docs/08_technicals-architecture.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-id: technicals-architecture
-title: Architecture
-sidebar_label: Architecture
----
-
-## Architecture
-
-<img className="docs-image" src="/img/07_technicals/architecture.png" alt="StreamPipes Architecture"/>
-
-Apache StreamPipes implements a microservice architecture as shown in the figure above.
-
-## StreamPipes Core
-
-The StreamPipes Core is the central component to manage all StreamPipes resources.
-It delegates the management of adapters, pipeline elements, pipelines and functions to registered extensions services (see below) and monitors the execution of extensions.
-The Core also provides internal REST interfaces to communicate with the user interface, as well as public REST interfaces that can be used by external applications and StreamPipes clients.
-
-Configuration and user data are stored in an Apache CouchDB database.
-
-## StreamPipes Extensions
-
-An Apache StreamPipes extensions service is a microservice which contains the implementation of specific adapters, data streams, data processors, data sinks and functions.
-Multiple extension services can be part of a single StreamPipes installation.
-Each service might provide its own set of extensions. Extensions services register at the StreamPipes Core at startup. Users are able to install all or a subset of extensions of each service.
-This allows StreamPipes to be extended at runtime by starting a new service with additional extensions.
-
-Extensions can be built using the SDK (see [Extending StreamPipes](06_extend-setup.md)).
-Extensions services can be provided either in Java or in Python.
-
-:::info
-
-As of version 0.93.0, the Python SDK supports functions only. If you would like to develop pipeline elements in Python as well, let us know in a [Github discussions](https://github.com/apache/streampipes/discussions) comment, so that we can better prioritize development.
-
-:::
-
-
-An extensions service interacts with the core by receiving control messages to invoke or detach an extension.
-In addition, the core regularly fetches monitoring and log data from each registered extensions service.
-
-
-## StreamPipes Client
-
-The Apache StreamPipes Client is a lightweight library for Java and Python which can be used to interact with StreamPipes resources programmatically.
-For instance, users use the client to influence the control flow of pipelines, to download raw data from the data lake APIs or to realize custom applications with live data.
-
-
-## Third-party systems
-
-In addition to the core components, an Apache StreamPipes version uses several third-party services, which are part of the standard installation.
-
-* Configurations and user data is stored in an [Apache CouchDB](https://couchdb.apache.org) database.
-* Time-series data is stored in an [InfluxDB](https://github.com/influxdata/influxdb) database.
-* Events are exchanged over a messaging system. Users can choose from various messaging systems that StreamPipes supports. Currently, we support [Apache Kafka](https://kafka.apache.org), [Apache Pulsar](https://pulsar.apache.org), [MQTT](https://mqtt.org/) and [NATS](https://nats.io/). The selection of the right messaging system depends on the use case. See [Messaging](07_technicals-messaging.md) for more information.
-
-:::info
-
-Versions prior to 0.93.0 included Consul for service discovery and registration. Starting from 0.93.0 onwards, we switched to an internal service discovery mechanism.
-
-:::
-
-All mentioned third-party services are part of the default installation and are auto-configured during the installation process.
-
-## Programming Languages
-
-Apache StreamPipes is mainly written in Java.
-Services are based on Spring Boot.
-The included [Python integration](https://streampipes.apache.org/docs/docs/python/latest/) is written in Python.
-
-The user interface is mainly written in TypeScript using the Angular framework.
-
-
-## Data Model
-
-Internally, Apache StreamPipes realizes a stream processing layer where events are continuously exchanged over a messaging system.
-When building a pipeline, data processors consume data from a topic assigned by the core and publish data back to another topic, which is also assigned by the core.
-
-At runtime, events have a flat and easily understandable data structure, consisting of key/value pairs. Events are serialized in JSON, although StreamPipes can be configured to use other (binary) message formats.
-
-This allows for easy integration with other systems which want to consume data from Streampipes, since an event could look as simple as this:
-
-```json
-{
- "timestamp": 1234556,
- "deviceId": "ABC",
- "temperature": 37.5
-}
-```
-
-However, this wouldn't be very expressive, right? To [assist users](07_technicals-user-guidance.md), StreamPipes provides a rich description layer for events. So under the hood, for the `temperature` field shown above StreamPipes can also store the following:
-
-```json
-{
- "label": "Temperature",
- "description": "Measures the temperature during leakage tests",
- "measurementUnit": "https://qudt.org/vocab/unit/DEG_C",
- "runtimeName": "temperature",
- "runtimeType": "xsd:float",
- "semanticType": "https://my-company-vocabulary/leakage-test-temperature"
-}
-```
-
-By dividing the description layer from the runtime representation, we get a good trade-off between expressivity, readability for humans and lightweight runtime message formats.
-The schema is stored in an internal schema registry and available to the client APIs and user interface views to improve validation and user guidance.
-
-StreamPipes also supports arrays and nested structures, although we recommend using flat events where possible to ease integration with downstream systems (such as time-series storage).
-
-
-
-
diff --git a/docs/08_technicals-messaging.md b/docs/08_technicals-messaging.md
deleted file mode 100644
index d5308a6d8..000000000
--- a/docs/08_technicals-messaging.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-id: technicals-messaging
-title: Messaging
-sidebar_label: Messaging
----
-
-## Architecture
-
-To exchange messages at runtime between individual [Extensions Services](07_technicals-architecture.md), StreamPipes uses external messaging systems.
-This corresponds to an event-driven architecture with a central message broker and decoupled services which consume and produce events from the messaging system.
-
-There are many different open source messaging systems on the market, which each have individual strengths.
-To provide a flexible system which matches different needs, StreamPipes can be configured to use various messaging systems.
-
-## Supported messaging systems
-
-The following messaging systems are currently supported:
-
-* Apache Kafka
-* Apache Pulsar
-* MQTT
-* NATS
-
-## Configure StreamPipes to use another messaging system
-
-Configuring StreamPipes for one of these messaging system is an installation-time configuration.
-We currently do not recommend to change the configuration at runtime.
-
-The protocol can be configured with the environment variable `SP_PRIORITIZED_PROTOCOL` assigned to the core with one of the following values:
-
-```bash
-SP_PRIORITIZED_PROTOCOL=kafka # Use Kafka as protocol
-SP_PRIORITIZED_PROTOCOL=pulsar # Use Pulsar as protocol
-SP_PRIORITIZED_PROTOCOL=mqtt # Use MQTT as protocol
-SP_PRIORITIZED_PROTOCOL=nats # Use NATS as protocol
-```
-
-Note that each extension service can support an arbitrary number of protocols. For instance, you can have a lightweight extension service which only supports NATS, but have another, cloud-centered service which supports Kafka, both registered at the Core.
-To select a protocol when multiple protocols are supported by two pipeline elements, StreamPipes selects a protocol based on a priority, which can be configured in the [Configuration View](03_use-configurations.md).
-StreamPipes ensures that only pipeline elements which have a commonly supported protocol can be connected.
-
-Note that you might need to change the installation files. For the `Docker-Compose` based installation, we provide various compose file for different messaging setups. For the `Kubernetes` installation, we provide variables which can be set in the helm chart's `values.yaml` file.
-
-### Configure broker addresses
-
-By default, StreamPipes assumes that the messaging system is started from its own environment, e.g., the system configured in the selected `Docker-Compose` file.
-
-Besides that, it is also possible to let StreamPipes connect to an externally provided messaging system. For this purpose, various environment variables exist.
-
-* `SP_PRIORITIZED_PROTOCOL` to set the prioritized protocol to either `kafka`, `mqtt`, `nats` or `pulsar`
-
-* `SP_KAFKA_HOST`, `SP_KAFKA_PORT` to configure Kafka access
-* `SP_MQTT_HOST`, `SP_MQTT_PORT` to configure MQTT access
-* `SP_NATS_HOST`, `SP_NATS_PORT` to configure NATS access
-* `SP_PULSAR_URL` to configure Pulsar access
-
-
-Most settings can also be set in the UI under `Settings->Messaging`.
-
-:::warning Installation-time configurations
-Although it is currently possible to change messaging settings in the user interface, we do not support dynamic modification of messaging systems.
-Choosing a proper system is considered an installation-time setting which should not be changed afterwards.
-Already existing Adapters and pipeline elements are not properly updated after changes of the messaging layer.
-:::
-
diff --git a/docs/08_technicals-runtime-wrappers.md b/docs/08_technicals-runtime-wrappers.md
deleted file mode 100644
index 9cebadfd2..000000000
--- a/docs/08_technicals-runtime-wrappers.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-id: technicals-runtime-wrappers
-title: Runtime Wrappers
-sidebar_label: Runtime Wrappers
----
-
-## Overview
-
-In general, StreamPipes has an exchangeable runtime layer, e.g., the actual processing of incoming events can be delegated to a third-party stream processing system such as Kafka Streams or Apache Flink.
-
-The default runtime wrapper is the StreamPipes Native Wrapper, called the `StandaloneWrapper`.
-
-Although not recommended for production, we invite interested developers to check out our experimental wrappers:
-
-* Kafka Streams runtime wrapper at [https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-kafka-streams](https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-kafka-streams)
-* Apache Flink runtime wrapper at [https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-flink](https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-flink)
-
-## Assigning a runtime wrapper to an extension service
-
-Runtime wrappers can be assigned in the `Service Definition` of the `Init` class of an extension service:
-
-```java
-
- @Override
- public SpServiceDefinition provideServiceDefinition(){
- return SpServiceDefinitionBuilder.create("org.apache.streampipes.extensions.all.jvm",
- "StreamPipes Extensions (JVM)",
- "",8090)
- ...
- .registerRuntimeProvider(new StandaloneStreamPipesRuntimeProvider())
- ...
- .build();
- }
-
-```
-
-Please let us know through our communication channels if you are interested in this feature and if you are willing to contribute!
diff --git a/docs/08_technicals-user-guidance.md b/docs/08_technicals-user-guidance.md
deleted file mode 100644
index 697411861..000000000
--- a/docs/08_technicals-user-guidance.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: technicals-user-guidance
-title: User Guidance
-sidebar_label: User Guidance
----
-
-tbd
\ No newline at end of file
diff --git a/website-v2/versioned_docs/version-0.92.0/09_contribute.md b/docs/09_contribute.md
similarity index 100%
rename from website-v2/versioned_docs/version-0.92.0/09_contribute.md
rename to docs/09_contribute.md
diff --git a/docs/09_debugging.md b/docs/09_debugging.md
deleted file mode 100644
index 95892c175..000000000
--- a/docs/09_debugging.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: debugging-debugging
-title: Debugging
-sidebar_label: Debugging
----
-
-tbd
\ No newline at end of file
diff --git a/website-v2/versioned_docs/version-0.95.0/09_get-help.md b/docs/09_get-help.md
similarity index 100%
rename from website-v2/versioned_docs/version-0.95.0/09_get-help.md
rename to docs/09_get-help.md
diff --git a/docs/09_monitoring.md b/docs/09_monitoring.md
deleted file mode 100644
index 6680b5d86..000000000
--- a/docs/09_monitoring.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: debugging-monitoring
-title: Monitoring
-sidebar_label: Monitoring
----
-
-tbd
\ No newline at end of file
diff --git a/docs/10_contribute.md b/docs/10_contribute.md
deleted file mode 100644
index 119568929..000000000
--- a/docs/10_contribute.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: community-contribute
-title: Contribute
-sidebar_label: Contribute
----
-
-## Contribute
-
-We welcome contributions to StreamPipes. If you are interested in contributing to StreamPipes, let us know! You'll
-get to know an open-minded and motivated team working together to build the next IIoT analytics toolbox.
-
-Here are some first steps in case you want to contribute:
-* Subscribe to our dev mailing list [dev-subscribe@streampipes.apache.org](mailto:dev-subscribe@streampipes.apache.org)
-* Send an email, tell us about your interests and which parts of Streampipes you'd like to contribute (e.g., core or UI)!
-* Ask for a mentor who helps you to understand the code base and guides you through the first setup steps
-* Find an issue on [GitHub](https://github.com/apache/streampipes/issues) which is tagged with a _good first issue_ tag
-* Have a look at our **developer wiki** at [https://cwiki.apache.org/confluence/display/STREAMPIPES](https://cwiki.apache.org/confluence/display/STREAMPIPES) to learn more about StreamPipes development.
diff --git a/docs/10_get-help.md b/docs/10_get-help.md
deleted file mode 100644
index 0104f6810..000000000
--- a/docs/10_get-help.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-id: community-get-help
-title: Get Help
-sidebar_label: Get Help
----
-
-The Apache StreamPipes community is happy to help with any questions or problems you might have.
-
-## Questions
-Subscribe to our user mailing list to ask a question.
-
-[Mailing Lists](https://streampipes.apache.org/community/mailing-lists/)
-
-To subscribe to the user list, send an email to [users-subscribe@streampipes.apache.org](users-subscribe@streampipes.apache.org)
-
-You can also ask questions on our Github discussions page:
-[Github Discussions](https://github.com/apache/streampipes/discussions)
-
-## Bugs and Feature Requests
-
-If you've found a bug or have a feature that you'd love to see in StreamPipes, feel free to create an issue on [GitHub](https://github.com/apache/streampipes/issues)
-or [discuss your ideas](https://github.com/apache/streampipes/discussions/categories/ideas).
-
-
-
diff --git a/docs/pe/org.apache.streampipes.connect.iiot.adapters.oi4.md b/docs/pe/org.apache.streampipes.connect.iiot.adapters.oi4.md
index 1621d8702..dfca0bd2c 100644
--- a/docs/pe/org.apache.streampipes.connect.iiot.adapters.oi4.md
+++ b/docs/pe/org.apache.streampipes.connect.iiot.adapters.oi4.md
@@ -62,7 +62,7 @@ Choose between unauthenticated access or input your credentials for authenticate
You should provide information about the sensor you want to connect to. This can be achieved in two ways:
-a) **By Type**: Specify the type of sensor you want to connect to, e.g., `'VVB001'`. <\br>
+a) **By Type**: Specify the type of sensor you want to connect to, e.g., `'VVB001'`. <br />
b) **By IODD**: Simply upload the IODD description of the respective sensor. Please note: This feature is not yet available! If you're interested in this feature, please notify us through the mailing list or GitHub discussions and share your use case with us.
### Selected Sensors
diff --git a/docs/pe/org.apache.streampipes.connect.iiot.adapters.plc4x.generic.knxnet-ip.md b/docs/pe/org.apache.streampipes.connect.iiot.adapters.plc4x.generic.knxnet-ip.md
index cd15c4c5b..e5e0c1052 100644
--- a/docs/pe/org.apache.streampipes.connect.iiot.adapters.plc4x.generic.knxnet-ip.md
+++ b/docs/pe/org.apache.streampipes.connect.iiot.adapters.plc4x.generic.knxnet-ip.md
@@ -85,9 +85,9 @@ Use this configuration option in order to define the port number of the local po
* knxproj-password: Optional password needed to read the knxproj file. (STRING)
* group-address-num-levels: KNX Addresses can be encoded in multiple ways. Which encoding is used, is too not provided by the protocol itself so it has to be provided externally:
-- 3 Levels: {main-group (5 bit)}/{middle-group (3 bit)}/{sub-group (8 bit)}
-- 2 Levels: {main-group (5 bit)}/{sub-group (11 bit)}
-- 1 Level: {sub-group (16 bit)}
+- 3 Levels: `{main-group (5 bit)}/{middle-group (3 bit)}/{sub-group (8 bit)}`
+- 2 Levels: `{main-group (5 bit)}/{sub-group (11 bit)}`
+- 1 Level: `{sub-group (16 bit)}`
The default is 3 levels. If the `knxproj-file-path` this information is provided by the file. (INT)
* connection-type: Type of connection used to communicate. Possible values are:
diff --git a/docs/pe/org.apache.streampipes.connect.iiot.protocol.stream.httpserver.md b/docs/pe/org.apache.streampipes.connect.iiot.protocol.stream.httpserver.md
index 366b7ccce..f1dbdf179 100644
--- a/docs/pe/org.apache.streampipes.connect.iiot.protocol.stream.httpserver.md
+++ b/docs/pe/org.apache.streampipes.connect.iiot.protocol.stream.httpserver.md
@@ -38,7 +38,7 @@ Data sent to this endpoint via POST requests is transformed into StreamPipes eve
### Configuration
#### Endpoint Appendix
- Specify the name of the endpoint resource. The endpoint can be accessed at {host of StreamPipes UI}/endpoints/{endpointName}
+ Specify the name of the endpoint resource. The endpoint can be accessed at `{host of StreamPipes UI}/endpoints/{endpointName}`
#### Configuration
##### Manual
@@ -48,4 +48,3 @@ Provides an option to define the event schema manually.
Use a file with example data to automatically detect a first event schema.
***
-
diff --git a/docs/pe/org.apache.streampipes.processors.filters.jvm.merge.md b/docs/pe/org.apache.streampipes.processors.filters.jvm.merge.md
index 569b5ee2f..ff7549c61 100644
--- a/docs/pe/org.apache.streampipes.processors.filters.jvm.merge.md
+++ b/docs/pe/org.apache.streampipes.processors.filters.jvm.merge.md
@@ -51,7 +51,7 @@ Each of the data streams needs a timestamp.
## Configuration
* For each stream a the timestamp property on which the merger is performed has to be selected
-* The Time Interval describes the maximum value between two events to decide whether they are a match. To be a valid match the following function must be true: | timestamp_stream_1 - timestamp_stream_2 | < interval
+* The Time Interval describes the maximum value between two events to decide whether they are a match. To be a valid match the following function must be true: `| timestamp_stream_1 - timestamp_stream_2 | < interval`
## Output
-The Compose processor has a configurable output that can be selected by the user at pipeline modeling time.
\ No newline at end of file
+The Compose processor has a configurable output that can be selected by the user at pipeline modeling time.
diff --git a/docs/pe/org.apache.streampipes.processors.geo.jvm.latlong.processor.distancecalculator.haversine.md b/docs/pe/org.apache.streampipes.processors.geo.jvm.latlong.processor.distancecalculator.haversine.md
index 075dd23d0..5caa63f0f 100644
--- a/docs/pe/org.apache.streampipes.processors.geo.jvm.latlong.processor.distancecalculator.haversine.md
+++ b/docs/pe/org.apache.streampipes.processors.geo.jvm.latlong.processor.distancecalculator.haversine.md
@@ -56,6 +56,8 @@ This is the second geographic coordinate that specifies the east-west position o
This is the second geographic coordinate that specifies the north-south position of a point on the Earth's surface.
## Output
+```json
{
- 'distance': 12.2
-}
\ No newline at end of file
+ "distance": 12.2
+}
+```
diff --git a/docs/pe/org.apache.streampipes.processors.siddhi.numericalfilter.md b/docs/pe/org.apache.streampipes.processors.siddhi.numericalfilter.md
index fb20b1013..4253e706f 100644
--- a/docs/pe/org.apache.streampipes.processors.siddhi.numericalfilter.md
+++ b/docs/pe/org.apache.streampipes.processors.siddhi.numericalfilter.md
@@ -36,7 +36,7 @@ CEP engine Siddhi by issuing a Siddhi query, e.g.
```
// filter query to filter out all events not satisfying the condition
-from inputStreamName[numberField<10]
+`from inputStreamName[numberField<10]`
select *
```
@@ -60,4 +60,4 @@ Specifies the filter operation that should be applied on the field.
Specifies the threshold value.
## Output
-The processor outputs the input event if it satisfies the filter expression.
\ No newline at end of file
+The processor outputs the input event if it satisfies the filter expression.
diff --git a/docs/pe/org.apache.streampipes.processors.transformation.jvm.processor.booloperator.state.md b/docs/pe/org.apache.streampipes.processors.transformation.jvm.processor.booloperator.state.md
index 7eb96ae8b..16574a644 100644
--- a/docs/pe/org.apache.streampipes.processors.transformation.jvm.processor.booloperator.state.md
+++ b/docs/pe/org.apache.streampipes.processors.transformation.jvm.processor.booloperator.state.md
@@ -50,7 +50,7 @@ When all boolean values are false, a default state can be defined
### Mapping Configuration
Configuration to provide a string mapping for each possible value.
-On the left ist the value of the runtime name and on the right the new value (e.g. {"runtimeName": "newValue"}).
+On the left ist the value of the runtime name and on the right the new value (e.g. `{"runtimeName": "newValue"}`).
***
diff --git a/docs/user-guide-first-steps.md b/docs/user-guide-first-steps.md
deleted file mode 100644
index b7ca89f62..000000000
--- a/docs/user-guide-first-steps.md
+++ /dev/null
@@ -1,209 +0,0 @@
----
-id: user-guide-first-steps
-title: First steps
-sidebar_label: First steps
----
-
-In this section, you'll learn how to create and run pipelines in StreamPipes.
-Before starting with this guide, all steps from the installation guide must be finished successfully and StreamPipes must be up and running.
-
-This guide consists of three steps:
-First, you'll learn how to create your first pipeline using the interactive tutorial.
-Afterwards, this section contains two examples on how to create pipelines based on the built-in data simulator.
-
-## Interactive Tutorial
-The easiest way to get started with StreamPipes is the interactive tutorial. Once you open the pipeline editor for the first time, you'll see a splash screen as shown below.
-Click **Start tour** to start the interactive tutorial, which will guide you through your first steps with StreamPipes.
-
-
-
-If the splash screen does not show up, make sure you've installed the following pipeline elements:
-* Flow rate (data stream)
-* Numerical Filter (processing element)
-* Dashboard (data sink)
-
-After you've finished this very first tour, try the following tours to learn more about other features of StreamPipes:
-* Open the Live Dashboard and start the dashboard tour (by clicking the school icon in the top menu bar) to learn how to create real-time visualizations
-* Open StreamPipes Connect and start the tour to learn how to connect new data sources with StreamPipes.
-
-## First Examples
-
-In this tutorial, you will create two simple pipelines that demonstrate the basic functionality of StreamPipes.
-The first example deals with monitoring a flow rate sensor.
-This pipeline ensures that everything works properly and data is sent through the whole system.
-In the second example we model a more complex situation detection pipeline that triggers a notification.
-Let's start with our first pipeline.
-If you have problems with any of the examples, please send us an email.
-We are happy to help you.
-
-## Data Simulation
-All the data sources that we have integrated in the StreamPipes demonstrator are simulated according to real world sensors.
-For example a flow rate sensor in a water pipe, which measures how much water flows in that pipe or a water level sensor in a water tank, that reports how high the water level is in the tank.
-In the next section you will use the flow rate sensor to build your first pipeline.
-
-## Flow Rate Visualization
-In the first example, we create a live line chart to monitor the value of the mass flow from a flow rate sensor.
-
-### Create Pipeline
-* As a first step go to the pipeline editor
-* Select the **FRS1** (Flow Rate Source 1)source
-* Then navigate to the **Data Sink** tab
-* Select the **DS** (Dashboard Sink) and connect the source with the sink
-* After connecting the elements save the pipeline by clicking on the save button on the top left corner
-* In the save menu add a name *Flow Rate Monitoring* and a description *This is my very first pipeline!*
-* Also select the **Start pipeline immediatly** checkbox
-* Then click the button **Save and go to pipeline view**
-* You are navigated to the pipeline view and a confirmation that the pipeline was started successfully should be shown
-
-<div class="my-carousel">
- <img src="/img/quickstart/examples_master/01_PipelineEditor_DataStreams.png" alt="Show Pipeline Editor Streams"/>
- <img src="/img/quickstart/examples_master/02_example1_source.png" alt="Sources"/>
- <img src="/img/quickstart/examples_master/03_example1_pipeline_finished.png" alt="Pipeline Finished"/>
- <img src="/img/quickstart/examples_master/04_example1_save.png" alt="Saved Pipeline"/>
- <img src="/img/quickstart/examples_master/05_example1_pipeline_started.png" alt="Pipeline 01 Started"/>
-</div>
-
-### Create Visualization
-* After we have created the pipeline we must create the line chart
-* Navigate to the **Live Dashboard** of StreamPipes
-* Click on the **Add visualization** button
-* Select the just created pipeline **Flow Rate Monitoring** and click the **next** button
-* For the visualization select the **Line Chart** and click **next** again
-* Now you have to enter the configuration for the line chart
- * Select time mapping: **timestamp**
- * Select number mapping: **mass_flow**
- * Range Minimum: **0**
- * Range Maximum: **10**
-* When all parameters are set correctly click the next button again.
-* Congratulation you created the first pipeline and should now see the line chart
-
-<div class="my-carousel">
- <img src="/img/quickstart/examples_master/06_example01_live_visualisation.png" alt="Visualize Pipeline"/>
- <img src="/img/quickstart/examples_master/07_example01_first_step.png" alt="Configure Visualization Step 1"/>
- <img src="/img/quickstart/examples_master/08_example01_second_step.png" alt="Configure Visualization Step 2"/>
- <img src="/img/quickstart/examples_master/09_example01_third_step.png" alt="Configure Visualization Step 3"/>
- <img src="/img/quickstart/examples_master/10_example1_finished.png" alt="Pipeline 01 Done"/>
-</div>
-
-
-## Condition monitoring of a water tank
-In our second example we are going to create a more complex pipeline.
-This pipeline has two sources, the flow rate sensor from the previous example and a source measuring the water level in a tank.
-Our goal is to send a notification when the flow rate stops and the water level in the water tank sinks too fast.
-In this case a service technician should check the system as soon as possible.
-This example should just illustrate how the individual components work.
-Since the system currently uses simulated data each time the situation occurs a notification is triggered.
-
-Now lets start!
-
-
-### Build the pipeline
-* First we have to select the **FRS1** (Flow Rate Sensor 1) and **WL1** (Water Level) form the sources tab
-* In a first step we want to detect when the flow rate stops
-* Use the **NF** (Numerical Filter) from the processing elements tab and connect it to the **FRS1** source
-* Configure the **Numerical Filter**:
- * Field name for filter operator: **mass_flow**
- * Filter Operation: **<**
- * Threshold value: **1**
-
-<div class="my-carousel">
- <img src="/img/quickstart/examples_master/11_example2_start.png" alt="Start Example 2"/>
- <img src="/img/quickstart/examples_master/12_example2_numerical.png" alt="Select Numericl Filter"/>
- <img src="/img/quickstart/examples_master/13_example2_configure_numerical.png" alt="Configure Numerical Filter"/>
-</div>
-
-* As a next step we add an aggregation to the water level. This reduces the inaccuracies we have because the water moves in the tank.
-* Select the **A** (Aggregation) processing element
-* Connect the **WL1** with **A**
-* Configure **Aggregation**:
- * Property Selection: **level**
- * Operation: **Average**
- * Time Window Size: **10**
- * Output Frequency: **1**
- * Groupe By: **None**
-
-<div class="my-carousel">
- <img src="/img/quickstart/examples_master/14_example2_aggregate.png" alt="Select Aggregation"/>
- <img src="/img/quickstart/examples_master/15_example2_configure_aggregate.png" alt="Configure Aggregation"/>
- <img src="/img/quickstart/examples_master/15_example2_configure_aggregate_2.png" alt="Configure Aggregation"/>
-
-</div>
-
-* With the next processing element we check if the water level decreases too fast
-* Select **I** (Trend) and connect it to **A**
-* Configure **Trend**:
- * Timestamp field: **timestamp**
- * Value to observe: **aggregatedValue** (This value is created by previous element)
- * Group by: **sensorId**
- * Increase / Decrease: **Decrease**
- * Percentage of Increase / Decrease: **20**
- * Time Window Length: **10**
- * Select Output: **All**
-
-<div class="my-carousel">
- <img src="/img/quickstart/examples_master/16_example2_increase.png" alt="Select Increase"/>
- <img src="/img/quickstart/examples_master/17_example2_configure1_increase.png" alt="Configute 01 Increase"/>
-</div>
-
-* Now we connect the two stream with the sequence element, which checks if both events occur in a certain time
-* Select **S** (Sequence) and connect both data streams to it
-* Configure **Sequence**:
- * Time Window Size: **1**
- * Time Unit: **sec**
-
-<div class="my-carousel">
- <img src="/img/quickstart/examples_master/19_example2_sequence.png" alt="Select Sequence Detection"/>
- <img src="/img/quickstart/examples_master/20_example2_configure_sequence.png" alt="ConfigureSequence Detection"/>
-</div>
-
-* Now we create a notification for the service technician that something is wrong with the system
-* Select **N** (Notification) from the data sink tab
-* Connect **S** with **N**
-* Configure **Notification**:
- * Notification title: **Alarm**
- * Content: **One notification was triggered by our first complex pipeline. Yeahhhh!**
-
-<div class="my-carousel">
- <img src="/img/quickstart/examples_master/21_example2_notification.png" alt="Select Notification"/>
- <img src="/img/quickstart/examples_master/22_example2_configure_notification.png" alt="Configure Notification"/>
-</div>
-
-* Add the dashboard sink to the increase element to monitor the preliminary results
-* Select **DS** and connect to **I**
-
-<div class="my-carousel">
- <img src="/img/quickstart/examples_master/23_example2_dashboard_sink.png" alt="Select Dashboard"/>
-</div>
-
-* Save the pipeline
-* Save configuration:
- * Pipeline Name: **Second Pipeline**
- * Description: **Complex monitorung rule**
- * Start pipeline immediately: **CHECK**
-* Click **Save and go to pipeline view**
-* All pipeline elements should be started successfully
-* It can be seen that the elements run on different technologies, in flink and a java container
- * http://pe-flink-examples:8090
- * http://pe-jvm-examples:8090
-* Go to visualization and create **Raw Data** visualization for the new pipeline
-
-<div class="my-carousel">
- <img src="/img/quickstart/examples_master/25_example2_started.png" alt="Pipeline Started Sucessfull"/>
- <img src="/img/quickstart/examples/26_example2_visualisation.png" alt="Add Visualization"/>
-</div>
-
-* Every time you can see output in the **Raw Data** visualization of the new pipeline and the **Line Chart** from the first example are zero, a Notification is triggered by the pipeline.
-* Go to the **Notifications** view and have a look at the notification
-
-<div class="my-carousel">
- <img src="/img/quickstart/examples/27_example2_notification.png" alt="Show Notification"/>
-</div>
-
-
-Congratulation you finished the quick start!
-It is recommended to stop the last pipeline, because it will keep creating notifications ;)
-
-We hope we gave you an easy quick start into StreamPipes.
-If you have any questions or suggestions, just send us an email.
-From here on you can explore all features in the [User Guide](user-guide-introduction) or go to the [Developer Guide](extend-setup) to learn how to write your own StreamPipes processing elements.
-
diff --git a/docs/user-guide-tour.md b/docs/user-guide-tour.md
deleted file mode 100644
index a6ae2f8ff..000000000
--- a/docs/user-guide-tour.md
+++ /dev/null
@@ -1,305 +0,0 @@
----
-id: user-guide-tour
-title: Tour
-sidebar_label: Tour
----
-
-StreamPipes is a framework that enables domain experts to model and execute stream processing pipelines in a big data infrastructure.
-The graphical user interface of StreamPipes is a web application that provides an easy to use solution for domain experts.
-In this page, an overview of the many features of StreamPipes is given. We will tour through all features and explain what they do and how users can interact with them.
-
-First of all, a user needs to log in to the system.
-The credentials for the user are specified during the installation process.
-
-
-
-## Home
-After logging in, the user is redirected on to the home page.
-The home page gives an overview over the different features available in the StreamPipes UI.
-
-On the left, the navigation menu can be seen.
-You can either use the icons on the left side or click on the menu icon on the
-top left to open the details view of the navigation menu.
-
-On the top right, a link refers to the documentation and the logout button is present.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/home/home.png" alt="Home"/>
- <img src="/img/features_0_62_0/home/open_menu.png" alt="Open Menu"/>
-</div>
-
-
-
-## Pipeline Editor
-The first feature we are going to explain is the Pipeline Editor.
-This is one of the central features of StreamPipes, since graphical modeling of pipelines takes place in this view.
-
-On the top we can see four tabs: __Data Sets__, __Data Streams__, __Processing Elements__, and __Data Sinks__.
-Each tab contains multiple pipeline elements, which can be installed at runtime.
-The installation of pipeline elements is explained later in section [Install Pipeline Elements](user-guide-tour.md#install-pipeline-elements).
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/editor/2_PipelineEditor_DataStreams.png" alt="Data Streams"/>
- <img src="/img/features_0_62_0/editor/3_PipelineEditor_DataProcessors.png" alt="Processing Elements"/>
- <img src="/img/features_0_62_0/editor/4_PipelineEditor_DataSinks.png" alt="Data Sinks"/>
- <img src="/img/features_0_62_0/editor/1_PipelineEditor_DataSets.png" alt="Data Sets"/>
-</div>
-
-There are multiple ways to search for a pipeline element.
-The easiest way is to enter a search term in the search field on the top left corner.
-The system filters the elements according to the search term and only presents the relevant ones.
-Another way is to select one of the categories from the drop down menu.
-The system then filters the elements according to the selected category.
-The category of an element is defined by its functionality.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/editor/5_text_filter.png" alt="Text Filter"/>
- <img src="/img/features_0_62_0/editor/6_category_drop_down.png" alt="Category Drop Down"/>
- <img src="/img/features_0_62_0/editor/7_category_filter.png" alt="Category Filter"/>
-</div>
-
-Modelling of a pipeline starts with choosing one ore more data sources. Therefore a data stream or data set must be selected
-and moved into the editor via drag and drop.
-After adding a data stream, we can select a processing element to transform the events of the data stream.
-This is done again by dragging the processing element icon into our editor.
-The mouse can be used to connect the two elements.
-It is automatically checked in the background if the two elements are semantically compatible.
-If this check is successful, a configuration menu is shown. It contains the parameters that can be modified by the
-user. For all parameters, a description is provided and the system also prevents the user from entering parameters that
-are not correct, according to the semantic description of the element.
-It is also ensured that all required parameters are provided by the user, otherwise an error message is displayed.
-
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/editor/8_connect_elements.png" alt="Connect Elements"/>
- <img src="/img/features_0_62_0/editor/9_configure_element.png" alt="Configure Elements"/>
-</div>
-
-When the user tries to connect two elements that are not compatible, the system shows a __connection error__ message.
-The example illustrated below shows such a case. The user tried to connect a text filter to a light sensor.
-This is not possible since the text filter processing element requires at least one event property of type string, which is not provided by the light sensor.
-
-
-
-To further improve the usability, multiple ways are available to connect new elements besides the drag and drop option.
-Each processing element has multiple short-cut buttons to connect it with another element.
-The first one (eye icon) can be used to get a suggestion of all elements that are compatible with the current element.
-The second one (plus icon) gives a recommendation on the elements the user might want to connect, based on the usage of the component in
-other pipelines.
-There is also a button (question tag icon) to open the documentation of a selected element.
-Elements can be deleted by clicking the 'delete' button.
-Each element can also be re-configured at a later point in time using the configuration button.
-There is one important aspect about re-configuration of pipeline elements you need to be aware of: Only elements that are not yet connected to another element can be modified.
-The reason for this behaviour is that some of the following elements might rely on the configuration of previous elements.
-This way it is ensured that the user can not change the behaviour of the pipeline by accident.
-
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/editor/11_shortcut_buttons.png" alt="Shortcut Buttons"/>
- <img src="/img/features_0_62_0/editor/12_compatible_elements.png" alt="Compatible Elements"/>
- <img src="/img/features_0_62_0/editor/13_recommend_elements.png" alt="Recommended elements"/>
-</div>
-
-
-After the pipeline is completely modelled, the editor looks similar to the first image below.
-Especially for larger pipelines, the auto layout button in the editor menu might be helpful.
-With this button, the pipeline will be beautifully aligned in the editor, helping users to get a better overview of the complete pipeline.
-On the top left corner of the editor, the 'save' button can be found.
-After the modelling of the pipeline is done, use this button to save and execute the pipeline.
-A save dialogue pops up when clicking the save button.
-The pipeline title must be entered and an additional description can be provided.
-It is recommended to always provide a description, because it makes it easier for other users to understand the meaning of the pipeline.
-In the save menu, the user can either just store the pipeline configuration or store it and immediately start the pipeline.
-Once the pipeline is executed, the user is redirected to the _Manage Pipeline_ view.
-In this view, the user gets immediate feedback whether all components did start correctly and the pipeline is up and running.
-This view also shows that individual elements might run in different environments on different servers.
-If there is an error during the execution, a notification containing a (hopefully) detailed error description is provided in this view.
-<div class="my-carousel">
- <img src="/img/features_0_62_0/editor/14_save_adjust.png" alt="Save adjust delete"/>
- <img src="/img/features_0_62_0/editor/15_save_dialogue.png" alt="Complete pipeline"/>
- <img src="/img/features_0_62_0/editor/16_pipeline_sucessfully_started.png" alt="Pipeline sucessfully started"/>
-</div>
-
-## Connect new Data Sources
-With StreamPipes Connect it is possible to connect new data sources in StreamPipes with just a few clicks.
-Therefore, we provide a marketplace with a lot of different adapters that can be configured and executed to create new __Data Streams__ in the __Pipeline Editor__.
-With StreamPipes Connect it is possible to connect specific data sources - e.g. an adapter streaming the current location of the ISS (International Space Station).
-It is also possible to connect generic sources like message brokers or databases.
-If the event schema of the data source is unknown, the system tries to infer the schema by extracting some sample data and analysing it.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/connect/new/01_connect.png" alt="Market Place"/>
- <img src="/img/features_0_62_0/connect/new/02_mqtt_adapter.png" alt="MQTT adapter"/>
- <img src="/img/features_0_62_0/connect/new/03_configure_mqtt.png" alt="Configure MQTT adpater"/>
- <img src="/img/features_0_62_0/connect/new/04_configure_format.png" alt="Guess event schema"/>
- <img src="/img/features_0_62_0/connect/new/05_guess_schema.png" alt="Guess event schema"/>
- <img src="/img/features_0_62_0/connect/new/06_edit_adapter.png" alt="Edit adapter"/>
- <img src="/img/features_0_62_0/connect/new/07_start_adapter.png" alt="Start adapter"/>
- <img src="/img/features_0_62_0/connect/new/08_data_stream_in_editor.png" alt="New data stram in pipeline editor"/>
-</div>
-
-Additionally to connecting new sources, data can be cleaned, transformed, and enriched with meta-information.
-Therefore, the event schema can be changed or enriched in step 3 (Define Event Schema).
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/connect/edit/01_edit_timestamp.png" alt="Edit a property to timestamp"/>
- <img src="/img/features_0_62_0/connect/edit/02_change_unit.png" alt="Change Unit of property"/>
- <img src="/img/features_0_62_0/connect/edit/03_change_unit.png" alt="Change Unit of property"/>
-</div>
-
-## Manage Pipelines
-The _Manage Pipelines_ view provides an overview of all existing pipelines.
-Existing pipelines can be managed using this view.
-For instance, users can start and stop pipelines or delete them when they are not longer needed.
-Pipeline actions can be performed by clicking one of the buttons next to each pipeline.
-For each pipeline, the title and description is displayed in the table.
-By clicking the edit symbol an overview of the created pipline is shown. In this window you are able to analyze statistics, identify errors or edit the pipeline.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/manage_pipelines/1_pipeline_overview.png" alt="Pipeline Overview"/>
- <img src="/img/features_0_62_0/manage_pipelines/2_pipeline_information.png" alt="Pipeline infomation"/>
- <img src="/img/features_0_62_0/manage_pipelines/3_delete_pipeline.png" alt="Delete Pipelines"/>
- <img src="/img/features_0_62_0/manage_pipelines/4_pipeline_deleted.png" alt="Delete Pipelines"/>
-</div>
-
-In a setting with many defined pipelines, it can get really hard to keep track of all pipelines.
-This is why we introduce categories.
-A category is a set of pipelines that can be defined by users in order to better organize pipelines.
-By clicking on the "Manage Categories" button on the top left, a new category can be added to StreamPipes.
-In this example, we create a new category named "New Demo Category".
-After saving a category, pipelines can be added to the newly created category.
-The new category is then presented as a tab in the _Pipeline Management_ view.
-This tab contains all previously defined pipelines.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/manage_pipelines/5_pipeline_category.png" alt="Pipeline Category"/>
- <img src="/img/features_0_62_0/manage_pipelines/6_add_category.png" alt="Add Pipeline Category"/>
- <img src="/img/features_0_62_0/manage_pipelines/7_new_category.png" alt="New Category"/>
- <img src="/img/features_0_62_0/manage_pipelines/8_show_new_category.png" alt="Show new Category"/>
-</div>
-
-## Live Dashboard
-The live dashboard can be used for multiple use cases.
-It is a good way to live monitor a running system in a dashboard, but it can also be used during the pipeline development to get a fast feedback from newly created pipelines.
-Below is a screenshot of an example dashboard showing the current value of pressure, which further shows a line chart and a trafficlight for a water level pipeline.
-All pipelines that contain the "Dashboard Sink" can be visualized in this view.
-To add a new visualisation, click on the "Add visualisation" button on the top left corner.
-Afterwards, a three-step configuration menu is shown.
-The first step is to select the pipeline that should be visualized.
-In the second step, the type of visualization can be defined.
-Currently 10 different types are available, including line charts, various map visualizations and data tables.
-After selecting the type (in our example "Gauge"), you can select the specific measurement values of the data stream that should be displayed.
-In the example below, the water level value should be monitored and the gauge value should range from 0 to 100.
-Once all steps are completed, the new visualization is placed on the dashboard and live data is presented as soon as it becomes available.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/dashboard/01_dashboard.png" alt="Screenshot of live dashboard"/>
- <img src="/img/features_0_62_0/dashboard/02_new_visualisation.png" alt="Select Pipeline to visualize"/>
- <img src="/img/features_0_62_0/dashboard/03_select_gauge.png" alt="Select Visualization Type"/>
- <img src="/img/features_0_62_0/dashboard/04_configure_gauge.png" alt="Configure Visualzation"/>
- <img src="/img/features_0_62_0/dashboard/05_new_gauge_done.png" alt="Show new Visualzation"/>
-</div>
-
-## File Download
-With the file download, it is possible to download stored files directly from Elasticsearch.
-This can be very useful for example when a data dumb is needed for a specific time range.
-All data that is written into Elasticsearch using the _Elasticsearch Sink_ can be accessed by the file downloader.
-A common use case is to download data for offline analysis and to train a machine learning algorithm.
-First, an index must be defined, afterwards, the time range must be set.
-A date picker helps users to enter the time range.
-When a user clicks the "Create File" button the file is created.
-All files stored on the server can be downloaded via the download button.
-If the files are not longer needed, they can be deleted by clicking the delete button.
-This will remove the file from the server.
-Since data is stored in Elasticsearch anyways. it is recommended not to store the files for a longer period of time on the server.
-When a file is needed again at a later point in time it is easy to create it again.
-This way a lot of disk space on the server can be saved, especially when the files are rather large.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/file_download/01_file_download.png" alt="File Download"/>
- <img src="/img/features_0_62_0/file_download/02_file_download.png" alt="File Download with selected time range"/>
- <img src="/img/features_0_62_0/file_download/03_file_download.png" alt="File Download with new File"/>
-</div>
-
-## Notifications
-Notifications are a good solution to notify someone when a urgent situation occurs.
-A notification can be created by using the notification sink in the pipeline editor.
-When using such a sink a configuration dialogue is presented to the user.
-In this dialogue the user must provide enough information to resolve the solution when it occurs.
-The message can be nicely configured in the message editor.
-It is also possible to embed values of the event that triggered the notification.
-This can be done with the #property# notation.
-All available properties are presented in the notification configurator.
-When the notification is triggered the #property# template is replaced with the actual value of the property.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/notification/01_select_notification_sink.png" alt="Select Notification"/>
- <img src="/img/features_0_62_0/notification/02_configure_notification.png" alt="Configure Notification"/>
-</div>
-
-A pop up icon on the notification tab in the menu shows the user how many unread notifications currently are in the system.
-This icon also alerts users when new notifications occur.
-In the notification overview all notifications are listed.
-On the top are the new notifications that are not read yet.
-A user can mark them as read by clicking on the little envelope icon.
-Those notifications are then no longer in the unread section, but they remain in the "All Messages" view.
-This way it is possible to keep track of all notifications and have a look at them at a later point in time.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/notification/03_new_notification.png" alt="New Notification"/>
-</div>
-
-
-## Install Pipeline Elements
-StreamPipes is highly configurable and extensible.
-Pipeline elements can be added and removed during runtime.
-This can be done in the "Install Pipeline Elements" view.
-All available pipeline elements are shown here and can be selected to install or uninstall.
-It is also possible to select multiple or all of them and then install them all together.
-When a new element is installed by the user it is automatically available in the "Pipeline Editor" and can be used for pipelines.
-Elements that are uninstalled are removed from the system.
-They can not longer be used within pipelines.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/install_elements/01_install_elements.png" alt="Install Elements View"/>
- <img src="/img/features_0_62_0/install_elements/02_install_countAggregation.png" alt="Insall new Element"/>
- <img src="/img/features_0_62_0/install_elements/03_installed_countAggregation.png" alt="Installation Successful"/>
- <img src="/img/features_0_62_0/install_elements/04_countAggregation_in_editor.png" alt="Show new installed element"/>
-</div>
-
-
-## My Elements
-The "My Elements" view gives a quick overview over all installed pipeline elements.
-Here they can be inspected and the description can be re-imported.
-In this view it is also possible to have a look at the JSON-LD representation of each element.
-This is not important for a user, but it is worth noting that the system uses this machine understandable format to support the user.
-For example all the information of the sources, like data schema or unit information is in the JSON-LD meta data.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/my_elements/01_my_elements.png" alt="My Elements Overview"/>
- <img src="/img/features_0_62_0/my_elements/02_my_elements_jsonid.png" alt="View JSON-LD"/>
-</div>
-
-## Configuration
-The last feature is the _configuration view_.
-Here, it is possible to change the configuration parameters of installed components.
-All components containing processing elements automatically register in StreamPipes when they are started in the same network as the backend component.
-Once a container is registered it is represented in the configuration view.
-The green dot on the top left indicates that tha container is running properly.
-When there is a problem with a container the green dot changes to red and the user knows there is a problem.
-To configure the parameters the top right arrow of a configuration box must be clicked.
-Then the configuration menu pops up.
-Within there it is possible to change the parameters of a service.
-To make the changes persistent the "Update" button must be clicked.
-A user should keep in mind that sometimes it is necessary to restart a container when the parameters are changed.
-Sometimes it is also necessary to re-import the pipeline element description, either by uninstalling and re-installing them after the container restart or be reloading the description in the "My elements" view.
-
-<div class="my-carousel">
- <img src="/img/features_0_62_0/configuration/01_configuration_overview.png" alt="Configuration Overview"/>
- <img src="/img/features_0_62_0/configuration/02_change_config.png" alt="Change Configuration"/>
-</div>
-
-
-Congratulations! You've just finished your first tour of StreamPipes.
-Although there's still more to learn, we introduced most of the currently available features.
-On the next page, the different processing elements that come with the installation are explained.
diff --git a/website-v2/blog/2020-01-23-streampipes_on_rpi.md b/website-v2/blog/2020-01-23-streampipes_on_rpi.md
index 3b1815c59..7e56e9e39 100644
--- a/website-v2/blog/2020-01-23-streampipes_on_rpi.md
+++ b/website-v2/blog/2020-01-23-streampipes_on_rpi.md
@@ -12,7 +12,7 @@ authorImageURL: "/img/wiener.png"
This is the start of a two part series on how we want to bring StreamPipes closer to the edge. The [first part](/docs/blog/2020/01/23/streampipes_on_rpi) describes how we managed to build and deploy StreamPipes on one Raspberry Pi (Model 4), while the [second part](/docs/blog/2020/05/27/streampipes_on_k3s) further covers how to deploy StreamPipes over a Kubernetes cluster of two Raspberry Pi's via K3s using our StreamPipes helm chart.
<!--truncate-->
-<TL;DR>
+**TL;DR**
_With new advancements that came in the last StreamPipes release, we managed to reduce the required resources (mainly memory) drastically. To this extent, we cross-compiled StreamPipes Docker images for ARM support and deployed our lite version on a Raspberry Pi (Model 4). We showcase, that it is feasible to run analytical pipelines with ease and operate StreamPipes at moderate load._
diff --git a/website-v2/blog/2020-05-27-streampipes_on_k3s.md b/website-v2/blog/2020-05-27-streampipes_on_k3s.md
index c4370bf13..0fc440494 100644
--- a/website-v2/blog/2020-05-27-streampipes_on_k3s.md
+++ b/website-v2/blog/2020-05-27-streampipes_on_k3s.md
@@ -12,7 +12,7 @@ authorImageURL: "/img/wiener.png"
This blog post is the second part of a series on how we want to bring StreamPipes closer to the edge. The [first part](/blog/2020/01/23/streampipes_on_rpi) describes how we managed to build and deploy StreamPipes on one Raspberry Pi (Model 4), while the [second part](/blog/2020/05/27/streampipes_on_k3s) further covers how to deploy StreamPipes over a Kubernetes cluster of two Raspberry Pi's via k3s using our StreamPipes helm chart.
<!--truncate-->
-**<TL;DR>**
+**TL;DR**
**With new advancements that came in the last StreamPipes release, we managed to reduce the required resources (mainly memory) drastically. To this extent, we cross-compiled StreamPipes Docker images for ARM support and deployed our lite version on a Raspberry Pi (Model 4). We showcase, that it is feasible to run analytical pipelines with ease and operate StreamPipes at moderate load. Additionally, we demonstrate how to deploy StreamPipes over a two-node k3s cluster using our StreamPipes [...]
@@ -33,7 +33,7 @@ Fortunately, there exists a few solutions in the container ecosystem with the op
On the other hand, there exists [K3s](https://k3s.io/), a lightweight Kubernetes distro by Rancher that was introduced early 2019 and has since then gained huge popularity. As it is stated on their website:
* **Perfect for Edge**: _K3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances_
-* **Simplified & Secure**: _K3s is packaged as a single <40MB binary that reduces the dependencies and steps needed to install, run and auto-update a production Kubernetes cluster._
+* **Simplified & Secure**: _K3s is packaged as a single less-than-40MB binary that reduces the dependencies and steps needed to install, run and auto-update a production Kubernetes cluster._
* **Optimized for ARM**: _Both ARM64 and ARMv7 are supported with binaries and multiarch images available for both. K3s works great from something as small as a Raspberry Pi to an AWS a1.4xlarge 32GiB server._
Thus, this lead us to the point to say, hey why not use K3s to manage StreamPipes in all its glory. The containerized microservice design in addition to the newly available multiarch images are a great fit.
diff --git a/website-v2/docusaurus.config.js b/website-v2/docusaurus.config.js
index f58389d71..0ad744fec 100644
--- a/website-v2/docusaurus.config.js
+++ b/website-v2/docusaurus.config.js
@@ -105,7 +105,7 @@ module.exports = {
"image": "img/favicon.png",
"footer": {
"links": [],
- "copyright": "Copyright © 2019 - 2025 The Apache Software Foundation",
+ "copyright": "Copyright © 2019 - 2026 The Apache Software Foundation",
"logo": {
"src": "img/sp-logo-color.png"
}
diff --git a/website-v2/package-lock.json b/website-v2/package-lock.json
index 1d64696cb..cef01c751 100644
--- a/website-v2/package-lock.json
+++ b/website-v2/package-lock.json
@@ -5,297 +5,297 @@
"packages": {
"": {
"dependencies": {
- "@docusaurus/core": "2.4.1",
- "@docusaurus/plugin-client-redirects": "2.4.1",
- "@docusaurus/preset-classic": "2.4.1",
+ "@docusaurus/core": "3.10.1",
+ "@docusaurus/plugin-client-redirects": "3.10.1",
+ "@docusaurus/preset-classic": "3.10.1",
"@iconify/icons-akar-icons": "^1.2.8",
"@iconify/react": "^3.2.2",
"clsx": "^1.1.1",
"docusaurus-plugin-sass": "^0.2.4",
- "react": "^17.0.2",
- "react-dom": "^17.0.2",
+ "react": "^19.2.5",
+ "react-dom": "^19.2.5",
"react-lazy-load-image-component": "^1.5.4",
"sass": "^1.63.6",
"swiper": "^10.0.0"
}
},
- "node_modules/@algolia/autocomplete-core": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz",
- "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==",
+ "node_modules/@algolia/abtesting": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.18.0.tgz",
+ "integrity": "sha512-8siuLG+FIns1AjZ/g2SDVwHz9S+ObacDQISEJvS8XsNei1zl3FXqfqQrBpmrG7ACWCyesXHbicMJtvRbg00FEw==",
+ "license": "MIT",
"dependencies": {
- "@algolia/autocomplete-plugin-algolia-insights": "1.9.3",
- "@algolia/autocomplete-shared": "1.9.3"
+ "@algolia/client-common": "5.52.0",
+ "@algolia/requester-browser-xhr": "5.52.0",
+ "@algolia/requester-fetch": "5.52.0",
+ "@algolia/requester-node-http": "5.52.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
}
},
- "node_modules/@algolia/autocomplete-plugin-algolia-insights": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz",
- "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==",
+ "node_modules/@algolia/autocomplete-core": {
+ "version": "1.19.8",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.8.tgz",
+ "integrity": "sha512-3YEorYg44niXcm7gkft3nXYItHd44e8tmh4D33CTszPgP0QWkaLEaFywiNyJBo7UL/mqObA/G9RYuU7R8tN1IA==",
+ "license": "MIT",
"dependencies": {
- "@algolia/autocomplete-shared": "1.9.3"
- },
- "peerDependencies": {
- "search-insights": ">= 1 < 3"
+ "@algolia/autocomplete-plugin-algolia-insights": "1.19.8",
+ "@algolia/autocomplete-shared": "1.19.8"
}
},
- "node_modules/@algolia/autocomplete-preset-algolia": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz",
- "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==",
+ "node_modules/@algolia/autocomplete-plugin-algolia-insights": {
+ "version": "1.19.8",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.8.tgz",
+ "integrity": "sha512-ZvJWO8ZZJDpc1LNM2TTBdmQsZBLMR4rU5iNR2OYvEeFBiaf/0ESnRSSLQbryarJY4SVxtoz6A2ZtDMNM+iQEAA==",
+ "license": "MIT",
"dependencies": {
- "@algolia/autocomplete-shared": "1.9.3"
+ "@algolia/autocomplete-shared": "1.19.8"
},
"peerDependencies": {
- "@algolia/client-search": ">= 4.9.1 < 6",
- "algoliasearch": ">= 4.9.1 < 6"
+ "search-insights": ">= 1 < 3"
}
},
"node_modules/@algolia/autocomplete-shared": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz",
- "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==",
+ "version": "1.19.8",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.8.tgz",
+ "integrity": "sha512-h5hf2t8ejF6vlOgvLaZzQbWs5SyH2z4PAWygNAvvD/2RI29hdQ54ldUGwqVuj9Srs+n8XUKTPUqb7fvhBhQrnQ==",
+ "license": "MIT",
"peerDependencies": {
"@algolia/client-search": ">= 4.9.1 < 6",
"algoliasearch": ">= 4.9.1 < 6"
}
},
- "node_modules/@algolia/cache-browser-local-storage": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.18.0.tgz",
- "integrity": "sha512-rUAs49NLlO8LVLgGzM4cLkw8NJLKguQLgvFmBEe3DyzlinoqxzQMHfKZs6TSq4LZfw/z8qHvRo8NcTAAUJQLcw==",
+ "node_modules/@algolia/client-abtesting": {
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.52.0.tgz",
+ "integrity": "sha512-wtwPgyPmO7b7sQPVgoK29c1VpfS08DnnJCmxX/oU1pV2DlMRJCzQcLN7JSloYpodyKHwM8+9wOzlAM0co3TDmA==",
+ "license": "MIT",
"dependencies": {
- "@algolia/cache-common": "4.18.0"
+ "@algolia/client-common": "5.52.0",
+ "@algolia/requester-browser-xhr": "5.52.0",
+ "@algolia/requester-fetch": "5.52.0",
+ "@algolia/requester-node-http": "5.52.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
}
},
- "node_modules/@algolia/cache-common": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.18.0.tgz",
- "integrity": "sha512-BmxsicMR4doGbeEXQu8yqiGmiyvpNvejYJtQ7rvzttEAMxOPoWEHrWyzBQw4x7LrBY9pMrgv4ZlUaF8PGzewHg=="
- },
- "node_modules/@algolia/cache-in-memory": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.18.0.tgz",
- "integrity": "sha512-evD4dA1nd5HbFdufBxLqlJoob7E2ozlqJZuV3YlirNx5Na4q1LckIuzjNYZs2ddLzuTc/Xd5O3Ibf7OwPskHxw==",
+ "node_modules/@algolia/client-analytics": {
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.52.0.tgz",
+ "integrity": "sha512-9KY36bRl4AH7RjqSeDDOKnjsz4IxQFBEOB8/fWmEbdQe+Isbs5jGzVJu9NEPQ1Tgwxlf8Uf07Swj3jZyMNUZ2g==",
+ "license": "MIT",
"dependencies": {
- "@algolia/cache-common": "4.18.0"
+ "@algolia/client-common": "5.52.0",
+ "@algolia/requester-browser-xhr": "5.52.0",
+ "@algolia/requester-fetch": "5.52.0",
+ "@algolia/requester-node-http": "5.52.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
}
},
- "node_modules/@algolia/client-account": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.18.0.tgz",
- "integrity": "sha512-XsDnlROr3+Z1yjxBJjUMfMazi1V155kVdte6496atvBgOEtwCzTs3A+qdhfsAnGUvaYfBrBkL0ThnhMIBCGcew==",
- "dependencies": {
- "@algolia/client-common": "4.18.0",
- "@algolia/client-search": "4.18.0",
- "@algolia/transporter": "4.18.0"
+ "node_modules/@algolia/client-common": {
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.52.0.tgz",
+ "integrity": "sha512-3a/qM3dzJqqfTx7Yrw7uGQ98I3Q0rDfb4Vkv0wEzko96l7YQMxfBVz/VbLq2N+c59GweYv6Vhp8mPeqnWJSITw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.0.0"
}
},
- "node_modules/@algolia/client-analytics": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.18.0.tgz",
- "integrity": "sha512-chEUSN4ReqU7uRQ1C8kDm0EiPE+eJeAXiWcBwLhEynfNuTfawN9P93rSZktj7gmExz0C8XmkbBU19IQ05wCNrQ==",
+ "node_modules/@algolia/client-insights": {
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.52.0.tgz",
+ "integrity": "sha512-Rki7ACbMcvbQW0BuM84x9dkGHY47ABmv4jU6tYssat2k02p3mIUms2YOLUAMeknhmnFsj6lb6ZzOXdMWMyc1sA==",
+ "license": "MIT",
"dependencies": {
- "@algolia/client-common": "4.18.0",
- "@algolia/client-search": "4.18.0",
- "@algolia/requester-common": "4.18.0",
- "@algolia/transporter": "4.18.0"
+ "@algolia/client-common": "5.52.0",
+ "@algolia/requester-browser-xhr": "5.52.0",
+ "@algolia/requester-fetch": "5.52.0",
+ "@algolia/requester-node-http": "5.52.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
}
},
- "node_modules/@algolia/client-common": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.18.0.tgz",
- "integrity": "sha512-7N+soJFP4wn8tjTr3MSUT/U+4xVXbz4jmeRfWfVAzdAbxLAQbHa0o/POSdTvQ8/02DjCLelloZ1bb4ZFVKg7Wg==",
+ "node_modules/@algolia/client-personalization": {
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.52.0.tgz",
+ "integrity": "sha512-96s4Uzc3kk+/f4jJXIVVGWP5XlngOGNQ1x6hW9AT59pOixHlOs5tqJg+ZUS/GQ6h/iYP0ceQcmxDQeLyCLTaDQ==",
+ "license": "MIT",
"dependencies": {
- "@algolia/requester-common": "4.18.0",
- "@algolia/transporter": "4.18.0"
+ "@algolia/client-common": "5.52.0",
+ "@algolia/requester-browser-xhr": "5.52.0",
+ "@algolia/requester-fetch": "5.52.0",
+ "@algolia/requester-node-http": "5.52.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
}
},
- "node_modules/@algolia/client-personalization": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.18.0.tgz",
- "integrity": "sha512-+PeCjODbxtamHcPl+couXMeHEefpUpr7IHftj4Y4Nia1hj8gGq4VlIcqhToAw8YjLeCTfOR7r7xtj3pJcYdP8A==",
+ "node_modules/@algolia/client-query-suggestions": {
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.52.0.tgz",
+ "integrity": "sha512-lqeycNpSPe5Qa0OUWpejVvYQjQWV5nQuLT0a4aq7XzRAvCxprV/6Lf841EygdD2nrFnuS58ok7Au1uOtXzpnkg==",
+ "license": "MIT",
"dependencies": {
- "@algolia/client-common": "4.18.0",
- "@algolia/requester-common": "4.18.0",
- "@algolia/transporter": "4.18.0"
+ "@algolia/client-common": "5.52.0",
+ "@algolia/requester-browser-xhr": "5.52.0",
+ "@algolia/requester-fetch": "5.52.0",
+ "@algolia/requester-node-http": "5.52.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
}
},
"node_modules/@algolia/client-search": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.18.0.tgz",
- "integrity": "sha512-F9xzQXTjm6UuZtnsLIew6KSraXQ0AzS/Ee+OD+mQbtcA/K1sg89tqb8TkwjtiYZ0oij13u3EapB3gPZwm+1Y6g==",
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.52.0.tgz",
+ "integrity": "sha512-ly1wETVGRo30cx61O7fetESN+ElL9c9K+bD/AVgnT1ar4c6v+/Yqjrhdtu6Fm4D0s4NZP081Isf6tunH1wUXHg==",
+ "license": "MIT",
"dependencies": {
- "@algolia/client-common": "4.18.0",
- "@algolia/requester-common": "4.18.0",
- "@algolia/transporter": "4.18.0"
+ "@algolia/client-common": "5.52.0",
+ "@algolia/requester-browser-xhr": "5.52.0",
+ "@algolia/requester-fetch": "5.52.0",
+ "@algolia/requester-node-http": "5.52.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
}
},
"node_modules/@algolia/events": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz",
- "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ=="
- },
- "node_modules/@algolia/logger-common": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.18.0.tgz",
- "integrity": "sha512-46etYgSlkoKepkMSyaoriSn2JDgcrpc/nkOgou/lm0y17GuMl9oYZxwKKTSviLKI5Irk9nSKGwnBTQYwXOYdRg=="
- },
- "node_modules/@algolia/logger-console": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.18.0.tgz",
- "integrity": "sha512-3P3VUYMl9CyJbi/UU1uUNlf6Z8N2ltW3Oqhq/nR7vH0CjWv32YROq3iGWGxB2xt3aXobdUPXs6P0tHSKRmNA6g==",
- "dependencies": {
- "@algolia/logger-common": "4.18.0"
- }
- },
- "node_modules/@algolia/requester-browser-xhr": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.18.0.tgz",
- "integrity": "sha512-/AcWHOBub2U4TE/bPi4Gz1XfuLK6/7dj4HJG+Z2SfQoS1RjNLshZclU3OoKIkFp8D2NC7+BNsPvr9cPLyW8nyQ==",
- "dependencies": {
- "@algolia/requester-common": "4.18.0"
- }
- },
- "node_modules/@algolia/requester-common": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.18.0.tgz",
- "integrity": "sha512-xlT8R1qYNRBCi1IYLsx7uhftzdfsLPDGudeQs+xvYB4sQ3ya7+ppolB/8m/a4F2gCkEO6oxpp5AGemM7kD27jA=="
- },
- "node_modules/@algolia/requester-node-http": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.18.0.tgz",
- "integrity": "sha512-TGfwj9aeTVgOUhn5XrqBhwUhUUDnGIKlI0kCBMdR58XfXcfdwomka+CPIgThRbfYw04oQr31A6/95ZH2QVJ9UQ==",
- "dependencies": {
- "@algolia/requester-common": "4.18.0"
- }
- },
- "node_modules/@algolia/transporter": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.18.0.tgz",
- "integrity": "sha512-xbw3YRUGtXQNG1geYFEDDuFLZt4Z8YNKbamHPkzr3rWc6qp4/BqEeXcI2u/P/oMq2yxtXgMxrCxOPA8lyIe5jw==",
- "dependencies": {
- "@algolia/cache-common": "4.18.0",
- "@algolia/logger-common": "4.18.0",
- "@algolia/requester-common": "4.18.0"
- }
+ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==",
+ "license": "MIT"
},
- "node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "node_modules/@algolia/ingestion": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.52.0.tgz",
+ "integrity": "sha512-U4EeTvgmluRjj39ykZSAd5X+a6LD5m7/mcOWDmB7hqm1R6QY0yT8jLxpNVEjYhzgEN5hcDGW6X67EWQY8KiYGQ==",
+ "license": "MIT",
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@algolia/client-common": "5.52.0",
+ "@algolia/requester-browser-xhr": "5.52.0",
+ "@algolia/requester-fetch": "5.52.0",
+ "@algolia/requester-node-http": "5.52.0"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">= 14.0.0"
}
},
- "node_modules/@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+ "node_modules/@algolia/monitoring": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.52.0.tgz",
+ "integrity": "sha512-FCPnDcILfpTE94u7BVlV4DmnSV5wE3+j25EEF+3dYPrVzkVCSoAHs318oWDGxnxsAgiL4HpL12Jc4XHmw9shpA==",
+ "license": "MIT",
"dependencies": {
- "@babel/highlight": "^7.22.13",
- "chalk": "^2.4.2"
+ "@algolia/client-common": "5.52.0",
+ "@algolia/requester-browser-xhr": "5.52.0",
+ "@algolia/requester-fetch": "5.52.0",
+ "@algolia/requester-node-http": "5.52.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 14.0.0"
}
},
- "node_modules/@babel/code-frame/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "node_modules/@algolia/recommend": {
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.52.0.tgz",
+ "integrity": "sha512-br3DO7n4N8CXwTRbZS0MnB4WQ9YHfNjCwkCEzVR/wek/qNTDQKDb0nROmkFaNZ8ucUqUVKZi074dbwMwRDlK8Q==",
+ "license": "MIT",
"dependencies": {
- "color-convert": "^1.9.0"
+ "@algolia/client-common": "5.52.0",
+ "@algolia/requester-browser-xhr": "5.52.0",
+ "@algolia/requester-fetch": "5.52.0",
+ "@algolia/requester-node-http": "5.52.0"
},
"engines": {
- "node": ">=4"
+ "node": ">= 14.0.0"
}
},
- "node_modules/@babel/code-frame/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "node_modules/@algolia/requester-browser-xhr": {
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.52.0.tgz",
+ "integrity": "sha512-b0T/Ca2c9KyEslKsVrGZvbe1UrrKKSdfXhBZ2pbpKahFUzJfziRZ0urbOm7V65O0tO/jwU+Lo/+bIiiyhzGt8w==",
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "@algolia/client-common": "5.52.0"
},
"engines": {
- "node": ">=4"
+ "node": ">= 14.0.0"
}
},
- "node_modules/@babel/code-frame/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "node_modules/@algolia/requester-fetch": {
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.52.0.tgz",
+ "integrity": "sha512-ozBT8J/mtD4H4IAojw8QPirlcL2gHrI1BGuZ4/ZXXO/rTE1yQ4VIPJj4mTTbwo4FbkS1MoJsD/DsrqLzhnc4/g==",
+ "license": "MIT",
"dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
- "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "@algolia/client-common": "5.52.0"
+ },
"engines": {
- "node": ">=0.8.0"
+ "node": ">= 14.0.0"
}
},
- "node_modules/@babel/code-frame/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "node_modules/@algolia/requester-node-http": {
+ "version": "5.52.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.52.0.tgz",
+ "integrity": "sha512-gyyWcLD22tnabmoit4iukCXuoRc5HYJuUjPSEa8a0D/f/NlRafpWi52AlAaa4Uu/rsl7saHsJFTNjTptWbu2+A==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.52.0"
+ },
"engines": {
- "node": ">=4"
+ "node": ">= 14.0.0"
}
},
- "node_modules/@babel/code-frame/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "node_modules/@babel/code-frame": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+ "license": "MIT",
"dependencies": {
- "has-flag": "^3.0.0"
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
},
"engines": {
- "node": ">=4"
+ "node": ">=6.9.0"
}
},
"node_modules/@babel/compat-data": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz",
- "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==",
+ "version": "7.29.3",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.3.tgz",
+ "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz",
- "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==",
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helpers": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5",
- "convert-source-map": "^1.7.0",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.2.2",
- "semver": "^6.3.0"
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@@ -309,86 +309,77 @@
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/generator": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
- "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.23.0",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
- "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz",
- "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==",
+ "version": "7.27.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
+ "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.27.3"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz",
- "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==",
- "dependencies": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "browserslist": "^4.21.3",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
- "semver": "^6.3.0"
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-compilation-targets/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz",
- "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==",
+ "version": "7.29.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.3.tgz",
+ "integrity": "sha512-RpLYy2sb51oNLjuu1iD3bwBqCBWUzjO0ocp+iaCP/lJtb2CPLcnC2Fftw+4sAzaMELGeWTgExSKADbdo0GFVzA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-member-expression-to-functions": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "semver": "^6.3.0"
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "@babel/helper-member-expression-to-functions": "^7.28.5",
+ "@babel/helper-optimise-call-expression": "^7.27.1",
+ "@babel/helper-replace-supers": "^7.28.6",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
+ "@babel/traverse": "^7.29.0",
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@@ -401,18 +392,20 @@
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz",
- "integrity": "sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz",
+ "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "regexpu-core": "^5.3.1",
- "semver": "^6.3.0"
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "regexpu-core": "^6.3.1",
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@@ -425,133 +418,109 @@
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz",
- "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==",
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.17.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "debug": "^4.1.1",
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz",
+ "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "debug": "^4.4.3",
"lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2",
- "semver": "^6.1.2"
+ "resolve": "^1.22.11"
},
"peerDependencies": {
- "@babel/core": "^7.4.0-0"
- }
- },
- "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
- "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
- "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
- "dependencies": {
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.23.0"
- },
- "engines": {
- "node": ">=6.9.0"
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz",
- "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz",
+ "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==",
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/traverse": "^7.28.5",
+ "@babel/types": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
- "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz",
- "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
- "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz",
+ "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==",
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz",
- "integrity": "sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz",
+ "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-wrap-function": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/helper-annotate-as-pure": "^7.27.1",
+ "@babel/helper-wrap-function": "^7.27.1",
+ "@babel/traverse": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -561,199 +530,158 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz",
- "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz",
+ "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-member-expression-to-functions": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/helper-member-expression-to-functions": "^7.28.5",
+ "@babel/helper-optimise-call-expression": "^7.27.1",
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
- "dependencies": {
- "@babel/types": "^7.22.5"
},
- "engines": {
- "node": ">=6.9.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
- "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
- "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz",
+ "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==",
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/traverse": "^7.27.1",
+ "@babel/types": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
- "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz",
- "integrity": "sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz",
+ "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-function-name": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
- "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
+ "license": "MIT",
"dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/highlight": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
- "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+ "node_modules/@babel/parser": {
+ "version": "7.29.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz",
+ "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.22.20",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
+ "@babel/types": "^7.29.0"
},
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dependencies": {
- "color-convert": "^1.9.0"
+ "bin": {
+ "parser": "bin/babel-parser.js"
},
"engines": {
- "node": ">=4"
+ "node": ">=6.0.0"
}
},
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz",
+ "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==",
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/traverse": "^7.28.5"
},
"engines": {
- "node": ">=4"
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz",
+ "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==",
+ "license": "MIT",
"dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
- "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz",
+ "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==",
+ "license": "MIT",
"dependencies": {
- "has-flag": "^3.0.0"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
- "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
- "bin": {
- "parser": "bin/babel-parser.js"
+ "node": ">=6.9.0"
},
- "engines": {
- "node": ">=6.0.0"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz",
- "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==",
+ "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": {
+ "version": "7.29.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.3.tgz",
+ "integrity": "sha512-SRS46DFR4HqzUzCVgi90/xMoL+zeBDBvWdKYXSEzh79kXswNFEglUpMKxR04//dPqwYXWUBJ3mpUd933ru9Kmg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -763,13 +691,14 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz",
- "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz",
+ "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
+ "@babel/plugin-transform-optional-chaining": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -778,23 +707,27 @@
"@babel/core": "^7.13.0"
}
},
- "node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz",
- "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==",
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz",
+ "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
- "@babel/plugin-transform-parameters": "^7.12.1"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.0.0"
}
},
"node_modules/@babel/plugin-proposal-private-property-in-object": {
"version": "7.21.0-placeholder-for-preset-env.2",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
"integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
},
@@ -802,49 +735,55 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
- "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=4"
+ "@babel/helper-plugin-utils": "^7.8.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz",
+ "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz",
+ "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz",
+ "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -853,34 +792,44 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz",
+ "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.3"
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
- "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz",
+ "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -889,12 +838,15 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
- "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz",
+ "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-remap-async-to-generator": "^7.27.1",
+ "@babel/traverse": "^7.29.0"
},
"engines": {
"node": ">=6.9.0"
@@ -903,34 +855,45 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz",
+ "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-remap-async-to-generator": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz",
+ "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz",
- "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==",
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz",
+ "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -939,78 +902,82 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz",
+ "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz",
+ "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.12.0"
}
},
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz",
+ "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-replace-supers": "^7.28.6",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "node_modules/@babel/plugin-transform-computed-properties": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz",
+ "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/template": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz",
+ "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/traverse": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1019,12 +986,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz",
+ "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1033,12 +1002,13 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz",
- "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==",
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz",
+ "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1047,13 +1017,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
- "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz",
+ "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1062,184 +1033,13 @@
"@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
- "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.5.tgz",
- "integrity": "sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==",
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.5",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
- "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
- "dependencies": {
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
- "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz",
- "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
- "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz",
- "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0"
- }
- },
- "node_modules/@babel/plugin-transform-classes": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz",
- "integrity": "sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
- "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/template": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz",
- "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
- "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
- "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz",
+ "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1248,13 +1048,14 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz",
- "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==",
+ "node_modules/@babel/plugin-transform-explicit-resource-management": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz",
+ "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/plugin-transform-destructuring": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1264,12 +1065,12 @@
}
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
- "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz",
+ "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1279,12 +1080,12 @@
}
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz",
- "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz",
+ "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1294,11 +1095,13 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz",
- "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz",
+ "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1308,13 +1111,14 @@
}
},
"node_modules/@babel/plugin-transform-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
- "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz",
+ "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-compilation-targets": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/traverse": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1324,12 +1128,12 @@
}
},
"node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz",
- "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz",
+ "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1339,11 +1143,12 @@
}
},
"node_modules/@babel/plugin-transform-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
- "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz",
+ "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1353,12 +1158,12 @@
}
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz",
- "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz",
+ "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1368,11 +1173,12 @@
}
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
- "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz",
+ "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1382,12 +1188,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz",
- "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz",
+ "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-module-transforms": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1397,13 +1204,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz",
- "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz",
+ "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5"
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1413,14 +1220,15 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz",
- "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz",
+ "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5"
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.29.0"
},
"engines": {
"node": ">=6.9.0"
@@ -1430,12 +1238,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
- "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz",
+ "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-module-transforms": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1445,12 +1254,13 @@
}
},
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
- "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz",
+ "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1460,11 +1270,12 @@
}
},
"node_modules/@babel/plugin-transform-new-target": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
- "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz",
+ "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1474,12 +1285,12 @@
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz",
- "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz",
+ "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1489,12 +1300,12 @@
}
},
"node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz",
- "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz",
+ "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1504,15 +1315,16 @@
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz",
- "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz",
+ "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==",
+ "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.22.5"
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/plugin-transform-destructuring": "^7.28.5",
+ "@babel/plugin-transform-parameters": "^7.27.7",
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1522,12 +1334,13 @@
}
},
"node_modules/@babel/plugin-transform-object-super": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
- "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz",
+ "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-replace-supers": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1537,12 +1350,12 @@
}
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz",
- "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz",
+ "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1552,13 +1365,13 @@
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz",
- "integrity": "sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz",
+ "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1568,11 +1381,12 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz",
- "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==",
+ "version": "7.27.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz",
+ "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1582,12 +1396,13 @@
}
},
"node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
- "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz",
+ "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1597,14 +1412,14 @@
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz",
- "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz",
+ "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1614,11 +1429,12 @@
}
},
"node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
- "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz",
+ "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1628,11 +1444,12 @@
}
},
"node_modules/@babel/plugin-transform-react-constant-elements": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz",
- "integrity": "sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz",
+ "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1642,11 +1459,12 @@
}
},
"node_modules/@babel/plugin-transform-react-display-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz",
- "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==",
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz",
+ "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1656,15 +1474,16 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz",
- "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz",
+ "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-jsx": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/plugin-syntax-jsx": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1674,11 +1493,12 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-development": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz",
- "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz",
+ "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==",
+ "license": "MIT",
"dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.22.5"
+ "@babel/plugin-transform-react-jsx": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1688,12 +1508,13 @@
}
},
"node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz",
- "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz",
+ "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-annotate-as-pure": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1703,12 +1524,12 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz",
- "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz",
+ "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "regenerator-transform": "^0.15.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1717,12 +1538,29 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-transform-regexp-modifiers": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz",
+ "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
- "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz",
+ "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1732,16 +1570,17 @@
}
},
"node_modules/@babel/plugin-transform-runtime": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.5.tgz",
- "integrity": "sha512-bg4Wxd1FWeFx3daHFTWk1pkSWK/AyQuiyAoeZAOkAOUBjnZPH6KT7eMxouV47tQ6hl6ax2zyAWBdWZXbrvXlaw==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz",
+ "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "babel-plugin-polyfill-corejs2": "^0.4.3",
- "babel-plugin-polyfill-corejs3": "^0.8.1",
- "babel-plugin-polyfill-regenerator": "^0.5.0",
- "semver": "^6.3.0"
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "babel-plugin-polyfill-corejs2": "^0.4.14",
+ "babel-plugin-polyfill-corejs3": "^0.13.0",
+ "babel-plugin-polyfill-regenerator": "^0.6.5",
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1754,16 +1593,18 @@
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
- "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz",
+ "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1773,12 +1614,13 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
- "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz",
+ "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1788,11 +1630,12 @@
}
},
"node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
- "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz",
+ "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1802,11 +1645,12 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
- "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz",
+ "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1816,11 +1660,12 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
- "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz",
+ "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1830,14 +1675,16 @@
}
},
"node_modules/@babel/plugin-transform-typescript": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz",
- "integrity": "sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz",
+ "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-typescript": "^7.22.5"
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
+ "@babel/plugin-syntax-typescript": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1847,11 +1694,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz",
- "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz",
+ "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1861,12 +1709,13 @@
}
},
"node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
- "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz",
+ "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1876,12 +1725,13 @@
}
},
"node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
- "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz",
+ "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1891,12 +1741,13 @@
}
},
"node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
- "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz",
+ "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1906,90 +1757,82 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.5.tgz",
- "integrity": "sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==",
- "dependencies": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5",
+ "version": "7.29.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.3.tgz",
+ "integrity": "sha512-ySZypNLAIH1ClygLDQzVMoGQRViATnkHkYYV6TcNDz+8+jwZCdsguGvsb3EY5d9wyWyhmF1iSuFM0Yh5XPnqSA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.29.3",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1",
+ "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.3",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6",
"@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.22.5",
- "@babel/plugin-syntax-import-attributes": "^7.22.5",
- "@babel/plugin-syntax-import-meta": "^7.10.4",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-syntax-import-assertions": "^7.28.6",
+ "@babel/plugin-syntax-import-attributes": "^7.28.6",
"@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.22.5",
- "@babel/plugin-transform-async-generator-functions": "^7.22.5",
- "@babel/plugin-transform-async-to-generator": "^7.22.5",
- "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
- "@babel/plugin-transform-block-scoping": "^7.22.5",
- "@babel/plugin-transform-class-properties": "^7.22.5",
- "@babel/plugin-transform-class-static-block": "^7.22.5",
- "@babel/plugin-transform-classes": "^7.22.5",
- "@babel/plugin-transform-computed-properties": "^7.22.5",
- "@babel/plugin-transform-destructuring": "^7.22.5",
- "@babel/plugin-transform-dotall-regex": "^7.22.5",
- "@babel/plugin-transform-duplicate-keys": "^7.22.5",
- "@babel/plugin-transform-dynamic-import": "^7.22.5",
- "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
- "@babel/plugin-transform-export-namespace-from": "^7.22.5",
- "@babel/plugin-transform-for-of": "^7.22.5",
- "@babel/plugin-transform-function-name": "^7.22.5",
- "@babel/plugin-transform-json-strings": "^7.22.5",
- "@babel/plugin-transform-literals": "^7.22.5",
- "@babel/plugin-transform-logical-assignment-operators": "^7.22.5",
- "@babel/plugin-transform-member-expression-literals": "^7.22.5",
- "@babel/plugin-transform-modules-amd": "^7.22.5",
- "@babel/plugin-transform-modules-commonjs": "^7.22.5",
- "@babel/plugin-transform-modules-systemjs": "^7.22.5",
- "@babel/plugin-transform-modules-umd": "^7.22.5",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
- "@babel/plugin-transform-new-target": "^7.22.5",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5",
- "@babel/plugin-transform-numeric-separator": "^7.22.5",
- "@babel/plugin-transform-object-rest-spread": "^7.22.5",
- "@babel/plugin-transform-object-super": "^7.22.5",
- "@babel/plugin-transform-optional-catch-binding": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.5",
- "@babel/plugin-transform-parameters": "^7.22.5",
- "@babel/plugin-transform-private-methods": "^7.22.5",
- "@babel/plugin-transform-private-property-in-object": "^7.22.5",
- "@babel/plugin-transform-property-literals": "^7.22.5",
- "@babel/plugin-transform-regenerator": "^7.22.5",
- "@babel/plugin-transform-reserved-words": "^7.22.5",
- "@babel/plugin-transform-shorthand-properties": "^7.22.5",
- "@babel/plugin-transform-spread": "^7.22.5",
- "@babel/plugin-transform-sticky-regex": "^7.22.5",
- "@babel/plugin-transform-template-literals": "^7.22.5",
- "@babel/plugin-transform-typeof-symbol": "^7.22.5",
- "@babel/plugin-transform-unicode-escapes": "^7.22.5",
- "@babel/plugin-transform-unicode-property-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
- "@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.22.5",
- "babel-plugin-polyfill-corejs2": "^0.4.3",
- "babel-plugin-polyfill-corejs3": "^0.8.1",
- "babel-plugin-polyfill-regenerator": "^0.5.0",
- "core-js-compat": "^3.30.2",
- "semver": "^6.3.0"
+ "@babel/plugin-transform-arrow-functions": "^7.27.1",
+ "@babel/plugin-transform-async-generator-functions": "^7.29.0",
+ "@babel/plugin-transform-async-to-generator": "^7.28.6",
+ "@babel/plugin-transform-block-scoped-functions": "^7.27.1",
+ "@babel/plugin-transform-block-scoping": "^7.28.6",
+ "@babel/plugin-transform-class-properties": "^7.28.6",
+ "@babel/plugin-transform-class-static-block": "^7.28.6",
+ "@babel/plugin-transform-classes": "^7.28.6",
+ "@babel/plugin-transform-computed-properties": "^7.28.6",
+ "@babel/plugin-transform-destructuring": "^7.28.5",
+ "@babel/plugin-transform-dotall-regex": "^7.28.6",
+ "@babel/plugin-transform-duplicate-keys": "^7.27.1",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0",
+ "@babel/plugin-transform-dynamic-import": "^7.27.1",
+ "@babel/plugin-transform-explicit-resource-management": "^7.28.6",
+ "@babel/plugin-transform-exponentiation-operator": "^7.28.6",
+ "@babel/plugin-transform-export-namespace-from": "^7.27.1",
+ "@babel/plugin-transform-for-of": "^7.27.1",
+ "@babel/plugin-transform-function-name": "^7.27.1",
+ "@babel/plugin-transform-json-strings": "^7.28.6",
+ "@babel/plugin-transform-literals": "^7.27.1",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.28.6",
+ "@babel/plugin-transform-member-expression-literals": "^7.27.1",
+ "@babel/plugin-transform-modules-amd": "^7.27.1",
+ "@babel/plugin-transform-modules-commonjs": "^7.28.6",
+ "@babel/plugin-transform-modules-systemjs": "^7.29.0",
+ "@babel/plugin-transform-modules-umd": "^7.27.1",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0",
+ "@babel/plugin-transform-new-target": "^7.27.1",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6",
+ "@babel/plugin-transform-numeric-separator": "^7.28.6",
+ "@babel/plugin-transform-object-rest-spread": "^7.28.6",
+ "@babel/plugin-transform-object-super": "^7.27.1",
+ "@babel/plugin-transform-optional-catch-binding": "^7.28.6",
+ "@babel/plugin-transform-optional-chaining": "^7.28.6",
+ "@babel/plugin-transform-parameters": "^7.27.7",
+ "@babel/plugin-transform-private-methods": "^7.28.6",
+ "@babel/plugin-transform-private-property-in-object": "^7.28.6",
+ "@babel/plugin-transform-property-literals": "^7.27.1",
+ "@babel/plugin-transform-regenerator": "^7.29.0",
+ "@babel/plugin-transform-regexp-modifiers": "^7.28.6",
+ "@babel/plugin-transform-reserved-words": "^7.27.1",
+ "@babel/plugin-transform-shorthand-properties": "^7.27.1",
+ "@babel/plugin-transform-spread": "^7.28.6",
+ "@babel/plugin-transform-sticky-regex": "^7.27.1",
+ "@babel/plugin-transform-template-literals": "^7.27.1",
+ "@babel/plugin-transform-typeof-symbol": "^7.27.1",
+ "@babel/plugin-transform-unicode-escapes": "^7.27.1",
+ "@babel/plugin-transform-unicode-property-regex": "^7.28.6",
+ "@babel/plugin-transform-unicode-regex": "^7.27.1",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.28.6",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.15",
+ "babel-plugin-polyfill-corejs3": "^0.14.0",
+ "babel-plugin-polyfill-regenerator": "^0.6.6",
+ "core-js-compat": "^3.48.0",
+ "semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1998,40 +1841,54 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz",
+ "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.8",
+ "core-js-compat": "^3.48.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
"node_modules/@babel/preset-env/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/preset-modules": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
- "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
- "@babel/plugin-transform-dotall-regex": "^7.4.4",
"@babel/types": "^7.4.4",
"esutils": "^2.0.2"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/@babel/preset-react": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz",
- "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz",
+ "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "@babel/plugin-transform-react-display-name": "^7.22.5",
- "@babel/plugin-transform-react-jsx": "^7.22.5",
- "@babel/plugin-transform-react-jsx-development": "^7.22.5",
- "@babel/plugin-transform-react-pure-annotations": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-validator-option": "^7.27.1",
+ "@babel/plugin-transform-react-display-name": "^7.28.0",
+ "@babel/plugin-transform-react-jsx": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-development": "^7.27.1",
+ "@babel/plugin-transform-react-pure-annotations": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -2041,15 +1898,16 @@
}
},
"node_modules/@babel/preset-typescript": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz",
- "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz",
+ "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "@babel/plugin-syntax-jsx": "^7.22.5",
- "@babel/plugin-transform-modules-commonjs": "^7.22.5",
- "@babel/plugin-transform-typescript": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-validator-option": "^7.27.1",
+ "@babel/plugin-syntax-jsx": "^7.27.1",
+ "@babel/plugin-transform-modules-commonjs": "^7.27.1",
+ "@babel/plugin-transform-typescript": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2058,75 +1916,55 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/regjsgen": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
- "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
- },
"node_modules/@babel/runtime": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz",
- "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==",
- "dependencies": {
- "regenerator-runtime": "^0.13.11"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/runtime-corejs3": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.5.tgz",
- "integrity": "sha512-TNPDN6aBFaUox2Lu+H/Y1dKKQgr4ucz/FGyCz67RVYLsBpVpUFf1dDngzg+Od8aqbrqwyztkaZjtWCZEUOT8zA==",
- "dependencies": {
- "core-js-pure": "^3.30.2",
- "regenerator-runtime": "^0.13.11"
- },
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz",
+ "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/template": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
- "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/parser": "^7.22.15",
- "@babel/types": "^7.22.15"
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
- "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
- "dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.23.0",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-function-name": "^7.23.0",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.23.0",
- "@babel/types": "^7.23.0",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0",
+ "debug": "^4.3.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/types": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
- "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.20",
- "to-fast-properties": "^2.0.0"
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2136,5446 +1974,6685 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
"integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "license": "MIT",
"optional": true,
"engines": {
"node": ">=0.1.90"
}
},
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
+ "node_modules/@csstools/cascade-layer-name-parser": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz",
+ "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@docsearch/css": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.1.tgz",
- "integrity": "sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA=="
- },
- "node_modules/@docsearch/react": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.1.tgz",
- "integrity": "sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==",
- "dependencies": {
- "@algolia/autocomplete-core": "1.9.3",
- "@algolia/autocomplete-preset-algolia": "1.9.3",
- "@docsearch/css": "3.5.1",
- "algoliasearch": "^4.0.0"
+ "node": ">=18"
},
"peerDependencies": {
- "@types/react": ">= 16.8.0 < 19.0.0",
- "react": ">= 16.8.0 < 19.0.0",
- "react-dom": ">= 16.8.0 < 19.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "react": {
- "optional": true
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/color-helpers": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
+ "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
},
- "react-dom": {
- "optional": true
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
}
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@docusaurus/core": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.1.tgz",
- "integrity": "sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g==",
- "dependencies": {
- "@babel/core": "^7.18.6",
- "@babel/generator": "^7.18.7",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-transform-runtime": "^7.18.6",
- "@babel/preset-env": "^7.18.6",
- "@babel/preset-react": "^7.18.6",
- "@babel/preset-typescript": "^7.18.6",
- "@babel/runtime": "^7.18.6",
- "@babel/runtime-corejs3": "^7.18.6",
- "@babel/traverse": "^7.18.8",
- "@docusaurus/cssnano-preset": "2.4.1",
- "@docusaurus/logger": "2.4.1",
- "@docusaurus/mdx-loader": "2.4.1",
- "@docusaurus/react-loadable": "5.5.2",
- "@docusaurus/utils": "2.4.1",
- "@docusaurus/utils-common": "2.4.1",
- "@docusaurus/utils-validation": "2.4.1",
- "@slorber/static-site-generator-webpack-plugin": "^4.0.7",
- "@svgr/webpack": "^6.2.1",
- "autoprefixer": "^10.4.7",
- "babel-loader": "^8.2.5",
- "babel-plugin-dynamic-import-node": "^2.3.3",
- "boxen": "^6.2.1",
- "chalk": "^4.1.2",
- "chokidar": "^3.5.3",
- "clean-css": "^5.3.0",
- "cli-table3": "^0.6.2",
- "combine-promises": "^1.1.0",
- "commander": "^5.1.0",
- "copy-webpack-plugin": "^11.0.0",
- "core-js": "^3.23.3",
- "css-loader": "^6.7.1",
- "css-minimizer-webpack-plugin": "^4.0.0",
- "cssnano": "^5.1.12",
- "del": "^6.1.1",
- "detect-port": "^1.3.0",
- "escape-html": "^1.0.3",
- "eta": "^2.0.0",
- "file-loader": "^6.2.0",
- "fs-extra": "^10.1.0",
- "html-minifier-terser": "^6.1.0",
- "html-tags": "^3.2.0",
- "html-webpack-plugin": "^5.5.0",
- "import-fresh": "^3.3.0",
- "leven": "^3.1.0",
- "lodash": "^4.17.21",
- "mini-css-extract-plugin": "^2.6.1",
- "postcss": "^8.4.14",
- "postcss-loader": "^7.0.0",
- "prompts": "^2.4.2",
- "react-dev-utils": "^12.0.1",
- "react-helmet-async": "^1.3.0",
- "react-loadable": "npm:@docusaurus/react-loadable@5.5.2",
- "react-loadable-ssr-addon-v5-slorber": "^1.0.1",
- "react-router": "^5.3.3",
- "react-router-config": "^5.1.1",
- "react-router-dom": "^5.3.3",
- "rtl-detect": "^1.0.4",
- "semver": "^7.3.7",
- "serve-handler": "^6.1.3",
- "shelljs": "^0.8.5",
- "terser-webpack-plugin": "^5.3.3",
- "tslib": "^2.4.0",
- "update-notifier": "^5.1.0",
- "url-loader": "^4.1.1",
- "wait-on": "^6.0.1",
- "webpack": "^5.73.0",
- "webpack-bundle-analyzer": "^4.5.0",
- "webpack-dev-server": "^4.9.3",
- "webpack-merge": "^5.8.0",
- "webpackbar": "^5.0.2"
- },
- "bin": {
- "docusaurus": "bin/docusaurus.mjs"
- },
+ "node_modules/@csstools/css-calc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
+ "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=16.14"
+ "node": ">=18"
},
"peerDependencies": {
- "react": "^16.8.4 || ^17.0.0",
- "react-dom": "^16.8.4 || ^17.0.0"
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@docusaurus/cssnano-preset": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.1.tgz",
- "integrity": "sha512-ka+vqXwtcW1NbXxWsh6yA1Ckii1klY9E53cJ4O9J09nkMBgrNX3iEFED1fWdv8wf4mJjvGi5RLZ2p9hJNjsLyQ==",
+ "node_modules/@csstools/css-color-parser": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
+ "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "cssnano-preset-advanced": "^5.3.8",
- "postcss": "^8.4.14",
- "postcss-sort-media-queries": "^4.2.1",
- "tslib": "^2.4.0"
+ "@csstools/color-helpers": "^5.1.0",
+ "@csstools/css-calc": "^2.1.4"
},
"engines": {
- "node": ">=16.14"
- }
- },
- "node_modules/@docusaurus/logger": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.4.1.tgz",
- "integrity": "sha512-5h5ysIIWYIDHyTVd8BjheZmQZmEgWDR54aQ1BX9pjFfpyzFo5puKXKYrYJXbjEHGyVhEzmB9UXwbxGfaZhOjcg==",
- "dependencies": {
- "chalk": "^4.1.2",
- "tslib": "^2.4.0"
+ "node": ">=18"
},
- "engines": {
- "node": ">=16.14"
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@docusaurus/mdx-loader": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.1.tgz",
- "integrity": "sha512-4KhUhEavteIAmbBj7LVFnrVYDiU51H5YWW1zY6SmBSte/YLhDutztLTBE0PQl1Grux1jzUJeaSvAzHpTn6JJDQ==",
- "dependencies": {
- "@babel/parser": "^7.18.8",
- "@babel/traverse": "^7.18.8",
- "@docusaurus/logger": "2.4.1",
- "@docusaurus/utils": "2.4.1",
- "@mdx-js/mdx": "^1.6.22",
- "escape-html": "^1.0.3",
- "file-loader": "^6.2.0",
- "fs-extra": "^10.1.0",
- "image-size": "^1.0.1",
- "mdast-util-to-string": "^2.0.0",
- "remark-emoji": "^2.2.0",
- "stringify-object": "^3.3.0",
- "tslib": "^2.4.0",
- "unified": "^9.2.2",
- "unist-util-visit": "^2.0.3",
- "url-loader": "^4.1.1",
- "webpack": "^5.73.0"
- },
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
+ "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=16.14"
+ "node": ">=18"
},
"peerDependencies": {
- "react": "^16.8.4 || ^17.0.0",
- "react-dom": "^16.8.4 || ^17.0.0"
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@docusaurus/module-type-aliases": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.1.tgz",
- "integrity": "sha512-gLBuIFM8Dp2XOCWffUDSjtxY7jQgKvYujt7Mx5s4FCTfoL5dN1EVbnrn+O2Wvh8b0a77D57qoIDY7ghgmatR1A==",
- "dependencies": {
- "@docusaurus/react-loadable": "5.5.2",
- "@docusaurus/types": "2.4.1",
- "@types/history": "^4.7.11",
- "@types/react": "*",
- "@types/react-router-config": "*",
- "@types/react-router-dom": "*",
- "react-helmet-async": "*",
- "react-loadable": "npm:@docusaurus/react-loadable@5.5.2"
- },
- "peerDependencies": {
- "react": "*",
- "react-dom": "*"
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
+ "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@docusaurus/plugin-client-redirects": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-2.4.1.tgz",
- "integrity": "sha512-tp0j16gaLIJ4p+IR0P6KDOFsTOGGMY54MNPnmM61Vaqqt5omLqsuKUO8UlCGU1oW/4EIQOhXYy99XYY5MjE+7A==",
- "dependencies": {
- "@docusaurus/core": "2.4.1",
- "@docusaurus/logger": "2.4.1",
- "@docusaurus/utils": "2.4.1",
- "@docusaurus/utils-common": "2.4.1",
- "@docusaurus/utils-validation": "2.4.1",
- "eta": "^2.0.0",
- "fs-extra": "^10.1.0",
- "lodash": "^4.17.21",
- "tslib": "^2.4.0"
- },
+ "node_modules/@csstools/media-query-list-parser": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz",
+ "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=16.14"
+ "node": ">=18"
},
"peerDependencies": {
- "react": "^16.8.4 || ^17.0.0",
- "react-dom": "^16.8.4 || ^17.0.0"
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@docusaurus/plugin-content-blog": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.1.tgz",
- "integrity": "sha512-E2i7Knz5YIbE1XELI6RlTnZnGgS52cUO4BlCiCUCvQHbR+s1xeIWz4C6BtaVnlug0Ccz7nFSksfwDpVlkujg5Q==",
- "dependencies": {
- "@docusaurus/core": "2.4.1",
- "@docusaurus/logger": "2.4.1",
- "@docusaurus/mdx-loader": "2.4.1",
- "@docusaurus/types": "2.4.1",
- "@docusaurus/utils": "2.4.1",
- "@docusaurus/utils-common": "2.4.1",
- "@docusaurus/utils-validation": "2.4.1",
- "cheerio": "^1.0.0-rc.12",
- "feed": "^4.2.2",
- "fs-extra": "^10.1.0",
- "lodash": "^4.17.21",
- "reading-time": "^1.5.0",
- "tslib": "^2.4.0",
- "unist-util-visit": "^2.0.3",
- "utility-types": "^3.10.0",
- "webpack": "^5.73.0"
+ "node_modules/@csstools/postcss-alpha-function": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz",
+ "integrity": "sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": ">=16.14"
+ "node": ">=18"
},
"peerDependencies": {
- "react": "^16.8.4 || ^17.0.0",
- "react-dom": "^16.8.4 || ^17.0.0"
+ "postcss": "^8.4"
}
},
- "node_modules/@docusaurus/plugin-content-docs": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.1.tgz",
- "integrity": "sha512-Lo7lSIcpswa2Kv4HEeUcGYqaasMUQNpjTXpV0N8G6jXgZaQurqp7E8NGYeGbDXnb48czmHWbzDL4S3+BbK0VzA==",
- "dependencies": {
- "@docusaurus/core": "2.4.1",
- "@docusaurus/logger": "2.4.1",
- "@docusaurus/mdx-loader": "2.4.1",
- "@docusaurus/module-type-aliases": "2.4.1",
- "@docusaurus/types": "2.4.1",
- "@docusaurus/utils": "2.4.1",
- "@docusaurus/utils-validation": "2.4.1",
- "@types/react-router-config": "^5.0.6",
- "combine-promises": "^1.1.0",
- "fs-extra": "^10.1.0",
- "import-fresh": "^3.3.0",
- "js-yaml": "^4.1.0",
- "lodash": "^4.17.21",
- "tslib": "^2.4.0",
- "utility-types": "^3.10.0",
- "webpack": "^5.73.0"
+ "node_modules/@csstools/postcss-cascade-layers": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz",
+ "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
... 78644 lines suppressed ...