@malloy-publisher/server 0.11.1 → 0.11.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.
@@ -164831,7 +164831,7 @@ var init_telemetry = __esm(() => {
164831
164831
  });
164832
164832
 
164833
164833
  // package.json
164834
- var version = "0.11.1";
164834
+ var version = "0.11.2";
164835
164835
  var init_package = () => {};
164836
164836
 
164837
164837
  // src/version.ts
package/dist/server.mjs CHANGED
@@ -164832,7 +164832,7 @@ var init_telemetry = __esm(() => {
164832
164832
  });
164833
164833
 
164834
164834
  // package.json
164835
- var version = "0.11.1";
164835
+ var version = "0.11.2";
164836
164836
  var init_package = () => {};
164837
164837
 
164838
164838
  // src/version.ts
@@ -376106,6 +376106,110 @@ var init_watch_mode_controller = __esm(() => {
376106
376106
  MODEL_EXTS = new Set([".malloy", ".malloynb", ".md"]);
376107
376107
  });
376108
376108
 
376109
+ // src/legacy_package_name.ts
376110
+ function splitLegacyPackageName(name) {
376111
+ if (typeof name !== "string")
376112
+ return;
376113
+ const at2 = name.lastIndexOf(LEGACY_VERSION_DELIMITER);
376114
+ if (at2 <= 0)
376115
+ return;
376116
+ const versionId = name.slice(at2 + LEGACY_VERSION_DELIMITER.length);
376117
+ if (!isSemver(versionId))
376118
+ return;
376119
+ return { packageName: name.slice(0, at2), versionId };
376120
+ }
376121
+ function recoverVersionFromName(packageName, versionId) {
376122
+ const unchanged = { packageName, versionId, recovered: false };
376123
+ if (!isVersioningEnabled())
376124
+ return unchanged;
376125
+ const split = splitLegacyPackageName(packageName);
376126
+ if (!split)
376127
+ return unchanged;
376128
+ const unnamed = versionId === undefined || versionId === null || versionId === "" || versionId === LATEST_VERSION_ALIAS;
376129
+ if (!unnamed && versionId !== split.versionId)
376130
+ return unchanged;
376131
+ warnOnce(packageName, split);
376132
+ return { ...split, recovered: true };
376133
+ }
376134
+ function legacyPackageNameMiddleware() {
376135
+ return (req, _res, next) => {
376136
+ const queryAt = req.url.indexOf("?");
376137
+ const pathname = queryAt < 0 ? req.url : req.url.slice(0, queryAt);
376138
+ const search = queryAt < 0 ? "" : req.url.slice(queryAt);
376139
+ const match = PACKAGE_PATH.exec(pathname);
376140
+ if (!match)
376141
+ return next();
376142
+ let segment;
376143
+ try {
376144
+ segment = decodeURIComponent(match[3]);
376145
+ } catch {
376146
+ return next();
376147
+ }
376148
+ const apiPrefix = match[1] ?? "";
376149
+ const recovered = recoverVersionFromName(segment, apiPrefix === "" ? undefined : req.query.versionId);
376150
+ if (!recovered.recovered)
376151
+ return next();
376152
+ const environment = match[2];
376153
+ const rest = match[4] ?? "";
376154
+ const pkg = encodeURIComponent(recovered.packageName);
376155
+ const version2 = encodeURIComponent(recovered.versionId);
376156
+ const packagePath = pathname.slice(0, pathname.length - match[3].length - rest.length);
376157
+ let path25 = `${packagePath}${pkg}${rest}`;
376158
+ const versionsOf = `${apiPrefix}/environments/${environment}/packages/${pkg}/versions/${version2}`;
376159
+ if (rest === "" && req.method === "DELETE") {
376160
+ path25 = versionsOf;
376161
+ } else if (rest === "" && req.method === "PATCH") {
376162
+ req.method = "PUT";
376163
+ path25 = `${versionsOf}/manifest`;
376164
+ }
376165
+ const params = new URLSearchParams(search.slice(1));
376166
+ params.set("versionId", recovered.versionId);
376167
+ req.url = `${path25}?${params.toString()}`;
376168
+ req.query.versionId = recovered.versionId;
376169
+ req[RECOVERED_VERSION] = recovered.versionId;
376170
+ next();
376171
+ };
376172
+ }
376173
+ function legacyPackageNameBodyMiddleware() {
376174
+ return (req, _res, next) => {
376175
+ const body = req.body;
376176
+ if (!body || typeof body !== "object" || Array.isArray(body)) {
376177
+ return next();
376178
+ }
376179
+ if (req.method === "POST" && PACKAGE_COLLECTION_PATH.test(req.path)) {
376180
+ const recovered = recoverVersionFromName(body.name, undefined);
376181
+ if (recovered.recovered)
376182
+ body.name = recovered.packageName;
376183
+ return next();
376184
+ }
376185
+ const version2 = req[RECOVERED_VERSION];
376186
+ if (version2 !== undefined && (body.versionId === undefined || body.versionId === null || body.versionId === "")) {
376187
+ body.versionId = version2;
376188
+ }
376189
+ next();
376190
+ };
376191
+ }
376192
+ function warnOnce(combined, split) {
376193
+ if (warned.has(combined))
376194
+ return;
376195
+ if (warned.size >= WARNED_CAP)
376196
+ warned.clear();
376197
+ warned.add(combined);
376198
+ logger.warn(`versionId recovered from the package name ${combined}: package ` + `${split.packageName}, version ${split.versionId}. Pass the package ` + `name and versionId; reading the version from the name will be removed.`);
376199
+ }
376200
+ var LEGACY_VERSION_DELIMITER = "___", PACKAGE_PATH, PACKAGE_COLLECTION_PATH, RECOVERED_VERSION, warned, WARNED_CAP = 1e4;
376201
+ var init_legacy_package_name = __esm(() => {
376202
+ init_config();
376203
+ init_constants();
376204
+ init_logger();
376205
+ init_semver();
376206
+ init_version_service();
376207
+ PACKAGE_PATH = new RegExp(`^(${API_PREFIX})?/(?:environments|projects)/([^/]+)/packages/([^/]+)(/.*)?$`);
376208
+ PACKAGE_COLLECTION_PATH = new RegExp(`^${API_PREFIX}/(?:environments|projects)/[^/]+/packages/?$`);
376209
+ RECOVERED_VERSION = Symbol("recoveredVersionId");
376210
+ warned = new Set;
376211
+ });
376212
+
376109
376213
  // src/heap_check.ts
