exupery 0.0.1 → 0.1.1

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 (51) hide show
  1. package/dist/generated/generic/resolve.d.ts +90 -0
  2. package/dist/generated/generic/resolve.js +249 -0
  3. package/dist/generated/implementation/schemas/typescript_light/migration_boilerplate.d.ts +5 -0
  4. package/dist/generated/implementation/schemas/typescript_light/migration_boilerplate.js +144 -0
  5. package/dist/generated/interface/core/poormans_parser.d.ts +184 -0
  6. package/dist/generated/interface/core/poormans_parser.js +3 -0
  7. package/dist/generated/interface/core/resolved.d.ts +100 -0
  8. package/dist/generated/interface/core/resolved.js +3 -0
  9. package/dist/generated/interface/core/unresolved.d.ts +35 -0
  10. package/dist/generated/interface/core/unresolved.js +3 -0
  11. package/dist/generated/interface/schemas/implementation/resolve.d.ts +437 -0
  12. package/dist/generated/interface/schemas/implementation/resolve.js +3 -0
  13. package/dist/generated/interface/schemas/implementation/resolved.d.ts +1912 -0
  14. package/dist/generated/interface/schemas/implementation/resolved.js +3 -0
  15. package/dist/generated/interface/schemas/implementation/unresolved.d.ts +1912 -0
  16. package/dist/generated/interface/schemas/implementation/unresolved.js +3 -0
  17. package/dist/generated/interface/schemas/interface/constrained/resolve.d.ts +437 -0
  18. package/dist/generated/interface/schemas/interface/constrained/resolve.js +3 -0
  19. package/dist/generated/interface/schemas/interface/resolve.d.ts +437 -0
  20. package/dist/generated/interface/schemas/interface/resolve.js +3 -0
  21. package/dist/generated/interface/schemas/interface/resolved.d.ts +622 -0
  22. package/dist/generated/interface/schemas/interface/resolved.js +3 -0
  23. package/dist/generated/interface/schemas/interface/unresolved.d.ts +622 -0
  24. package/dist/generated/interface/schemas/interface/unresolved.js +3 -0
  25. package/dist/generated/interface/schemas/typescript_light/migration_boilerplate.d.ts +90 -0
  26. package/dist/generated/interface/schemas/typescript_light/migration_boilerplate.js +3 -0
  27. package/dist/generated/interface/schemas/typescript_light/unconstrained.d.ts +966 -0
  28. package/dist/generated/interface/schemas/typescript_light/unconstrained.js +3 -0
  29. package/dist/globals.d.ts +24 -0
  30. package/dist/globals.js +2 -0
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.js +5 -0
  33. package/dist/shorthands/implementation.d.ts +58 -0
  34. package/dist/shorthands/implementation.js +329 -0
  35. package/dist/shorthands/interface.d.ts +39 -0
  36. package/dist/shorthands/interface.js +146 -0
  37. package/dist/shorthands/typescript_light.d.ts +24 -0
  38. package/dist/shorthands/typescript_light.js +127 -0
  39. package/dist/transformations/implementation/fountain_pen.d.ts +6 -0
  40. package/dist/transformations/implementation/fountain_pen.js +36 -0
  41. package/dist/transformations/implementation/typescript.d.ts +24 -0
  42. package/dist/transformations/implementation/typescript.js +554 -0
  43. package/dist/transformations/interface/fountain_pen.d.ts +4 -0
  44. package/dist/transformations/interface/fountain_pen.js +47 -0
  45. package/dist/transformations/interface/typescript.d.ts +23 -0
  46. package/dist/transformations/interface/typescript.js +524 -0
  47. package/dist/transformations/typescript/fountain_pen.d.ts +15 -0
  48. package/dist/transformations/typescript/fountain_pen.js +281 -0
  49. package/dist/transformations/typescript/operations/create_identifier.d.ts +1 -0
  50. package/dist/transformations/typescript/operations/create_identifier.js +260 -0
  51. package/package.json +4 -1
