@xanots/sdk 0.0.5 → 0.0.7

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.
Files changed (83) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +3 -3
  3. package/dist/.build-fingerprint +1 -1
  4. package/dist/{agent-file-refresh-IJ7GN2FJ.js → agent-file-refresh-4W37DGXS.js} +4 -4
  5. package/dist/bin.js +8 -8
  6. package/dist/branch-commands-PBQ36L4A.js +134 -0
  7. package/dist/{chunk-CYJ7R3AD.js → chunk-2V3JUXTF.js} +24 -11
  8. package/dist/{chunk-OR43PDCW.js → chunk-3EYUR3TX.js} +2 -2
  9. package/dist/{chunk-SG4UBJ47.js → chunk-3QW5NFZJ.js} +26 -5
  10. package/dist/{chunk-7SISR3CS.js → chunk-4PE4ZAB7.js} +3 -3
  11. package/dist/{chunk-PGBK64U5.js → chunk-4PTSTDIG.js} +2 -2
  12. package/dist/{live-diff-FP4SFNT4.js → chunk-5HCDZ2XN.js} +67 -6
  13. package/dist/{chunk-OARSPAIE.js → chunk-5PDOAR77.js} +58 -38
  14. package/dist/{chunk-5WGEURVI.js → chunk-6AAT2AYQ.js} +21 -1
  15. package/dist/{chunk-QA5ICJ4M.js → chunk-7BUTRVKA.js} +3 -3
  16. package/dist/{chunk-YUBJLB6G.js → chunk-7JDT4PBU.js} +75 -8
  17. package/dist/{chunk-LLWK6H77.js → chunk-BKDJN76G.js} +31 -1
  18. package/dist/{chunk-MS3BRZAZ.js → chunk-CL2H2WYE.js} +50 -27
  19. package/dist/{chunk-KXCPZUUM.js → chunk-DBHE35JM.js} +8 -67
  20. package/dist/chunk-EQW3YT5U.js +159 -0
  21. package/dist/{chunk-BPEEGJJA.js → chunk-FAWNUE2U.js} +39 -8
  22. package/dist/{chunk-ZGA5MUNC.js → chunk-FDKR4YMN.js} +2 -2
  23. package/dist/{chunk-APOR6TCV.js → chunk-H2DEDWQF.js} +4 -4
  24. package/dist/{chunk-PXXLBXOP.js → chunk-JAVB27HL.js} +2 -2
  25. package/dist/{chunk-AAFBSOSD.js → chunk-JQJPFUZI.js} +3 -3
  26. package/dist/{chunk-IVP6TS26.js → chunk-JQLR64UC.js} +6 -5
  27. package/dist/{chunk-FN4OQT2J.js → chunk-JUHKEAHJ.js} +4 -4
  28. package/dist/{chunk-WJYB7DSI.js → chunk-MDXR5E5Q.js} +2 -2
  29. package/dist/{chunk-WGDAOOXG.js → chunk-MU3O43L2.js} +3 -3
  30. package/dist/{chunk-YUPQOLFX.js → chunk-NJGNUVXR.js} +15 -4
  31. package/dist/{chunk-F5T45NAM.js → chunk-OKNSR7MT.js} +45 -2
  32. package/dist/{chunk-MFIHIS6B.js → chunk-OYMR5AMJ.js} +2 -2
  33. package/dist/{chunk-QUUB7HYK.js → chunk-P5C2YKAM.js} +2 -2
  34. package/dist/{chunk-6DHJVLYP.js → chunk-Q77KNEUL.js} +1 -1
  35. package/dist/{chunk-D6OGU2AI.js → chunk-QIWBCS7N.js} +2 -2
  36. package/dist/cli.d.ts +28 -2
  37. package/dist/cli.js +7 -7
  38. package/dist/{codegen-command-BLOS3GR3.js → codegen-command-DYH4H4TD.js} +18 -18
  39. package/dist/{completion-GHP5RRLQ.js → completion-A6BZ3XGU.js} +8 -7
  40. package/dist/{deploy-command-XOH76USO.js → deploy-command-HM57BINV.js} +15 -15
  41. package/dist/{env-target-POGJMD6Q.js → env-target-WA3BH5YU.js} +6 -6
  42. package/dist/{ephemeral-command-46SL27GJ.js → ephemeral-command-SD2KLX4P.js} +10 -10
  43. package/dist/index.d.ts +69 -26
  44. package/dist/index.js +6 -6
  45. package/dist/init-command-VIPWAQYS.js +30 -0
  46. package/dist/internal.d.ts +2 -2
  47. package/dist/internal.js +120 -62
  48. package/dist/{io-7VIA5SON.js → io-M7XZEMK7.js} +3 -3
  49. package/dist/live-diff-QK4KC2FJ.js +12 -0
  50. package/dist/{lock-KXOJIGCG.js → lock-GFXD6G2E.js} +6 -2
  51. package/dist/{lock-commands-6UONZW26.js → lock-commands-7VJKAXV6.js} +8 -8
  52. package/dist/{login-command-SG7IWTHW.js → login-command-DFCURZLC.js} +6 -6
  53. package/dist/{logout-command-J2AG5NKC.js → logout-command-WXVZQCAV.js} +2 -2
  54. package/dist/{marketplace-command-NKTQ3VPS.js → marketplace-command-BCOAAN2I.js} +3 -3
  55. package/dist/{meta-client-OW5WKWW7.js → meta-client-57ZWVHST.js} +2 -2
  56. package/dist/node.d.ts +2 -2
  57. package/dist/node.js +10 -10
  58. package/dist/{profile-command-ZPC2DPFV.js → profile-command-QJAAUZIV.js} +3 -3
  59. package/dist/{release-command-FKQ6E3TD.js → release-command-3IET7YII.js} +206 -26
  60. package/dist/{sandbox-details-command-DMY2KGA2.js → sandbox-details-command-EDO56IY3.js} +4 -4
  61. package/dist/{sandbox-export-command-R6QMEK3D.js → sandbox-export-command-MO6DEZ7Z.js} +5 -5
  62. package/dist/scaffold.d.ts +10 -13
  63. package/dist/scaffold.js +3 -3
  64. package/dist/{store-BJONDJoZ.d.ts → store-DfuWu1tE.d.ts} +1 -1
  65. package/dist/{test-command-56IAEYHX.js → test-command-S7SMRWMP.js} +8 -8
  66. package/dist/{upgrade-command-M2DZ3ZPD.js → upgrade-command-TZYSGXP7.js} +13 -13
  67. package/dist/{validate-command-CIBQJND7.js → validate-command-MMXEVHH3.js} +10 -10
  68. package/dist/{workspace-command-HZS43PHJ.js → workspace-command-X6L7HTXO.js} +24 -20
  69. package/guides/environment.md +6 -3
  70. package/guides/scaffold.md +3 -2
  71. package/llms/fields.md +8 -0
  72. package/llms/kinds-core.md +2 -1
  73. package/llms/lambda.md +1 -1
  74. package/llms/legacy.md +1 -1
  75. package/llms/lock.md +32 -0
  76. package/llms/object-kinds.md +2 -2
  77. package/llms/statements-calls.md +10 -3
  78. package/llms/statements-data.md +2 -1
  79. package/llms-full.txt +108 -58
  80. package/llms.txt +49 -49
  81. package/manifest.json +2 -2
  82. package/package.json +1 -1
  83. package/dist/init-command-NCRPVFGE.js +0 -30