376110
376214
  import * as v8 from "v8";
376111
376215
  function installHeapGauges() {
@@ -409260,6 +409364,7 @@ var init_main_server = __esm(async () => {
409260
409364
  init_health();
409261
409365
  init_instrumentation();
409262
409366
  init_instrumentation();
409367
+ init_legacy_package_name();
409263
409368
  init_logger();
409264
409369
  init_config();
409265
409370
  init_retrieval_config();
@@ -409380,6 +409485,7 @@ var init_main_server = __esm(async () => {
409380
409485
  themeStore = new ThemeStore(environmentStore.storageManager, SERVER_ROOT);
409381
409486
  themeController = new ThemeController(themeStore, SERVER_ROOT);
409382
409487
  mcpApp = createMcpApp(environmentStore);
409488
+ app.use(legacyPackageNameMiddleware());
409383
409489
  registerDataAppStaticRoutes(app, environmentStore, path29.join(path29.dirname(__filename_esm), "runtime", "publisher.js"));
409384
409490
  if (!isDevelopment) {
409385
409491
  app.use("/", import_express3.default.static(ROOT));
@@ -409398,6 +409504,7 @@ var init_main_server = __esm(async () => {
409398
409504
  credentials: true
409399
409505
  }));
409400
409506
  app.use(import_body_parser3.default.json({ limit: "1mb" }));
409507
+ app.use(legacyPackageNameBodyMiddleware());
409401
409508
  try {
409402
409509
  const metricsHandler = getPrometheusMetricsHandler();
409403
409510
  app.get("/metrics", metricsHandler);
package/package.json CHANGED
@@ -19,7 +19,7 @@
19
19
  "snowflake"
20
20
  ],
21
21
  "homepage": "https://docs.malloydata.dev/documentation/user_guides/publishing/mcp_agents",
22
- "version": "0.11.1",
22
+ "version": "0.11.2",
23
23
  "main": "dist/server.mjs",
24
24
  "bin": {
25
25
  "malloy-publisher": "dist/server.mjs"