node-llama-cpp 2.6.3 → 2.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.
- package/README.md +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +1 -0
- package/dist/cli/commands/ChatCommand.js +24 -7
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/llamaEvaluator/LlamaChatSession.d.ts +52 -41
- package/dist/llamaEvaluator/LlamaChatSession.js +24 -3
- package/dist/llamaEvaluator/LlamaChatSession.js.map +1 -1
- package/dist/llamaEvaluator/LlamaGrammar.d.ts +2 -0
- package/dist/llamaEvaluator/LlamaGrammar.js +5 -0
- package/dist/llamaEvaluator/LlamaGrammar.js.map +1 -1
- package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.d.ts +7 -0
- package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js +21 -0
- package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js.map +1 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +5 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +10 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -0
- package/dist/utils/gbnfJson/GbnfTerminal.d.ts +7 -0
- package/dist/utils/gbnfJson/GbnfTerminal.js +17 -0
- package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfArray.d.ts +7 -0
- package/dist/utils/gbnfJson/terminals/GbnfArray.js +29 -0
- package/dist/utils/gbnfJson/terminals/GbnfArray.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.d.ts +6 -0
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.js +16 -0
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.d.ts +7 -0
- package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.js +17 -0
- package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.d.ts +6 -0
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.js +16 -0
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfNull.d.ts +5 -0
- package/dist/utils/gbnfJson/terminals/GbnfNull.js +11 -0
- package/dist/utils/gbnfJson/terminals/GbnfNull.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumber.d.ts +9 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumber.js +21 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumber.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.d.ts +7 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js +15 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfObjectMap.d.ts +17 -0
- package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js +25 -0
- package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfOr.d.ts +8 -0
- package/dist/utils/gbnfJson/terminals/GbnfOr.js +30 -0
- package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfString.d.ts +5 -0
- package/dist/utils/gbnfJson/terminals/GbnfString.js +15 -0
- package/dist/utils/gbnfJson/terminals/GbnfString.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfStringValue.d.ts +6 -0
- package/dist/utils/gbnfJson/terminals/GbnfStringValue.js +21 -0
- package/dist/utils/gbnfJson/terminals/GbnfStringValue.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.d.ts +9 -0
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js +20 -0
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/gbnfConsts.d.ts +14 -0
- package/dist/utils/gbnfJson/terminals/gbnfConsts.js +15 -0
- package/dist/utils/gbnfJson/terminals/gbnfConsts.js.map +1 -0
- package/dist/utils/gbnfJson/types.d.ts +41 -0
- package/dist/utils/gbnfJson/types.js +21 -0
- package/dist/utils/gbnfJson/types.js.map +1 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.d.ts +4 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js +48 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.d.ts +5 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.js +16 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.js.map +1 -0
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.d.ts +7 -0
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js +122 -0
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -0
- package/dist/utils/getGbnfGrammarForGbnfJsonSchema.d.ts +2 -0
- package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js +23 -0
- package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js.map +1 -0
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/mac-arm64/llama-addon.node +0 -0
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/package.json +9 -4
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfOr } from "./GbnfOr.js";
|
|
3
|
+
import { GbnfGrammar } from "./GbnfGrammar.js";
|
|
4
|
+
import { reservedRuleNames } from "./gbnfConsts.js";
|
|
5
|
+
export class GbnfBoolean extends GbnfTerminal {
|
|
6
|
+
getGrammar(grammarGenerator) {
|
|
7
|
+
return new GbnfOr([
|
|
8
|
+
new GbnfGrammar('"true"'),
|
|
9
|
+
new GbnfGrammar('"false"')
|
|
10
|
+
]).getGrammar(grammarGenerator);
|
|
11
|
+
}
|
|
12
|
+
getRuleName() {
|
|
13
|
+
return reservedRuleNames.boolean;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=GbnfBoolean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfBoolean.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfBoolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAGlD,MAAM,OAAO,WAAY,SAAQ,YAAY;IACzC,UAAU,CAAC,gBAAsC;QAC7C,OAAO,IAAI,MAAM,CAAC;YACd,IAAI,WAAW,CAAC,QAAQ,CAAC;YACzB,IAAI,WAAW,CAAC,SAAS,CAAC;SAC7B,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAEQ,WAAW;QAChB,OAAO,iBAAiB,CAAC,OAAO,CAAC;IACrC,CAAC;CACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
export class GbnfBooleanValue extends GbnfTerminal {
|
|
3
|
+
value;
|
|
4
|
+
constructor(value) {
|
|
5
|
+
super();
|
|
6
|
+
this.value = value;
|
|
7
|
+
}
|
|
8
|
+
getGrammar() {
|
|
9
|
+
if (this.value)
|
|
10
|
+
return '"true"';
|
|
11
|
+
return '"false"';
|
|
12
|
+
}
|
|
13
|
+
resolve() {
|
|
14
|
+
return this.getGrammar();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=GbnfBooleanValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfBooleanValue.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfBooleanValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAGhD,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAC9B,KAAK,CAAU;IAE/B,YAAmB,KAAc;QAC7B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,KAAK;YACV,OAAO,QAAQ,CAAC;QAEpB,OAAO,SAAS,CAAC;IACrB,CAAC;IAEe,OAAO;QACnB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACJ"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
export class GbnfGrammar extends GbnfTerminal {
|
|
3
|
+
grammar;
|
|
4
|
+
constructor(grammar) {
|
|
5
|
+
super();
|
|
6
|
+
this.grammar = grammar;
|
|
7
|
+
}
|
|
8
|
+
getGrammar() {
|
|
9
|
+
if (this.grammar instanceof Array)
|
|
10
|
+
return this.grammar
|
|
11
|
+
.filter((item) => item !== "")
|
|
12
|
+
.join(" ");
|
|
13
|
+
return this.grammar;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=GbnfGrammar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfGrammar.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAGhD,MAAM,OAAO,WAAY,SAAQ,YAAY;IACzB,OAAO,CAAoB;IAE3C,YAAmB,OAA0B;QACzC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,OAAO,YAAY,KAAK;YAC7B,OAAO,IAAI,CAAC,OAAO;iBACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;iBAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { reservedRuleNames } from "./gbnfConsts.js";
|
|
3
|
+
export class GbnfNull extends GbnfTerminal {
|
|
4
|
+
getGrammar() {
|
|
5
|
+
return '"null"';
|
|
6
|
+
}
|
|
7
|
+
getRuleName() {
|
|
8
|
+
return reservedRuleNames.null;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=GbnfNull.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfNull.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAGlD,MAAM,OAAO,QAAS,SAAQ,YAAY;IACtC,UAAU;QACN,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEQ,WAAW;QAChB,OAAO,iBAAiB,CAAC,IAAI,CAAC;IAClC,CAAC;CACJ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
export declare class GbnfNumber extends GbnfTerminal {
|
|
3
|
+
readonly allowFractional: boolean;
|
|
4
|
+
constructor({ allowFractional }: {
|
|
5
|
+
allowFractional: boolean;
|
|
6
|
+
});
|
|
7
|
+
getGrammar(): string;
|
|
8
|
+
getRuleName(): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { reservedRuleNames } from "./gbnfConsts.js";
|
|
3
|
+
export class GbnfNumber extends GbnfTerminal {
|
|
4
|
+
allowFractional;
|
|
5
|
+
constructor({ allowFractional = true }) {
|
|
6
|
+
super();
|
|
7
|
+
this.allowFractional = allowFractional;
|
|
8
|
+
}
|
|
9
|
+
getGrammar() {
|
|
10
|
+
const numberGrammar = '("-"? ([0-9] | [1-9] [0-9]*))';
|
|
11
|
+
if (this.allowFractional)
|
|
12
|
+
return numberGrammar + ' ("." [0-9]+)? ([eE] [-+]? [0-9]+)?';
|
|
13
|
+
return numberGrammar;
|
|
14
|
+
}
|
|
15
|
+
getRuleName() {
|
|
16
|
+
if (this.allowFractional)
|
|
17
|
+
return reservedRuleNames.number.fractional;
|
|
18
|
+
return reservedRuleNames.number.integer;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=GbnfNumber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfNumber.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAGlD,MAAM,OAAO,UAAW,SAAQ,YAAY;IACxB,eAAe,CAAU;IAEzC,YAAmB,EAAC,eAAe,GAAG,IAAI,EAA+B;QACrE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAED,UAAU;QACN,MAAM,aAAa,GAAG,+BAA+B,CAAC;QAEtD,IAAI,IAAI,CAAC,eAAe;YACpB,OAAO,aAAa,GAAG,qCAAqC,CAAC;QAEjE,OAAO,aAAa,CAAC;IACzB,CAAC;IAEQ,WAAW;QAChB,IAAI,IAAI,CAAC,eAAe;YACpB,OAAO,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC;QAE/C,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;IAC5C,CAAC;CACJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
export class GbnfNumberValue extends GbnfTerminal {
|
|
3
|
+
value;
|
|
4
|
+
constructor(value) {
|
|
5
|
+
super();
|
|
6
|
+
this.value = value;
|
|
7
|
+
}
|
|
8
|
+
getGrammar() {
|
|
9
|
+
return '"' + JSON.stringify(this.value) + '"';
|
|
10
|
+
}
|
|
11
|
+
resolve() {
|
|
12
|
+
return this.getGrammar();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=GbnfNumberValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfNumberValue.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNumberValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAGhD,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC7B,KAAK,CAAS;IAE9B,YAAmB,KAAa;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEQ,UAAU;QACf,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC;IAEe,OAAO;QACnB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfGrammarGenerator } from "../GbnfGrammarGenerator.js";
|
|
3
|
+
import { GbnfString } from "./GbnfString.js";
|
|
4
|
+
import { GbnfStringValue } from "./GbnfStringValue.js";
|
|
5
|
+
export declare class GbnfObjectMap extends GbnfTerminal {
|
|
6
|
+
readonly fields: Array<Readonly<{
|
|
7
|
+
key: GbnfString | GbnfStringValue;
|
|
8
|
+
value: GbnfTerminal;
|
|
9
|
+
required: true;
|
|
10
|
+
}>>;
|
|
11
|
+
constructor(fields: Array<Readonly<{
|
|
12
|
+
key: GbnfString | GbnfStringValue;
|
|
13
|
+
value: GbnfTerminal;
|
|
14
|
+
required: true;
|
|
15
|
+
}>>);
|
|
16
|
+
getGrammar(grammarGenerator: GbnfGrammarGenerator): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfWhitespace } from "./GbnfWhitespace.js";
|
|
3
|
+
import { GbnfGrammar } from "./GbnfGrammar.js";
|
|
4
|
+
export class GbnfObjectMap extends GbnfTerminal {
|
|
5
|
+
fields;
|
|
6
|
+
constructor(fields) {
|
|
7
|
+
super();
|
|
8
|
+
this.fields = fields;
|
|
9
|
+
}
|
|
10
|
+
getGrammar(grammarGenerator) {
|
|
11
|
+
const whitespaceRuleName = new GbnfWhitespace().resolve(grammarGenerator);
|
|
12
|
+
return new GbnfGrammar([
|
|
13
|
+
'"{"', whitespaceRuleName,
|
|
14
|
+
...this.fields.map(({ key, value }, index) => {
|
|
15
|
+
return new GbnfGrammar([
|
|
16
|
+
key.getGrammar(), '":"', "[ ]?", value.resolve(grammarGenerator),
|
|
17
|
+
index < this.fields.length - 1 ? '","' : "",
|
|
18
|
+
whitespaceRuleName
|
|
19
|
+
]).getGrammar();
|
|
20
|
+
}),
|
|
21
|
+
'"}"'
|
|
22
|
+
]).getGrammar();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=GbnfObjectMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfObjectMap.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfObjectMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAIhD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC3B,MAAM,CAA8F;IAEpH,YAAmB,MAAmG;QAClH,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,gBAAsC;QAC7C,MAAM,kBAAkB,GAAG,IAAI,cAAc,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAE1E,OAAO,IAAI,WAAW,CAAC;YACnB,KAAK,EAAE,kBAAkB;YACzB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAE,KAAK,EAAE,EAAE;gBACvC,OAAO,IAAI,WAAW,CAAC;oBACnB,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;oBAChE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBAC3C,kBAAkB;iBACrB,CAAC,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC,CAAC;YACF,KAAK;SACR,CAAC,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;CACJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfGrammarGenerator } from "../GbnfGrammarGenerator.js";
|
|
3
|
+
export declare class GbnfOr extends GbnfTerminal {
|
|
4
|
+
readonly values: readonly GbnfTerminal[];
|
|
5
|
+
constructor(values: readonly GbnfTerminal[]);
|
|
6
|
+
getGrammar(grammarGenerator: GbnfGrammarGenerator): string;
|
|
7
|
+
resolve(grammarGenerator: GbnfGrammarGenerator): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { grammarNoValue } from "./gbnfConsts.js";
|
|
3
|
+
export class GbnfOr extends GbnfTerminal {
|
|
4
|
+
values;
|
|
5
|
+
constructor(values) {
|
|
6
|
+
super();
|
|
7
|
+
this.values = values;
|
|
8
|
+
}
|
|
9
|
+
getGrammar(grammarGenerator) {
|
|
10
|
+
const mappedValues = this.values
|
|
11
|
+
.map(v => v.resolve(grammarGenerator))
|
|
12
|
+
.filter(value => value !== "" && value !== grammarNoValue);
|
|
13
|
+
if (mappedValues.length === 0)
|
|
14
|
+
return grammarNoValue;
|
|
15
|
+
else if (mappedValues.length === 1)
|
|
16
|
+
return mappedValues[0];
|
|
17
|
+
return "( " + mappedValues.join(" | ") + " )";
|
|
18
|
+
}
|
|
19
|
+
resolve(grammarGenerator) {
|
|
20
|
+
const mappedValues = this.values
|
|
21
|
+
.map(v => v.resolve(grammarGenerator))
|
|
22
|
+
.filter(value => value !== "" && value !== grammarNoValue);
|
|
23
|
+
if (mappedValues.length === 0)
|
|
24
|
+
return grammarNoValue;
|
|
25
|
+
else if (mappedValues.length === 1)
|
|
26
|
+
return mappedValues[0];
|
|
27
|
+
return super.resolve(grammarGenerator);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=GbnfOr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfOr.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfOr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAG/C,MAAM,OAAO,MAAO,SAAQ,YAAY;IACpB,MAAM,CAA0B;IAEhD,YAAmB,MAA+B;QAC9C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,gBAAsC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACrC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAE/D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAE3B,OAAO,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClD,CAAC;IAEQ,OAAO,CAAC,gBAAsC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACrC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAE/D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;CACJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { reservedRuleNames } from "./gbnfConsts.js";
|
|
3
|
+
export class GbnfString extends GbnfTerminal {
|
|
4
|
+
getGrammar() {
|
|
5
|
+
return '"\\"" ( ' +
|
|
6
|
+
'[^"\\\\]' +
|
|
7
|
+
" | " +
|
|
8
|
+
'"\\\\" (["\\\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F])' + // escape sequences
|
|
9
|
+
')* "\\""';
|
|
10
|
+
}
|
|
11
|
+
getRuleName() {
|
|
12
|
+
return reservedRuleNames.string;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=GbnfString.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfString.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAGlD,MAAM,OAAO,UAAW,SAAQ,YAAY;IACxC,UAAU;QACN,OAAO,UAAU;YACb,UAAU;YACV,KAAK;YACL,8EAA8E,GAAG,mBAAmB;YACpG,UAAU,CAAC;IACnB,CAAC;IAEQ,WAAW;QAChB,OAAO,iBAAiB,CAAC,MAAM,CAAC;IACpC,CAAC;CACJ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
export class GbnfStringValue extends GbnfTerminal {
|
|
3
|
+
value;
|
|
4
|
+
constructor(value) {
|
|
5
|
+
super();
|
|
6
|
+
this.value = value;
|
|
7
|
+
}
|
|
8
|
+
getGrammar() {
|
|
9
|
+
return [
|
|
10
|
+
"\"",
|
|
11
|
+
this.value
|
|
12
|
+
.replaceAll("\\", "\\\\")
|
|
13
|
+
.replaceAll("\t", "\\t")
|
|
14
|
+
.replaceAll("\r", "\\r")
|
|
15
|
+
.replaceAll("\n", "\\n")
|
|
16
|
+
.replaceAll('"', "\\\\" + '\\"'),
|
|
17
|
+
"\""
|
|
18
|
+
].join("");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=GbnfStringValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfStringValue.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfStringValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAGhD,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC7B,KAAK,CAAS;IAE9B,YAAmB,KAAa;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEQ,UAAU;QACf,OAAO;YACH,IAAI;YACJ,IAAI,CAAC,KAAK;iBACL,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;iBACxB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;iBACvB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;iBACvB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;iBACvB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;YACpC,IAAI;SACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;CACJ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
export declare class GbnfWhitespace extends GbnfTerminal {
|
|
3
|
+
readonly newLinesAllowed: boolean;
|
|
4
|
+
constructor({ newLinesAllowed }?: {
|
|
5
|
+
newLinesAllowed?: boolean;
|
|
6
|
+
});
|
|
7
|
+
getGrammar(): string;
|
|
8
|
+
getRuleName(): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { reservedRuleNames } from "./gbnfConsts.js";
|
|
3
|
+
export class GbnfWhitespace extends GbnfTerminal {
|
|
4
|
+
newLinesAllowed;
|
|
5
|
+
constructor({ newLinesAllowed = true } = {}) {
|
|
6
|
+
super();
|
|
7
|
+
this.newLinesAllowed = newLinesAllowed;
|
|
8
|
+
}
|
|
9
|
+
getGrammar() {
|
|
10
|
+
if (this.newLinesAllowed)
|
|
11
|
+
return "[\\n]? [ \\t]* [\\n]?";
|
|
12
|
+
return "[ \\t]*";
|
|
13
|
+
}
|
|
14
|
+
getRuleName() {
|
|
15
|
+
if (this.newLinesAllowed)
|
|
16
|
+
return reservedRuleNames.whitespace.withNewLines;
|
|
17
|
+
return reservedRuleNames.whitespace.withoutNewLines;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=GbnfWhitespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfWhitespace.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfWhitespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAGlD,MAAM,OAAO,cAAe,SAAQ,YAAY;IAC5B,eAAe,CAAU;IAEzC,YAAmB,EAAC,eAAe,GAAG,IAAI,KAAmC,EAAE;QAC3E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,eAAe;YACpB,OAAO,uBAAuB,CAAC;QAEnC,OAAO,SAAS,CAAC;IACrB,CAAC;IAEQ,WAAW;QAChB,IAAI,IAAI,CAAC,eAAe;YACpB,OAAO,iBAAiB,CAAC,UAAU,CAAC,YAAY,CAAC;QAErD,OAAO,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC;IACxD,CAAC;CACJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const grammarNoValue = "\"\"";
|
|
2
|
+
export declare const reservedRuleNames: {
|
|
3
|
+
readonly null: "null-rule";
|
|
4
|
+
readonly boolean: "boolean-rule";
|
|
5
|
+
readonly number: {
|
|
6
|
+
readonly fractional: "fractional-number-rule";
|
|
7
|
+
readonly integer: "integer-number-rule";
|
|
8
|
+
};
|
|
9
|
+
readonly string: "string-rule";
|
|
10
|
+
readonly whitespace: {
|
|
11
|
+
readonly withNewLines: "whitespace-new-lines-rule";
|
|
12
|
+
readonly withoutNewLines: "whitespace-no-new-lines-rule";
|
|
13
|
+
};
|
|
14
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const grammarNoValue = '""';
|
|
2
|
+
export const reservedRuleNames = {
|
|
3
|
+
null: "null-rule",
|
|
4
|
+
boolean: "boolean-rule",
|
|
5
|
+
number: {
|
|
6
|
+
fractional: "fractional-number-rule",
|
|
7
|
+
integer: "integer-number-rule"
|
|
8
|
+
},
|
|
9
|
+
string: "string-rule",
|
|
10
|
+
whitespace: {
|
|
11
|
+
withNewLines: "whitespace-new-lines-rule",
|
|
12
|
+
withoutNewLines: "whitespace-no-new-lines-rule"
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=gbnfConsts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gbnfConsts.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/gbnfConsts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE;QACJ,UAAU,EAAE,wBAAwB;QACpC,OAAO,EAAE,qBAAqB;KACjC;IACD,MAAM,EAAE,aAAa;IACrB,UAAU,EAAE;QACR,YAAY,EAAE,2BAA2B;QACzC,eAAe,EAAE,8BAA8B;KAClD;CACK,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type GbnfJsonSchemaImmutableType = "string" | "number" | "integer" | "boolean" | "null";
|
|
2
|
+
export type GbnfJsonSchema = GbnfJsonBasicSchema | GbnfJsonConstSchema | GbnfJsonEnumSchema | GbnfJsonOneOfSchema | GbnfJsonObjectSchema | GbnfJsonArraySchema;
|
|
3
|
+
export type GbnfJsonBasicSchema = {
|
|
4
|
+
type: GbnfJsonSchemaImmutableType | readonly GbnfJsonSchemaImmutableType[];
|
|
5
|
+
};
|
|
6
|
+
export type GbnfJsonConstSchema = {
|
|
7
|
+
const: string | number | boolean | null;
|
|
8
|
+
};
|
|
9
|
+
export type GbnfJsonEnumSchema = {
|
|
10
|
+
enum: readonly (string | number | boolean | null)[];
|
|
11
|
+
};
|
|
12
|
+
export type GbnfJsonOneOfSchema = {
|
|
13
|
+
oneOf: readonly GbnfJsonSchema[];
|
|
14
|
+
};
|
|
15
|
+
export type GbnfJsonObjectSchema<Keys extends string = string> = {
|
|
16
|
+
type: "object";
|
|
17
|
+
properties: Readonly<{
|
|
18
|
+
[key in Keys]: GbnfJsonSchema;
|
|
19
|
+
}>;
|
|
20
|
+
required?: readonly Keys[];
|
|
21
|
+
};
|
|
22
|
+
export type GbnfJsonArraySchema = {
|
|
23
|
+
type: "array";
|
|
24
|
+
items: GbnfJsonSchema;
|
|
25
|
+
};
|
|
26
|
+
export type GbnfJsonSchemaToType<T> = GbnfJsonSchemaToTSType<T>;
|
|
27
|
+
export type GbnfJsonSchemaToTSType<T> = T extends GbnfJsonBasicSchema ? GbnfJsonBasicSchemaToType<T["type"]> : T extends GbnfJsonConstSchema ? T["const"] : T extends GbnfJsonEnumSchema ? T["enum"][number] : T extends GbnfJsonOneOfSchema ? GbnfJsonSchemaToType<T["oneOf"][number]> : T extends GbnfJsonObjectSchema ? GbnfJsonObjectSchemaToType<T["properties"]> : T extends GbnfJsonArraySchema ? GbnfJsonSchemaToType<T["items"]>[] : never;
|
|
28
|
+
type GbnfJsonBasicSchemaToType<T> = T extends GbnfJsonSchemaImmutableType ? ImmutableTypeToType<T> : T extends GbnfJsonSchemaImmutableType[] ? ImmutableTypeToType<T[number]> : never;
|
|
29
|
+
type ImmutableTypeToType<T> = T extends "string" ? string : T extends "number" ? number : T extends "integer" ? number : T extends "boolean" ? boolean : T extends "null" ? null : never;
|
|
30
|
+
type GbnfJsonObjectSchemaToType<Props> = {
|
|
31
|
+
[P in keyof Props]: GbnfJsonSchemaToType<Props[P]>;
|
|
32
|
+
};
|
|
33
|
+
export declare function isGbnfJsonConstSchema(schema: GbnfJsonSchema): schema is GbnfJsonConstSchema;
|
|
34
|
+
export declare function isGbnfJsonEnumSchema(schema: GbnfJsonSchema): schema is GbnfJsonEnumSchema;
|
|
35
|
+
export declare function isGbnfJsonOneOfSchema(schema: GbnfJsonSchema): schema is GbnfJsonOneOfSchema;
|
|
36
|
+
export declare function isGbnfJsonObjectSchema(schema: GbnfJsonSchema): schema is GbnfJsonObjectSchema;
|
|
37
|
+
export declare function isGbnfJsonArraySchema(schema: GbnfJsonSchema): schema is GbnfJsonArraySchema;
|
|
38
|
+
export declare function isGbnfJsonBasicSchemaIncludesType<T extends GbnfJsonSchemaImmutableType>(schema: GbnfJsonBasicSchema, type: T): schema is GbnfJsonBasicSchema & {
|
|
39
|
+
type: T | (T | GbnfJsonSchemaImmutableType)[];
|
|
40
|
+
};
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function isGbnfJsonConstSchema(schema) {
|
|
2
|
+
return schema.const !== undefined;
|
|
3
|
+
}
|
|
4
|
+
export function isGbnfJsonEnumSchema(schema) {
|
|
5
|
+
return schema.enum != null;
|
|
6
|
+
}
|
|
7
|
+
export function isGbnfJsonOneOfSchema(schema) {
|
|
8
|
+
return schema.oneOf != null;
|
|
9
|
+
}
|
|
10
|
+
export function isGbnfJsonObjectSchema(schema) {
|
|
11
|
+
return schema.type === "object";
|
|
12
|
+
}
|
|
13
|
+
export function isGbnfJsonArraySchema(schema) {
|
|
14
|
+
return schema.type === "array";
|
|
15
|
+
}
|
|
16
|
+
export function isGbnfJsonBasicSchemaIncludesType(schema, type) {
|
|
17
|
+
if (schema.type instanceof Array)
|
|
18
|
+
return schema.type.includes(type);
|
|
19
|
+
return schema.type === type;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/gbnfJson/types.ts"],"names":[],"mappings":"AAqEA,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IACxD,OAAQ,MAA8B,CAAC,KAAK,KAAK,SAAS,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACvD,OAAQ,MAA6B,CAAC,IAAI,IAAI,IAAI,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IACxD,OAAQ,MAA8B,CAAC,KAAK,IAAI,IAAI,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAsB;IACzD,OAAQ,MAA+B,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IACxD,OAAQ,MAA8B,CAAC,IAAI,KAAK,OAAO,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC7C,MAA2B,EAAE,IAAO;IAEpC,IAAI,MAAM,CAAC,IAAI,YAAY,KAAK;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEtC,OAAO,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfGrammarGenerator } from "../GbnfGrammarGenerator.js";
|
|
3
|
+
import { GbnfJsonSchema } from "../types.js";
|
|
4
|
+
export declare function getGbnfJsonTerminalForGbnfJsonSchema(schema: GbnfJsonSchema, grammarGenerator: GbnfGrammarGenerator): GbnfTerminal;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { GbnfOr } from "../terminals/GbnfOr.js";
|
|
2
|
+
import { GbnfObjectMap } from "../terminals/GbnfObjectMap.js";
|
|
3
|
+
import { GbnfStringValue } from "../terminals/GbnfStringValue.js";
|
|
4
|
+
import { GbnfArray } from "../terminals/GbnfArray.js";
|
|
5
|
+
import { GbnfString } from "../terminals/GbnfString.js";
|
|
6
|
+
import { GbnfNumber } from "../terminals/GbnfNumber.js";
|
|
7
|
+
import { GbnfBoolean } from "../terminals/GbnfBoolean.js";
|
|
8
|
+
import { GbnfNull } from "../terminals/GbnfNull.js";
|
|
9
|
+
import { isGbnfJsonArraySchema, isGbnfJsonBasicSchemaIncludesType, isGbnfJsonConstSchema, isGbnfJsonEnumSchema, isGbnfJsonObjectSchema, isGbnfJsonOneOfSchema } from "../types.js";
|
|
10
|
+
import { getGbnfJsonTerminalForLiteral } from "./getGbnfJsonTerminalForLiteral.js";
|
|
11
|
+
export function getGbnfJsonTerminalForGbnfJsonSchema(schema, grammarGenerator) {
|
|
12
|
+
if (isGbnfJsonOneOfSchema(schema)) {
|
|
13
|
+
const values = schema.oneOf
|
|
14
|
+
.map((altSchema) => getGbnfJsonTerminalForGbnfJsonSchema(altSchema, grammarGenerator));
|
|
15
|
+
return new GbnfOr(values);
|
|
16
|
+
}
|
|
17
|
+
else if (isGbnfJsonConstSchema(schema)) {
|
|
18
|
+
return getGbnfJsonTerminalForLiteral(schema.const);
|
|
19
|
+
}
|
|
20
|
+
else if (isGbnfJsonEnumSchema(schema)) {
|
|
21
|
+
return new GbnfOr(schema.enum.map((item) => getGbnfJsonTerminalForLiteral(item)));
|
|
22
|
+
}
|
|
23
|
+
else if (isGbnfJsonObjectSchema(schema)) {
|
|
24
|
+
return new GbnfObjectMap(Object.entries(schema.properties).map(([propName, propSchema]) => {
|
|
25
|
+
return {
|
|
26
|
+
required: true,
|
|
27
|
+
key: new GbnfStringValue(propName),
|
|
28
|
+
value: getGbnfJsonTerminalForGbnfJsonSchema(propSchema, grammarGenerator)
|
|
29
|
+
};
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
else if (isGbnfJsonArraySchema(schema)) {
|
|
33
|
+
return new GbnfArray(getGbnfJsonTerminalForGbnfJsonSchema(schema.items, grammarGenerator));
|
|
34
|
+
}
|
|
35
|
+
const terminals = [];
|
|
36
|
+
if (isGbnfJsonBasicSchemaIncludesType(schema, "string"))
|
|
37
|
+
terminals.push(new GbnfString());
|
|
38
|
+
if (isGbnfJsonBasicSchemaIncludesType(schema, "number"))
|
|
39
|
+
terminals.push(new GbnfNumber({ allowFractional: true }));
|
|
40
|
+
if (isGbnfJsonBasicSchemaIncludesType(schema, "integer"))
|
|
41
|
+
terminals.push(new GbnfNumber({ allowFractional: false }));
|
|
42
|
+
if (isGbnfJsonBasicSchemaIncludesType(schema, "boolean"))
|
|
43
|
+
terminals.push(new GbnfBoolean());
|
|
44
|
+
if (isGbnfJsonBasicSchemaIncludesType(schema, "null"))
|
|
45
|
+
terminals.push(new GbnfNull());
|
|
46
|
+
return new GbnfOr(terminals);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=getGbnfJsonTerminalForGbnfJsonSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getGbnfJsonTerminalForGbnfJsonSchema.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { GbnfNull } from "../terminals/GbnfNull.js";
|
|
2
|
+
import { GbnfBooleanValue } from "../terminals/GbnfBooleanValue.js";
|
|
3
|
+
import { GbnfNumberValue } from "../terminals/GbnfNumberValue.js";
|
|
4
|
+
import { GbnfStringValue } from "../terminals/GbnfStringValue.js";
|
|
5
|
+
export declare function getGbnfJsonTerminalForLiteral(literal: string | number | boolean | null): GbnfStringValue | GbnfNull | GbnfBooleanValue | GbnfNumberValue;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GbnfNull } from "../terminals/GbnfNull.js";
|
|
2
|
+
import { GbnfBooleanValue } from "../terminals/GbnfBooleanValue.js";
|
|
3
|
+
import { GbnfNumberValue } from "../terminals/GbnfNumberValue.js";
|
|
4
|
+
import { GbnfStringValue } from "../terminals/GbnfStringValue.js";
|
|
5
|
+
export function getGbnfJsonTerminalForLiteral(literal) {
|
|
6
|
+
if (literal === null)
|
|
7
|
+
return new GbnfNull();
|
|
8
|
+
if (typeof literal === "boolean")
|
|
9
|
+
return new GbnfBooleanValue(literal);
|
|
10
|
+
if (typeof literal === "number")
|
|
11
|
+
return new GbnfNumberValue(literal);
|
|
12
|
+
if (typeof literal === "string")
|
|
13
|
+
return new GbnfStringValue(literal);
|
|
14
|
+
throw new Error(`Unrecognized literal type: ${typeof literal}`);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=getGbnfJsonTerminalForLiteral.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getGbnfJsonTerminalForLiteral.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAC,gBAAgB,EAAC,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAGhE,MAAM,UAAU,6BAA6B,CAAC,OAAyC;IACnF,IAAI,OAAO,KAAK,IAAI;QAChB,OAAO,IAAI,QAAQ,EAAE,CAAC;IAE1B,IAAI,OAAO,OAAO,KAAK,SAAS;QAC5B,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEzC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IAExC,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,OAAO,EAAE,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GbnfJsonSchema, GbnfJsonSchemaToType } from "../types.js";
|
|
2
|
+
export declare function validateObjectAgainstGbnfSchema<T extends GbnfJsonSchema>(object: any, schema: T): object is GbnfJsonSchemaToType<T>;
|
|
3
|
+
export declare class LlamaJsonSchemaValidationError extends Error {
|
|
4
|
+
readonly object: any;
|
|
5
|
+
readonly schema: GbnfJsonSchema;
|
|
6
|
+
constructor(message: string, object: any, schema: GbnfJsonSchema);
|
|
7
|
+
}
|