@caatinga/core 3.3.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -38,6 +38,7 @@ __export(index_exports, {
38
38
  CaatingaConfigSchema: () => CaatingaConfigSchema,
39
39
  CaatingaError: () => CaatingaError,
40
40
  CaatingaErrorCode: () => CaatingaErrorCode,
41
+ DEFAULT_CLI_SOURCE: () => DEFAULT_CLI_SOURCE,
41
42
  READ_CALL_FAILURE_REGEX: () => READ_CALL_FAILURE_REGEX,
42
43
  STELLAR_CLI_LAST_TESTED_VERSION: () => STELLAR_CLI_LAST_TESTED_VERSION,
43
44
  STELLAR_CLI_MIN_VERSION: () => STELLAR_CLI_MIN_VERSION,
@@ -59,6 +60,7 @@ __export(index_exports, {
59
60
  defineConfig: () => defineConfig,
60
61
  deployContract: () => deployContract,
61
62
  deployContractGraph: () => deployContractGraph,
63
+ describeCliSource: () => describeCliSource,
62
64
  estimateDeployCost: () => estimateDeployCost,
63
65
  evaluateBindingFreshness: () => evaluateBindingFreshness,
64
66
  evaluateBindingsFreshness: () => evaluateBindingsFreshness,
@@ -1282,6 +1284,36 @@ function validateSourceShape(source) {
1282
1284
  return void 0;
1283
1285
  }
1284
1286
 
1287
+ // src/contracts/source-account.ts
1288
+ function assertSafeSourceAccount(source) {
1289
+ if (!source) {
1290
+ throw new CaatingaError(
1291
+ "A source account or Stellar CLI identity is required.",
1292
+ CaatingaErrorCode.SOURCE_ACCOUNT_REQUIRED,
1293
+ "Pass a Stellar CLI identity alias, for example: --source alice"
1294
+ );
1295
+ }
1296
+ const unsafeSource = validateSourceShape(source);
1297
+ if (unsafeSource) {
1298
+ throw unsafeSource;
1299
+ }
1300
+ return source;
1301
+ }
1302
+ var DEFAULT_CLI_SOURCE = "alice";
1303
+ function describeCliSource(explicit) {
1304
+ if (explicit) {
1305
+ return { source: assertSafeSourceAccount(explicit), origin: "explicit" };
1306
+ }
1307
+ const fromEnv = process.env.CAATINGA_SOURCE;
1308
+ if (fromEnv) {
1309
+ return { source: assertSafeSourceAccount(fromEnv), origin: "env" };
1310
+ }
1311
+ return { source: assertSafeSourceAccount(DEFAULT_CLI_SOURCE), origin: "default" };
1312
+ }
1313
+ function resolveCliSource(explicit) {
1314
+ return describeCliSource(explicit).source;
1315
+ }
1316
+
1285
1317
  // src/contracts/resolve-contract.ts
1286
1318
  var import_node_path8 = __toESM(require("path"), 1);
1287
1319
  function resolveContract(config, contractName, cwd = process.cwd()) {
@@ -1594,25 +1626,6 @@ function resolveDeployArgs(input) {
1594
1626
  return resolved;
1595
1627
  }
1596
1628
 
1597
- // src/contracts/source-account.ts
1598
- function assertSafeSourceAccount(source) {
1599
- if (!source) {
1600
- throw new CaatingaError(
1601
- "A source account or Stellar CLI identity is required.",
1602
- CaatingaErrorCode.SOURCE_ACCOUNT_REQUIRED,
1603
- "Pass a Stellar CLI identity alias, for example: --source alice"
1604
- );
1605
- }
1606
- const unsafeSource = validateSourceShape(source);
1607
- if (unsafeSource) {
1608
- throw unsafeSource;
1609
- }
1610
- return source;
1611
- }
1612
- function resolveCliSource(explicit) {
1613
- return assertSafeSourceAccount(explicit ?? process.env.CAATINGA_SOURCE ?? "alice");
1614
- }
1615
-
1616
1629
  // src/contracts/deploy-contract.ts
1617
1630
  var DEFAULT_DEPLOY_RETRY_DELAYS_MS = [2e3, 5e3];
1618
1631
  function sleep(ms) {
@@ -2647,13 +2660,19 @@ async function replaceTemplateVariables(dir, projectName) {
2647
2660
  const entries = await (0, import_promises10.readdir)(dir);
2648
2661
  await Promise.all(
2649
2662
  entries.map(async (entry) => {
2663
+ if (TEMPLATE_COPY_EXCLUDED_DIRS.has(entry)) {
2664
+ return;
2665
+ }
2650
2666
  const entryPath = import_node_path14.default.join(dir, entry);
2651
- const entryStat = await (0, import_promises10.stat)(entryPath);
2667
+ const entryStat = await (0, import_promises10.lstat)(entryPath);
2668
+ if (entryStat.isSymbolicLink()) {
2669
+ return;
2670
+ }
2652
2671
  if (entryStat.isDirectory()) {
2653
2672
  await replaceTemplateVariables(entryPath, projectName);
2654
2673
  return;
2655
2674
  }
2656
- if (!isTextTemplateFile(entryPath)) {
2675
+ if (!entryStat.isFile() || !isTextTemplateFile(entryPath)) {
2657
2676
  return;
2658
2677
  }
2659
2678
  const content = await (0, import_promises10.readFile)(entryPath, "utf8");
@@ -2980,6 +2999,7 @@ function isTransientTestnetSmokeFailure(logText) {
2980
2999
  CaatingaConfigSchema,
2981
3000
  CaatingaError,
2982
3001
  CaatingaErrorCode,
3002
+ DEFAULT_CLI_SOURCE,
2983
3003
  READ_CALL_FAILURE_REGEX,
2984
3004
  STELLAR_CLI_LAST_TESTED_VERSION,
2985
3005
  STELLAR_CLI_MIN_VERSION,
@@ -3001,6 +3021,7 @@ function isTransientTestnetSmokeFailure(logText) {
3001
3021
  defineConfig,
3002
3022
  deployContract,
3003
3023
  deployContractGraph,
3024
+ describeCliSource,
3004
3025
  estimateDeployCost,
3005
3026
  evaluateBindingFreshness,
3006
3027
  evaluateBindingsFreshness,
package/dist/index.d.cts CHANGED
@@ -459,6 +459,21 @@ declare function checkStellarSdkVersion(input?: CheckStellarSdkVersionOptions):
459
459
 
460
460
  declare function validateSourceShape(source: string): CaatingaError | undefined;
461
461
 
462
+ /** Identity used when neither --source nor CAATINGA_SOURCE is provided. */
463
+ declare const DEFAULT_CLI_SOURCE = "alice";
464
+ /** Where a resolved CLI source value came from, for honest disclosure to users. */
465
+ type CliSourceOrigin = "explicit" | "env" | "default";
466
+ type ResolvedCliSource = {
467
+ source: string;
468
+ origin: CliSourceOrigin;
469
+ };
470
+ /**
471
+ * Resolve the CLI source identity and report where the value came from so the
472
+ * CLI can disclose an implicit fallback instead of silently signing/simulating
473
+ * as `alice`.
474
+ */
475
+ declare function describeCliSource(explicit?: string): ResolvedCliSource;
476
+
462
477
  type ResolvedContract = {
463
478
  name: string;
464
479
  config: ContractConfig;
@@ -837,4 +852,4 @@ type TemplateManifest = z.infer<typeof TemplateManifestSchema>;
837
852
 
838
853
  declare function isTransientTestnetSmokeFailure(logText: string): boolean;
839
854
 
840
- export { BINDING_MARKER_FILENAME, type BindingFreshness, type BindingFreshnessStatus, type BindingMarker, BindingMarkerSchema, type BuildContractOptions, CAATINGA_CORE_VERSION, CaatingaArtifacts, type CaatingaConfig, CaatingaConfigSchema, CaatingaError, type CheckStellarCliVersionOptions, type CheckStellarSdkVersionOptions, type CollectProjectStatusOptions, type CompatibilityReport, type CompatibilityStatus, type CompatibilityWarning, type CompatibilityWarningCode, ContractArtifact, type ContractConfig, type ContractInspectResult, type ContractStatusEntry, type CreateInitialArtifactsOptions, type CreateMinimalProjectOptions, type CreateProjectFromTemplateOptions, type CreateZkProjectOptions, type DeployArgValue, type DeployContractGraphResult, type DeployContractOptions, type DeployCostEstimate, type EstimateDeployCostOptions, type EvaluateBindingFreshnessOptions, type EvaluateStellarCliCompatibilityInput, type EvaluateStellarSdkCompatibilityInput, type GenerateBindingsGraphResult, type GenerateBindingsOptions, type InspectContractOptions, type InvokeContractOptions, type InvokeTarget, type LoadConfigOptions, type NetworkConfig, type NetworkStatus, type ProjectStatus, READ_CALL_FAILURE_REGEX, type ReadContractOptions, type ResolvedContract, type ResolvedNetwork, type RunCommandResult, STELLAR_CLI_LAST_TESTED_VERSION, STELLAR_CLI_MIN_VERSION, STELLAR_SDK_LAST_TESTED_VERSION, STELLAR_SDK_MIN_VERSION, type SdkCompatibilityReport, type SdkCompatibilityStatus, type SdkCompatibilityWarning, type SdkCompatibilityWarningCode, type SkippedContract, type TemplateManifest, TemplateManifestSchema, WELL_KNOWN_NETWORKS, buildContract, buildDependencyGraph, buildReadCallHint, checkBinary, checkStellarCliVersion, checkStellarSdkVersion, collectProjectStatus, createInitialArtifacts, createMinimalProject, createProjectFromTemplate, createZkProject, defineConfig, deployContract, deployContractGraph, estimateDeployCost, evaluateBindingFreshness, evaluateBindingsFreshness, evaluateStellarCliCompatibility, evaluateStellarSdkCompatibility, generateBindings, generateBindingsGraph, inspectContract, invokeContract, isCargoBinMissingFromPath, isReadCallFailure, isTransientTestnetSmokeFailure, loadConfig, migrateArtifactsFile, migrateArtifactsToV2, parseContractId, parseInvokeTarget, parseStellarCliVersion, parseStellarSdkVersion, readArtifacts, readBindingMarker, readContract, resolveContract, resolveDefaultContractName, resolveDeployArgs, resolveDeployOrder, resolveNetwork, resolveSubprocessEnv, restoreArtifactFromHistory, rollbackContractArtifact, runCommand, updateArtifact, validateSourceShape, writeArtifacts, writeBindingMarker };
855
+ export { BINDING_MARKER_FILENAME, type BindingFreshness, type BindingFreshnessStatus, type BindingMarker, BindingMarkerSchema, type BuildContractOptions, CAATINGA_CORE_VERSION, CaatingaArtifacts, type CaatingaConfig, CaatingaConfigSchema, CaatingaError, type CheckStellarCliVersionOptions, type CheckStellarSdkVersionOptions, type CliSourceOrigin, type CollectProjectStatusOptions, type CompatibilityReport, type CompatibilityStatus, type CompatibilityWarning, type CompatibilityWarningCode, ContractArtifact, type ContractConfig, type ContractInspectResult, type ContractStatusEntry, type CreateInitialArtifactsOptions, type CreateMinimalProjectOptions, type CreateProjectFromTemplateOptions, type CreateZkProjectOptions, DEFAULT_CLI_SOURCE, type DeployArgValue, type DeployContractGraphResult, type DeployContractOptions, type DeployCostEstimate, type EstimateDeployCostOptions, type EvaluateBindingFreshnessOptions, type EvaluateStellarCliCompatibilityInput, type EvaluateStellarSdkCompatibilityInput, type GenerateBindingsGraphResult, type GenerateBindingsOptions, type InspectContractOptions, type InvokeContractOptions, type InvokeTarget, type LoadConfigOptions, type NetworkConfig, type NetworkStatus, type ProjectStatus, READ_CALL_FAILURE_REGEX, type ReadContractOptions, type ResolvedCliSource, type ResolvedContract, type ResolvedNetwork, type RunCommandResult, STELLAR_CLI_LAST_TESTED_VERSION, STELLAR_CLI_MIN_VERSION, STELLAR_SDK_LAST_TESTED_VERSION, STELLAR_SDK_MIN_VERSION, type SdkCompatibilityReport, type SdkCompatibilityStatus, type SdkCompatibilityWarning, type SdkCompatibilityWarningCode, type SkippedContract, type TemplateManifest, TemplateManifestSchema, WELL_KNOWN_NETWORKS, buildContract, buildDependencyGraph, buildReadCallHint, checkBinary, checkStellarCliVersion, checkStellarSdkVersion, collectProjectStatus, createInitialArtifacts, createMinimalProject, createProjectFromTemplate, createZkProject, defineConfig, deployContract, deployContractGraph, describeCliSource, estimateDeployCost, evaluateBindingFreshness, evaluateBindingsFreshness, evaluateStellarCliCompatibility, evaluateStellarSdkCompatibility, generateBindings, generateBindingsGraph, inspectContract, invokeContract, isCargoBinMissingFromPath, isReadCallFailure, isTransientTestnetSmokeFailure, loadConfig, migrateArtifactsFile, migrateArtifactsToV2, parseContractId, parseInvokeTarget, parseStellarCliVersion, parseStellarSdkVersion, readArtifacts, readBindingMarker, readContract, resolveContract, resolveDefaultContractName, resolveDeployArgs, resolveDeployOrder, resolveNetwork, resolveSubprocessEnv, restoreArtifactFromHistory, rollbackContractArtifact, runCommand, updateArtifact, validateSourceShape, writeArtifacts, writeBindingMarker };
package/dist/index.d.ts CHANGED
@@ -459,6 +459,21 @@ declare function checkStellarSdkVersion(input?: CheckStellarSdkVersionOptions):
459
459
 
460
460
  declare function validateSourceShape(source: string): CaatingaError | undefined;
461
461
 
462
+ /** Identity used when neither --source nor CAATINGA_SOURCE is provided. */
463
+ declare const DEFAULT_CLI_SOURCE = "alice";
464
+ /** Where a resolved CLI source value came from, for honest disclosure to users. */
465
+ type CliSourceOrigin = "explicit" | "env" | "default";
466
+ type ResolvedCliSource = {
467
+ source: string;
468
+ origin: CliSourceOrigin;
469
+ };
470
+ /**
471
+ * Resolve the CLI source identity and report where the value came from so the
472
+ * CLI can disclose an implicit fallback instead of silently signing/simulating
473
+ * as `alice`.
474
+ */
475
+ declare function describeCliSource(explicit?: string): ResolvedCliSource;
476
+
462
477
  type ResolvedContract = {
463
478
  name: string;
464
479
  config: ContractConfig;
@@ -837,4 +852,4 @@ type TemplateManifest = z.infer<typeof TemplateManifestSchema>;
837
852
 
838
853
  declare function isTransientTestnetSmokeFailure(logText: string): boolean;
839
854
 
840
- export { BINDING_MARKER_FILENAME, type BindingFreshness, type BindingFreshnessStatus, type BindingMarker, BindingMarkerSchema, type BuildContractOptions, CAATINGA_CORE_VERSION, CaatingaArtifacts, type CaatingaConfig, CaatingaConfigSchema, CaatingaError, type CheckStellarCliVersionOptions, type CheckStellarSdkVersionOptions, type CollectProjectStatusOptions, type CompatibilityReport, type CompatibilityStatus, type CompatibilityWarning, type CompatibilityWarningCode, ContractArtifact, type ContractConfig, type ContractInspectResult, type ContractStatusEntry, type CreateInitialArtifactsOptions, type CreateMinimalProjectOptions, type CreateProjectFromTemplateOptions, type CreateZkProjectOptions, type DeployArgValue, type DeployContractGraphResult, type DeployContractOptions, type DeployCostEstimate, type EstimateDeployCostOptions, type EvaluateBindingFreshnessOptions, type EvaluateStellarCliCompatibilityInput, type EvaluateStellarSdkCompatibilityInput, type GenerateBindingsGraphResult, type GenerateBindingsOptions, type InspectContractOptions, type InvokeContractOptions, type InvokeTarget, type LoadConfigOptions, type NetworkConfig, type NetworkStatus, type ProjectStatus, READ_CALL_FAILURE_REGEX, type ReadContractOptions, type ResolvedContract, type ResolvedNetwork, type RunCommandResult, STELLAR_CLI_LAST_TESTED_VERSION, STELLAR_CLI_MIN_VERSION, STELLAR_SDK_LAST_TESTED_VERSION, STELLAR_SDK_MIN_VERSION, type SdkCompatibilityReport, type SdkCompatibilityStatus, type SdkCompatibilityWarning, type SdkCompatibilityWarningCode, type SkippedContract, type TemplateManifest, TemplateManifestSchema, WELL_KNOWN_NETWORKS, buildContract, buildDependencyGraph, buildReadCallHint, checkBinary, checkStellarCliVersion, checkStellarSdkVersion, collectProjectStatus, createInitialArtifacts, createMinimalProject, createProjectFromTemplate, createZkProject, defineConfig, deployContract, deployContractGraph, estimateDeployCost, evaluateBindingFreshness, evaluateBindingsFreshness, evaluateStellarCliCompatibility, evaluateStellarSdkCompatibility, generateBindings, generateBindingsGraph, inspectContract, invokeContract, isCargoBinMissingFromPath, isReadCallFailure, isTransientTestnetSmokeFailure, loadConfig, migrateArtifactsFile, migrateArtifactsToV2, parseContractId, parseInvokeTarget, parseStellarCliVersion, parseStellarSdkVersion, readArtifacts, readBindingMarker, readContract, resolveContract, resolveDefaultContractName, resolveDeployArgs, resolveDeployOrder, resolveNetwork, resolveSubprocessEnv, restoreArtifactFromHistory, rollbackContractArtifact, runCommand, updateArtifact, validateSourceShape, writeArtifacts, writeBindingMarker };
855
+ export { BINDING_MARKER_FILENAME, type BindingFreshness, type BindingFreshnessStatus, type BindingMarker, BindingMarkerSchema, type BuildContractOptions, CAATINGA_CORE_VERSION, CaatingaArtifacts, type CaatingaConfig, CaatingaConfigSchema, CaatingaError, type CheckStellarCliVersionOptions, type CheckStellarSdkVersionOptions, type CliSourceOrigin, type CollectProjectStatusOptions, type CompatibilityReport, type CompatibilityStatus, type CompatibilityWarning, type CompatibilityWarningCode, ContractArtifact, type ContractConfig, type ContractInspectResult, type ContractStatusEntry, type CreateInitialArtifactsOptions, type CreateMinimalProjectOptions, type CreateProjectFromTemplateOptions, type CreateZkProjectOptions, DEFAULT_CLI_SOURCE, type DeployArgValue, type DeployContractGraphResult, type DeployContractOptions, type DeployCostEstimate, type EstimateDeployCostOptions, type EvaluateBindingFreshnessOptions, type EvaluateStellarCliCompatibilityInput, type EvaluateStellarSdkCompatibilityInput, type GenerateBindingsGraphResult, type GenerateBindingsOptions, type InspectContractOptions, type InvokeContractOptions, type InvokeTarget, type LoadConfigOptions, type NetworkConfig, type NetworkStatus, type ProjectStatus, READ_CALL_FAILURE_REGEX, type ReadContractOptions, type ResolvedCliSource, type ResolvedContract, type ResolvedNetwork, type RunCommandResult, STELLAR_CLI_LAST_TESTED_VERSION, STELLAR_CLI_MIN_VERSION, STELLAR_SDK_LAST_TESTED_VERSION, STELLAR_SDK_MIN_VERSION, type SdkCompatibilityReport, type SdkCompatibilityStatus, type SdkCompatibilityWarning, type SdkCompatibilityWarningCode, type SkippedContract, type TemplateManifest, TemplateManifestSchema, WELL_KNOWN_NETWORKS, buildContract, buildDependencyGraph, buildReadCallHint, checkBinary, checkStellarCliVersion, checkStellarSdkVersion, collectProjectStatus, createInitialArtifacts, createMinimalProject, createProjectFromTemplate, createZkProject, defineConfig, deployContract, deployContractGraph, describeCliSource, estimateDeployCost, evaluateBindingFreshness, evaluateBindingsFreshness, evaluateStellarCliCompatibility, evaluateStellarSdkCompatibility, generateBindings, generateBindingsGraph, inspectContract, invokeContract, isCargoBinMissingFromPath, isReadCallFailure, isTransientTestnetSmokeFailure, loadConfig, migrateArtifactsFile, migrateArtifactsToV2, parseContractId, parseInvokeTarget, parseStellarCliVersion, parseStellarSdkVersion, readArtifacts, readBindingMarker, readContract, resolveContract, resolveDefaultContractName, resolveDeployArgs, resolveDeployOrder, resolveNetwork, resolveSubprocessEnv, restoreArtifactFromHistory, rollbackContractArtifact, runCommand, updateArtifact, validateSourceShape, writeArtifacts, writeBindingMarker };
package/dist/index.js CHANGED
@@ -1179,6 +1179,36 @@ function validateSourceShape(source) {
1179
1179
  return void 0;
1180
1180
  }
1181
1181
 
1182
+ // src/contracts/source-account.ts
1183
+ function assertSafeSourceAccount(source) {
1184
+ if (!source) {
1185
+ throw new CaatingaError(
1186
+ "A source account or Stellar CLI identity is required.",
1187
+ CaatingaErrorCode.SOURCE_ACCOUNT_REQUIRED,
1188
+ "Pass a Stellar CLI identity alias, for example: --source alice"
1189
+ );
1190
+ }
1191
+ const unsafeSource = validateSourceShape(source);
1192
+ if (unsafeSource) {
1193
+ throw unsafeSource;
1194
+ }
1195
+ return source;
1196
+ }
1197
+ var DEFAULT_CLI_SOURCE = "alice";
1198
+ function describeCliSource(explicit) {
1199
+ if (explicit) {
1200
+ return { source: assertSafeSourceAccount(explicit), origin: "explicit" };
1201
+ }
1202
+ const fromEnv = process.env.CAATINGA_SOURCE;
1203
+ if (fromEnv) {
1204
+ return { source: assertSafeSourceAccount(fromEnv), origin: "env" };
1205
+ }
1206
+ return { source: assertSafeSourceAccount(DEFAULT_CLI_SOURCE), origin: "default" };
1207
+ }
1208
+ function resolveCliSource(explicit) {
1209
+ return describeCliSource(explicit).source;
1210
+ }
1211
+
1182
1212
  // src/contracts/resolve-contract.ts
1183
1213
  import path8 from "path";
1184
1214
  function resolveContract(config, contractName, cwd = process.cwd()) {
@@ -1491,25 +1521,6 @@ function resolveDeployArgs(input) {
1491
1521
  return resolved;
1492
1522
  }
1493
1523
 
1494
- // src/contracts/source-account.ts
1495
- function assertSafeSourceAccount(source) {
1496
- if (!source) {
1497
- throw new CaatingaError(
1498
- "A source account or Stellar CLI identity is required.",
1499
- CaatingaErrorCode.SOURCE_ACCOUNT_REQUIRED,
1500
- "Pass a Stellar CLI identity alias, for example: --source alice"
1501
- );
1502
- }
1503
- const unsafeSource = validateSourceShape(source);
1504
- if (unsafeSource) {
1505
- throw unsafeSource;
1506
- }
1507
- return source;
1508
- }
1509
- function resolveCliSource(explicit) {
1510
- return assertSafeSourceAccount(explicit ?? process.env.CAATINGA_SOURCE ?? "alice");
1511
- }
1512
-
1513
1524
  // src/contracts/deploy-contract.ts
1514
1525
  var DEFAULT_DEPLOY_RETRY_DELAYS_MS = [2e3, 5e3];
1515
1526
  function sleep(ms) {
@@ -2392,7 +2403,7 @@ async function inspectContract(options) {
2392
2403
  }
2393
2404
 
2394
2405
  // src/templates/create-project-from-template.ts
2395
- import { cp, mkdir as mkdir3, readFile as readFile6, readdir as readdir3, stat as stat2, writeFile as writeFile4 } from "fs/promises";
2406
+ import { cp, lstat, mkdir as mkdir3, readFile as readFile6, readdir as readdir3, stat as stat2, writeFile as writeFile4 } from "fs/promises";
2396
2407
  import path14 from "path";
2397
2408
  import { z as z7 } from "zod";
2398
2409
 
@@ -2544,13 +2555,19 @@ async function replaceTemplateVariables(dir, projectName) {
2544
2555
  const entries = await readdir3(dir);
2545
2556
  await Promise.all(
2546
2557
  entries.map(async (entry) => {
2558
+ if (TEMPLATE_COPY_EXCLUDED_DIRS.has(entry)) {
2559
+ return;
2560
+ }
2547
2561
  const entryPath = path14.join(dir, entry);
2548
- const entryStat = await stat2(entryPath);
2562
+ const entryStat = await lstat(entryPath);
2563
+ if (entryStat.isSymbolicLink()) {
2564
+ return;
2565
+ }
2549
2566
  if (entryStat.isDirectory()) {
2550
2567
  await replaceTemplateVariables(entryPath, projectName);
2551
2568
  return;
2552
2569
  }
2553
- if (!isTextTemplateFile(entryPath)) {
2570
+ if (!entryStat.isFile() || !isTextTemplateFile(entryPath)) {
2554
2571
  return;
2555
2572
  }
2556
2573
  const content = await readFile6(entryPath, "utf8");
@@ -2874,6 +2891,7 @@ export {
2874
2891
  CaatingaConfigSchema,
2875
2892
  CaatingaError,
2876
2893
  CaatingaErrorCode,
2894
+ DEFAULT_CLI_SOURCE,
2877
2895
  READ_CALL_FAILURE_REGEX,
2878
2896
  STELLAR_CLI_LAST_TESTED_VERSION,
2879
2897
  STELLAR_CLI_MIN_VERSION,
@@ -2895,6 +2913,7 @@ export {
2895
2913
  defineConfig,
2896
2914
  deployContract,
2897
2915
  deployContractGraph,
2916
+ describeCliSource,
2898
2917
  estimateDeployCost,
2899
2918
  evaluateBindingFreshness,
2900
2919
  evaluateBindingsFreshness,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caatinga/core",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "Core config, artifacts, command orchestration, and error primitives for Caatinga/Soroban toolkit",
5
5
  "keywords": [
6
6
  "stellar",