exupery 0.1.30 → 0.2.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 (44) hide show
  1. package/dist/implementation/{operations → algorithms/operations}/impure/text/create_identifier.js +5 -5
  2. package/dist/implementation/algorithms/operations/impure/text/serialize_apostrophed_string.js +12 -0
  3. package/dist/implementation/algorithms/operations/impure/text/serialize_backticked_string.js +12 -0
  4. package/dist/implementation/algorithms/operations/impure/text/serialize_quoted_string.js +12 -0
  5. package/dist/implementation/{transformations → algorithms/transformations}/implementation/typescript_light.d.ts +4 -4
  6. package/dist/implementation/algorithms/transformations/implementation/typescript_light.js +572 -0
  7. package/dist/implementation/algorithms/transformations/interface/typescript_light.d.ts +25 -0
  8. package/dist/implementation/algorithms/transformations/interface/typescript_light.js +525 -0
  9. package/dist/implementation/algorithms/transformations/library/typescript_light.d.ts +10 -0
  10. package/dist/implementation/{transformations → algorithms/transformations}/library/typescript_light.js +1 -1
  11. package/dist/implementation/{transformations → algorithms/transformations}/typescript_light/fountain_pen_block.d.ts +1 -1
  12. package/dist/implementation/algorithms/transformations/typescript_light/fountain_pen_block.js +312 -0
  13. package/dist/implementation/generated/pareto/generic/resolve.js +5 -5
  14. package/dist/implementation/generated/pareto/generic/unmarshall.js +20 -20
  15. package/dist/interface/algorithms/operations/impure/text/create_identifier.d.ts +1 -0
  16. package/dist/interface/algorithms/operations/impure/text/create_identifier.js +5 -0
  17. package/dist/interface/algorithms/operations/impure/text/serialize_apostrophed_string.d.ts +1 -0
  18. package/dist/interface/algorithms/operations/impure/text/serialize_apostrophed_string.js +5 -0
  19. package/dist/interface/algorithms/operations/impure/text/serialize_backticked_string.d.ts +1 -0
  20. package/dist/interface/algorithms/operations/impure/text/serialize_backticked_string.js +5 -0
  21. package/dist/interface/algorithms/operations/impure/text/serialize_quoted_string.d.ts +1 -0
  22. package/dist/interface/algorithms/operations/impure/text/serialize_quoted_string.js +5 -0
  23. package/dist/interface/algorithms/transformations/implementation/typescript_light.d.ts +1 -0
  24. package/dist/interface/algorithms/transformations/implementation/typescript_light.js +5 -0
  25. package/dist/interface/algorithms/transformations/interface/typescript_light.d.ts +1 -0
  26. package/dist/interface/algorithms/transformations/interface/typescript_light.js +5 -0
  27. package/dist/interface/algorithms/transformations/library/typescript_light.d.ts +1 -0
  28. package/dist/interface/algorithms/transformations/library/typescript_light.js +5 -0
  29. package/dist/interface/algorithms/transformations/typescript_light/fountain_pen_block.d.ts +1 -0
  30. package/dist/interface/algorithms/transformations/typescript_light/fountain_pen_block.js +5 -0
  31. package/dist/shorthands/typescript_light.d.ts +2 -2
  32. package/package.json +7 -7
  33. package/dist/implementation/operations/impure/text/serialize_apostrophed_string.js +0 -12
  34. package/dist/implementation/operations/impure/text/serialize_backticked_string.js +0 -12
  35. package/dist/implementation/operations/impure/text/serialize_quoted_string.js +0 -12
  36. package/dist/implementation/transformations/implementation/typescript_light.js +0 -572
  37. package/dist/implementation/transformations/interface/typescript_light.d.ts +0 -25
  38. package/dist/implementation/transformations/interface/typescript_light.js +0 -525
  39. package/dist/implementation/transformations/library/typescript_light.d.ts +0 -10
  40. package/dist/implementation/transformations/typescript_light/fountain_pen_block.js +0 -312
  41. /package/dist/implementation/{operations → algorithms/operations}/impure/text/create_identifier.d.ts +0 -0
  42. /package/dist/implementation/{operations → algorithms/operations}/impure/text/serialize_apostrophed_string.d.ts +0 -0
  43. /package/dist/implementation/{operations → algorithms/operations}/impure/text/serialize_backticked_string.d.ts +0 -0
  44. /package/dist/implementation/{operations → algorithms/operations}/impure/text/serialize_quoted_string.d.ts +0 -0
