@primmel/primmel 1.3.0 → 1.3.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.
@@ -2,5 +2,6 @@ import Process, { ResolvableProcess } from '../../types/process';
2
2
  import { Dumper, Parser, Resolver } from '../types';
3
3
  export declare const parseProcess: Parser;
4
4
  export declare const resolveProcess: Resolver<Process, ResolvableProcess>;
5
+ export declare function dumpProcessTree(process: Process, lookup: Map<string, Process>): string;
5
6
  export declare const dumpProcess: Dumper<Process>;
6
7
  //# sourceMappingURL=process.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/process.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAMpD,eAAO,MAAM,YAAY,EAAE,MAsD1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAuC/D,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,CA6CvC,CAAC"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/process.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAOpD,eAAO,MAAM,YAAY,EAAE,MA2F1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAuC/D,CAAC;AASF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CAeR;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,CA6CvC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dumpProcess = exports.resolveProcess = exports.parseProcess = void 0;
4
+ exports.dumpProcessTree = dumpProcessTree;
4
5
  const resolve_1 = require("../resolve");
5
6
  const tokenize_1 = require("../tokenize");
6
7
  const parse_block_1 = require("../parse-block");
@@ -16,6 +17,7 @@ const parseProcess = function (id, data) {
16
17
  page: null,
17
18
  measure: [],
18
19
  parent: '',
20
+ children: [],
19
21
  _relations: {
20
22
  actor: '',
21
23
  output: [],
@@ -24,6 +26,36 @@ const parseProcess = function (id, data) {
24
26
  page: '',
25
27
  },
26
28
  };
29
+ const childModifiers = [];
30
+ if (data.trim() !== '') {
31
+ const tokens = (0, tokenize_1.tokenizePackage)(data);
32
+ const filtered = [];
33
+ let i = 0;
34
+ while (i < tokens.length) {
35
+ if (tokens[i] === 'process' &&
36
+ i + 2 < tokens.length &&
37
+ tokens[i + 2].startsWith('{')) {
38
+ const childId = tokens[i + 1];
39
+ const childBlock = tokens[i + 2];
40
+ const childModifier = (0, exports.parseProcess)(childId, childBlock);
41
+ childModifiers.push((ctx) => {
42
+ ctx = childModifier(ctx);
43
+ const childProc = ctx.processes[childId];
44
+ if (childProc) {
45
+ childProc.parent = id;
46
+ }
47
+ return ctx;
48
+ });
49
+ result.children.push(childId);
50
+ i += 3;
51
+ }
52
+ else {
53
+ filtered.push(tokens[i]);
54
+ i++;
55
+ }
56
+ }
57
+ data = '{ ' + filtered.join(' ') + ' }';
58
+ }
27
59
  (0, parse_block_1.forEachEntry)(data, (keyword, value) => {
28
60
  if (keyword === 'modality') {
29
61
  result.modality = value();
@@ -59,6 +91,9 @@ const parseProcess = function (id, data) {
59
91
  }, { construct: 'process', id });
60
92
  return ctx => {
61
93
  ctx.processes[id] = result;
94
+ for (const mod of childModifiers) {
95
+ ctx = mod(ctx);
96
+ }
62
97
  return ctx;
63
98
  };
64
99
  };
@@ -101,6 +136,28 @@ const resolveProcess = function (ctx, unresolved) {
101
136
  return p;
102
137
  };
103
138
  exports.resolveProcess = resolveProcess;
139
+ function indentBlock(block) {
140
+ return block
141
+ .split('\n')
142
+ .map(line => (line ? ' ' + line : line))
143
+ .join('\n');
144
+ }
145
+ function dumpProcessTree(process, lookup) {
146
+ let out = (0, exports.dumpProcess)(process);
147
+ if (process.children.length > 0) {
148
+ const childBlocks = [];
149
+ for (const childId of process.children) {
150
+ const child = lookup.get(childId);
151
+ if (child) {
152
+ childBlocks.push(indentBlock(dumpProcessTree(child, lookup)));
153
+ }
154
+ }
155
+ if (childBlocks.length > 0) {
156
+ out = out.replace(/\n}\n$/, '\n' + childBlocks.join('\n') + '}\n');
157
+ }
158
+ }
159
+ return out;
160
+ }
104
161
  const dumpProcess = function (process) {
105
162
  let out = 'process ' + process.id + ' {\n';
106
163
  out += ' name "' + (0, tokenize_1.escapeString)(process.name) + '"\n';
@@ -141,7 +198,7 @@ const dumpProcess = function (process) {
141
198
  if (process.page !== null) {
142
199
  out += ' canvas ' + process.page.id + '\n';
143
200
  }
144
- if (process.parent) {
201
+ if (process.parent && process.children.length === 0) {
145
202
  out += ' parent ' + process.parent + '\n';
146
203
  }
147
204
  out += '}\n';
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../../src/ser-des/config/process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../../src/ser-des/config/process.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  import Standard from '../types/Standard';
2
2
  import { DumperConfiguration } from './types';
3
3
  /**
4
- * Serialize a Standard back to a .mmel string.
4
+ * Serialize a Standard back to a .prl string.
5
5
  *
6
6
  * `root` and `meta` are emitted first because they are singletons (not
7
7
  * arrays on Standard) and conventionally appear at the top of the file.
8
8
  * Every other field is dumped by iterating its array and calling the
9
9
  * registered per-item Dumper on each element.
10
+ *
11
+ * Processes are special-cased: nested child processes (those with a
12
+ * non-empty `parent` that also appear in another process's `children`)
13
+ * are emitted inside their parent's block, not at the top level.
10
14
  */
11
15
  export default function dump(model: Standard, dumpers: DumperConfiguration): string;
12
16
  //# sourceMappingURL=dump.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../../../src/ser-des/dump.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAC1B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAiBR"}
1
+ {"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../../../src/ser-des/dump.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAC1B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAiCR"}
@@ -2,13 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = dump;
4
4
  const metadata_1 = require("./config/metadata");
5
+ const process_1 = require("./config/process");
5
6
  /**
6
- * Serialize a Standard back to a .mmel string.
7
+ * Serialize a Standard back to a .prl string.
7
8
  *
8
9
  * `root` and `meta` are emitted first because they are singletons (not
9
10
  * arrays on Standard) and conventionally appear at the top of the file.
10
11
  * Every other field is dumped by iterating its array and calling the
11
12
  * registered per-item Dumper on each element.
13
+ *
14
+ * Processes are special-cased: nested child processes (those with a
15
+ * non-empty `parent` that also appear in another process's `children`)
16
+ * are emitted inside their parent's block, not at the top level.
12
17
  */
13
18
  function dump(model, dumpers) {
14
19
  let out = '';
@@ -16,7 +21,22 @@ function dump(model, dumpers) {
16
21
  out += 'root ' + model.root.id + '\n\n';
17
22
  }
18
23
  out += (0, metadata_1.dumpMetadata)(model.meta) + '\n';
24
+ const childIds = new Set();
25
+ for (const p of model.processes) {
26
+ for (const c of p.children) {
27
+ childIds.add(c);
28
+ }
29
+ }
30
+ const processMap = new Map(model.processes.map(p => [p.id, p]));
19
31
  Object.keys(dumpers).forEach(field => {
32
+ if (field === 'processes') {
33
+ for (const p of model.processes) {
34
+ if (!childIds.has(p.id)) {
35
+ out += (0, process_1.dumpProcessTree)(p, processMap);
36
+ }
37
+ }
38
+ return;
39
+ }
20
40
  const items = model[field];
21
41
  const dumper = dumpers[field];
22
42
  for (const item of items) {
@@ -1 +1 @@
1
- {"version":3,"file":"dump.js","sourceRoot":"","sources":["../../../src/ser-des/dump.ts"],"names":[],"mappings":";;AAYA,uBAoBC;AA/BD,gDAAiD;AAGjD;;;;;;;GAOG;AACH,SAAwB,IAAI,CAC1B,KAAe,EACf,OAA4B;IAE5B,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACxB,GAAG,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;IAC1C,CAAC;IAED,GAAG,IAAI,IAAA,uBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAsC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAc,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAA8B,CAAC;QAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"dump.js","sourceRoot":"","sources":["../../../src/ser-des/dump.ts"],"names":[],"mappings":";;AAiBA,uBAoCC;AApDD,gDAAiD;AACjD,8CAAmD;AAGnD;;;;;;;;;;;GAWG;AACH,SAAwB,IAAI,CAC1B,KAAe,EACf,OAA4B;IAE5B,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACxB,GAAG,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;IAC1C,CAAC;IAED,GAAG,IAAI,IAAA,uBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEvC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAsC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzE,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxB,GAAG,IAAI,IAAA,yBAAe,EAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAc,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAA8B,CAAC;QAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -14,6 +14,7 @@ export default interface Process {
14
14
  page: Subprocess | null;
15
15
  measure: string[];
16
16
  parent: string;
17
+ children: string[];
17
18
  }
18
19
  export type ResolvableProcess = Resolvable<Process, 'actor' | 'output' | 'input' | 'provision' | 'page'>;
19
20
  //# sourceMappingURL=process.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/types/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,MAAM,CAAC,OAAO,WAAW,OAAO;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CACxC,OAAO,EACP,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CACpD,CAAC"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/types/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,MAAM,CAAC,OAAO,WAAW,OAAO;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CACxC,OAAO,EACP,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CACpD,CAAC"}