@actions/expressions 0.3.35 → 0.3.37
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/completion.d.ts +3 -1
- package/dist/completion.d.ts.map +1 -1
- package/dist/completion.js +10 -3
- package/dist/completion.js.map +1 -1
- package/dist/errors.d.ts +3 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -2
- package/dist/errors.js.map +1 -1
- package/dist/features.d.ts +5 -0
- package/dist/features.d.ts.map +1 -1
- package/dist/features.js +2 -1
- package/dist/features.js.map +1 -1
- package/dist/funcs/case.d.ts +3 -0
- package/dist/funcs/case.d.ts.map +1 -0
- package/dist/funcs/case.js +24 -0
- package/dist/funcs/case.js.map +1 -0
- package/dist/funcs.d.ts.map +1 -1
- package/dist/funcs.js +6 -0
- package/dist/funcs.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
package/dist/completion.d.ts
CHANGED
|
@@ -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
|
|
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
|
package/dist/completion.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAe,MAAM,sBAAsB,CAAC;
|
|
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"}
|
package/dist/completion.js
CHANGED
|
@@ -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,
|
package/dist/completion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAC,KAAK,EAAS,SAAS,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAQnC
|
|
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
|
-
|
|
13
|
-
|
|
12
|
+
ErrorEvenParameters = 7,
|
|
13
|
+
ErrorUnrecognizedContext = 8,
|
|
14
|
+
ErrorUnrecognizedFunction = 9
|
|
14
15
|
}
|
|
15
16
|
export declare class ExpressionError extends Error {
|
|
16
17
|
private typ;
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -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;
|
|
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["
|
|
14
|
-
ErrorType[ErrorType["
|
|
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:
|
package/dist/errors.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/features.d.ts
CHANGED
|
@@ -32,6 +32,11 @@ export interface ExperimentalFeatures {
|
|
|
32
32
|
* @default false
|
|
33
33
|
*/
|
|
34
34
|
actionScaffoldingSnippets?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Enable the case() function in expressions.
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
allowCaseFunction?: boolean;
|
|
35
40
|
}
|
|
36
41
|
/**
|
|
37
42
|
* Keys of ExperimentalFeatures that represent actual features (excludes 'all')
|
package/dist/features.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
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"}
|
package/dist/features.js
CHANGED
package/dist/features.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.js","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"
|
|
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 @@
|
|
|
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"}
|
package/dist/funcs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funcs.d.ts","sourceRoot":"","sources":["../src/funcs.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
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/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.
|
|
3
|
+
"version": "0.3.37",
|
|
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": "
|
|
65
|
+
"gitHead": "2a203ec7425872a205972fca00460edea09f0b6b"
|
|
66
66
|
}
|