@bscotch/gcdata 0.20.1 → 0.21.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 (108) hide show
  1. package/dist/cl2.character.pointers.d.ts +3 -0
  2. package/dist/cl2.character.pointers.d.ts.map +1 -0
  3. package/dist/cl2.character.pointers.js +2 -0
  4. package/dist/cl2.character.pointers.js.map +1 -0
  5. package/dist/cl2.chat.pointers.d.ts +3 -0
  6. package/dist/cl2.chat.pointers.d.ts.map +1 -0
  7. package/dist/cl2.chat.pointers.js +2 -0
  8. package/dist/cl2.chat.pointers.js.map +1 -0
  9. package/dist/cl2.comfort.d.ts +3 -3
  10. package/dist/cl2.comfort.d.ts.map +1 -1
  11. package/dist/cl2.comfort.js +3 -3
  12. package/dist/cl2.comfort.js.map +1 -1
  13. package/dist/cl2.comfort.parse.d.ts +4 -4
  14. package/dist/cl2.comfort.parse.d.ts.map +1 -1
  15. package/dist/cl2.comfort.parse.js +32 -180
  16. package/dist/cl2.comfort.parse.js.map +1 -1
  17. package/dist/cl2.comfort.pointers.d.ts +2 -2
  18. package/dist/cl2.comfort.pointers.d.ts.map +1 -1
  19. package/dist/cl2.comfort.stringify.d.ts +2 -2
  20. package/dist/cl2.comfort.stringify.d.ts.map +1 -1
  21. package/dist/cl2.comfort.stringify.js +5 -3
  22. package/dist/cl2.comfort.stringify.js.map +1 -1
  23. package/dist/cl2.comfort.types.d.ts +6 -28
  24. package/dist/cl2.comfort.types.d.ts.map +1 -1
  25. package/dist/cl2.comfort.types.js +3 -67
  26. package/dist/cl2.comfort.types.js.map +1 -1
  27. package/dist/cl2.quest.d.ts +1 -1
  28. package/dist/cl2.quest.d.ts.map +1 -1
  29. package/dist/cl2.quest.js +1 -1
  30. package/dist/cl2.quest.js.map +1 -1
  31. package/dist/cl2.quest.parse.d.ts +1 -1
  32. package/dist/cl2.quest.parse.d.ts.map +1 -1
  33. package/dist/cl2.quest.parse.js +41 -201
  34. package/dist/cl2.quest.parse.js.map +1 -1
  35. package/dist/cl2.quest.types.d.ts +15 -25
  36. package/dist/cl2.quest.types.d.ts.map +1 -1
  37. package/dist/cl2.quest.types.js +1 -2
  38. package/dist/cl2.quest.types.js.map +1 -1
  39. package/dist/cl2.quest.utils.d.ts +0 -2
  40. package/dist/cl2.quest.utils.d.ts.map +1 -1
  41. package/dist/cl2.quest.utils.js +0 -14
  42. package/dist/cl2.quest.utils.js.map +1 -1
  43. package/dist/cl2.shared.parse.d.ts +38 -0
  44. package/dist/cl2.shared.parse.d.ts.map +1 -0
  45. package/dist/cl2.shared.parse.js +223 -0
  46. package/dist/cl2.shared.parse.js.map +1 -0
  47. package/dist/cl2.shared.types.d.ts +52 -11
  48. package/dist/cl2.shared.types.d.ts.map +1 -1
  49. package/dist/cl2.shared.types.js +25 -1
  50. package/dist/cl2.shared.types.js.map +1 -1
  51. package/dist/cl2.storyline.d.ts +1 -1
  52. package/dist/cl2.storyline.d.ts.map +1 -1
  53. package/dist/cl2.storyline.js +1 -1
  54. package/dist/cl2.storyline.js.map +1 -1
  55. package/dist/cl2.storyline.parse.d.ts.map +1 -1
  56. package/dist/cl2.storyline.parse.js +18 -177
  57. package/dist/cl2.storyline.parse.js.map +1 -1
  58. package/dist/cl2.storyline.stringify.d.ts +1 -1
  59. package/dist/cl2.storyline.stringify.d.ts.map +1 -1
  60. package/dist/cl2.storyline.types.d.ts +5 -24
  61. package/dist/cl2.storyline.types.d.ts.map +1 -1
  62. package/dist/cl2.storyline.types.js +1 -6
  63. package/dist/cl2.storyline.types.js.map +1 -1
  64. package/dist/cl2.types.auto.d.ts +10635 -10434
  65. package/dist/cl2.types.auto.d.ts.map +1 -1
  66. package/dist/index.d.ts +3 -1
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +3 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/types.editor.d.ts +10 -0
  71. package/dist/types.editor.d.ts.map +1 -1
  72. package/dist/util.d.ts +2 -2
  73. package/dist/util.d.ts.map +1 -1
  74. package/dist/util.js +3 -0
  75. package/dist/util.js.map +1 -1
  76. package/package.json +1 -1
  77. package/dist/cl2.storyline.utils.d.ts +0 -1
  78. package/dist/cl2.storyline.utils.d.ts.map +0 -1
  79. package/dist/cl2.storyline.utils.js +0 -2
  80. package/dist/cl2.storyline.utils.js.map +0 -1
  81. package/dist/cl2.types.editor.d.ts +0 -33
  82. package/dist/cl2.types.editor.d.ts.map +0 -1
  83. package/dist/cl2.types.editor.js +0 -2
  84. package/dist/cl2.types.editor.js.map +0 -1
  85. package/dist/cl3.storyline.d.ts +0 -4
  86. package/dist/cl3.storyline.d.ts.map +0 -1
  87. package/dist/cl3.storyline.js +0 -4
  88. package/dist/cl3.storyline.js.map +0 -1
  89. package/dist/cl3.storyline.parse.d.ts +0 -7
  90. package/dist/cl3.storyline.parse.d.ts.map +0 -1
  91. package/dist/cl3.storyline.parse.js +0 -257
  92. package/dist/cl3.storyline.parse.js.map +0 -1
  93. package/dist/cl3.storyline.pointers.d.ts +0 -3
  94. package/dist/cl3.storyline.pointers.d.ts.map +0 -1
  95. package/dist/cl3.storyline.pointers.js +0 -2
  96. package/dist/cl3.storyline.pointers.js.map +0 -1
  97. package/dist/cl3.storyline.stringify.d.ts +0 -4
  98. package/dist/cl3.storyline.stringify.d.ts.map +0 -1
  99. package/dist/cl3.storyline.stringify.js +0 -23
  100. package/dist/cl3.storyline.stringify.js.map +0 -1
  101. package/dist/cl3.storyline.types.d.ts +0 -36
  102. package/dist/cl3.storyline.types.d.ts.map +0 -1
  103. package/dist/cl3.storyline.types.js +0 -87
  104. package/dist/cl3.storyline.types.js.map +0 -1
  105. package/dist/dict.d.ts +0 -3
  106. package/dist/dict.d.ts.map +0 -1
  107. package/dist/dict.js +0 -49777
  108. package/dist/dict.js.map +0 -1
