@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.
- package/CHANGELOG.md +29 -0
- package/README.md +3 -3
- package/dist/.build-fingerprint +1 -1
- package/dist/{agent-file-refresh-IJ7GN2FJ.js → agent-file-refresh-4W37DGXS.js} +4 -4
- package/dist/bin.js +8 -8
- package/dist/branch-commands-PBQ36L4A.js +134 -0
- package/dist/{chunk-CYJ7R3AD.js → chunk-2V3JUXTF.js} +24 -11
- package/dist/{chunk-OR43PDCW.js → chunk-3EYUR3TX.js} +2 -2
- package/dist/{chunk-SG4UBJ47.js → chunk-3QW5NFZJ.js} +26 -5
- package/dist/{chunk-7SISR3CS.js → chunk-4PE4ZAB7.js} +3 -3
- package/dist/{chunk-PGBK64U5.js → chunk-4PTSTDIG.js} +2 -2
- package/dist/{live-diff-FP4SFNT4.js → chunk-5HCDZ2XN.js} +67 -6
- package/dist/{chunk-OARSPAIE.js → chunk-5PDOAR77.js} +58 -38
- package/dist/{chunk-5WGEURVI.js → chunk-6AAT2AYQ.js} +21 -1
- package/dist/{chunk-QA5ICJ4M.js → chunk-7BUTRVKA.js} +3 -3
- package/dist/{chunk-YUBJLB6G.js → chunk-7JDT4PBU.js} +75 -8
- package/dist/{chunk-LLWK6H77.js → chunk-BKDJN76G.js} +31 -1
- package/dist/{chunk-MS3BRZAZ.js → chunk-CL2H2WYE.js} +50 -27
- package/dist/{chunk-KXCPZUUM.js → chunk-DBHE35JM.js} +8 -67
- package/dist/chunk-EQW3YT5U.js +159 -0
- package/dist/{chunk-BPEEGJJA.js → chunk-FAWNUE2U.js} +39 -8
- package/dist/{chunk-ZGA5MUNC.js → chunk-FDKR4YMN.js} +2 -2
- package/dist/{chunk-APOR6TCV.js → chunk-H2DEDWQF.js} +4 -4
- package/dist/{chunk-PXXLBXOP.js → chunk-JAVB27HL.js} +2 -2
- package/dist/{chunk-AAFBSOSD.js → chunk-JQJPFUZI.js} +3 -3
- package/dist/{chunk-IVP6TS26.js → chunk-JQLR64UC.js} +6 -5
- package/dist/{chunk-FN4OQT2J.js → chunk-JUHKEAHJ.js} +4 -4
- package/dist/{chunk-WJYB7DSI.js → chunk-MDXR5E5Q.js} +2 -2
- package/dist/{chunk-WGDAOOXG.js → chunk-MU3O43L2.js} +3 -3
- package/dist/{chunk-YUPQOLFX.js → chunk-NJGNUVXR.js} +15 -4
- package/dist/{chunk-F5T45NAM.js → chunk-OKNSR7MT.js} +45 -2
- package/dist/{chunk-MFIHIS6B.js → chunk-OYMR5AMJ.js} +2 -2
- package/dist/{chunk-QUUB7HYK.js → chunk-P5C2YKAM.js} +2 -2
- package/dist/{chunk-6DHJVLYP.js → chunk-Q77KNEUL.js} +1 -1
- package/dist/{chunk-D6OGU2AI.js → chunk-QIWBCS7N.js} +2 -2
- package/dist/cli.d.ts +28 -2
- package/dist/cli.js +7 -7
- package/dist/{codegen-command-BLOS3GR3.js → codegen-command-DYH4H4TD.js} +18 -18
- package/dist/{completion-GHP5RRLQ.js → completion-A6BZ3XGU.js} +8 -7
- package/dist/{deploy-command-XOH76USO.js → deploy-command-HM57BINV.js} +15 -15
- package/dist/{env-target-POGJMD6Q.js → env-target-WA3BH5YU.js} +6 -6
- package/dist/{ephemeral-command-46SL27GJ.js → ephemeral-command-SD2KLX4P.js} +10 -10
- package/dist/index.d.ts +69 -26
- package/dist/index.js +6 -6
- package/dist/init-command-VIPWAQYS.js +30 -0
- package/dist/internal.d.ts +2 -2
- package/dist/internal.js +120 -62
- package/dist/{io-7VIA5SON.js → io-M7XZEMK7.js} +3 -3
- package/dist/live-diff-QK4KC2FJ.js +12 -0
- package/dist/{lock-KXOJIGCG.js → lock-GFXD6G2E.js} +6 -2
- package/dist/{lock-commands-6UONZW26.js → lock-commands-7VJKAXV6.js} +8 -8
- package/dist/{login-command-SG7IWTHW.js → login-command-DFCURZLC.js} +6 -6
- package/dist/{logout-command-J2AG5NKC.js → logout-command-WXVZQCAV.js} +2 -2
- package/dist/{marketplace-command-NKTQ3VPS.js → marketplace-command-BCOAAN2I.js} +3 -3
- package/dist/{meta-client-OW5WKWW7.js → meta-client-57ZWVHST.js} +2 -2
- package/dist/node.d.ts +2 -2
- package/dist/node.js +10 -10
- package/dist/{profile-command-ZPC2DPFV.js → profile-command-QJAAUZIV.js} +3 -3
- package/dist/{release-command-FKQ6E3TD.js → release-command-3IET7YII.js} +206 -26
- package/dist/{sandbox-details-command-DMY2KGA2.js → sandbox-details-command-EDO56IY3.js} +4 -4
- package/dist/{sandbox-export-command-R6QMEK3D.js → sandbox-export-command-MO6DEZ7Z.js} +5 -5
- package/dist/scaffold.d.ts +10 -13
- package/dist/scaffold.js +3 -3
- package/dist/{store-BJONDJoZ.d.ts → store-DfuWu1tE.d.ts} +1 -1
- package/dist/{test-command-56IAEYHX.js → test-command-S7SMRWMP.js} +8 -8
- package/dist/{upgrade-command-M2DZ3ZPD.js → upgrade-command-TZYSGXP7.js} +13 -13
- package/dist/{validate-command-CIBQJND7.js → validate-command-MMXEVHH3.js} +10 -10
- package/dist/{workspace-command-HZS43PHJ.js → workspace-command-X6L7HTXO.js} +24 -20
- package/guides/environment.md +6 -3
- package/guides/scaffold.md +3 -2
- package/llms/fields.md +8 -0
- package/llms/kinds-core.md +2 -1
- package/llms/lambda.md +1 -1
- package/llms/legacy.md +1 -1
- package/llms/lock.md +32 -0
- package/llms/object-kinds.md +2 -2
- package/llms/statements-calls.md +10 -3
- package/llms/statements-data.md +2 -1
- package/llms-full.txt +108 -58
- package/llms.txt +49 -49
- package/manifest.json +2 -2
- package/package.json +1 -1
- 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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
112
|
-
import "./chunk-
|
|
111
|
+
} from "./chunk-CL2H2WYE.js";
|
|
112
|
+
import "./chunk-JQLR64UC.js";
|
|
113
113
|
import {
|
|
114
114
|
readLockFile,
|
|
115
115
|
writeLockFile
|
|
116
|
-
} from "./chunk-
|
|
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-
|
|
123
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
5
|
+
} from "./chunk-6AAT2AYQ.js";
|
|
5
6
|
import {
|
|
6
7
|
assertBundleInput,
|
|
7
8
|
loadBundleText
|
|
8
|
-
} from "./chunk-
|
|
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-
|
|
24
|
+
} from "./chunk-4PTSTDIG.js";
|
|
12
25
|
import {
|
|
13
26
|
getAccessToken
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
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-
|
|
40
|
+
} from "./chunk-CL2H2WYE.js";
|
|
28
41
|
import {
|
|
29
42
|
UsageError,
|
|
30
43
|
assertWritableDest
|
|
31
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-JQLR64UC.js";
|
|
32
45
|
import {
|
|
33
46
|
readLockFile
|
|
34
|
-
} from "./chunk-
|
|
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-
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-
|
|
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-
|
|
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
|
-
(
|
|
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-
|
|
157
|
-
const { readLockFile: readLockFile2, writeLockFile } = await import("./io-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
379
|
-
|
|
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-
|
|
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-
|
|
607
|
+
//# sourceMappingURL=release-command-3IET7YII.js.map
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
fetchSandboxDetails,
|
|
3
3
|
runSandboxDetailsCommand,
|
|
4
4
|
sandboxBaseUrl
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-3EYUR3TX.js";
|
|
6
6
|
import "./chunk-NDZFBZHC.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-JQJPFUZI.js";
|
|
7
|
+
import "./chunk-3EYUR3TX.js";
|
|
8
8
|
import "./chunk-NDZFBZHC.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
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-
|
|
24
|
+
//# sourceMappingURL=sandbox-export-command-MO6DEZ7Z.js.map
|
package/dist/scaffold.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
-
*
|
|
1500
|
-
*
|
|
1501
|
-
*
|
|
1502
|
-
*
|
|
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 URL — so 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
|
|
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
|
|
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-
|
|
7
|
+
} from "./chunk-MU3O43L2.js";
|
|
8
8
|
import {
|
|
9
9
|
renderIndexCss
|
|
10
|
-
} from "./chunk-
|
|
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-
|
|
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
|
|
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-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
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-
|
|
10
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
383
|
+
//# sourceMappingURL=test-command-S7SMRWMP.js.map
|