@@ -1,312 +0,0 @@
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.Expression = exports.Statements = exports.String_Literal = exports.Identifier = exports.Block_Part = exports.Block = exports.Group_Part = exports.Group = void 0;
27
- const _ea = __importStar(require("exupery-core-alg"));
28
- const create_identifier_1 = require("../../operations/impure/text/create_identifier");
29
- const is_empty_1 = require("pareto-standard-operations/dist/implementation/operations/impure/list/is_empty");
30
- const is_empty_2 = require("pareto-standard-operations/dist/implementation/operations/impure/dictionary/is_empty");
31
- const enrich_with_position_information_1 = require("pareto-standard-operations/dist/implementation/operations/impure/list/enrich_with_position_information");
32
- const to_list_sorted_by_code_point_1 = require("pareto-standard-operations/dist/implementation/operations/impure/dictionary/to_list_sorted_by_code_point");
33
- const serialize_apostrophed_string_1 = require("../../operations/impure/text/serialize_apostrophed_string");
34
- const serialize_quoted_string_1 = require("../../operations/impure/text/serialize_quoted_string");
35
- const serialize_1 = require("exupery-standard-library/dist/implementation/operations/impure/approximate_number/serialize");
36
- const sh = __importStar(require("pareto-fountain-pen/dist/shorthands/block"));
37
- const Group = ($) => {
38
- return $.map(($) => (0, exports.Group_Part)($));
39
- };
40
- exports.Group = Group;
41
- const Group_Part = ($) => {
42
- return _ea.cc($, ($) => {
43
- switch ($[0]) {
44
- case 'block': return _ea.ss($, ($) => ['block', $]);
45
- case 'nothing': return _ea.ss($, ($) => ['nothing', null]);
46
- case 'optional': return _ea.ss($, ($) => ['optional', $.map(($) => (0, exports.Group_Part)($))]);
47
- case 'nested block': return _ea.ss($, ($) => ['nested block', (0, exports.Block)($)]);
48
- case 'sub group': return _ea.ss($, ($) => ['sub group', (0, exports.Group)($)]);
49
- default: return _ea.au($[0]);
50
- }
51
- });
52
- };
53
- exports.Group_Part = Group_Part;
54
- const Block = ($) => {
55
- return $.map(($) => (0, exports.Block_Part)($));
56
- };
57
- exports.Block = Block;
58
- const Block_Part = ($) => {
59
- return _ea.cc($, ($) => {
60
- switch ($[0]) {
61
- case 'snippet': return _ea.ss($, ($) => sh.b.snippet($));
62
- case 'nothing': return _ea.ss($, ($) => ['nothing', null]);
63
- case 'optional': return _ea.ss($, ($) => ['optional', $.map(($) => (0, exports.Block_Part)($))]);
64
- case 'indent': return _ea.ss($, ($) => ['indent', (0, exports.Group)($)]);
65
- case 'sub block': return _ea.ss($, ($) => ['sub block', (0, exports.Block)($)]);
66
- default: return _ea.au($[0]);
67
- }
68
- });
69
- };
70
- exports.Block_Part = Block_Part;
71
- const Identifier = ($ //FIX should have been a schema type
72
- ) => {
73
- return sh.b.snippet((0, create_identifier_1.$$)([$]));
74
- };
75
- exports.Identifier = Identifier;
76
- const String_Literal = ($, $p) => {
77
- return sh.b.snippet($p.delimiter === "quote" ? (0, serialize_quoted_string_1.$$)($) : (0, serialize_apostrophed_string_1.$$)($));
78
- };
79
- exports.String_Literal = String_Literal;
80
- const Statements = ($, $p) => sh.g.sub($.map(($) => sh.g.nested_block([
81
- _ea.cc($, ($) => {
82
- switch ($[0]) {
83
- case 'import': return _ea.ss($, ($) => sh.b.sub([
84
- sh.b.snippet("import "),
85
- _ea.cc($.type, ($) => {
86
- switch ($[0]) {
87
- case 'named': return _ea.ss($, ($) => sh.b.sub([
88
- sh.b.snippet("{ "),
89
- sh.b.sub((0, to_list_sorted_by_code_point_1.$$)($.specifiers).map(($) => sh.b.sub([
90
- (0, exports.Identifier)($.key),
91
- sh.b.snippet(", ")
92
- ]))),
93
- sh.b.snippet("}"),
94
- ]));
95
- case 'namespace': return _ea.ss($, ($) => sh.b.sub([
96
- sh.b.snippet("* as "),
97
- (0, exports.Identifier)($),
98
- ]));
99
- default: return _ea.au($[0]);
100
- }
101
- }),
102
- sh.b.snippet(" from "),
103
- (0, exports.String_Literal)($.from, { 'delimiter': "quote" }),
104
- ]));
105
- case 'module declaration': return _ea.ss($, ($) => sh.b.sub([
106
- $.export ? sh.b.snippet("export ") : sh.b.nothing(),
107
- sh.b.snippet("namespace {"),
108
- sh.b.indent([
109
- (0, exports.Statements)($['block'], $p),
110
- ]),
111
- sh.b.snippet("}"),
112
- ]));
113
- case 'type alias declaration': return _ea.ss($, ($) => sh.b.sub([
114
- $.export ? sh.b.snippet("export ") : sh.b.nothing(),
115
- sh.b.snippet("type "),
116
- (0, exports.Identifier)($['name']),
117
- (0, is_empty_1.$$)($['parameters'])
118
- ? sh.b.nothing()
119
- : sh.b.sub([
120
- sh.b.snippet("<"),
121
- sh.b.sub((0, enrich_with_position_information_1.$$)($['parameters']).map(($) => sh.b.sub([
122
- (0, exports.Identifier)($.value),
123
- $['is last'] ? sh.b.nothing() : sh.b.snippet(", ")
124
- ]))),
125
- sh.b.snippet(">"),
126
- ]),
127
- sh.b.snippet(" = "),
128
- (0, exports.Type)($['type'], $p),
129
- ]));
130
- case 'variable': return _ea.ss($, ($) => sh.b.sub([
131
- $.export ? sh.b.snippet("export ") : sh.b.nothing(),
132
- $.const ? sh.b.snippet("const ") : sh.b.snippet("let "),
133
- (0, exports.Identifier)($['name']),
134
- $.type.transform(($) => sh.b.sub([
135
- sh.b.snippet(": "),
136
- (0, exports.Type)($, $p)
137
- ]), () => sh.b.nothing()),
138
- $.expression.transform(($) => sh.b.sub([
139
- sh.b.snippet("= "),
140
- (0, exports.Expression)($, $p)
141
- ]), () => sh.b.nothing()),
142
- ]));
143
- default: return _ea.au($[0]);
144
- }
145
- })
146
- ])));
147
- exports.Statements = Statements;
148
- const Expression = ($, $p) => _ea.cc($, ($) => {
149
- switch ($[0]) {
150
- case 'array literal': return _ea.ss($, ($) => sh.b.sub([
151
- sh.b.snippet("["),
152
- sh.b.indent([
153
- sh.g.sub((0, enrich_with_position_information_1.$$)($).map(($) => sh.g.nested_block([
154
- (0, exports.Expression)($.value, $p),
155
- $['is last'] ? sh.b.nothing() : sh.b.snippet(", ")
156
- ]))),
157
- ]),
158
- sh.b.snippet("]"),
159
- ]));
160
- case 'arrow function': return _ea.ss($, ($) => sh.b.sub([
161
- sh.b.snippet("("),
162
- sh.b.indent([
163
- sh.g.sub($.parameters.map(($) => sh.g.nested_block([
164
- (0, exports.Identifier)($.name),
165
- $.type.transform(($) => sh.b.sub([
166
- sh.b.snippet(": "),
167
- (0, exports.Type)($, $p)
168
- ]), () => sh.b.nothing()),
169
- sh.b.snippet(",")
170
- ]))),
171
- ]),
172
- sh.b.snippet(")"),
173
- $['return type'].transform(($) => sh.b.sub([
174
- sh.b.snippet(": "),
175
- (0, exports.Type)($, $p)
176
- ]), () => sh.b.nothing()),
177
- sh.b.snippet(" => "),
178
- _ea.cc($.type, ($) => {
179
- switch ($[0]) {
180
- case 'block': return _ea.ss($, ($) => sh.b.sub([
181
- sh.b.snippet("{"),
182
- sh.b.indent([
183
- (0, exports.Statements)($, $p),
184
- ]),
185
- sh.b.snippet("}"),
186
- ]));
187
- case 'expression': return _ea.ss($, ($) => (0, exports.Expression)($, $p));
188
- default: return _ea.au($[0]);
189
- }
190
- }),
191
- ]));
192
- case 'call': return _ea.ss($, ($) => sh.b.sub([
193
- (0, exports.Expression)($['function selection'], $p),
194
- sh.b.snippet("("),
195
- sh.b.indent([
196
- sh.g.sub((0, enrich_with_position_information_1.$$)($['arguments']).map(($) => sh.g.nested_block([
197
- (0, exports.Expression)($.value, $p),
198
- $['is last'] ? sh.b.nothing() : sh.b.snippet(", ")
199
- ]))),
200
- ]),
201
- sh.b.snippet(")"),
202
- ]));
203
- case 'false': return _ea.ss($, ($) => sh.b.snippet("false"));
204
- case 'null': return _ea.ss($, ($) => sh.b.snippet("null"));
205
- case 'number literal': return _ea.ss($, ($) => sh.b.snippet((0, serialize_1.$$)($)));
206
- case 'object literal': return _ea.ss($, ($) => sh.b.sub([
207
- sh.b.snippet("{"),
208
- sh.b.indent([
209
- sh.g.sub((0, to_list_sorted_by_code_point_1.$$)($.properties).map(($) => sh.g.nested_block([
210
- (0, exports.String_Literal)($.key, { 'delimiter': "apostrophe" }),
211
- sh.b.snippet(": "),
212
- (0, exports.Expression)($.value, $p),
213
- sh.b.snippet(",")
214
- ]))),
215
- ]),
216
- sh.b.snippet("}"),
217
- ]));
218
- case 'string literal': return _ea.ss($, ($) => sh.b.sub([
219
- sh.b.snippet($['delimiter'][0] === "quote" ? (0, serialize_quoted_string_1.$$)($['value']) : (0, serialize_apostrophed_string_1.$$)($['value']))
220
- ]));
221
- case 'true': return _ea.ss($, ($) => sh.b.snippet("true"));
222
- default: return _ea.au($[0]);
223
- }
224
- });
225
- exports.Expression = Expression;
226
- const Type = ($, $p) => _ea.cc($, ($) => {
227
- switch ($[0]) {
228
- case 'boolean': return _ea.ss($, ($) => sh.b.snippet("boolean"));
229
- case 'function': return _ea.ss($, ($) => sh.b.sub([
230
- (0, is_empty_1.$$)($['type parameters'])
231
- ? sh.b.nothing()
232
- : sh.b.sub([
233
- sh.b.snippet("<"),
234
- sh.b.sub((0, enrich_with_position_information_1.$$)($['type parameters']).map(($) => sh.b.sub([
235
- (0, exports.Identifier)($.value),
236
- $['is last'] ? sh.b.nothing() : sh.b.snippet(", ")
237
- ]))),
238
- sh.b.snippet(">"),
239
- ]), sh.b.snippet("("),
240
- sh.b.indent([
241
- sh.g.sub($['parameters'].map(($) => sh.g.nested_block([
242
- (0, exports.Identifier)($.name),
243
- $.type.transform(($) => sh.b.sub([
244
- sh.b.snippet(": "),
245
- (0, exports.Type)($, $p)
246
- ]), () => sh.b.nothing()),
247
- sh.b.snippet(",")
248
- ]))),
249
- ]),
250
- sh.b.snippet(") => "),
251
- (0, exports.Type)($['return'], $p)
252
- ]));
253
- case 'literal type': return _ea.ss($, ($) => (0, exports.String_Literal)($.value, { 'delimiter': $.delimiter[0] })); //FIX, implement a switch for the delimiter
254
- case 'null': return _ea.ss($, ($) => sh.b.snippet("null"));
255
- case 'number': return _ea.ss($, ($) => sh.b.snippet("number"));
256
- case 'string': return _ea.ss($, ($) => sh.b.snippet("string"));
257
- case 'tuple': return _ea.ss($, ($) => sh.b.sub([
258
- $.readonly ? sh.b.snippet("readonly ") : sh.b.nothing(),
259
- sh.b.snippet("["),
260
- sh.b.sub((0, enrich_with_position_information_1.$$)($['elements']).map(($) => sh.b.sub([
261
- (0, exports.Type)($.value, $p),
262
- $['is last']
263
- ? sh.b.nothing()
264
- : sh.b.snippet(", ")
265
- ]))),
266
- sh.b.snippet("]"),
267
- ]));
268
- case 'type literal': return _ea.ss($, ($) => $p['replace empty type literals by null'] && (0, is_empty_2.$$)($['properties'])
269
- ? sh.b.snippet("null")
270
- : sh.b.sub([
271
- sh.b.snippet("{"),
272
- sh.b.indent([
273
- sh.g.sub((0, to_list_sorted_by_code_point_1.$$)($['properties']).map(($) => sh.g.sub([
274
- sh.g.nested_block([
275
- $.value['readonly'] ? sh.b.snippet("readonly ") : sh.b.nothing(),
276
- (0, exports.String_Literal)($.key, { 'delimiter': "apostrophe" }),
277
- sh.b.snippet(": "),
278
- (0, exports.Type)($.value.type, $p),
279
- ])
280
- ]))),
281
- ]),
282
- sh.b.snippet("}")
283
- ]));
284
- case 'type reference': return _ea.ss($, ($) => sh.b.sub([
285
- (0, exports.Identifier)($['start']),
286
- sh.b.sub($['tail'].map(($) => sh.b.sub([
287
- sh.b.snippet("."),
288
- (0, exports.Identifier)($),
289
- ]))),
290
- (0, is_empty_1.$$)($['type arguments'])
291
- ? sh.b.nothing()
292
- : sh.b.sub([
293
- sh.b.snippet("<"),
294
- sh.b.sub((0, enrich_with_position_information_1.$$)($['type arguments']).map(($) => sh.b.sub([
295
- (0, exports.Type)($['value'], $p),
296
- $['is last'] ? sh.b.nothing() : sh.b.snippet(", "),
297
- ]))),
298
- sh.b.snippet(">"),
299
- ]),
300
- ]));
301
- case 'union': return _ea.ss($, ($) => sh.b.indent([
302
- sh.g.sub($.map(($) => sh.g.nested_block([
303
- sh.b.snippet("| "),
304
- (0, exports.Type)($, $p),
305
- ])))
306
- ]));
307
- case 'void': return _ea.ss($, ($) => sh.b.snippet("void"));
308
- default: return _ea.au($[0]);
309
- }
310
- });
311
- exports.Type = Type;
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm91bnRhaW5fcGVuX2Jsb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL3RyYW5zZm9ybWF0aW9ucy90eXBlc2NyaXB0X2xpZ2h0L2ZvdW50YWluX3Blbl9ibG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUF1QztBQU12QyxzRkFBMkY7QUFDM0YsNkdBQXVIO0FBQ3ZILG1IQUFtSTtBQUNuSSw2SkFBZ0w7QUFDaEwsMkpBQXNKO0FBQ3RKLDRHQUF3SDtBQUN4SCxrR0FBOEc7QUFDOUcsMkhBQW1KO0FBRW5KLDhFQUErRDtBQUV4RCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQWEsRUFBa0IsRUFBRTtJQUNuRCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsa0JBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3RDLENBQUMsQ0FBQTtBQUZZLFFBQUEsS0FBSyxTQUVqQjtBQUVNLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBa0IsRUFBdUIsRUFBRTtJQUNsRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUF1QixFQUFFO1FBQ3hDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDbkQsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQzFE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