@bscotch/gcdata 0.19.0 → 0.20.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 (86) hide show
  1. package/dist/GameChanger.js +1 -1
  2. package/dist/GameChanger.js.map +1 -1
  3. package/dist/assert.js.map +1 -1
  4. package/dist/cl2.comfort.d.ts +4 -0
  5. package/dist/cl2.comfort.d.ts.map +1 -0
  6. package/dist/cl2.comfort.js +4 -0
  7. package/dist/cl2.comfort.js.map +1 -0
  8. package/dist/cl2.comfort.parse.d.ts +7 -0
  9. package/dist/cl2.comfort.parse.d.ts.map +1 -0
  10. package/dist/cl2.comfort.parse.js +257 -0
  11. package/dist/cl2.comfort.parse.js.map +1 -0
  12. package/dist/cl2.comfort.pointers.d.ts +3 -0
  13. package/dist/cl2.comfort.pointers.d.ts.map +1 -0
  14. package/dist/cl2.comfort.pointers.js +2 -0
  15. package/dist/cl2.comfort.pointers.js.map +1 -0
  16. package/dist/cl2.comfort.stringify.d.ts +4 -0
  17. package/dist/cl2.comfort.stringify.d.ts.map +1 -0
  18. package/dist/cl2.comfort.stringify.js +23 -0
  19. package/dist/cl2.comfort.stringify.js.map +1 -0
  20. package/dist/cl2.comfort.types.d.ts +36 -0
  21. package/dist/cl2.comfort.types.d.ts.map +1 -0
  22. package/dist/cl2.comfort.types.js +87 -0
  23. package/dist/cl2.comfort.types.js.map +1 -0
  24. package/dist/cl2.quest.parse.d.ts.map +1 -1
  25. package/dist/cl2.quest.parse.js +76 -5
  26. package/dist/cl2.quest.parse.js.map +1 -1
  27. package/dist/cl2.quest.pointers.d.ts +1 -1
  28. package/dist/cl2.quest.pointers.d.ts.map +1 -1
  29. package/dist/cl2.quest.stringify.d.ts.map +1 -1
  30. package/dist/cl2.quest.stringify.js +13 -0
  31. package/dist/cl2.quest.stringify.js.map +1 -1
  32. package/dist/cl2.quest.types.d.ts +5 -80
  33. package/dist/cl2.quest.types.d.ts.map +1 -1
  34. package/dist/cl2.quest.types.js +4 -84
  35. package/dist/cl2.quest.types.js.map +1 -1
  36. package/dist/cl2.quest.utils.d.ts +2 -1
  37. package/dist/cl2.quest.utils.d.ts.map +1 -1
  38. package/dist/cl2.quest.utils.js +12 -1
  39. package/dist/cl2.quest.utils.js.map +1 -1
  40. package/dist/cl2.shared.types.d.ts +85 -0
  41. package/dist/cl2.shared.types.d.ts.map +1 -0
  42. package/dist/cl2.shared.types.js +84 -0
  43. package/dist/cl2.shared.types.js.map +1 -0
  44. package/dist/cl2.storyline.parse.d.ts.map +1 -1
  45. package/dist/cl2.storyline.parse.js +102 -9
  46. package/dist/cl2.storyline.parse.js.map +1 -1
  47. package/dist/cl2.storyline.pointers.d.ts +1 -1
  48. package/dist/cl2.storyline.pointers.d.ts.map +1 -1
  49. package/dist/cl2.storyline.stringify.d.ts.map +1 -1
  50. package/dist/cl2.storyline.stringify.js +14 -0
  51. package/dist/cl2.storyline.stringify.js.map +1 -1
  52. package/dist/cl2.storyline.types.d.ts +7 -5
  53. package/dist/cl2.storyline.types.d.ts.map +1 -1
  54. package/dist/cl2.storyline.types.js +2 -61
  55. package/dist/cl2.storyline.types.js.map +1 -1
  56. package/dist/cl2.types.auto.d.ts +15646 -13183
  57. package/dist/cl2.types.auto.d.ts.map +1 -1
  58. package/dist/cl2.types.editor.d.ts +8 -0
  59. package/dist/cl2.types.editor.d.ts.map +1 -1
  60. package/dist/cl3.storyline.d.ts +4 -0
  61. package/dist/cl3.storyline.d.ts.map +1 -0
  62. package/dist/cl3.storyline.js +4 -0
  63. package/dist/cl3.storyline.js.map +1 -0
  64. package/dist/cl3.storyline.parse.d.ts +7 -0
  65. package/dist/cl3.storyline.parse.d.ts.map +1 -0
  66. package/dist/cl3.storyline.parse.js +257 -0
  67. package/dist/cl3.storyline.parse.js.map +1 -0
  68. package/dist/cl3.storyline.pointers.d.ts +3 -0
  69. package/dist/cl3.storyline.pointers.d.ts.map +1 -0
  70. package/dist/cl3.storyline.pointers.js +2 -0
  71. package/dist/cl3.storyline.pointers.js.map +1 -0
  72. package/dist/cl3.storyline.stringify.d.ts +4 -0
  73. package/dist/cl3.storyline.stringify.d.ts.map +1 -0
  74. package/dist/cl3.storyline.stringify.js +23 -0
  75. package/dist/cl3.storyline.stringify.js.map +1 -0
  76. package/dist/cl3.storyline.types.d.ts +36 -0
  77. package/dist/cl3.storyline.types.d.ts.map +1 -0
  78. package/dist/cl3.storyline.types.js +87 -0
  79. package/dist/cl3.storyline.types.js.map +1 -0
  80. package/dist/helpers.js.map +1 -1
  81. package/dist/types.js.map +1 -1
  82. package/dist/util.d.ts +2 -1
  83. package/dist/util.d.ts.map +1 -1
  84. package/dist/util.js +3 -0
  85. package/dist/util.js.map +1 -1
  86. package/package.json +6 -6