@@ -0,0 +1,90 @@
1
+ import * as pt from 'exupery-core-types';
2
+ import * as pd from 'exupery-core-data';
3
+ import * as unresolved$ from "../interface/core/poormans_parser";
4
+ import * as resolved$ from "../interface/core/resolved";
5
+ export type Location_to_String<Source> = ($: Source) => string;
6
+ export type Acyclic_Entry_Reference<T_Dictionary_Entry> = {
7
+ readonly 'entry': T_Dictionary_Entry;
8
+ readonly 'key': string;
9
+ };
10
+ export type Parameters<Source, V, L> = {
11
+ 'location 2 string': Location_to_String<Source>;
12
+ 'parameters': {
13
+ 'lookups': L;
14
+ 'values': V;
15
+ };
16
+ };
17
+ export type Key_Value_Location_Triplet<Source, T> = {
18
+ 'key': string;
19
+ 'value': T;
20
+ 'location': Source;
21
+ };
22
+ export type Possibly_Circular_Result<T> = () => T;
23
+ export type Non_Circular_Result<T> = ['error', ['circular', pt.Array<string>]] | ['resolved', T];
24
+ export type Path<Source, Resolved_Element, Seed> = {
25
+ 'list': pt.Array<Resolved_Element>;
26
+ 'result': {
27
+ 'data': Seed;
28
+ };
29
+ };
30
+ export type Resolved_Step<Resolved_Element, Seed> = {
31
+ 'element': Resolved_Element;
32
+ 'result': Seed;
33
+ };
34
+ export type _T_Location_2_String<Source> = Location_to_String<Source>;
35
+ export type _T_Location_Info = pd.Source_Location;
36
+ export type Location_Info = pd.Source_Location;
37
+ export type Acyclic_Lookup<T> = pt.Optional_Value<pt.Lookup<Non_Circular_Result<T>>>;
38
+ export type Cyclic_Lookup<T> = pt.Optional_Value<pt.Lookup<Possibly_Circular_Result<T>>>;
39
+ export type Lookup_Stack<T> = pt.Array<Acyclic_Lookup<T>>;
40
+ export type _T_Cyclic_Lookup<T> = Cyclic_Lookup<T>;
41
+ export type _T_Acyclic_Lookup<T> = Acyclic_Lookup<T>;
42
+ export type _T_Lookup_Stack<T> = Lookup_Stack<T>;
43
+ export declare const dictionary_to_lookup: <T>($: pt.Dictionary<T>, $p: null) => Acyclic_Lookup<T>;
44
+ export declare const get_possibly_circular_dependent_sibling_entry: <Source, T>($: Cyclic_Lookup<T>, $p: {
45
+ "reference": unresolved$.Reference_To_Circular_Dependent_Sibling<Source, T>;
46
+ "location 2 string": Location_to_String<Source>;
47
+ }) => resolved$.Reference_To_Circular_Dependent_Sibling<Source, T>;
48
+ export declare const push_stack: <T>($: pt.Array<T>, $p: {
49
+ "element": T;
50
+ }) => pt.Array<T>;
51
+ export declare const get_entry_from_stack: <Source, T>($: Lookup_Stack<T>, $p: {
52
+ "reference": unresolved$.Reference_To_Stacked_Dictionary_Entry<Source, T>;
53
+ "location 2 string": Location_to_String<Source>;
54
+ }) => resolved$.Reference_To_Stacked_Dictionary_Entry<Source, T>;
55
+ export declare const get_entry: <Source, T>($: Acyclic_Lookup<T>, $p: {
56
+ "reference": unresolved$.Reference_To_Normal_Dictionary_Entry<Source, T>;
57
+ "location 2 string": Location_to_String<Source>;
58
+ }) => resolved$.Reference_To_Normal_Dictionary_Entry<Source, T>;
59
+ export declare const resolve_path: <Source, Unresolved_Element, Resolved_Element, Seed>($: unresolved$.List<Source, Unresolved_Element>, $p: {
60
+ "seed": Seed;
61
+ "map": ($: Unresolved_Element, current: Seed) => Resolved_Step<Resolved_Element, Seed>;
62
+ }) => Path<Source, Resolved_Element, Seed>;
63
+ export declare const resolve_dictionary: <Source, TUnresolved, TResolved>($: unresolved$.Dictionary<Source, TUnresolved>, $p: {
64
+ "map": ($: Key_Value_Location_Triplet<Source, TUnresolved>, $l: {
65
+ "possibly circular dependent siblings": Cyclic_Lookup<TResolved>;
66
+ }) => TResolved;
67
+ "location 2 string": ($: Source) => string;
68
+ }) => resolved$.Dictionary<Source, TResolved>;
69
+ export declare const resolve_dense_dictionary: <Source, TUnresolved, TResolved, TBenchmark>($: unresolved$.Dictionary<Source, TUnresolved>, $p: {
70
+ "denseness benchmark": pt.Dictionary<TBenchmark>;
71
+ "map": ($: Key_Value_Location_Triplet<Source, TUnresolved>, $l: {
72
+ "possibly circular dependent siblings": Cyclic_Lookup<TResolved>;
73
+ }) => TResolved;
74
+ "location 2 string": ($: Source) => string;
75
+ }) => resolved$.Dictionary<Source, TResolved>;
76
+ export declare const resolve_dense_ordered_dictionary: <Source, TUnresolved, TResolved, TBenchmark>($: unresolved$.Dictionary<Source, TUnresolved>, $p: {
77
+ "denseness benchmark": pt.Dictionary<TBenchmark>;
78
+ "map": ($: Key_Value_Location_Triplet<Source, TUnresolved>, $l: {
79
+ "possibly circular dependent siblings": Cyclic_Lookup<TResolved>;
80
+ "not circular dependent siblings": Acyclic_Lookup<TResolved>;
81
+ }) => TResolved;
82
+ "location 2 string": ($: Source) => string;
83
+ }) => resolved$.Ordered_Dictionary<Source, TResolved>;
84
+ export declare const resolve_ordered_dictionary: <Source, TUnresolved, TResolved>($: unresolved$.Dictionary<Source, TUnresolved>, $p: {
85
+ "map": ($: Key_Value_Location_Triplet<Source, TUnresolved>, $l: {
86
+ "possibly circular dependent siblings": Cyclic_Lookup<TResolved>;
87
+ "not circular dependent siblings": Acyclic_Lookup<TResolved>;
88
+ }) => TResolved;
89
+ "location 2 string": ($: Source) => string;
90
+ }) => resolved$.Ordered_Dictionary<Source, TResolved>;
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.resolve_ordered_dictionary = exports.resolve_dense_ordered_dictionary = exports.resolve_dense_dictionary = exports.resolve_dictionary = exports.resolve_path = exports.get_entry = exports.get_entry_from_stack = exports.push_stack = exports.get_possibly_circular_dependent_sibling_entry = exports.dictionary_to_lookup = void 0;
27
+ const pa = __importStar(require("exupery-core-alg"));
28
+ const dictionary_to_lookup = ($, $p) => {
29
+ return pa.set($.map(($) => (['resolved', $])));
30
+ };
31
+ exports.dictionary_to_lookup = dictionary_to_lookup;
32
+ const get_possibly_circular_dependent_sibling_entry = ($, $p) => {
33
+ return $.transform(($) => ({
34
+ 'key': $p.reference.key,
35
+ 'entry': $.__get_entry($p.reference.key).transform(($) => $, () => pa.panic("no such entry: '", $p.reference.key, "' @ ", $p['location 2 string']($p.reference.location)))
36
+ }), () => pa.panic("no context lookup @ ", $p['location 2 string']($p.reference.location)));
37
+ };
38
+ exports.get_possibly_circular_dependent_sibling_entry = get_possibly_circular_dependent_sibling_entry;
39
+ const push_stack = ($, $p) => {
40
+ return pa.pure.list.build(($i) => {
41
+ $i['add list']($);
42
+ $i['add element']($p['element']);
43
+ });
44
+ };
45
+ exports.push_stack = push_stack;
46
+ const get_entry_from_stack = ($, $p) => {
47
+ const get_lookup_from_stack = ($, $p) => $.__get_element_at($.__get_length() - 1 - $p['up steps']).transform(($) => $, () => pa.panic(`index out of bounds, ${$.__get_length()} ${$p['up steps']}`));
48
+ const x = (0, exports.get_entry)(get_lookup_from_stack($, { 'up steps': $p.reference['up steps'] }), {
49
+ 'reference': $p.reference,
50
+ 'location 2 string': $p['location 2 string'],
51
+ });
52
+ return {
53
+ 'key': x.key,
54
+ 'entry': x.entry,
55
+ 'up steps': $p.reference['up steps'],
56
+ };
57
+ };
58
+ exports.get_entry_from_stack = get_entry_from_stack;
59
+ const get_entry = ($, $p) => {
60
+ return $.transform(($) => ({
61
+ 'key': $p.reference.key,
62
+ 'entry': $.__get_entry($p.reference.key).transform(($) => pa.cc($, ($) => {
63
+ switch ($[0]) {
64
+ case 'error': return pa.ss($, ($) => pa.cc($, ($) => {
65
+ switch ($[0]) {
66
+ case 'circular': return pa.ss($, ($) => {
67
+ const keys = pa.pure.text.build(($i) => {
68
+ $.__for_each(($) => {
69
+ $i['add snippet'](` '${$}', `);
70
+ });
71
+ });
72
+ return pa.panic("circular dependency: '", $p.reference.key, "' (", keys, ")@ ", $p['location 2 string']($p.reference.location));
73
+ });
74
+ default: return pa.au($[0]);
75
+ }
76
+ }));
77
+ case 'resolved': return pa.ss($, ($) => $);
78
+ default: return pa.au($[0]);
79
+ }
80
+ }), () => {
81
+ return pa.panic("no such entry: '", $p.reference.key, "' @ ", $p['location 2 string']($p.reference.location));
82
+ })
83
+ }), () => pa.panic("no context lookup @ ", $p['location 2 string']($p.reference.location)));
84
+ };
85
+ exports.get_entry = get_entry;
86
+ const resolve_path = ($, $p) => {
87
+ let current = {
88
+ 'list': pa.array_literal([]),
89
+ 'result': {
90
+ 'data': $p.seed,
91
+ },
92
+ };
93
+ $.list.__for_each(($) => {
94
+ const result = $p.map($.element, current.result.data);
95
+ const data = pa.pure.list.build(($i) => {
96
+ current.list.__for_each(($) => {
97
+ $i['add element']($);
98
+ });
99
+ $i['add element'](result.element);
100
+ });
101
+ current = {
102
+ 'list': data,
103
+ 'result': {
104
+ 'data': result.result,
105
+ }
106
+ };
107
+ });
108
+ return current;
109
+ };
110
+ exports.resolve_path = resolve_path;
111
+ const resolve_dictionary = ($, $p) => {
112
+ return (0, exports.resolve_ordered_dictionary)($, $p).dictionary;
113
+ };
114
+ exports.resolve_dictionary = resolve_dictionary;
115
+ const resolve_dense_dictionary = ($, $p) => {
116
+ return (0, exports.resolve_dense_ordered_dictionary)($, $p).dictionary;
117
+ };
118
+ exports.resolve_dense_dictionary = resolve_dense_dictionary;
119
+ const resolve_dense_ordered_dictionary = ($, $p) => {
120
+ const location = $.location;
121
+ const result = (0, exports.resolve_ordered_dictionary)($, $p);
122
+ $p['denseness benchmark'].map(($) => {
123
+ const validate_denseness = (benchmark, focus, location, location_to_string) => {
124
+ benchmark.map(($, key) => {
125
+ const benchmark = $;
126
+ focus.__get_entry(key).transform(($) => {
127
+ }, () => {
128
+ pa.panic("missing entry '", key, "' @ ", location_to_string(location));
129
+ });
130
+ });
131
+ };
132
+ validate_denseness($p['denseness benchmark'], result.dictionary, location, $p['location 2 string']);
133
+ });
134
+ return result;
135
+ };
136
+ exports.resolve_dense_ordered_dictionary = resolve_dense_ordered_dictionary;
137
+ const resolve_ordered_dictionary = ($, $p) => {
138
+ const dictionary_location = $.location;
139
+ /**
140
+ * this variable contains all the entries on which siblings have subscribed
141
+ */
142
+ const all_siblings_subscribed_entries = {};
143
+ const finished = {};
144
+ const ordered_list = pa.pure.list.build(($i) => {
145
+ const source_dictionary = $;
146
+ const status_dictionary = {};
147
+ function process_entry($, location, key_of_entry_being_processed) {
148
+ status_dictionary[key_of_entry_being_processed] = ['processing', null];
149
+ const entry = $p.map({
150
+ 'key': key_of_entry_being_processed,
151
+ 'value': $,
152
+ 'location': location,
153
+ }, {
154
+ 'possibly circular dependent siblings': pa.set({
155
+ __get_entry(key) {
156
+ //does the entry exist?
157
+ return source_dictionary.dictionary.__get_entry(key).map(($) => {
158
+ //yes, it exists in the source dictionary
159
+ if (all_siblings_subscribed_entries[key] === undefined) {
160
+ all_siblings_subscribed_entries[key] = { 'entry': null };
161
+ }
162
+ const subscr = all_siblings_subscribed_entries[key];
163
+ return () => {
164
+ if (subscr.entry === null) {
165
+ pa.panic(`entry not set: ${key}`);
166
+ }
167
+ return subscr.entry;
168
+ };
169
+ });
170
+ },
171
+ }),
172
+ 'not circular dependent siblings': pa.set({
173
+ __get_entry(key) {
174
+ const status = status_dictionary[key];
175
+ if (status === undefined) {
176
+ return source_dictionary.dictionary.__get_entry(key).transform(($) => pa.set(['resolved', process_entry($.entry, $.location, key)]), () => {
177
+ return pa.not_set();
178
+ // throw new ResolveError("")
179
+ });
180
+ }
181
+ else {
182
+ const get_keys_of_entries_being_processed = () => {
183
+ return pa.pure.list.build(($i) => {
184
+ pa.dictionary_literal(status_dictionary).map(($, key) => {
185
+ if ($[0] === 'processing') {
186
+ $i['add element'](key);
187
+ }
188
+ });
189
+ });
190
+ };
191
+ return pa.cc(status, (s) => {
192
+ switch (s[0]) {
193
+ case 'failed':
194
+ return pa.ss(s, (s) => {
195
+ //nothing to report
196
+ return pa.set(['error', ['circular', get_keys_of_entries_being_processed()]]);
197
+ //return notSet()
198
+ });
199
+ case 'processing':
200
+ if (key === key_of_entry_being_processed) {
201
+ //$se.onError(`'${key}' is referencing itself`)
202
+ }
203
+ else {
204
+ // const keys: string[] = []
205
+ // Object.keys(status_dictionary).forEach((key) => {
206
+ // if (status_dictionary[key][0] === 'processing') {
207
+ // keys.push(key)
208
+ // }
209
+ // })
210
+ //$se.onError(`the following entries are referencing each other: ${keys.join(", ")}`)
211
+ }
212
+ status_dictionary[key_of_entry_being_processed] = ['failed', null];
213
+ return pa.set(['error', ['circular', get_keys_of_entries_being_processed()]]);
214
+ case 'success':
215
+ return pa.set(['resolved', s[1]]);
216
+ default: return pa.au(s[0]);
217
+ }
218
+ });
219
+ }
220
+ },
221
+ }),
222
+ });
223
+ finished[key_of_entry_being_processed] = entry;
224
+ $i['add element']({
225
+ 'key': key_of_entry_being_processed,
226
+ 'value': entry,
227
+ });
228
+ status_dictionary[key_of_entry_being_processed] = ['success', entry];
229
+ return entry;
230
+ }
231
+ $.dictionary.map(($, key) => {
232
+ if (status_dictionary[key] === undefined) {
233
+ process_entry($.entry, $.location, key);
234
+ }
235
+ });
236
+ pa.dictionary_literal(all_siblings_subscribed_entries).map(($, key) => {
237
+ if (finished[key] === undefined) {
238
+ pa.panic(`implementation error: entry not resolved: ${key}`);
239
+ }
240
+ all_siblings_subscribed_entries[key].entry = finished[key];
241
+ });
242
+ });
243
+ return {
244
+ 'dictionary': pa.dictionary_literal(finished),
245
+ 'ordered list': ordered_list,
246
+ };
247
+ };
248
+ exports.resolve_ordered_dictionary = resolve_ordered_dictionary;
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvZ2VuZXJpYy9yZXNvbHZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXNDO0FBbUQvQixNQUFNLG9CQUFvQixHQUFHLENBQ2hDLENBQW1CLEVBQ25CLEVBQVEsRUFDUyxFQUFFO0lBQ25CLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2xELENBQUMsQ0FBQTtBQUxZLFFBQUEsb0JBQW9CLHdCQUtoQztBQUVNLE1BQU0sNkNBQTZDLEdBQUcsQ0FDekQsQ0FBbUIsRUFDbkIsRUFHQyxFQUMyRCxFQUFFO0lBQzlELE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FDZCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNKLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUc7UUFDdkIsT0FBTyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQzlDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ1IsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUMvRztLQUNKLENBQUMsRUFDRixHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FB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
@@ -0,0 +1,5 @@
1
+ import * as _i_signatures from "../../../interface/schemas/typescript_light/migration_boilerplate";
2
+ export declare const Expression: _i_signatures._T_Expression;
3
+ export declare const Statements: _i_signatures._T_Statements;
4
+ export declare const String_Literal: _i_signatures._T_String_Literal;
5
+ export declare const Type: _i_signatures._T_Type;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Type = exports.String_Literal = exports.Statements = exports.Expression = void 0;
27
+ const _pa = __importStar(require("exupery-core-alg"));
28
+ const Expression = ($) => _pa.cc($, ($) => {
29
+ switch ($[0]) {
30
+ case 'array literal': return _pa.ss($, ($) => ['array literal', $.map(($) => (0, exports.Expression)($, null))]);
31
+ case 'arrow function': return _pa.ss($, ($) => ['arrow function', ({
32
+ 'parameters': _pa.cc($['parameters'], ($) => $.map(($) => ({
33
+ 'name': _pa.cc($['name'], ($) => $),
34
+ 'type': _pa.cc($['type'], ($) => $.map(($) => (0, exports.Type)($, null))),
35
+ }))),
36
+ 'return type': _pa.cc($['return type'], ($) => $.map(($) => (0, exports.Type)($, null))),
37
+ 'type': _pa.cc($['type'], ($) => _pa.cc($, ($) => {
38
+ switch ($[0]) {
39
+ case 'block': return _pa.ss($, ($) => ['block', (0, exports.Statements)($, null)]);
40
+ case 'expression': return _pa.ss($, ($) => ['expression', (0, exports.Expression)($, null)]);
41
+ default: return _pa.au($[0]);
42
+ }
43
+ })),
44
+ })]);
45
+ case 'call': return _pa.ss($, ($) => ['call', ({
46
+ 'arguments': _pa.cc($['arguments'], ($) => $.map(($) => (0, exports.Expression)($, null))),
47
+ 'function selection': _pa.cc($['function selection'], ($) => (0, exports.Expression)($, null)),
48
+ })]);
49
+ case 'false': return _pa.ss($, ($) => ['false', null]);
50
+ case 'null': return _pa.ss($, ($) => ['null', null]);
51
+ case 'number literal': return _pa.ss($, ($) => ['number literal', $]);
52
+ case 'object literal': return _pa.ss($, ($) => ['object literal', ({
53
+ 'properties': _pa.cc($['properties'], ($) => $.map(($) => (0, exports.Expression)($, null))),
54
+ })]);
55
+ case 'string literal': return _pa.ss($, ($) => ['string literal', (0, exports.String_Literal)($, null)]);
56
+ case 'true': return _pa.ss($, ($) => ['true', null]);
57
+ default: return _pa.au($[0]);
58
+ }
59
+ });
60
+ exports.Expression = Expression;
61
+ const Statements = ($) => $.map(($) => _pa.cc($, ($) => {
62
+ switch ($[0]) {
63
+ case 'import': return _pa.ss($, ($) => ['import', ({
64
+ 'from': _pa.cc($['from'], ($) => $),
65
+ 'type': _pa.cc($['type'], ($) => _pa.cc($, ($) => {
66
+ switch ($[0]) {
67
+ case 'named': return _pa.ss($, ($) => ['named', ({
68
+ 'specifiers': _pa.cc($['specifiers'], ($) => $.map(($) => $)),
69
+ })]);
70
+ case 'namespace': return _pa.ss($, ($) => ['namespace', $]);
71
+ default: return _pa.au($[0]);
72
+ }
73
+ })),
74
+ })]);
75
+ case 'module declaration': return _pa.ss($, ($) => ['module declaration', ({
76
+ 'block': _pa.cc($['block'], ($) => (0, exports.Statements)($, null)),
77
+ 'export': _pa.cc($['export'], ($) => $),
78
+ 'name': _pa.cc($['name'], ($) => $),
79
+ })]);
80
+ case 'type alias declaration': return _pa.ss($, ($) => ['type alias declaration', ({
81
+ 'export': _pa.cc($['export'], ($) => $),
82
+ 'name': _pa.cc($['name'], ($) => $),
83
+ 'parameters': _pa.cc($['parameters'], ($) => $.map(($) => $)),
84
+ 'type': _pa.cc($['type'], ($) => (0, exports.Type)($, null)),
85
+ })]);
86
+ case 'variable': return _pa.ss($, ($) => ['variable', ({
87
+ 'const': _pa.cc($['const'], ($) => $),
88
+ 'export': _pa.cc($['export'], ($) => $),
89
+ 'expression': _pa.cc($['expression'], ($) => $.map(($) => (0, exports.Expression)($, null))),
90
+ 'name': _pa.cc($['name'], ($) => $),
91
+ 'type': _pa.cc($['type'], ($) => $.map(($) => (0, exports.Type)($, null))),
92
+ })]);
93
+ default: return _pa.au($[0]);
94
+ }
95
+ }));
96
+ exports.Statements = Statements;
97
+ const String_Literal = ($) => ({
98
+ 'delimiter': _pa.cc($['delimiter'], ($) => _pa.cc($, ($) => {
99
+ switch ($[0]) {
100
+ case 'apostrophe': return _pa.ss($, ($) => ['apostrophe', null]);
101
+ case 'quote': return _pa.ss($, ($) => ['quote', null]);
102
+ default: return _pa.au($[0]);
103
+ }
104
+ })),
105
+ 'value': _pa.cc($['value'], ($) => $),
106
+ });
107
+ exports.String_Literal = String_Literal;
108
+ const Type = ($) => _pa.cc($, ($) => {
109
+ switch ($[0]) {
110
+ case 'boolean': return _pa.ss($, ($) => ['boolean', null]);
111
+ case 'function': return _pa.ss($, ($) => ['function', ({
112
+ 'parameters': _pa.cc($['parameters'], ($) => $.map(($) => ({
113
+ 'name': _pa.cc($['name'], ($) => $),
114
+ 'type': _pa.cc($['type'], ($) => $.map(($) => (0, exports.Type)($, null))),
115
+ }))),
116
+ 'return': _pa.cc($['return'], ($) => (0, exports.Type)($, null)),
117
+ 'type parameters': _pa.cc($['type parameters'], ($) => $.map(($) => $)),
118
+ })]);
119
+ case 'literal type': return _pa.ss($, ($) => ['literal type', (0, exports.String_Literal)($, null)]);
120
+ case 'null': return _pa.ss($, ($) => ['null', null]);
121
+ case 'number': return _pa.ss($, ($) => ['number', null]);
122
+ case 'string': return _pa.ss($, ($) => ['string', null]);
123
+ case 'tuple': return _pa.ss($, ($) => ['tuple', ({
124
+ 'elements': _pa.cc($['elements'], ($) => $.map(($) => (0, exports.Type)($, null))),
125
+ 'readonly': _pa.cc($['readonly'], ($) => $),
126
+ })]);
127
+ case 'type literal': return _pa.ss($, ($) => ['type literal', ({
128
+ 'properties': _pa.cc($['properties'], ($) => $.map(($) => ({
129
+ 'readonly': _pa.cc($['readonly'], ($) => $),
130
+ 'type': _pa.cc($['type'], ($) => (0, exports.Type)($, null)),
131
+ }))),
132
+ })]);
133
+ case 'type reference': return _pa.ss($, ($) => ['type reference', ({
134
+ 'start': _pa.cc($['start'], ($) => $),
135
+ 'tail': _pa.cc($['tail'], ($) => $.map(($) => $)),
136
+ 'type arguments': _pa.cc($['type arguments'], ($) => $.map(($) => (0, exports.Type)($, null))),
137
+ })]);
138
+ case 'union': return _pa.ss($, ($) => ['union', $.map(($) => (0, exports.Type)($, null))]);
139
+ case 'void': return _pa.ss($, ($) => ['void', null]);
140
+ default: return _pa.au($[0]);
141
+ }
142
+ });
143
+ exports.Type = Type;
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uX2JvaWxlcnBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9pbXBsZW1lbnRhdGlvbi9zY2hlbWFzL3R5cGVzY3JpcHRfbGlnaHQvbWlncmF0aW9uX2JvaWxlcnBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBT2hDLE1BQU0sVUFBVSxHQUFnQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQXdCLEVBQUU7SUFDaEcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNYLEtBQUssZUFBZSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSxrQkFBVSxFQUNuRixDQUFDLEVBQ0QsSUFBSSxDQUNQLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDSixLQUFLLGdCQUFnQixDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMvRCxZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3ZELE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFF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