ranty-js 1.0.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 (94) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -0
  3. package/dist/core/binding.d.ts +34 -0
  4. package/dist/core/binding.d.ts.map +1 -0
  5. package/dist/core/compiler/index.d.ts +5 -0
  6. package/dist/core/compiler/index.d.ts.map +1 -0
  7. package/dist/core/compiler/lexer.d.ts +30 -0
  8. package/dist/core/compiler/lexer.d.ts.map +1 -0
  9. package/dist/core/compiler/message.d.ts +4 -0
  10. package/dist/core/compiler/message.d.ts.map +1 -0
  11. package/dist/core/compiler/parser.d.ts +6 -0
  12. package/dist/core/compiler/parser.d.ts.map +1 -0
  13. package/dist/core/compiler/reader.d.ts +12 -0
  14. package/dist/core/compiler/reader.d.ts.map +1 -0
  15. package/dist/core/compiler/token-reader.d.ts +17 -0
  16. package/dist/core/compiler/token-reader.d.ts.map +1 -0
  17. package/dist/core/constants.d.ts +8 -0
  18. package/dist/core/constants.d.ts.map +1 -0
  19. package/dist/core/data-source.d.ts +6 -0
  20. package/dist/core/data-source.d.ts.map +1 -0
  21. package/dist/core/errors.d.ts +56 -0
  22. package/dist/core/errors.d.ts.map +1 -0
  23. package/dist/core/format-state.d.ts +28 -0
  24. package/dist/core/format-state.d.ts.map +1 -0
  25. package/dist/core/int64.d.ts +9 -0
  26. package/dist/core/int64.d.ts.map +1 -0
  27. package/dist/core/lang.d.ts +142 -0
  28. package/dist/core/lang.d.ts.map +1 -0
  29. package/dist/core/map-proto.d.ts +11 -0
  30. package/dist/core/map-proto.d.ts.map +1 -0
  31. package/dist/core/messages.d.ts +28 -0
  32. package/dist/core/messages.d.ts.map +1 -0
  33. package/dist/core/module-resolver.d.ts +22 -0
  34. package/dist/core/module-resolver.d.ts.map +1 -0
  35. package/dist/core/program.d.ts +14 -0
  36. package/dist/core/program.d.ts.map +1 -0
  37. package/dist/core/ranty.d.ts +70 -0
  38. package/dist/core/ranty.d.ts.map +1 -0
  39. package/dist/core/rng.d.ts +17 -0
  40. package/dist/core/rng.d.ts.map +1 -0
  41. package/dist/core/runtime/vm.d.ts +113 -0
  42. package/dist/core/runtime/vm.d.ts.map +1 -0
  43. package/dist/core/stdlib/assertion.d.ts +3 -0
  44. package/dist/core/stdlib/assertion.d.ts.map +1 -0
  45. package/dist/core/stdlib/block.d.ts +3 -0
  46. package/dist/core/stdlib/block.d.ts.map +1 -0
  47. package/dist/core/stdlib/boolean.d.ts +3 -0
  48. package/dist/core/stdlib/boolean.d.ts.map +1 -0
  49. package/dist/core/stdlib/collections.d.ts +3 -0
  50. package/dist/core/stdlib/collections.d.ts.map +1 -0
  51. package/dist/core/stdlib/compare.d.ts +3 -0
  52. package/dist/core/stdlib/compare.d.ts.map +1 -0
  53. package/dist/core/stdlib/convert.d.ts +3 -0
  54. package/dist/core/stdlib/convert.d.ts.map +1 -0
  55. package/dist/core/stdlib/format.d.ts +3 -0
  56. package/dist/core/stdlib/format.d.ts.map +1 -0
  57. package/dist/core/stdlib/general.d.ts +3 -0
  58. package/dist/core/stdlib/general.d.ts.map +1 -0
  59. package/dist/core/stdlib/generate.d.ts +3 -0
  60. package/dist/core/stdlib/generate.d.ts.map +1 -0
  61. package/dist/core/stdlib/index.d.ts +3 -0
  62. package/dist/core/stdlib/index.d.ts.map +1 -0
  63. package/dist/core/stdlib/math.d.ts +3 -0
  64. package/dist/core/stdlib/math.d.ts.map +1 -0
  65. package/dist/core/stdlib/proto.d.ts +3 -0
  66. package/dist/core/stdlib/proto.d.ts.map +1 -0
  67. package/dist/core/stdlib/shared.d.ts +24 -0
  68. package/dist/core/stdlib/shared.d.ts.map +1 -0
  69. package/dist/core/stdlib/strings.d.ts +3 -0
  70. package/dist/core/stdlib/strings.d.ts.map +1 -0
  71. package/dist/core/stdlib/verify.d.ts +3 -0
  72. package/dist/core/stdlib/verify.d.ts.map +1 -0
  73. package/dist/core/util.d.ts +9 -0
  74. package/dist/core/util.d.ts.map +1 -0
  75. package/dist/core/values.d.ts +47 -0
  76. package/dist/core/values.d.ts.map +1 -0
  77. package/dist/core/virtual-module-resolver.d.ts +14 -0
  78. package/dist/core/virtual-module-resolver.d.ts.map +1 -0
  79. package/dist/hosts/browser/index.d.ts +3 -0
  80. package/dist/hosts/browser/index.d.ts.map +1 -0
  81. package/dist/hosts/node/cli-utils.d.ts +18 -0
  82. package/dist/hosts/node/cli-utils.d.ts.map +1 -0
  83. package/dist/hosts/node/cli.d.ts +2 -0
  84. package/dist/hosts/node/cli.d.ts.map +1 -0
  85. package/dist/hosts/node/dev-repl.d.ts +2 -0
  86. package/dist/hosts/node/dev-repl.d.ts.map +1 -0
  87. package/dist/index.d.ts +15 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/ranty.js +9268 -0
  90. package/dist/ranty.js.map +1 -0
  91. package/docs/README.md +24 -0
  92. package/docs/context-system/README.md +85 -0
  93. package/docs/repo-workflow/README.md +40 -0
  94. package/package.json +90 -0
