@burdenoff/cli-sdk 2026.629.1 → 2026.719.1
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var m=class extends Error{exitCode;hint;constructor(r,n){super(r),this.name="CliUserError",this.exitCode=n?.exitCode??1,this.hint=n?.hint;}},E=class extends m{constructor(r,n){super(r,{exitCode:2,hint:n?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},w=class extends Error{cause;constructor(r,n){super(r),this.name="CliInternalError",this.cause=n;}};var b=null;function D(c){b=c;}function C(){if(!b)throw new w("vibecontrols module helpers used before setHelpersContext was called");return b}function
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var m=class extends Error{exitCode;hint;constructor(r,n){super(r),this.name="CliUserError",this.exitCode=n?.exitCode??1,this.hint=n?.hint;}},E=class extends m{constructor(r,n){super(r,{exitCode:2,hint:n?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},w=class extends Error{cause;constructor(r,n){super(r),this.name="CliInternalError",this.cause=n;}};var b=null;function D(c){b=c;}function C(){if(!b)throw new w("vibecontrols module helpers used before setHelpersContext was called");return b}function At(){let c=C();if(!c.auth.isAuthenticated())throw new E(`Authentication required. Run \`${c.productName} auth login\`.`)}async function o(c,r){return At(),C().gql.workspace.request(c,r)}function a(c){let r=c instanceof Error?c.message:String(c);throw new m(r)}function s(c,r,n){C().output.formatAndOutput(c,r,n);}function p(c){C().output.printSuccess(c);}function g(c,r){return C().output.truncate(c,r)}var R=`
|
|
2
2
|
query MovethewheelsGetCustomer($id: ID!) {
|
|
3
3
|
customer(id: $id) {
|
|
4
4
|
id name email phone company type taxId businessLicense address rating
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
id name email phone company type taxId businessLicense address rating updatedAt
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
`,
|
|
26
|
+
`,x=`
|
|
27
27
|
mutation MovethewheelsDeleteCustomer($id: ID!) {
|
|
28
28
|
deleteCustomer(id: $id)
|
|
29
29
|
}
|
|
30
|
-
`,
|
|
30
|
+
`,N=`
|
|
31
31
|
query MovethewheelsGetDriver($id: ID!) {
|
|
32
32
|
driver(id: $id) {
|
|
33
33
|
id employeeId firstName lastName email phone status licenseNumber
|
|
@@ -65,13 +65,13 @@
|
|
|
65
65
|
id firstName lastName status updatedAt
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
`,
|
|
68
|
+
`,U=`
|
|
69
69
|
mutation MovethewheelsAssignDriverVehicle($id: ID!, $vehicleId: ID) {
|
|
70
70
|
assignDriverVehicle(id: $id, vehicleId: $vehicleId) {
|
|
71
71
|
id firstName lastName vehicleId status updatedAt
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
`,
|
|
74
|
+
`,q=`
|
|
75
75
|
query MovethewheelsGetVehicle($id: ID!) {
|
|
76
76
|
vehicle(id: $id) {
|
|
77
77
|
id vehicleNumber type status make model year licensePlate fuelLevel
|
|
@@ -323,13 +323,13 @@
|
|
|
323
323
|
id shipmentId eventType details location timestamp createdAt
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
|
-
`,
|
|
326
|
+
`,Oe=`
|
|
327
327
|
query MovethewheelsOrderTracking($orderId: ID!, $pagination: PaginationInput) {
|
|
328
328
|
orderTracking(orderId: $orderId, pagination: $pagination) {
|
|
329
329
|
id shipmentId eventType details location timestamp createdAt
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
|
-
`,
|
|
332
|
+
`,Te=`
|
|
333
333
|
query MovethewheelsTrackingAlerts($pagination: PaginationInput) {
|
|
334
334
|
trackingAlerts(pagination: $pagination) {
|
|
335
335
|
alertType message shipmentId shipmentNumber
|
|
@@ -367,14 +367,14 @@
|
|
|
367
367
|
fuelCost createdAt updatedAt workspaceId
|
|
368
368
|
}
|
|
369
369
|
}
|
|
370
|
-
`,
|
|
370
|
+
`,xe=`
|
|
371
371
|
query MovethewheelsRoutes($filter: RouteFilterInput, $pagination: PaginationInput) {
|
|
372
372
|
routes(filter: $filter, pagination: $pagination) {
|
|
373
373
|
id name status driverId vehicleId shipmentId estimatedDistance
|
|
374
374
|
estimatedDuration fuelCost createdAt
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
|
-
`,
|
|
377
|
+
`,Ne=`
|
|
378
378
|
mutation MovethewheelsCreateRoute($input: CreateRouteInput!) {
|
|
379
379
|
createRoute(input: $input) {
|
|
380
380
|
id name status driverId vehicleId shipmentId waypoints
|
|
@@ -415,13 +415,13 @@
|
|
|
415
415
|
id name type description isActive isVerified rating createdAt
|
|
416
416
|
}
|
|
417
417
|
}
|
|
418
|
-
`,
|
|
418
|
+
`,Ue=`
|
|
419
419
|
mutation MovethewheelsCreateServiceProvider($input: CreateServiceProviderInput!) {
|
|
420
420
|
createServiceProvider(input: $input) {
|
|
421
421
|
id name type description isActive isVerified rating createdAt
|
|
422
422
|
}
|
|
423
423
|
}
|
|
424
|
-
`,
|
|
424
|
+
`,qe=`
|
|
425
425
|
mutation MovethewheelsUpdateServiceProvider($id: ID!, $input: UpdateServiceProviderInput!) {
|
|
426
426
|
updateServiceProvider(id: $id, input: $input) {
|
|
427
427
|
id name type description isActive isVerified rating updatedAt
|
|
@@ -556,10 +556,4 @@
|
|
|
556
556
|
totalDrivers availableDrivers onDeliveryDrivers
|
|
557
557
|
}
|
|
558
558
|
}
|
|
559
|
-
`,at=`
|
|
560
|
-
query MovethewheelsAssistantInsights($question: String!) {
|
|
561
|
-
assistantInsights(question: $question) {
|
|
562
|
-
question answer generatedAt
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
`;function l(c,r){try{return JSON.parse(r)}catch{throw new m(`--${c} must be valid JSON`)}}function u(c){let r=Number.parseInt(c,10);if(Number.isNaN(r))throw new m(`Expected an integer but got "${c}"`);return r}function f(c){let r=Number.parseFloat(c);if(Number.isNaN(r))throw new m(`Expected a number but got "${c}"`);return r}function h(c){let r={};return c.limit!==void 0&&(r.limit=c.limit),c.offset!==void 0&&(r.offset=c.offset),Object.keys(r).length?r:void 0}function st(c){let r=c.command("customers").description("Movethewheels customers");r.command("list").description("List customers").option("--type <t>","Filter by customer type (b2c/b2b)").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type),n.query&&(e.search=n.query);let t=await o(k,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.customers,{headers:["ID","Name","Type","Email","Phone","Rating"],rows:t.customers.map(i=>[g(i.id,12),i.name,i.type,i.email??"-",i.phone??"-",i.rating!=null?String(i.rating):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a customer by id").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(R,{id:n});if(!t.customer)throw new m(`Customer ${n} not found`);s(e,t.customer);}catch(t){a(t);}}),r.command("create").description("Create a customer").requiredOption("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type","b2c").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",f).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,type:n.type??"b2c"};n.email&&(e.email=n.email),n.phone&&(e.phone=n.phone),n.company&&(e.company=n.company),n.taxId&&(e.taxId=n.taxId),n.businessLicense&&(e.businessLicense=n.businessLicense),n.rating!==void 0&&(e.rating=n.rating),n.address&&(e.address=l("address",n.address));let t=await o(S,{input:e});p(`Customer created: ${t.createCustomer.name}`),s(n,t.createCustomer);}catch(e){a(e);}}),r.command("update").description("Update a customer").argument("<id>","Customer ID").option("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",f).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.company!==void 0&&(t.company=e.company),e.type&&(t.type=e.type),e.taxId!==void 0&&(t.taxId=e.taxId),e.businessLicense!==void 0&&(t.businessLicense=e.businessLicense),e.rating!==void 0&&(t.rating=e.rating),e.address&&(t.address=l("address",e.address)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(A,{id:n,input:t});p("Customer updated"),s(e,i.updateCustomer);}catch(t){a(t);}}),r.command("remove").description("Delete a customer").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(N,{id:n});p(`Customer ${n} deleted`),s(e,{deleted:t.deleteCustomer});}catch(t){a(t);}});}function ct(c){let r=c.command("drivers").description("Movethewheels drivers");r.command("list").description("List drivers").option("--status <s>","Filter by driver status").option("--vehicle <id>","Filter by vehicle ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.status&&(e.status=n.status.toUpperCase()),n.vehicle&&(e.vehicleId=n.vehicle),n.query&&(e.search=n.query);let t=await o($,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.drivers,{headers:["ID","Name","Employee","Status","Vehicle","Rating"],rows:t.drivers.map(i=>[g(i.id,12),`${i.firstName} ${i.lastName}`,i.employeeId,i.status,i.vehicleId?g(i.vehicleId,12):"-",i.rating!=null?String(i.rating):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a driver by id").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(x,{id:n});if(!t.driver)throw new m(`Driver ${n} not found`);s(e,t.driver);}catch(t){a(t);}}),r.command("create").description("Create a driver").requiredOption("--employee-id <s>","Employee ID").requiredOption("--first-name <s>","First name").requiredOption("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status","AVAILABLE").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--user-id <id>","User ID").option("--rating <n>","Rating",f).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={employeeId:n.employeeId,firstName:n.firstName,lastName:n.lastName,status:(n.status??"AVAILABLE").toUpperCase()};n.email&&(e.email=n.email),n.phone&&(e.phone=n.phone),n.licenseNumber&&(e.licenseNumber=n.licenseNumber),n.licenseClass&&(e.licenseClass=n.licenseClass),n.licenseExpiry&&(e.licenseExpiry=n.licenseExpiry),n.vehicleId&&(e.vehicleId=n.vehicleId),n.userId&&(e.userId=n.userId),n.rating!==void 0&&(e.rating=n.rating),n.certifications&&(e.certifications=l("certifications",n.certifications)),n.currentLocation&&(e.currentLocation=l("current-location",n.currentLocation));let t=await o(P,{input:e});p(`Driver created: ${t.createDriver.firstName} ${t.createDriver.lastName}`),s(n,t.createDriver);}catch(e){a(e);}}),r.command("update").description("Update a driver").argument("<id>","Driver ID").option("--first-name <s>","First name").option("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--rating <n>","Rating",f).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.firstName&&(t.firstName=e.firstName),e.lastName&&(t.lastName=e.lastName),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.status&&(t.status=e.status.toUpperCase()),e.licenseNumber!==void 0&&(t.licenseNumber=e.licenseNumber),e.licenseClass!==void 0&&(t.licenseClass=e.licenseClass),e.licenseExpiry&&(t.licenseExpiry=e.licenseExpiry),e.vehicleId!==void 0&&(t.vehicleId=e.vehicleId),e.rating!==void 0&&(t.rating=e.rating),e.certifications&&(t.certifications=l("certifications",e.certifications)),e.currentLocation&&(t.currentLocation=l("current-location",e.currentLocation)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(_,{id:n,input:t});p("Driver updated"),s(e,i.updateDriver);}catch(t){a(t);}}),r.command("remove").description("Delete a driver").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(L,{id:n});p(`Driver ${n} deleted`),s(e,{deleted:t.deleteDriver});}catch(t){a(t);}}),r.command("set-status").description("Update a driver status").argument("<id>","Driver ID").requiredOption("--status <s>","AVAILABLE|ON_DELIVERY|ON_BREAK|OFF_DUTY|INACTIVE").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(M,{id:n,status:e.status.toUpperCase()});p(`Driver status set to ${t.updateDriverStatus.status}`),s(e,t.updateDriverStatus);}catch(t){a(t);}}),r.command("assign-vehicle").description("Assign (or clear) a vehicle for a driver").argument("<id>","Driver ID").option("--vehicle <id>","Vehicle ID (omit to clear assignment)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(q,{id:n,vehicleId:e.vehicle});p(e.vehicle?`Vehicle ${e.vehicle} assigned`:"Vehicle assignment cleared"),s(e,t.assignDriverVehicle);}catch(t){a(t);}});}function dt(c){let r=c.command("vehicles").description("Movethewheels fleet vehicles");r.command("list").description("List vehicles").option("--type <t>","Filter by vehicle type").option("--status <s>","Filter by vehicle status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type.toUpperCase()),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(V,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.vehicles,{headers:["ID","Number","Type","Status","Make/Model","Plate"],rows:t.vehicles.map(i=>[g(i.id,12),i.vehicleNumber,i.type,i.status,`${i.make??"-"} ${i.model??""}`.trim(),i.licensePlate??"-"])});}catch(e){a(e);}}),r.command("get").description("Get a vehicle by id").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(U,{id:n});if(!t.vehicle)throw new m(`Vehicle ${n} not found`);s(e,t.vehicle);}catch(t){a(t);}}),r.command("create").description("Create a vehicle").requiredOption("--number <s>","Vehicle number").requiredOption("--type <t>","Vehicle type (TRUCK|VAN|MOTORCYCLE|\u2026)").option("--status <s>","Vehicle status","ACTIVE").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",u).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",f).option("--mileage <n>","Mileage",f).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={vehicleNumber:n.number,type:n.type.toUpperCase(),status:(n.status??"ACTIVE").toUpperCase()};n.make&&(e.make=n.make),n.model&&(e.model=n.model),n.year!==void 0&&(e.year=n.year),n.licensePlate&&(e.licensePlate=n.licensePlate),n.fuelLevel!==void 0&&(e.fuelLevel=n.fuelLevel),n.mileage!==void 0&&(e.mileage=n.mileage),n.ownershipType&&(e.ownershipType=n.ownershipType),n.capacity&&(e.capacity=l("capacity",n.capacity)),n.currentLocation&&(e.currentLocation=l("current-location",n.currentLocation));let t=await o(F,{input:e});p(`Vehicle created: ${t.createVehicle.vehicleNumber}`),s(n,t.createVehicle);}catch(e){a(e);}}),r.command("update").description("Update a vehicle").argument("<id>","Vehicle ID").option("--number <s>","Vehicle number").option("--type <t>","Vehicle type").option("--status <s>","Vehicle status").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",u).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",f).option("--mileage <n>","Mileage",f).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.number&&(t.vehicleNumber=e.number),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.make!==void 0&&(t.make=e.make),e.model!==void 0&&(t.model=e.model),e.year!==void 0&&(t.year=e.year),e.licensePlate!==void 0&&(t.licensePlate=e.licensePlate),e.fuelLevel!==void 0&&(t.fuelLevel=e.fuelLevel),e.mileage!==void 0&&(t.mileage=e.mileage),e.ownershipType!==void 0&&(t.ownershipType=e.ownershipType),e.capacity&&(t.capacity=l("capacity",e.capacity)),e.currentLocation&&(t.currentLocation=l("current-location",e.currentLocation)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(W,{id:n,input:t});p("Vehicle updated"),s(e,i.updateVehicle);}catch(t){a(t);}}),r.command("remove").description("Delete a vehicle").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(j,{id:n});p(`Vehicle ${n} deleted`),s(e,{deleted:t.deleteVehicle});}catch(t){a(t);}}),r.command("set-status").description("Update a vehicle status").argument("<id>","Vehicle ID").requiredOption("--status <s>","ACTIVE|INACTIVE|IN_TRANSIT|MAINTENANCE|DECOMMISSIONED").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(G,{id:n,status:e.status.toUpperCase()});p(`Vehicle status set to ${t.updateVehicleStatus.status}`),s(e,t.updateVehicleStatus);}catch(t){a(t);}}),r.command("set-location").description("Update a vehicle current location").argument("<id>","Vehicle ID").requiredOption("--location <json>","Location JSON (latitude/longitude/\u2026)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=l("location",e.location),i=await o(H,{id:n,location:t});p("Vehicle location updated"),s(e,i.updateVehicleLocation);}catch(t){a(t);}});}function ut(c){let r=c.command("products").description("Movethewheels catalog products");r.command("list").description("List products").option("--category <c>","Filter by category").option("--sku <s>","Filter by SKU").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.category&&(e.category=n.category),n.sku&&(e.sku=n.sku),n.query&&(e.search=n.query);let t=await o(z,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.products,{headers:["ID","SKU","Name","Category","Brand","Weight"],rows:t.products.map(i=>[g(i.id,12),i.sku,i.name,i.category??"-",i.brand??"-",i.weight!=null?String(i.weight):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a product by id").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(J,{id:n});if(!t.product)throw new m(`Product ${n} not found`);s(e,t.product);}catch(t){a(t);}}),r.command("create").description("Create a product").requiredOption("--name <name>","Product name").requiredOption("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",f).option("--value <n>","Value",f).option("--dimensions <json>","Dimensions JSON").option("--fragile","Mark as fragile").option("--hazardous","Mark as hazardous").option("--temperature-controlled","Mark as temperature controlled").option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,sku:n.sku};n.description&&(e.description=n.description),n.category&&(e.category=n.category),n.brand&&(e.brand=n.brand),n.weight!==void 0&&(e.weight=n.weight),n.value!==void 0&&(e.value=n.value),n.dimensions&&(e.dimensions=l("dimensions",n.dimensions)),n.fragile&&(e.fragile=!0),n.hazardous&&(e.hazardous=!0),n.temperatureControlled&&(e.temperatureControlled=!0);let t=await o(Y,{input:e});p(`Product created: ${t.createProduct.name}`),s(n,t.createProduct);}catch(e){a(e);}}),r.command("update").description("Update a product").argument("<id>","Product ID").option("--name <name>","Product name").option("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",f).option("--value <n>","Value",f).option("--dimensions <json>","Dimensions JSON").option("--fragile <bool>","true|false",n=>n==="true").option("--hazardous <bool>","true|false",n=>n==="true").option("--temperature-controlled <bool>","true|false",n=>n==="true").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.sku&&(t.sku=e.sku),e.description!==void 0&&(t.description=e.description),e.category!==void 0&&(t.category=e.category),e.brand!==void 0&&(t.brand=e.brand),e.weight!==void 0&&(t.weight=e.weight),e.value!==void 0&&(t.value=e.value),e.dimensions&&(t.dimensions=l("dimensions",e.dimensions)),e.fragile!==void 0&&(t.fragile=e.fragile),e.hazardous!==void 0&&(t.hazardous=e.hazardous),e.temperatureControlled!==void 0&&(t.temperatureControlled=e.temperatureControlled),!Object.keys(t).length)throw new m("No updates specified");let i=await o(B,{id:n,input:t});p("Product updated"),s(e,i.updateProduct);}catch(t){a(t);}}),r.command("remove").description("Delete a product").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(K,{id:n});p(`Product ${n} deleted`),s(e,{deleted:t.deleteProduct});}catch(t){a(t);}});}function pt(c){let r=c.command("warehouses").description("Movethewheels warehouses & locations");r.command("list").description("List warehouses").option("--type <t>","Filter by warehouse type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type.toUpperCase()),n.status&&(e.status=n.status),n.query&&(e.search=n.query);let t=await o(X,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.warehouses,{headers:["ID","Code","Name","Type","Status","Capacity"],rows:t.warehouses.map(i=>[g(i.id,12),i.code,i.name,i.type,i.status,`${i.usedCapacity??0}/${i.totalCapacity??0}`])});}catch(e){a(e);}}),r.command("get").description("Get a warehouse by id (includes locations)").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Q,{id:n});if(!t.warehouse)throw new m(`Warehouse ${n} not found`);s(e,t.warehouse);}catch(t){a(t);}}),r.command("create").description("Create a warehouse").requiredOption("--code <code>","Warehouse code").requiredOption("--name <name>","Warehouse name").requiredOption("--type <t>","Warehouse type (DISTRIBUTION|FULFILLMENT|\u2026)").requiredOption("--address <json>","Address JSON").option("--status <s>","Status","ACTIVE").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",f).option("--used-capacity <n>","Used capacity",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={code:n.code,name:n.name,type:n.type.toUpperCase(),address:l("address",n.address),status:n.status??"ACTIVE"};n.contactInfo&&(e.contactInfo=l("contact-info",n.contactInfo)),n.operatingHours&&(e.operatingHours=l("operating-hours",n.operatingHours)),n.capabilities&&(e.capabilities=l("capabilities",n.capabilities)),n.totalCapacity!==void 0&&(e.totalCapacity=n.totalCapacity),n.usedCapacity!==void 0&&(e.usedCapacity=n.usedCapacity);let t=await o(Z,{input:e});p(`Warehouse created: ${t.createWarehouse.name}`),s(n,t.createWarehouse);}catch(e){a(e);}}),r.command("update").description("Update a warehouse").argument("<id>","Warehouse ID").option("--code <code>","Warehouse code").option("--name <name>","Warehouse name").option("--type <t>","Warehouse type").option("--status <s>","Status").option("--address <json>","Address JSON").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",f).option("--used-capacity <n>","Used capacity",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.code&&(t.code=e.code),e.name&&(t.name=e.name),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status),e.address&&(t.address=l("address",e.address)),e.contactInfo&&(t.contactInfo=l("contact-info",e.contactInfo)),e.operatingHours&&(t.operatingHours=l("operating-hours",e.operatingHours)),e.capabilities&&(t.capabilities=l("capabilities",e.capabilities)),e.totalCapacity!==void 0&&(t.totalCapacity=e.totalCapacity),e.usedCapacity!==void 0&&(t.usedCapacity=e.usedCapacity),!Object.keys(t).length)throw new m("No updates specified");let i=await o(ee,{id:n,input:t});p("Warehouse updated"),s(e,i.updateWarehouse);}catch(t){a(t);}}),r.command("remove").description("Delete a warehouse").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(te,{id:n});p(`Warehouse ${n} deleted`),s(e,{deleted:t.deleteWarehouse});}catch(t){a(t);}}),r.command("create-location").description("Create a warehouse location").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status","ACTIVE").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={warehouseId:n.warehouse,locationCode:n.code,status:n.status??"ACTIVE"};n.locationType&&(e.locationType=n.locationType),n.zone&&(e.zone=n.zone),n.aisle&&(e.aisle=n.aisle),n.rack&&(e.rack=n.rack),n.shelf&&(e.shelf=n.shelf),n.bin&&(e.bin=n.bin),n.capacity!==void 0&&(e.capacity=n.capacity);let t=await o(ne,{input:e});p(`Location created: ${t.createWarehouseLocation.locationCode}`),s(n,t.createWarehouseLocation);}catch(e){a(e);}}),r.command("update-location").description("Update a warehouse location").argument("<id>","Location ID").option("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.code&&(t.locationCode=e.code),e.locationType!==void 0&&(t.locationType=e.locationType),e.status&&(t.status=e.status),e.zone!==void 0&&(t.zone=e.zone),e.aisle!==void 0&&(t.aisle=e.aisle),e.rack!==void 0&&(t.rack=e.rack),e.shelf!==void 0&&(t.shelf=e.shelf),e.bin!==void 0&&(t.bin=e.bin),e.capacity!==void 0&&(t.capacity=e.capacity),!Object.keys(t).length)throw new m("No updates specified");let i=await o(ie,{id:n,input:t});p("Location updated"),s(e,i.updateWarehouseLocation);}catch(t){a(t);}});}function lt(c){let r={};return c.product&&(r.productId=c.product),c.warehouse&&(r.warehouseId=c.warehouse),c.location&&(r.locationId=c.location),c.query&&(r.search=c.query),Object.keys(r).length?r:void 0}function mt(c){let r=c.command("inventory").description("Movethewheels inventory");r.command("list").description("List inventory items").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(oe,{filter:lt(n),pagination:h(n)});s(n,e.inventoryItems,{headers:["ID","Product","Warehouse","OnHand","Available","Allocated"],rows:e.inventoryItems.map(t=>[g(t.id,12),g(t.productId,12),g(t.warehouseId,12),String(t.onHand),String(t.available),String(t.allocated)])});}catch(e){a(e);}}),r.command("get").description("Get an inventory item by id").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(re,{id:n});if(!t.inventoryItem)throw new m(`Inventory item ${n} not found`);s(e,t.inventoryItem);}catch(t){a(t);}}),r.command("stats").description("Inventory stats (on-hand, available, allocated, damaged, low-stock)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(se);s(n,e.inventoryStats);}catch(e){a(e);}}),r.command("create").description("Create an inventory item").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("--reorder-point <n>","Reorder point",u).option("--safety-stock <n>","Safety stock",u).option("--unit-cost <n>","Unit cost",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={productId:n.product,warehouseId:n.warehouse};n.location&&(e.locationId=n.location),n.onHand!==void 0&&(e.onHand=n.onHand),n.available!==void 0&&(e.available=n.available),n.allocated!==void 0&&(e.allocated=n.allocated),n.damaged!==void 0&&(e.damaged=n.damaged),n.reorderPoint!==void 0&&(e.reorderPoint=n.reorderPoint),n.safetyStock!==void 0&&(e.safetyStock=n.safetyStock),n.unitCost!==void 0&&(e.unitCost=n.unitCost);let t=await o(ce,{input:e});p("Inventory item created"),s(n,t.createInventoryItem);}catch(e){a(e);}}),r.command("update").description("Update an inventory item").argument("<id>","Inventory item ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("--reorder-point <n>","Reorder point",u).option("--safety-stock <n>","Safety stock",u).option("--unit-cost <n>","Unit cost",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.location!==void 0&&(t.locationId=e.location),e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),e.reorderPoint!==void 0&&(t.reorderPoint=e.reorderPoint),e.safetyStock!==void 0&&(t.safetyStock=e.safetyStock),e.unitCost!==void 0&&(t.unitCost=e.unitCost),!Object.keys(t).length)throw new m("No updates specified");let i=await o(de,{id:n,input:t});p("Inventory item updated"),s(e,i.updateInventoryItem);}catch(t){a(t);}}),r.command("remove").description("Delete an inventory item").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ue,{id:n});p(`Inventory item ${n} deleted`),s(e,{deleted:t.deleteInventoryItem});}catch(t){a(t);}}),r.command("adjust").description("Adjust inventory stock levels").argument("<id>","Inventory item ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={id:n};if(e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),Object.keys(t).length===1)throw new m("No stock adjustments specified");let i=await o(pe,{input:t});p("Inventory stock adjusted"),s(e,i.adjustInventoryStock);}catch(t){a(t);}}),r.command("transactions").description("List inventory transactions").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(ae,{filter:lt(n),pagination:h(n)});s(n,e.inventoryTransactions,{headers:["ID","Number","Type","Product","Warehouse","Qty"],rows:e.inventoryTransactions.map(t=>[g(t.id,12),t.transactionNumber,t.type,g(t.productId,12),g(t.warehouseId,12),String(t.quantity)])});}catch(e){a(e);}}),r.command("record-transaction").description("Record an inventory transaction").requiredOption("--number <s>","Transaction number").requiredOption("--type <t>","Transaction type (RECEIPT|ISSUE|TRANSFER|ADJUSTMENT|RETURN)").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--quantity <n>","Quantity",u).option("--inventory-item <id>","Inventory item ID").option("--unit-cost <n>","Unit cost",f).option("--reference-type <s>","Reference type").option("--reference-id <s>","Reference ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async n=>{try{let e={transactionNumber:n.number,type:n.type.toUpperCase(),productId:n.product,warehouseId:n.warehouse,quantity:n.quantity};n.inventoryItem&&(e.inventoryItemId=n.inventoryItem),n.unitCost!==void 0&&(e.unitCost=n.unitCost),n.referenceType&&(e.referenceType=n.referenceType),n.referenceId&&(e.referenceId=n.referenceId),n.notes&&(e.notes=n.notes);let t=await o(le,{input:e});p(`Transaction recorded: ${t.createInventoryTransaction.transactionNumber}`),s(n,t.createInventoryTransaction);}catch(e){a(e);}});}function ft(c){let r=c.command("orders").description("Movethewheels delivery orders");r.command("list").description("List orders").option("--customer <id>","Filter by customer ID").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--status <s>","Filter by order status").option("--order-type <t>","Filter by order type").option("--priority <p>","Filter by priority").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.customer&&(e.customerId=n.customer),n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.status&&(e.status=n.status.toUpperCase()),n.orderType&&(e.orderType=n.orderType.toUpperCase()),n.priority&&(e.priority=n.priority.toUpperCase()),n.query&&(e.search=n.query);let t=await o(fe,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.movethewheelsOrders,{headers:["ID","Order #","Type","Status","Priority","Tracking"],rows:t.movethewheelsOrders.map(i=>[g(i.id,12),i.orderNumber,i.orderType,i.status,i.priority,i.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("get").description("Get an order by id").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(me,{id:n});if(!t.movethewheelsOrder)throw new m(`Order ${n} not found`);s(e,t.movethewheelsOrder);}catch(t){a(t);}}),r.command("create").description("Create an order").requiredOption("--customer <id>","Customer ID").requiredOption("--order-number <s>","Order number").requiredOption("--pickup-address <json>","Pickup address JSON").requiredOption("--delivery-address <json>","Delivery address JSON").requiredOption("--items <json>","Items JSON").option("--order-type <t>","Order type","B2C").option("--priority <p>","Priority","MEDIUM").option("--status <s>","Status","PENDING").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={customerId:n.customer,orderNumber:n.orderNumber,pickupAddress:l("pickup-address",n.pickupAddress),deliveryAddress:l("delivery-address",n.deliveryAddress),items:l("items",n.items),orderType:(n.orderType??"B2C").toUpperCase(),priority:(n.priority??"MEDIUM").toUpperCase(),status:(n.status??"PENDING").toUpperCase()};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.trackingNumber&&(e.trackingNumber=n.trackingNumber),n.scheduledDelivery&&(e.scheduledDelivery=n.scheduledDelivery),n.specialInstructions&&(e.specialInstructions=n.specialInstructions),n.pricing&&(e.pricing=l("pricing",n.pricing));let t=await o(ge,{input:e});p(`Order created: ${t.createMovethewheelsOrder.orderNumber}`),s(n,t.createMovethewheelsOrder);}catch(e){a(e);}}),r.command("update").description("Update an order").argument("<id>","Order ID").option("--customer <id>","Customer ID").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--order-type <t>","Order type").option("--priority <p>","Priority").option("--status <s>","Status").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--delivery-address <json>","Delivery address JSON").option("--pickup-address <json>","Pickup address JSON").option("--items <json>","Items JSON").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.customer&&(t.customerId=e.customer),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.orderType&&(t.orderType=e.orderType.toUpperCase()),e.priority&&(t.priority=e.priority.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.scheduledDelivery&&(t.scheduledDelivery=e.scheduledDelivery),e.specialInstructions!==void 0&&(t.specialInstructions=e.specialInstructions),e.deliveryAddress&&(t.deliveryAddress=l("delivery-address",e.deliveryAddress)),e.pickupAddress&&(t.pickupAddress=l("pickup-address",e.pickupAddress)),e.items&&(t.items=l("items",e.items)),e.pricing&&(t.pricing=l("pricing",e.pricing)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(he,{id:n,input:t});p("Order updated"),s(e,i.updateMovethewheelsOrder);}catch(t){a(t);}}),r.command("remove").description("Delete an order").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ye,{id:n});p(`Order ${n} deleted`),s(e,{deleted:t.deleteMovethewheelsOrder});}catch(t){a(t);}}),r.command("set-status").description("Update an order status").argument("<id>","Order ID").requiredOption("--status <s>","PENDING|CONFIRMED|ASSIGNED|PICKED_UP|IN_TRANSIT|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED|CANCELLED").option("--notes <s>","Status notes").option("--location <json>","Location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={status:e.status.toUpperCase()};e.notes&&(t.notes=e.notes),e.location&&(t.location=l("location",e.location));let i=await o(ve,{id:n,input:t});p(`Order status set to ${i.updateMovethewheelsOrderStatus.status}`),s(e,i.updateMovethewheelsOrderStatus);}catch(t){a(t);}}),r.command("stats").description("Order stats (total, pending, in-transit, delivered, \u2026)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Ie);s(n,e.orderStats);}catch(e){a(e);}});}function gt(c){let r=c.command("shipments").description("Movethewheels shipments & tracking");r.command("list").description("List shipments").option("--order <id>","Filter by order ID").option("--customer <id>","Filter by customer ID").option("--carrier <id>","Filter by carrier ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.order&&(e.orderId=n.order),n.customer&&(e.customerId=n.customer),n.carrier&&(e.carrierId=n.carrier),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(Ee,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.shipments,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:t.shipments.map(i=>[g(i.id,12),i.shipmentNumber,g(i.orderId,12),i.status,i.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("get").description("Get a shipment by id (includes tracking events)").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(we,{id:n});if(!t.shipment)throw new m(`Shipment ${n} not found`);s(e,t.shipment);}catch(t){a(t);}}),r.command("active").description("List active deliveries (in-transit shipments)").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Ce,{pagination:h(n)});s(n,e.activeDeliveries,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:e.activeDeliveries.map(t=>[g(t.id,12),t.shipmentNumber,g(t.orderId,12),t.status,t.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("create").description("Create a shipment").requiredOption("--shipment-number <s>","Shipment number").requiredOption("--order <id>","Order ID").requiredOption("--origin <json>","Origin JSON").requiredOption("--destination <json>","Destination JSON").option("--status <s>","Status","PLANNED").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async n=>{try{let e={shipmentNumber:n.shipmentNumber,orderId:n.order,origin:l("origin",n.origin),destination:l("destination",n.destination),status:(n.status??"PLANNED").toUpperCase()};n.customer&&(e.customerId=n.customer),n.carrier&&(e.carrierId=n.carrier),n.trackingNumber&&(e.trackingNumber=n.trackingNumber),n.cargoDetails&&(e.cargoDetails=l("cargo-details",n.cargoDetails)),n.estimatedDelivery&&(e.estimatedDelivery=n.estimatedDelivery),n.actualDelivery&&(e.actualDelivery=n.actualDelivery);let t=await o(De,{input:e});p(`Shipment created: ${t.createShipment.shipmentNumber}`),s(n,t.createShipment);}catch(e){a(e);}}),r.command("update").description("Update a shipment").argument("<id>","Shipment ID").option("--status <s>","Status").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--origin <json>","Origin JSON").option("--destination <json>","Destination JSON").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.status&&(t.status=e.status.toUpperCase()),e.customer!==void 0&&(t.customerId=e.customer),e.carrier!==void 0&&(t.carrierId=e.carrier),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.origin&&(t.origin=l("origin",e.origin)),e.destination&&(t.destination=l("destination",e.destination)),e.cargoDetails&&(t.cargoDetails=l("cargo-details",e.cargoDetails)),e.estimatedDelivery&&(t.estimatedDelivery=e.estimatedDelivery),e.actualDelivery&&(t.actualDelivery=e.actualDelivery),!Object.keys(t).length)throw new m("No updates specified");let i=await o(Re,{id:n,input:t});p("Shipment updated"),s(e,i.updateShipment);}catch(t){a(t);}}),r.command("remove").description("Delete a shipment").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ke,{id:n});p(`Shipment ${n} deleted`),s(e,{deleted:t.deleteShipment});}catch(t){a(t);}}),r.command("add-event").description("Add a tracking event to a shipment").requiredOption("--shipment <id>","Shipment ID").requiredOption("--event-type <t>","CREATED|PICKED_UP|IN_TRANSIT|ARRIVED|DEPARTED|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED").option("--details <s>","Event details").option("--location <json>","Location JSON").option("--timestamp <s>","Timestamp (ISO date)").option("-f, --format <format>","Output format").action(async n=>{try{let e={shipmentId:n.shipment,eventType:n.eventType.toUpperCase()};n.details&&(e.details=n.details),n.location&&(e.location=l("location",n.location)),n.timestamp&&(e.timestamp=n.timestamp);let t=await o(Se,{input:e});p(`Tracking event added: ${t.addTrackingEvent.eventType}`),s(n,t.addTrackingEvent);}catch(e){a(e);}}),r.command("tracking").description("List tracking events for a shipment").argument("<shipmentId>","Shipment ID").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(be,{shipmentId:n,pagination:h(e)});s(e,t.shipmentTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.shipmentTracking.map(i=>[g(i.id,12),i.eventType,g(i.details??"-",30),i.timestamp])});}catch(t){a(t);}}),r.command("order-tracking").description("List tracking events for an order").argument("<orderId>","Order ID").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Te,{orderId:n,pagination:h(e)});s(e,t.orderTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.orderTracking.map(i=>[g(i.id,12),i.eventType,g(i.details??"-",30),i.timestamp])});}catch(t){a(t);}}),r.command("alerts").description("List tracking alerts (delayed / at-risk shipments)").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Oe,{pagination:h(n)});s(n,e.trackingAlerts,{headers:["Type","Shipment #","Message"],rows:e.trackingAlerts.map(t=>[t.alertType,t.shipmentNumber,g(t.message,40)])});}catch(e){a(e);}});}function ht(c){let r=c.command("routes").description("Movethewheels delivery routes");r.command("list").description("List routes").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--shipment <id>","Filter by shipment ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.shipment&&(e.shipmentId=n.shipment),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(Ne,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.routes,{headers:["ID","Name","Status","Driver","Vehicle","Distance"],rows:t.routes.map(i=>[g(i.id,12),i.name,i.status,i.driverId?g(i.driverId,12):"-",i.vehicleId?g(i.vehicleId,12):"-",i.estimatedDistance!=null?String(i.estimatedDistance):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a route by id").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Ae,{id:n});if(!t.route)throw new m(`Route ${n} not found`);s(e,t.route);}catch(t){a(t);}}),r.command("create").description("Create a route").requiredOption("--name <name>","Route name").requiredOption("--waypoints <json>","Waypoints JSON").option("--status <s>","Status","PLANNED").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--estimated-distance <n>","Estimated distance",f).option("--estimated-duration <n>","Estimated duration",f).option("--actual-distance <n>","Actual distance",f).option("--actual-duration <n>","Actual duration",f).option("--fuel-cost <n>","Fuel cost",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,waypoints:l("waypoints",n.waypoints),status:(n.status??"PLANNED").toUpperCase()};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.shipment&&(e.shipmentId=n.shipment),n.estimatedDistance!==void 0&&(e.estimatedDistance=n.estimatedDistance),n.estimatedDuration!==void 0&&(e.estimatedDuration=n.estimatedDuration),n.actualDistance!==void 0&&(e.actualDistance=n.actualDistance),n.actualDuration!==void 0&&(e.actualDuration=n.actualDuration),n.fuelCost!==void 0&&(e.fuelCost=n.fuelCost);let t=await o(xe,{input:e});p(`Route created: ${t.createRoute.name}`),s(n,t.createRoute);}catch(e){a(e);}}),r.command("update").description("Update a route").argument("<id>","Route ID").option("--name <name>","Route name").option("--status <s>","Status").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--waypoints <json>","Waypoints JSON").option("--estimated-distance <n>","Estimated distance",f).option("--estimated-duration <n>","Estimated duration",f).option("--actual-distance <n>","Actual distance",f).option("--actual-duration <n>","Actual duration",f).option("--fuel-cost <n>","Fuel cost",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.status&&(t.status=e.status.toUpperCase()),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.shipment!==void 0&&(t.shipmentId=e.shipment),e.waypoints&&(t.waypoints=l("waypoints",e.waypoints)),e.estimatedDistance!==void 0&&(t.estimatedDistance=e.estimatedDistance),e.estimatedDuration!==void 0&&(t.estimatedDuration=e.estimatedDuration),e.actualDistance!==void 0&&(t.actualDistance=e.actualDistance),e.actualDuration!==void 0&&(t.actualDuration=e.actualDuration),e.fuelCost!==void 0&&(t.fuelCost=e.fuelCost),!Object.keys(t).length)throw new m("No updates specified");let i=await o($e,{id:n,input:t});p("Route updated"),s(e,i.updateRoute);}catch(t){a(t);}}),r.command("remove").description("Delete a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Pe,{id:n});p(`Route ${n} deleted`),s(e,{deleted:t.deleteRoute});}catch(t){a(t);}}),r.command("optimize").description("Optimize a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(_e,{id:n});p("Route optimized"),s(e,t.optimizeRoute);}catch(t){a(t);}});}function yt(c){let r=c.command("marketplace").description("Movethewheels logistics marketplace (providers & offerings)"),n=r.command("providers").description("Service providers");n.command("list").description("List service providers").option("--type <t>","Filter by provider type").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let i={};t.type&&(i.type=t.type),t.active!==void 0&&(i.isActive=t.active),t.query&&(i.search=t.query);let d=await o(Me,{filter:Object.keys(i).length?i:void 0,pagination:h(t)});s(t,d.serviceProviders,{headers:["ID","Name","Type","Active","Verified","Rating"],rows:d.serviceProviders.map(v=>[g(v.id,12),v.name,v.type,v.isActive?"yes":"no",v.isVerified?"yes":"no",v.rating!=null?String(v.rating):"-"])});}catch(i){a(i);}}),n.command("get").description("Get a service provider by id (includes offerings)").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Le,{id:t});if(!d.serviceProvider)throw new m(`Provider ${t} not found`);s(i,d.serviceProvider);}catch(d){a(d);}}),n.command("create").description("Create a service provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",f).option("--active <bool>","Active (true|false)",t=>t==="true",true).option("--verified <bool>","Verified (true|false)",t=>t==="true",false).option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i={name:t.name,type:t.type,isActive:t.active??!0,isVerified:t.verified??!1};t.description&&(i.description=t.description),t.rating!==void 0&&(i.rating=t.rating),t.contactInfo&&(i.contactInfo=l("contact-info",t.contactInfo)),t.services&&(i.services=l("services",t.services));let d=await o(qe,{input:i});p(`Provider created: ${d.createServiceProvider.name}`),s(t,d.createServiceProvider);}catch(i){a(i);}}),n.command("update").description("Update a service provider").argument("<id>","Provider ID").option("--name <name>","Provider name").option("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",f).option("--active <bool>","Active (true|false)",t=>t==="true").option("--verified <bool>","Verified (true|false)",t=>t==="true").option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d={};if(i.name&&(d.name=i.name),i.type&&(d.type=i.type),i.description!==void 0&&(d.description=i.description),i.rating!==void 0&&(d.rating=i.rating),i.active!==void 0&&(d.isActive=i.active),i.verified!==void 0&&(d.isVerified=i.verified),i.contactInfo&&(d.contactInfo=l("contact-info",i.contactInfo)),i.services&&(d.services=l("services",i.services)),!Object.keys(d).length)throw new m("No updates specified");let v=await o(Ue,{id:t,input:d});p("Provider updated"),s(i,v.updateServiceProvider);}catch(d){a(d);}}),n.command("remove").description("Delete a service provider").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Ve,{id:t});p(`Provider ${t} deleted`),s(i,{deleted:d.deleteServiceProvider});}catch(d){a(d);}});let e=r.command("offerings").description("Service offerings");e.command("list").description("List service offerings").option("--provider <id>","Filter by provider ID").option("--category <c>","Filter by category").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let i={};t.provider&&(i.providerId=t.provider),t.category&&(i.category=t.category),t.query&&(i.search=t.query);let d=await o(We,{filter:Object.keys(i).length?i:void 0,pagination:h(t)});s(t,d.serviceOfferings,{headers:["ID","Name","Provider","Category","Price","Currency"],rows:d.serviceOfferings.map(v=>[g(v.id,12),v.name,g(v.providerId,12),v.category??"-",String(v.price),v.currency])});}catch(i){a(i);}}),e.command("get").description("Get a service offering by id").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Fe,{id:t});if(!d.serviceOffering)throw new m(`Offering ${t} not found`);s(i,d.serviceOffering);}catch(d){a(d);}}),e.command("create").description("Create a service offering").requiredOption("--provider <id>","Provider ID").requiredOption("--name <name>","Offering name").requiredOption("--price <n>","Price",f).option("--description <s>","Description").option("--category <c>","Category").option("--currency <c>","Currency","USD").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i={providerId:t.provider,name:t.name,price:t.price,currency:t.currency??"USD"};t.description&&(i.description=t.description),t.category&&(i.category=t.category),t.availability&&(i.availability=l("availability",t.availability));let d=await o(je,{input:i});p(`Offering created: ${d.createServiceOffering.name}`),s(t,d.createServiceOffering);}catch(i){a(i);}}),e.command("update").description("Update a service offering").argument("<id>","Offering ID").option("--name <name>","Offering name").option("--description <s>","Description").option("--category <c>","Category").option("--price <n>","Price",f).option("--currency <c>","Currency").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d={};if(i.name&&(d.name=i.name),i.description!==void 0&&(d.description=i.description),i.category!==void 0&&(d.category=i.category),i.price!==void 0&&(d.price=i.price),i.currency&&(d.currency=i.currency),i.availability&&(d.availability=l("availability",i.availability)),!Object.keys(d).length)throw new m("No updates specified");let v=await o(Ge,{id:t,input:d});p("Offering updated"),s(i,v.updateServiceOffering);}catch(d){a(d);}}),e.command("remove").description("Delete a service offering").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(He,{id:t});p(`Offering ${t} deleted`),s(i,{deleted:d.deleteServiceOffering});}catch(d){a(d);}});}function vt(c){let r=c.command("reports").description("Movethewheels reports & data import/export");r.command("list").description("List reports").option("--type <t>","Filter by report type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={};e.type&&(t.type=e.type),e.status&&(t.status=e.status),e.query&&(t.search=e.query);let i=await o(ze,{filter:Object.keys(t).length?t:void 0,pagination:h(e)});s(e,i.movethewheelsReports,{headers:["ID","Name","Type","Status","Schedule","Last Generated"],rows:i.movethewheelsReports.map(d=>[g(d.id,12),d.name,d.type,d.status,d.schedule??"-",d.lastGenerated??"-"])});}catch(t){a(t);}}),r.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i=await o(Je,{id:e});if(!i.movethewheelsReport)throw new m(`Report ${e} not found`);s(t,i.movethewheelsReport);}catch(i){a(i);}}),r.command("create").description("Create a report").requiredOption("--name <name>","Report name").requiredOption("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status","DRAFT").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,type:e.type,status:e.status??"DRAFT"};e.description&&(t.description=e.description),e.schedule&&(t.schedule=e.schedule),e.configuration&&(t.configuration=l("configuration",e.configuration));let i=await o(Ye,{input:t});p(`Report created: ${i.createMovethewheelsReport.name}`),s(e,i.createMovethewheelsReport);}catch(t){a(t);}}),r.command("update").description("Update a report").argument("<id>","Report ID").option("--name <name>","Report name").option("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i={};if(t.name&&(i.name=t.name),t.type&&(i.type=t.type),t.description!==void 0&&(i.description=t.description),t.status&&(i.status=t.status),t.schedule!==void 0&&(i.schedule=t.schedule),t.configuration&&(i.configuration=l("configuration",t.configuration)),!Object.keys(i).length)throw new m("No updates specified");let d=await o(Be,{id:e,input:i});p("Report updated"),s(t,d.updateMovethewheelsReport);}catch(i){a(i);}}),r.command("remove").description("Delete a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i=await o(Ke,{id:e});p(`Report ${e} deleted`),s(t,{deleted:i.deleteMovethewheelsReport});}catch(i){a(i);}}),r.command("generate").description("Generate a report run").argument("<id>","Report ID").option("--parameters <json>","Parameters JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i={reportId:e};t.parameters&&(i.parameters=l("parameters",t.parameters));let d=await o(Qe,{input:i});p("Report generated"),s(t,d.generateMovethewheelsReport);}catch(i){a(i);}}),r.command("export").description("Export resource data").requiredOption("--resource <r>","Resource to export").option("--export-format <f>","Export format","json").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,format:e.exportFormat??"json"},i=await o(Xe,{input:t});p("Data exported"),s(e,i.exportData);}catch(t){a(t);}}),r.command("import").description("Import resource data").requiredOption("--resource <r>","Resource to import").requiredOption("--payload <json>","Payload JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,payload:l("payload",e.payload)},i=await o(Ze,{input:t});p("Data imported"),s(e,i.importData);}catch(t){a(t);}});let n=c.command("settings").description("Movethewheels module settings");n.command("get").description("Get module settings").option("-f, --format <format>","Output format").action(async e=>{try{let t=await o(et);s(e,t.moduleSettings);}catch(t){a(t);}}),n.command("update").description("Update module settings preferences").requiredOption("--preferences <json>","Preferences JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={preferences:l("preferences",e.preferences)},i=await o(tt,{input:t});p("Module settings updated"),s(e,i.updateModuleSettings);}catch(t){a(t);}});}function It(c){let r=c.command("analytics").description("Movethewheels analytics & dashboards");r.command("dashboard").description("Dashboard metrics (orders, deliveries, revenue, fleet, low stock)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(it);s(n,e.dashboardMetrics);}catch(e){a(e);}}),r.command("trends").description("Analytics time series (order, revenue, delivery trends)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(nt);s(n,e.analytics);}catch(e){a(e);}}),r.command("finance").description("Finance metrics (revenue, fuel cost, open invoices)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(rt);s(n,e.financeMetrics);}catch(e){a(e);}}),r.command("fleet").description("Fleet stats (vehicles & drivers by status)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(ot);s(n,e.fleetStats);}catch(e){a(e);}}),r.command("insights").description("AI assistant insights for a question").argument("<question>","Question to ask the assistant").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(at,{question:n});s(e,t.assistantInsights);}catch(t){a(t);}});}var xt={id:"movethewheels",version:"1.0.0",displayName:"Movethewheels",dependsOn:["auth","workspaces"],register(c,r){D(r);let n=c.command("movethewheels").description("Movethewheels logistics & fleet operations");st(n),ct(n),dt(n),ut(n),pt(n),mt(n),ft(n),gt(n),ht(n),yt(n),vt(n),It(n);}},Ui=xt;module.exports=Ui;
|
|
559
|
+
`;function l(c,r){try{return JSON.parse(r)}catch{throw new m(`--${c} must be valid JSON`)}}function u(c){let r=Number.parseInt(c,10);if(Number.isNaN(r))throw new m(`Expected an integer but got "${c}"`);return r}function f(c){let r=Number.parseFloat(c);if(Number.isNaN(r))throw new m(`Expected a number but got "${c}"`);return r}function h(c){let r={};return c.limit!==void 0&&(r.limit=c.limit),c.offset!==void 0&&(r.offset=c.offset),Object.keys(r).length?r:void 0}function at(c){let r=c.command("customers").description("Movethewheels customers");r.command("list").description("List customers").option("--type <t>","Filter by customer type (b2c/b2b)").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type),n.query&&(e.search=n.query);let t=await o(k,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.customers,{headers:["ID","Name","Type","Email","Phone","Rating"],rows:t.customers.map(i=>[g(i.id,12),i.name,i.type,i.email??"-",i.phone??"-",i.rating!=null?String(i.rating):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a customer by id").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(R,{id:n});if(!t.customer)throw new m(`Customer ${n} not found`);s(e,t.customer);}catch(t){a(t);}}),r.command("create").description("Create a customer").requiredOption("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type","b2c").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",f).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,type:n.type??"b2c"};n.email&&(e.email=n.email),n.phone&&(e.phone=n.phone),n.company&&(e.company=n.company),n.taxId&&(e.taxId=n.taxId),n.businessLicense&&(e.businessLicense=n.businessLicense),n.rating!==void 0&&(e.rating=n.rating),n.address&&(e.address=l("address",n.address));let t=await o(S,{input:e});p(`Customer created: ${t.createCustomer.name}`),s(n,t.createCustomer);}catch(e){a(e);}}),r.command("update").description("Update a customer").argument("<id>","Customer ID").option("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",f).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.company!==void 0&&(t.company=e.company),e.type&&(t.type=e.type),e.taxId!==void 0&&(t.taxId=e.taxId),e.businessLicense!==void 0&&(t.businessLicense=e.businessLicense),e.rating!==void 0&&(t.rating=e.rating),e.address&&(t.address=l("address",e.address)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(A,{id:n,input:t});p("Customer updated"),s(e,i.updateCustomer);}catch(t){a(t);}}),r.command("remove").description("Delete a customer").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(x,{id:n});p(`Customer ${n} deleted`),s(e,{deleted:t.deleteCustomer});}catch(t){a(t);}});}function st(c){let r=c.command("drivers").description("Movethewheels drivers");r.command("list").description("List drivers").option("--status <s>","Filter by driver status").option("--vehicle <id>","Filter by vehicle ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.status&&(e.status=n.status.toUpperCase()),n.vehicle&&(e.vehicleId=n.vehicle),n.query&&(e.search=n.query);let t=await o($,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.drivers,{headers:["ID","Name","Employee","Status","Vehicle","Rating"],rows:t.drivers.map(i=>[g(i.id,12),`${i.firstName} ${i.lastName}`,i.employeeId,i.status,i.vehicleId?g(i.vehicleId,12):"-",i.rating!=null?String(i.rating):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a driver by id").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(N,{id:n});if(!t.driver)throw new m(`Driver ${n} not found`);s(e,t.driver);}catch(t){a(t);}}),r.command("create").description("Create a driver").requiredOption("--employee-id <s>","Employee ID").requiredOption("--first-name <s>","First name").requiredOption("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status","AVAILABLE").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--user-id <id>","User ID").option("--rating <n>","Rating",f).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={employeeId:n.employeeId,firstName:n.firstName,lastName:n.lastName,status:(n.status??"AVAILABLE").toUpperCase()};n.email&&(e.email=n.email),n.phone&&(e.phone=n.phone),n.licenseNumber&&(e.licenseNumber=n.licenseNumber),n.licenseClass&&(e.licenseClass=n.licenseClass),n.licenseExpiry&&(e.licenseExpiry=n.licenseExpiry),n.vehicleId&&(e.vehicleId=n.vehicleId),n.userId&&(e.userId=n.userId),n.rating!==void 0&&(e.rating=n.rating),n.certifications&&(e.certifications=l("certifications",n.certifications)),n.currentLocation&&(e.currentLocation=l("current-location",n.currentLocation));let t=await o(P,{input:e});p(`Driver created: ${t.createDriver.firstName} ${t.createDriver.lastName}`),s(n,t.createDriver);}catch(e){a(e);}}),r.command("update").description("Update a driver").argument("<id>","Driver ID").option("--first-name <s>","First name").option("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--rating <n>","Rating",f).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.firstName&&(t.firstName=e.firstName),e.lastName&&(t.lastName=e.lastName),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.status&&(t.status=e.status.toUpperCase()),e.licenseNumber!==void 0&&(t.licenseNumber=e.licenseNumber),e.licenseClass!==void 0&&(t.licenseClass=e.licenseClass),e.licenseExpiry&&(t.licenseExpiry=e.licenseExpiry),e.vehicleId!==void 0&&(t.vehicleId=e.vehicleId),e.rating!==void 0&&(t.rating=e.rating),e.certifications&&(t.certifications=l("certifications",e.certifications)),e.currentLocation&&(t.currentLocation=l("current-location",e.currentLocation)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(_,{id:n,input:t});p("Driver updated"),s(e,i.updateDriver);}catch(t){a(t);}}),r.command("remove").description("Delete a driver").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(L,{id:n});p(`Driver ${n} deleted`),s(e,{deleted:t.deleteDriver});}catch(t){a(t);}}),r.command("set-status").description("Update a driver status").argument("<id>","Driver ID").requiredOption("--status <s>","AVAILABLE|ON_DELIVERY|ON_BREAK|OFF_DUTY|INACTIVE").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(M,{id:n,status:e.status.toUpperCase()});p(`Driver status set to ${t.updateDriverStatus.status}`),s(e,t.updateDriverStatus);}catch(t){a(t);}}),r.command("assign-vehicle").description("Assign (or clear) a vehicle for a driver").argument("<id>","Driver ID").option("--vehicle <id>","Vehicle ID (omit to clear assignment)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(U,{id:n,vehicleId:e.vehicle});p(e.vehicle?`Vehicle ${e.vehicle} assigned`:"Vehicle assignment cleared"),s(e,t.assignDriverVehicle);}catch(t){a(t);}});}function ct(c){let r=c.command("vehicles").description("Movethewheels fleet vehicles");r.command("list").description("List vehicles").option("--type <t>","Filter by vehicle type").option("--status <s>","Filter by vehicle status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type.toUpperCase()),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(V,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.vehicles,{headers:["ID","Number","Type","Status","Make/Model","Plate"],rows:t.vehicles.map(i=>[g(i.id,12),i.vehicleNumber,i.type,i.status,`${i.make??"-"} ${i.model??""}`.trim(),i.licensePlate??"-"])});}catch(e){a(e);}}),r.command("get").description("Get a vehicle by id").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(q,{id:n});if(!t.vehicle)throw new m(`Vehicle ${n} not found`);s(e,t.vehicle);}catch(t){a(t);}}),r.command("create").description("Create a vehicle").requiredOption("--number <s>","Vehicle number").requiredOption("--type <t>","Vehicle type (TRUCK|VAN|MOTORCYCLE|\u2026)").option("--status <s>","Vehicle status","ACTIVE").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",u).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",f).option("--mileage <n>","Mileage",f).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={vehicleNumber:n.number,type:n.type.toUpperCase(),status:(n.status??"ACTIVE").toUpperCase()};n.make&&(e.make=n.make),n.model&&(e.model=n.model),n.year!==void 0&&(e.year=n.year),n.licensePlate&&(e.licensePlate=n.licensePlate),n.fuelLevel!==void 0&&(e.fuelLevel=n.fuelLevel),n.mileage!==void 0&&(e.mileage=n.mileage),n.ownershipType&&(e.ownershipType=n.ownershipType),n.capacity&&(e.capacity=l("capacity",n.capacity)),n.currentLocation&&(e.currentLocation=l("current-location",n.currentLocation));let t=await o(F,{input:e});p(`Vehicle created: ${t.createVehicle.vehicleNumber}`),s(n,t.createVehicle);}catch(e){a(e);}}),r.command("update").description("Update a vehicle").argument("<id>","Vehicle ID").option("--number <s>","Vehicle number").option("--type <t>","Vehicle type").option("--status <s>","Vehicle status").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",u).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",f).option("--mileage <n>","Mileage",f).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.number&&(t.vehicleNumber=e.number),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.make!==void 0&&(t.make=e.make),e.model!==void 0&&(t.model=e.model),e.year!==void 0&&(t.year=e.year),e.licensePlate!==void 0&&(t.licensePlate=e.licensePlate),e.fuelLevel!==void 0&&(t.fuelLevel=e.fuelLevel),e.mileage!==void 0&&(t.mileage=e.mileage),e.ownershipType!==void 0&&(t.ownershipType=e.ownershipType),e.capacity&&(t.capacity=l("capacity",e.capacity)),e.currentLocation&&(t.currentLocation=l("current-location",e.currentLocation)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(W,{id:n,input:t});p("Vehicle updated"),s(e,i.updateVehicle);}catch(t){a(t);}}),r.command("remove").description("Delete a vehicle").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(j,{id:n});p(`Vehicle ${n} deleted`),s(e,{deleted:t.deleteVehicle});}catch(t){a(t);}}),r.command("set-status").description("Update a vehicle status").argument("<id>","Vehicle ID").requiredOption("--status <s>","ACTIVE|INACTIVE|IN_TRANSIT|MAINTENANCE|DECOMMISSIONED").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(G,{id:n,status:e.status.toUpperCase()});p(`Vehicle status set to ${t.updateVehicleStatus.status}`),s(e,t.updateVehicleStatus);}catch(t){a(t);}}),r.command("set-location").description("Update a vehicle current location").argument("<id>","Vehicle ID").requiredOption("--location <json>","Location JSON (latitude/longitude/\u2026)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=l("location",e.location),i=await o(H,{id:n,location:t});p("Vehicle location updated"),s(e,i.updateVehicleLocation);}catch(t){a(t);}});}function dt(c){let r=c.command("products").description("Movethewheels catalog products");r.command("list").description("List products").option("--category <c>","Filter by category").option("--sku <s>","Filter by SKU").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.category&&(e.category=n.category),n.sku&&(e.sku=n.sku),n.query&&(e.search=n.query);let t=await o(z,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.products,{headers:["ID","SKU","Name","Category","Brand","Weight"],rows:t.products.map(i=>[g(i.id,12),i.sku,i.name,i.category??"-",i.brand??"-",i.weight!=null?String(i.weight):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a product by id").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(J,{id:n});if(!t.product)throw new m(`Product ${n} not found`);s(e,t.product);}catch(t){a(t);}}),r.command("create").description("Create a product").requiredOption("--name <name>","Product name").requiredOption("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",f).option("--value <n>","Value",f).option("--dimensions <json>","Dimensions JSON").option("--fragile","Mark as fragile").option("--hazardous","Mark as hazardous").option("--temperature-controlled","Mark as temperature controlled").option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,sku:n.sku};n.description&&(e.description=n.description),n.category&&(e.category=n.category),n.brand&&(e.brand=n.brand),n.weight!==void 0&&(e.weight=n.weight),n.value!==void 0&&(e.value=n.value),n.dimensions&&(e.dimensions=l("dimensions",n.dimensions)),n.fragile&&(e.fragile=!0),n.hazardous&&(e.hazardous=!0),n.temperatureControlled&&(e.temperatureControlled=!0);let t=await o(Y,{input:e});p(`Product created: ${t.createProduct.name}`),s(n,t.createProduct);}catch(e){a(e);}}),r.command("update").description("Update a product").argument("<id>","Product ID").option("--name <name>","Product name").option("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",f).option("--value <n>","Value",f).option("--dimensions <json>","Dimensions JSON").option("--fragile <bool>","true|false",n=>n==="true").option("--hazardous <bool>","true|false",n=>n==="true").option("--temperature-controlled <bool>","true|false",n=>n==="true").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.sku&&(t.sku=e.sku),e.description!==void 0&&(t.description=e.description),e.category!==void 0&&(t.category=e.category),e.brand!==void 0&&(t.brand=e.brand),e.weight!==void 0&&(t.weight=e.weight),e.value!==void 0&&(t.value=e.value),e.dimensions&&(t.dimensions=l("dimensions",e.dimensions)),e.fragile!==void 0&&(t.fragile=e.fragile),e.hazardous!==void 0&&(t.hazardous=e.hazardous),e.temperatureControlled!==void 0&&(t.temperatureControlled=e.temperatureControlled),!Object.keys(t).length)throw new m("No updates specified");let i=await o(B,{id:n,input:t});p("Product updated"),s(e,i.updateProduct);}catch(t){a(t);}}),r.command("remove").description("Delete a product").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(K,{id:n});p(`Product ${n} deleted`),s(e,{deleted:t.deleteProduct});}catch(t){a(t);}});}function ut(c){let r=c.command("warehouses").description("Movethewheels warehouses & locations");r.command("list").description("List warehouses").option("--type <t>","Filter by warehouse type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type.toUpperCase()),n.status&&(e.status=n.status),n.query&&(e.search=n.query);let t=await o(X,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.warehouses,{headers:["ID","Code","Name","Type","Status","Capacity"],rows:t.warehouses.map(i=>[g(i.id,12),i.code,i.name,i.type,i.status,`${i.usedCapacity??0}/${i.totalCapacity??0}`])});}catch(e){a(e);}}),r.command("get").description("Get a warehouse by id (includes locations)").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Q,{id:n});if(!t.warehouse)throw new m(`Warehouse ${n} not found`);s(e,t.warehouse);}catch(t){a(t);}}),r.command("create").description("Create a warehouse").requiredOption("--code <code>","Warehouse code").requiredOption("--name <name>","Warehouse name").requiredOption("--type <t>","Warehouse type (DISTRIBUTION|FULFILLMENT|\u2026)").requiredOption("--address <json>","Address JSON").option("--status <s>","Status","ACTIVE").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",f).option("--used-capacity <n>","Used capacity",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={code:n.code,name:n.name,type:n.type.toUpperCase(),address:l("address",n.address),status:n.status??"ACTIVE"};n.contactInfo&&(e.contactInfo=l("contact-info",n.contactInfo)),n.operatingHours&&(e.operatingHours=l("operating-hours",n.operatingHours)),n.capabilities&&(e.capabilities=l("capabilities",n.capabilities)),n.totalCapacity!==void 0&&(e.totalCapacity=n.totalCapacity),n.usedCapacity!==void 0&&(e.usedCapacity=n.usedCapacity);let t=await o(Z,{input:e});p(`Warehouse created: ${t.createWarehouse.name}`),s(n,t.createWarehouse);}catch(e){a(e);}}),r.command("update").description("Update a warehouse").argument("<id>","Warehouse ID").option("--code <code>","Warehouse code").option("--name <name>","Warehouse name").option("--type <t>","Warehouse type").option("--status <s>","Status").option("--address <json>","Address JSON").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",f).option("--used-capacity <n>","Used capacity",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.code&&(t.code=e.code),e.name&&(t.name=e.name),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status),e.address&&(t.address=l("address",e.address)),e.contactInfo&&(t.contactInfo=l("contact-info",e.contactInfo)),e.operatingHours&&(t.operatingHours=l("operating-hours",e.operatingHours)),e.capabilities&&(t.capabilities=l("capabilities",e.capabilities)),e.totalCapacity!==void 0&&(t.totalCapacity=e.totalCapacity),e.usedCapacity!==void 0&&(t.usedCapacity=e.usedCapacity),!Object.keys(t).length)throw new m("No updates specified");let i=await o(ee,{id:n,input:t});p("Warehouse updated"),s(e,i.updateWarehouse);}catch(t){a(t);}}),r.command("remove").description("Delete a warehouse").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(te,{id:n});p(`Warehouse ${n} deleted`),s(e,{deleted:t.deleteWarehouse});}catch(t){a(t);}}),r.command("create-location").description("Create a warehouse location").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status","ACTIVE").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={warehouseId:n.warehouse,locationCode:n.code,status:n.status??"ACTIVE"};n.locationType&&(e.locationType=n.locationType),n.zone&&(e.zone=n.zone),n.aisle&&(e.aisle=n.aisle),n.rack&&(e.rack=n.rack),n.shelf&&(e.shelf=n.shelf),n.bin&&(e.bin=n.bin),n.capacity!==void 0&&(e.capacity=n.capacity);let t=await o(ne,{input:e});p(`Location created: ${t.createWarehouseLocation.locationCode}`),s(n,t.createWarehouseLocation);}catch(e){a(e);}}),r.command("update-location").description("Update a warehouse location").argument("<id>","Location ID").option("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.code&&(t.locationCode=e.code),e.locationType!==void 0&&(t.locationType=e.locationType),e.status&&(t.status=e.status),e.zone!==void 0&&(t.zone=e.zone),e.aisle!==void 0&&(t.aisle=e.aisle),e.rack!==void 0&&(t.rack=e.rack),e.shelf!==void 0&&(t.shelf=e.shelf),e.bin!==void 0&&(t.bin=e.bin),e.capacity!==void 0&&(t.capacity=e.capacity),!Object.keys(t).length)throw new m("No updates specified");let i=await o(ie,{id:n,input:t});p("Location updated"),s(e,i.updateWarehouseLocation);}catch(t){a(t);}});}function pt(c){let r={};return c.product&&(r.productId=c.product),c.warehouse&&(r.warehouseId=c.warehouse),c.location&&(r.locationId=c.location),c.query&&(r.search=c.query),Object.keys(r).length?r:void 0}function lt(c){let r=c.command("inventory").description("Movethewheels inventory");r.command("list").description("List inventory items").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(oe,{filter:pt(n),pagination:h(n)});s(n,e.inventoryItems,{headers:["ID","Product","Warehouse","OnHand","Available","Allocated"],rows:e.inventoryItems.map(t=>[g(t.id,12),g(t.productId,12),g(t.warehouseId,12),String(t.onHand),String(t.available),String(t.allocated)])});}catch(e){a(e);}}),r.command("get").description("Get an inventory item by id").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(re,{id:n});if(!t.inventoryItem)throw new m(`Inventory item ${n} not found`);s(e,t.inventoryItem);}catch(t){a(t);}}),r.command("stats").description("Inventory stats (on-hand, available, allocated, damaged, low-stock)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(se);s(n,e.inventoryStats);}catch(e){a(e);}}),r.command("create").description("Create an inventory item").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("--reorder-point <n>","Reorder point",u).option("--safety-stock <n>","Safety stock",u).option("--unit-cost <n>","Unit cost",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={productId:n.product,warehouseId:n.warehouse};n.location&&(e.locationId=n.location),n.onHand!==void 0&&(e.onHand=n.onHand),n.available!==void 0&&(e.available=n.available),n.allocated!==void 0&&(e.allocated=n.allocated),n.damaged!==void 0&&(e.damaged=n.damaged),n.reorderPoint!==void 0&&(e.reorderPoint=n.reorderPoint),n.safetyStock!==void 0&&(e.safetyStock=n.safetyStock),n.unitCost!==void 0&&(e.unitCost=n.unitCost);let t=await o(ce,{input:e});p("Inventory item created"),s(n,t.createInventoryItem);}catch(e){a(e);}}),r.command("update").description("Update an inventory item").argument("<id>","Inventory item ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("--reorder-point <n>","Reorder point",u).option("--safety-stock <n>","Safety stock",u).option("--unit-cost <n>","Unit cost",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.location!==void 0&&(t.locationId=e.location),e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),e.reorderPoint!==void 0&&(t.reorderPoint=e.reorderPoint),e.safetyStock!==void 0&&(t.safetyStock=e.safetyStock),e.unitCost!==void 0&&(t.unitCost=e.unitCost),!Object.keys(t).length)throw new m("No updates specified");let i=await o(de,{id:n,input:t});p("Inventory item updated"),s(e,i.updateInventoryItem);}catch(t){a(t);}}),r.command("remove").description("Delete an inventory item").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ue,{id:n});p(`Inventory item ${n} deleted`),s(e,{deleted:t.deleteInventoryItem});}catch(t){a(t);}}),r.command("adjust").description("Adjust inventory stock levels").argument("<id>","Inventory item ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={id:n};if(e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),Object.keys(t).length===1)throw new m("No stock adjustments specified");let i=await o(pe,{input:t});p("Inventory stock adjusted"),s(e,i.adjustInventoryStock);}catch(t){a(t);}}),r.command("transactions").description("List inventory transactions").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(ae,{filter:pt(n),pagination:h(n)});s(n,e.inventoryTransactions,{headers:["ID","Number","Type","Product","Warehouse","Qty"],rows:e.inventoryTransactions.map(t=>[g(t.id,12),t.transactionNumber,t.type,g(t.productId,12),g(t.warehouseId,12),String(t.quantity)])});}catch(e){a(e);}}),r.command("record-transaction").description("Record an inventory transaction").requiredOption("--number <s>","Transaction number").requiredOption("--type <t>","Transaction type (RECEIPT|ISSUE|TRANSFER|ADJUSTMENT|RETURN)").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--quantity <n>","Quantity",u).option("--inventory-item <id>","Inventory item ID").option("--unit-cost <n>","Unit cost",f).option("--reference-type <s>","Reference type").option("--reference-id <s>","Reference ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async n=>{try{let e={transactionNumber:n.number,type:n.type.toUpperCase(),productId:n.product,warehouseId:n.warehouse,quantity:n.quantity};n.inventoryItem&&(e.inventoryItemId=n.inventoryItem),n.unitCost!==void 0&&(e.unitCost=n.unitCost),n.referenceType&&(e.referenceType=n.referenceType),n.referenceId&&(e.referenceId=n.referenceId),n.notes&&(e.notes=n.notes);let t=await o(le,{input:e});p(`Transaction recorded: ${t.createInventoryTransaction.transactionNumber}`),s(n,t.createInventoryTransaction);}catch(e){a(e);}});}function mt(c){let r=c.command("orders").description("Movethewheels delivery orders");r.command("list").description("List orders").option("--customer <id>","Filter by customer ID").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--status <s>","Filter by order status").option("--order-type <t>","Filter by order type").option("--priority <p>","Filter by priority").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.customer&&(e.customerId=n.customer),n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.status&&(e.status=n.status.toUpperCase()),n.orderType&&(e.orderType=n.orderType.toUpperCase()),n.priority&&(e.priority=n.priority.toUpperCase()),n.query&&(e.search=n.query);let t=await o(fe,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.movethewheelsOrders,{headers:["ID","Order #","Type","Status","Priority","Tracking"],rows:t.movethewheelsOrders.map(i=>[g(i.id,12),i.orderNumber,i.orderType,i.status,i.priority,i.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("get").description("Get an order by id").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(me,{id:n});if(!t.movethewheelsOrder)throw new m(`Order ${n} not found`);s(e,t.movethewheelsOrder);}catch(t){a(t);}}),r.command("create").description("Create an order").requiredOption("--customer <id>","Customer ID").requiredOption("--order-number <s>","Order number").requiredOption("--pickup-address <json>","Pickup address JSON").requiredOption("--delivery-address <json>","Delivery address JSON").requiredOption("--items <json>","Items JSON").option("--order-type <t>","Order type","B2C").option("--priority <p>","Priority","MEDIUM").option("--status <s>","Status","PENDING").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={customerId:n.customer,orderNumber:n.orderNumber,pickupAddress:l("pickup-address",n.pickupAddress),deliveryAddress:l("delivery-address",n.deliveryAddress),items:l("items",n.items),orderType:(n.orderType??"B2C").toUpperCase(),priority:(n.priority??"MEDIUM").toUpperCase(),status:(n.status??"PENDING").toUpperCase()};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.trackingNumber&&(e.trackingNumber=n.trackingNumber),n.scheduledDelivery&&(e.scheduledDelivery=n.scheduledDelivery),n.specialInstructions&&(e.specialInstructions=n.specialInstructions),n.pricing&&(e.pricing=l("pricing",n.pricing));let t=await o(ge,{input:e});p(`Order created: ${t.createMovethewheelsOrder.orderNumber}`),s(n,t.createMovethewheelsOrder);}catch(e){a(e);}}),r.command("update").description("Update an order").argument("<id>","Order ID").option("--customer <id>","Customer ID").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--order-type <t>","Order type").option("--priority <p>","Priority").option("--status <s>","Status").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--delivery-address <json>","Delivery address JSON").option("--pickup-address <json>","Pickup address JSON").option("--items <json>","Items JSON").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.customer&&(t.customerId=e.customer),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.orderType&&(t.orderType=e.orderType.toUpperCase()),e.priority&&(t.priority=e.priority.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.scheduledDelivery&&(t.scheduledDelivery=e.scheduledDelivery),e.specialInstructions!==void 0&&(t.specialInstructions=e.specialInstructions),e.deliveryAddress&&(t.deliveryAddress=l("delivery-address",e.deliveryAddress)),e.pickupAddress&&(t.pickupAddress=l("pickup-address",e.pickupAddress)),e.items&&(t.items=l("items",e.items)),e.pricing&&(t.pricing=l("pricing",e.pricing)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(he,{id:n,input:t});p("Order updated"),s(e,i.updateMovethewheelsOrder);}catch(t){a(t);}}),r.command("remove").description("Delete an order").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ye,{id:n});p(`Order ${n} deleted`),s(e,{deleted:t.deleteMovethewheelsOrder});}catch(t){a(t);}}),r.command("set-status").description("Update an order status").argument("<id>","Order ID").requiredOption("--status <s>","PENDING|CONFIRMED|ASSIGNED|PICKED_UP|IN_TRANSIT|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED|CANCELLED").option("--notes <s>","Status notes").option("--location <json>","Location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={status:e.status.toUpperCase()};e.notes&&(t.notes=e.notes),e.location&&(t.location=l("location",e.location));let i=await o(ve,{id:n,input:t});p(`Order status set to ${i.updateMovethewheelsOrderStatus.status}`),s(e,i.updateMovethewheelsOrderStatus);}catch(t){a(t);}}),r.command("stats").description("Order stats (total, pending, in-transit, delivered, \u2026)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Ie);s(n,e.orderStats);}catch(e){a(e);}});}function ft(c){let r=c.command("shipments").description("Movethewheels shipments & tracking");r.command("list").description("List shipments").option("--order <id>","Filter by order ID").option("--customer <id>","Filter by customer ID").option("--carrier <id>","Filter by carrier ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.order&&(e.orderId=n.order),n.customer&&(e.customerId=n.customer),n.carrier&&(e.carrierId=n.carrier),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(Ee,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.shipments,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:t.shipments.map(i=>[g(i.id,12),i.shipmentNumber,g(i.orderId,12),i.status,i.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("get").description("Get a shipment by id (includes tracking events)").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(we,{id:n});if(!t.shipment)throw new m(`Shipment ${n} not found`);s(e,t.shipment);}catch(t){a(t);}}),r.command("active").description("List active deliveries (in-transit shipments)").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Ce,{pagination:h(n)});s(n,e.activeDeliveries,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:e.activeDeliveries.map(t=>[g(t.id,12),t.shipmentNumber,g(t.orderId,12),t.status,t.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("create").description("Create a shipment").requiredOption("--shipment-number <s>","Shipment number").requiredOption("--order <id>","Order ID").requiredOption("--origin <json>","Origin JSON").requiredOption("--destination <json>","Destination JSON").option("--status <s>","Status","PLANNED").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async n=>{try{let e={shipmentNumber:n.shipmentNumber,orderId:n.order,origin:l("origin",n.origin),destination:l("destination",n.destination),status:(n.status??"PLANNED").toUpperCase()};n.customer&&(e.customerId=n.customer),n.carrier&&(e.carrierId=n.carrier),n.trackingNumber&&(e.trackingNumber=n.trackingNumber),n.cargoDetails&&(e.cargoDetails=l("cargo-details",n.cargoDetails)),n.estimatedDelivery&&(e.estimatedDelivery=n.estimatedDelivery),n.actualDelivery&&(e.actualDelivery=n.actualDelivery);let t=await o(De,{input:e});p(`Shipment created: ${t.createShipment.shipmentNumber}`),s(n,t.createShipment);}catch(e){a(e);}}),r.command("update").description("Update a shipment").argument("<id>","Shipment ID").option("--status <s>","Status").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--origin <json>","Origin JSON").option("--destination <json>","Destination JSON").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.status&&(t.status=e.status.toUpperCase()),e.customer!==void 0&&(t.customerId=e.customer),e.carrier!==void 0&&(t.carrierId=e.carrier),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.origin&&(t.origin=l("origin",e.origin)),e.destination&&(t.destination=l("destination",e.destination)),e.cargoDetails&&(t.cargoDetails=l("cargo-details",e.cargoDetails)),e.estimatedDelivery&&(t.estimatedDelivery=e.estimatedDelivery),e.actualDelivery&&(t.actualDelivery=e.actualDelivery),!Object.keys(t).length)throw new m("No updates specified");let i=await o(Re,{id:n,input:t});p("Shipment updated"),s(e,i.updateShipment);}catch(t){a(t);}}),r.command("remove").description("Delete a shipment").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ke,{id:n});p(`Shipment ${n} deleted`),s(e,{deleted:t.deleteShipment});}catch(t){a(t);}}),r.command("add-event").description("Add a tracking event to a shipment").requiredOption("--shipment <id>","Shipment ID").requiredOption("--event-type <t>","CREATED|PICKED_UP|IN_TRANSIT|ARRIVED|DEPARTED|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED").option("--details <s>","Event details").option("--location <json>","Location JSON").option("--timestamp <s>","Timestamp (ISO date)").option("-f, --format <format>","Output format").action(async n=>{try{let e={shipmentId:n.shipment,eventType:n.eventType.toUpperCase()};n.details&&(e.details=n.details),n.location&&(e.location=l("location",n.location)),n.timestamp&&(e.timestamp=n.timestamp);let t=await o(Se,{input:e});p(`Tracking event added: ${t.addTrackingEvent.eventType}`),s(n,t.addTrackingEvent);}catch(e){a(e);}}),r.command("tracking").description("List tracking events for a shipment").argument("<shipmentId>","Shipment ID").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(be,{shipmentId:n,pagination:h(e)});s(e,t.shipmentTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.shipmentTracking.map(i=>[g(i.id,12),i.eventType,g(i.details??"-",30),i.timestamp])});}catch(t){a(t);}}),r.command("order-tracking").description("List tracking events for an order").argument("<orderId>","Order ID").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Oe,{orderId:n,pagination:h(e)});s(e,t.orderTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.orderTracking.map(i=>[g(i.id,12),i.eventType,g(i.details??"-",30),i.timestamp])});}catch(t){a(t);}}),r.command("alerts").description("List tracking alerts (delayed / at-risk shipments)").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Te,{pagination:h(n)});s(n,e.trackingAlerts,{headers:["Type","Shipment #","Message"],rows:e.trackingAlerts.map(t=>[t.alertType,t.shipmentNumber,g(t.message,40)])});}catch(e){a(e);}});}function gt(c){let r=c.command("routes").description("Movethewheels delivery routes");r.command("list").description("List routes").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--shipment <id>","Filter by shipment ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.shipment&&(e.shipmentId=n.shipment),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(xe,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.routes,{headers:["ID","Name","Status","Driver","Vehicle","Distance"],rows:t.routes.map(i=>[g(i.id,12),i.name,i.status,i.driverId?g(i.driverId,12):"-",i.vehicleId?g(i.vehicleId,12):"-",i.estimatedDistance!=null?String(i.estimatedDistance):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a route by id").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Ae,{id:n});if(!t.route)throw new m(`Route ${n} not found`);s(e,t.route);}catch(t){a(t);}}),r.command("create").description("Create a route").requiredOption("--name <name>","Route name").requiredOption("--waypoints <json>","Waypoints JSON").option("--status <s>","Status","PLANNED").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--estimated-distance <n>","Estimated distance",f).option("--estimated-duration <n>","Estimated duration",f).option("--actual-distance <n>","Actual distance",f).option("--actual-duration <n>","Actual duration",f).option("--fuel-cost <n>","Fuel cost",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,waypoints:l("waypoints",n.waypoints),status:(n.status??"PLANNED").toUpperCase()};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.shipment&&(e.shipmentId=n.shipment),n.estimatedDistance!==void 0&&(e.estimatedDistance=n.estimatedDistance),n.estimatedDuration!==void 0&&(e.estimatedDuration=n.estimatedDuration),n.actualDistance!==void 0&&(e.actualDistance=n.actualDistance),n.actualDuration!==void 0&&(e.actualDuration=n.actualDuration),n.fuelCost!==void 0&&(e.fuelCost=n.fuelCost);let t=await o(Ne,{input:e});p(`Route created: ${t.createRoute.name}`),s(n,t.createRoute);}catch(e){a(e);}}),r.command("update").description("Update a route").argument("<id>","Route ID").option("--name <name>","Route name").option("--status <s>","Status").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--waypoints <json>","Waypoints JSON").option("--estimated-distance <n>","Estimated distance",f).option("--estimated-duration <n>","Estimated duration",f).option("--actual-distance <n>","Actual distance",f).option("--actual-duration <n>","Actual duration",f).option("--fuel-cost <n>","Fuel cost",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.status&&(t.status=e.status.toUpperCase()),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.shipment!==void 0&&(t.shipmentId=e.shipment),e.waypoints&&(t.waypoints=l("waypoints",e.waypoints)),e.estimatedDistance!==void 0&&(t.estimatedDistance=e.estimatedDistance),e.estimatedDuration!==void 0&&(t.estimatedDuration=e.estimatedDuration),e.actualDistance!==void 0&&(t.actualDistance=e.actualDistance),e.actualDuration!==void 0&&(t.actualDuration=e.actualDuration),e.fuelCost!==void 0&&(t.fuelCost=e.fuelCost),!Object.keys(t).length)throw new m("No updates specified");let i=await o($e,{id:n,input:t});p("Route updated"),s(e,i.updateRoute);}catch(t){a(t);}}),r.command("remove").description("Delete a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Pe,{id:n});p(`Route ${n} deleted`),s(e,{deleted:t.deleteRoute});}catch(t){a(t);}}),r.command("optimize").description("Optimize a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(_e,{id:n});p("Route optimized"),s(e,t.optimizeRoute);}catch(t){a(t);}});}function ht(c){let r=c.command("marketplace").description("Movethewheels logistics marketplace (providers & offerings)"),n=r.command("providers").description("Service providers");n.command("list").description("List service providers").option("--type <t>","Filter by provider type").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let i={};t.type&&(i.type=t.type),t.active!==void 0&&(i.isActive=t.active),t.query&&(i.search=t.query);let d=await o(Me,{filter:Object.keys(i).length?i:void 0,pagination:h(t)});s(t,d.serviceProviders,{headers:["ID","Name","Type","Active","Verified","Rating"],rows:d.serviceProviders.map(v=>[g(v.id,12),v.name,v.type,v.isActive?"yes":"no",v.isVerified?"yes":"no",v.rating!=null?String(v.rating):"-"])});}catch(i){a(i);}}),n.command("get").description("Get a service provider by id (includes offerings)").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Le,{id:t});if(!d.serviceProvider)throw new m(`Provider ${t} not found`);s(i,d.serviceProvider);}catch(d){a(d);}}),n.command("create").description("Create a service provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",f).option("--active <bool>","Active (true|false)",t=>t==="true",true).option("--verified <bool>","Verified (true|false)",t=>t==="true",false).option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i={name:t.name,type:t.type,isActive:t.active??!0,isVerified:t.verified??!1};t.description&&(i.description=t.description),t.rating!==void 0&&(i.rating=t.rating),t.contactInfo&&(i.contactInfo=l("contact-info",t.contactInfo)),t.services&&(i.services=l("services",t.services));let d=await o(Ue,{input:i});p(`Provider created: ${d.createServiceProvider.name}`),s(t,d.createServiceProvider);}catch(i){a(i);}}),n.command("update").description("Update a service provider").argument("<id>","Provider ID").option("--name <name>","Provider name").option("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",f).option("--active <bool>","Active (true|false)",t=>t==="true").option("--verified <bool>","Verified (true|false)",t=>t==="true").option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d={};if(i.name&&(d.name=i.name),i.type&&(d.type=i.type),i.description!==void 0&&(d.description=i.description),i.rating!==void 0&&(d.rating=i.rating),i.active!==void 0&&(d.isActive=i.active),i.verified!==void 0&&(d.isVerified=i.verified),i.contactInfo&&(d.contactInfo=l("contact-info",i.contactInfo)),i.services&&(d.services=l("services",i.services)),!Object.keys(d).length)throw new m("No updates specified");let v=await o(qe,{id:t,input:d});p("Provider updated"),s(i,v.updateServiceProvider);}catch(d){a(d);}}),n.command("remove").description("Delete a service provider").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Ve,{id:t});p(`Provider ${t} deleted`),s(i,{deleted:d.deleteServiceProvider});}catch(d){a(d);}});let e=r.command("offerings").description("Service offerings");e.command("list").description("List service offerings").option("--provider <id>","Filter by provider ID").option("--category <c>","Filter by category").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let i={};t.provider&&(i.providerId=t.provider),t.category&&(i.category=t.category),t.query&&(i.search=t.query);let d=await o(We,{filter:Object.keys(i).length?i:void 0,pagination:h(t)});s(t,d.serviceOfferings,{headers:["ID","Name","Provider","Category","Price","Currency"],rows:d.serviceOfferings.map(v=>[g(v.id,12),v.name,g(v.providerId,12),v.category??"-",String(v.price),v.currency])});}catch(i){a(i);}}),e.command("get").description("Get a service offering by id").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Fe,{id:t});if(!d.serviceOffering)throw new m(`Offering ${t} not found`);s(i,d.serviceOffering);}catch(d){a(d);}}),e.command("create").description("Create a service offering").requiredOption("--provider <id>","Provider ID").requiredOption("--name <name>","Offering name").requiredOption("--price <n>","Price",f).option("--description <s>","Description").option("--category <c>","Category").option("--currency <c>","Currency","USD").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i={providerId:t.provider,name:t.name,price:t.price,currency:t.currency??"USD"};t.description&&(i.description=t.description),t.category&&(i.category=t.category),t.availability&&(i.availability=l("availability",t.availability));let d=await o(je,{input:i});p(`Offering created: ${d.createServiceOffering.name}`),s(t,d.createServiceOffering);}catch(i){a(i);}}),e.command("update").description("Update a service offering").argument("<id>","Offering ID").option("--name <name>","Offering name").option("--description <s>","Description").option("--category <c>","Category").option("--price <n>","Price",f).option("--currency <c>","Currency").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d={};if(i.name&&(d.name=i.name),i.description!==void 0&&(d.description=i.description),i.category!==void 0&&(d.category=i.category),i.price!==void 0&&(d.price=i.price),i.currency&&(d.currency=i.currency),i.availability&&(d.availability=l("availability",i.availability)),!Object.keys(d).length)throw new m("No updates specified");let v=await o(Ge,{id:t,input:d});p("Offering updated"),s(i,v.updateServiceOffering);}catch(d){a(d);}}),e.command("remove").description("Delete a service offering").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(He,{id:t});p(`Offering ${t} deleted`),s(i,{deleted:d.deleteServiceOffering});}catch(d){a(d);}});}function yt(c){let r=c.command("reports").description("Movethewheels reports & data import/export");r.command("list").description("List reports").option("--type <t>","Filter by report type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={};e.type&&(t.type=e.type),e.status&&(t.status=e.status),e.query&&(t.search=e.query);let i=await o(ze,{filter:Object.keys(t).length?t:void 0,pagination:h(e)});s(e,i.movethewheelsReports,{headers:["ID","Name","Type","Status","Schedule","Last Generated"],rows:i.movethewheelsReports.map(d=>[g(d.id,12),d.name,d.type,d.status,d.schedule??"-",d.lastGenerated??"-"])});}catch(t){a(t);}}),r.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i=await o(Je,{id:e});if(!i.movethewheelsReport)throw new m(`Report ${e} not found`);s(t,i.movethewheelsReport);}catch(i){a(i);}}),r.command("create").description("Create a report").requiredOption("--name <name>","Report name").requiredOption("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status","DRAFT").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,type:e.type,status:e.status??"DRAFT"};e.description&&(t.description=e.description),e.schedule&&(t.schedule=e.schedule),e.configuration&&(t.configuration=l("configuration",e.configuration));let i=await o(Ye,{input:t});p(`Report created: ${i.createMovethewheelsReport.name}`),s(e,i.createMovethewheelsReport);}catch(t){a(t);}}),r.command("update").description("Update a report").argument("<id>","Report ID").option("--name <name>","Report name").option("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i={};if(t.name&&(i.name=t.name),t.type&&(i.type=t.type),t.description!==void 0&&(i.description=t.description),t.status&&(i.status=t.status),t.schedule!==void 0&&(i.schedule=t.schedule),t.configuration&&(i.configuration=l("configuration",t.configuration)),!Object.keys(i).length)throw new m("No updates specified");let d=await o(Be,{id:e,input:i});p("Report updated"),s(t,d.updateMovethewheelsReport);}catch(i){a(i);}}),r.command("remove").description("Delete a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i=await o(Ke,{id:e});p(`Report ${e} deleted`),s(t,{deleted:i.deleteMovethewheelsReport});}catch(i){a(i);}}),r.command("generate").description("Generate a report run").argument("<id>","Report ID").option("--parameters <json>","Parameters JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i={reportId:e};t.parameters&&(i.parameters=l("parameters",t.parameters));let d=await o(Qe,{input:i});p("Report generated"),s(t,d.generateMovethewheelsReport);}catch(i){a(i);}}),r.command("export").description("Export resource data").requiredOption("--resource <r>","Resource to export").option("--export-format <f>","Export format","json").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,format:e.exportFormat??"json"},i=await o(Xe,{input:t});p("Data exported"),s(e,i.exportData);}catch(t){a(t);}}),r.command("import").description("Import resource data").requiredOption("--resource <r>","Resource to import").requiredOption("--payload <json>","Payload JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,payload:l("payload",e.payload)},i=await o(Ze,{input:t});p("Data imported"),s(e,i.importData);}catch(t){a(t);}});let n=c.command("settings").description("Movethewheels module settings");n.command("get").description("Get module settings").option("-f, --format <format>","Output format").action(async e=>{try{let t=await o(et);s(e,t.moduleSettings);}catch(t){a(t);}}),n.command("update").description("Update module settings preferences").requiredOption("--preferences <json>","Preferences JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={preferences:l("preferences",e.preferences)},i=await o(tt,{input:t});p("Module settings updated"),s(e,i.updateModuleSettings);}catch(t){a(t);}});}function vt(c){let r=c.command("analytics").description("Movethewheels analytics & dashboards");r.command("dashboard").description("Dashboard metrics (orders, deliveries, revenue, fleet, low stock)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(it);s(n,e.dashboardMetrics);}catch(e){a(e);}}),r.command("trends").description("Analytics time series (order, revenue, delivery trends)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(nt);s(n,e.analytics);}catch(e){a(e);}}),r.command("finance").description("Finance metrics (revenue, fuel cost, open invoices)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(rt);s(n,e.financeMetrics);}catch(e){a(e);}}),r.command("fleet").description("Fleet stats (vehicles & drivers by status)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(ot);s(n,e.fleetStats);}catch(e){a(e);}});}var xt={id:"movethewheels",version:"1.0.0",displayName:"Movethewheels",dependsOn:["auth","workspaces"],register(c,r){D(r);let n=c.command("movethewheels").description("Movethewheels logistics & fleet operations");at(n),st(n),ct(n),dt(n),ut(n),lt(n),mt(n),ft(n),gt(n),ht(n),yt(n),vt(n);}},Ui=xt;module.exports=Ui;
|
|
@@ -102,13 +102,13 @@ import {a,b as b$1,h as h$1,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'.
|
|
|
102
102
|
mutation MovethewheelsDeleteVehicle($id: ID!) {
|
|
103
103
|
deleteVehicle(id: $id)
|
|
104
104
|
}
|
|
105
|
-
`,
|
|
105
|
+
`,x=`
|
|
106
106
|
mutation MovethewheelsUpdateVehicleStatus($id: ID!, $status: VehicleStatus!) {
|
|
107
107
|
updateVehicleStatus(id: $id, status: $status) {
|
|
108
108
|
id vehicleNumber status updatedAt
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
`,
|
|
111
|
+
`,q=`
|
|
112
112
|
mutation MovethewheelsUpdateVehicleLocation($id: ID!, $location: JSON!) {
|
|
113
113
|
updateVehicleLocation(id: $id, location: $location) {
|
|
114
114
|
id vehicleNumber currentLocation updatedAt
|
|
@@ -127,14 +127,14 @@ import {a,b as b$1,h as h$1,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'.
|
|
|
127
127
|
id sku name category brand weight value fragile hazardous createdAt
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
-
`,
|
|
130
|
+
`,W=`
|
|
131
131
|
mutation MovethewheelsCreateProduct($input: CreateProductInput!) {
|
|
132
132
|
createProduct(input: $input) {
|
|
133
133
|
id sku name description category brand weight value fragile hazardous
|
|
134
134
|
temperatureControlled createdAt
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
`,
|
|
137
|
+
`,G=`
|
|
138
138
|
mutation MovethewheelsUpdateProduct($id: ID!, $input: UpdateProductInput!) {
|
|
139
139
|
updateProduct(id: $id, input: $input) {
|
|
140
140
|
id sku name description category brand weight value fragile hazardous
|
|
@@ -453,13 +453,13 @@ import {a,b as b$1,h as h$1,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'.
|
|
|
453
453
|
id providerId name description category price currency availability createdAt
|
|
454
454
|
}
|
|
455
455
|
}
|
|
456
|
-
`,
|
|
456
|
+
`,xe=`
|
|
457
457
|
mutation MovethewheelsUpdateServiceOffering($id: ID!, $input: UpdateServiceOfferingInput!) {
|
|
458
458
|
updateServiceOffering(id: $id, input: $input) {
|
|
459
459
|
id providerId name description category price currency availability updatedAt
|
|
460
460
|
}
|
|
461
461
|
}
|
|
462
|
-
`,
|
|
462
|
+
`,qe=`
|
|
463
463
|
mutation MovethewheelsDeleteServiceOffering($id: ID!) {
|
|
464
464
|
deleteServiceOffering(id: $id)
|
|
465
465
|
}
|
|
@@ -479,13 +479,13 @@ import {a,b as b$1,h as h$1,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'.
|
|
|
479
479
|
id name type status schedule lastGenerated createdAt
|
|
480
480
|
}
|
|
481
481
|
}
|
|
482
|
-
`,
|
|
482
|
+
`,We=`
|
|
483
483
|
mutation MovethewheelsCreateReport($input: CreateMovethewheelsReportInput!) {
|
|
484
484
|
createMovethewheelsReport(input: $input) {
|
|
485
485
|
id name description type status schedule configuration createdAt
|
|
486
486
|
}
|
|
487
487
|
}
|
|
488
|
-
`,
|
|
488
|
+
`,Ge=`
|
|
489
489
|
mutation MovethewheelsUpdateReport($id: ID!, $input: UpdateMovethewheelsReportInput!) {
|
|
490
490
|
updateMovethewheelsReport(id: $id, input: $input) {
|
|
491
491
|
id name description type status schedule configuration updatedAt
|
|
@@ -556,10 +556,4 @@ import {a,b as b$1,h as h$1,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'.
|
|
|
556
556
|
totalDrivers availableDrivers onDeliveryDrivers
|
|
557
557
|
}
|
|
558
558
|
}
|
|
559
|
-
`,tt=`
|
|
560
|
-
query MovethewheelsAssistantInsights($question: String!) {
|
|
561
|
-
assistantInsights(question: $question) {
|
|
562
|
-
question answer generatedAt
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
`;function u(m,r){try{return JSON.parse(r)}catch{throw new o(`--${m} must be valid JSON`)}}function c(m){let r=Number.parseInt(m,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${m}"`);return r}function l(m){let r=Number.parseFloat(m);if(Number.isNaN(r))throw new o(`Expected a number but got "${m}"`);return r}function h(m){let r={};return m.limit!==void 0&&(r.limit=m.limit),m.offset!==void 0&&(r.offset=m.offset),Object.keys(r).length?r:void 0}function it(m){let r=m.command("customers").description("Movethewheels customers");r.command("list").description("List customers").option("--type <t>","Filter by customer type (b2c/b2b)").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type),i.query&&(e.search=i.query);let t=await b$1(O,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.customers,{headers:["ID","Name","Type","Email","Phone","Rating"],rows:t.customers.map(n=>[p(n.id,12),n.name,n.type,n.email??"-",n.phone??"-",n.rating!=null?String(n.rating):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a customer by id").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(D,{id:i});if(!t.customer)throw new o(`Customer ${i} not found`);h$1(e,t.customer);}catch(t){g(t);}}),r.command("create").description("Create a customer").requiredOption("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type","b2c").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",l).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,type:i$1.type??"b2c"};i$1.email&&(e.email=i$1.email),i$1.phone&&(e.phone=i$1.phone),i$1.company&&(e.company=i$1.company),i$1.taxId&&(e.taxId=i$1.taxId),i$1.businessLicense&&(e.businessLicense=i$1.businessLicense),i$1.rating!==void 0&&(e.rating=i$1.rating),i$1.address&&(e.address=u("address",i$1.address));let t=await b$1(R,{input:e});i(`Customer created: ${t.createCustomer.name}`),h$1(i$1,t.createCustomer);}catch(e){g(e);}}),r.command("update").description("Update a customer").argument("<id>","Customer ID").option("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",l).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.company!==void 0&&(t.company=e.company),e.type&&(t.type=e.type),e.taxId!==void 0&&(t.taxId=e.taxId),e.businessLicense!==void 0&&(t.businessLicense=e.businessLicense),e.rating!==void 0&&(t.rating=e.rating),e.address&&(t.address=u("address",e.address)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(b,{id:i$1,input:t});i("Customer updated"),h$1(e,n.updateCustomer);}catch(t){g(t);}}),r.command("remove").description("Delete a customer").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(T,{id:i$1});i(`Customer ${i$1} deleted`),h$1(e,{deleted:t.deleteCustomer});}catch(t){g(t);}});}function nt(m){let r=m.command("drivers").description("Movethewheels drivers");r.command("list").description("List drivers").option("--status <s>","Filter by driver status").option("--vehicle <id>","Filter by vehicle ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.status&&(e.status=i.status.toUpperCase()),i.vehicle&&(e.vehicleId=i.vehicle),i.query&&(e.search=i.query);let t=await b$1(S,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.drivers,{headers:["ID","Name","Employee","Status","Vehicle","Rating"],rows:t.drivers.map(n=>[p(n.id,12),`${n.firstName} ${n.lastName}`,n.employeeId,n.status,n.vehicleId?p(n.vehicleId,12):"-",n.rating!=null?String(n.rating):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a driver by id").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(C,{id:i});if(!t.driver)throw new o(`Driver ${i} not found`);h$1(e,t.driver);}catch(t){g(t);}}),r.command("create").description("Create a driver").requiredOption("--employee-id <s>","Employee ID").requiredOption("--first-name <s>","First name").requiredOption("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status","AVAILABLE").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--user-id <id>","User ID").option("--rating <n>","Rating",l).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={employeeId:i$1.employeeId,firstName:i$1.firstName,lastName:i$1.lastName,status:(i$1.status??"AVAILABLE").toUpperCase()};i$1.email&&(e.email=i$1.email),i$1.phone&&(e.phone=i$1.phone),i$1.licenseNumber&&(e.licenseNumber=i$1.licenseNumber),i$1.licenseClass&&(e.licenseClass=i$1.licenseClass),i$1.licenseExpiry&&(e.licenseExpiry=i$1.licenseExpiry),i$1.vehicleId&&(e.vehicleId=i$1.vehicleId),i$1.userId&&(e.userId=i$1.userId),i$1.rating!==void 0&&(e.rating=i$1.rating),i$1.certifications&&(e.certifications=u("certifications",i$1.certifications)),i$1.currentLocation&&(e.currentLocation=u("current-location",i$1.currentLocation));let t=await b$1(A,{input:e});i(`Driver created: ${t.createDriver.firstName} ${t.createDriver.lastName}`),h$1(i$1,t.createDriver);}catch(e){g(e);}}),r.command("update").description("Update a driver").argument("<id>","Driver ID").option("--first-name <s>","First name").option("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--rating <n>","Rating",l).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.firstName&&(t.firstName=e.firstName),e.lastName&&(t.lastName=e.lastName),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.status&&(t.status=e.status.toUpperCase()),e.licenseNumber!==void 0&&(t.licenseNumber=e.licenseNumber),e.licenseClass!==void 0&&(t.licenseClass=e.licenseClass),e.licenseExpiry&&(t.licenseExpiry=e.licenseExpiry),e.vehicleId!==void 0&&(t.vehicleId=e.vehicleId),e.rating!==void 0&&(t.rating=e.rating),e.certifications&&(t.certifications=u("certifications",e.certifications)),e.currentLocation&&(t.currentLocation=u("current-location",e.currentLocation)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(N,{id:i$1,input:t});i("Driver updated"),h$1(e,n.updateDriver);}catch(t){g(t);}}),r.command("remove").description("Delete a driver").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(k,{id:i$1});i(`Driver ${i$1} deleted`),h$1(e,{deleted:t.deleteDriver});}catch(t){g(t);}}),r.command("set-status").description("Update a driver status").argument("<id>","Driver ID").requiredOption("--status <s>","AVAILABLE|ON_DELIVERY|ON_BREAK|OFF_DUTY|INACTIVE").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1($,{id:i$1,status:e.status.toUpperCase()});i(`Driver status set to ${t.updateDriverStatus.status}`),h$1(e,t.updateDriverStatus);}catch(t){g(t);}}),r.command("assign-vehicle").description("Assign (or clear) a vehicle for a driver").argument("<id>","Driver ID").option("--vehicle <id>","Vehicle ID (omit to clear assignment)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(P,{id:i$1,vehicleId:e.vehicle});i(e.vehicle?`Vehicle ${e.vehicle} assigned`:"Vehicle assignment cleared"),h$1(e,t.assignDriverVehicle);}catch(t){g(t);}});}function rt(m){let r=m.command("vehicles").description("Movethewheels fleet vehicles");r.command("list").description("List vehicles").option("--type <t>","Filter by vehicle type").option("--status <s>","Filter by vehicle status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type.toUpperCase()),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(M,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.vehicles,{headers:["ID","Number","Type","Status","Make/Model","Plate"],rows:t.vehicles.map(n=>[p(n.id,12),n.vehicleNumber,n.type,n.status,`${n.make??"-"} ${n.model??""}`.trim(),n.licensePlate??"-"])});}catch(e){g(e);}}),r.command("get").description("Get a vehicle by id").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(_,{id:i});if(!t.vehicle)throw new o(`Vehicle ${i} not found`);h$1(e,t.vehicle);}catch(t){g(t);}}),r.command("create").description("Create a vehicle").requiredOption("--number <s>","Vehicle number").requiredOption("--type <t>","Vehicle type (TRUCK|VAN|MOTORCYCLE|\u2026)").option("--status <s>","Vehicle status","ACTIVE").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",c).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",l).option("--mileage <n>","Mileage",l).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={vehicleNumber:i$1.number,type:i$1.type.toUpperCase(),status:(i$1.status??"ACTIVE").toUpperCase()};i$1.make&&(e.make=i$1.make),i$1.model&&(e.model=i$1.model),i$1.year!==void 0&&(e.year=i$1.year),i$1.licensePlate&&(e.licensePlate=i$1.licensePlate),i$1.fuelLevel!==void 0&&(e.fuelLevel=i$1.fuelLevel),i$1.mileage!==void 0&&(e.mileage=i$1.mileage),i$1.ownershipType&&(e.ownershipType=i$1.ownershipType),i$1.capacity&&(e.capacity=u("capacity",i$1.capacity)),i$1.currentLocation&&(e.currentLocation=u("current-location",i$1.currentLocation));let t=await b$1(U,{input:e});i(`Vehicle created: ${t.createVehicle.vehicleNumber}`),h$1(i$1,t.createVehicle);}catch(e){g(e);}}),r.command("update").description("Update a vehicle").argument("<id>","Vehicle ID").option("--number <s>","Vehicle number").option("--type <t>","Vehicle type").option("--status <s>","Vehicle status").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",c).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",l).option("--mileage <n>","Mileage",l).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.number&&(t.vehicleNumber=e.number),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.make!==void 0&&(t.make=e.make),e.model!==void 0&&(t.model=e.model),e.year!==void 0&&(t.year=e.year),e.licensePlate!==void 0&&(t.licensePlate=e.licensePlate),e.fuelLevel!==void 0&&(t.fuelLevel=e.fuelLevel),e.mileage!==void 0&&(t.mileage=e.mileage),e.ownershipType!==void 0&&(t.ownershipType=e.ownershipType),e.capacity&&(t.capacity=u("capacity",e.capacity)),e.currentLocation&&(t.currentLocation=u("current-location",e.currentLocation)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(L,{id:i$1,input:t});i("Vehicle updated"),h$1(e,n.updateVehicle);}catch(t){g(t);}}),r.command("remove").description("Delete a vehicle").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(V,{id:i$1});i(`Vehicle ${i$1} deleted`),h$1(e,{deleted:t.deleteVehicle});}catch(t){g(t);}}),r.command("set-status").description("Update a vehicle status").argument("<id>","Vehicle ID").requiredOption("--status <s>","ACTIVE|INACTIVE|IN_TRANSIT|MAINTENANCE|DECOMMISSIONED").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(q,{id:i$1,status:e.status.toUpperCase()});i(`Vehicle status set to ${t.updateVehicleStatus.status}`),h$1(e,t.updateVehicleStatus);}catch(t){g(t);}}),r.command("set-location").description("Update a vehicle current location").argument("<id>","Vehicle ID").requiredOption("--location <json>","Location JSON (latitude/longitude/\u2026)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=u("location",e.location),n=await b$1(x,{id:i$1,location:t});i("Vehicle location updated"),h$1(e,n.updateVehicleLocation);}catch(t){g(t);}});}function at(m){let r=m.command("products").description("Movethewheels catalog products");r.command("list").description("List products").option("--category <c>","Filter by category").option("--sku <s>","Filter by SKU").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.category&&(e.category=i.category),i.sku&&(e.sku=i.sku),i.query&&(e.search=i.query);let t=await b$1(j,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.products,{headers:["ID","SKU","Name","Category","Brand","Weight"],rows:t.products.map(n=>[p(n.id,12),n.sku,n.name,n.category??"-",n.brand??"-",n.weight!=null?String(n.weight):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a product by id").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(F,{id:i});if(!t.product)throw new o(`Product ${i} not found`);h$1(e,t.product);}catch(t){g(t);}}),r.command("create").description("Create a product").requiredOption("--name <name>","Product name").requiredOption("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",l).option("--value <n>","Value",l).option("--dimensions <json>","Dimensions JSON").option("--fragile","Mark as fragile").option("--hazardous","Mark as hazardous").option("--temperature-controlled","Mark as temperature controlled").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,sku:i$1.sku};i$1.description&&(e.description=i$1.description),i$1.category&&(e.category=i$1.category),i$1.brand&&(e.brand=i$1.brand),i$1.weight!==void 0&&(e.weight=i$1.weight),i$1.value!==void 0&&(e.value=i$1.value),i$1.dimensions&&(e.dimensions=u("dimensions",i$1.dimensions)),i$1.fragile&&(e.fragile=!0),i$1.hazardous&&(e.hazardous=!0),i$1.temperatureControlled&&(e.temperatureControlled=!0);let t=await b$1(G,{input:e});i(`Product created: ${t.createProduct.name}`),h$1(i$1,t.createProduct);}catch(e){g(e);}}),r.command("update").description("Update a product").argument("<id>","Product ID").option("--name <name>","Product name").option("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",l).option("--value <n>","Value",l).option("--dimensions <json>","Dimensions JSON").option("--fragile <bool>","true|false",i=>i==="true").option("--hazardous <bool>","true|false",i=>i==="true").option("--temperature-controlled <bool>","true|false",i=>i==="true").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.sku&&(t.sku=e.sku),e.description!==void 0&&(t.description=e.description),e.category!==void 0&&(t.category=e.category),e.brand!==void 0&&(t.brand=e.brand),e.weight!==void 0&&(t.weight=e.weight),e.value!==void 0&&(t.value=e.value),e.dimensions&&(t.dimensions=u("dimensions",e.dimensions)),e.fragile!==void 0&&(t.fragile=e.fragile),e.hazardous!==void 0&&(t.hazardous=e.hazardous),e.temperatureControlled!==void 0&&(t.temperatureControlled=e.temperatureControlled),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(W,{id:i$1,input:t});i("Product updated"),h$1(e,n.updateProduct);}catch(t){g(t);}}),r.command("remove").description("Delete a product").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(H,{id:i$1});i(`Product ${i$1} deleted`),h$1(e,{deleted:t.deleteProduct});}catch(t){g(t);}});}function ot(m){let r=m.command("warehouses").description("Movethewheels warehouses & locations");r.command("list").description("List warehouses").option("--type <t>","Filter by warehouse type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type.toUpperCase()),i.status&&(e.status=i.status),i.query&&(e.search=i.query);let t=await b$1(z,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.warehouses,{headers:["ID","Code","Name","Type","Status","Capacity"],rows:t.warehouses.map(n=>[p(n.id,12),n.code,n.name,n.type,n.status,`${n.usedCapacity??0}/${n.totalCapacity??0}`])});}catch(e){g(e);}}),r.command("get").description("Get a warehouse by id (includes locations)").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(J,{id:i});if(!t.warehouse)throw new o(`Warehouse ${i} not found`);h$1(e,t.warehouse);}catch(t){g(t);}}),r.command("create").description("Create a warehouse").requiredOption("--code <code>","Warehouse code").requiredOption("--name <name>","Warehouse name").requiredOption("--type <t>","Warehouse type (DISTRIBUTION|FULFILLMENT|\u2026)").requiredOption("--address <json>","Address JSON").option("--status <s>","Status","ACTIVE").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",l).option("--used-capacity <n>","Used capacity",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={code:i$1.code,name:i$1.name,type:i$1.type.toUpperCase(),address:u("address",i$1.address),status:i$1.status??"ACTIVE"};i$1.contactInfo&&(e.contactInfo=u("contact-info",i$1.contactInfo)),i$1.operatingHours&&(e.operatingHours=u("operating-hours",i$1.operatingHours)),i$1.capabilities&&(e.capabilities=u("capabilities",i$1.capabilities)),i$1.totalCapacity!==void 0&&(e.totalCapacity=i$1.totalCapacity),i$1.usedCapacity!==void 0&&(e.usedCapacity=i$1.usedCapacity);let t=await b$1(Y,{input:e});i(`Warehouse created: ${t.createWarehouse.name}`),h$1(i$1,t.createWarehouse);}catch(e){g(e);}}),r.command("update").description("Update a warehouse").argument("<id>","Warehouse ID").option("--code <code>","Warehouse code").option("--name <name>","Warehouse name").option("--type <t>","Warehouse type").option("--status <s>","Status").option("--address <json>","Address JSON").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",l).option("--used-capacity <n>","Used capacity",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.code&&(t.code=e.code),e.name&&(t.name=e.name),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status),e.address&&(t.address=u("address",e.address)),e.contactInfo&&(t.contactInfo=u("contact-info",e.contactInfo)),e.operatingHours&&(t.operatingHours=u("operating-hours",e.operatingHours)),e.capabilities&&(t.capabilities=u("capabilities",e.capabilities)),e.totalCapacity!==void 0&&(t.totalCapacity=e.totalCapacity),e.usedCapacity!==void 0&&(t.usedCapacity=e.usedCapacity),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(B,{id:i$1,input:t});i("Warehouse updated"),h$1(e,n.updateWarehouse);}catch(t){g(t);}}),r.command("remove").description("Delete a warehouse").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(K,{id:i$1});i(`Warehouse ${i$1} deleted`),h$1(e,{deleted:t.deleteWarehouse});}catch(t){g(t);}}),r.command("create-location").description("Create a warehouse location").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status","ACTIVE").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={warehouseId:i$1.warehouse,locationCode:i$1.code,status:i$1.status??"ACTIVE"};i$1.locationType&&(e.locationType=i$1.locationType),i$1.zone&&(e.zone=i$1.zone),i$1.aisle&&(e.aisle=i$1.aisle),i$1.rack&&(e.rack=i$1.rack),i$1.shelf&&(e.shelf=i$1.shelf),i$1.bin&&(e.bin=i$1.bin),i$1.capacity!==void 0&&(e.capacity=i$1.capacity);let t=await b$1(Z,{input:e});i(`Location created: ${t.createWarehouseLocation.locationCode}`),h$1(i$1,t.createWarehouseLocation);}catch(e){g(e);}}),r.command("update-location").description("Update a warehouse location").argument("<id>","Location ID").option("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.code&&(t.locationCode=e.code),e.locationType!==void 0&&(t.locationType=e.locationType),e.status&&(t.status=e.status),e.zone!==void 0&&(t.zone=e.zone),e.aisle!==void 0&&(t.aisle=e.aisle),e.rack!==void 0&&(t.rack=e.rack),e.shelf!==void 0&&(t.shelf=e.shelf),e.bin!==void 0&&(t.bin=e.bin),e.capacity!==void 0&&(t.capacity=e.capacity),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(Q,{id:i$1,input:t});i("Location updated"),h$1(e,n.updateWarehouseLocation);}catch(t){g(t);}});}function st(m){let r={};return m.product&&(r.productId=m.product),m.warehouse&&(r.warehouseId=m.warehouse),m.location&&(r.locationId=m.location),m.query&&(r.search=m.query),Object.keys(r).length?r:void 0}function dt(m){let r=m.command("inventory").description("Movethewheels inventory");r.command("list").description("List inventory items").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ee,{filter:st(i),pagination:h(i)});h$1(i,e.inventoryItems,{headers:["ID","Product","Warehouse","OnHand","Available","Allocated"],rows:e.inventoryItems.map(t=>[p(t.id,12),p(t.productId,12),p(t.warehouseId,12),String(t.onHand),String(t.available),String(t.allocated)])});}catch(e){g(e);}}),r.command("get").description("Get an inventory item by id").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(X,{id:i});if(!t.inventoryItem)throw new o(`Inventory item ${i} not found`);h$1(e,t.inventoryItem);}catch(t){g(t);}}),r.command("stats").description("Inventory stats (on-hand, available, allocated, damaged, low-stock)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ie);h$1(i,e.inventoryStats);}catch(e){g(e);}}),r.command("create").description("Create an inventory item").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("--reorder-point <n>","Reorder point",c).option("--safety-stock <n>","Safety stock",c).option("--unit-cost <n>","Unit cost",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={productId:i$1.product,warehouseId:i$1.warehouse};i$1.location&&(e.locationId=i$1.location),i$1.onHand!==void 0&&(e.onHand=i$1.onHand),i$1.available!==void 0&&(e.available=i$1.available),i$1.allocated!==void 0&&(e.allocated=i$1.allocated),i$1.damaged!==void 0&&(e.damaged=i$1.damaged),i$1.reorderPoint!==void 0&&(e.reorderPoint=i$1.reorderPoint),i$1.safetyStock!==void 0&&(e.safetyStock=i$1.safetyStock),i$1.unitCost!==void 0&&(e.unitCost=i$1.unitCost);let t=await b$1(ne,{input:e});i("Inventory item created"),h$1(i$1,t.createInventoryItem);}catch(e){g(e);}}),r.command("update").description("Update an inventory item").argument("<id>","Inventory item ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("--reorder-point <n>","Reorder point",c).option("--safety-stock <n>","Safety stock",c).option("--unit-cost <n>","Unit cost",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.location!==void 0&&(t.locationId=e.location),e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),e.reorderPoint!==void 0&&(t.reorderPoint=e.reorderPoint),e.safetyStock!==void 0&&(t.safetyStock=e.safetyStock),e.unitCost!==void 0&&(t.unitCost=e.unitCost),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(re,{id:i$1,input:t});i("Inventory item updated"),h$1(e,n.updateInventoryItem);}catch(t){g(t);}}),r.command("remove").description("Delete an inventory item").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(ae,{id:i$1});i(`Inventory item ${i$1} deleted`),h$1(e,{deleted:t.deleteInventoryItem});}catch(t){g(t);}}),r.command("adjust").description("Adjust inventory stock levels").argument("<id>","Inventory item ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={id:i$1};if(e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),Object.keys(t).length===1)throw new o("No stock adjustments specified");let n=await b$1(oe,{input:t});i("Inventory stock adjusted"),h$1(e,n.adjustInventoryStock);}catch(t){g(t);}}),r.command("transactions").description("List inventory transactions").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(te,{filter:st(i),pagination:h(i)});h$1(i,e.inventoryTransactions,{headers:["ID","Number","Type","Product","Warehouse","Qty"],rows:e.inventoryTransactions.map(t=>[p(t.id,12),t.transactionNumber,t.type,p(t.productId,12),p(t.warehouseId,12),String(t.quantity)])});}catch(e){g(e);}}),r.command("record-transaction").description("Record an inventory transaction").requiredOption("--number <s>","Transaction number").requiredOption("--type <t>","Transaction type (RECEIPT|ISSUE|TRANSFER|ADJUSTMENT|RETURN)").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--quantity <n>","Quantity",c).option("--inventory-item <id>","Inventory item ID").option("--unit-cost <n>","Unit cost",l).option("--reference-type <s>","Reference type").option("--reference-id <s>","Reference ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={transactionNumber:i$1.number,type:i$1.type.toUpperCase(),productId:i$1.product,warehouseId:i$1.warehouse,quantity:i$1.quantity};i$1.inventoryItem&&(e.inventoryItemId=i$1.inventoryItem),i$1.unitCost!==void 0&&(e.unitCost=i$1.unitCost),i$1.referenceType&&(e.referenceType=i$1.referenceType),i$1.referenceId&&(e.referenceId=i$1.referenceId),i$1.notes&&(e.notes=i$1.notes);let t=await b$1(se,{input:e});i(`Transaction recorded: ${t.createInventoryTransaction.transactionNumber}`),h$1(i$1,t.createInventoryTransaction);}catch(e){g(e);}});}function ct(m){let r=m.command("orders").description("Movethewheels delivery orders");r.command("list").description("List orders").option("--customer <id>","Filter by customer ID").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--status <s>","Filter by order status").option("--order-type <t>","Filter by order type").option("--priority <p>","Filter by priority").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.customer&&(e.customerId=i.customer),i.driver&&(e.driverId=i.driver),i.vehicle&&(e.vehicleId=i.vehicle),i.status&&(e.status=i.status.toUpperCase()),i.orderType&&(e.orderType=i.orderType.toUpperCase()),i.priority&&(e.priority=i.priority.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(ce,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.movethewheelsOrders,{headers:["ID","Order #","Type","Status","Priority","Tracking"],rows:t.movethewheelsOrders.map(n=>[p(n.id,12),n.orderNumber,n.orderType,n.status,n.priority,n.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("get").description("Get an order by id").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(de,{id:i});if(!t.movethewheelsOrder)throw new o(`Order ${i} not found`);h$1(e,t.movethewheelsOrder);}catch(t){g(t);}}),r.command("create").description("Create an order").requiredOption("--customer <id>","Customer ID").requiredOption("--order-number <s>","Order number").requiredOption("--pickup-address <json>","Pickup address JSON").requiredOption("--delivery-address <json>","Delivery address JSON").requiredOption("--items <json>","Items JSON").option("--order-type <t>","Order type","B2C").option("--priority <p>","Priority","MEDIUM").option("--status <s>","Status","PENDING").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={customerId:i$1.customer,orderNumber:i$1.orderNumber,pickupAddress:u("pickup-address",i$1.pickupAddress),deliveryAddress:u("delivery-address",i$1.deliveryAddress),items:u("items",i$1.items),orderType:(i$1.orderType??"B2C").toUpperCase(),priority:(i$1.priority??"MEDIUM").toUpperCase(),status:(i$1.status??"PENDING").toUpperCase()};i$1.driver&&(e.driverId=i$1.driver),i$1.vehicle&&(e.vehicleId=i$1.vehicle),i$1.trackingNumber&&(e.trackingNumber=i$1.trackingNumber),i$1.scheduledDelivery&&(e.scheduledDelivery=i$1.scheduledDelivery),i$1.specialInstructions&&(e.specialInstructions=i$1.specialInstructions),i$1.pricing&&(e.pricing=u("pricing",i$1.pricing));let t=await b$1(pe,{input:e});i(`Order created: ${t.createMovethewheelsOrder.orderNumber}`),h$1(i$1,t.createMovethewheelsOrder);}catch(e){g(e);}}),r.command("update").description("Update an order").argument("<id>","Order ID").option("--customer <id>","Customer ID").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--order-type <t>","Order type").option("--priority <p>","Priority").option("--status <s>","Status").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--delivery-address <json>","Delivery address JSON").option("--pickup-address <json>","Pickup address JSON").option("--items <json>","Items JSON").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.customer&&(t.customerId=e.customer),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.orderType&&(t.orderType=e.orderType.toUpperCase()),e.priority&&(t.priority=e.priority.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.scheduledDelivery&&(t.scheduledDelivery=e.scheduledDelivery),e.specialInstructions!==void 0&&(t.specialInstructions=e.specialInstructions),e.deliveryAddress&&(t.deliveryAddress=u("delivery-address",e.deliveryAddress)),e.pickupAddress&&(t.pickupAddress=u("pickup-address",e.pickupAddress)),e.items&&(t.items=u("items",e.items)),e.pricing&&(t.pricing=u("pricing",e.pricing)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(ue,{id:i$1,input:t});i("Order updated"),h$1(e,n.updateMovethewheelsOrder);}catch(t){g(t);}}),r.command("remove").description("Delete an order").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(me,{id:i$1});i(`Order ${i$1} deleted`),h$1(e,{deleted:t.deleteMovethewheelsOrder});}catch(t){g(t);}}),r.command("set-status").description("Update an order status").argument("<id>","Order ID").requiredOption("--status <s>","PENDING|CONFIRMED|ASSIGNED|PICKED_UP|IN_TRANSIT|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED|CANCELLED").option("--notes <s>","Status notes").option("--location <json>","Location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={status:e.status.toUpperCase()};e.notes&&(t.notes=e.notes),e.location&&(t.location=u("location",e.location));let n=await b$1(le,{id:i$1,input:t});i(`Order status set to ${n.updateMovethewheelsOrderStatus.status}`),h$1(e,n.updateMovethewheelsOrderStatus);}catch(t){g(t);}}),r.command("stats").description("Order stats (total, pending, in-transit, delivered, \u2026)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(fe);h$1(i,e.orderStats);}catch(e){g(e);}});}function pt(m){let r=m.command("shipments").description("Movethewheels shipments & tracking");r.command("list").description("List shipments").option("--order <id>","Filter by order ID").option("--customer <id>","Filter by customer ID").option("--carrier <id>","Filter by carrier ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.order&&(e.orderId=i.order),i.customer&&(e.customerId=i.customer),i.carrier&&(e.carrierId=i.carrier),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(he,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.shipments,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:t.shipments.map(n=>[p(n.id,12),n.shipmentNumber,p(n.orderId,12),n.status,n.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("get").description("Get a shipment by id (includes tracking events)").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(ge,{id:i});if(!t.shipment)throw new o(`Shipment ${i} not found`);h$1(e,t.shipment);}catch(t){g(t);}}),r.command("active").description("List active deliveries (in-transit shipments)").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ye,{pagination:h(i)});h$1(i,e.activeDeliveries,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:e.activeDeliveries.map(t=>[p(t.id,12),t.shipmentNumber,p(t.orderId,12),t.status,t.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("create").description("Create a shipment").requiredOption("--shipment-number <s>","Shipment number").requiredOption("--order <id>","Order ID").requiredOption("--origin <json>","Origin JSON").requiredOption("--destination <json>","Destination JSON").option("--status <s>","Status","PLANNED").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={shipmentNumber:i$1.shipmentNumber,orderId:i$1.order,origin:u("origin",i$1.origin),destination:u("destination",i$1.destination),status:(i$1.status??"PLANNED").toUpperCase()};i$1.customer&&(e.customerId=i$1.customer),i$1.carrier&&(e.carrierId=i$1.carrier),i$1.trackingNumber&&(e.trackingNumber=i$1.trackingNumber),i$1.cargoDetails&&(e.cargoDetails=u("cargo-details",i$1.cargoDetails)),i$1.estimatedDelivery&&(e.estimatedDelivery=i$1.estimatedDelivery),i$1.actualDelivery&&(e.actualDelivery=i$1.actualDelivery);let t=await b$1(Ee,{input:e});i(`Shipment created: ${t.createShipment.shipmentNumber}`),h$1(i$1,t.createShipment);}catch(e){g(e);}}),r.command("update").description("Update a shipment").argument("<id>","Shipment ID").option("--status <s>","Status").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--origin <json>","Origin JSON").option("--destination <json>","Destination JSON").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.status&&(t.status=e.status.toUpperCase()),e.customer!==void 0&&(t.customerId=e.customer),e.carrier!==void 0&&(t.carrierId=e.carrier),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.origin&&(t.origin=u("origin",e.origin)),e.destination&&(t.destination=u("destination",e.destination)),e.cargoDetails&&(t.cargoDetails=u("cargo-details",e.cargoDetails)),e.estimatedDelivery&&(t.estimatedDelivery=e.estimatedDelivery),e.actualDelivery&&(t.actualDelivery=e.actualDelivery),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(De,{id:i$1,input:t});i("Shipment updated"),h$1(e,n.updateShipment);}catch(t){g(t);}}),r.command("remove").description("Delete a shipment").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Oe,{id:i$1});i(`Shipment ${i$1} deleted`),h$1(e,{deleted:t.deleteShipment});}catch(t){g(t);}}),r.command("add-event").description("Add a tracking event to a shipment").requiredOption("--shipment <id>","Shipment ID").requiredOption("--event-type <t>","CREATED|PICKED_UP|IN_TRANSIT|ARRIVED|DEPARTED|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED").option("--details <s>","Event details").option("--location <json>","Location JSON").option("--timestamp <s>","Timestamp (ISO date)").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={shipmentId:i$1.shipment,eventType:i$1.eventType.toUpperCase()};i$1.details&&(e.details=i$1.details),i$1.location&&(e.location=u("location",i$1.location)),i$1.timestamp&&(e.timestamp=i$1.timestamp);let t=await b$1(Re,{input:e});i(`Tracking event added: ${t.addTrackingEvent.eventType}`),h$1(i$1,t.addTrackingEvent);}catch(e){g(e);}}),r.command("tracking").description("List tracking events for a shipment").argument("<shipmentId>","Shipment ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(ve,{shipmentId:i,pagination:h(e)});h$1(e,t.shipmentTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.shipmentTracking.map(n=>[p(n.id,12),n.eventType,p(n.details??"-",30),n.timestamp])});}catch(t){g(t);}}),r.command("order-tracking").description("List tracking events for an order").argument("<orderId>","Order ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(Ie,{orderId:i,pagination:h(e)});h$1(e,t.orderTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.orderTracking.map(n=>[p(n.id,12),n.eventType,p(n.details??"-",30),n.timestamp])});}catch(t){g(t);}}),r.command("alerts").description("List tracking alerts (delayed / at-risk shipments)").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(we,{pagination:h(i)});h$1(i,e.trackingAlerts,{headers:["Type","Shipment #","Message"],rows:e.trackingAlerts.map(t=>[t.alertType,t.shipmentNumber,p(t.message,40)])});}catch(e){g(e);}});}function ut(m){let r=m.command("routes").description("Movethewheels delivery routes");r.command("list").description("List routes").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--shipment <id>","Filter by shipment ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.driver&&(e.driverId=i.driver),i.vehicle&&(e.vehicleId=i.vehicle),i.shipment&&(e.shipmentId=i.shipment),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(Te,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.routes,{headers:["ID","Name","Status","Driver","Vehicle","Distance"],rows:t.routes.map(n=>[p(n.id,12),n.name,n.status,n.driverId?p(n.driverId,12):"-",n.vehicleId?p(n.vehicleId,12):"-",n.estimatedDistance!=null?String(n.estimatedDistance):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a route by id").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(be,{id:i});if(!t.route)throw new o(`Route ${i} not found`);h$1(e,t.route);}catch(t){g(t);}}),r.command("create").description("Create a route").requiredOption("--name <name>","Route name").requiredOption("--waypoints <json>","Waypoints JSON").option("--status <s>","Status","PLANNED").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--estimated-distance <n>","Estimated distance",l).option("--estimated-duration <n>","Estimated duration",l).option("--actual-distance <n>","Actual distance",l).option("--actual-duration <n>","Actual duration",l).option("--fuel-cost <n>","Fuel cost",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,waypoints:u("waypoints",i$1.waypoints),status:(i$1.status??"PLANNED").toUpperCase()};i$1.driver&&(e.driverId=i$1.driver),i$1.vehicle&&(e.vehicleId=i$1.vehicle),i$1.shipment&&(e.shipmentId=i$1.shipment),i$1.estimatedDistance!==void 0&&(e.estimatedDistance=i$1.estimatedDistance),i$1.estimatedDuration!==void 0&&(e.estimatedDuration=i$1.estimatedDuration),i$1.actualDistance!==void 0&&(e.actualDistance=i$1.actualDistance),i$1.actualDuration!==void 0&&(e.actualDuration=i$1.actualDuration),i$1.fuelCost!==void 0&&(e.fuelCost=i$1.fuelCost);let t=await b$1(Ce,{input:e});i(`Route created: ${t.createRoute.name}`),h$1(i$1,t.createRoute);}catch(e){g(e);}}),r.command("update").description("Update a route").argument("<id>","Route ID").option("--name <name>","Route name").option("--status <s>","Status").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--waypoints <json>","Waypoints JSON").option("--estimated-distance <n>","Estimated distance",l).option("--estimated-duration <n>","Estimated duration",l).option("--actual-distance <n>","Actual distance",l).option("--actual-duration <n>","Actual duration",l).option("--fuel-cost <n>","Fuel cost",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.status&&(t.status=e.status.toUpperCase()),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.shipment!==void 0&&(t.shipmentId=e.shipment),e.waypoints&&(t.waypoints=u("waypoints",e.waypoints)),e.estimatedDistance!==void 0&&(t.estimatedDistance=e.estimatedDistance),e.estimatedDuration!==void 0&&(t.estimatedDuration=e.estimatedDuration),e.actualDistance!==void 0&&(t.actualDistance=e.actualDistance),e.actualDuration!==void 0&&(t.actualDuration=e.actualDuration),e.fuelCost!==void 0&&(t.fuelCost=e.fuelCost),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(Se,{id:i$1,input:t});i("Route updated"),h$1(e,n.updateRoute);}catch(t){g(t);}}),r.command("remove").description("Delete a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Ae,{id:i$1});i(`Route ${i$1} deleted`),h$1(e,{deleted:t.deleteRoute});}catch(t){g(t);}}),r.command("optimize").description("Optimize a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Ne,{id:i$1});i("Route optimized"),h$1(e,t.optimizeRoute);}catch(t){g(t);}});}function mt(m){let r=m.command("marketplace").description("Movethewheels logistics marketplace (providers & offerings)"),i$1=r.command("providers").description("Service providers");i$1.command("list").description("List service providers").option("--type <t>","Filter by provider type").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n={};t.type&&(n.type=t.type),t.active!==void 0&&(n.isActive=t.active),t.query&&(n.search=t.query);let d=await b$1($e,{filter:Object.keys(n).length?n:void 0,pagination:h(t)});h$1(t,d.serviceProviders,{headers:["ID","Name","Type","Active","Verified","Rating"],rows:d.serviceProviders.map(y=>[p(y.id,12),y.name,y.type,y.isActive?"yes":"no",y.isVerified?"yes":"no",y.rating!=null?String(y.rating):"-"])});}catch(n){g(n);}}),i$1.command("get").description("Get a service provider by id (includes offerings)").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(ke,{id:t});if(!d.serviceProvider)throw new o(`Provider ${t} not found`);h$1(n,d.serviceProvider);}catch(d){g(d);}}),i$1.command("create").description("Create a service provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",l).option("--active <bool>","Active (true|false)",t=>t==="true",true).option("--verified <bool>","Verified (true|false)",t=>t==="true",false).option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type,isActive:t.active??!0,isVerified:t.verified??!1};t.description&&(n.description=t.description),t.rating!==void 0&&(n.rating=t.rating),t.contactInfo&&(n.contactInfo=u("contact-info",t.contactInfo)),t.services&&(n.services=u("services",t.services));let d=await b$1(Pe,{input:n});i(`Provider created: ${d.createServiceProvider.name}`),h$1(t,d.createServiceProvider);}catch(n){g(n);}}),i$1.command("update").description("Update a service provider").argument("<id>","Provider ID").option("--name <name>","Provider name").option("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",l).option("--active <bool>","Active (true|false)",t=>t==="true").option("--verified <bool>","Verified (true|false)",t=>t==="true").option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d={};if(n.name&&(d.name=n.name),n.type&&(d.type=n.type),n.description!==void 0&&(d.description=n.description),n.rating!==void 0&&(d.rating=n.rating),n.active!==void 0&&(d.isActive=n.active),n.verified!==void 0&&(d.isVerified=n.verified),n.contactInfo&&(d.contactInfo=u("contact-info",n.contactInfo)),n.services&&(d.services=u("services",n.services)),!Object.keys(d).length)throw new o("No updates specified");let y=await b$1(_e,{id:t,input:d});i("Provider updated"),h$1(n,y.updateServiceProvider);}catch(d){g(d);}}),i$1.command("remove").description("Delete a service provider").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(Me,{id:t});i(`Provider ${t} deleted`),h$1(n,{deleted:d.deleteServiceProvider});}catch(d){g(d);}});let e=r.command("offerings").description("Service offerings");e.command("list").description("List service offerings").option("--provider <id>","Filter by provider ID").option("--category <c>","Filter by category").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n={};t.provider&&(n.providerId=t.provider),t.category&&(n.category=t.category),t.query&&(n.search=t.query);let d=await b$1(Le,{filter:Object.keys(n).length?n:void 0,pagination:h(t)});h$1(t,d.serviceOfferings,{headers:["ID","Name","Provider","Category","Price","Currency"],rows:d.serviceOfferings.map(y=>[p(y.id,12),y.name,p(y.providerId,12),y.category??"-",String(y.price),y.currency])});}catch(n){g(n);}}),e.command("get").description("Get a service offering by id").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(Ue,{id:t});if(!d.serviceOffering)throw new o(`Offering ${t} not found`);h$1(n,d.serviceOffering);}catch(d){g(d);}}),e.command("create").description("Create a service offering").requiredOption("--provider <id>","Provider ID").requiredOption("--name <name>","Offering name").requiredOption("--price <n>","Price",l).option("--description <s>","Description").option("--category <c>","Category").option("--currency <c>","Currency","USD").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async t=>{try{let n={providerId:t.provider,name:t.name,price:t.price,currency:t.currency??"USD"};t.description&&(n.description=t.description),t.category&&(n.category=t.category),t.availability&&(n.availability=u("availability",t.availability));let d=await b$1(Ve,{input:n});i(`Offering created: ${d.createServiceOffering.name}`),h$1(t,d.createServiceOffering);}catch(n){g(n);}}),e.command("update").description("Update a service offering").argument("<id>","Offering ID").option("--name <name>","Offering name").option("--description <s>","Description").option("--category <c>","Category").option("--price <n>","Price",l).option("--currency <c>","Currency").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d={};if(n.name&&(d.name=n.name),n.description!==void 0&&(d.description=n.description),n.category!==void 0&&(d.category=n.category),n.price!==void 0&&(d.price=n.price),n.currency&&(d.currency=n.currency),n.availability&&(d.availability=u("availability",n.availability)),!Object.keys(d).length)throw new o("No updates specified");let y=await b$1(qe,{id:t,input:d});i("Offering updated"),h$1(n,y.updateServiceOffering);}catch(d){g(d);}}),e.command("remove").description("Delete a service offering").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(xe,{id:t});i(`Offering ${t} deleted`),h$1(n,{deleted:d.deleteServiceOffering});}catch(d){g(d);}});}function lt(m){let r=m.command("reports").description("Movethewheels reports & data import/export");r.command("list").description("List reports").option("--type <t>","Filter by report type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={};e.type&&(t.type=e.type),e.status&&(t.status=e.status),e.query&&(t.search=e.query);let n=await b$1(je,{filter:Object.keys(t).length?t:void 0,pagination:h(e)});h$1(e,n.movethewheelsReports,{headers:["ID","Name","Type","Status","Schedule","Last Generated"],rows:n.movethewheelsReports.map(d=>[p(d.id,12),d.name,d.type,d.status,d.schedule??"-",d.lastGenerated??"-"])});}catch(t){g(t);}}),r.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await b$1(Fe,{id:e});if(!n.movethewheelsReport)throw new o(`Report ${e} not found`);h$1(t,n.movethewheelsReport);}catch(n){g(n);}}),r.command("create").description("Create a report").requiredOption("--name <name>","Report name").requiredOption("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status","DRAFT").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,type:e.type,status:e.status??"DRAFT"};e.description&&(t.description=e.description),e.schedule&&(t.schedule=e.schedule),e.configuration&&(t.configuration=u("configuration",e.configuration));let n=await b$1(Ge,{input:t});i(`Report created: ${n.createMovethewheelsReport.name}`),h$1(e,n.createMovethewheelsReport);}catch(t){g(t);}}),r.command("update").description("Update a report").argument("<id>","Report ID").option("--name <name>","Report name").option("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.type&&(n.type=t.type),t.description!==void 0&&(n.description=t.description),t.status&&(n.status=t.status),t.schedule!==void 0&&(n.schedule=t.schedule),t.configuration&&(n.configuration=u("configuration",t.configuration)),!Object.keys(n).length)throw new o("No updates specified");let d=await b$1(We,{id:e,input:n});i("Report updated"),h$1(t,d.updateMovethewheelsReport);}catch(n){g(n);}}),r.command("remove").description("Delete a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await b$1(He,{id:e});i(`Report ${e} deleted`),h$1(t,{deleted:n.deleteMovethewheelsReport});}catch(n){g(n);}}),r.command("generate").description("Generate a report run").argument("<id>","Report ID").option("--parameters <json>","Parameters JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={reportId:e};t.parameters&&(n.parameters=u("parameters",t.parameters));let d=await b$1(Je,{input:n});i("Report generated"),h$1(t,d.generateMovethewheelsReport);}catch(n){g(n);}}),r.command("export").description("Export resource data").requiredOption("--resource <r>","Resource to export").option("--export-format <f>","Export format","json").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,format:e.exportFormat??"json"},n=await b$1(ze,{input:t});i("Data exported"),h$1(e,n.exportData);}catch(t){g(t);}}),r.command("import").description("Import resource data").requiredOption("--resource <r>","Resource to import").requiredOption("--payload <json>","Payload JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,payload:u("payload",e.payload)},n=await b$1(Ye,{input:t});i("Data imported"),h$1(e,n.importData);}catch(t){g(t);}});let i$1=m.command("settings").description("Movethewheels module settings");i$1.command("get").description("Get module settings").option("-f, --format <format>","Output format").action(async e=>{try{let t=await b$1(Be);h$1(e,t.moduleSettings);}catch(t){g(t);}}),i$1.command("update").description("Update module settings preferences").requiredOption("--preferences <json>","Preferences JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={preferences:u("preferences",e.preferences)},n=await b$1(Ke,{input:t});i("Module settings updated"),h$1(e,n.updateModuleSettings);}catch(t){g(t);}});}function ft(m){let r=m.command("analytics").description("Movethewheels analytics & dashboards");r.command("dashboard").description("Dashboard metrics (orders, deliveries, revenue, fleet, low stock)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Qe);h$1(i,e.dashboardMetrics);}catch(e){g(e);}}),r.command("trends").description("Analytics time series (order, revenue, delivery trends)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Ze);h$1(i,e.analytics);}catch(e){g(e);}}),r.command("finance").description("Finance metrics (revenue, fuel cost, open invoices)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Xe);h$1(i,e.financeMetrics);}catch(e){g(e);}}),r.command("fleet").description("Fleet stats (vehicles & drivers by status)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(et);h$1(i,e.fleetStats);}catch(e){g(e);}}),r.command("insights").description("AI assistant insights for a question").argument("<question>","Question to ask the assistant").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(tt,{question:i});h$1(e,t.assistantInsights);}catch(t){g(t);}});}var gt={id:"movethewheels",version:"1.0.0",displayName:"Movethewheels",dependsOn:["auth","workspaces"],register(m,r){a(r);let i=m.command("movethewheels").description("Movethewheels logistics & fleet operations");it(i),nt(i),rt(i),at(i),ot(i),dt(i),ct(i),pt(i),ut(i),mt(i),lt(i),ft(i);}},vi=gt;export{vi as default};
|
|
559
|
+
`;function u(m,r){try{return JSON.parse(r)}catch{throw new o(`--${m} must be valid JSON`)}}function c(m){let r=Number.parseInt(m,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${m}"`);return r}function l(m){let r=Number.parseFloat(m);if(Number.isNaN(r))throw new o(`Expected a number but got "${m}"`);return r}function h(m){let r={};return m.limit!==void 0&&(r.limit=m.limit),m.offset!==void 0&&(r.offset=m.offset),Object.keys(r).length?r:void 0}function tt(m){let r=m.command("customers").description("Movethewheels customers");r.command("list").description("List customers").option("--type <t>","Filter by customer type (b2c/b2b)").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type),i.query&&(e.search=i.query);let t=await b$1(O,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.customers,{headers:["ID","Name","Type","Email","Phone","Rating"],rows:t.customers.map(n=>[p(n.id,12),n.name,n.type,n.email??"-",n.phone??"-",n.rating!=null?String(n.rating):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a customer by id").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(D,{id:i});if(!t.customer)throw new o(`Customer ${i} not found`);h$1(e,t.customer);}catch(t){g(t);}}),r.command("create").description("Create a customer").requiredOption("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type","b2c").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",l).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,type:i$1.type??"b2c"};i$1.email&&(e.email=i$1.email),i$1.phone&&(e.phone=i$1.phone),i$1.company&&(e.company=i$1.company),i$1.taxId&&(e.taxId=i$1.taxId),i$1.businessLicense&&(e.businessLicense=i$1.businessLicense),i$1.rating!==void 0&&(e.rating=i$1.rating),i$1.address&&(e.address=u("address",i$1.address));let t=await b$1(R,{input:e});i(`Customer created: ${t.createCustomer.name}`),h$1(i$1,t.createCustomer);}catch(e){g(e);}}),r.command("update").description("Update a customer").argument("<id>","Customer ID").option("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",l).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.company!==void 0&&(t.company=e.company),e.type&&(t.type=e.type),e.taxId!==void 0&&(t.taxId=e.taxId),e.businessLicense!==void 0&&(t.businessLicense=e.businessLicense),e.rating!==void 0&&(t.rating=e.rating),e.address&&(t.address=u("address",e.address)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(b,{id:i$1,input:t});i("Customer updated"),h$1(e,n.updateCustomer);}catch(t){g(t);}}),r.command("remove").description("Delete a customer").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(T,{id:i$1});i(`Customer ${i$1} deleted`),h$1(e,{deleted:t.deleteCustomer});}catch(t){g(t);}});}function it(m){let r=m.command("drivers").description("Movethewheels drivers");r.command("list").description("List drivers").option("--status <s>","Filter by driver status").option("--vehicle <id>","Filter by vehicle ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.status&&(e.status=i.status.toUpperCase()),i.vehicle&&(e.vehicleId=i.vehicle),i.query&&(e.search=i.query);let t=await b$1(S,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.drivers,{headers:["ID","Name","Employee","Status","Vehicle","Rating"],rows:t.drivers.map(n=>[p(n.id,12),`${n.firstName} ${n.lastName}`,n.employeeId,n.status,n.vehicleId?p(n.vehicleId,12):"-",n.rating!=null?String(n.rating):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a driver by id").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(C,{id:i});if(!t.driver)throw new o(`Driver ${i} not found`);h$1(e,t.driver);}catch(t){g(t);}}),r.command("create").description("Create a driver").requiredOption("--employee-id <s>","Employee ID").requiredOption("--first-name <s>","First name").requiredOption("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status","AVAILABLE").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--user-id <id>","User ID").option("--rating <n>","Rating",l).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={employeeId:i$1.employeeId,firstName:i$1.firstName,lastName:i$1.lastName,status:(i$1.status??"AVAILABLE").toUpperCase()};i$1.email&&(e.email=i$1.email),i$1.phone&&(e.phone=i$1.phone),i$1.licenseNumber&&(e.licenseNumber=i$1.licenseNumber),i$1.licenseClass&&(e.licenseClass=i$1.licenseClass),i$1.licenseExpiry&&(e.licenseExpiry=i$1.licenseExpiry),i$1.vehicleId&&(e.vehicleId=i$1.vehicleId),i$1.userId&&(e.userId=i$1.userId),i$1.rating!==void 0&&(e.rating=i$1.rating),i$1.certifications&&(e.certifications=u("certifications",i$1.certifications)),i$1.currentLocation&&(e.currentLocation=u("current-location",i$1.currentLocation));let t=await b$1(A,{input:e});i(`Driver created: ${t.createDriver.firstName} ${t.createDriver.lastName}`),h$1(i$1,t.createDriver);}catch(e){g(e);}}),r.command("update").description("Update a driver").argument("<id>","Driver ID").option("--first-name <s>","First name").option("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--rating <n>","Rating",l).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.firstName&&(t.firstName=e.firstName),e.lastName&&(t.lastName=e.lastName),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.status&&(t.status=e.status.toUpperCase()),e.licenseNumber!==void 0&&(t.licenseNumber=e.licenseNumber),e.licenseClass!==void 0&&(t.licenseClass=e.licenseClass),e.licenseExpiry&&(t.licenseExpiry=e.licenseExpiry),e.vehicleId!==void 0&&(t.vehicleId=e.vehicleId),e.rating!==void 0&&(t.rating=e.rating),e.certifications&&(t.certifications=u("certifications",e.certifications)),e.currentLocation&&(t.currentLocation=u("current-location",e.currentLocation)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(N,{id:i$1,input:t});i("Driver updated"),h$1(e,n.updateDriver);}catch(t){g(t);}}),r.command("remove").description("Delete a driver").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(k,{id:i$1});i(`Driver ${i$1} deleted`),h$1(e,{deleted:t.deleteDriver});}catch(t){g(t);}}),r.command("set-status").description("Update a driver status").argument("<id>","Driver ID").requiredOption("--status <s>","AVAILABLE|ON_DELIVERY|ON_BREAK|OFF_DUTY|INACTIVE").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1($,{id:i$1,status:e.status.toUpperCase()});i(`Driver status set to ${t.updateDriverStatus.status}`),h$1(e,t.updateDriverStatus);}catch(t){g(t);}}),r.command("assign-vehicle").description("Assign (or clear) a vehicle for a driver").argument("<id>","Driver ID").option("--vehicle <id>","Vehicle ID (omit to clear assignment)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(P,{id:i$1,vehicleId:e.vehicle});i(e.vehicle?`Vehicle ${e.vehicle} assigned`:"Vehicle assignment cleared"),h$1(e,t.assignDriverVehicle);}catch(t){g(t);}});}function nt(m){let r=m.command("vehicles").description("Movethewheels fleet vehicles");r.command("list").description("List vehicles").option("--type <t>","Filter by vehicle type").option("--status <s>","Filter by vehicle status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type.toUpperCase()),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(M,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.vehicles,{headers:["ID","Number","Type","Status","Make/Model","Plate"],rows:t.vehicles.map(n=>[p(n.id,12),n.vehicleNumber,n.type,n.status,`${n.make??"-"} ${n.model??""}`.trim(),n.licensePlate??"-"])});}catch(e){g(e);}}),r.command("get").description("Get a vehicle by id").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(_,{id:i});if(!t.vehicle)throw new o(`Vehicle ${i} not found`);h$1(e,t.vehicle);}catch(t){g(t);}}),r.command("create").description("Create a vehicle").requiredOption("--number <s>","Vehicle number").requiredOption("--type <t>","Vehicle type (TRUCK|VAN|MOTORCYCLE|\u2026)").option("--status <s>","Vehicle status","ACTIVE").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",c).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",l).option("--mileage <n>","Mileage",l).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={vehicleNumber:i$1.number,type:i$1.type.toUpperCase(),status:(i$1.status??"ACTIVE").toUpperCase()};i$1.make&&(e.make=i$1.make),i$1.model&&(e.model=i$1.model),i$1.year!==void 0&&(e.year=i$1.year),i$1.licensePlate&&(e.licensePlate=i$1.licensePlate),i$1.fuelLevel!==void 0&&(e.fuelLevel=i$1.fuelLevel),i$1.mileage!==void 0&&(e.mileage=i$1.mileage),i$1.ownershipType&&(e.ownershipType=i$1.ownershipType),i$1.capacity&&(e.capacity=u("capacity",i$1.capacity)),i$1.currentLocation&&(e.currentLocation=u("current-location",i$1.currentLocation));let t=await b$1(U,{input:e});i(`Vehicle created: ${t.createVehicle.vehicleNumber}`),h$1(i$1,t.createVehicle);}catch(e){g(e);}}),r.command("update").description("Update a vehicle").argument("<id>","Vehicle ID").option("--number <s>","Vehicle number").option("--type <t>","Vehicle type").option("--status <s>","Vehicle status").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",c).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",l).option("--mileage <n>","Mileage",l).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.number&&(t.vehicleNumber=e.number),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.make!==void 0&&(t.make=e.make),e.model!==void 0&&(t.model=e.model),e.year!==void 0&&(t.year=e.year),e.licensePlate!==void 0&&(t.licensePlate=e.licensePlate),e.fuelLevel!==void 0&&(t.fuelLevel=e.fuelLevel),e.mileage!==void 0&&(t.mileage=e.mileage),e.ownershipType!==void 0&&(t.ownershipType=e.ownershipType),e.capacity&&(t.capacity=u("capacity",e.capacity)),e.currentLocation&&(t.currentLocation=u("current-location",e.currentLocation)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(L,{id:i$1,input:t});i("Vehicle updated"),h$1(e,n.updateVehicle);}catch(t){g(t);}}),r.command("remove").description("Delete a vehicle").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(V,{id:i$1});i(`Vehicle ${i$1} deleted`),h$1(e,{deleted:t.deleteVehicle});}catch(t){g(t);}}),r.command("set-status").description("Update a vehicle status").argument("<id>","Vehicle ID").requiredOption("--status <s>","ACTIVE|INACTIVE|IN_TRANSIT|MAINTENANCE|DECOMMISSIONED").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(x,{id:i$1,status:e.status.toUpperCase()});i(`Vehicle status set to ${t.updateVehicleStatus.status}`),h$1(e,t.updateVehicleStatus);}catch(t){g(t);}}),r.command("set-location").description("Update a vehicle current location").argument("<id>","Vehicle ID").requiredOption("--location <json>","Location JSON (latitude/longitude/\u2026)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=u("location",e.location),n=await b$1(q,{id:i$1,location:t});i("Vehicle location updated"),h$1(e,n.updateVehicleLocation);}catch(t){g(t);}});}function rt(m){let r=m.command("products").description("Movethewheels catalog products");r.command("list").description("List products").option("--category <c>","Filter by category").option("--sku <s>","Filter by SKU").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.category&&(e.category=i.category),i.sku&&(e.sku=i.sku),i.query&&(e.search=i.query);let t=await b$1(j,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.products,{headers:["ID","SKU","Name","Category","Brand","Weight"],rows:t.products.map(n=>[p(n.id,12),n.sku,n.name,n.category??"-",n.brand??"-",n.weight!=null?String(n.weight):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a product by id").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(F,{id:i});if(!t.product)throw new o(`Product ${i} not found`);h$1(e,t.product);}catch(t){g(t);}}),r.command("create").description("Create a product").requiredOption("--name <name>","Product name").requiredOption("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",l).option("--value <n>","Value",l).option("--dimensions <json>","Dimensions JSON").option("--fragile","Mark as fragile").option("--hazardous","Mark as hazardous").option("--temperature-controlled","Mark as temperature controlled").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,sku:i$1.sku};i$1.description&&(e.description=i$1.description),i$1.category&&(e.category=i$1.category),i$1.brand&&(e.brand=i$1.brand),i$1.weight!==void 0&&(e.weight=i$1.weight),i$1.value!==void 0&&(e.value=i$1.value),i$1.dimensions&&(e.dimensions=u("dimensions",i$1.dimensions)),i$1.fragile&&(e.fragile=!0),i$1.hazardous&&(e.hazardous=!0),i$1.temperatureControlled&&(e.temperatureControlled=!0);let t=await b$1(W,{input:e});i(`Product created: ${t.createProduct.name}`),h$1(i$1,t.createProduct);}catch(e){g(e);}}),r.command("update").description("Update a product").argument("<id>","Product ID").option("--name <name>","Product name").option("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",l).option("--value <n>","Value",l).option("--dimensions <json>","Dimensions JSON").option("--fragile <bool>","true|false",i=>i==="true").option("--hazardous <bool>","true|false",i=>i==="true").option("--temperature-controlled <bool>","true|false",i=>i==="true").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.sku&&(t.sku=e.sku),e.description!==void 0&&(t.description=e.description),e.category!==void 0&&(t.category=e.category),e.brand!==void 0&&(t.brand=e.brand),e.weight!==void 0&&(t.weight=e.weight),e.value!==void 0&&(t.value=e.value),e.dimensions&&(t.dimensions=u("dimensions",e.dimensions)),e.fragile!==void 0&&(t.fragile=e.fragile),e.hazardous!==void 0&&(t.hazardous=e.hazardous),e.temperatureControlled!==void 0&&(t.temperatureControlled=e.temperatureControlled),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(G,{id:i$1,input:t});i("Product updated"),h$1(e,n.updateProduct);}catch(t){g(t);}}),r.command("remove").description("Delete a product").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(H,{id:i$1});i(`Product ${i$1} deleted`),h$1(e,{deleted:t.deleteProduct});}catch(t){g(t);}});}function at(m){let r=m.command("warehouses").description("Movethewheels warehouses & locations");r.command("list").description("List warehouses").option("--type <t>","Filter by warehouse type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type.toUpperCase()),i.status&&(e.status=i.status),i.query&&(e.search=i.query);let t=await b$1(z,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.warehouses,{headers:["ID","Code","Name","Type","Status","Capacity"],rows:t.warehouses.map(n=>[p(n.id,12),n.code,n.name,n.type,n.status,`${n.usedCapacity??0}/${n.totalCapacity??0}`])});}catch(e){g(e);}}),r.command("get").description("Get a warehouse by id (includes locations)").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(J,{id:i});if(!t.warehouse)throw new o(`Warehouse ${i} not found`);h$1(e,t.warehouse);}catch(t){g(t);}}),r.command("create").description("Create a warehouse").requiredOption("--code <code>","Warehouse code").requiredOption("--name <name>","Warehouse name").requiredOption("--type <t>","Warehouse type (DISTRIBUTION|FULFILLMENT|\u2026)").requiredOption("--address <json>","Address JSON").option("--status <s>","Status","ACTIVE").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",l).option("--used-capacity <n>","Used capacity",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={code:i$1.code,name:i$1.name,type:i$1.type.toUpperCase(),address:u("address",i$1.address),status:i$1.status??"ACTIVE"};i$1.contactInfo&&(e.contactInfo=u("contact-info",i$1.contactInfo)),i$1.operatingHours&&(e.operatingHours=u("operating-hours",i$1.operatingHours)),i$1.capabilities&&(e.capabilities=u("capabilities",i$1.capabilities)),i$1.totalCapacity!==void 0&&(e.totalCapacity=i$1.totalCapacity),i$1.usedCapacity!==void 0&&(e.usedCapacity=i$1.usedCapacity);let t=await b$1(Y,{input:e});i(`Warehouse created: ${t.createWarehouse.name}`),h$1(i$1,t.createWarehouse);}catch(e){g(e);}}),r.command("update").description("Update a warehouse").argument("<id>","Warehouse ID").option("--code <code>","Warehouse code").option("--name <name>","Warehouse name").option("--type <t>","Warehouse type").option("--status <s>","Status").option("--address <json>","Address JSON").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",l).option("--used-capacity <n>","Used capacity",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.code&&(t.code=e.code),e.name&&(t.name=e.name),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status),e.address&&(t.address=u("address",e.address)),e.contactInfo&&(t.contactInfo=u("contact-info",e.contactInfo)),e.operatingHours&&(t.operatingHours=u("operating-hours",e.operatingHours)),e.capabilities&&(t.capabilities=u("capabilities",e.capabilities)),e.totalCapacity!==void 0&&(t.totalCapacity=e.totalCapacity),e.usedCapacity!==void 0&&(t.usedCapacity=e.usedCapacity),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(B,{id:i$1,input:t});i("Warehouse updated"),h$1(e,n.updateWarehouse);}catch(t){g(t);}}),r.command("remove").description("Delete a warehouse").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(K,{id:i$1});i(`Warehouse ${i$1} deleted`),h$1(e,{deleted:t.deleteWarehouse});}catch(t){g(t);}}),r.command("create-location").description("Create a warehouse location").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status","ACTIVE").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={warehouseId:i$1.warehouse,locationCode:i$1.code,status:i$1.status??"ACTIVE"};i$1.locationType&&(e.locationType=i$1.locationType),i$1.zone&&(e.zone=i$1.zone),i$1.aisle&&(e.aisle=i$1.aisle),i$1.rack&&(e.rack=i$1.rack),i$1.shelf&&(e.shelf=i$1.shelf),i$1.bin&&(e.bin=i$1.bin),i$1.capacity!==void 0&&(e.capacity=i$1.capacity);let t=await b$1(Z,{input:e});i(`Location created: ${t.createWarehouseLocation.locationCode}`),h$1(i$1,t.createWarehouseLocation);}catch(e){g(e);}}),r.command("update-location").description("Update a warehouse location").argument("<id>","Location ID").option("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.code&&(t.locationCode=e.code),e.locationType!==void 0&&(t.locationType=e.locationType),e.status&&(t.status=e.status),e.zone!==void 0&&(t.zone=e.zone),e.aisle!==void 0&&(t.aisle=e.aisle),e.rack!==void 0&&(t.rack=e.rack),e.shelf!==void 0&&(t.shelf=e.shelf),e.bin!==void 0&&(t.bin=e.bin),e.capacity!==void 0&&(t.capacity=e.capacity),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(Q,{id:i$1,input:t});i("Location updated"),h$1(e,n.updateWarehouseLocation);}catch(t){g(t);}});}function ot(m){let r={};return m.product&&(r.productId=m.product),m.warehouse&&(r.warehouseId=m.warehouse),m.location&&(r.locationId=m.location),m.query&&(r.search=m.query),Object.keys(r).length?r:void 0}function st(m){let r=m.command("inventory").description("Movethewheels inventory");r.command("list").description("List inventory items").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ee,{filter:ot(i),pagination:h(i)});h$1(i,e.inventoryItems,{headers:["ID","Product","Warehouse","OnHand","Available","Allocated"],rows:e.inventoryItems.map(t=>[p(t.id,12),p(t.productId,12),p(t.warehouseId,12),String(t.onHand),String(t.available),String(t.allocated)])});}catch(e){g(e);}}),r.command("get").description("Get an inventory item by id").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(X,{id:i});if(!t.inventoryItem)throw new o(`Inventory item ${i} not found`);h$1(e,t.inventoryItem);}catch(t){g(t);}}),r.command("stats").description("Inventory stats (on-hand, available, allocated, damaged, low-stock)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ie);h$1(i,e.inventoryStats);}catch(e){g(e);}}),r.command("create").description("Create an inventory item").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("--reorder-point <n>","Reorder point",c).option("--safety-stock <n>","Safety stock",c).option("--unit-cost <n>","Unit cost",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={productId:i$1.product,warehouseId:i$1.warehouse};i$1.location&&(e.locationId=i$1.location),i$1.onHand!==void 0&&(e.onHand=i$1.onHand),i$1.available!==void 0&&(e.available=i$1.available),i$1.allocated!==void 0&&(e.allocated=i$1.allocated),i$1.damaged!==void 0&&(e.damaged=i$1.damaged),i$1.reorderPoint!==void 0&&(e.reorderPoint=i$1.reorderPoint),i$1.safetyStock!==void 0&&(e.safetyStock=i$1.safetyStock),i$1.unitCost!==void 0&&(e.unitCost=i$1.unitCost);let t=await b$1(ne,{input:e});i("Inventory item created"),h$1(i$1,t.createInventoryItem);}catch(e){g(e);}}),r.command("update").description("Update an inventory item").argument("<id>","Inventory item ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("--reorder-point <n>","Reorder point",c).option("--safety-stock <n>","Safety stock",c).option("--unit-cost <n>","Unit cost",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.location!==void 0&&(t.locationId=e.location),e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),e.reorderPoint!==void 0&&(t.reorderPoint=e.reorderPoint),e.safetyStock!==void 0&&(t.safetyStock=e.safetyStock),e.unitCost!==void 0&&(t.unitCost=e.unitCost),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(re,{id:i$1,input:t});i("Inventory item updated"),h$1(e,n.updateInventoryItem);}catch(t){g(t);}}),r.command("remove").description("Delete an inventory item").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(ae,{id:i$1});i(`Inventory item ${i$1} deleted`),h$1(e,{deleted:t.deleteInventoryItem});}catch(t){g(t);}}),r.command("adjust").description("Adjust inventory stock levels").argument("<id>","Inventory item ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={id:i$1};if(e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),Object.keys(t).length===1)throw new o("No stock adjustments specified");let n=await b$1(oe,{input:t});i("Inventory stock adjusted"),h$1(e,n.adjustInventoryStock);}catch(t){g(t);}}),r.command("transactions").description("List inventory transactions").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(te,{filter:ot(i),pagination:h(i)});h$1(i,e.inventoryTransactions,{headers:["ID","Number","Type","Product","Warehouse","Qty"],rows:e.inventoryTransactions.map(t=>[p(t.id,12),t.transactionNumber,t.type,p(t.productId,12),p(t.warehouseId,12),String(t.quantity)])});}catch(e){g(e);}}),r.command("record-transaction").description("Record an inventory transaction").requiredOption("--number <s>","Transaction number").requiredOption("--type <t>","Transaction type (RECEIPT|ISSUE|TRANSFER|ADJUSTMENT|RETURN)").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--quantity <n>","Quantity",c).option("--inventory-item <id>","Inventory item ID").option("--unit-cost <n>","Unit cost",l).option("--reference-type <s>","Reference type").option("--reference-id <s>","Reference ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={transactionNumber:i$1.number,type:i$1.type.toUpperCase(),productId:i$1.product,warehouseId:i$1.warehouse,quantity:i$1.quantity};i$1.inventoryItem&&(e.inventoryItemId=i$1.inventoryItem),i$1.unitCost!==void 0&&(e.unitCost=i$1.unitCost),i$1.referenceType&&(e.referenceType=i$1.referenceType),i$1.referenceId&&(e.referenceId=i$1.referenceId),i$1.notes&&(e.notes=i$1.notes);let t=await b$1(se,{input:e});i(`Transaction recorded: ${t.createInventoryTransaction.transactionNumber}`),h$1(i$1,t.createInventoryTransaction);}catch(e){g(e);}});}function dt(m){let r=m.command("orders").description("Movethewheels delivery orders");r.command("list").description("List orders").option("--customer <id>","Filter by customer ID").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--status <s>","Filter by order status").option("--order-type <t>","Filter by order type").option("--priority <p>","Filter by priority").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.customer&&(e.customerId=i.customer),i.driver&&(e.driverId=i.driver),i.vehicle&&(e.vehicleId=i.vehicle),i.status&&(e.status=i.status.toUpperCase()),i.orderType&&(e.orderType=i.orderType.toUpperCase()),i.priority&&(e.priority=i.priority.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(ce,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.movethewheelsOrders,{headers:["ID","Order #","Type","Status","Priority","Tracking"],rows:t.movethewheelsOrders.map(n=>[p(n.id,12),n.orderNumber,n.orderType,n.status,n.priority,n.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("get").description("Get an order by id").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(de,{id:i});if(!t.movethewheelsOrder)throw new o(`Order ${i} not found`);h$1(e,t.movethewheelsOrder);}catch(t){g(t);}}),r.command("create").description("Create an order").requiredOption("--customer <id>","Customer ID").requiredOption("--order-number <s>","Order number").requiredOption("--pickup-address <json>","Pickup address JSON").requiredOption("--delivery-address <json>","Delivery address JSON").requiredOption("--items <json>","Items JSON").option("--order-type <t>","Order type","B2C").option("--priority <p>","Priority","MEDIUM").option("--status <s>","Status","PENDING").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={customerId:i$1.customer,orderNumber:i$1.orderNumber,pickupAddress:u("pickup-address",i$1.pickupAddress),deliveryAddress:u("delivery-address",i$1.deliveryAddress),items:u("items",i$1.items),orderType:(i$1.orderType??"B2C").toUpperCase(),priority:(i$1.priority??"MEDIUM").toUpperCase(),status:(i$1.status??"PENDING").toUpperCase()};i$1.driver&&(e.driverId=i$1.driver),i$1.vehicle&&(e.vehicleId=i$1.vehicle),i$1.trackingNumber&&(e.trackingNumber=i$1.trackingNumber),i$1.scheduledDelivery&&(e.scheduledDelivery=i$1.scheduledDelivery),i$1.specialInstructions&&(e.specialInstructions=i$1.specialInstructions),i$1.pricing&&(e.pricing=u("pricing",i$1.pricing));let t=await b$1(pe,{input:e});i(`Order created: ${t.createMovethewheelsOrder.orderNumber}`),h$1(i$1,t.createMovethewheelsOrder);}catch(e){g(e);}}),r.command("update").description("Update an order").argument("<id>","Order ID").option("--customer <id>","Customer ID").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--order-type <t>","Order type").option("--priority <p>","Priority").option("--status <s>","Status").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--delivery-address <json>","Delivery address JSON").option("--pickup-address <json>","Pickup address JSON").option("--items <json>","Items JSON").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.customer&&(t.customerId=e.customer),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.orderType&&(t.orderType=e.orderType.toUpperCase()),e.priority&&(t.priority=e.priority.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.scheduledDelivery&&(t.scheduledDelivery=e.scheduledDelivery),e.specialInstructions!==void 0&&(t.specialInstructions=e.specialInstructions),e.deliveryAddress&&(t.deliveryAddress=u("delivery-address",e.deliveryAddress)),e.pickupAddress&&(t.pickupAddress=u("pickup-address",e.pickupAddress)),e.items&&(t.items=u("items",e.items)),e.pricing&&(t.pricing=u("pricing",e.pricing)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(ue,{id:i$1,input:t});i("Order updated"),h$1(e,n.updateMovethewheelsOrder);}catch(t){g(t);}}),r.command("remove").description("Delete an order").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(me,{id:i$1});i(`Order ${i$1} deleted`),h$1(e,{deleted:t.deleteMovethewheelsOrder});}catch(t){g(t);}}),r.command("set-status").description("Update an order status").argument("<id>","Order ID").requiredOption("--status <s>","PENDING|CONFIRMED|ASSIGNED|PICKED_UP|IN_TRANSIT|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED|CANCELLED").option("--notes <s>","Status notes").option("--location <json>","Location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={status:e.status.toUpperCase()};e.notes&&(t.notes=e.notes),e.location&&(t.location=u("location",e.location));let n=await b$1(le,{id:i$1,input:t});i(`Order status set to ${n.updateMovethewheelsOrderStatus.status}`),h$1(e,n.updateMovethewheelsOrderStatus);}catch(t){g(t);}}),r.command("stats").description("Order stats (total, pending, in-transit, delivered, \u2026)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(fe);h$1(i,e.orderStats);}catch(e){g(e);}});}function ct(m){let r=m.command("shipments").description("Movethewheels shipments & tracking");r.command("list").description("List shipments").option("--order <id>","Filter by order ID").option("--customer <id>","Filter by customer ID").option("--carrier <id>","Filter by carrier ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.order&&(e.orderId=i.order),i.customer&&(e.customerId=i.customer),i.carrier&&(e.carrierId=i.carrier),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(he,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.shipments,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:t.shipments.map(n=>[p(n.id,12),n.shipmentNumber,p(n.orderId,12),n.status,n.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("get").description("Get a shipment by id (includes tracking events)").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(ge,{id:i});if(!t.shipment)throw new o(`Shipment ${i} not found`);h$1(e,t.shipment);}catch(t){g(t);}}),r.command("active").description("List active deliveries (in-transit shipments)").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ye,{pagination:h(i)});h$1(i,e.activeDeliveries,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:e.activeDeliveries.map(t=>[p(t.id,12),t.shipmentNumber,p(t.orderId,12),t.status,t.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("create").description("Create a shipment").requiredOption("--shipment-number <s>","Shipment number").requiredOption("--order <id>","Order ID").requiredOption("--origin <json>","Origin JSON").requiredOption("--destination <json>","Destination JSON").option("--status <s>","Status","PLANNED").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={shipmentNumber:i$1.shipmentNumber,orderId:i$1.order,origin:u("origin",i$1.origin),destination:u("destination",i$1.destination),status:(i$1.status??"PLANNED").toUpperCase()};i$1.customer&&(e.customerId=i$1.customer),i$1.carrier&&(e.carrierId=i$1.carrier),i$1.trackingNumber&&(e.trackingNumber=i$1.trackingNumber),i$1.cargoDetails&&(e.cargoDetails=u("cargo-details",i$1.cargoDetails)),i$1.estimatedDelivery&&(e.estimatedDelivery=i$1.estimatedDelivery),i$1.actualDelivery&&(e.actualDelivery=i$1.actualDelivery);let t=await b$1(Ee,{input:e});i(`Shipment created: ${t.createShipment.shipmentNumber}`),h$1(i$1,t.createShipment);}catch(e){g(e);}}),r.command("update").description("Update a shipment").argument("<id>","Shipment ID").option("--status <s>","Status").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--origin <json>","Origin JSON").option("--destination <json>","Destination JSON").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.status&&(t.status=e.status.toUpperCase()),e.customer!==void 0&&(t.customerId=e.customer),e.carrier!==void 0&&(t.carrierId=e.carrier),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.origin&&(t.origin=u("origin",e.origin)),e.destination&&(t.destination=u("destination",e.destination)),e.cargoDetails&&(t.cargoDetails=u("cargo-details",e.cargoDetails)),e.estimatedDelivery&&(t.estimatedDelivery=e.estimatedDelivery),e.actualDelivery&&(t.actualDelivery=e.actualDelivery),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(De,{id:i$1,input:t});i("Shipment updated"),h$1(e,n.updateShipment);}catch(t){g(t);}}),r.command("remove").description("Delete a shipment").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Oe,{id:i$1});i(`Shipment ${i$1} deleted`),h$1(e,{deleted:t.deleteShipment});}catch(t){g(t);}}),r.command("add-event").description("Add a tracking event to a shipment").requiredOption("--shipment <id>","Shipment ID").requiredOption("--event-type <t>","CREATED|PICKED_UP|IN_TRANSIT|ARRIVED|DEPARTED|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED").option("--details <s>","Event details").option("--location <json>","Location JSON").option("--timestamp <s>","Timestamp (ISO date)").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={shipmentId:i$1.shipment,eventType:i$1.eventType.toUpperCase()};i$1.details&&(e.details=i$1.details),i$1.location&&(e.location=u("location",i$1.location)),i$1.timestamp&&(e.timestamp=i$1.timestamp);let t=await b$1(Re,{input:e});i(`Tracking event added: ${t.addTrackingEvent.eventType}`),h$1(i$1,t.addTrackingEvent);}catch(e){g(e);}}),r.command("tracking").description("List tracking events for a shipment").argument("<shipmentId>","Shipment ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(ve,{shipmentId:i,pagination:h(e)});h$1(e,t.shipmentTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.shipmentTracking.map(n=>[p(n.id,12),n.eventType,p(n.details??"-",30),n.timestamp])});}catch(t){g(t);}}),r.command("order-tracking").description("List tracking events for an order").argument("<orderId>","Order ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(Ie,{orderId:i,pagination:h(e)});h$1(e,t.orderTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.orderTracking.map(n=>[p(n.id,12),n.eventType,p(n.details??"-",30),n.timestamp])});}catch(t){g(t);}}),r.command("alerts").description("List tracking alerts (delayed / at-risk shipments)").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(we,{pagination:h(i)});h$1(i,e.trackingAlerts,{headers:["Type","Shipment #","Message"],rows:e.trackingAlerts.map(t=>[t.alertType,t.shipmentNumber,p(t.message,40)])});}catch(e){g(e);}});}function pt(m){let r=m.command("routes").description("Movethewheels delivery routes");r.command("list").description("List routes").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--shipment <id>","Filter by shipment ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.driver&&(e.driverId=i.driver),i.vehicle&&(e.vehicleId=i.vehicle),i.shipment&&(e.shipmentId=i.shipment),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(Te,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.routes,{headers:["ID","Name","Status","Driver","Vehicle","Distance"],rows:t.routes.map(n=>[p(n.id,12),n.name,n.status,n.driverId?p(n.driverId,12):"-",n.vehicleId?p(n.vehicleId,12):"-",n.estimatedDistance!=null?String(n.estimatedDistance):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a route by id").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(be,{id:i});if(!t.route)throw new o(`Route ${i} not found`);h$1(e,t.route);}catch(t){g(t);}}),r.command("create").description("Create a route").requiredOption("--name <name>","Route name").requiredOption("--waypoints <json>","Waypoints JSON").option("--status <s>","Status","PLANNED").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--estimated-distance <n>","Estimated distance",l).option("--estimated-duration <n>","Estimated duration",l).option("--actual-distance <n>","Actual distance",l).option("--actual-duration <n>","Actual duration",l).option("--fuel-cost <n>","Fuel cost",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,waypoints:u("waypoints",i$1.waypoints),status:(i$1.status??"PLANNED").toUpperCase()};i$1.driver&&(e.driverId=i$1.driver),i$1.vehicle&&(e.vehicleId=i$1.vehicle),i$1.shipment&&(e.shipmentId=i$1.shipment),i$1.estimatedDistance!==void 0&&(e.estimatedDistance=i$1.estimatedDistance),i$1.estimatedDuration!==void 0&&(e.estimatedDuration=i$1.estimatedDuration),i$1.actualDistance!==void 0&&(e.actualDistance=i$1.actualDistance),i$1.actualDuration!==void 0&&(e.actualDuration=i$1.actualDuration),i$1.fuelCost!==void 0&&(e.fuelCost=i$1.fuelCost);let t=await b$1(Ce,{input:e});i(`Route created: ${t.createRoute.name}`),h$1(i$1,t.createRoute);}catch(e){g(e);}}),r.command("update").description("Update a route").argument("<id>","Route ID").option("--name <name>","Route name").option("--status <s>","Status").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--waypoints <json>","Waypoints JSON").option("--estimated-distance <n>","Estimated distance",l).option("--estimated-duration <n>","Estimated duration",l).option("--actual-distance <n>","Actual distance",l).option("--actual-duration <n>","Actual duration",l).option("--fuel-cost <n>","Fuel cost",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.status&&(t.status=e.status.toUpperCase()),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.shipment!==void 0&&(t.shipmentId=e.shipment),e.waypoints&&(t.waypoints=u("waypoints",e.waypoints)),e.estimatedDistance!==void 0&&(t.estimatedDistance=e.estimatedDistance),e.estimatedDuration!==void 0&&(t.estimatedDuration=e.estimatedDuration),e.actualDistance!==void 0&&(t.actualDistance=e.actualDistance),e.actualDuration!==void 0&&(t.actualDuration=e.actualDuration),e.fuelCost!==void 0&&(t.fuelCost=e.fuelCost),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(Se,{id:i$1,input:t});i("Route updated"),h$1(e,n.updateRoute);}catch(t){g(t);}}),r.command("remove").description("Delete a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Ae,{id:i$1});i(`Route ${i$1} deleted`),h$1(e,{deleted:t.deleteRoute});}catch(t){g(t);}}),r.command("optimize").description("Optimize a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Ne,{id:i$1});i("Route optimized"),h$1(e,t.optimizeRoute);}catch(t){g(t);}});}function ut(m){let r=m.command("marketplace").description("Movethewheels logistics marketplace (providers & offerings)"),i$1=r.command("providers").description("Service providers");i$1.command("list").description("List service providers").option("--type <t>","Filter by provider type").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n={};t.type&&(n.type=t.type),t.active!==void 0&&(n.isActive=t.active),t.query&&(n.search=t.query);let d=await b$1($e,{filter:Object.keys(n).length?n:void 0,pagination:h(t)});h$1(t,d.serviceProviders,{headers:["ID","Name","Type","Active","Verified","Rating"],rows:d.serviceProviders.map(y=>[p(y.id,12),y.name,y.type,y.isActive?"yes":"no",y.isVerified?"yes":"no",y.rating!=null?String(y.rating):"-"])});}catch(n){g(n);}}),i$1.command("get").description("Get a service provider by id (includes offerings)").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(ke,{id:t});if(!d.serviceProvider)throw new o(`Provider ${t} not found`);h$1(n,d.serviceProvider);}catch(d){g(d);}}),i$1.command("create").description("Create a service provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",l).option("--active <bool>","Active (true|false)",t=>t==="true",true).option("--verified <bool>","Verified (true|false)",t=>t==="true",false).option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type,isActive:t.active??!0,isVerified:t.verified??!1};t.description&&(n.description=t.description),t.rating!==void 0&&(n.rating=t.rating),t.contactInfo&&(n.contactInfo=u("contact-info",t.contactInfo)),t.services&&(n.services=u("services",t.services));let d=await b$1(Pe,{input:n});i(`Provider created: ${d.createServiceProvider.name}`),h$1(t,d.createServiceProvider);}catch(n){g(n);}}),i$1.command("update").description("Update a service provider").argument("<id>","Provider ID").option("--name <name>","Provider name").option("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",l).option("--active <bool>","Active (true|false)",t=>t==="true").option("--verified <bool>","Verified (true|false)",t=>t==="true").option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d={};if(n.name&&(d.name=n.name),n.type&&(d.type=n.type),n.description!==void 0&&(d.description=n.description),n.rating!==void 0&&(d.rating=n.rating),n.active!==void 0&&(d.isActive=n.active),n.verified!==void 0&&(d.isVerified=n.verified),n.contactInfo&&(d.contactInfo=u("contact-info",n.contactInfo)),n.services&&(d.services=u("services",n.services)),!Object.keys(d).length)throw new o("No updates specified");let y=await b$1(_e,{id:t,input:d});i("Provider updated"),h$1(n,y.updateServiceProvider);}catch(d){g(d);}}),i$1.command("remove").description("Delete a service provider").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(Me,{id:t});i(`Provider ${t} deleted`),h$1(n,{deleted:d.deleteServiceProvider});}catch(d){g(d);}});let e=r.command("offerings").description("Service offerings");e.command("list").description("List service offerings").option("--provider <id>","Filter by provider ID").option("--category <c>","Filter by category").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n={};t.provider&&(n.providerId=t.provider),t.category&&(n.category=t.category),t.query&&(n.search=t.query);let d=await b$1(Le,{filter:Object.keys(n).length?n:void 0,pagination:h(t)});h$1(t,d.serviceOfferings,{headers:["ID","Name","Provider","Category","Price","Currency"],rows:d.serviceOfferings.map(y=>[p(y.id,12),y.name,p(y.providerId,12),y.category??"-",String(y.price),y.currency])});}catch(n){g(n);}}),e.command("get").description("Get a service offering by id").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(Ue,{id:t});if(!d.serviceOffering)throw new o(`Offering ${t} not found`);h$1(n,d.serviceOffering);}catch(d){g(d);}}),e.command("create").description("Create a service offering").requiredOption("--provider <id>","Provider ID").requiredOption("--name <name>","Offering name").requiredOption("--price <n>","Price",l).option("--description <s>","Description").option("--category <c>","Category").option("--currency <c>","Currency","USD").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async t=>{try{let n={providerId:t.provider,name:t.name,price:t.price,currency:t.currency??"USD"};t.description&&(n.description=t.description),t.category&&(n.category=t.category),t.availability&&(n.availability=u("availability",t.availability));let d=await b$1(Ve,{input:n});i(`Offering created: ${d.createServiceOffering.name}`),h$1(t,d.createServiceOffering);}catch(n){g(n);}}),e.command("update").description("Update a service offering").argument("<id>","Offering ID").option("--name <name>","Offering name").option("--description <s>","Description").option("--category <c>","Category").option("--price <n>","Price",l).option("--currency <c>","Currency").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d={};if(n.name&&(d.name=n.name),n.description!==void 0&&(d.description=n.description),n.category!==void 0&&(d.category=n.category),n.price!==void 0&&(d.price=n.price),n.currency&&(d.currency=n.currency),n.availability&&(d.availability=u("availability",n.availability)),!Object.keys(d).length)throw new o("No updates specified");let y=await b$1(xe,{id:t,input:d});i("Offering updated"),h$1(n,y.updateServiceOffering);}catch(d){g(d);}}),e.command("remove").description("Delete a service offering").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(qe,{id:t});i(`Offering ${t} deleted`),h$1(n,{deleted:d.deleteServiceOffering});}catch(d){g(d);}});}function mt(m){let r=m.command("reports").description("Movethewheels reports & data import/export");r.command("list").description("List reports").option("--type <t>","Filter by report type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={};e.type&&(t.type=e.type),e.status&&(t.status=e.status),e.query&&(t.search=e.query);let n=await b$1(je,{filter:Object.keys(t).length?t:void 0,pagination:h(e)});h$1(e,n.movethewheelsReports,{headers:["ID","Name","Type","Status","Schedule","Last Generated"],rows:n.movethewheelsReports.map(d=>[p(d.id,12),d.name,d.type,d.status,d.schedule??"-",d.lastGenerated??"-"])});}catch(t){g(t);}}),r.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await b$1(Fe,{id:e});if(!n.movethewheelsReport)throw new o(`Report ${e} not found`);h$1(t,n.movethewheelsReport);}catch(n){g(n);}}),r.command("create").description("Create a report").requiredOption("--name <name>","Report name").requiredOption("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status","DRAFT").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,type:e.type,status:e.status??"DRAFT"};e.description&&(t.description=e.description),e.schedule&&(t.schedule=e.schedule),e.configuration&&(t.configuration=u("configuration",e.configuration));let n=await b$1(We,{input:t});i(`Report created: ${n.createMovethewheelsReport.name}`),h$1(e,n.createMovethewheelsReport);}catch(t){g(t);}}),r.command("update").description("Update a report").argument("<id>","Report ID").option("--name <name>","Report name").option("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.type&&(n.type=t.type),t.description!==void 0&&(n.description=t.description),t.status&&(n.status=t.status),t.schedule!==void 0&&(n.schedule=t.schedule),t.configuration&&(n.configuration=u("configuration",t.configuration)),!Object.keys(n).length)throw new o("No updates specified");let d=await b$1(Ge,{id:e,input:n});i("Report updated"),h$1(t,d.updateMovethewheelsReport);}catch(n){g(n);}}),r.command("remove").description("Delete a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await b$1(He,{id:e});i(`Report ${e} deleted`),h$1(t,{deleted:n.deleteMovethewheelsReport});}catch(n){g(n);}}),r.command("generate").description("Generate a report run").argument("<id>","Report ID").option("--parameters <json>","Parameters JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={reportId:e};t.parameters&&(n.parameters=u("parameters",t.parameters));let d=await b$1(Je,{input:n});i("Report generated"),h$1(t,d.generateMovethewheelsReport);}catch(n){g(n);}}),r.command("export").description("Export resource data").requiredOption("--resource <r>","Resource to export").option("--export-format <f>","Export format","json").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,format:e.exportFormat??"json"},n=await b$1(ze,{input:t});i("Data exported"),h$1(e,n.exportData);}catch(t){g(t);}}),r.command("import").description("Import resource data").requiredOption("--resource <r>","Resource to import").requiredOption("--payload <json>","Payload JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,payload:u("payload",e.payload)},n=await b$1(Ye,{input:t});i("Data imported"),h$1(e,n.importData);}catch(t){g(t);}});let i$1=m.command("settings").description("Movethewheels module settings");i$1.command("get").description("Get module settings").option("-f, --format <format>","Output format").action(async e=>{try{let t=await b$1(Be);h$1(e,t.moduleSettings);}catch(t){g(t);}}),i$1.command("update").description("Update module settings preferences").requiredOption("--preferences <json>","Preferences JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={preferences:u("preferences",e.preferences)},n=await b$1(Ke,{input:t});i("Module settings updated"),h$1(e,n.updateModuleSettings);}catch(t){g(t);}});}function lt(m){let r=m.command("analytics").description("Movethewheels analytics & dashboards");r.command("dashboard").description("Dashboard metrics (orders, deliveries, revenue, fleet, low stock)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Qe);h$1(i,e.dashboardMetrics);}catch(e){g(e);}}),r.command("trends").description("Analytics time series (order, revenue, delivery trends)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Ze);h$1(i,e.analytics);}catch(e){g(e);}}),r.command("finance").description("Finance metrics (revenue, fuel cost, open invoices)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Xe);h$1(i,e.financeMetrics);}catch(e){g(e);}}),r.command("fleet").description("Fleet stats (vehicles & drivers by status)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(et);h$1(i,e.fleetStats);}catch(e){g(e);}});}var ft={id:"movethewheels",version:"1.0.0",displayName:"Movethewheels",dependsOn:["auth","workspaces"],register(m,r){a(r);let i=m.command("movethewheels").description("Movethewheels logistics & fleet operations");tt(i),it(i),nt(i),rt(i),at(i),st(i),dt(i),ct(i),pt(i),ut(i),mt(i),lt(i);}},yi=ft;export{yi as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burdenoff/cli-sdk",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.719.1",
|
|
4
4
|
"description": "Modular CLI SDK shared across all Burdenoff product CLIs (vibecontrols, botlit, fluidgrids, bigconsole, healthybowl, devportal, workspaces). Each module exports CliModule contract; product CLIs become thin shells that pick which modules to mount.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|