@fleetless/sdk 4.4.0-next.1 → 4.4.0
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/CHANGELOG.md +3 -1
- package/dist/index.cjs +28 -28
- package/dist/index.js +28 -28
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,9 +4,11 @@ All notable changes to `@fleetless/sdk`. The format follows Keep a Changelog; th
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [4.4.0] — 2026-10-04
|
|
8
|
+
|
|
7
9
|
### Added
|
|
8
10
|
|
|
9
|
-
- **`oidcErrorFromCallback` recognises `plan_limit`**: a federated sign-in refused because the org's plan has no room for another app user. Before, the cloud sent `quota_exceeded` for it; that code now means only the `max_end_users` protection ceiling. Built against `@fleetless/contracts` 6.2.0
|
|
11
|
+
- **`oidcErrorFromCallback` recognises `plan_limit`**: a federated sign-in refused because the org's plan has no room for another app user. Before, the cloud sent `quota_exceeded` for it; that code now means only the `max_end_users` protection ceiling. Built against `@fleetless/contracts` 6.2.0.
|
|
10
12
|
|
|
11
13
|
### Compatibility
|
|
12
14
|
|
package/dist/index.cjs
CHANGED
|
@@ -442,7 +442,7 @@ function createAssetsApi(http) {
|
|
|
442
442
|
};
|
|
443
443
|
}
|
|
444
444
|
|
|
445
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
445
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/common.js
|
|
446
446
|
var import_zod = require("zod");
|
|
447
447
|
var SLUG_RULE = "A name is lower-case: it starts with a letter, continues with letters and digits, and joins further words with a single underscore \u2014 `battery_voltage`. Capitals, dashes, dots, spaces, a leading digit and a doubled or trailing underscore are all refused.";
|
|
448
448
|
var slug = import_zod.z.string().min(2).max(63).regex(/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/, SLUG_RULE);
|
|
@@ -473,7 +473,7 @@ var applyError = import_zod.z.object({
|
|
|
473
473
|
details: import_zod.z.record(import_zod.z.string(), import_zod.z.unknown()).optional()
|
|
474
474
|
});
|
|
475
475
|
|
|
476
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
476
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/mcp.js
|
|
477
477
|
var import_zod2 = require("zod");
|
|
478
478
|
function mcpAppEndpointPath(appIdentifier2) {
|
|
479
479
|
return `/mcp/${appIdentifier2}`;
|
|
@@ -522,10 +522,10 @@ var mcpRolePreviewResponse = import_zod2.z.object({
|
|
|
522
522
|
});
|
|
523
523
|
var MCP_ASSET_LINK_TTL_MS = 15 * 60 * 1e3;
|
|
524
524
|
|
|
525
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
525
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/protocol.js
|
|
526
526
|
var import_zod8 = require("zod");
|
|
527
527
|
|
|
528
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
528
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/assets.js
|
|
529
529
|
var import_zod3 = require("zod");
|
|
530
530
|
var assetKind = import_zod3.z.enum(["urdf", "mesh", "texture"]);
|
|
531
531
|
var asset = import_zod3.z.object({
|
|
@@ -845,10 +845,10 @@ var assetSyncBusyDetails = import_zod3.z.object({
|
|
|
845
845
|
started_at_ms: import_zod3.z.number().int().nonnegative()
|
|
846
846
|
});
|
|
847
847
|
|
|
848
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
848
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/config.js
|
|
849
849
|
var import_zod5 = require("zod");
|
|
850
850
|
|
|
851
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
851
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/alerts.js
|
|
852
852
|
var import_zod4 = require("zod");
|
|
853
853
|
var alertRowCondition = import_zod4.z.discriminatedUnion("kind", [
|
|
854
854
|
import_zod4.z.strictObject({
|
|
@@ -918,7 +918,7 @@ var putDatapointDisplayRequest = import_zod4.z.object({
|
|
|
918
918
|
y_max: import_zod4.z.number().finite().nullable()
|
|
919
919
|
}).strict();
|
|
920
920
|
|
|
921
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
921
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/config.js
|
|
922
922
|
var RTSP_URL_RULE = "The URL has to begin with `rtsp://` or `rtsps://` \u2014 `rtsp://cam-1.plant.local/stream1`. No other scheme is accepted: the bridge opens this with a library that would equally honour `file:`.";
|
|
923
923
|
var MJPEG_URL_RULE = "The URL has to begin with `http://` or `https://` \u2014 `http://cam-1.plant.local/video.mjpg`. No other scheme is accepted: the bridge opens this with a library that would equally serve `file:`.";
|
|
924
924
|
var DEVICE_PATH_RULE = "A capture device is a path under `/dev/`, and the character straight after it is a letter or a digit \u2014 `/dev/video0`, or a stable `/dev/v4l/by-id/...` symlink. Nothing outside `/dev/` is accepted: the string reaches OpenCV, which would as happily open an ordinary file.";
|
|
@@ -2010,7 +2010,7 @@ var configState = import_zod5.z.object({
|
|
|
2010
2010
|
applied_errors: import_zod5.z.array(applyError).nullable()
|
|
2011
2011
|
});
|
|
2012
2012
|
|
|
2013
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
2013
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/introspection.js
|
|
2014
2014
|
var import_zod6 = require("zod");
|
|
2015
2015
|
var rosGraphEntry = import_zod6.z.object({
|
|
2016
2016
|
name: rosName,
|
|
@@ -2049,7 +2049,7 @@ var typeDefinition = import_zod6.z.discriminatedUnion("kind", [
|
|
|
2049
2049
|
})
|
|
2050
2050
|
]);
|
|
2051
2051
|
|
|
2052
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
2052
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/jobs.js
|
|
2053
2053
|
var import_zod7 = require("zod");
|
|
2054
2054
|
var jobState = import_zod7.z.enum(["running", "unknown", "succeeded", "failed", "cancelled", "lost"]);
|
|
2055
2055
|
var reportedJobState = jobState.exclude(["unknown"]);
|
|
@@ -2286,7 +2286,7 @@ var jobRunSummary = import_zod7.z.object({
|
|
|
2286
2286
|
since_ms: import_zod7.z.number().int().nonnegative()
|
|
2287
2287
|
});
|
|
2288
2288
|
|
|
2289
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
2289
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/protocol.js
|
|
2290
2290
|
var DAY_MS = 24 * 60 * 60 * 1e3;
|
|
2291
2291
|
var MAX_PATIENCE_MS = 12e4;
|
|
2292
2292
|
var MIN_PATIENCE_MS = 1e3;
|
|
@@ -2684,11 +2684,11 @@ var bridgeCameraState = import_zod8.z.object({
|
|
|
2684
2684
|
request_id: import_zod8.z.string().min(1).max(64).nullable()
|
|
2685
2685
|
});
|
|
2686
2686
|
|
|
2687
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
2687
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/config-issues.js
|
|
2688
2688
|
var EXPOSURE_SECTIONS = ["datapoints", "actions", "services", "publishers", "cameras"];
|
|
2689
2689
|
var EXPOSURE_SECTION_NAMES = new Set(EXPOSURE_SECTIONS);
|
|
2690
2690
|
|
|
2691
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
2691
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/rest.js
|
|
2692
2692
|
var import_zod9 = require("zod");
|
|
2693
2693
|
var robot = import_zod9.z.object({
|
|
2694
2694
|
id: import_zod9.z.uuid().meta({
|
|
@@ -3453,13 +3453,13 @@ var slugUsageResponse = import_zod9.z.object({
|
|
|
3453
3453
|
alert_count: import_zod9.z.number().int().nonnegative()
|
|
3454
3454
|
});
|
|
3455
3455
|
|
|
3456
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3456
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/realtime.js
|
|
3457
3457
|
var import_zod14 = require("zod");
|
|
3458
3458
|
|
|
3459
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3459
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/client-auth.js
|
|
3460
3460
|
var import_zod13 = require("zod");
|
|
3461
3461
|
|
|
3462
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3462
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/apps.js
|
|
3463
3463
|
var import_zod10 = require("zod");
|
|
3464
3464
|
var appIdentifier = slug;
|
|
3465
3465
|
var app = import_zod10.z.object({
|
|
@@ -3682,10 +3682,10 @@ var rolePermissions = import_zod10.z.object({
|
|
|
3682
3682
|
})
|
|
3683
3683
|
});
|
|
3684
3684
|
|
|
3685
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3685
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/app-users.js
|
|
3686
3686
|
var import_zod12 = require("zod");
|
|
3687
3687
|
|
|
3688
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3688
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/identity.js
|
|
3689
3689
|
var import_zod11 = require("zod");
|
|
3690
3690
|
var password = import_zod11.z.string().min(12).max(256);
|
|
3691
3691
|
var USER_DISPLAY_NAME_MAX = 120;
|
|
@@ -3903,7 +3903,7 @@ var recoveryCodesResponse = import_zod11.z.object({
|
|
|
3903
3903
|
recovery_codes: recoveryCodesList.meta({ description: "The ten new recovery codes, lowercase, shown once. Every earlier code is void." })
|
|
3904
3904
|
});
|
|
3905
3905
|
|
|
3906
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3906
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/app-users.js
|
|
3907
3907
|
var APP_USER_DISPLAY_NAME_MAX = 120;
|
|
3908
3908
|
var providerSlug = import_zod12.z.string().max(40).regex(/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, "must be lowercase and hyphen-separated, starting with a letter");
|
|
3909
3909
|
var appUserStatus = import_zod12.z.enum(["pending_verification", "active", "blocked"]);
|
|
@@ -4214,7 +4214,7 @@ var mailOutcome = import_zod12.z.object({
|
|
|
4214
4214
|
})
|
|
4215
4215
|
});
|
|
4216
4216
|
|
|
4217
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4217
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/client-auth.js
|
|
4218
4218
|
var clientLoginRequest = import_zod13.z.object({
|
|
4219
4219
|
app_identifier: appIdentifier.meta({
|
|
4220
4220
|
description: "The app being logged in to: its globally unique, lowercase, underscore-separated identifier, chosen by the developer at creation. There is no organisation context at login, so this is what decides which app the credentials are checked for."
|
|
@@ -4455,7 +4455,7 @@ var clientIdentity = import_zod13.z.object({
|
|
|
4455
4455
|
})
|
|
4456
4456
|
});
|
|
4457
4457
|
|
|
4458
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4458
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/realtime.js
|
|
4459
4459
|
var clientAuth = import_zod14.z.object({
|
|
4460
4460
|
type: import_zod14.z.literal("auth"),
|
|
4461
4461
|
token: import_zod14.z.string().min(1)
|
|
@@ -4739,7 +4739,7 @@ var orgEventDropped = import_zod14.z.object({
|
|
|
4739
4739
|
dropped: import_zod14.z.number().int().positive()
|
|
4740
4740
|
}).strict();
|
|
4741
4741
|
|
|
4742
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4742
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/feedback.js
|
|
4743
4743
|
var import_zod15 = require("zod");
|
|
4744
4744
|
var FEEDBACK_KINDS = ["idea", "problem", "question", "other"];
|
|
4745
4745
|
var feedbackKind = import_zod15.z.enum(FEEDBACK_KINDS);
|
|
@@ -4764,7 +4764,7 @@ var feedbackResponse = import_zod15.z.object({
|
|
|
4764
4764
|
})
|
|
4765
4765
|
}).strict();
|
|
4766
4766
|
|
|
4767
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4767
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/client-robots.js
|
|
4768
4768
|
var import_zod16 = require("zod");
|
|
4769
4769
|
var clientRobotListItem = import_zod16.z.object({
|
|
4770
4770
|
...robot.shape,
|
|
@@ -4781,7 +4781,7 @@ var clientRobotListResponse = import_zod16.z.object({
|
|
|
4781
4781
|
})
|
|
4782
4782
|
});
|
|
4783
4783
|
|
|
4784
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4784
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/audit.js
|
|
4785
4785
|
var import_zod17 = require("zod");
|
|
4786
4786
|
var auditActor = import_zod17.z.object({
|
|
4787
4787
|
kind: import_zod17.z.enum(["developer", "end_user", "app_user", "server_key", "bridge", "fleetless"]),
|
|
@@ -4923,10 +4923,10 @@ var auditListResponse = import_zod17.z.object({
|
|
|
4923
4923
|
next_cursor: import_zod17.z.number().int().positive().nullable()
|
|
4924
4924
|
});
|
|
4925
4925
|
|
|
4926
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4926
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/errors.js
|
|
4927
4927
|
var import_zod19 = require("zod");
|
|
4928
4928
|
|
|
4929
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4929
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/plans.js
|
|
4930
4930
|
var import_zod18 = require("zod");
|
|
4931
4931
|
var planId = import_zod18.z.enum(["basic", "plus", "pro", "enterprise"]);
|
|
4932
4932
|
var planLimitKey = import_zod18.z.enum([
|
|
@@ -5207,7 +5207,7 @@ var adminPlanChangeRequest = import_zod18.z.object({
|
|
|
5207
5207
|
})
|
|
5208
5208
|
}).strict();
|
|
5209
5209
|
|
|
5210
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
5210
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/errors.js
|
|
5211
5211
|
var apiError = import_zod19.z.object({
|
|
5212
5212
|
code: import_zod19.z.string().min(1),
|
|
5213
5213
|
message: import_zod19.z.string().min(1),
|
|
@@ -5272,7 +5272,7 @@ var fileTooLargeDetails = import_zod19.z.object({
|
|
|
5272
5272
|
})
|
|
5273
5273
|
});
|
|
5274
5274
|
|
|
5275
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
5275
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/oauth.js
|
|
5276
5276
|
var import_zod20 = require("zod");
|
|
5277
5277
|
var oauthErrorCode = import_zod20.z.enum([
|
|
5278
5278
|
"invalid_request",
|
|
@@ -5512,7 +5512,7 @@ var oauthAuthorizeQuery = import_zod20.z.object({
|
|
|
5512
5512
|
description: "The authorization request an MCP client sends, per RFC 6749 \xA74.1.1 with mandatory PKCE. The handler reads it parameter by parameter rather than through one parse, because the answers differ: `client_id` and `redirect_uri` are refused flat, with no redirect, since until both are confirmed there is no trusted target to bounce a browser to, and everything after them is reported to the client's own callback as query parameters."
|
|
5513
5513
|
});
|
|
5514
5514
|
|
|
5515
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
5515
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/routes.js
|
|
5516
5516
|
var MCP_APP = MCP_APP_PATHS(":appIdentifier");
|
|
5517
5517
|
var APP_IDENTIFIER = {
|
|
5518
5518
|
name: "appIdentifier",
|
package/dist/index.js
CHANGED
|
@@ -410,7 +410,7 @@ function createAssetsApi(http) {
|
|
|
410
410
|
};
|
|
411
411
|
}
|
|
412
412
|
|
|
413
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
413
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/common.js
|
|
414
414
|
import { z } from "zod";
|
|
415
415
|
var SLUG_RULE = "A name is lower-case: it starts with a letter, continues with letters and digits, and joins further words with a single underscore \u2014 `battery_voltage`. Capitals, dashes, dots, spaces, a leading digit and a doubled or trailing underscore are all refused.";
|
|
416
416
|
var slug = z.string().min(2).max(63).regex(/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/, SLUG_RULE);
|
|
@@ -441,7 +441,7 @@ var applyError = z.object({
|
|
|
441
441
|
details: z.record(z.string(), z.unknown()).optional()
|
|
442
442
|
});
|
|
443
443
|
|
|
444
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
444
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/mcp.js
|
|
445
445
|
import { z as z2 } from "zod";
|
|
446
446
|
function mcpAppEndpointPath(appIdentifier2) {
|
|
447
447
|
return `/mcp/${appIdentifier2}`;
|
|
@@ -490,10 +490,10 @@ var mcpRolePreviewResponse = z2.object({
|
|
|
490
490
|
});
|
|
491
491
|
var MCP_ASSET_LINK_TTL_MS = 15 * 60 * 1e3;
|
|
492
492
|
|
|
493
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
493
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/protocol.js
|
|
494
494
|
import { z as z8 } from "zod";
|
|
495
495
|
|
|
496
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
496
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/assets.js
|
|
497
497
|
import { z as z3 } from "zod";
|
|
498
498
|
var assetKind = z3.enum(["urdf", "mesh", "texture"]);
|
|
499
499
|
var asset = z3.object({
|
|
@@ -813,10 +813,10 @@ var assetSyncBusyDetails = z3.object({
|
|
|
813
813
|
started_at_ms: z3.number().int().nonnegative()
|
|
814
814
|
});
|
|
815
815
|
|
|
816
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
816
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/config.js
|
|
817
817
|
import { z as z5 } from "zod";
|
|
818
818
|
|
|
819
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
819
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/alerts.js
|
|
820
820
|
import { z as z4 } from "zod";
|
|
821
821
|
var alertRowCondition = z4.discriminatedUnion("kind", [
|
|
822
822
|
z4.strictObject({
|
|
@@ -886,7 +886,7 @@ var putDatapointDisplayRequest = z4.object({
|
|
|
886
886
|
y_max: z4.number().finite().nullable()
|
|
887
887
|
}).strict();
|
|
888
888
|
|
|
889
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
889
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/config.js
|
|
890
890
|
var RTSP_URL_RULE = "The URL has to begin with `rtsp://` or `rtsps://` \u2014 `rtsp://cam-1.plant.local/stream1`. No other scheme is accepted: the bridge opens this with a library that would equally honour `file:`.";
|
|
891
891
|
var MJPEG_URL_RULE = "The URL has to begin with `http://` or `https://` \u2014 `http://cam-1.plant.local/video.mjpg`. No other scheme is accepted: the bridge opens this with a library that would equally serve `file:`.";
|
|
892
892
|
var DEVICE_PATH_RULE = "A capture device is a path under `/dev/`, and the character straight after it is a letter or a digit \u2014 `/dev/video0`, or a stable `/dev/v4l/by-id/...` symlink. Nothing outside `/dev/` is accepted: the string reaches OpenCV, which would as happily open an ordinary file.";
|
|
@@ -1978,7 +1978,7 @@ var configState = z5.object({
|
|
|
1978
1978
|
applied_errors: z5.array(applyError).nullable()
|
|
1979
1979
|
});
|
|
1980
1980
|
|
|
1981
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
1981
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/introspection.js
|
|
1982
1982
|
import { z as z6 } from "zod";
|
|
1983
1983
|
var rosGraphEntry = z6.object({
|
|
1984
1984
|
name: rosName,
|
|
@@ -2017,7 +2017,7 @@ var typeDefinition = z6.discriminatedUnion("kind", [
|
|
|
2017
2017
|
})
|
|
2018
2018
|
]);
|
|
2019
2019
|
|
|
2020
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
2020
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/jobs.js
|
|
2021
2021
|
import { z as z7 } from "zod";
|
|
2022
2022
|
var jobState = z7.enum(["running", "unknown", "succeeded", "failed", "cancelled", "lost"]);
|
|
2023
2023
|
var reportedJobState = jobState.exclude(["unknown"]);
|
|
@@ -2254,7 +2254,7 @@ var jobRunSummary = z7.object({
|
|
|
2254
2254
|
since_ms: z7.number().int().nonnegative()
|
|
2255
2255
|
});
|
|
2256
2256
|
|
|
2257
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
2257
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/protocol.js
|
|
2258
2258
|
var DAY_MS = 24 * 60 * 60 * 1e3;
|
|
2259
2259
|
var MAX_PATIENCE_MS = 12e4;
|
|
2260
2260
|
var MIN_PATIENCE_MS = 1e3;
|
|
@@ -2652,11 +2652,11 @@ var bridgeCameraState = z8.object({
|
|
|
2652
2652
|
request_id: z8.string().min(1).max(64).nullable()
|
|
2653
2653
|
});
|
|
2654
2654
|
|
|
2655
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
2655
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/config-issues.js
|
|
2656
2656
|
var EXPOSURE_SECTIONS = ["datapoints", "actions", "services", "publishers", "cameras"];
|
|
2657
2657
|
var EXPOSURE_SECTION_NAMES = new Set(EXPOSURE_SECTIONS);
|
|
2658
2658
|
|
|
2659
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
2659
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/rest.js
|
|
2660
2660
|
import { z as z9 } from "zod";
|
|
2661
2661
|
var robot = z9.object({
|
|
2662
2662
|
id: z9.uuid().meta({
|
|
@@ -3421,13 +3421,13 @@ var slugUsageResponse = z9.object({
|
|
|
3421
3421
|
alert_count: z9.number().int().nonnegative()
|
|
3422
3422
|
});
|
|
3423
3423
|
|
|
3424
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3424
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/realtime.js
|
|
3425
3425
|
import { z as z14 } from "zod";
|
|
3426
3426
|
|
|
3427
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3427
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/client-auth.js
|
|
3428
3428
|
import { z as z13 } from "zod";
|
|
3429
3429
|
|
|
3430
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3430
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/apps.js
|
|
3431
3431
|
import { z as z10 } from "zod";
|
|
3432
3432
|
var appIdentifier = slug;
|
|
3433
3433
|
var app = z10.object({
|
|
@@ -3650,10 +3650,10 @@ var rolePermissions = z10.object({
|
|
|
3650
3650
|
})
|
|
3651
3651
|
});
|
|
3652
3652
|
|
|
3653
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3653
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/app-users.js
|
|
3654
3654
|
import { z as z12 } from "zod";
|
|
3655
3655
|
|
|
3656
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3656
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/identity.js
|
|
3657
3657
|
import { z as z11 } from "zod";
|
|
3658
3658
|
var password = z11.string().min(12).max(256);
|
|
3659
3659
|
var USER_DISPLAY_NAME_MAX = 120;
|
|
@@ -3871,7 +3871,7 @@ var recoveryCodesResponse = z11.object({
|
|
|
3871
3871
|
recovery_codes: recoveryCodesList.meta({ description: "The ten new recovery codes, lowercase, shown once. Every earlier code is void." })
|
|
3872
3872
|
});
|
|
3873
3873
|
|
|
3874
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
3874
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/app-users.js
|
|
3875
3875
|
var APP_USER_DISPLAY_NAME_MAX = 120;
|
|
3876
3876
|
var providerSlug = z12.string().max(40).regex(/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, "must be lowercase and hyphen-separated, starting with a letter");
|
|
3877
3877
|
var appUserStatus = z12.enum(["pending_verification", "active", "blocked"]);
|
|
@@ -4182,7 +4182,7 @@ var mailOutcome = z12.object({
|
|
|
4182
4182
|
})
|
|
4183
4183
|
});
|
|
4184
4184
|
|
|
4185
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4185
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/client-auth.js
|
|
4186
4186
|
var clientLoginRequest = z13.object({
|
|
4187
4187
|
app_identifier: appIdentifier.meta({
|
|
4188
4188
|
description: "The app being logged in to: its globally unique, lowercase, underscore-separated identifier, chosen by the developer at creation. There is no organisation context at login, so this is what decides which app the credentials are checked for."
|
|
@@ -4423,7 +4423,7 @@ var clientIdentity = z13.object({
|
|
|
4423
4423
|
})
|
|
4424
4424
|
});
|
|
4425
4425
|
|
|
4426
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4426
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/realtime.js
|
|
4427
4427
|
var clientAuth = z14.object({
|
|
4428
4428
|
type: z14.literal("auth"),
|
|
4429
4429
|
token: z14.string().min(1)
|
|
@@ -4707,7 +4707,7 @@ var orgEventDropped = z14.object({
|
|
|
4707
4707
|
dropped: z14.number().int().positive()
|
|
4708
4708
|
}).strict();
|
|
4709
4709
|
|
|
4710
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4710
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/feedback.js
|
|
4711
4711
|
import { z as z15 } from "zod";
|
|
4712
4712
|
var FEEDBACK_KINDS = ["idea", "problem", "question", "other"];
|
|
4713
4713
|
var feedbackKind = z15.enum(FEEDBACK_KINDS);
|
|
@@ -4732,7 +4732,7 @@ var feedbackResponse = z15.object({
|
|
|
4732
4732
|
})
|
|
4733
4733
|
}).strict();
|
|
4734
4734
|
|
|
4735
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4735
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/client-robots.js
|
|
4736
4736
|
import { z as z16 } from "zod";
|
|
4737
4737
|
var clientRobotListItem = z16.object({
|
|
4738
4738
|
...robot.shape,
|
|
@@ -4749,7 +4749,7 @@ var clientRobotListResponse = z16.object({
|
|
|
4749
4749
|
})
|
|
4750
4750
|
});
|
|
4751
4751
|
|
|
4752
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4752
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/audit.js
|
|
4753
4753
|
import { z as z17 } from "zod";
|
|
4754
4754
|
var auditActor = z17.object({
|
|
4755
4755
|
kind: z17.enum(["developer", "end_user", "app_user", "server_key", "bridge", "fleetless"]),
|
|
@@ -4891,10 +4891,10 @@ var auditListResponse = z17.object({
|
|
|
4891
4891
|
next_cursor: z17.number().int().positive().nullable()
|
|
4892
4892
|
});
|
|
4893
4893
|
|
|
4894
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4894
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/errors.js
|
|
4895
4895
|
import { z as z19 } from "zod";
|
|
4896
4896
|
|
|
4897
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
4897
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/plans.js
|
|
4898
4898
|
import { z as z18 } from "zod";
|
|
4899
4899
|
var planId = z18.enum(["basic", "plus", "pro", "enterprise"]);
|
|
4900
4900
|
var planLimitKey = z18.enum([
|
|
@@ -5175,7 +5175,7 @@ var adminPlanChangeRequest = z18.object({
|
|
|
5175
5175
|
})
|
|
5176
5176
|
}).strict();
|
|
5177
5177
|
|
|
5178
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
5178
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/errors.js
|
|
5179
5179
|
var apiError = z19.object({
|
|
5180
5180
|
code: z19.string().min(1),
|
|
5181
5181
|
message: z19.string().min(1),
|
|
@@ -5240,7 +5240,7 @@ var fileTooLargeDetails = z19.object({
|
|
|
5240
5240
|
})
|
|
5241
5241
|
});
|
|
5242
5242
|
|
|
5243
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
5243
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/oauth.js
|
|
5244
5244
|
import { z as z20 } from "zod";
|
|
5245
5245
|
var oauthErrorCode = z20.enum([
|
|
5246
5246
|
"invalid_request",
|
|
@@ -5480,7 +5480,7 @@ var oauthAuthorizeQuery = z20.object({
|
|
|
5480
5480
|
description: "The authorization request an MCP client sends, per RFC 6749 \xA74.1.1 with mandatory PKCE. The handler reads it parameter by parameter rather than through one parse, because the answers differ: `client_id` and `redirect_uri` are refused flat, with no redirect, since until both are confirmed there is no trusted target to bounce a browser to, and everything after them is reported to the client's own callback as query parameters."
|
|
5481
5481
|
});
|
|
5482
5482
|
|
|
5483
|
-
// node_modules/.pnpm/@fleetless+contracts@6.2.0
|
|
5483
|
+
// node_modules/.pnpm/@fleetless+contracts@6.2.0/node_modules/@fleetless/contracts/dist/routes.js
|
|
5484
5484
|
var MCP_APP = MCP_APP_PATHS(":appIdentifier");
|
|
5485
5485
|
var APP_IDENTIFIER = {
|
|
5486
5486
|
name: "appIdentifier",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fleetless/sdk",
|
|
3
|
-
"version": "4.4.0
|
|
3
|
+
"version": "4.4.0",
|
|
4
4
|
"description": "The official TypeScript SDK for Fleetless client apps — a ROS 2 robot as a REST and realtime API, cameras, jobs, and the app's own user accounts, federated sign-in and MCP consent.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"zod": "^4.0.0"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
|
-
"@fleetless/contracts": "6.2.0
|
|
79
|
+
"@fleetless/contracts": "6.2.0",
|
|
80
80
|
"@types/node": "^22.20.1",
|
|
81
81
|
"tsup": "^8.3.0",
|
|
82
82
|
"typedoc": "0.28.20",
|