@@ -0,0 +1,9 @@
1
+ import type * as NodeFs from "node:fs";
2
+ import type * as NodePath from "node:path";
3
+ export declare function runtimeRequire<T>(id: string): T | null;
4
+ export declare function loadNodeFs(): {
5
+ readonly fs: typeof NodeFs;
6
+ readonly path: typeof NodePath;
7
+ } | null;
8
+ export declare function renderRantyValue(value: unknown): string;
9
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/core/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,KAAK,QAAQ,MAAM,WAAW,CAAC;AAI3C,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAuBtD;AAED,wBAAgB,UAAU,IAAI;IAC5B,QAAQ,CAAC,EAAE,EAAE,OAAO,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,QAAQ,CAAC;CAChC,GAAG,IAAI,CASP;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA4EvD"}
@@ -0,0 +1,47 @@
1
+ import type { RantyInt } from "./int64";
2
+ declare const COLLECTION_KIND: unique symbol;
3
+ export type RantyCollectionKind = "list" | "tuple";
4
+ export interface RantyRange {
5
+ readonly type: "range";
6
+ readonly start: RantyInt | bigint | number;
7
+ readonly end: RantyInt | bigint | number;
8
+ readonly step?: RantyInt | bigint | number;
9
+ }
10
+ export interface RantySelectorValue {
11
+ readonly type: "selector";
12
+ readonly mode: string;
13
+ index: number;
14
+ direction: 1 | -1;
15
+ frozen: boolean;
16
+ initialized: boolean;
17
+ readonly matchValue?: RantyValue;
18
+ }
19
+ export interface RantyAttributeValue {
20
+ readonly type: "attribute";
21
+ readonly name: "rep" | "sep" | "sel" | "mut" | "reset" | "if" | "elseif" | "else";
22
+ readonly value: RantyValue;
23
+ }
24
+ export interface RantyTemporalValue {
25
+ readonly type: "temporal";
26
+ readonly values: readonly RantyValue[];
27
+ }
28
+ type TaggedCollection = {
29
+ readonly [COLLECTION_KIND]?: RantyCollectionKind;
30
+ };
31
+ export type RantyMapValue = Map<string, RantyValue>;
32
+ export type RantyTupleValue = readonly RantyValue[] & TaggedCollection;
33
+ export type RantyListValue = RantyValue[] & TaggedCollection;
34
+ export type RantyCallable = (...args: readonly RantyValue[]) => RantyValue;
35
+ export type RantyScalar = string | number | bigint | boolean | null;
36
+ export type RantyValue = RantyScalar | RantyRange | RantySelectorValue | RantyAttributeValue | RantyTemporalValue | RantyMapValue | RantyTupleValue | RantyListValue | RantyCallable;
37
+ export declare function makeListValue(values?: readonly RantyValue[]): RantyListValue;
38
+ export declare function makeTupleValue(values?: readonly RantyValue[]): RantyTupleValue;
39
+ export declare function getCollectionKind(value: unknown): RantyCollectionKind | null;
40
+ export declare function isTupleValue(value: unknown): value is RantyTupleValue;
41
+ export declare function isListValue(value: unknown): value is RantyListValue;
42
+ export declare function cloneCollectionValue(value: readonly RantyValue[]): RantyTupleValue | RantyListValue;
43
+ export declare function makeCollectionValue(kind: RantyCollectionKind, values?: readonly RantyValue[]): RantyTupleValue | RantyListValue;
44
+ export declare function makeTemporalValue(values?: readonly RantyValue[]): RantyTemporalValue;
45
+ export declare function isTemporalValue(value: unknown): value is RantyTemporalValue;
46
+ export {};
47
+ //# sourceMappingURL=values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/core/values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Reporter } from "./messages";
2
+ import type { RantyProgram } from "./program";
3
+ import type { Ranty } from "./ranty";
4
+ import type { ModuleResolver } from "./module-resolver";
5
+ export declare class VirtualModuleResolver implements ModuleResolver {
6
+ readonly modules: Map<string, string>;
7
+ constructor(modules?: Record<string, string> | Map<string, string>);
8
+ setModule(modulePath: string, source: string): this;
9
+ tryResolve(context: Ranty, modulePath: string, _dependant?: {
10
+ readonly path?: string;
11
+ }, reporter?: Reporter): RantyProgram;
12
+ private compileModule;
13
+ }
14
+ //# sourceMappingURL=virtual-module-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-module-resolver.d.ts","sourceRoot":"","sources":["../../src/core/virtual-module-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUxD,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAE1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAOlE,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKnD,UAAU,CACR,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EACvC,QAAQ,CAAC,EAAE,QAAQ,GAClB,YAAY;IAoBf,OAAO,CAAC,aAAa;CA0BtB"}
@@ -0,0 +1,3 @@
1
+ import { VirtualModuleResolver } from "../../core/virtual-module-resolver";
2
+ export { VirtualModuleResolver };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosts/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAS3E,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface CliOptions {
2
+ noDebug: boolean;
3
+ noWarn: boolean;
4
+ benchMode: boolean;
5
+ seed: bigint | undefined;
6
+ eval: string | undefined;
7
+ file: string | undefined;
8
+ }
9
+ export declare enum LaunchMode {
10
+ Eval = "eval",
11
+ File = "file",
12
+ Stdin = "stdin",
13
+ Repl = "repl"
14
+ }
15
+ export declare function parseSeedArg(raw: string): bigint;
16
+ export declare function selectLaunchMode(evalSource: string | undefined, file: string | undefined, stdinIsTty: boolean): LaunchMode;
17
+ export declare function parseCliArgs(argv: readonly string[]): CliOptions;
18
+ //# sourceMappingURL=cli-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-utils.d.ts","sourceRoot":"","sources":["../../../src/hosts/node/cli-utils.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,oBAAY,UAAU;IACpB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAehD;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,UAAU,EAAE,OAAO,GAClB,UAAU,CAWZ;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAkDhE"}
@@ -0,0 +1,2 @@
1
+ export declare function runCli(argv: readonly string[]): Promise<number>;
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/hosts/node/cli.ts"],"names":[],"mappings":"AAqBA,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6ErE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dev-repl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-repl.d.ts","sourceRoot":"","sources":["../../../src/hosts/node/dev-repl.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import "./hosts/browser/index";
2
+ import { BUILD_VERSION, DEFAULT_PROGRAM_NAME, RANTY_COMPAT_FILE_EXTENSION, RANTY_FILE_EXTENSION, RANTY_LANG_VERSION, RANTY_SUPPORTED_FILE_EXTENSIONS } from "./core/constants";
3
+ import { DataSourceError } from "./core/errors";
4
+ import { RuntimeError, RuntimeErrorType, ModuleResolveError, ModuleLoadError, CompilerError } from "./core/errors";
5
+ import type { DataSource } from "./core/data-source";
6
+ import { RantyInt } from "./core/int64";
7
+ import { CompilerMessage } from "./core/messages";
8
+ import { DefaultModuleResolver } from "./core/module-resolver";
9
+ import { RantyProgram } from "./core/program";
10
+ import { Ranty } from "./core/ranty";
11
+ import { RantyRng } from "./core/rng";
12
+ import { VirtualModuleResolver } from "./core/virtual-module-resolver";
13
+ export { BUILD_VERSION, CompilerError, CompilerMessage, DataSourceError, DEFAULT_PROGRAM_NAME, DefaultModuleResolver, ModuleLoadError, ModuleResolveError, Ranty, RantyInt, RantyProgram, RantyRng, RANTY_COMPAT_FILE_EXTENSION, RANTY_FILE_EXTENSION, RANTY_LANG_VERSION, RANTY_SUPPORTED_FILE_EXTENSIONS, RuntimeError, RuntimeErrorType, VirtualModuleResolver };
14
+ export type { DataSource };
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,+BAA+B,EAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,+BAA+B,EAC/B,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACtB,CAAC;AAEF,YAAY,EAAE,UAAU,EAAE,CAAC"}