package/dist/node.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { aZ as LambdaOptions, a_ as CaptureValue, a$ as LambdaSurface, b0 as CaptureRecord, b1 as LambdaBindings, F as FunctionDef, b2 as Xano, i as LockFile } from './store-BJONDJoZ.js';
2
- export { b3 as AddonDef, b4 as AddonXdo, A as AdoptChange, a as AdoptResult, b5 as AgentDef, b6 as AgentHandle, b7 as AgentOutput, b8 as AgentSettingsXdo, b9 as AgentXdo, ba as AmbientBindings, bb as AnthropicLlm, bc as ApiGroupDef, bd as ApiGroupXdo, be as AuthRef, bf as Authored, B as Bundle, b as BundlePayload, c as BundleType, bg as Capturable, bh as ChannelConversationDef, bi as ChannelDeliveryDef, bj as ChannelDeliveryGuarantee, bk as ChannelPublishDef, bl as ChannelPublishWho, bm as ChannelRateLimitDef, bn as ColumnDef, bo as Comparison, bp as ContainerEnv, bq as ContainerPort, br as ContainerResources, bs as ContainerVolume, bt as CorsConfig, bu as CorsMode, bv as DatabaseActions, bw as DatabaseInputs, bx as DbEval, by as DbEvalFilter, bz as DbWhere, bA as ErrorInputs, bB as ExceptionPolicy, bC as FieldAccessor, bD as FieldRule, bE as GoogleGenAiLlm, bF as HistoryInput, bG as HttpVerb, bH as IndexDef, bI as IndexLang, bJ as IndexOp, bK as IndexType, bL as IndexXdo, bM as InferRow, bN as InputDescriptor, bO as InputOptions, bP as IteratingBindings, bQ as KnowledgeDef, bR as KnowledgeDirSource, bS as KnowledgeFileSource, bT as KnowledgeMode, bU as KnowledgeType, bV as LAMBDA_BINDINGS, bW as LAMBDA_CODE_FILTERS, bX as LAMBDA_GLOBALS, bY as LAMBDA_MODULE_GLOBALS, bZ as LAMBDA_STATEMENTS, b_ as LambdaBody, b$ as LlmPrompt, c0 as LlmProvider, c1 as LlmSettings, g as LockEntry, h as LockExportContext, M as Manifest, j as ManifestField, k as ManifestKind, l as ManifestStatement, c2 as ManifestValue, c3 as McpPathOptions, c4 as McpServerDef, c5 as McpServerHandle, c6 as McpServerXdo, m as MergeResult, c7 as MessageDeliverTo, c8 as MicroserviceChart, c9 as MicroserviceConfig, ca as MicroserviceContainer, cb as MicroserviceDef, cc as MicroserviceDeployment, cd as MicroserviceIngress, ce as MicroserviceRegistryAuth, cf as MicroserviceVolume, cg as MicroserviceXdo, ch as MiddlewareAttach, ci as MiddlewareAttachEntry, cj as MiddlewareDef, ck as MiddlewareXdo, O as ObjectKind, cl as OpenAiLlm, n as PayloadArrayKey, cm as QueryDef, cn as QueryFilterName, co as QueryHandle, cp as QueryResponseType, cq as QueryXdo, cr as RealtimeActions, cs as RealtimeChannelActions, ct as RealtimeChannelDef, cu as RealtimeChannelHandle, cv as RealtimeChannelRef, cw as RealtimeChannelTriggerInputs, cx as RealtimeChannelXdo, cy as RealtimeClient, cz as RealtimeInputs, cA as RealtimeMessageDef, cB as RealtimeMessageXdo, cC as RealtimeServerActions, cD as RealtimeServerDef, cE as RealtimeServerHandle, cF as RealtimeServerRef, cG as RealtimeServerTriggerInputs, cH as RealtimeServerXdo, cI as RealtimeUrlOptions, R as RenameResult, cJ as ResultStrategy, cK as Route, cL as RowOf, cM as ScheduleDef, cN as SchemaCols, cO as SchemaDef, cP as SearchComparison, cQ as SearchGroup, cR as SearchNode, cS as SearchOp, cT as SearchParamValue, cU as SeedFileSource, cV as SeedRow, cW as SeedSource, cX as SortDir, cY as SortDirective, S as StatementSpec, cZ as TableDef, c_ as TableXdo, c$ as TaskDef, d0 as TaskXdo, d1 as ToolDef, d2 as ToolXdo, d3 as ToolsetBaseDef, d4 as ToolsetBaseXdo, d5 as ToolsetInputs, d6 as ToolsetToolEntry, d7 as ToolsetToolRef, d8 as TriggerDef, d9 as TriggerObjType, da as TriggerXdo, db as ViewDef, dc as ViewXdo, dd as WorkflowTestDef, de as WorkflowTestXdo, df as WorkspaceActions, dg as WorkspaceConfigDef, dh as WorkspaceConfigXdo, di as WorkspaceHistoryDef, dj as WorkspaceHistoryXdo, dk as WorkspaceInputs, dl as WorkspaceMiddlewareDef, dm as WorkspaceMiddlewareXdo, dn as XanoFreeLlm, dp as addon, dq as agent, dr as agentTrigger, ds as and, dt as apiGroup, du as assertLambdaBody, dv as bitwiseAnd, dw as bitwiseOr, dx as bitwiseXor, dy as cmp, dz as defineFunction, dA as emit, dB as emitBundle, dC as errorTrigger, dD as expr, dE as fl, dF as input, dG as knowledge, dH as knowledgeDir, dI as knowledgeFile, dJ as mathAdd, dK as mathDiv, dL as mathMul, dM as mathSub, dN as mcpServer, dO as mcpServerTrigger, dP as microservice, dQ as middleware, dR as mixed, dS as objectEntries, dT as objectKeys, dU as objectValues, dV as or, dW as query, dX as realtimeChannel, dY as realtimeChannelTrigger, dZ as realtimeMessage, d_ as realtimeServer, d$ as realtimeServerTrigger, e0 as realtimeTrigger, e1 as resetLockOverrides, e2 as seedFile, e3 as seedLockOverrides, e4 as table, e5 as tableTrigger, e6 as task, e7 as textAppend, e8 as textPrepend, e9 as toSearchParams, ea as tool, eb as workflowTest, ec as workspace, ed as workspaceConfig, ee as workspaceTrigger } from './store-BJONDJoZ.js';
1
+ import { aZ as LambdaOptions, a_ as CaptureValue, a$ as LambdaSurface, b0 as CaptureRecord, b1 as LambdaBindings, F as FunctionDef, b2 as Xano, i as LockFile } from './store-DfuWu1tE.js';
2
+ export { b3 as AddonDef, b4 as AddonXdo, A as AdoptChange, a as AdoptResult, b5 as AgentDef, b6 as AgentHandle, b7 as AgentOutput, b8 as AgentSettingsXdo, b9 as AgentXdo, ba as AmbientBindings, bb as AnthropicLlm, bc as ApiGroupDef, bd as ApiGroupXdo, be as AuthRef, bf as Authored, B as Bundle, b as BundlePayload, c as BundleType, bg as Capturable, bh as ChannelConversationDef, bi as ChannelDeliveryDef, bj as ChannelDeliveryGuarantee, bk as ChannelPublishDef, bl as ChannelPublishWho, bm as ChannelRateLimitDef, bn as ColumnDef, bo as Comparison, bp as ContainerEnv, bq as ContainerPort, br as ContainerResources, bs as ContainerVolume, bt as CorsConfig, bu as CorsMode, bv as DatabaseActions, bw as DatabaseInputs, bx as DbEval, by as DbEvalFilter, bz as DbWhere, bA as ErrorInputs, bB as ExceptionPolicy, bC as FieldAccessor, bD as FieldRule, bE as GoogleGenAiLlm, bF as HistoryInput, bG as HttpVerb, bH as IndexDef, bI as IndexLang, bJ as IndexOp, bK as IndexType, bL as IndexXdo, bM as InferRow, bN as InputDescriptor, bO as InputOptions, bP as IteratingBindings, bQ as KnowledgeDef, bR as KnowledgeDirSource, bS as KnowledgeFileSource, bT as KnowledgeMode, bU as KnowledgeType, bV as LAMBDA_BINDINGS, bW as LAMBDA_CODE_FILTERS, bX as LAMBDA_GLOBALS, bY as LAMBDA_MODULE_GLOBALS, bZ as LAMBDA_STATEMENTS, b_ as LambdaBody, b$ as LlmPrompt, c0 as LlmProvider, c1 as LlmSettings, g as LockEntry, h as LockExportContext, M as Manifest, j as ManifestField, k as ManifestKind, l as ManifestStatement, c2 as ManifestValue, c3 as McpPathOptions, c4 as McpServerDef, c5 as McpServerHandle, c6 as McpServerXdo, m as MergeResult, c7 as MessageDeliverTo, c8 as MicroserviceChart, c9 as MicroserviceConfig, ca as MicroserviceContainer, cb as MicroserviceDef, cc as MicroserviceDeployment, cd as MicroserviceIngress, ce as MicroserviceRegistryAuth, cf as MicroserviceVolume, cg as MicroserviceXdo, ch as MiddlewareAttach, ci as MiddlewareAttachEntry, cj as MiddlewareDef, ck as MiddlewareXdo, O as ObjectKind, cl as OpenAiLlm, n as PayloadArrayKey, cm as QueryDef, cn as QueryFilterName, co as QueryHandle, cp as QueryResponseType, cq as QueryXdo, cr as RealtimeActions, cs as RealtimeChannelActions, ct as RealtimeChannelDef, cu as RealtimeChannelHandle, cv as RealtimeChannelRef, cw as RealtimeChannelTriggerInputs, cx as RealtimeChannelXdo, cy as RealtimeClient, cz as RealtimeInputs, cA as RealtimeMessageDef, cB as RealtimeMessageXdo, cC as RealtimeServerActions, cD as RealtimeServerDef, cE as RealtimeServerHandle, cF as RealtimeServerRef, cG as RealtimeServerTriggerInputs, cH as RealtimeServerXdo, cI as RealtimeUrlOptions, R as RenameResult, cJ as ResultStrategy, cK as Route, cL as RowOf, cM as ScheduleDef, cN as SchemaCols, cO as SchemaDef, cP as SearchComparison, cQ as SearchGroup, cR as SearchNode, cS as SearchOp, cT as SearchParamValue, cU as SeedFileSource, cV as SeedRow, cW as SeedSource, cX as SortDir, cY as SortDirective, S as StatementSpec, cZ as TableDef, c_ as TableXdo, c$ as TaskDef, d0 as TaskXdo, d1 as ToolDef, d2 as ToolXdo, d3 as ToolsetBaseDef, d4 as ToolsetBaseXdo, d5 as ToolsetInputs, d6 as ToolsetToolEntry, d7 as ToolsetToolRef, d8 as TriggerDef, d9 as TriggerObjType, da as TriggerXdo, db as ViewDef, dc as ViewXdo, dd as WorkflowTestDef, de as WorkflowTestXdo, df as WorkspaceActions, dg as WorkspaceConfigDef, dh as WorkspaceConfigXdo, di as WorkspaceHistoryDef, dj as WorkspaceHistoryXdo, dk as WorkspaceInputs, dl as WorkspaceMiddlewareDef, dm as WorkspaceMiddlewareXdo, dn as XanoFreeLlm, dp as addon, dq as agent, dr as agentTrigger, ds as and, dt as apiGroup, du as assertLambdaBody, dv as bitwiseAnd, dw as bitwiseOr, dx as bitwiseXor, dy as cmp, dz as defineFunction, dA as emit, dB as emitBundle, dC as errorTrigger, dD as expr, dE as fl, dF as input, dG as knowledge, dH as knowledgeDir, dI as knowledgeFile, dJ as mathAdd, dK as mathDiv, dL as mathMul, dM as mathSub, dN as mcpServer, dO as mcpServerTrigger, dP as microservice, dQ as middleware, dR as mixed, dS as objectEntries, dT as objectKeys, dU as objectValues, dV as or, dW as query, dX as realtimeChannel, dY as realtimeChannelTrigger, dZ as realtimeMessage, d_ as realtimeServer, d$ as realtimeServerTrigger, e0 as realtimeTrigger, e1 as resetLockOverrides, e2 as seedFile, e3 as seedLockOverrides, e4 as table, e5 as tableTrigger, e6 as task, e7 as textAppend, e8 as textPrepend, e9 as toSearchParams, ea as tool, eb as workflowTest, ec as workspace, ed as workspaceConfig, ee as workspaceTrigger } from './store-DfuWu1tE.js';
3
3
  export { ActionCallArgs, AddonCallArgs, AddonSpec, AgentRunResult, AiAgentRunArgs, AnyAddonDef, AnyFunctionDef, AnyQueryDef, AnyTableDef, ApiCallArgs, ApplyFilter, ApplyFilters, ArrayMapArgs, CloudJobArgs, CloudJobAwaitArgs, CloudJobStatusArgs, CreateAuthTokenArgs, DbAddArgs, DbAddOrEditArgs, DbAggregate, DbAggregatePaging, DbBind, DbBulkAddArgs, DbBulkDeleteArgs, DbBulkWriteArgs, DbDelArgs, DbDirectQueryArgs, DbDistinct, DbEditArgs, DbExternal, DbExternalPermissions, DbExternalQueryArgs, DbField, DbGetArgs, DbHasArgs, DbJoin, DbPaging, DbPatchArgs, DbQueryArgs, DbResponseType, DbReturnType, DbSchemaArgs, DbTransactionArgs, DbTruncateArgs, ExpectToThrowArgs, ExternalSqlEngine, ForArgs, ForeachArgs, FunctionCallArgs, FunctionRunArgs, GetRawInputArgs, HeaderMap, HttpMethod, InferInput, InferResponse, IpLookupArgs, IpLookupResult, MiddlewareCallArgs, RealtimeEventArgs, StackTupleWidened, SwitchArgs, SwitchCaseArgs, TaskCallArgs, ToolCallArgs, TriggerCallArgs, TryCatchArgs, WhileArgs, WorkflowTestCallArgs, actionCall, actionPackageCall, addonCall, aiAgentRun, apiCall, arrayMap, arrayUnion, cloudJob, cloudJobAwait, cloudJobStatus, comment, compile, conditional, createAuthToken, dbAdd, dbAddOrEdit, dbBulkAdd, dbBulkDelete, dbBulkPatch, dbBulkUpdate, dbDel, dbDirectQuery, dbEdit, dbExternalQuery, dbGet, dbHas, dbPatch, dbQuery, dbSchema, dbTransaction, dbTruncate, debugLog, die, expectToThrow, fileUrl, forLoop, foreachBreak, foreachContinue, foreachLoop, foreachRemove, functionCall, functionRun, getRawInput, group, ignored, ipLookup, middlewareCall, postProcess, realtimeEvent, returnValue, s, setVar, switchCase, switchStatement, taskCall, toolCall, triggerCall, tryCatch, updateVar, whileLoop, workflowTestCall } from './index.js';