@@ -1,6 +1,5 @@
1
- import { z } from 'zod';
2
1
  import { assert } from './assert.js';
3
- export const comfortSchemaId = 'cl2_artisan_glads';
2
+ import { arrayTagPattern, comfortSchemaId, } from './cl2.shared.types.js';
4
3
  export function listComforts(gcData) {
5
4
  return gcData.listMotesBySchema(comfortSchemaId);
6
5
  }
@@ -9,79 +8,16 @@ export function isComfortMote(mote) {
9
8
  }
10
9
  export function getComfortMote(gcData, moteId) {
11
10
  const mote = gcData.getMote(moteId);
12
- assert(!mote || isComfortMote(mote), `Mote ${moteId} is not a comfort`);
11
+ assert(!mote || isComfortMote(mote), `Mote ${moteId} is not a storyline`);
13
12
  return mote;
14
13
  }
15
- export function getComfortMotes(gcData) {
16
- const motes = gcData.listMotesBySchema(comfortSchemaId);
17
- return motes;
18
- }
19
14
  export function getComfortSchema(gcData) {
20
15
  return gcData.getSchema(comfortSchemaId);
21
16
  }
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
17
  export const linePatterns = [
44
18
  /** Label:Text */
45
- `^(?<labelGroup>(?<label>Name|Description|Stage)\\s*:)\\s*(?<text>.*?)\\s*$`,
19
+ `^(?<labelGroup>(?<label>Name|Description|Unlocked Description|Stage)\\s*:)\\s*(?<text>.*?)\\s*$`,
46
20
  /** Comment Line */
47
21
  `^(?<indicator>//)\\s*?${arrayTagPattern}?\\s*(?<text>.*?)\\s*$`,
48
22
  ];
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
23
  //# sourceMappingURL=cl2.comfort.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.comfort.types.js","sourceRoot":"","sources":["../src/cl2.comfort.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cl2.comfort.types.js","sourceRoot":"","sources":["../src/cl2.comfort.types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,eAAe,EAGf,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAS/B,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,MAAM,CAAC,iBAAiB,CAAc,eAAe,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAS;IACrC,OAAO,IAAI,CAAC,SAAS,KAAK,eAAe,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAc,MAAM,CAAC,CAAC;IACjD,MAAM,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,MAAM,qBAAqB,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,eAAe,CAAgB,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iBAAiB;IACjB,iGAAiG;IACjG,mBAAmB;IACnB,yBAAyB,eAAe,wBAAwB;CACjE,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { parseStringifiedQuest, updateChangesFromParsedQuest, } from './cl2.quest.parse.js';
