@malloy-publisher/app 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-doc.yaml +215 -42
- package/dist/assets/{EnvironmentPage-DiUgLuCH.js → EnvironmentPage-BcEUZVIC.js} +1 -1
- package/dist/assets/{HomePage-MhhjhnFj.js → HomePage-DCsq293d.js} +1 -1
- package/dist/assets/{LightMode-BEyvNUzT.js → LightMode-DwFiroPa.js} +1 -1
- package/dist/assets/{MainPage-D4Cfee9o.js → MainPage-C1_VHMxk.js} +1 -1
- package/dist/assets/{MaterializationsPage-nGgGqwSN.js → MaterializationsPage-DGwKeuAA.js} +1 -1
- package/dist/assets/{ModelPage-DLAcEw-F.js → ModelPage-XQfzVXUN.js} +1 -1
- package/dist/assets/{PackagePage-Df0ikH7w.js → PackagePage-DI1IVhGL.js} +1 -1
- package/dist/assets/{RouteError-BFQwtroH.js → RouteError-n2MUv4eq.js} +1 -1
- package/dist/assets/{ThemeEditorPage-OoskoQYN.js → ThemeEditorPage-DpxdBjEn.js} +1 -1
- package/dist/assets/{WorkbookPage-CpFgvUDC.js → WorkbookPage-DgLPorl-.js} +1 -1
- package/dist/assets/{core-lb28vQkR.es-BoVSOc75.js → core-mFfgwzPH.es-DVYiO2_O.js} +1 -1
- package/dist/assets/{index-6ypuFH6g.js → index-BwGkdFCK.js} +1 -1
- package/dist/assets/{index-DfqzSItA.js → index-C9Ted14e.js} +1 -1
- package/dist/assets/{index-BImcHmVP.js → index-D3eb2hal.js} +1 -1
- package/dist/assets/{index-B8pnU_V_.js → index-O-tznXBH.js} +171 -154
- package/dist/index.html +1 -1
- package/package.json +2 -2
package/dist/api-doc.yaml
CHANGED
|
@@ -191,6 +191,10 @@ paths:
|
|
|
191
191
|
Retrieves a list of all environments currently hosted on this Malloy Publisher server.
|
|
192
192
|
Each environment contains metadata about its packages, connections, and configuration.
|
|
193
193
|
This endpoint is typically used to discover available environments and their basic information.
|
|
194
|
+
|
|
195
|
+
This endpoint does not reload. A `reload` query parameter is rejected with 400 rather
|
|
196
|
+
than ignored, because answering 200 here reads as a reload that worked. Reload is
|
|
197
|
+
per-environment: use `GET /environments/{environmentName}?reload=true`.
|
|
194
198
|
responses:
|
|
195
199
|
"200":
|
|
196
200
|
description: A list of all available environments
|
|
@@ -200,6 +204,8 @@ paths:
|
|
|
200
204
|
type: array
|
|
201
205
|
items:
|
|
202
206
|
$ref: "#/components/schemas/Environment"
|
|
207
|
+
"400":
|
|
208
|
+
$ref: "#/components/responses/BadRequest"
|
|
203
209
|
"401":
|
|
204
210
|
$ref: "#/components/responses/Unauthorized"
|
|
205
211
|
"500":
|
|
@@ -256,7 +262,13 @@ paths:
|
|
|
256
262
|
$ref: "#/components/schemas/IdentifierPattern"
|
|
257
263
|
- name: reload
|
|
258
264
|
in: query
|
|
259
|
-
description:
|
|
265
|
+
description: |
|
|
266
|
+
Load / reload the environment before returning result.
|
|
267
|
+
|
|
268
|
+
Only the two spellings OpenAPI serializes a boolean as are accepted:
|
|
269
|
+
`true` and `false`. Any other value (`1`, `yes`, `TRUE`, or the
|
|
270
|
+
parameter repeated) is refused with 400 rather than read as `false`,
|
|
271
|
+
which would answer 200 without recompiling.
|
|
260
272
|
required: false
|
|
261
273
|
schema:
|
|
262
274
|
type: boolean
|
|
@@ -267,6 +279,8 @@ paths:
|
|
|
267
279
|
application/json:
|
|
268
280
|
schema:
|
|
269
281
|
$ref: "#/components/schemas/Environment"
|
|
282
|
+
"400":
|
|
283
|
+
$ref: "#/components/responses/BadRequest"
|
|
270
284
|
"401":
|
|
271
285
|
$ref: "#/components/responses/Unauthorized"
|
|
272
286
|
"404":
|
|
@@ -1286,6 +1300,10 @@ paths:
|
|
|
1286
1300
|
Retrieves a list of all Malloy packages within the specified environment. Each package
|
|
1287
1301
|
contains models, notebooks, databases, and other resources. This endpoint is useful
|
|
1288
1302
|
for discovering available packages and their basic metadata.
|
|
1303
|
+
|
|
1304
|
+
This endpoint does not reload. A `reload` query parameter is rejected with 400 rather
|
|
1305
|
+
than ignored, because answering 200 here reads as a reload that worked. Reload is
|
|
1306
|
+
per-package: use `GET /environments/{environmentName}/packages/{packageName}?reload=true`.
|
|
1289
1307
|
parameters:
|
|
1290
1308
|
- name: environmentName
|
|
1291
1309
|
in: path
|
|
@@ -1302,6 +1320,8 @@ paths:
|
|
|
1302
1320
|
type: array
|
|
1303
1321
|
items:
|
|
1304
1322
|
$ref: "#/components/schemas/Package"
|
|
1323
|
+
"400":
|
|
1324
|
+
$ref: "#/components/responses/BadRequest"
|
|
1305
1325
|
"401":
|
|
1306
1326
|
$ref: "#/components/responses/Unauthorized"
|
|
1307
1327
|
"500":
|
|
@@ -1382,7 +1402,13 @@ paths:
|
|
|
1382
1402
|
$ref: "#/components/schemas/VersionIdPattern"
|
|
1383
1403
|
- name: reload
|
|
1384
1404
|
in: query
|
|
1385
|
-
description:
|
|
1405
|
+
description: |
|
|
1406
|
+
Load / reload the package before returning result.
|
|
1407
|
+
|
|
1408
|
+
Only the two spellings OpenAPI serializes a boolean as are accepted:
|
|
1409
|
+
`true` and `false`. Any other value (`1`, `yes`, `TRUE`, or the
|
|
1410
|
+
parameter repeated) is refused with 400 rather than read as `false`,
|
|
1411
|
+
which would answer 200 without recompiling.
|
|
1386
1412
|
required: false
|
|
1387
1413
|
schema:
|
|
1388
1414
|
type: boolean
|
|
@@ -1393,6 +1419,8 @@ paths:
|
|
|
1393
1419
|
application/json:
|
|
1394
1420
|
schema:
|
|
1395
1421
|
$ref: "#/components/schemas/Package"
|
|
1422
|
+
"400":
|
|
1423
|
+
$ref: "#/components/responses/BadRequest"
|
|
1396
1424
|
"401":
|
|
1397
1425
|
$ref: "#/components/responses/Unauthorized"
|
|
1398
1426
|
"404":
|
|
@@ -1811,7 +1839,7 @@ paths:
|
|
|
1811
1839
|
Retrieves everything a viewer needs to render one dashboard: the artifact
|
|
1812
1840
|
tag's declarations plus the control contract derived from the givens its
|
|
1813
1841
|
query references. Running the dashboard needs no further endpoint — its
|
|
1814
|
-
query, each
|
|
1842
|
+
query, each tile, and each control's suggest query all run
|
|
1815
1843
|
through the model query endpoint with `givens`, using the manifest's
|
|
1816
1844
|
`path` as the model.
|
|
1817
1845
|
parameters:
|
|
@@ -2521,12 +2549,18 @@ paths:
|
|
|
2521
2549
|
When true, also drop the physical tables recorded in the
|
|
2522
2550
|
materialization's manifest before deleting the record. Defaults to
|
|
2523
2551
|
false (record-only delete; the caller owns table GC).
|
|
2552
|
+
|
|
2553
|
+
Only `true` and `false` are accepted. Any other value is refused
|
|
2554
|
+
with 400 rather than read as `false`, which would delete the record,
|
|
2555
|
+
leave the tables on disk, and still answer 204.
|
|
2524
2556
|
schema:
|
|
2525
2557
|
type: boolean
|
|
2526
2558
|
default: false
|
|
2527
2559
|
responses:
|
|
2528
2560
|
"204":
|
|
2529
2561
|
description: Materialization deleted
|
|
2562
|
+
"400":
|
|
2563
|
+
$ref: "#/components/responses/BadRequest"
|
|
2530
2564
|
"404":
|
|
2531
2565
|
$ref: "#/components/responses/NotFound"
|
|
2532
2566
|
"409":
|
|
@@ -2997,9 +3031,11 @@ components:
|
|
|
2997
3031
|
description: >-
|
|
2998
3032
|
Non-fatal findings collected when the package loaded, none of which
|
|
2999
3033
|
stop the model compiling or the package loading. Render-tag
|
|
3000
|
-
findings: a render annotation (e.g. `# big_value
|
|
3001
|
-
|
|
3002
|
-
"[object Object]" or an
|
|
3034
|
+
findings: a render annotation (e.g. `# big_value`, `# currency` or
|
|
3035
|
+
`# colspan`) the renderer cannot apply as written, either malformed
|
|
3036
|
+
for the field it sits on, so it renders as "[object Object]" or an
|
|
3037
|
+
inline error at query time, or inert where it sits and silently
|
|
3038
|
+
ignored. Materialization
|
|
3003
3039
|
findings: a `storage=` source not served from storage, a `#@ persist`
|
|
3004
3040
|
source that was not recognized as materializable, a persist-target
|
|
3005
3041
|
collision, and materialization-config problems that degrade
|
|
@@ -3090,9 +3126,15 @@ components:
|
|
|
3090
3126
|
- error
|
|
3091
3127
|
- warn
|
|
3092
3128
|
description: >-
|
|
3093
|
-
Finding severity. Render findings
|
|
3094
|
-
|
|
3095
|
-
|
|
3129
|
+
Finding severity. Render-tag findings use both: `error` for
|
|
3130
|
+
a tag malformed for the field it sits on, which renders as
|
|
3131
|
+
"[object Object]" or an inline error at query time, and `warn`
|
|
3132
|
+
for one that is well-formed but inert where it sits and so is
|
|
3133
|
+
silently ignored (e.g. `# colspan` outside
|
|
3134
|
+
`# dashboard { columns=N }`), where nothing looks broken at
|
|
3135
|
+
query time and the layout simply is not what was written.
|
|
3136
|
+
Those are the only two severities the renderer emits, so no
|
|
3137
|
+
render finding is withheld. Materialization and dashboard
|
|
3096
3138
|
findings use both: `error` for something that cannot work as
|
|
3097
3139
|
written, such as a tile naming a view the source does not
|
|
3098
3140
|
have, and `warn` for something that works but not as the
|
|
@@ -3476,7 +3518,7 @@ components:
|
|
|
3476
3518
|
Everything a viewer needs to render one dashboard: the artifact tag's
|
|
3477
3519
|
declarations plus the control contract derived from the givens its query
|
|
3478
3520
|
references. Running needs no dashboard-specific endpoint — the query,
|
|
3479
|
-
each
|
|
3521
|
+
each tile, and each control's suggest query all run through
|
|
3480
3522
|
the ordinary model query endpoint with `givens`.
|
|
3481
3523
|
properties:
|
|
3482
3524
|
resource:
|
|
@@ -3513,24 +3555,29 @@ components:
|
|
|
3513
3555
|
query:
|
|
3514
3556
|
type: string
|
|
3515
3557
|
description: >-
|
|
3516
|
-
Name of the tagged query
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
|
|
3520
|
-
|
|
3521
|
-
`DashboardTile.query`.
|
|
3558
|
+
Name of the tagged query whose single result IS the page. Set when the
|
|
3559
|
+
`# artifact` tag sits on a `query:`; a dashboard authored the ordinary
|
|
3560
|
+
way carries `tiles` instead and leaves this absent. A NAME rather than
|
|
3561
|
+
an expression, so it goes in the `queryName` field of a
|
|
3562
|
+
`POST …/models/{path}/query` body. A tile's `query` is the other shape
|
|
3563
|
+
and is not interchangeable with this one; see `DashboardTile.query`.
|
|
3522
3564
|
tiles:
|
|
3523
3565
|
type: array
|
|
3524
|
-
description:
|
|
3525
|
-
|
|
3526
|
-
grid.
|
|
3566
|
+
description: >-
|
|
3567
|
+
The dashboard's tiles, each run as its own query and combined into one
|
|
3568
|
+
grid. This is how a dashboard is normally authored, and the only form
|
|
3569
|
+
that can span sources. Absent when the `# artifact` tag sits on a
|
|
3570
|
+
`query:` instead, in which case `query` is set.
|
|
3527
3571
|
items:
|
|
3528
3572
|
$ref: "#/components/schemas/DashboardTile"
|
|
3529
3573
|
dashboardColumns:
|
|
3530
3574
|
type: integer
|
|
3531
|
-
description:
|
|
3532
|
-
Grid width
|
|
3533
|
-
|
|
3575
|
+
description: >-
|
|
3576
|
+
Grid width, from the `# dashboard {columns=N}` render tag beside the
|
|
3577
|
+
artifact tag. One spelling wherever the artifact tag sits: Publisher
|
|
3578
|
+
reads it at model level to lay out `tiles`, and `@malloydata/render`
|
|
3579
|
+
reads the same tag off a tagged `query:`. Absent means the viewer's
|
|
3580
|
+
default.
|
|
3534
3581
|
startingGivens:
|
|
3535
3582
|
allOf:
|
|
3536
3583
|
- $ref: "#/components/schemas/EncodedGivenValues"
|
|
@@ -3546,9 +3593,9 @@ components:
|
|
|
3546
3593
|
type: array
|
|
3547
3594
|
description: |
|
|
3548
3595
|
The control row. Normally one entry per given the dashboard runs
|
|
3549
|
-
with
|
|
3550
|
-
|
|
3551
|
-
can bind.
|
|
3596
|
+
with: the union over `tiles`, or what `query` references when the tag
|
|
3597
|
+
sits on a query, and which the entry file
|
|
3598
|
+
can bind. The row widens to
|
|
3552
3599
|
every given the entry file surfaces when any tile is one discovery
|
|
3553
3600
|
cannot resolve, because that tile's givens are otherwise absent from
|
|
3554
3601
|
the row it filters by; see `DashboardTile.givenNames`. So an entry
|
|
@@ -3576,7 +3623,7 @@ components:
|
|
|
3576
3623
|
|
|
3577
3624
|
DashboardTile:
|
|
3578
3625
|
type: object
|
|
3579
|
-
description: One tile of a
|
|
3626
|
+
description: One tile of a dashboard
|
|
3580
3627
|
properties:
|
|
3581
3628
|
query:
|
|
3582
3629
|
type: string
|
|
@@ -3601,6 +3648,39 @@ components:
|
|
|
3601
3648
|
widens `DashboardManifest.givens` to every given the entry file
|
|
3602
3649
|
surfaces, rather than the union over the resolvable tiles, so that
|
|
3603
3650
|
the row actually contains the givens that tile filters by.
|
|
3651
|
+
label:
|
|
3652
|
+
type: string
|
|
3653
|
+
description: >-
|
|
3654
|
+
Heading for the tile, from a `# label` on the view or query it names.
|
|
3655
|
+
Absent when it carries none, in which case a viewer derives one from
|
|
3656
|
+
the run expression.
|
|
3657
|
+
subtitle:
|
|
3658
|
+
type: string
|
|
3659
|
+
description:
|
|
3660
|
+
Second line under the heading, from a `# subtitle` on the view or
|
|
3661
|
+
query it names.
|
|
3662
|
+
colspan:
|
|
3663
|
+
type: integer
|
|
3664
|
+
description: >-
|
|
3665
|
+
Grid columns this tile spans, from a `# colspan=N` on the view or
|
|
3666
|
+
query it names. Clamped to `dashboardColumns` at render time. Absent
|
|
3667
|
+
means one column.
|
|
3668
|
+
break:
|
|
3669
|
+
type: boolean
|
|
3670
|
+
description: >-
|
|
3671
|
+
Start a new grid row at this tile, from a `# break` on the view or
|
|
3672
|
+
query it names. Named for the tag, so every per-tile field on this
|
|
3673
|
+
schema is spelled the way an author writes it. A generated client
|
|
3674
|
+
escapes the attribute where the word is reserved (the Python client
|
|
3675
|
+
exposes `break_`) while the wire key stays `break`.
|
|
3676
|
+
borderless:
|
|
3677
|
+
type: boolean
|
|
3678
|
+
description: >-
|
|
3679
|
+
Draw the result with no card around it, from a `# borderless` on the
|
|
3680
|
+
view or query it names. Together with `label`, `subtitle`, `colspan`
|
|
3681
|
+
and `break` this is the whole per-child tag set `@malloydata/render`
|
|
3682
|
+
resolves for a `# dashboard` nest child, read the same way here so one
|
|
3683
|
+
view presents identically as a tile and as a nest.
|
|
3604
3684
|
|
|
3605
3685
|
DataApp:
|
|
3606
3686
|
type: object
|
|
@@ -4268,14 +4348,66 @@ components:
|
|
|
4268
4348
|
to degrade to the live warehouse. **The rows are correct and the
|
|
4269
4349
|
request succeeded**, which is why this needs its own value: it is
|
|
4270
4350
|
indistinguishable from a storage hit at the call site, and treating it
|
|
4271
|
-
as one would report a healthy hit rate for a broken store.
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4351
|
+
as one would report a healthy hit rate for a broken store. This value
|
|
4352
|
+
is NOT the same event as the `live_fallback` label on
|
|
4353
|
+
`publisher_storage_serve_routing_total` — see the warning below.
|
|
4354
|
+
|
|
4355
|
+
**This field describes the `storage=` tier and nothing else.** It
|
|
4356
|
+
records how the storage routing decision came out, so it says nothing
|
|
4357
|
+
about the colocated `#@ persist` tier, which answers a query by
|
|
4358
|
+
substituting the materialized table into the model and never reaches
|
|
4359
|
+
that decision.
|
|
4360
|
+
|
|
4361
|
+
**Null is three different outcomes**, and they are worth telling
|
|
4362
|
+
apart because two of them mean materialization worked and one means
|
|
4363
|
+
it silently did not:
|
|
4364
|
+
|
|
4365
|
+
1. The query never had a storage binding to consider — every query on
|
|
4366
|
+
a deployment with no `storage=` sources, which is the default.
|
|
4367
|
+
2. It was answered from a **colocated** materialized table. The
|
|
4368
|
+
query never reached the routing decision, so a fully materialized
|
|
4369
|
+
answer reports the same null a fully live one does.
|
|
4370
|
+
3. The storage transform was **ineligible** for this query, so it was
|
|
4371
|
+
served live. The query DID reach the routing decision and the tier
|
|
4372
|
+
declined it — a storage-tier miss, reported identically to "no
|
|
4373
|
+
materialization exists anywhere."
|
|
4374
|
+
|
|
4375
|
+
Case 3 is the one that costs time, because nothing about the response
|
|
4376
|
+
distinguishes it from case 1. The server does log it: one
|
|
4377
|
+
`storage serve-shape ineligible for this query; serving live` line at
|
|
4378
|
+
INFO per routed query, carrying the compile error that made the shape
|
|
4379
|
+
ineligible, plus `shapeSources` (what the shape offered) and
|
|
4380
|
+
`staleSources` (bound, but withheld by the freshness gate). The
|
|
4381
|
+
compile error alone does not separate those: `Reference to undefined
|
|
4382
|
+
object 'x'` reads identically whether `x` carries no `#@ persist` at
|
|
4383
|
+
all or is materialized and merely past its freshness window. That log
|
|
4384
|
+
is currently the only per-query account of a storage-tier miss. It is not a hypothetical shape — a source
|
|
4385
|
+
warehouse that folds unquoted identifiers to upper case made every
|
|
4386
|
+
query on every `storage=` source in a package ineligible, and the
|
|
4387
|
+
whole tier reported null for months while looking exactly like a
|
|
4388
|
+
deployment that had never enabled it.
|
|
4389
|
+
|
|
4390
|
+
For the colocated tier there is no per-query signal at all. The
|
|
4391
|
+
package-grain fields are the nearest thing —
|
|
4392
|
+
`manifestBindingStatus`, `manifestEntryCount` and
|
|
4393
|
+
`storageServeBindings` — but read what each actually claims:
|
|
4394
|
+
`bound` reports that the bind ran to completion, explicitly NOT that
|
|
4395
|
+
any query routes to a materialized table, and `manifestEntryCount`
|
|
4396
|
+
counts colocated entries only, so a package whose sources are all
|
|
4397
|
+
`storage=` reports 0 while being fully bound.
|
|
4398
|
+
|
|
4399
|
+
⚠️ **`live_fallback` names two different things across two surfaces,
|
|
4400
|
+
and correlating them on the token is wrong in both directions.** On
|
|
4401
|
+
this field it means the store failed at run time. On
|
|
4402
|
+
`publisher_storage_serve_routing_total{outcome}` it means the
|
|
4403
|
+
transform was ineligible — this field's null case 3 — and that
|
|
4404
|
+
metric spells the run-time failure `runtime_live_fallback`. So the
|
|
4405
|
+
field's `live_fallback` is the metric's `runtime_live_fallback`, and
|
|
4406
|
+
the metric's `live_fallback` is this field's `null`. A third surface,
|
|
4407
|
+
`manifestBindingStatus`, uses the same token for a third thing: a
|
|
4408
|
+
configured `manifestLocation` whose fetch or bind failed. Each
|
|
4409
|
+
surface is internally consistent; none of them means what the others
|
|
4410
|
+
do.
|
|
4279
4411
|
executionTimeMs:
|
|
4280
4412
|
type: integer
|
|
4281
4413
|
description: >-
|
|
@@ -4668,25 +4800,62 @@ components:
|
|
|
4668
4800
|
type: object
|
|
4669
4801
|
description: AWS S3 connection configuration for DuckDB
|
|
4670
4802
|
properties:
|
|
4803
|
+
# No schema `default:` here on purpose, though the reason is narrower than
|
|
4804
|
+
# it looks: at the pinned openapi-typescript (6.x) a defaulted property
|
|
4805
|
+
# still generates as optional, so a `default:` would be harmless today. It
|
|
4806
|
+
# is at 7.x that a default makes the property REQUIRED, which would force
|
|
4807
|
+
# every caller to name a provider. Omitted for robustness across that bump,
|
|
4808
|
+
# not to avoid a present-day break. Note `region` below carries a default
|
|
4809
|
+
# and so already has that exposure — a 7.x upgrade has to deal with it
|
|
4810
|
+
# either way. The default is stated in the description and applied when the
|
|
4811
|
+
# connection is attached.
|
|
4812
|
+
provider:
|
|
4813
|
+
type: string
|
|
4814
|
+
enum:
|
|
4815
|
+
- config
|
|
4816
|
+
- credential_chain
|
|
4817
|
+
description: >-
|
|
4818
|
+
How credentials are obtained; defaults to `config` when omitted.
|
|
4819
|
+
`config` uses the accessKeyId and secretAccessKey on this object,
|
|
4820
|
+
which are then required.
|
|
4821
|
+
`credential_chain` resolves them from the host instead — an instance
|
|
4822
|
+
profile, a web-identity token, or the environment — so no key is
|
|
4823
|
+
stored, and supplying one is rejected. Chain resolution happens when
|
|
4824
|
+
the connection is attached, so a host that cannot supply credentials
|
|
4825
|
+
fails there rather than on first object access.
|
|
4826
|
+
chain:
|
|
4827
|
+
type: string
|
|
4828
|
+
description: >-
|
|
4829
|
+
Ordered list of credential providers to try, semicolon-separated,
|
|
4830
|
+
for `provider: credential_chain` (DuckDB's CHAIN). Recognized
|
|
4831
|
+
providers are env, config, sts, instance, sso, process, and
|
|
4832
|
+
web_identity. Omit to use Publisher's default order, which covers
|
|
4833
|
+
the environment, a web-identity token, and an instance profile.
|
|
4834
|
+
Rejected under `provider: config`, where the key pair beside it
|
|
4835
|
+
is what grants access.
|
|
4671
4836
|
accessKeyId:
|
|
4672
4837
|
type: string
|
|
4673
|
-
description: AWS access key ID
|
|
4838
|
+
description: "AWS access key ID (required for `provider: config`)"
|
|
4674
4839
|
secretAccessKey:
|
|
4675
4840
|
type: string
|
|
4676
|
-
description: AWS secret access key
|
|
4841
|
+
description: "AWS secret access key (required for `provider: config`)"
|
|
4677
4842
|
region:
|
|
4678
4843
|
type: string
|
|
4679
|
-
description:
|
|
4680
|
-
|
|
4844
|
+
description: >-
|
|
4845
|
+
AWS region (e.g., us-east-1). Optional, and Publisher falls back to
|
|
4846
|
+
us-east-1 when it is absent — but the fallback is applied in code, not
|
|
4847
|
+
by this schema: a `default:` here would be documentation only, since
|
|
4848
|
+
the generated clients leave an omitted property undefined rather than
|
|
4849
|
+
filling it. Stated this way so a caller reading the schema does not
|
|
4850
|
+
conclude the wire supplies it. A remote root in another region MUST
|
|
4851
|
+
set this; omitting it reaches us-east-1 and fails as a missing bucket
|
|
4852
|
+
rather than as a misconfiguration.
|
|
4681
4853
|
endpoint:
|
|
4682
4854
|
type: string
|
|
4683
4855
|
description: Custom S3-compatible endpoint URL (optional, for MinIO, etc.)
|
|
4684
4856
|
sessionToken:
|
|
4685
4857
|
type: string
|
|
4686
4858
|
description: AWS session token for temporary credentials (optional)
|
|
4687
|
-
required:
|
|
4688
|
-
- accessKeyId
|
|
4689
|
-
- secretAccessKey
|
|
4690
4859
|
|
|
4691
4860
|
AzureConnection:
|
|
4692
4861
|
type: object
|
|
@@ -5381,7 +5550,11 @@ components:
|
|
|
5381
5550
|
properties:
|
|
5382
5551
|
graphs:
|
|
5383
5552
|
type: array
|
|
5384
|
-
description:
|
|
5553
|
+
description: >-
|
|
5554
|
+
Dependency-ordered build graphs. One per connection per model, not one
|
|
5555
|
+
per connection: a model contributes a graph for each connection its ROOT
|
|
5556
|
+
persist sources use, and a package's plan concatenates every model's, so
|
|
5557
|
+
the same source appears in the graph of every model that imports it.
|
|
5385
5558
|
items:
|
|
5386
5559
|
$ref: "#/components/schemas/BuildGraph"
|
|
5387
5560
|
sources:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{T as r,J as t,j as e,a3 as i,ad as o}from"./index-O-tznXBH.js";function m(){const s=r(),{environmentName:n}=t();if(n){const a=i({environmentName:n});return e.jsx(o,{onSelectPackage:s,resourceUri:a})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing environment name"})})}export{m as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{T as t,j as o,C as a}from"./index-O-tznXBH.js";function s(){const n=t();return o.jsx(a,{onClickEnvironment:n})}export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c,j as s}from"./index-
|
|
1
|
+
import{c,j as s}from"./index-O-tznXBH.js";const t=c(s.jsx("path",{d:"M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1"})),a=c(s.jsx("path",{d:"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5M2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1m18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1m0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0z"}));export{t as D,a as L};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as Pe,
|
|
1
|
+
import{u as Pe,g as Ee,r as u,R as Ce,a as Ie,c as S,j as t,s as M,B as Me,m as J,e as oe,b as le,d as ce,f as de,h as ze,i as O,k as pe,l as U,n as Z,o as Te,p as De,q as Re,t as ue,v as Be,w as se,x as Le,y as He,z as $e,A,D as $,M as Ne,P as Ae,E as We,F as Oe,S as Ve,G as Ue,H as F,I as V,J as he,T as q,K as f,L as Fe,N as xe,O as Q,Q as Qe,U as Xe,V as ae,W as fe,X as me,Y as ge,Z as Ye,_ as _e,$ as Ke}from"./index-O-tznXBH.js";import{D as Ge,L as Je}from"./LightMode-DwFiroPa.js";function Ze(e,r,n,o,s){const[a,i]=u.useState(()=>s&&n?n(e).matches:o?o(e).matches:r);return Ie(()=>{if(!n)return;const c=n(e),h=()=>{i(c.matches)};return h(),c.addEventListener("change",h),()=>{c.removeEventListener("change",h)}},[e,n]),a}const qe={...Ce},ye=qe.useSyncExternalStore;function et(e,r,n,o,s){const a=u.useCallback(()=>r,[r]),i=u.useMemo(()=>{if(s&&n)return()=>n(e).matches;if(o!==null){const{matches:p}=o(e);return()=>p}return a},[a,e,o,s,n]),[c,h]=u.useMemo(()=>{if(n===null)return[a,()=>()=>{}];const p=n(e);return[()=>p.matches,m=>(p.addEventListener("change",m),()=>{p.removeEventListener("change",m)})]},[a,n,e]);return ye(h,c,i)}function be(e={}){const{themeId:r}=e;return function(o,s={}){let a=Pe();a&&r&&(a=a[r]||a);const i=typeof window<"u"&&typeof window.matchMedia<"u",{defaultMatches:c=!1,matchMedia:h=i?window.matchMedia:null,ssrMatchMedia:x=null,noSsr:p=!1}=Ee({name:"MuiUseMediaQuery",props:s,theme:a});let m=typeof o=="function"?o(a):o;return m=m.replace(/^@media( ?)/m,""),m.includes("print")&&console.warn(["MUI: You have provided a `print` query to the `useMediaQuery` hook.","Using the print media query to modify print styles can lead to unexpected results.","Consider using the `displayPrint` field in the `sx` prop instead.","More information about `displayPrint` on our docs: https://mui.com/system/display/#display-in-print."].join(`
|
|
2
2
|
`)),(ye!==void 0?et:Ze)(m,c,h,x,p)}}be();const tt=S(t.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"})),rt=M(Me,{name:"MuiBreadcrumbCollapsed"})(J(({theme:e})=>({display:"flex",marginLeft:`calc(${e.spacing(1)} * 0.5)`,marginRight:`calc(${e.spacing(1)} * 0.5)`,...e.palette.mode==="light"?{backgroundColor:e.palette.grey[100],color:e.palette.grey[700]}:{backgroundColor:e.palette.grey[700],color:e.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...e.palette.mode==="light"?{backgroundColor:e.palette.grey[200]}:{backgroundColor:e.palette.grey[600]}},"&:active":{boxShadow:e.shadows[0],...e.palette.mode==="light"?{backgroundColor:oe(e.palette.grey[200],.12)}:{backgroundColor:oe(e.palette.grey[600],.12)}}}))),nt=M(tt)({width:24,height:16});function ot(e){const{slots:r={},slotProps:n={},...o}=e,s=e;return t.jsx("li",{children:t.jsx(rt,{focusRipple:!0,...o,ownerState:s,children:t.jsx(nt,{as:r.CollapsedIcon,ownerState:s,...n.collapsedIcon})})})}function st(e){return ce("MuiBreadcrumbs",e)}const at=le("MuiBreadcrumbs",["root","ol","li","separator"]),it=e=>{const{classes:r}=e;return pe({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},st,r)},lt=M(U,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(e,r)=>[{[`& .${at.li}`]:r.li},r.root]})({}),ct=M("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),dt=M("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function pt(e,r,n,o){return e.reduce((s,a,i)=>(i<e.length-1?s=s.concat(a,t.jsx(dt,{"aria-hidden":!0,className:r,ownerState:o,children:n},`separator-${i}`)):s.push(a),s),[])}const ut=u.forwardRef(function(r,n){const o=de({props:r,name:"MuiBreadcrumbs"}),{children:s,className:a,component:i="nav",slots:c={},slotProps:h={},expandText:x="Show path",itemsAfterCollapse:p=1,itemsBeforeCollapse:m=1,maxItems:y=8,separator:P="/",...H}=o,[z,E]=u.useState(!1),v={...o,component:i,expanded:z,expandText:x,itemsAfterCollapse:p,itemsBeforeCollapse:m,maxItems:y,separator:P},C=it(v),T=ze({elementType:c.CollapsedIcon,externalSlotProps:h.collapsedIcon,ownerState:v}),j=u.useRef(null),k=d=>{const w=()=>{E(!0);const b=j.current.querySelector("a[href],button,[tabindex]");b&&b.focus()};return m+p>=d.length?d:[...d.slice(0,m),t.jsx(ot,{"aria-label":x,slots:{CollapsedIcon:c.CollapsedIcon},slotProps:{collapsedIcon:T},onClick:w},"ellipsis"),...d.slice(d.length-p,d.length)]},D=u.Children.toArray(s).filter(d=>u.isValidElement(d)).map((d,w)=>t.jsx("li",{className:C.li,children:d},`child-${w}`));return t.jsx(lt,{ref:n,component:i,color:"textSecondary",className:O(C.root,a),ownerState:v,...H,children:t.jsx(ct,{className:C.ol,ref:j,ownerState:v,children:pt(z||y&&D.length<=y?D:k(D),C.separator,P,v)})})});function ht(e,r,n){const o=r.getBoundingClientRect(),s=n&&n.getBoundingClientRect(),a=ue(r);let i;if(r.fakeTransform)i=r.fakeTransform;else{const x=a.getComputedStyle(r);i=x.getPropertyValue("-webkit-transform")||x.getPropertyValue("transform")}let c=0,h=0;if(i&&i!=="none"&&typeof i=="string"){const x=i.split("(")[1].split(")")[0].split(",");c=parseInt(x[4],10),h=parseInt(x[5],10)}return e==="left"?s?`translateX(${s.right+c-o.left}px)`:`translateX(${a.innerWidth+c-o.left}px)`:e==="right"?s?`translateX(-${o.right-s.left-c}px)`:`translateX(-${o.left+o.width-c}px)`:e==="up"?s?`translateY(${s.bottom+h-o.top}px)`:`translateY(${a.innerHeight+h-o.top}px)`:s?`translateY(-${o.top-s.top+o.height-h}px)`:`translateY(-${o.top+o.height-h}px)`}function xt(e){return typeof e=="function"?e():e}function W(e,r,n){const o=xt(n),s=ht(e,r,o);s&&(r.style.webkitTransform=s,r.style.transform=s)}const ft=u.forwardRef(function(r,n){const o=Z(),s={enter:o.transitions.easing.easeOut,exit:o.transitions.easing.sharp},a={enter:o.transitions.duration.enteringScreen,exit:o.transitions.duration.leavingScreen},{addEndListener:i,appear:c=!0,children:h,container:x,direction:p="down",easing:m=s,in:y,onEnter:P,onEntered:H,onEntering:z,onExit:E,onExited:v,onExiting:C,style:T,timeout:j=a,TransitionComponent:k=Te,...D}=r,d=u.useRef(null),w=De(Re(h),d,n),b=l=>g=>{l&&(g===void 0?l(d.current):l(d.current,g))},X=b((l,g)=>{W(p,l,x),Le(l),P&&P(l,g)}),te=b((l,g)=>{const L=se({timeout:j,style:T,easing:m},{mode:"enter"});l.style.webkitTransition=o.transitions.create("-webkit-transform",{...L}),l.style.transition=o.transitions.create("transform",{...L}),l.style.webkitTransform="none",l.style.transform="none",z&&z(l,g)}),R=b(H),B=b(C),I=b(l=>{const g=se({timeout:j,style:T,easing:m},{mode:"exit"});l.style.webkitTransition=o.transitions.create("-webkit-transform",g),l.style.transition=o.transitions.create("transform",g),W(p,l,x),E&&E(l)}),Y=b(l=>{l.style.webkitTransition="",l.style.transition="",v&&v(l)}),_=l=>{i&&i(d.current,l)},N=u.useCallback(()=>{d.current&&W(p,d.current,x)},[p,x]);return u.useEffect(()=>{if(y||p==="down"||p==="right")return;const l=Be(()=>{d.current&&W(p,d.current,x)}),g=ue(d.current);return g.addEventListener("resize",l),()=>{l.clear(),g.removeEventListener("resize",l)}},[p,y,x]),u.useEffect(()=>{y||N()},[y,N]),t.jsx(k,{nodeRef:d,onEnter:X,onEntered:R,onEntering:te,onExit:I,onExited:Y,onExiting:B,addEndListener:_,appear:c,in:y,timeout:j,...D,children:(l,{ownerState:g,...L})=>u.cloneElement(h,{ref:w,style:{visibility:l==="exited"&&!y?"hidden":void 0,...T,...h.props.style},...L})})});function mt(e){return ce("MuiDrawer",e)}le("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]);const ve=(e,r)=>{const{ownerState:n}=e;return[r.root,(n.variant==="permanent"||n.variant==="persistent")&&r.docked,r.modal]},gt=e=>{const{classes:r,anchor:n,variant:o}=e,s={root:["root",`anchor${$(n)}`],docked:[(o==="permanent"||o==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${$(n)}`,o!=="temporary"&&`paperAnchorDocked${$(n)}`]};return pe(s,mt,r)},yt=M(Ne,{name:"MuiDrawer",slot:"Root",overridesResolver:ve})(J(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),bt=M("div",{shouldForwardProp:We,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:ve})({flex:"0 0 auto"}),vt=M(Ae,{name:"MuiDrawer",slot:"Paper",overridesResolver:(e,r)=>{const{ownerState:n}=e;return[r.paper,r[`paperAnchor${$(n.anchor)}`],n.variant!=="temporary"&&r[`paperAnchorDocked${$(n.anchor)}`]]}})(J(({theme:e})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(e.vars||e).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:r})=>r.anchor==="left"&&r.variant!=="temporary",style:{borderRight:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="top"&&r.variant!=="temporary",style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="right"&&r.variant!=="temporary",style:{borderLeft:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="bottom"&&r.variant!=="temporary",style:{borderTop:`1px solid ${(e.vars||e).palette.divider}`}}]}))),je={left:"right",right:"left",top:"down",bottom:"up"};function jt(e){return["left","right"].includes(e)}function kt({direction:e},r){return e==="rtl"&&jt(r)?je[r]:r}const wt=u.forwardRef(function(r,n){const o=de({props:r,name:"MuiDrawer"}),s=Z(),a=He(),i={enter:s.transitions.duration.enteringScreen,exit:s.transitions.duration.leavingScreen},{anchor:c="left",BackdropProps:h,children:x,className:p,elevation:m=16,hideBackdrop:y=!1,ModalProps:{BackdropProps:P,...H}={},onClose:z,open:E=!1,PaperProps:v={},SlideProps:C,TransitionComponent:T,transitionDuration:j=i,variant:k="temporary",slots:D={},slotProps:d={},...w}=o,b=u.useRef(!1);u.useEffect(()=>{b.current=!0},[]);const X=kt({direction:a?"rtl":"ltr"},c),R={...o,anchor:c,elevation:m,open:E,variant:k,...w},B=gt(R),I={slots:{transition:T,...D},slotProps:{paper:v,transition:C,...d,backdrop:$e(d.backdrop||{...h,...P},{transitionDuration:j})}},[Y,_]=A("root",{ref:n,elementType:yt,className:O(B.root,B.modal,p),shouldForwardComponentProp:!0,ownerState:R,externalForwardedProps:{...I,...w,...H},additionalProps:{open:E,onClose:z,hideBackdrop:y,slots:{backdrop:I.slots.backdrop},slotProps:{backdrop:I.slotProps.backdrop}}}),[N,l]=A("paper",{elementType:vt,shouldForwardComponentProp:!0,className:O(B.paper,v.className),ownerState:R,externalForwardedProps:I,additionalProps:{elevation:k==="temporary"?m:0,square:!0,...k==="temporary"&&{role:"dialog","aria-modal":"true"}}}),[g,L]=A("docked",{elementType:bt,ref:n,className:O(B.root,B.docked,p),ownerState:R,externalForwardedProps:I,additionalProps:w}),[we,Se]=A("transition",{elementType:ft,ownerState:R,externalForwardedProps:I,additionalProps:{in:E,direction:je[X],timeout:j,appear:b.current}}),re=t.jsx(N,{...l,children:x});if(k==="permanent")return t.jsx(g,{...L,children:re});const ne=t.jsx(we,{...Se,children:re});return k==="persistent"?t.jsx(g,{...L,children:ne}):t.jsx(Y,{..._,children:ne})}),St=be({themeId:Oe}),Pt=S([t.jsx("path",{d:"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},"0"),t.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),Et=S(t.jsx("path",{d:"M10.85 12.65h2.3L12 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9z"})),Ct=S(t.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),It=S(t.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"})),Mt=S(t.jsx("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"})),zt=S(t.jsx("path",{d:"m12 5.69 5 4.5V18h-2v-6H9v6H7v-7.81zM12 3 2 12h3v8h6v-6h2v6h6v-8h3z"})),Tt=S(t.jsx("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3z"})),Dt=S([t.jsx("path",{d:"M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.04 10 9c0 3.31-2.69 6-6 6h-1.77c-.28 0-.5.22-.5.5 0 .12.05.23.13.33.41.47.64 1.06.64 1.67 0 1.38-1.12 2.5-2.5 2.5m0-18c-4.41 0-8 3.59-8 8s3.59 8 8 8c.28 0 .5-.22.5-.5 0-.16-.08-.28-.14-.35-.41-.46-.63-1.05-.63-1.65 0-1.38 1.12-2.5 2.5-2.5H16c2.21 0 4-1.79 4-4 0-3.86-3.59-7-8-7"},"0"),t.jsx("circle",{cx:"6.5",cy:"11.5",r:"1.5"},"1"),t.jsx("circle",{cx:"9.5",cy:"7.5",r:"1.5"},"2"),t.jsx("circle",{cx:"14.5",cy:"7.5",r:"1.5"},"3"),t.jsx("circle",{cx:"17.5",cy:"11.5",r:"1.5"},"4")]);function G(e){return t.jsxs(Ve,{...e,viewBox:"0 0 24 24",sx:{fill:"none",...e.sx},children:[t.jsx("rect",{x:"3.25",y:"4.75",width:"17.5",height:"14.5",rx:"2.25",stroke:"currentColor",strokeWidth:"1.5"}),t.jsx("line",{x1:"8.5",y1:"5",x2:"8.5",y2:"19",stroke:"currentColor",strokeWidth:"1.5"})]})}const Rt={light:"dark",dark:"auto",auto:"light"},ie={light:"Light mode (click for dark)",dark:"Dark mode (click for auto)",auto:"Auto mode (follows OS, click for light)"};function Bt(){const{mode:e,userChoice:r,setMode:n,allowUserToggle:o}=Ue();if(!o)return null;const s=r??e,a=Rt[s],i=s==="auto"?Et:s==="dark"?Ge:Je;return t.jsx(F,{title:ie[s],children:t.jsx(V,{"aria-label":ie[s],onClick:()=>n(a),size:"small",children:t.jsx(i,{fontSize:"small"})})})}function K({label:e,onClick:r}){return t.jsx(Fe,{clickable:!0,onClick:r,label:e,size:"small","aria-label":`Navigate to ${e}`,sx:n=>({backgroundColor:"background.paper",color:"text.primary",fontWeight:500,fontSize:"0.875rem",height:32,cursor:"pointer",borderRadius:"4px",maxWidth:320,"& .MuiChip-label":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},"&:hover":{backgroundColor:n.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"grey.100"}})})}function Lt(){const e=he(),r=e["*"],n=q();return!e.environmentName&&!e.packageName&&!r?null:t.jsx(f,{sx:{display:"flex",alignItems:"center",minWidth:0},children:t.jsxs(ut,{"aria-label":"breadcrumb",separator:t.jsx(Ct,{sx:{fontSize:14,color:"text.secondary"}}),children:[e.environmentName&&t.jsx(K,{label:e.environmentName,onClick:o=>n(`/${e.environmentName}/`,o)}),e.packageName&&t.jsx(K,{label:e.packageName,onClick:o=>n(`/${e.environmentName}/${e.packageName}/`,o)}),r&&t.jsx(K,{label:r,onClick:o=>n(`/${e.environmentName}/${e.packageName}/${r}`,o)})]})})}const Ht=260,$t=64;function ke({isCollapsed:e,onToggleCollapse:r,logoHeader:n}){return t.jsxs(f,{sx:{height:"100dvh",width:e?$t:Ht,flexShrink:0,display:"flex",flexDirection:"column",backgroundColor:"background.paper",transition:"width 0.2s cubic-bezier(0.4, 0, 0.2, 1)",overflow:"hidden"},children:[t.jsx(Nt,{isCollapsed:e,onToggleCollapse:r,logoHeader:n}),t.jsxs(f,{sx:{flex:1,overflowY:"auto",overflowX:"hidden",py:1},children:[t.jsx(At,{isCollapsed:e}),t.jsx(Wt,{isCollapsed:e}),t.jsx(Ot,{isCollapsed:e})]}),t.jsx(Vt,{isCollapsed:e})]})}function Nt({isCollapsed:e,onToggleCollapse:r,logoHeader:n}){const o=q();return n?t.jsxs(f,{sx:{height:56,display:"flex",alignItems:"center",justifyContent:"space-between",px:e?0:2,flexShrink:0},children:[n,t.jsx(V,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(G,{fontSize:"small"})})]}):t.jsxs(f,{sx:{minHeight:56,display:"flex",flexDirection:e?"column":"row",alignItems:"center",justifyContent:e?"center":"space-between",gap:e?.5:0,py:e?1:0,px:e?0:2,flexShrink:0},children:[t.jsxs(f,{onClick:s=>o("/",s),sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer",minWidth:0},children:[t.jsx(f,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:24,height:24,flexShrink:0}}),!e&&t.jsx(U,{variant:"subtitle1",sx:{color:"text.primary",fontWeight:500,letterSpacing:"-0.025em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"Malloy Publisher"})]}),t.jsx(F,{title:e?"Expand sidebar":"Collapse sidebar",placement:"right",children:t.jsx(V,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(G,{fontSize:"small"})})})]})}function At({isCollapsed:e}){const n=xe().pathname==="/";return t.jsx(Q,{sx:{py:0},children:t.jsx(ee,{icon:t.jsx(zt,{fontSize:"small"}),label:"Home",to:"/",selected:n,isCollapsed:e})})}function Wt({isCollapsed:e}){const{apiClients:r}=Qe(),n=he(),{data:o}=Xe({queryKey:["environments"],queryFn:()=>r.environments.listEnvironments()}),s=o?.data??[];return s.length===0?null:t.jsxs(f,{sx:{mt:1},children:[!e&&t.jsx(U,{variant:"caption",sx:{display:"block",px:3,py:1,color:"text.secondary",fontWeight:500,textTransform:"uppercase",fontSize:"0.6875rem",letterSpacing:"0.5px"},children:"Environments"}),t.jsx(Q,{sx:{py:0},children:s.map(a=>{const i=a.name??"";return t.jsx(ee,{icon:t.jsx(Mt,{fontSize:"small"}),label:i,to:`/${i}`,selected:n.environmentName===i,isCollapsed:e},i)})})]})}function Ot({isCollapsed:e}){const n=xe().pathname.startsWith("/settings/theme");return t.jsxs(f,{sx:{mt:1},children:[!e&&t.jsx(U,{variant:"caption",sx:{display:"block",px:3,py:1,color:"text.secondary",fontWeight:500,textTransform:"uppercase",fontSize:"0.6875rem",letterSpacing:"0.5px"},children:"Settings"}),t.jsx(Q,{sx:{py:0},children:t.jsx(ee,{icon:t.jsx(Dt,{fontSize:"small"}),label:"Visualization theme",to:"/settings/theme",selected:n,isCollapsed:e})})]})}function Vt({isCollapsed:e}){const r=[{label:"Malloy Docs",href:ae.docsHome,icon:t.jsx(Pt,{fontSize:"small"}),external:!0},{label:"Publisher Docs",href:ae.publishing,icon:t.jsx(Tt,{fontSize:"small"}),external:!0},{label:"Publisher API",href:"/api-doc.html",icon:t.jsx(It,{fontSize:"small"}),external:!1}];return t.jsx(Q,{sx:{py:1},children:r.map(n=>t.jsx(Ut,{label:n.label,href:n.href,icon:n.icon,external:n.external,isCollapsed:e},n.label))})}function ee({icon:e,label:r,to:n,selected:o,isCollapsed:s}){const a=q(),i=t.jsxs(fe,{selected:o,onClick:c=>a(n,c),sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(me,{sx:{minWidth:s?0:36,justifyContent:"center",color:o?"text.primary":"text.secondary"},children:e}),!s&&t.jsx(ge,{primary:r,primaryTypographyProps:{variant:"body2",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(F,{title:r,placement:"right",children:t.jsx(f,{children:i})}):i}function Ut({label:e,href:r,icon:n,external:o,isCollapsed:s}){const a=t.jsxs(fe,{component:"a",href:r,target:o?"_blank":void 0,rel:o?"noopener noreferrer":void 0,sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(me,{sx:{minWidth:s?0:36,justifyContent:"center",color:"text.secondary"},children:n}),!s&&t.jsx(ge,{primary:e,primaryTypographyProps:{variant:"body2",sx:{color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(F,{title:e,placement:"right",children:t.jsx(f,{children:a})}):a}function Ft({open:e,onClose:r,logoHeader:n}){return t.jsx(wt,{anchor:"left",open:e,onClose:r,ModalProps:{keepMounted:!0},sx:{display:{xs:"block",md:"none"},"& .MuiDrawer-paper":{boxSizing:"border-box",width:260}},children:t.jsx(ke,{isCollapsed:!1,onToggleCollapse:r,logoHeader:n})})}function Yt({headerProps:e}){const r=Z(),n=St(r.breakpoints.up("md")),[o,s]=u.useState(!1),[a,i]=u.useState(!1);return u.useEffect(()=>{n&&o&&s(!1)},[n,o]),t.jsxs(f,{sx:{height:"100dvh",display:"flex",flexDirection:"row",bgcolor:"background.default"},children:[n&&t.jsx(ke,{isCollapsed:a,onToggleCollapse:()=>i(c=>!c),logoHeader:e?.logoHeader}),t.jsxs(f,{component:"main",sx:{flex:1,display:"flex",flexDirection:"column",minWidth:0},children:[t.jsxs(f,{sx:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",height:Ye.headerHeight,px:{xs:1,md:3},backgroundColor:"background.default"},children:[t.jsx(f,{sx:{display:{xs:"flex",md:"none"},alignItems:"center",mr:1},children:t.jsx(V,{size:"small",onClick:()=>s(!0),"aria-label":"Open navigation",children:t.jsx(G,{fontSize:"small"})})}),t.jsx(f,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:t.jsx(Lt,{})}),t.jsxs(f,{id:"header-actions-portal",sx:{display:"flex",alignItems:"center",flexShrink:0,gap:1},children:[t.jsx(Bt,{}),e?.endCap]})]}),t.jsx(f,{sx:{flex:1,overflow:"auto",minWidth:320,minHeight:0},children:t.jsx(u.Suspense,{fallback:t.jsx(Ke,{}),children:t.jsx(_e,{})})})]}),t.jsx(Ft,{open:o,onClose:()=>s(!1),logoHeader:e?.logoHeader})]})}export{Yt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{J as r,
|
|
1
|
+
import{J as r,T as t,j as e,a3 as c,ac as o}from"./index-O-tznXBH.js";function m(){const{environmentName:a,packageName:n}=r(),s=t();if(a)if(n){const i=c({environmentName:a,packageName:n});return e.jsx(o,{onClickPackageFile:s,resourceUri:i})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing package name"})});else return e.jsx("div",{children:e.jsx("h2",{children:"Missing environment name"})})}export{m as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a0 as U,
|
|
1
|
+
import{a0 as U,T as S,a1 as P,N as k,r as p,j as e,K as r,a2 as $,a3 as N,a4 as C,J as w,Q as W,a5 as O,a6 as I,a7 as F,a8 as L,l as b,a9 as j,aa as R}from"./index-O-tznXBH.js";function M({environmentName:a,packageName:n,dashboardName:v}){const[u]=U(),h=S(),d=P(),i=k(),y=p.useMemo(()=>Object.fromEntries(u.entries()),[u]),c=p.useRef(new Set),x=p.useCallback((s,m)=>{const l=new Set([...m,...c.current]);c.current=new Set([...c.current,...Object.keys(s),...m]);const o=new URLSearchParams(i.search);for(const t of l)Object.prototype.hasOwnProperty.call(s,t)||o.delete(t);for(const[t,f]of Object.entries(s))o.set(t,f);d({search:o.toString(),hash:i.hash},{replace:!0})},[d,i]),g=p.useCallback((s,m)=>{const l=new URLSearchParams(s.givens).toString(),o=encodeURIComponent(a),t=encodeURIComponent(n),f=encodeURIComponent(s.dashboard);h(`/${o}/${t}/dashboards/${f}`+(l?`?${l}`:""),m)},[h,a,n]);return e.jsx(r,{sx:{p:3,maxWidth:1600,mx:"auto"},children:e.jsx($,{resourceUri:N({environmentName:a,packageName:n}),dashboard:v,givens:y,onGivensChange:x,onNavigate:g,maxResultSize:1024*1024})})}function G({environmentName:a,packageName:n,notebookPath:v}){const[u]=U(),h=S(),d=P(),i=k(),y=p.useMemo(()=>Object.fromEntries(u.entries()),[u]),c=p.useRef(new Set),x=p.useCallback((s,m)=>{const l=new Set([...m,...c.current]);c.current=new Set([...c.current,...Object.keys(s),...m]);const o=new URLSearchParams(i.search);for(const t of l)Object.prototype.hasOwnProperty.call(s,t)||o.delete(t);for(const[t,f]of Object.entries(s))o.set(t,f);d({search:o.toString(),hash:i.hash},{replace:!0})},[d,i]),g=p.useCallback((s,m)=>{const l=new URLSearchParams(s.givens).toString(),o=encodeURIComponent(a),t=encodeURIComponent(n),f=encodeURIComponent(s.dashboard);h(`/${o}/${t}/dashboards/${f}`+(l?`?${l}`:""),m)},[h,a,n]);return e.jsx(r,{sx:{p:3,maxWidth:1200,mx:"auto"},children:e.jsx(C,{resourceUri:N({environmentName:a,packageName:n,modelPath:v}),maxResultSize:1024*1024,givens:y,onGivensChange:x,onNavigate:h,onDrillNavigate:g})})}function A(){const a=w(),n=a["*"],{search:v,hash:u}=k(),{server:h}=W();if(!a.environmentName)return e.jsx("div",{children:e.jsx("h2",{children:"Missing environment name"})});if(!a.packageName)return e.jsx("div",{children:e.jsx("h2",{children:"Missing package name"})});if(n?.startsWith("pages/")&&!n.endsWith(".malloy")&&!n.endsWith(".malloynb")){const x=`data-apps/${n.slice(6)}`,g=encodeURIComponent(a.environmentName),s=encodeURIComponent(a.packageName);return e.jsx(O,{to:`/${g}/${s}/${x}${v}${u}`,replace:!0})}const d={p:3,maxWidth:1200,mx:"auto"};if(n?.startsWith("dashboards/")&&!n.endsWith(".malloy")&&!n.endsWith(".malloynb"))return e.jsx(M,{environmentName:a.environmentName,packageName:a.packageName,dashboardName:n.slice(11)});if(n?.startsWith("data-apps/")&&!n.endsWith(".malloy")&&!n.endsWith(".malloynb")){const x=n.slice(10),g=N({environmentName:a.environmentName,packageName:a.packageName,modelPath:x});return e.jsx(I,{resourceUri:g})}const i=N({environmentName:a.environmentName,packageName:a.packageName,modelPath:n});if(n?.endsWith(".malloy"))return e.jsx(r,{sx:d,children:e.jsx(F,{resourceUri:i,runOnDemand:!0,maxResultSize:512*1024})});if(n?.endsWith(".malloynb"))return e.jsx(G,{environmentName:a.environmentName,packageName:a.packageName,notebookPath:n});const y=/\.[^./]+$/.test(n??""),c=L({server:h,environmentName:a.environmentName,packageName:a.packageName,path:n??""});return e.jsxs(r,{sx:d,children:[e.jsx(b,{variant:"h6",sx:{fontWeight:600},children:"Nothing to open at this path"}),e.jsxs(b,{variant:"body2",color:"text.secondary",sx:{mt:1},children:[e.jsx(r,{component:"span",sx:{fontFamily:j},children:n})," ","does not name a"," ",e.jsx(r,{component:"span",sx:{fontFamily:j},children:".malloy"})," ","or"," ",e.jsx(r,{component:"span",sx:{fontFamily:j},children:".malloynb"})," ","file in package"," ",e.jsx(r,{component:"span",sx:{fontFamily:j},children:a.packageName}),". This address opens"," ",e.jsx(r,{component:"span",sx:{fontFamily:j},children:".malloy"})," ","and"," ",e.jsx(r,{component:"span",sx:{fontFamily:j},children:".malloynb"})," ","files."]}),y&&e.jsxs(b,{variant:"body2",color:"text.secondary",sx:{mt:1},children:["A file from the package's"," ",e.jsx(r,{component:"span",sx:{fontFamily:j},children:"public/"})," ","directory is served at ",e.jsx(R,{href:c,children:c}),"."]}),e.jsxs(b,{variant:"body2",color:"text.secondary",sx:{mt:1},children:[e.jsxs(R,{href:`/${encodeURIComponent(a.environmentName)}/${encodeURIComponent(a.packageName)}`,children:["Back to ",a.packageName]})," ","lists this package's models, notebooks, and data apps."]})]})}export{A as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{J as r,
|
|
1
|
+
import{J as r,T as t,j as e,a3 as c,ab as o}from"./index-O-tznXBH.js";function l(){const{environmentName:a,packageName:n}=r(),s=t();if(a)if(n){const i=c({environmentName:a,packageName:n});return e.jsx(o,{onClickPackageFile:s,resourceUri:i})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing package name"})});else return e.jsx("div",{children:e.jsx("h2",{children:"Missing environment name"})})}export{l as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ae as o,j as r,af as s,ag as n,K as t,
|
|
1
|
+
import{ae as o,j as r,af as s,ag as n,K as t,l as a}from"./index-O-tznXBH.js";function x(){const e=o();return console.error(e),r.jsx(s,{maxWidth:"lg",component:"main",sx:{display:"flex",flexDirection:"column",my:2,gap:0},children:r.jsxs(n,{sx:{m:"auto",flexDirection:"column"},children:[r.jsx(t,{sx:{height:"300px"}}),r.jsx("img",{src:"/error.png"}),r.jsx(a,{variant:"subtitle1",children:"An unexpected error occurred"})]})})}export{x as default};
|