4
4
  import { V as Value } from './response-CVAE2kMj.js';
5
5
  export { B as BrandOpts, c as BrandValue, C as CacheXdo, f as CaughtField, h as ConditionalContext, j as ConditionalElifContext, D as DecimalMethod, E as EmailMethod, k as ExprGroup, l as ExprNode, m as ExprOperand, n as ExprStatement, o as FieldAccess, p as FieldDescriptor, q as FieldMap, s as FieldOpts, u as FieldStyleType, v as FieldXdo, w as FilterXdo, x as FilteredValue, y as FromFieldMap, F as FunctionXdo, H as HistoryXdo, I as InputXdo, z as IntMethod, L as ListBoundsXdo, M as MethodArg, A as MethodOpts, G as MethodSpec, J as MethodXdo, K as MockEntry, N as MockMap, O as MockXdo, P as ObjInput, Q as ObjMember, S as ObjValue, T as ObjectRef, U as PasswordMethod, W as PersistedFunctionRow, X as RefValue, Y as RegexValue, Z as ResponseDef, _ as ResultItemXdo, $ as RowFromFieldMap, a0 as StackItemXdo, a1 as Statement, a2 as StatementAnnotations, a3 as StatementInputXdo, a4 as StatementOptions, a5 as TAGS, a6 as TEST_EXPECT_TYPES, a7 as TableRefMethod, a8 as Tag, a9 as TaggedValue, aa as TestDef, ab as TestExpect, ac as TestExpectType, ad as TestXdo, ae as TextFormat, af as TextMethod, ag as TypeBrand, ah as ValueOf, ai as VectorMethod, aj as XanoFileRef, ak as XanoGeoPosition, al as XanoGeoValue, am as annotate, an as auth, ao as c, ap as caught, aq as col, ar as env, as as expect, at as f, au as filter, av as inp, aw as obj, ax as out, ay as ref, az as resp, aA as setting, aB as statements, aC as sys, aD as test, aE as toolset, aF as withFilters } from './response-CVAE2kMj.js';
