Drop the registered Parquet buffer from the DuckDB-WASM filesystem once the table is materialised, so the payload is no longer resident twice, and register it under a unique name so two widgets sharing a table name on one page cannot overwrite each other.
Report the real cause when a page saved with
selfcontained = TRUE cannot resolve a file-transport
payload.
Scope an auto-created data_dir to the Shiny session
and remove it when the session ends.
Ship data_transport = "file" payloads as an html
dependency attachment of the widget, so the relative Arrow/Parquet URL
resolves in the RStudio Viewer, in Shiny and after
htmlwidgets::saveWidget(selfcontained = FALSE) into any
directory, not only when the page is served from data_dir.
data_dir now defaults to a session temporary
directory.
runMosaicApp(), runMosaicWithExport()
and runMosaicExport() accept and forward con,
which their inherited documentation already referred to.
Document that the copy_arrows rung only loads the
nanoarrow extension and never installs it, that data.frames overwrite an
existing table of the same name on a supplied connection, and that the
widget’s query channel executes the page’s SQL on that
connection.
mosaic() gains a con argument. With
backend = "r" a supplied DuckDB DBI connection is queried
in place instead of copying data into a fresh in-memory DuckDB, so
tables that already live in a database file are never materialised in R;
data becomes optional and any data.frames it holds are
still written to that connection. Supplied connections are never
disconnected; only connections mosaic() opened itself are
closed when the Shiny session ends.
data elements may now be single SQL strings
evaluated on con. For backend = "r" they
become temporary views; for backend = "wasm" they are
streamed from DuckDB to the browser payload (Arrow IPC via the community
‘nanoarrow’ extension, else record-batch streaming through ‘arrow’, else
Parquet) without DBI::dbGetQuery(). The widget records the
export method per table under input_exports, and the
JavaScript loader accepts Parquet files and inline Arrow IPC or Parquet
payloads for DuckDB-WASM. The rMosaic.export_methods option
restricts which export methods are tried.
Reduce row-conversion overhead for plain data frames in inline WASM data and live R-backend query responses. Attributed columns and custom data frames retain the existing conversion path and serialization behavior.
store_mosaic_selection() no longer falls back to
globalenv(). Selections are now stored in a
package-internal environment (.mosaic_sel_store), which is
never .GlobalEnv. Two new exported helpers —
get_mosaic_selection(name) and
list_mosaic_selections() — allow users to retrieve stored
selections..GlobalEnv as a default argument in
runMosaicExport(), runMosaicWithExport(), and
the internal store_mosaic_selection(). The global
environment is now resolved inside the function body via
globalenv(), satisfying CRAN policy on modifying
.GlobalEnv.<<- in
.mosaic_dot_xy_candidates() with a purely recursive
approach that accumulates results through return values, avoiding any
super-assignment operator.req,
observe, observeEvent)@importFrom statements for all external
functions