2
2
  export { stringifyQuest } from './cl2.quest.stringify.js';
3
- export { isQuestMote, listQuests, questSchemaId, type QuestData, type QuestMote, type QuestUpdateResult, } from './cl2.quest.types.js';
3
+ export { isQuestMote, listQuests, type QuestUpdateResult, } from './cl2.quest.types.js';
4
4
  //# sourceMappingURL=cl2.quest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.quest.d.ts","sourceRoot":"","sources":["../src/cl2.quest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,EACb,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"cl2.quest.d.ts","sourceRoot":"","sources":["../src/cl2.quest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,UAAU,EACV,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC"}
package/dist/cl2.quest.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { parseStringifiedQuest, updateChangesFromParsedQuest, } from './cl2.quest.parse.js';
2
2
  export { stringifyQuest } from './cl2.quest.stringify.js';
3
- export { isQuestMote, listQuests, questSchemaId, } from './cl2.quest.types.js';
3
+ export { isQuestMote, listQuests, } from './cl2.quest.types.js';
4
4
  //# sourceMappingURL=cl2.quest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.quest.js","sourceRoot":"","sources":["../src/cl2.quest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,GAId,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"cl2.quest.js","sourceRoot":"","sources":["../src/cl2.quest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,UAAU,GAEX,MAAM,sBAAsB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { GameChanger } from './GameChanger.js';
1
+ import type { GameChanger } from './GameChanger.js';
2
2
  import { QuestUpdateResult } from './cl2.quest.types.js';