package/dist/node.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  TEST_EXPECT_TYPES,
7
7
  expect
8
- } from "./chunk-PXXLBXOP.js";
8
+ } from "./chunk-JAVB27HL.js";
9
9
  import {
10
10
  addon,
11
11
  agent,
@@ -17,7 +17,7 @@ import {
17
17
  task,
18
18
  tool,
19
19
  workflowTest
20
- } from "./chunk-FN4OQT2J.js";
20
+ } from "./chunk-JUHKEAHJ.js";
21
21
  import {
22
22
  actionCall,
23
23
  actionPackageCall,
@@ -100,7 +100,7 @@ import {
100
100
  workflowTestCall,
101
101
  workspaceConfig,
102
102
  workspaceTrigger
103
- } from "./chunk-CYJ7R3AD.js";
103
+ } from "./chunk-2V3JUXTF.js";
104
104
  import {
105
105
  exportBundleJson,
106
106
  loadDefault,
@@ -108,19 +108,19 @@ import {
108
108
  run,
109
109
  writeArtifact,
110
110
  writeBundle
111
- } from "./chunk-MS3BRZAZ.js";
112
- import "./chunk-IVP6TS26.js";
111
+ } from "./chunk-CL2H2WYE.js";
112
+ import "./chunk-JQLR64UC.js";
113
113
  import {
114
114
  readLockFile,
115
115
  writeLockFile
116
- } from "./chunk-MFIHIS6B.js";
116
+ } from "./chunk-OYMR5AMJ.js";
117
117
  import "./chunk-GNPVYOPB.js";
118
118
  import "./chunk-EZG76F7R.js";
119
119
  import {
120
120
  Xano,
121
121
  workspace
122
- } from "./chunk-BPEEGJJA.js";
123
- import "./chunk-F5T45NAM.js";
122
+ } from "./chunk-FAWNUE2U.js";
123
+ import "./chunk-OKNSR7MT.js";
124
124
  import {
125
125
  LAMBDA_BINDINGS,
126
126
  LAMBDA_CODE_FILTERS,
@@ -167,7 +167,7 @@ import {
167
167
  toSearchParams,
168
168
  toolset,
169
169
  withFilters
170
- } from "./chunk-YUPQOLFX.js";
170
+ } from "./chunk-NJGNUVXR.js";
171
171
  import "./chunk-WHOJWOSV.js";
172
172
  import {
173
173
  annotate,
@@ -176,7 +176,7 @@ import {
176
176
  import {
177
177
  resetLockOverrides,
178
178
  seedLockOverrides
179
- } from "./chunk-YUBJLB6G.js";
179
+ } from "./chunk-7JDT4PBU.js";
180
180
 
181
181
  // src/values/lambda-file.ts
182
182
  import { readFileSync } from "fs";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getAccessToken
3
- } from "./chunk-SG4UBJ47.js";
4
- import "./chunk-LLWK6H77.js";
3
+ } from "./chunk-3QW5NFZJ.js";
4
+ import "./chunk-BKDJN76G.js";
5
5
  import {
6
6
  isMachineOutput,
7
7
  writeJson
@@ -74,4 +74,4 @@ export {
74
74
  fetchProfile,
75
75
  runProfileCommand
76
76
  };
77
- //# sourceMappingURL=profile-command-ZPC2DPFV.js.map
77
+ //# sourceMappingURL=profile-command-QJAAUZIV.js.map
@@ -1,18 +1,31 @@
1
1
  import {
2
+ assertBranchTargetHonored,
2
3
  importWorkspaceArchive,
3
4
  planWorkspaceImport
4
- } from "./chunk-5WGEURVI.js";
5
+ } from "./chunk-6AAT2AYQ.js";
5
6
  import {
6
7
  assertBundleInput,
7
8
  loadBundleText
8
- } from "./chunk-QA5ICJ4M.js";
9
+ } from "./chunk-7BUTRVKA.js";
10
+ import {
11
+ sharedSchemaChanges
12
+ } from "./chunk-5HCDZ2XN.js";
13
+ import {
14
+ assertBranchAbsent,
15
+ assertUsableBranchLabel,
16
+ createBranch,
17
+ listBranches,
18
+ liveBranchLabel,
19
+ setLiveBranch
20
+ } from "./chunk-EQW3YT5U.js";
21
+ import "./chunk-ZOYMZZ3S.js";
9
22
  import {
10
23
  confirm
11
- } from "./chunk-PGBK64U5.js";
24
+ } from "./chunk-4PTSTDIG.js";
12
25
  import {
13
26
  getAccessToken
14
- } from "./chunk-SG4UBJ47.js";
15
- import "./chunk-LLWK6H77.js";
27
+ } from "./chunk-3QW5NFZJ.js";
28
+ import "./chunk-BKDJN76G.js";
16
29
  import {
17
30
  encodeWorkspaceArchive
18
31
  } from "./chunk-ZUTSMMAG.js";
