configorama 0.6.19 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +78 -2
  2. package/cli.js +1 -0
  3. package/index.d.ts +90 -37
  4. package/package.json +8 -2
  5. package/src/index.js +42 -14
  6. package/src/main.js +72 -51
  7. package/src/parsers/index.js +10 -0
  8. package/src/parsers/typescript.js +20 -43
  9. package/src/parsers/yaml.js +35 -2
  10. package/src/resolvers/valueFromFile.js +87 -24
  11. package/src/resolvers/valueFromGit.js +11 -3
  12. package/src/utils/encoders/js-fixes.js +44 -0
  13. package/src/utils/parsing/mergeByKeys.js +4 -3
  14. package/src/utils/parsing/parse.js +4 -2
  15. package/src/utils/paths/getFullFilePath.js +1 -1
  16. package/src/utils/resolution/preResolveVariable.js +1 -0
  17. package/src/utils/strings/quoteUtils.js +2 -2
  18. package/src/utils/strings/splitCsv.js +1 -1
  19. package/src/utils/ui/logs.js +4 -4
  20. package/src/utils/validation/warnIfNotFound.js +3 -3
  21. package/src/utils/variables/findNestedVariables.js +2 -2
  22. package/types/cli.d.ts +3 -0
  23. package/types/cli.d.ts.map +1 -0
  24. package/types/src/functions/md5.d.ts +3 -0
  25. package/types/src/functions/md5.d.ts.map +1 -0
  26. package/types/src/index.d.ts +100 -0
  27. package/types/src/index.d.ts.map +1 -0
  28. package/types/src/main.d.ts +275 -0
  29. package/types/src/main.d.ts.map +1 -0
  30. package/types/src/parsers/esm.d.ts +15 -0
  31. package/types/src/parsers/esm.d.ts.map +1 -0
  32. package/types/src/parsers/hcl.d.ts +1 -0
  33. package/types/src/parsers/hcl.d.ts.map +1 -0
  34. package/types/src/parsers/index.d.ts +18 -0
  35. package/types/src/parsers/index.d.ts.map +1 -0
  36. package/types/src/parsers/ini.d.ts +6 -0
  37. package/types/src/parsers/ini.d.ts.map +1 -0
  38. package/types/src/parsers/json5.d.ts +10 -0
  39. package/types/src/parsers/json5.d.ts.map +1 -0
  40. package/types/src/parsers/toml.d.ts +7 -0
  41. package/types/src/parsers/toml.d.ts.map +1 -0
  42. package/types/src/parsers/typescript.d.ts +15 -0
  43. package/types/src/parsers/typescript.d.ts.map +1 -0
  44. package/types/src/parsers/yaml.d.ts +45 -0
  45. package/types/src/parsers/yaml.d.ts.map +1 -0
  46. package/types/src/resolvers/valueFromCron.d.ts +14 -0
  47. package/types/src/resolvers/valueFromCron.d.ts.map +1 -0
  48. package/types/src/resolvers/valueFromEnv.d.ts +8 -0
  49. package/types/src/resolvers/valueFromEnv.d.ts.map +1 -0
  50. package/types/src/resolvers/valueFromEval.d.ts +7 -0
  51. package/types/src/resolvers/valueFromEval.d.ts.map +1 -0
  52. package/types/src/resolvers/valueFromFile.d.ts +58 -0
  53. package/types/src/resolvers/valueFromFile.d.ts.map +1 -0
  54. package/types/src/resolvers/valueFromGit.d.ts +11 -0
  55. package/types/src/resolvers/valueFromGit.d.ts.map +1 -0
  56. package/types/src/resolvers/valueFromNumber.d.ts +6 -0
  57. package/types/src/resolvers/valueFromNumber.d.ts.map +1 -0
  58. package/types/src/resolvers/valueFromOptions.d.ts +9 -0
  59. package/types/src/resolvers/valueFromOptions.d.ts.map +1 -0
  60. package/types/src/resolvers/valueFromSelf.d.ts +1 -0
  61. package/types/src/resolvers/valueFromSelf.d.ts.map +1 -0
  62. package/types/src/resolvers/valueFromString.d.ts +6 -0
  63. package/types/src/resolvers/valueFromString.d.ts.map +1 -0
  64. package/types/src/sync.d.ts +3 -0
  65. package/types/src/sync.d.ts.map +1 -0
  66. package/types/src/utils/PromiseTracker.d.ts +19 -0
  67. package/types/src/utils/PromiseTracker.d.ts.map +1 -0
  68. package/types/src/utils/encoders/index.d.ts +2 -0
  69. package/types/src/utils/encoders/index.d.ts.map +1 -0
  70. package/types/src/utils/encoders/js-fixes.d.ts +23 -0
  71. package/types/src/utils/encoders/js-fixes.d.ts.map +1 -0
  72. package/types/src/utils/encoders/unknown-values.d.ts +18 -0
  73. package/types/src/utils/encoders/unknown-values.d.ts.map +1 -0
  74. package/types/src/utils/handleSignalEvents.d.ts +3 -0
  75. package/types/src/utils/handleSignalEvents.d.ts.map +1 -0
  76. package/types/src/utils/lodash.d.ts +4 -0
  77. package/types/src/utils/lodash.d.ts.map +1 -0
  78. package/types/src/utils/parsing/arrayToJsonPath.d.ts +5 -0
  79. package/types/src/utils/parsing/arrayToJsonPath.d.ts.map +1 -0
  80. package/types/src/utils/parsing/cloudformationSchema.d.ts +2 -0
  81. package/types/src/utils/parsing/cloudformationSchema.d.ts.map +1 -0
  82. package/types/src/utils/parsing/enrichMetadata.d.ts +17 -0
  83. package/types/src/utils/parsing/enrichMetadata.d.ts.map +1 -0
  84. package/types/src/utils/parsing/mergeByKeys.d.ts +5 -0
  85. package/types/src/utils/parsing/mergeByKeys.d.ts.map +1 -0
  86. package/types/src/utils/parsing/parse.d.ts +54 -0
  87. package/types/src/utils/parsing/parse.d.ts.map +1 -0
  88. package/types/src/utils/parsing/preProcess.d.ts +10 -0
  89. package/types/src/utils/parsing/preProcess.d.ts.map +1 -0
  90. package/types/src/utils/paths/filePathUtils.d.ts +32 -0
  91. package/types/src/utils/paths/filePathUtils.d.ts.map +1 -0
  92. package/types/src/utils/paths/findLineForKey.d.ts +12 -0
  93. package/types/src/utils/paths/findLineForKey.d.ts.map +1 -0
  94. package/types/src/utils/paths/findProjectRoot.d.ts +2 -0
  95. package/types/src/utils/paths/findProjectRoot.d.ts.map +1 -0
  96. package/types/src/utils/paths/getFullFilePath.d.ts +25 -0
  97. package/types/src/utils/paths/getFullFilePath.d.ts.map +1 -0
  98. package/types/src/utils/paths/resolveAlias.d.ts +14 -0
  99. package/types/src/utils/paths/resolveAlias.d.ts.map +1 -0
  100. package/types/src/utils/regex/index.d.ts +14 -0
  101. package/types/src/utils/regex/index.d.ts.map +1 -0
  102. package/types/src/utils/resolution/preResolveVariable.d.ts +51 -0
  103. package/types/src/utils/resolution/preResolveVariable.d.ts.map +1 -0
  104. package/types/src/utils/strings/bracketMatcher.d.ts +25 -0
  105. package/types/src/utils/strings/bracketMatcher.d.ts.map +1 -0
  106. package/types/src/utils/strings/formatFunctionArgs.d.ts +3 -0
  107. package/types/src/utils/strings/formatFunctionArgs.d.ts.map +1 -0
  108. package/types/src/utils/strings/quoteUtils.d.ts +31 -0
  109. package/types/src/utils/strings/quoteUtils.d.ts.map +1 -0
  110. package/types/src/utils/strings/replaceAll.d.ts +9 -0
  111. package/types/src/utils/strings/replaceAll.d.ts.map +1 -0
  112. package/types/src/utils/strings/splitByComma.d.ts +2 -0
  113. package/types/src/utils/strings/splitByComma.d.ts.map +1 -0
  114. package/types/src/utils/strings/splitCsv.d.ts +10 -0
  115. package/types/src/utils/strings/splitCsv.d.ts.map +1 -0
  116. package/types/src/utils/strings/textUtils.d.ts +15 -0
  117. package/types/src/utils/strings/textUtils.d.ts.map +1 -0
  118. package/types/src/utils/ui/chalk.d.ts +70 -0
  119. package/types/src/utils/ui/chalk.d.ts.map +1 -0
  120. package/types/src/utils/ui/configWizard.d.ts +67 -0
  121. package/types/src/utils/ui/configWizard.d.ts.map +1 -0
  122. package/types/src/utils/ui/createEditorLink.d.ts +11 -0
  123. package/types/src/utils/ui/createEditorLink.d.ts.map +1 -0
  124. package/types/src/utils/ui/deep-log.d.ts +3 -0
  125. package/types/src/utils/ui/deep-log.d.ts.map +1 -0
  126. package/types/src/utils/ui/logs.d.ts +2 -0
  127. package/types/src/utils/ui/logs.d.ts.map +1 -0
  128. package/types/src/utils/validation/warnIfNotFound.d.ts +15 -0
  129. package/types/src/utils/validation/warnIfNotFound.d.ts.map +1 -0
  130. package/types/src/utils/variables/appendDeepVariable.d.ts +3 -0
  131. package/types/src/utils/variables/appendDeepVariable.d.ts.map +1 -0
  132. package/types/src/utils/variables/cleanVariable.d.ts +3 -0
  133. package/types/src/utils/variables/cleanVariable.d.ts.map +1 -0
  134. package/types/src/utils/variables/findNestedVariables.d.ts +23 -0
  135. package/types/src/utils/variables/findNestedVariables.d.ts.map +1 -0
  136. package/types/src/utils/variables/getVariableType.d.ts +8 -0
  137. package/types/src/utils/variables/getVariableType.d.ts.map +1 -0
  138. package/types/src/utils/variables/variableUtils.d.ts +21 -0
  139. package/types/src/utils/variables/variableUtils.d.ts.map +1 -0
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Runs config setup wizard
3
+ * @param {object} metadata - Enriched metadata from configorama
4
+ * @param {object} originalConfig - The original config before resolution
5
+ * @returns {Promise<object>} User inputs by variable type
6
+ */
7
+ export function runConfigWizard(metadata: object, originalConfig?: object, configFilePath?: string): Promise<object>;
8
+ /**
9
+ * Groups variables by type for wizard flow
10
+ * @param {object} uniqueVariables - The uniqueVariables from enriched metadata
11
+ * @param {object} originalConfig - The original config before resolution
12
+ * @returns {object} Grouped variables by type
13
+ */
14
+ export function groupVariablesByType(uniqueVariables: object, originalConfig?: object): object;
15
+ /**
16
+ * Detects if a variable name suggests sensitive data
17
+ * @param {string} name - Variable name
18
+ * @returns {boolean} True if likely sensitive
19
+ */
20
+ export function isSensitiveVariable(name: string): boolean;
21
+ /**
22
+ * Creates a human-readable prompt message
23
+ * @param {object} varInfo - Variable info
24
+ * @returns {string} Prompt message
25
+ */
26
+ export function createPromptMessage(varInfo: object): string;
27
+ /**
28
+ * Extracts type from variable data or occurrences
29
+ * @param {object} varData - Variable data with types array or occurrences
30
+ * @returns {string|null} Expected type or null
31
+ */
32
+ export function getExpectedType(varData: object): string | null;
33
+ /**
34
+ * Extracts help text from variable data or occurrences
35
+ * @param {object} varData - Variable data with descriptions array or occurrences
36
+ * @returns {string|null} Help text or null
37
+ */
38
+ export function getHelpText(varData: object): string | null;
39
+ /**
40
+ * Extracts allowed values from description text like "Deployment stage (dev, staging, production)"
41
+ * @param {object} varData - Variable data with descriptions array or occurrences
42
+ * @returns {string[]|null} Array of allowed values or null if not found
43
+ */
44
+ export function getAllowedValues(varData: object): string[] | null;
45
+ /**
46
+ * Validates input value based on expected type
47
+ * @param {string} value - Input value
48
+ * @param {string} expectedType - Expected type (String, Number, Boolean, Json)
49
+ * @returns {string|undefined} Error message if invalid, undefined if valid
50
+ */
51
+ export function validateType(value: string, expectedType: string): string | undefined;
52
+ /**
53
+ * Prefixes each line of multiline text with INVISIBLE_SPACE repeated a specified number of times
54
+ * @param {number} count - Number of times to repeat INVISIBLE_SPACE for prefix
55
+ * @param {string} text - Multiline text to prefix
56
+ * @returns {string} Text with each line prefixed with INVISIBLE_SPACE
57
+ */
58
+ export function prefixMultilineText(count: number, text: string): string;
59
+ /**
60
+ * Formats multiline text for wizard display with leading pipe and invisible space indentation
61
+ * @param {number} indentCount - Number of times to repeat INVISIBLE_SPACE for indentation
62
+ * @param {string} text - Multiline text to format
63
+ * @param {boolean} addLeadingEmptyLine - Whether to add empty line with pipe before first line (default: true)
64
+ * @returns {string} Formatted text with pipe prefix and indentation
65
+ */
66
+ export function formatWizardMultilineText(indentCount: number, text: string, addLeadingEmptyLine?: boolean): string;
67
+ //# sourceMappingURL=configWizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configWizard.d.ts","sourceRoot":"","sources":["../../../../src/utils/ui/configWizard.js"],"names":[],"mappings":"AAwcA;;;;;GAKG;AACH,0CAJW,MAAM,mBACN,MAAM,4BACJ,OAAO,CAAC,MAAM,CAAC,CAqP3B;AA5pBD;;;;;GAKG;AACH,sDAJW,MAAM,mBACN,MAAM,GACJ,MAAM,CAgKlB;AAED;;;;GAIG;AACH,0CAHW,MAAM,GACJ,OAAO,CAYnB;AA+HD;;;;GAIG;AACH,6CAHW,MAAM,GACJ,MAAM,CA0GlB;AApMD;;;;GAIG;AACH,yCAHW,MAAM,GACJ,MAAM,GAAC,IAAI,CA0BvB;AAED;;;;GAIG;AACH,qCAHW,MAAM,GACJ,MAAM,GAAC,IAAI,CA4BvB;AAED;;;;GAIG;AACH,0CAHW,MAAM,GACJ,MAAM,EAAE,GAAC,IAAI,CAkBzB;AA3HD;;;;;GAKG;AACH,oCAJW,MAAM,gBACN,MAAM,GACJ,MAAM,GAAC,SAAS,CAgC5B;AAvPD;;;;;GAKG;AACH,2CAJW,MAAM,QACN,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;;GAMG;AACH,uDALW,MAAM,QACN,MAAM,wBACN,OAAO,GACL,MAAM,CASlB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Creates a hyperlink for the default editor (Cursor/VS Code)
3
+ * @param {string} filePath - The file path to link to
4
+ * @param {number} line - Line number (default: 1)
5
+ * @param {number} column - Column number (default: 1)
6
+ * @param {string} customDisplay - Custom display text (default: filename:line)
7
+ * @param {string|false} color - Chalk color for the link (default: 'cyanBright'), or false to skip coloring
8
+ * @returns {string} The hyperlink string
9
+ */
10
+ export function createEditorLink(filePath: string, line?: number, column?: number, customDisplay?: string, color?: string | false): string;
11
+ //# sourceMappingURL=createEditorLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createEditorLink.d.ts","sourceRoot":"","sources":["../../../../src/utils/ui/createEditorLink.js"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,2CAPW,MAAM,SACN,MAAM,WACN,MAAM,kBACN,MAAM,UACN,MAAM,GAAC,KAAK,GACV,MAAM,CAiBlB"}
@@ -0,0 +1,3 @@
1
+ declare function _exports(objOrLabel: any, logVal: any): void;
2
+ export = _exports;
3
+ //# sourceMappingURL=deep-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-log.d.ts","sourceRoot":"","sources":["../../../../src/utils/ui/deep-log.js"],"names":[],"mappings":"AAEiB,8DAOhB"}
@@ -0,0 +1,2 @@
1
+ export function logHeader(message: any): void;
2
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../../src/utils/ui/logs.js"],"names":[],"mappings":"AAEA,8CASC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Check if variable resolved to valid value, log warning if not
3
+ * @param {string} variableString - The variable being resolved
4
+ * @param {*} valueToPopulate - The resolved value
5
+ * @param {object} [options] - Configuration options
6
+ * @param {object} [options.patterns] - Regex patterns for variable types
7
+ * @param {boolean} [options.debug] - Whether to log warnings
8
+ * @returns {*} The valueToPopulate unchanged
9
+ */
10
+ export function warnIfNotFound(variableString: string, valueToPopulate: any, options?: {
11
+ patterns?: object;
12
+ debug?: boolean;
13
+ }): any;
14
+ export function isValidValue(val: any): boolean;
15
+ //# sourceMappingURL=warnIfNotFound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warnIfNotFound.d.ts","sourceRoot":"","sources":["../../../../src/utils/validation/warnIfNotFound.js"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AACH,+CAPW,MAAM,mBACN,GAAC,YAET;IAAyB,QAAQ,GAAzB,MAAM;IACY,KAAK,GAAvB,OAAO;CACf,GAAU,GAAC,CA2Bb;AAzCD,gDAKC"}
@@ -0,0 +1,3 @@
1
+ declare function _exports(variable: any, subProperty: any): string;
2
+ export = _exports;
3
+ //# sourceMappingURL=appendDeepVariable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appendDeepVariable.d.ts","sourceRoot":"","sources":["../../../../src/utils/variables/appendDeepVariable.js"],"names":[],"mappings":"AACiB,mEAEhB"}
@@ -0,0 +1,3 @@
1
+ declare function _exports(match: any, variableSyntax: any, simple: any, caller: any, recursive?: boolean): any;
2
+ export = _exports;
3
+ //# sourceMappingURL=cleanVariable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanVariable.d.ts","sourceRoot":"","sources":["../../../../src/utils/variables/cleanVariable.js"],"names":[],"mappings":"AAYiB,+GAuEhB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Finds all nested variable interpolations in a string while preserving original syntax
3
+ *
4
+ * This function handles complex nested variables like:
5
+ * ${file(./config.${opt:stage, ${defaultStage}}.json):CREDS}
6
+ *
7
+ * The returned matches will include:
8
+ * 1. innermost variables first (e.g., ${defaultStage})
9
+ * 2. middle variables next (e.g., ${opt:stage, ${defaultStage}})
10
+ * 3. outermost variables last (e.g., the entire expression)
11
+ *
12
+ * Each variable retains its original syntax even in nested form.
13
+ *
14
+ * @param {string} input - The input string containing variable interpolations
15
+ * @param {RegExp} regex - The regex pattern to match variables
16
+ * @param {RegExp} variablesKnownTypes - Combined regex of all known variable types
17
+ * @param {string} location - The location in config where this variable appears
18
+ * @param {Array} variableTypes - Array of variable type definitions from resolvers
19
+ * @param {boolean} debug - Whether to print debug information
20
+ * @returns {Array} Array of match objects with fullMatch, variable, varString and other properties
21
+ */
22
+ export function findNestedVariables(input: string, regex: RegExp, variablesKnownTypes: RegExp, location: string, variableTypes: any[], debug?: boolean): any[];
23
+ //# sourceMappingURL=findNestedVariables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findNestedVariables.d.ts","sourceRoot":"","sources":["../../../../src/utils/variables/findNestedVariables.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,2CARW,MAAM,SACN,MAAM,uBACN,MAAM,YACN,MAAM,gCAEN,OAAO,SAyQjB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Determines the type of a variable by matching against resolver definitions
3
+ * @param {string} varString - The variable string (without ${})
4
+ * @param {Array} variableTypes - Array of variable type definitions with match regex and type
5
+ * @returns {string} The type field from the matching resolver, or 'dot.prop' as fallback
6
+ */
7
+ export function getVariableType(varString: string, variableTypes: any[]): string;
8
+ //# sourceMappingURL=getVariableType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVariableType.d.ts","sourceRoot":"","sources":["../../../../src/utils/variables/getVariableType.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,2CAJW,MAAM,yBAEJ,MAAM,CAwClB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Extract variable prefix/suffix from regex source
3
+ * @param {string} syntaxSource - The regex source string (e.g., '\\$\\{(...)\\}')
4
+ * @returns {{ prefix: string, suffix: string }} The unescaped prefix and suffix
5
+ */
6
+ export function extractVariableWrapper(syntaxSource: string): {
7
+ prefix: string;
8
+ suffix: string;
9
+ };
10
+ /**
11
+ * Get fallback variable string
12
+ * @param {string[]} split - Array from split at comma
13
+ * @param {string} nestedVar - Fallback variable to reconstruct variable string from
14
+ * @returns {string} New ${variable, string}
15
+ */
16
+ export function getFallbackString(split: string[], nestedVar: string): string;
17
+ /**
18
+ * Verify if variable string is valid
19
+ */
20
+ export function verifyVariable(variableString: any, valueObject: any, variableTypes: any, config: any): any;
21
+ //# sourceMappingURL=variableUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variableUtils.d.ts","sourceRoot":"","sources":["../../../../src/utils/variables/variableUtils.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qDAHW,MAAM,GACJ;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAqC9C;AAED;;;;;GAKG;AACH,yCAJW,MAAM,EAAE,aACR,MAAM,GACJ,MAAM,CAelB;AAED;;GAEG;AACH,4GAsBC"}