3
3
  export declare function parseStringifiedQuest(text: string, packed: GameChanger, options?: {
4
4
  checkSpelling?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.quest.parse.d.ts","sourceRoot":"","sources":["../src/cl2.quest.parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAOL,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AA2B9B,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,OAAO,CAAC;CACpB,GACL,iBAAiB,CA0iBnB;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CA6Xf"}
1
+ {"version":3,"file":"cl2.quest.parse.d.ts","sourceRoot":"","sources":["../src/cl2.quest.parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EAOL,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAuB9B,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,OAAO,CAAC;CACpB,GACL,iBAAiB,CAsanB;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAmVf"}
@@ -1,9 +1,8 @@
1
1
  import { assert } from './assert.js';
2
2
  import { linePatterns, } from './cl2.quest.types.js';
3
- import { getMomentStyleNames, getMoteLists, getRequirementQuestStatuses, getRequirementStyleNames, getStagingOptions, isEmoteMoment, } from './cl2.quest.utils.js';
4
- import { arrayTagPattern, lineIsArrayItem, parseIfMatch, } from './cl2.shared.types.js';
5
- import { bsArrayToArray, changedPosition, createBsArrayKey, updateBsArrayOrder, } from './helpers.js';
6
- import { checkWords, includes } from './util.js';
3
+ import { getMomentStyleNames, getMoteLists, getRequirementQuestStatuses, getRequirementStyleNames, isEmoteMoment, } from './cl2.quest.utils.js';
4
+ import { isCommentLine, isStageLine, prepareParserHelpers, updateWipChangesFromParsed, } from './cl2.shared.parse.js';
5
+ import { bsArrayToArray, changedPosition, updateBsArrayOrder, } from './helpers.js';
7
6
  export function parseStringifiedQuest(text, packed, options = {}) {
8
7
  const motes = getMoteLists(packed.working);
9
8
  const momentStyles = getMomentStyleNames(packed.working);
@@ -12,31 +11,10 @@ export function parseStringifiedQuest(text, packed, options = {}) {
12
11
  momentStyles.splice(momentStyles.indexOf(style), 1);
13
12
  }
14
13
  const requirementStyles = getRequirementStyleNames(packed.working);
15
- const stagingOptions = getStagingOptions(packed.working);
16
14
  const requirementQuestStatuses = getRequirementQuestStatuses(packed.working);
17
15
  const requirementCompletions = [...requirementStyles];
18
16
  requirementCompletions.splice(requirementCompletions.indexOf('Quest'), 1);
19
17
  requirementCompletions.push(...requirementQuestStatuses.map((s) => `Quest ${s}`));
20
- /**
21
- * Shared list of keywords that can be used at the start of any line,
22
- * with required-unique entries removed when found.
23
- */
24
- const nonUniqueGlobalLabels = new Set(['Clue']);
25
- const availableGlobalLabels = new Set([
26
- 'Stage',
27
- 'Name',
28
- 'Storyline',
29
- 'Giver',
30
- 'Receiver',
31
- 'Clue',
32
- 'Start Requirements',
33
- 'Start Moments',
34
- 'End Requirements',
35
- 'End Moments',
36
- 'Log',
37
- ]);
38
- /** Terms from the glossary for use in autocompletes */
39
- const glossaryTerms = (packed.glossary?.relevantTerms() || []).map((t) => t.text);
40
18
  const result = {
41
19
  diagnostics: [],
42
20
  hovers: [],
@@ -52,136 +30,59 @@ export function parseStringifiedQuest(text, packed, options = {}) {
52
30
  comments: [],
53
31
  },
54
32
  };
55
- const lines = text.split(/(\r?\n)/g);
56
- let index = 0;
57
- let lineNumber = 0;
58
- const emojiIdFromName = (name) => {
59
- if (!name) {
60
- return undefined;
61
- }
62
- const emoji = motes.emojis.find((e) => packed.working.getMoteName(e)?.toLowerCase() ===
63
- name?.trim().toLowerCase() || e.id === name?.trim());
64
- return emoji?.id;
65
- };
66
- const checkSpelling = (item) => {
67
- if (!item || !options.checkSpelling || !packed.glossary)
68
- return;
69
- result.words.push(...checkWords(item, packed.glossary));
70
- };
33
+ const helpers = prepareParserHelpers(text, packed, {
34
+ ...options,
35
+ globalNonUniqueLabels: new Set(['Clue']),
36
+ globalLabels: new Set([
37
+ 'Stage',
38
+ 'Name',
39
+ 'Storyline',
40
+ 'Giver',
41
+ 'Receiver',
42
+ 'Clue',
43
+ 'Start Requirements',
44
+ 'Start Moments',
45
+ 'End Requirements',
46
+ 'End Moments',
47
+ 'Log',
48
+ ]),
49
+ }, result);
71
50
  /** The MoteId for the last speaker we saw. Used to figure out who to assign stuff to */
72
51
  let lastSpeaker;
73
52
  let lastClue;
74
53
  let lastSectionGroup;
75
54
  let lastEmojiGroup;
76
- for (const line of lines) {
55
+ for (const line of helpers.lines) {
77
56
  const trace = [];
78
57
  try {
79
- // Is this just a newline?
80
- if (line.match(/\r?\n/)) {
81
- // Then we just need to increment the index
82
- index += line.length;
83
- lineNumber++;
84
- continue;
85
- }
86
- const lineRange = {
87
- start: {
88
- index,
89
- line: lineNumber,
90
- character: 0,
91
- },
92
- end: {
93
- index: index + line.length,
94
- line: lineNumber,
95
- character: line.length,
96
- },
97
- };
58
+ const lineRange = helpers.currentLineRange;
98
59
  // Is this just a blank line?
99
60
  if (!line) {
100
61
  // Add global autocompletes
101
- result.completions.push({
102
- type: 'labels',
62
+ const pos = {
103
63
  start: lineRange.start,
104
64
  end: lineRange.end,
105
- options: availableGlobalLabels,
106
- });
65
+ };
107
66
  if (isQuestMomentLabel(lastSectionGroup)) {
108
67
  result.completions.push({
109
68
  type: 'momentStyles',
110
69
  options: momentStyles,
111
- start: lineRange.start,
112
- end: lineRange.end,
70
+ ...pos,
113
71
  });
114
72
  }
115
73
  else if (isQuestRequirementLabel(lastSectionGroup)) {
116
74
  result.completions.push({
117
75
  type: 'requirementStyles',
118
76
  options: requirementCompletions,
119
- start: lineRange.start,
120
- end: lineRange.end,
77
+ ...pos,
121
78
  });
122
79
  }
123
80
  continue;
124
81
  }
125
82
  // Find the first matching pattern and pull the values from it.
126
- let parsedLine = null;
127
- for (const pattern of linePatterns) {
128
- parsedLine = parseIfMatch(pattern, line, lineRange.start);
129
- if (parsedLine)
130
- break;
131
- }
132
- if (!parsedLine) {
133
- // Then this is likely the result of uncommenting something
134
- // that was commented out, resulting in a line that starts with
135
- // the comment's array tag. Provide a deletion edit!
136
- parsedLine = parseIfMatch(`^${arrayTagPattern} +(?<text>.*)$`, line, lineRange.start);
137
- if (parsedLine) {
138
- result.edits.push({
139
- start: lineRange.start,
140
- end: lineRange.end,
141
- newText: parsedLine.text.value,
142
- });
143
- }
144
- else {
145
- result.diagnostics.push({
146
- message: `Unfamiliar syntax: ${line}`,
147
- ...lineRange,
148
- });
149
- }
150
- index += line.length;
83
+ const parsedLine = helpers.parseCurrentLine(linePatterns);
84
+ if (!parsedLine)
151
85
  continue;
152
- }
153
- // Ensure the array tag. It goes right after the label or indicator.
154
- if (!parsedLine.arrayTag?.value && lineIsArrayItem(line)) {
155
- const arrayTag = createBsArrayKey();
156
- const start = parsedLine.indicator?.end || parsedLine.label?.end;
157
- result.edits.push({
158
- start,
159
- end: start,
160
- newText: `#${arrayTag}`,
161
- });
162
- parsedLine.arrayTag = {
163
- start,
164
- end: start,
165
- value: arrayTag,
166
- };
167
- }
168
- // If this has a label, remove it from the list of available labels
169
- if (parsedLine.label?.value &&
170
- availableGlobalLabels.has(parsedLine.label.value) &&
171
- !nonUniqueGlobalLabels.has(parsedLine.label.value)) {
172
- availableGlobalLabels.delete(parsedLine.label.value);
173
- }
174
- // If this has a text section, provide glossary autocompletes
175
- if ('text' in parsedLine) {
176
- const start = parsedLine.text.start;
177
- const end = parsedLine.text.end;
178
- result.completions.push({
179
- type: 'glossary',
180
- start,
181
- end,
182
- options: glossaryTerms,
183
- });
184
- }
185
86
  // Track common problems so that we don't need to repeat logic
186
87
  /** The character where a mote should exist. */
187
88
  let requiresMote;
@@ -235,16 +136,16 @@ export function parseStringifiedQuest(text, packed, options = {}) {
235
136
  }
236
137
  else if (indicator === '>') {
237
138
  // Then this is a dialog line, either within a Clue or a Dialog Moment
238
- const emoji = emojiIdFromName(parsedLine.emojiName?.value);
139
+ const emoji = helpers.emojiIdFromName(parsedLine.emojiName?.value);
239
140
  if (parsedLine.emojiGroup) {
240
141
  // Emojis are optional. If we see a "group" (parentheses) then
241
142
  // that changes to a requirement.
242
143
  requiresEmoji = {
243
144
  at: changedPosition(parsedLine.emojiGroup.start, { characters: 1 }),
244
- options: motes.emojis,
145
+ options: helpers.emojis,
245
146
  };
246
147
  }
247
- checkSpelling(parsedLine.text);
148
+ helpers.checkSpelling(parsedLine.text);
248
149
  const moment = {
249
150
  kind: 'dialogue',
250
151
  id: parsedLine.arrayTag?.value?.trim(),
@@ -275,28 +176,12 @@ export function parseStringifiedQuest(text, packed, options = {}) {
275
176
  });
276
177
  }
277
178
  }
278
- else if (labelLower === 'stage') {
279
- const stage = parsedLine.text?.value?.trim();
280
- if (includes(stagingOptions, stage)) {
281
- result.parsed.stage = stage;
282
- }
283
- else {
284
- result.diagnostics.push({
285
- message: `Stage must be one of: ${stagingOptions.join(', ')}`,
286
- ...lineRange,
287
- });
288
- // Provide autocomplete options
289
- result.completions.push({
290
- type: 'stages',
291
- options: stagingOptions,
292
- start: parsedLine.labelGroup.end,
293
- end: lineRange.end,
294
- });
295
- }
179
+ else if (isStageLine(parsedLine)) {
180
+ helpers.addStage(parsedLine);
296
181
  }
297
182
  else if (labelLower === 'log') {
298
183
  result.parsed.quest_start_log = parsedLine.text?.value?.trim();
299
- checkSpelling(parsedLine.text);
184
+ helpers.checkSpelling(parsedLine.text);
300
185
  }
301
186
  else if (labelLower === 'storyline') {
302
187
  requiresMote = {
@@ -359,7 +244,7 @@ export function parseStringifiedQuest(text, packed, options = {}) {
359
244
  at: changedPosition(parsedLine.emojiGroup.start, {
360
245
  characters: 1,
361
246
  }),
362
- options: motes.emojis,
247
+ options: helpers.emojis,
363
248
  };
364
249
  }
365
250
  else {
@@ -371,7 +256,7 @@ export function parseStringifiedQuest(text, packed, options = {}) {
371
256
  lastEmojiGroup.emotes.push({
372
257
  id: parsedLine.arrayTag?.value?.trim(),
373
258
  speaker: parsedLine.moteTag?.value?.trim(),
374
- emoji: emojiIdFromName(parsedLine.emojiName?.value),
259
+ emoji: helpers.emojiIdFromName(parsedLine.emojiName?.value),
375
260
  });
376
261
  }
377
262
  else {
@@ -489,13 +374,8 @@ export function parseStringifiedQuest(text, packed, options = {}) {
489
374
  });
490
375
  }
491
376
  }
492
- else if (indicator === '//') {
493
- // Then this is a comment/note
494
- result.parsed.comments.push({
495
- id: parsedLine.arrayTag?.value?.trim(),
496
- text: parsedLine.text?.value?.trim(),
497
- });
498
- checkSpelling(parsedLine.text);
377
+ else if (isCommentLine(parsedLine)) {
378
+ helpers.addComment(parsedLine);
499
379
  }
500
380
  if (requiresEmoji) {
501
381
  const where = {
@@ -509,7 +389,7 @@ export function parseStringifiedQuest(text, packed, options = {}) {
509
389
  ...where,
510
390
  });
511
391
  }
512
- else if (!emojiIdFromName(parsedLine.emojiName?.value)) {
392
+ else if (!helpers.emojiIdFromName(parsedLine.emojiName?.value)) {
513
393
  result.diagnostics.push({
514
394
  message: `Emoji "${parsedLine.emojiName?.value}" not found!`,
515
395
  ...where,
@@ -548,7 +428,7 @@ export function parseStringifiedQuest(text, packed, options = {}) {
548
428
  }
549
429
  throw err;
550
430
  }
551
- index += line.length;
431
+ helpers.index += line.length;
552
432
  }
553
433
  return result;
554
434
  }
@@ -585,48 +465,8 @@ export async function updateChangesFromParsedQuest(parsed, moteId, packed) {
585
465
  }
586
466
  updateMote('data/quest_start_log/text', parsed.quest_start_log);
587
467
  updateMote('data/storyline', parsed.storyline);
588
- if (parsed.stage) {
589
- updateMote('data/wip/staging', parsed.stage);
590
- }
591
- else if (questMoteWorking?.data.wip) {
592
- updateMote('data/wip/staging', null);
593
- }
594
- const parsedComments = parsed.comments.filter((c) => !!c.text);
468
+ updateWipChangesFromParsed(parsed, moteId, packed, trace);
595
469
  const parsedClues = parsed.clues.filter((c) => !!c.id && !!c.speaker);
596
- //#region COMMENTS
597
- // Add/Update COMMENTS
598
- trace(`Updating comments`);
599
- for (const comment of parsedComments) {
600
- trace(`Updating comment ${comment.id} with text "${comment.text}"`);
601
- updateMote(`data/wip/notes/${comment.id}/element/text`, comment.text);
602
- }
603
- // Remove deleted comments
604
- for (const existingComment of bsArrayToArray(questMoteBase?.data.wip?.notes || {})) {
605
- if (!parsedComments.find((c) => c.id === existingComment.id)) {
606
- trace(`Deleting comment ${existingComment.id}`);
607
- updateMote(`data/wip/notes/${existingComment.id}`, null);
608
- }
609
- }
610
- // Get the BASE order of the comments (if any) and use those
611
- // as the starting point for an up to date order.
612
- const comments = parsedComments.map((c) => {
613
- // Look up the base comment
614
- let comment = questMoteBase?.data.wip?.notes?.[c.id];
615
- if (!comment) {
616
- comment = questMoteWorking?.data.wip?.notes?.[c.id];
617
- // @ts-expect-error - order is a required field, but it'll be re-added
618
- delete comment?.order;
619
- }
620
- assert(comment, `Comment ${c.id} not found in base or working mote`);
621
- return { ...comment, id: c.id };
622
- });
623
- trace('Updating comment order');
624
- updateBsArrayOrder(comments);
625
- comments.forEach((comment) => {
626
- trace(`Updating comment ${comment.id} order to ${comment.order}`);
627
- updateMote(`data/wip/notes/${comment.id}/order`, comment.order);
628
- });
629
- //#endregion
630
470
  //#region CLUES
631
471
  // Add/update clues
632
472
  trace(`Updating clues`);
@@ -1 +1 @@
1
- {"version":3,"file":"cl2.quest.parse.js","sourceRoot":"","sources":["../src/cl2.quest.parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cl2.quest.parse.js","sourceRoot":"","sources":["../src/cl2.quest.parse.ts"],"names":[],"mappings":"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"}