@@ -24,14 +37,14 @@ import {
24
37
  import "./chunk-3IGNIP6R.js";
25
38
  import {
26
39
  resolveLockPath
27
- } from "./chunk-MS3BRZAZ.js";
40
+ } from "./chunk-CL2H2WYE.js";
28
41
  import {
29
42
  UsageError,
30
43
  assertWritableDest
31
- } from "./chunk-IVP6TS26.js";
44
+ } from "./chunk-JQLR64UC.js";
32
45
  import {
33
46
  readLockFile
34
- } from "./chunk-MFIHIS6B.js";
47
+ } from "./chunk-OYMR5AMJ.js";
35
48
  import "./chunk-GNPVYOPB.js";
36
49
  import {
37
50
  blank,
@@ -42,22 +55,57 @@ import {
42
55
  success,
43
56
  warn
44
57
  } from "./chunk-EZG76F7R.js";
45
- import "./chunk-BPEEGJJA.js";
46
- import "./chunk-F5T45NAM.js";
47
- import "./chunk-YUPQOLFX.js";
58
+ import "./chunk-FAWNUE2U.js";
59
+ import "./chunk-OKNSR7MT.js";
60
+ import "./chunk-NJGNUVXR.js";
48
61
  import "./chunk-WHOJWOSV.js";
49
62
  import "./chunk-5XZ744TS.js";
50
63
  import {
51
64
  REFERENCEABLE_KIND_PAYLOAD_KEYS,
52
65
  lockKey
53
- } from "./chunk-YUBJLB6G.js";
66
+ } from "./chunk-7JDT4PBU.js";
54
67
 
55
68
  // src/emit/release-command.ts
56
69
  import { existsSync } from "fs";
57
70
  var DESTRUCTIVE_ACTIONS = /* @__PURE__ */ new Set(["delete", "truncate", "drop"]);
58
71
  var IDENTITY_EXEMPT_TYPES = /* @__PURE__ */ new Set(["workspace"]);