@@ -1,7 +1,9 @@
1
1
  import { assert } from './assert.js';
2
- import { arrayTagPattern, getStorylineSchema, lineIsArrayItem, linePatterns, parseIfMatch, storylineSchemaId, } from './cl2.storyline.types.js';
3
- import { createBsArrayKey } from './helpers.js';
4
- import { checkWords } from './util.js';
2
+ import { getStagingOptions } from './cl2.quest.utils.js';
3
+ import { arrayTagPattern, lineIsArrayItem, parseIfMatch, } from './cl2.shared.types.js';
4
+ import { getStorylineMote, getStorylineSchema, linePatterns, storylineSchemaId, } from './cl2.storyline.types.js';
5
+ import { bsArrayToArray, createBsArrayKey, updateBsArrayOrder, } from './helpers.js';
6
+ import { checkWords, includes } from './util.js';
5
7
  export function parseStringifiedStoryline(text, packed, options = {}) {
6
8
  const result = {
7
9
  diagnostics: [],
@@ -9,8 +11,16 @@ export function parseStringifiedStoryline(text, packed, options = {}) {
9
11
  edits: [],
10
12
  completions: [],
11
13
  words: [],
12
- parsed: {},
14
+ parsed: {
15
+ comments: [],
16
+ },
13
17
  };
18
+ const availableGlobalLabels = new Set([
19
+ 'Name',
20
+ 'Description',
21
+ 'Stage',
22
+ ]);
23
+ const stagingOptions = getStagingOptions(packed.working);
14
24
  /** Terms from the glossary for use in autocompletes */
15
25
  const glossaryTerms = (packed.glossary?.relevantTerms() || []).map((t) => t.text);
16
26
  const checkSpelling = (item) => {
@@ -31,10 +41,6 @@ export function parseStringifiedStoryline(text, packed, options = {}) {
31
41
  lineNumber++;
32
42
  continue;
33
43
  }
34
- // Is this just a blank line?
35
- if (!line) {
36
- continue;
37
- }
38
44
  const lineRange = {
39
45
  start: {
40
46
  index,
@@ -47,6 +53,17 @@ export function parseStringifiedStoryline(text, packed, options = {}) {
47
53
  character: line.length,
48
54
  },
49
55
  };
56
+ // Is this just a blank line?
57
+ if (!line) {
58
+ // Add global autocompletes
59
+ result.completions.push({
60
+ type: 'labels',
61
+ start: lineRange.start,
62
+ end: lineRange.end,
63
+ options: availableGlobalLabels,
64
+ });
65
+ continue;
66
+ }
50
67
  // Find the first matching pattern and pull the values from it.
51
68
  let parsedLine = null;
52
69
  for (const pattern of linePatterns) {
@@ -90,6 +107,11 @@ export function parseStringifiedStoryline(text, packed, options = {}) {
90
107
  value: arrayTag,
91
108
  };
92
109
  }
110
+ // If this has a label, remove it from the list of available labels
111
+ if (parsedLine.label?.value &&
112
+ availableGlobalLabels.has(parsedLine.label.value)) {
113
+ availableGlobalLabels.delete(parsedLine.label.value);
114
+ }
93
115
  // If this has a text section, provide glossary autocompletes
94
116
  if ('text' in parsedLine) {
95
117
  const start = parsedLine.text.start;
@@ -103,7 +125,16 @@ export function parseStringifiedStoryline(text, packed, options = {}) {
103
125
  }
104
126
  // Work through each line type to add diagnostics and completions
105
127
  const labelLower = parsedLine.label?.value?.toLowerCase();
106
- if (labelLower === 'name') {
128
+ const indicator = parsedLine.indicator?.value;
129
+ if (indicator === '//') {
130
+ // Then this is a comment/note
131
+ result.parsed.comments.push({
132
+ id: parsedLine.arrayTag?.value?.trim(),
133
+ text: parsedLine.text?.value?.trim(),
134
+ });
135
+ checkSpelling(parsedLine.text);
136
+ }
137
+ else if (labelLower === 'name') {
107
138
  result.parsed.name = parsedLine.text?.value?.trim();
108
139
  if (!result.parsed.name) {
109
140
  result.diagnostics.push({
@@ -116,6 +147,25 @@ export function parseStringifiedStoryline(text, packed, options = {}) {
116
147
  result.parsed.description = parsedLine.text?.value?.trim();
117
148
  checkSpelling(parsedLine.text);
118
149
  }
150
+ else if (labelLower === 'stage') {
151
+ const stage = parsedLine.text?.value?.trim();
152
+ if (includes(stagingOptions, stage)) {
153
+ result.parsed.stage = stage;
154
+ }
155
+ else {
156
+ result.diagnostics.push({
157
+ message: `Stage must be one of: ${stagingOptions.join(', ')}`,
158
+ ...lineRange,
159
+ });
160
+ // Provide autocomplete options
161
+ result.completions.push({
162
+ type: 'stages',
163
+ options: stagingOptions,
164
+ start: parsedLine.labelGroup.end,
165
+ end: lineRange.end,
166
+ });
167
+ }
168
+ }
119
169
  else {
120
170
  // Then we're in an error state on this line!
121
171
  result.diagnostics.push({
@@ -142,6 +192,8 @@ export async function updateChangesFromParsedStoryline(parsed, moteId, packed) {
142
192
  // We're always going to be computing ALL changes, so clear whatever
143
193
  // we previously had.
144
194
  packed.clearMoteChanges(moteId);
195
+ const storylineMoteBase = getStorylineMote(packed.base, moteId);
196
+ const storylineMoteWorking = getStorylineMote(packed.working, moteId);
145
197
  const schema = getStorylineSchema(packed.working);
146
198
  assert(schema, `${storylineSchemaId} schema not found in working copy`);
147
199
  assert(schema.name, 'Quest mote must have a name pointer');
@@ -150,6 +202,47 @@ export async function updateChangesFromParsedStoryline(parsed, moteId, packed) {
150
202
  };
151
203
  updateMote('data/name/text', parsed.name);
152
204
  updateMote('data/description/text', parsed.description);
205
+ if (parsed.stage) {
206
+ updateMote('data/wip/staging', parsed.stage);
207
+ }
208
+ else if (storylineMoteWorking?.data.wip) {
209
+ updateMote('data/wip/staging', null);
210
+ }
211
+ const parsedComments = parsed.comments.filter((c) => !!c.text);
212
+ //#region COMMENTS
213
+ // Add/Update COMMENTS
214
+ trace(`Updating comments`);
215
+ for (const comment of parsedComments) {
216
+ trace(`Updating comment ${comment.id} with text "${comment.text}"`);
217
+ updateMote(`data/wip/notes/${comment.id}/element/text`, comment.text);
218
+ }
219
+ // Remove deleted comments
220
+ for (const existingComment of bsArrayToArray(storylineMoteBase?.data.wip?.notes || {})) {
221
+ if (!parsedComments.find((c) => c.id === existingComment.id)) {
222
+ trace(`Deleting comment ${existingComment.id}`);
223
+ updateMote(`data/wip/notes/${existingComment.id}`, null);
224
+ }
225
+ }
226
+ // Get the BASE order of the comments (if any) and use those
227
+ // as the starting point for an up to date order.
228
+ const comments = parsedComments.map((c) => {
229
+ // Look up the base comment
230
+ let comment = storylineMoteBase?.data.wip?.notes?.[c.id];
231
+ if (!comment) {
232
+ comment = storylineMoteWorking?.data.wip?.notes?.[c.id];
233
+ // @ts-expect-error - order is a required field, but it'll be re-added
234
+ delete comment?.order;
235
+ }
236
+ assert(comment, `Comment ${c.id} not found in base or working mote`);
237
+ return { ...comment, id: c.id };
238
+ });
239
+ trace('Updating comment order');
240
+ updateBsArrayOrder(comments);
241
+ comments.forEach((comment) => {
242
+ trace(`Updating comment ${comment.id} order to ${comment.order}`);
243
+ updateMote(`data/wip/notes/${comment.id}/order`, comment.order);
244
+ });
245
+ //#endregion
153
246
  trace(`Writing changes`);
154
247
  await packed.writeChanges();
155
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.storyline.parse.js","sourceRoot":"","sources":["../src/cl2.storyline.parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cl2.storyline.parse.js","sourceRoot":"","sources":["../src/cl2.storyline.parse.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export type StorylineMoteDataPointer = `data/${StorylineMotePointer}`;
2
- export type StorylineMotePointer = `` | `description/description` | `description/skip` | `description/text` | `description` | `icon` | `name/description` | `name/skip` | `name/text` | `name` | `order` | `wip/audio` | `wip/balance` | `wip/comments/${string}/element` | `wip/comments/${string}/order` | `wip/comments/${string}` | `wip/comments` | `wip/draft` | `wip/integration` | `wip/mechanics` | `wip/text` | `wip/visuals` | `wip`;
2
+ export type StorylineMotePointer = `` | `description/description` | `description/skip` | `description/text` | `description` | `icon` | `name/description` | `name/skip` | `name/text` | `name` | `order` | `wip/notes/${string}/element/author` | `wip/notes/${string}/element/text` | `wip/notes/${string}/element/timestamp` | `wip/notes/${string}/element` | `wip/notes/${string}/order` | `wip/notes/${string}` | `wip/notes` | `wip/staging` | `wip`;
3
3
  //# sourceMappingURL=cl2.storyline.pointers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.storyline.pointers.d.ts","sourceRoot":"","sources":["../src/cl2.storyline.pointers.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAAG,QAAQ,oBAAoB,EAAE,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,EAAE,GACjC,yBAAyB,GACzB,kBAAkB,GAClB,kBAAkB,GAClB,aAAa,GACb,MAAM,GACN,kBAAkB,GAClB,WAAW,GACX,WAAW,GACX,MAAM,GACN,OAAO,GACP,WAAW,GACX,aAAa,GACb,gBAAgB,MAAM,UAAU,GAChC,gBAAgB,MAAM,QAAQ,GAC9B,gBAAgB,MAAM,EAAE,GACxB,cAAc,GACd,WAAW,GACX,iBAAiB,GACjB,eAAe,GACf,UAAU,GACV,aAAa,GACb,KAAK,CAAC"}
1
+ {"version":3,"file":"cl2.storyline.pointers.d.ts","sourceRoot":"","sources":["../src/cl2.storyline.pointers.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAAG,QAAQ,oBAAoB,EAAE,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,EAAE,GACjC,yBAAyB,GACzB,kBAAkB,GAClB,kBAAkB,GAClB,aAAa,GACb,MAAM,GACN,kBAAkB,GAClB,WAAW,GACX,WAAW,GACX,MAAM,GACN,OAAO,GACP,aAAa,MAAM,iBAAiB,GACpC,aAAa,MAAM,eAAe,GAClC,aAAa,MAAM,oBAAoB,GACvC,aAAa,MAAM,UAAU,GAC7B,aAAa,MAAM,QAAQ,GAC3B,aAAa,MAAM,EAAE,GACrB,WAAW,GACX,aAAa,GACb,KAAK,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.storyline.stringify.d.ts","sourceRoot":"","sources":["../src/cl2.storyline.stringify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,WAAW,GAClB,MAAM,CAOR"}
1
+ {"version":3,"file":"cl2.storyline.stringify.d.ts","sourceRoot":"","sources":["../src/cl2.storyline.stringify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,WAAW,GAClB,MAAM,CA2BR"}
@@ -1,9 +1,23 @@
1
+ import { bsArrayToArray, toArrayTag } from './helpers.js';
1
2
  export function stringifyStoryline(mote, packed) {
2
3
  // METADATA
3
4
  const blocks = [
4
5
  `Name: ${packed.working.getMoteName(mote)}`,
5
6
  `Description: ${mote.data.description?.text || ''}\n`,
6
7
  ];
8
+ if (mote.data.wip?.staging) {
9
+ blocks.push(`Stage: ${mote.data.wip.staging}\n`);
10
+ }
11
+ else {
12
+ blocks.push('');
13
+ }
14
+ // NOTES
15
+ if (mote.data.wip?.notes) {
16
+ const comments = bsArrayToArray(mote.data.wip.notes);
17
+ if (comments.length) {
18
+ blocks.push(...bsArrayToArray(mote.data.wip.notes).map((c) => `//${toArrayTag(c.id)} ${c.element.text}`), '');
19
+ }
20
+ }
7
21
  return blocks.join('\n');
8
22
  }
9
23
  //# sourceMappingURL=cl2.storyline.stringify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.storyline.stringify.js","sourceRoot":"","sources":["../src/cl2.storyline.stringify.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB,CAChC,IAAmB,EACnB,MAAmB;IAEnB,WAAW;IACX,MAAM,MAAM,GAAa;QACvB,SAAS,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;QAC3C,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,IAAI;KACtD,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"cl2.storyline.stringify.js","sourceRoot":"","sources":["../src/cl2.storyline.stringify.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,UAAU,kBAAkB,CAChC,IAAmB,EACnB,MAAmB;IAEnB,WAAW;IACX,MAAM,MAAM,GAAa;QACvB,SAAS,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;QAC3C,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,IAAI;KACtD,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ;IACR,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CACT,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CACjD,EACD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import type { Gcdata } from './GameChanger.js';
2
- import type { ParsedLine } from './cl2.quest.types.js';
3
2
  import type { Crashlands2 } from './cl2.types.auto.js';
4
3
  import type { ParsedBase, ParserResult } from './cl2.types.editor.js';
5
- import type { Position, Range } from './types.editor.js';
4
+ import type { Range } from './types.editor.js';
6
5
  import type { BschemaRoot, Mote } from './types.js';
7
6
  export declare const storylineSchemaId = "cl2_storyline";
8
7
  export type StorylineData = Crashlands2.Schemas['cl2_storyline'];
@@ -10,6 +9,12 @@ export type StorylineMote = Mote<StorylineData>;
10
9
  type CompletionsData = {
11
10
  type: 'glossary';
12
11
  options: string[];
12
+ } | {
13
+ type: 'stages';
14
+ options: string[];
15
+ } | {
16
+ type: 'labels';
17
+ options: Set<string>;
13
18
  };
14
19
  export interface StorylineUpdateResult extends ParserResult {
15
20
  parsed: ParsedBase & {
@@ -22,9 +27,6 @@ export declare function isStorylineMote(mote: any): mote is StorylineMote;
22
27
  export declare function getStorylineMote(gcData: Gcdata, moteId: string): StorylineMote | undefined;
23
28
  export declare function getStorylineMotes(gcData: Gcdata): StorylineMote[];
24
29
  export declare function getStorylineSchema(gcData: Gcdata): BschemaRoot | undefined;
25
- export declare const arrayTagPattern = "(?:#(?<arrayTag>[a-z0-9]+))";
26
30
  export declare const linePatterns: string[];
27
- export declare function parseIfMatch(pattern: string, line: string, startPosition: Position): ParsedLine | null;
28
- export declare function lineIsArrayItem(line: string): boolean;
29
31
  export {};
30
32
  //# sourceMappingURL=cl2.storyline.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.storyline.types.d.ts","sourceRoot":"","sources":["../src/cl2.storyline.types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAEhD,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAC/D,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,MAAM,EAAE,UAAU,GAAG;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,CAAC;CAC1C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAE9D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,aAAa,CAEhE;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,aAAa,GAAG,SAAS,CAI3B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAGjE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE1E;AAyBD,eAAO,MAAM,eAAe,gCAAgC,CAAC;AAE7D,eAAO,MAAM,YAAY,UAKxB,CAAC;AAEF,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,QAAQ,GACtB,UAAU,GAAG,IAAI,CAmCnB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD"}
1
+ {"version":3,"file":"cl2.storyline.types.d.ts","sourceRoot":"","sources":["../src/cl2.storyline.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAEhD,KAAK,eAAe,GAChB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAC7C,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,MAAM,EAAE,UAAU,GAAG;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,CAAC;CAC1C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAE9D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,aAAa,CAEhE;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,aAAa,GAAG,SAAS,CAI3B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAGjE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE1E;AAED,eAAO,MAAM,YAAY,UAKxB,CAAC"}
@@ -1,5 +1,5 @@
1
- import { z } from 'zod';
2
1
  import { assert } from './assert.js';
2
+ import { arrayTagPattern } from './cl2.shared.types.js';
3
3
  export const storylineSchemaId = 'cl2_storyline';
4
4
  export function listStorylines(gcData) {
5
5
  return gcData.listMotesBySchema(storylineSchemaId);
@@ -19,69 +19,10 @@ export function getStorylineMotes(gcData) {
19
19
  export function getStorylineSchema(gcData) {
20
20
  return gcData.getSchema(storylineSchemaId);
21
21
  }
22
- // PATTERNS
23
- // Note: These patterns are defined so that they'll work on partial lines
24
- // as much as possible, so their group names should always be checked for existence.
25
- const linePartsSchema = z.object({
26
- indicator: z
27
- .string()
28
- .optional()
29
- .describe('The symbol prefixing the line to indicate what the line type is'),
30
- arrayTag: z
31
- .string()
32
- .regex(/^[a-z0-9]+$/)
33
- .optional()
34
- .describe("BsArrayElement identifier (without the '#' prefix)"),
35
- labelGroup: z.string().optional().describe('The label, including the `:`'),
36
- label: z.string().optional().describe('For `Label:Value` elements'),
37
- text: z
38
- .string()
39
- .optional()
40
- .describe('For dialog and similar, the text content'),
41
- });
42
- export const arrayTagPattern = '(?:#(?<arrayTag>[a-z0-9]+))';
43
22
  export const linePatterns = [
44
23
  /** Label:Text */
45
- `^(?<labelGroup>(?<label>Name|Description|Draft)\\s*:)\\s*(?<text>.*?)\\s*$`,
24
+ `^(?<labelGroup>(?<label>Name|Description|Stage)\\s*:)\\s*(?<text>.*?)\\s*$`,
46
25
  /** Comment Line */
47
26
  `^(?<indicator>//)\\s*?${arrayTagPattern}?\\s*(?<text>.*?)\\s*$`,
48
27
  ];
49
- export function parseIfMatch(pattern, line, startPosition) {
50
- const rawMatch = line.match(new RegExp(pattern));
51
- if (!rawMatch)
52
- return null;
53
- const parsedLine = linePartsSchema.parse(rawMatch.groups);
54
- const result = {
55
- _: {
56
- start: startPosition,
57
- end: { ...startPosition },
58
- value: line,
59
- },
60
- };
61
- result._.end.character += line.length;
62
- result._.end.index += line.length;
63
- for (const [key, value] of Object.entries(parsedLine)) {
64
- if (typeof value !== 'undefined') {
65
- // Figure out where this is in the matches so we
66
- // can get the start and end positions.
67
- const startChar = line.indexOf(`${value}`);
68
- const endChar = startChar + `${value}`.length;
69
- const start = { ...startPosition };
70
- start.character += startChar;
71
- start.index += startChar;
72
- const end = { ...startPosition };
73
- end.character += endChar;
74
- end.index += endChar;
75
- result[key] = {
76
- start,
77
- end,
78
- value: value,
79
- };
80
- }
81
- }
82
- return result;
83
- }
84
- export function lineIsArrayItem(line) {
85
- return /^\/\//.test(line);
86
- }
87
28
  //# sourceMappingURL=cl2.storyline.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.storyline.types.js","sourceRoot":"","sources":["../src/cl2.storyline.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cl2.storyline.types.js","sourceRoot":"","sources":["../src/cl2.storyline.types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAgBjD,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,MAAM,CAAC,iBAAiB,CAAgB,iBAAiB,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAS;IACvC,OAAO,IAAI,CAAC,SAAS,KAAK,iBAAiB,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAgB,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,CAAC,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,MAAM,qBAAqB,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAgB,iBAAiB,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAgB,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iBAAiB;IACjB,4EAA4E;IAC5E,mBAAmB;IACnB,yBAAyB,eAAe,wBAAwB;CACjE,CAAC"}