@actions/expressions 0.3.34 → 0.3.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import { Dictionary } from "./data/dictionary.js";
2
+ import { FeatureFlags } from "./features.js";
2
3
  import { FunctionDefinition, FunctionInfo } from "./funcs/info.js";
3
4
  import { Token } from "./lexer.js";
4
5
  export type CompletionItem = {
@@ -19,8 +20,9 @@ export type CompletionItem = {
19
20
  * @param context Context available for the expression
20
21
  * @param extensionFunctions List of functions available
21
22
  * @param functions Optional map of functions to use during evaluation
23
+ * @param featureFlags Optional feature flags to control which features are enabled
22
24
  * @returns Array of completion items
23
25
  */
24
- export declare function complete(input: string, context: Dictionary, extensionFunctions: FunctionInfo[], functions?: Map<string, FunctionDefinition>): CompletionItem[];
26
+ export declare function complete(input: string, context: Dictionary, extensionFunctions: FunctionInfo[], functions?: Map<string, FunctionDefinition>, featureFlags?: FeatureFlags): CompletionItem[];
25
27
  export declare function trimTokenVector(tokenVector: Token[]): Token[];
26
28
  //# sourceMappingURL=completion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAe,MAAM,sBAAsB,CAAC;AAI9D,OAAO,EAAC,kBAAkB,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAQ,KAAK,EAAY,MAAM,YAAY,CAAC;AAGnD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,EACnB,kBAAkB,EAAE,YAAY,EAAE,EAClC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAC1C,cAAc,EAAE,CAqDlB;AA6CD,wBAAgB,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAqC7D"}
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAe,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAC,kBAAkB,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAQ,KAAK,EAAY,MAAM,YAAY,CAAC;AAGnD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,EACnB,kBAAkB,EAAE,YAAY,EAAE,EAClC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC3C,YAAY,CAAC,EAAE,YAAY,GAC1B,cAAc,EAAE,CAqDlB;AAkDD,wBAAgB,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAqC7D"}
@@ -1,5 +1,6 @@
1
1
  import { isDictionary } from "./data/dictionary.js";
2
2
  import { Evaluator } from "./evaluator.js";
3
+ import { FeatureFlags } from "./features.js";
3
4
  import { wellKnownFunctions } from "./funcs.js";
4
5
  import { Lexer, TokenType } from "./lexer.js";
5
6
  import { Parser } from "./parser.js";
@@ -16,9 +17,10 @@ import { Parser } from "./parser.js";
16
17
  * @param context Context available for the expression
17
18
  * @param extensionFunctions List of functions available
18
19
  * @param functions Optional map of functions to use during evaluation
20
+ * @param featureFlags Optional feature flags to control which features are enabled
19
21
  * @returns Array of completion items
20
22
  */
21
- export function complete(input, context, extensionFunctions, functions) {
23
+ export function complete(input, context, extensionFunctions, functions, featureFlags) {
22
24
  // Lex
23
25
  const lexer = new Lexer(input);
24
26
  const lexResult = lexer.lex();
@@ -42,7 +44,7 @@ export function complete(input, context, extensionFunctions, functions) {
42
44
  // Vector only contains the EOF token. Suggest functions and root context access
43
45
  const result = contextKeys(context);
44
46
  // Merge with functions
45
- result.push(...functionItems(extensionFunctions));
47
+ result.push(...functionItems(extensionFunctions, featureFlags));
46
48
  return result;
47
49
  }
48
50
  // Determine path that led to the last token
@@ -56,9 +58,14 @@ export function complete(input, context, extensionFunctions, functions) {
56
58
  const result = ev.evaluate();
57
59
  return contextKeys(result);
58
60
  }
59
- function functionItems(extensionFunctions) {
61
+ function functionItems(extensionFunctions, featureFlags) {
60
62
  const result = [];
63
+ const flags = featureFlags ?? new FeatureFlags();
61
64
  for (const fdef of [...Object.values(wellKnownFunctions), ...extensionFunctions]) {
65
+ // Filter out case function if feature is disabled
66
+ if (fdef.name === "case" && !flags.isEnabled("allowCaseFunction")) {
67
+ continue;
68
+ }
62
69
  result.push({
63
70
  label: fdef.name,
64
71
  description: fdef.description,
@@ -1 +1 @@
1
- {"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -9,8 +9,9 @@ export declare enum ErrorType {
9
9
  ErrorExceededMaxLength = 4,
10
10
  ErrorTooFewParameters = 5,
11
11
  ErrorTooManyParameters = 6,
12
- ErrorUnrecognizedContext = 7,
13
- ErrorUnrecognizedFunction = 8
12
+ ErrorEvenParameters = 7,
13
+ ErrorUnrecognizedContext = 8,
14
+ ErrorUnrecognizedFunction = 9
14
15
  }
15
16
  export declare class ExpressionError extends Error {
16
17
  private typ;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,KAAK,EAAc,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,oBAAY,SAAS;IACnB,qBAAqB,IAAA;IACrB,2BAA2B,IAAA;IAC3B,8BAA8B,IAAA;IAE9B,qBAAqB,IAAA;IACrB,sBAAsB,IAAA;IACtB,qBAAqB,IAAA;IACrB,sBAAsB,IAAA;IACtB,wBAAwB,IAAA;IACxB,yBAAyB,IAAA;CAC1B;AAED,qBAAa,eAAgB,SAAQ,KAAK;IAC5B,OAAO,CAAC,GAAG;IAAa,OAAO,CAAC,GAAG;gBAA3B,GAAG,EAAE,SAAS,EAAU,GAAG,EAAE,KAAK;IAM/C,GAAG,EAAE,GAAG,CAAC;CACjB;AA2BD,qBAAa,yBAA0B,SAAQ,KAAK;CAAG"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,KAAK,EAAc,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,oBAAY,SAAS;IACnB,qBAAqB,IAAA;IACrB,2BAA2B,IAAA;IAC3B,8BAA8B,IAAA;IAE9B,qBAAqB,IAAA;IACrB,sBAAsB,IAAA;IACtB,qBAAqB,IAAA;IACrB,sBAAsB,IAAA;IACtB,mBAAmB,IAAA;IACnB,wBAAwB,IAAA;IACxB,yBAAyB,IAAA;CAC1B;AAED,qBAAa,eAAgB,SAAQ,KAAK;IAC5B,OAAO,CAAC,GAAG;IAAa,OAAO,CAAC,GAAG;gBAA3B,GAAG,EAAE,SAAS,EAAU,GAAG,EAAE,KAAK;IAM/C,GAAG,EAAE,GAAG,CAAC;CACjB;AA6BD,qBAAa,yBAA0B,SAAQ,KAAK;CAAG"}
package/dist/errors.js CHANGED
@@ -10,8 +10,9 @@ export var ErrorType;
10
10
  ErrorType[ErrorType["ErrorExceededMaxLength"] = 4] = "ErrorExceededMaxLength";
11
11
  ErrorType[ErrorType["ErrorTooFewParameters"] = 5] = "ErrorTooFewParameters";
12
12
  ErrorType[ErrorType["ErrorTooManyParameters"] = 6] = "ErrorTooManyParameters";
13
- ErrorType[ErrorType["ErrorUnrecognizedContext"] = 7] = "ErrorUnrecognizedContext";
14
- ErrorType[ErrorType["ErrorUnrecognizedFunction"] = 8] = "ErrorUnrecognizedFunction";
13
+ ErrorType[ErrorType["ErrorEvenParameters"] = 7] = "ErrorEvenParameters";
14
+ ErrorType[ErrorType["ErrorUnrecognizedContext"] = 8] = "ErrorUnrecognizedContext";
15
+ ErrorType[ErrorType["ErrorUnrecognizedFunction"] = 9] = "ErrorUnrecognizedFunction";
15
16
  })(ErrorType || (ErrorType = {}));
16
17
  export class ExpressionError extends Error {
17
18
  constructor(typ, tok) {
@@ -37,6 +38,8 @@ function errorDescription(typ) {
37
38
  return "Too few parameters supplied";
38
39
  case ErrorType.ErrorTooManyParameters:
39
40
  return "Too many parameters supplied";
41
+ case ErrorType.ErrorEvenParameters:
42
+ return "Even number of parameters supplied, requires an odd number of parameters";
40
43
  case ErrorType.ErrorUnrecognizedContext:
41
44
  return "Unrecognized named-value";
42
45
  case ErrorType.ErrorUnrecognizedFunction:
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAC,MAAM,YAAY,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,2EAAqB,CAAA;IACrB,uFAA2B,CAAA;IAC3B,6FAA8B,CAAA;IAE9B,2EAAqB,CAAA;IACrB,6EAAsB,CAAA;IACtB,2EAAqB,CAAA;IACrB,6EAAsB,CAAA;IACtB,iFAAwB,CAAA;IACxB,mFAAyB,CAAA;AAC3B,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAoB,GAAc,EAAU,GAAU;QACpD,KAAK,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QADvC,QAAG,GAAH,GAAG,CAAW;QAAU,QAAG,GAAH,GAAG,CAAO;QAGpD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;CAGF;AAED,SAAS,gBAAgB,CAAC,GAAc;IACtC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS,CAAC,8BAA8B;YAC3C,OAAO,8BAA8B,CAAC;QACxC,KAAK,SAAS,CAAC,qBAAqB;YAClC,OAAO,mBAAmB,CAAC;QAC7B,KAAK,SAAS,CAAC,2BAA2B;YACxC,OAAO,0BAA0B,CAAC;QACpC,KAAK,SAAS,CAAC,qBAAqB;YAClC,OAAO,iCAAiC,gBAAgB,EAAE,CAAC;QAC7D,KAAK,SAAS,CAAC,sBAAsB;YACnC,OAAO,kCAAkC,qBAAqB,EAAE,CAAC;QACnE,KAAK,SAAS,CAAC,qBAAqB;YAClC,OAAO,6BAA6B,CAAC;QACvC,KAAK,SAAS,CAAC,sBAAsB;YACnC,OAAO,8BAA8B,CAAC;QACxC,KAAK,SAAS,CAAC,wBAAwB;YACrC,OAAO,0BAA0B,CAAC;QACpC,KAAK,SAAS,CAAC,yBAAyB;YACtC,OAAO,uBAAuB,CAAC;QACjC,SAAS,2BAA2B;YAClC,OAAO,eAAe,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;CAAG"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAC,MAAM,YAAY,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C,MAAM,CAAN,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,2EAAqB,CAAA;IACrB,uFAA2B,CAAA;IAC3B,6FAA8B,CAAA;IAE9B,2EAAqB,CAAA;IACrB,6EAAsB,CAAA;IACtB,2EAAqB,CAAA;IACrB,6EAAsB,CAAA;IACtB,uEAAmB,CAAA;IACnB,iFAAwB,CAAA;IACxB,mFAAyB,CAAA;AAC3B,CAAC,EAZW,SAAS,KAAT,SAAS,QAYpB;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAoB,GAAc,EAAU,GAAU;QACpD,KAAK,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QADvC,QAAG,GAAH,GAAG,CAAW;QAAU,QAAG,GAAH,GAAG,CAAO;QAGpD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;CAGF;AAED,SAAS,gBAAgB,CAAC,GAAc;IACtC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS,CAAC,8BAA8B;YAC3C,OAAO,8BAA8B,CAAC;QACxC,KAAK,SAAS,CAAC,qBAAqB;YAClC,OAAO,mBAAmB,CAAC;QAC7B,KAAK,SAAS,CAAC,2BAA2B;YACxC,OAAO,0BAA0B,CAAC;QACpC,KAAK,SAAS,CAAC,qBAAqB;YAClC,OAAO,iCAAiC,gBAAgB,EAAE,CAAC;QAC7D,KAAK,SAAS,CAAC,sBAAsB;YACnC,OAAO,kCAAkC,qBAAqB,EAAE,CAAC;QACnE,KAAK,SAAS,CAAC,qBAAqB;YAClC,OAAO,6BAA6B,CAAC;QACvC,KAAK,SAAS,CAAC,sBAAsB;YACnC,OAAO,8BAA8B,CAAC;QACxC,KAAK,SAAS,CAAC,mBAAmB;YAChC,OAAO,0EAA0E,CAAC;QACpF,KAAK,SAAS,CAAC,wBAAwB;YACrC,OAAO,0BAA0B,CAAC;QACpC,KAAK,SAAS,CAAC,yBAAyB;YACtC,OAAO,uBAAuB,CAAC;QACjC,SAAS,2BAA2B;YAClC,OAAO,eAAe,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;CAAG"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Experimental feature flags.
3
+ *
4
+ * Individual feature flags take precedence over `all`.
5
+ * Example: { all: true, missingInputsQuickfix: false } enables all
6
+ * experimental features EXCEPT missingInputsQuickfix.
7
+ *
8
+ * When a feature graduates to stable, its flag becomes a no-op
9
+ * (the feature will be enabled regardless of the configuration value).
10
+ */
11
+ export interface ExperimentalFeatures {
12
+ /**
13
+ * Enable all experimental features.
14
+ * Individual feature flags take precedence over this setting.
15
+ * @default false
16
+ */
17
+ all?: boolean;
18
+ /**
19
+ * Enable quickfix code action for missing required action inputs.
20
+ * @default false
21
+ */
22
+ missingInputsQuickfix?: boolean;
23
+ /**
24
+ * Warn when block scalars (| or >) use implicit clip chomping,
25
+ * which adds a trailing newline that may be unintentional.
26
+ * @default false
27
+ */
28
+ blockScalarChompingWarning?: boolean;
29
+ /**
30
+ * Enable action scaffolding snippets in action.yml files.
31
+ * Offers Node.js, Composite, and Docker action scaffolds.
32
+ * @default false
33
+ */
34
+ actionScaffoldingSnippets?: boolean;
35
+ /**
36
+ * Enable the case() function in expressions.
37
+ * @default false
38
+ */
39
+ allowCaseFunction?: boolean;
40
+ }
41
+ /**
42
+ * Keys of ExperimentalFeatures that represent actual features (excludes 'all')
43
+ */
44
+ export type ExperimentalFeatureKey = Exclude<keyof ExperimentalFeatures, "all">;
45
+ export declare class FeatureFlags {
46
+ private readonly features;
47
+ constructor(features?: ExperimentalFeatures);
48
+ /**
49
+ * Check if an experimental feature is enabled.
50
+ *
51
+ * Resolution order:
52
+ * 1. Explicit feature flag (if set)
53
+ * 2. `all` flag (if set)
54
+ * 3. false (default)
55
+ */
56
+ isEnabled(feature: ExperimentalFeatureKey): boolean;
57
+ /**
58
+ * Returns list of all enabled experimental features.
59
+ */
60
+ getEnabledFeatures(): ExperimentalFeatureKey[];
61
+ }
62
+ //# sourceMappingURL=features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,MAAM,oBAAoB,EAAE,KAAK,CAAC,CAAC;AAahF,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;gBAEpC,QAAQ,CAAC,EAAE,oBAAoB;IAI3C;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO;IAQnD;;OAEG;IACH,kBAAkB,IAAI,sBAAsB,EAAE;CAG/C"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * All known experimental feature keys.
3
+ * This list must be kept in sync with the ExperimentalFeatures interface.
4
+ */
5
+ const allFeatureKeys = [
6
+ "missingInputsQuickfix",
7
+ "blockScalarChompingWarning",
8
+ "actionScaffoldingSnippets",
9
+ "allowCaseFunction"
10
+ ];
11
+ export class FeatureFlags {
12
+ constructor(features) {
13
+ this.features = features ?? {};
14
+ }
15
+ /**
16
+ * Check if an experimental feature is enabled.
17
+ *
18
+ * Resolution order:
19
+ * 1. Explicit feature flag (if set)
20
+ * 2. `all` flag (if set)
21
+ * 3. false (default)
22
+ */
23
+ isEnabled(feature) {
24
+ const explicit = this.features[feature];
25
+ if (explicit !== undefined) {
26
+ return explicit;
27
+ }
28
+ return this.features.all ?? false;
29
+ }
30
+ /**
31
+ * Returns list of all enabled experimental features.
32
+ */
33
+ getEnabledFeatures() {
34
+ return allFeatureKeys.filter(key => this.isEnabled(key));
35
+ }
36
+ }
37
+ //# sourceMappingURL=features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"AAkDA;;;GAGG;AACH,MAAM,cAAc,GAA6B;IAC/C,uBAAuB;IACvB,4BAA4B;IAC5B,2BAA2B;IAC3B,mBAAmB;CACpB,CAAC;AAEF,MAAM,OAAO,YAAY;IAGvB,YAAY,QAA+B;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,OAA+B;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import { FunctionDefinition } from "./info.js";
2
+ export declare const caseFunc: FunctionDefinition;
3
+ //# sourceMappingURL=case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case.d.ts","sourceRoot":"","sources":["../../src/funcs/case.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAE7C,eAAO,MAAM,QAAQ,EAAE,kBAyBtB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Kind } from "../data/index.js";
2
+ export const caseFunc = {
3
+ name: "case",
4
+ description: "`case( pred1, val1, pred2, val2, ..., default )`\n\nEvaluates predicates in order and returns the value corresponding to the first predicate that evaluates to `true`. If no predicate matches, it returns the last argument as the default value.",
5
+ minArgs: 3,
6
+ maxArgs: Number.MAX_SAFE_INTEGER,
7
+ call: (...args) => {
8
+ // Evaluate predicate-result pairs
9
+ for (let i = 0; i < args.length - 1; i += 2) {
10
+ const predicate = args[i];
11
+ // Predicate must be a boolean
12
+ if (predicate.kind !== Kind.Boolean) {
13
+ throw new Error("case predicate must evaluate to a boolean value");
14
+ }
15
+ // If predicate is true, return the corresponding result
16
+ if (predicate.value) {
17
+ return args[i + 1];
18
+ }
19
+ }
20
+ // No predicate matched, return default (last argument)
21
+ return args[args.length - 1];
22
+ }
23
+ };
24
+ //# sourceMappingURL=case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case.js","sourceRoot":"","sources":["../../src/funcs/case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAGtD,MAAM,CAAC,MAAM,QAAQ,GAAuB;IAC1C,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,oPAAoP;IACtP,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,MAAM,CAAC,gBAAgB;IAChC,IAAI,EAAE,CAAC,GAAG,IAAsB,EAAkB,EAAE;QAClD,kCAAkC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1B,8BAA8B;YAC9B,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YAED,wDAAwD;YACxD,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"funcs.d.ts","sourceRoot":"","sources":["../src/funcs.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,kBAAkB,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAIjE,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC,MAAM,MAAM,YAAY,GAAG;IACzB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAQnE,CAAC;AAKF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAyB1F"}
1
+ {"version":3,"file":"funcs.d.ts","sourceRoot":"","sources":["../src/funcs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,kBAAkB,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAIjE,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC,MAAM,MAAM,YAAY,GAAG;IACzB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CASnE,CAAC;AAKF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QA8B1F"}
package/dist/funcs.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { ErrorType, ExpressionError } from "./errors.js";
2
+ import { caseFunc } from "./funcs/case.js";
2
3
  import { contains } from "./funcs/contains.js";
3
4
  import { endswith } from "./funcs/endswith.js";
4
5
  import { format } from "./funcs/format.js";
@@ -7,6 +8,7 @@ import { join } from "./funcs/join.js";
7
8
  import { startswith } from "./funcs/startswith.js";
8
9
  import { tojson } from "./funcs/tojson.js";
9
10
  export const wellKnownFunctions = {
11
+ case: caseFunc,
10
12
  contains: contains,
11
13
  endswith: endswith,
12
14
  format: format,
@@ -39,5 +41,9 @@ export function validateFunction(context, identifier, argCount) {
39
41
  if (argCount > f.maxArgs) {
40
42
  throw new ExpressionError(ErrorType.ErrorTooManyParameters, identifier);
41
43
  }
44
+ // case function requires an odd number of arguments
45
+ if (name === "case" && argCount % 2 === 0) {
46
+ throw new ExpressionError(ErrorType.ErrorEvenParameters, identifier);
47
+ }
42
48
  }
43
49
  //# sourceMappingURL=funcs.js.map
package/dist/funcs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"funcs.js","sourceRoot":"","sources":["../src/funcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC;AACvD,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AASzC,MAAM,CAAC,MAAM,kBAAkB,GAAyC;IACtE,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,gFAAgF;AAChF,kFAAkF;AAClF,wBAAwB;AACxB,MAAM,UAAU,gBAAgB,CAAC,OAAqB,EAAE,UAAiB,EAAE,QAAgB;IACzF,kDAAkD;IAClD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAE7C,IAAI,CAA2B,CAAC;IAChC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBAClC,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;YAC7E,CAAC;YAED,iDAAiD;YACjD,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"funcs.js","sourceRoot":"","sources":["../src/funcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC;AACvD,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AASzC,MAAM,CAAC,MAAM,kBAAkB,GAAyC;IACtE,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,gFAAgF;AAChF,kFAAkF;AAClF,wBAAwB;AACxB,MAAM,UAAU,gBAAgB,CAAC,OAAqB,EAAE,UAAiB,EAAE,QAAgB;IACzF,kDAAkD;IAClD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAE7C,IAAI,CAA2B,CAAC;IAChC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBAClC,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;YAC7E,CAAC;YAED,iDAAiD;YACjD,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;IAC1E,CAAC;IAED,oDAAoD;IACpD,IAAI,IAAI,KAAK,MAAM,IAAI,QAAQ,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { DescriptionDictionary, DescriptionPair, isDescriptionDictionary } from
4
4
  export * as data from "./data/index.js";
5
5
  export { ExpressionError, ExpressionEvaluationError } from "./errors.js";
6
6
  export { Evaluator } from "./evaluator.js";
7
+ export { ExperimentalFeatureKey, ExperimentalFeatures, FeatureFlags } from "./features.js";
7
8
  export { wellKnownFunctions } from "./funcs.js";
8
9
  export { Lexer, Result } from "./lexer.js";
9
10
  export { Parser } from "./parser.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAC,QAAQ,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAC,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,EAAC,MAAM,uCAAuC,CAAC;AACtH,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,eAAe,EAAE,yBAAyB,EAAC,MAAM,aAAa,CAAC;AACvE,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAC,QAAQ,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAC,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,EAAC,MAAM,uCAAuC,CAAC;AACtH,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,eAAe,EAAE,yBAAyB,EAAC,MAAM,aAAa,CAAC;AACvE,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,sBAAsB,EAAE,oBAAoB,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACzF,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export { DescriptionDictionary, isDescriptionDictionary } from "./completion/des
4
4
  export * as data from "./data/index.js";
5
5
  export { ExpressionError, ExpressionEvaluationError } from "./errors.js";
6
6
  export { Evaluator } from "./evaluator.js";
7
+ export { FeatureFlags } from "./features.js";
7
8
  export { wellKnownFunctions } from "./funcs.js";
8
9
  export { Lexer } from "./lexer.js";
9
10
  export { Parser } from "./parser.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAC,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAC,qBAAqB,EAAmB,uBAAuB,EAAC,MAAM,uCAAuC,CAAC;AACtH,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,eAAe,EAAE,yBAAyB,EAAC,MAAM,aAAa,CAAC;AACvE,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,KAAK,EAAS,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAC,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAC,qBAAqB,EAAmB,uBAAuB,EAAC,MAAM,uCAAuC,CAAC;AACtH,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,eAAe,EAAE,yBAAyB,EAAC,MAAM,aAAa,CAAC;AACvE,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAA+C,YAAY,EAAC,MAAM,eAAe,CAAC;AACzF,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,KAAK,EAAS,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"root":["../src/ast.ts","../src/completion.ts","../src/errors.ts","../src/evaluator.ts","../src/filtered_array.ts","../src/funcs.ts","../src/idxHelper.ts","../src/index.ts","../src/lexer.ts","../src/parser.ts","../src/result.ts","../src/completion/descriptionDictionary.ts","../src/data/array.ts","../src/data/boolean.ts","../src/data/dictionary.ts","../src/data/expressiondata.ts","../src/data/index.ts","../src/data/null.ts","../src/data/number.ts","../src/data/replacer.ts","../src/data/reviver.ts","../src/data/string.ts","../src/funcs/contains.ts","../src/funcs/endswith.ts","../src/funcs/format.ts","../src/funcs/fromjson.ts","../src/funcs/info.ts","../src/funcs/join.ts","../src/funcs/startswith.ts","../src/funcs/tojson.ts"],"version":"5.8.3"}
1
+ {"root":["../src/ast.ts","../src/completion.ts","../src/errors.ts","../src/evaluator.ts","../src/features.ts","../src/filtered_array.ts","../src/funcs.ts","../src/idxHelper.ts","../src/index.ts","../src/lexer.ts","../src/parser.ts","../src/result.ts","../src/completion/descriptionDictionary.ts","../src/data/array.ts","../src/data/boolean.ts","../src/data/dictionary.ts","../src/data/expressiondata.ts","../src/data/index.ts","../src/data/null.ts","../src/data/number.ts","../src/data/replacer.ts","../src/data/reviver.ts","../src/data/string.ts","../src/funcs/case.ts","../src/funcs/contains.ts","../src/funcs/endswith.ts","../src/funcs/format.ts","../src/funcs/fromjson.ts","../src/funcs/info.ts","../src/funcs/join.ts","../src/funcs/startswith.ts","../src/funcs/tojson.ts"],"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actions/expressions",
3
- "version": "0.3.34",
3
+ "version": "0.3.36",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/index.ts",
@@ -62,5 +62,5 @@
62
62
  "ts-jest": "^29.0.3",
63
63
  "typescript": "^5.8.3"
64
64
  },
65
- "gitHead": "71ff7b49c3c46b95d7d1ee6c480f83da3f892a08"
65
+ "gitHead": "67dd4fbd61b5077780774c13cf834a5a39286a9f"
66
66
  }