72
+ var BRANCH_INCOMPATIBLE = [
73
+ {
74
+ flag: "--replace",
75
+ why: "a replace wipes the whole workspace, which is not something a branch can scope"
76
+ },
77
+ {
78
+ flag: "--backup-branch",
79
+ why: "a branch release does not overwrite the live branch, so there is nothing for a backup to protect"
80
+ }
81
+ ];
59
82
  function resolveRequest(args) {
83
+ if (args.branch !== void 0) {
84
+ assertUsableBranchLabel(args.branch, "--branch");
85
+ const conflicting = BRANCH_INCOMPATIBLE.filter(
86
+ ({ flag }) => flag === "--replace" ? args.replace : args.backupBranch !== void 0
87
+ );
88
+ if (conflicting.length > 0) {
89
+ const { flag, why } = conflicting[0];
90
+ throw new UsageError(
91
+ `\`--branch\` cannot be combined with \`${flag}\`: ${why}.
92
+ Drop \`${flag}\` to stage this release on "${args.branch}", or drop \`--branch\` to release to the live branch.`,
93
+ { helpFor: { command: "release" } }
94
+ );
95
+ }
96
+ } else if (args.setLive) {
97
+ throw new UsageError(
98
+ "`--set-live` promotes the branch a release just landed on, and this release names no branch.\nAdd `--branch <label>` to stage the release and promote it, or use `xanots workspace branch set-live <label>` to promote a branch that already exists.",
99
+ { helpFor: { command: "release" } }
100
+ );
101
+ }
60
102
  if (args.replace) {
103
+ if (args.backupBranch !== void 0) {
104
+ throw new UsageError(
105
+ "`--replace` cannot be combined with `--backup-branch`: a replace deletes the workspace's non-live branches, so it would destroy the snapshot along with everything else and leave you with a rollback target that does not exist.\nDrop `--replace` to merge (which a backup CAN protect), or take a workspace export first with `xanots workspace export`.",
106
+ { helpFor: { command: "release" } }
107
+ );
108
+ }
61
109
  const conflicting = [
62
110
  args.prune ? "--prune" : "",
63
111
  args.resetData ? "--reset-data" : "",
@@ -75,9 +123,14 @@ function resolveRequest(args) {
75
123
  mode: "merge",
76
124
  prune: args.prune,
77
125
  records: args.seed,
78
- truncate: args.resetData
126
+ truncate: args.resetData,
127
+ ...args.branch !== void 0 ? { branch: args.branch } : {}
79
128
  };
80
129
  }
130
+ function derivedBackupLabel(now) {
131
+ const stamp = now.toISOString().replace(/[-:]/g, "").replace(/\.\d+Z$/, "Z");
132
+ return `backup-${stamp}`;
133
+ }
81
134
  function isDestructive(req) {
82
135
  return req.mode === "replace" || req.prune === true || req.truncate === true || req.records === true;
83
136
  }
@@ -126,12 +179,24 @@ function payloadKeyFor(type) {
126
179
  return REFERENCEABLE_KIND_PAYLOAD_KEYS[type] ?? type;
127
180
  }
128
181
  function splitPruneDeletes(plan, tracked) {
182
+ const ownedQueryNames = /* @__PURE__ */ new Set();
183
+ for (const key of tracked) {
184
+ if (!key.startsWith("query:")) continue;
185
+ const lockName = key.slice("query:".length);
186
+ const lastSep = lockName.lastIndexOf("|");
187
+ ownedQueryNames.add(lastSep === -1 ? lockName : lockName.slice(lastSep + 1));
188
+ }
189
+ const isOwned = (op) => {
190
+ const payloadKey = payloadKeyFor(op.type);
191
+ if (payloadKey === "query") return ownedQueryNames.has(op.name);
192
+ return tracked.has(lockKey(payloadKey, op.name));
193
+ };
129
194
  const collateral = [];
130
195
  const owned = [];
131
196
  for (const op of plan.operations) {
132
197
  if (op.action !== "delete") continue;
133
198
  if (IDENTITY_EXEMPT_TYPES.has(op.type)) continue;
134
- (tracked.has(lockKey(payloadKeyFor(op.type), op.name)) ? owned : collateral).push(op);
199
+ (isOwned(op) ? owned : collateral).push(op);
135
200
  }
136
201
  return { collateral, owned };
137
202
  }
@@ -153,8 +218,8 @@ async function reconcileLockAfterReplace(args, auth, workspaceId) {
153
218
  return;
154
219
  }
155
220
  try {
156
- const { adoptFromBundle } = await import("./lock-KXOJIGCG.js");
157
- const { readLockFile: readLockFile2, writeLockFile } = await import("./io-7VIA5SON.js");
221
+ const { adoptFromBundle } = await import("./lock-GFXD6G2E.js");
222
+ const { readLockFile: readLockFile2, writeLockFile } = await import("./io-M7XZEMK7.js");
158
223
  const { lock, added, changed } = adoptFromBundle(readLockFile2(lockPath), live, lockPath);
159
224
  writeLockFile(lockPath, lock);
160
225
  const touched = added.length + changed.length;
@@ -192,7 +257,7 @@ function targetIsEmpty(live) {
192
257
  async function convergedWithLive(live, req, outgoingBundle) {
193
258
  if (live === void 0 || req.mode !== "merge") return false;
194
259
  if (req.records === true || req.truncate === true) return false;
195
- const { compareToLive } = await import("./live-diff-FP4SFNT4.js");
260
+ const { compareToLive } = await import("./live-diff-QK4KC2FJ.js");
196
261
  let result;
197
262
  try {
198
263
  result = compareToLive(JSON.parse(outgoingBundle), live);
@@ -209,7 +274,7 @@ async function warnAboutLiveLosses(live, req, outgoingBundle) {
209
274
  warn("Could not read the target workspace, so this plan does not account for dropped columns or env that will not update.");
210
275
  return { droppedColumns: 0, unchangedEnv: [] };
211
276
  }
212
- const { diffAgainstLive } = await import("./live-diff-FP4SFNT4.js");
277
+ const { diffAgainstLive } = await import("./live-diff-QK4KC2FJ.js");
213
278
  let diff;
214
279
  try {
215
280
  diff = diffAgainstLive(JSON.parse(outgoingBundle), live, { mode: req.mode });
@@ -327,6 +392,46 @@ function renderPlan(plan, req, workspaceId, targetIsEmpty2, converged = false) {
327
392
  warnOnZeroCorrespondence(plan, req, targetIsEmpty2);
328
393
  blank();
329
394
  }
395
+ function assertSharedSchemaAcknowledged(args, live, bundle, branch) {
396
+ const changes = sharedSchemaChanges(JSON.parse(bundle), live, { prune: args.prune });
397
+ if (changes === void 0) {
398
+ if (args.allowSharedSchemaChanges) return void 0;
399
+ throw new UsageError(
400
+ `Refusing to release to branch "${branch}": the live workspace could not be read, so whether this release changes shared schema is unknown.
401
+ Tables and microservices are shared by every branch, so a schema change reaches production even on a branch release. A failed read is not evidence that there is none.
402
+ Retry when the instance is reachable, or pass \`--allow-shared-schema-changes\` to proceed without the check.`,
403
+ { helpFor: { command: "release" } }
404
+ );
405
+ }
406
+ if (changes.length === 0 || args.allowSharedSchemaChanges) return changes;
407
+ const lines = changes.map((c) => {
408
+ const detailText = c.details === void 0 || c.details.length === 0 ? "" : ` \u2014 ${c.details.join(", ")}`;
409
+ return ` ${c.action} ${c.kind === "dbo" ? "table" : "microservice"} "${c.name}"${detailText}`;
410
+ });
411
+ throw new UsageError(
412
+ `\`--branch ${branch}\` cannot stage ${changes.length} change${changes.length === 1 ? "" : "s"} to this workspace's SHARED schema:
413
+ ${lines.join("\n")}
414
+
415
+ Tables and microservices carry no branch in Xano \u2014 one set is shared by every branch. These would be applied to the LIVE workspace by the same import that stages your logic on "${branch}", and the plan would report them as routine.
416
+ Release without \`--branch\` if applying them is what you want, take them out of this release, or pass \`--allow-shared-schema-changes\` to stage the logic and apply the schema knowing both happen.`,
417
+ { helpFor: { command: "release" } }
418
+ );
419
+ }
420
+ function reportBranchCaveats(branch, setLive, changed) {
421
+ blank();
422
+ if (changed === void 0) {
423
+ warn("The live workspace could not be read, so whether this changed shared schema is UNKNOWN.");
424
+ detail("Tables and microservices are shared by every branch \u2014 a change there reached production.");
425
+ } else if (changed > 0) {
426
+ warn(`${changed} shared-schema change${changed === 1 ? "" : "s"} were applied to the LIVE workspace.`);
427
+ detail("Tables and microservices are shared by every branch \u2014 only your logic is staged.");
428
+ } else {
429
+ detail(`Only logic was staged on "${branch}" \u2014 this release changed no shared schema.`);
430
+ }
431
+ if (!setLive) {
432
+ detail(`Nothing serves "${branch}" yet. Promote it with \`xanots workspace branch set-live ${branch}\`.`);
433
+ }
434
+ }
330
435
  async function runReleaseCommand(args) {
331
436
  assertWritableDest(args.dest, "release");
332
437
  const req = resolveRequest(args);
@@ -338,7 +443,7 @@ async function runReleaseCommand(args) {
338
443
  { withSeed: req.records === true }
339
444
  );
340
445
  if (args.static !== void 0) {
341
- const { assertNoSeedLeaks } = await import("./deploy-command-XOH76USO.js");
446
+ const { assertNoSeedLeaks } = await import("./deploy-command-HM57BINV.js");
342
447
  await assertNoSeedLeaks(args.static, nonPublicSeedValues, args.allowSeedInStatic);
343
448
  }
344
449
  const workspaceId = auth.workspaceId;
@@ -347,21 +452,27 @@ async function runReleaseCommand(args) {
347
452
  warn("`--seed` was passed, but no table in this project declares seed rows \u2014 no rows will be written.");
348
453
  }
349
454
  const target = { baseUrl: auth.instance, archive, workspaceId, ...req };
455
+ const branches = req.branch !== void 0 || args.backupBranch !== void 0 ? await listBranches(auth, { baseUrl: auth.instance, workspaceId }) : [];
456
+ if (req.branch !== void 0) assertBranchAbsent(branches, req.branch);
350
457
  step(
351
- `Releasing ${source} \u2192 instance workspace #${workspaceId}` + (req.mode === "replace" ? " (full replace)" : " (merge)")
458
+ `Releasing ${source} \u2192 instance workspace #${workspaceId}` + (req.branch !== void 0 ? ` branch "${req.branch}"` : "") + (req.mode === "replace" ? " (full replace)" : " (merge)")
352
459
  );
353
460
  const plan = await planWorkspaceImport(auth, target);
461
+ if (req.branch !== void 0) assertBranchTargetHonored(plan, req.branch, auth.instance);
354
462
  const live = await readLiveWorkspace(auth, workspaceId);
355
463
  const converged = await convergedWithLive(live, req, bundle);
356
464
  renderPlan(plan, req, workspaceId, targetIsEmpty(live), converged);
357
465
  const losses = await warnAboutLiveLosses(live, req, bundle);
466
+ const sharedChanges = req.branch === void 0 ? [] : assertSharedSchemaAcknowledged(args, live, bundle, req.branch);
358
467
  if (req.prune === true) assertPruneStaysInScope(args, plan);
359
468
  if (args.dryRun) {
360
469
  info("Dry run \u2014 nothing was sent.");
361
470
  if (isMachineOutput(args)) writeJson({ released: false, dryRun: true, workspaceId, plan });
362
471
  return;
363
472
  }
364
- const upToDate = plan.operations.length === 0 || converged;
473
+ let backupLabel;
474
+ let promoted = args.setLive;
475
+ const upToDate = req.branch === void 0 && (plan.operations.length === 0 || converged);
365
476
  if (upToDate) {
366
477
  success(`Workspace #${workspaceId} is already up to date \u2014 no import sent.`);
367
478
  } else {
@@ -375,8 +486,72 @@ async function runReleaseCommand(args) {
375
486
  return;
376
487
  }
377
488
  }
378
- await importWorkspaceArchive(auth, target);
379
- success(`Released to instance workspace #${workspaceId}`);
489
+ if (args.backupBranch !== void 0) {
490
+ const sourceLabel = liveBranchLabel(branches);
491
+ const label = typeof args.backupBranch === "string" ? args.backupBranch : derivedBackupLabel(/* @__PURE__ */ new Date());
492
+ assertUsableBranchLabel(label, "--backup-branch");
493
+ assertBranchAbsent(branches, label);
494
+ step(`Snapshotting the live branch as "${label}" before importing\u2026`);
495
+ try {
496
+ await createBranch(auth, {
497
+ baseUrl: auth.instance,
498
+ workspaceId,
499
+ label,
500
+ ...sourceLabel !== void 0 ? { sourceBranch: sourceLabel } : {},
501
+ description: `Pre-release snapshot taken by xanots from ${source}`
502
+ });
503
+ } catch (err) {
504
+ throw new Error(
505
+ `The pre-release backup branch could not be created, so the release was not sent.
506
+ Nothing has changed in workspace #${workspaceId}.
507
+ Retry, or drop \`--backup-branch\` to release without one.`,
508
+ { cause: err }
509
+ );
510
+ }
511
+ backupLabel = label;
512
+ success(`Live branch snapshotted as "${label}".`);
513
+ }
514
+ try {
515
+ await importWorkspaceArchive(auth, target);
516
+ } catch (err) {
517
+ if (backupLabel !== void 0) {
518
+ blank();
519
+ warn(`The import failed. Your pre-release snapshot is on branch "${backupLabel}".`);
520
+ detail(`Restore it with \`xanots workspace branch set-live ${backupLabel}\`.`);
521
+ }
522
+ throw err;
523
+ }
524
+ success(
525
+ req.branch !== void 0 ? `Released to workspace #${workspaceId} on branch "${req.branch}"` : `Released to instance workspace #${workspaceId}`
526
+ );
527
+ if (req.branch !== void 0) {
528
+ if (args.setLive) {
529
+ const previous = liveBranchLabel(branches);
530
+ blank();
531
+ warn(`Promoting "${req.branch}" is a production cutover for workspace #${workspaceId}.`);
532
+ if (previous !== void 0) {
533
+ detail(`The runtime stops serving "${previous}" and starts serving "${req.branch}".`);
534
+ }
535
+ if (!args.yes && !args.force && !await confirm(`Make "${req.branch}" the live branch?`, {
536
+ flag: "--yes",
537
+ helpFor: { command: "release" }
538
+ })) {
539
+ info(`Cancelled the promote \u2014 the release is staged on "${req.branch}" and nothing serves it yet.`);
540
+ detail(`Promote it later with \`xanots workspace branch set-live ${req.branch}\`.`);
541
+ promoted = false;
542
+ } else {
543
+ await setLiveBranch(auth, { baseUrl: auth.instance, workspaceId, label: req.branch });
544
+ success(`Branch "${req.branch}" is now live.`);
545
+ if (previous !== void 0) {
546
+ detail(`Roll back with \`xanots workspace branch set-live ${previous}\`.`);
547
+ }
548
+ }
549
+ }
550
+ reportBranchCaveats(req.branch, promoted, sharedChanges?.length);
551
+ } else if (backupLabel !== void 0) {
552
+ blank();
553
+ detail(`Roll back this release with \`xanots workspace branch set-live ${backupLabel}\`.`);
554
+ }
380
555
  if (req.mode === "replace") await reconcileLockAfterReplace(args, auth, workspaceId);
381
556
  }
382
557
  link(auth.instance);
@@ -402,10 +577,15 @@ async function runReleaseCommand(args) {
402
577
  // beside `upToDate: true` would contradict it.
403
578
  operations: upToDate ? 0 : plan.operations.length,
404
579
  droppedColumns: losses.droppedColumns,
405
- unchangedEnv: losses.unchangedEnv
580
+ unchangedEnv: losses.unchangedEnv,
581
+ // Present only when they mean something: a plain release carries no branch
582
+ // fields at all, so a wrapper reading `branch` cannot mistake "released to
583
+ // live" for "released to a branch named undefined".
584
+ ...req.branch !== void 0 ? { branch: req.branch, setLive: promoted, sharedSchemaChanges: sharedChanges?.length } : {},
585
+ ...backupLabel !== void 0 ? { backupBranch: backupLabel } : {}
406
586
  };
407
587
  if (args.static !== void 0) {
408
- const { buildStaticEnv, deployStaticTo } = await import("./deploy-command-XOH76USO.js");
588
+ const { buildStaticEnv, deployStaticTo } = await import("./deploy-command-HM57BINV.js");
409
589
  const env = buildStaticEnv(auth.instance, args.staticEnv);
410
590
  const explicit = Object.keys(args.staticEnv).length > 0;
411
591
  summary.static = await deployStaticTo(
@@ -424,4 +604,4 @@ async function runReleaseCommand(args) {
424
604
  export {
425
605
  runReleaseCommand
426
606
  };
427
- //# sourceMappingURL=release-command-FKQ6E3TD.js.map
607
+ //# sourceMappingURL=release-command-3IET7YII.js.map
@@ -2,10 +2,10 @@ import {
2
2
  fetchSandboxDetails,
3
3
  runSandboxDetailsCommand,
4
4
  sandboxBaseUrl
5
- } from "./chunk-OR43PDCW.js";
5
+ } from "./chunk-3EYUR3TX.js";
6
6
  import "./chunk-NDZFBZHC.js";
7
- import "./chunk-SG4UBJ47.js";
8
- import "./chunk-LLWK6H77.js";
7
+ import "./chunk-3QW5NFZJ.js";
8
+ import "./chunk-BKDJN76G.js";
9
9
  import "./chunk-NUQCEOKA.js";
10
10
  import "./chunk-3IGNIP6R.js";
11
11
  import "./chunk-GNPVYOPB.js";
@@ -15,4 +15,4 @@ export {
15
15
  runSandboxDetailsCommand,
16
16
  sandboxBaseUrl
17
17
  };
18
- //# sourceMappingURL=sandbox-details-command-DMY2KGA2.js.map
18
+ //# sourceMappingURL=sandbox-details-command-EDO56IY3.js.map
@@ -3,11 +3,11 @@ import {
3
3
  fetchSandboxMultidoc,
4
4
  resolveOutputTarget,
5
5
  runSandboxExportCommand
6
- } from "./chunk-AAFBSOSD.js";
7
- import "./chunk-OR43PDCW.js";
6
+ } from "./chunk-JQJPFUZI.js";
7
+ import "./chunk-3EYUR3TX.js";
8
8
  import "./chunk-NDZFBZHC.js";
9
- import "./chunk-SG4UBJ47.js";
10
- import "./chunk-LLWK6H77.js";
9
+ import "./chunk-3QW5NFZJ.js";
10
+ import "./chunk-BKDJN76G.js";
11
11
  import "./chunk-QTNO2WD6.js";
12
12
  import "./chunk-ZUTSMMAG.js";
13
13
  import "./chunk-X4DVXBFY.js";
@@ -21,4 +21,4 @@ export {
21
21
  resolveOutputTarget,
22
22
  runSandboxExportCommand
23
23
  };
24
- //# sourceMappingURL=sandbox-export-command-R6QMEK3D.js.map
24
+ //# sourceMappingURL=sandbox-export-command-MO6DEZ7Z.js.map
@@ -1319,8 +1319,7 @@ declare function iconLibraryOf(id: IconLibraryId | undefined): IconLibrary;
1319
1319
  * light/dark token map under a schema, so it lands as a {@link Theme} too.
1320
1320
  *
1321
1321
  * Browser-safe: pure string building and arithmetic, no node:* imports. The
1322
- * flag parsing that reads a URL and the prompt that reads a TTY live in
1323
- * `theme-resolve.ts`, mirroring the `frontend-presets` / `frontend-resolve`
1322
+ * flag parsing that reads a URL lives in `theme-resolve.ts`, mirroring the `frontend-presets` / `frontend-resolve`
1324
1323
  * split.
1325
1324
  */
1326
1325
 
@@ -1357,7 +1356,7 @@ declare const DEFAULT_DARK_MODE: DarkMode;
1357
1356
  interface Theme {
1358
1357
  /** Stable id — `neutral`, `zinc-blue`, or an imported item's registry name. */
1359
1358
  readonly id: string;
1360
- /** Human label for prose and the interactive prompt, e.g. `Zinc Blue`. */
1359
+ /** Human label for prose and any theme picker, e.g. `Zinc Blue`. */
1361
1360
  readonly label: string;
1362
1361
  /**
1363
1362
  * The base color this theme was built from, for `components.json`'s
@@ -1493,15 +1492,13 @@ declare function isAccent(id: string): id is AccentId;
1493
1492
  /** Validate a `--dark` value, mirroring the other scaffold flags' hard errors. */
1494
1493
  declare function resolveDarkModeFlag(raw: string): DarkMode;
1495
1494
  /**
1496
- * The interactive menu: a short, opinionated list rather than all 126
1497
- * combinations.
1495
+ * The shortlist: a short, opinionated set for anyone offering a theme picker
1496
+ * over this module, rather than all 126 combinations.
1498
1497
  *
1499
- * A prompt is for someone who wants to not think about this. The full space
1500
- * stays reachablethe prompt accepts any `<base>-<accent>` or URL typed in
1501
- * place of a number, and `--theme` accepts the same so this list is a
1502
- * shortcut, not the supported set. One entry per base color, each paired with
1503
- * an accent that suits its temperature, keeps the menu one screen tall while
1504
- * still showing what every base looks like.
1498
+ * The full space stays reachable `--theme` takes any `<base>-<accent>` or
1499
+ * registry URLso this list is a shortcut, not the supported set. One entry
1500
+ * per base color, each paired with an accent that suits its temperature, shows
1501
+ * what every base looks like in one screen.
1505
1502
  */
1506
1503
  declare const CURATED_THEMES: readonly string[];
1507
1504
  /** {@link CURATED_THEMES}, resolved. Throws at import time if an id ever rots. */
@@ -1574,14 +1571,14 @@ declare function colorTokens(vars: Readonly<Record<string, string>>): string[];
1574
1571
  * is a second source of truth for one boolean.
1575
1572
  */
1576
1573
  declare function themeGuidanceSection(choice: ThemeChoice): string;
1577
- /** An sRGB triple, 0–255, for painting a swatch in the interactive prompt. */
1574
+ /** An sRGB triple, 0–255, for painting a theme swatch. */
1578
1575
  interface Rgb {
1579
1576
  readonly r: number;
1580
1577
  readonly g: number;
1581
1578
  readonly b: number;
1582
1579
  }
1583
1580
  /**
1584
- * The colors that identify a theme at a glance in the prompt: the primary, the
1581
+ * The colors that identify a theme at a glance in a picker: the primary, the
1585
1582
  * page background, and a muted midtone.
1586
1583
  *
1587
1584
  * Three is the smallest set that distinguishes the menu's entries — the accent
package/dist/scaffold.js CHANGED
@@ -4,10 +4,10 @@ import {
4
4
  allFrontendPresets,
5
5
  findFrontendPreset,
6
6
  resolveFrameworkFlag
7
- } from "./chunk-WGDAOOXG.js";
7
+ } from "./chunk-MU3O43L2.js";
8
8
  import {
9
9
  renderIndexCss
10
- } from "./chunk-QUUB7HYK.js";
10
+ } from "./chunk-P5C2YKAM.js";
11
11
  import {
12
12
  ACCENTS,
13
13
  ACCENT_TOKENS,
@@ -50,7 +50,7 @@ import {
50
50
  themeGuidanceSection,
51
51
  themeSwatch,
52
52
  withRadius
53
- } from "./chunk-6DHJVLYP.js";
53
+ } from "./chunk-Q77KNEUL.js";
54
54
  export {
55
55
  ACCENTS,
56
56
  ACCENT_TOKENS,
@@ -5979,7 +5979,7 @@ interface QueryDef<I extends Record<string, InputDescriptor> = Record<string, In
5979
5979
  * Captured as a literal so `getPath({ params })` types its keys from it.
5980
5980
  */
5981
5981
  name: N;
5982
- /** Explicit Xano `guid` (this object's identity). Defaults to a guid derived from `name`; set it to keep identity across a rename or to match an existing object. */
5982
+ /** Explicit Xano `guid` (this object's identity). Defaults to a guid derived from `(apiGroup, verb, name)` a query's engine uniqueness — so a `GET`/`POST` pair on one path, and one path across two groups, are distinct objects. Set it to keep identity across a rename or to match an existing object. */
5983
5983
  guid?: string;
5984
5984
  /**
5985
5985
  * The HTTP method, UPPERCASE — one of `GET`, `POST`, `PUT`, `PATCH`,
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  resolveMetaTarget
3
- } from "./chunk-APOR6TCV.js";
4
- import "./chunk-WJYB7DSI.js";
5
- import "./chunk-OR43PDCW.js";
3
+ } from "./chunk-H2DEDWQF.js";
4
+ import "./chunk-MDXR5E5Q.js";
5
+ import "./chunk-3EYUR3TX.js";
6
6
  import "./chunk-NDZFBZHC.js";
7
7
  import {
8
8
  getAccessToken
9
- } from "./chunk-SG4UBJ47.js";
10
- import "./chunk-LLWK6H77.js";
9
+ } from "./chunk-3QW5NFZJ.js";
10
+ import "./chunk-BKDJN76G.js";
11
11
  import {
12
12
  isMachineOutput,
13
13
  writeJson
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-3IGNIP6R.js";
20
20
  import {
21
21
  unknownSubcommand
22
- } from "./chunk-IVP6TS26.js";
22
+ } from "./chunk-JQLR64UC.js";
23
23
  import "./chunk-GNPVYOPB.js";
24
24
  import {
25
25
  blank,
@@ -29,7 +29,7 @@ import {
29
29
  success,
30
30
  warn
31
31
  } from "./chunk-EZG76F7R.js";
32
- import "./chunk-F5T45NAM.js";
32
+ import "./chunk-OKNSR7MT.js";
33
33
 
34
34
  // src/deploy/tests.ts
35
35
  var TIMEOUT_MS = 12e4;
@@ -380,4 +380,4 @@ export {
380
380
  runSuite,
381
381
  runTestCommand
382
382
  };
383
- //# sourceMappingURL=test-command-56IAEYHX.js.map
383
+ //# sourceMappingURL=test-command-S7SMRWMP.js.map