@bscotch/gcdata 0.20.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 (63) hide show
  1. package/dist/GameChanger.js +1 -1
  2. package/dist/GameChanger.js.map +1 -1
  3. package/dist/cl2.comfort.d.ts +4 -0
  4. package/dist/cl2.comfort.d.ts.map +1 -0
  5. package/dist/cl2.comfort.js +4 -0
  6. package/dist/cl2.comfort.js.map +1 -0
  7. package/dist/cl2.comfort.parse.d.ts +7 -0
  8. package/dist/cl2.comfort.parse.d.ts.map +1 -0
  9. package/dist/cl2.comfort.parse.js +257 -0
  10. package/dist/cl2.comfort.parse.js.map +1 -0
  11. package/dist/cl2.comfort.pointers.d.ts +3 -0
  12. package/dist/cl2.comfort.pointers.d.ts.map +1 -0
  13. package/dist/cl2.comfort.pointers.js +2 -0
  14. package/dist/cl2.comfort.pointers.js.map +1 -0
  15. package/dist/cl2.comfort.stringify.d.ts +4 -0
  16. package/dist/cl2.comfort.stringify.d.ts.map +1 -0
  17. package/dist/cl2.comfort.stringify.js +23 -0
  18. package/dist/cl2.comfort.stringify.js.map +1 -0
  19. package/dist/cl2.comfort.types.d.ts +36 -0
  20. package/dist/cl2.comfort.types.d.ts.map +1 -0
  21. package/dist/cl2.comfort.types.js +87 -0
  22. package/dist/cl2.comfort.types.js.map +1 -0
  23. package/dist/cl2.quest.parse.d.ts.map +1 -1
  24. package/dist/cl2.quest.parse.js +8 -2
  25. package/dist/cl2.quest.parse.js.map +1 -1
  26. package/dist/cl2.quest.types.d.ts +2 -82
  27. package/dist/cl2.quest.types.d.ts.map +1 -1
  28. package/dist/cl2.quest.types.js +1 -83
  29. package/dist/cl2.quest.types.js.map +1 -1
  30. package/dist/cl2.shared.types.d.ts +85 -0
  31. package/dist/cl2.shared.types.d.ts.map +1 -0
  32. package/dist/cl2.shared.types.js +84 -0
  33. package/dist/cl2.shared.types.js.map +1 -0
  34. package/dist/cl2.storyline.parse.d.ts.map +1 -1
  35. package/dist/cl2.storyline.parse.js +2 -1
  36. package/dist/cl2.storyline.parse.js.map +1 -1
  37. package/dist/cl2.storyline.types.d.ts +1 -5
  38. package/dist/cl2.storyline.types.d.ts.map +1 -1
  39. package/dist/cl2.storyline.types.js +1 -60
  40. package/dist/cl2.storyline.types.js.map +1 -1
  41. package/dist/cl3.storyline.d.ts +4 -0
  42. package/dist/cl3.storyline.d.ts.map +1 -0
  43. package/dist/cl3.storyline.js +4 -0
  44. package/dist/cl3.storyline.js.map +1 -0
  45. package/dist/cl3.storyline.parse.d.ts +7 -0
  46. package/dist/cl3.storyline.parse.d.ts.map +1 -0
  47. package/dist/cl3.storyline.parse.js +257 -0
  48. package/dist/cl3.storyline.parse.js.map +1 -0
  49. package/dist/cl3.storyline.pointers.d.ts +3 -0
  50. package/dist/cl3.storyline.pointers.d.ts.map +1 -0
  51. package/dist/cl3.storyline.pointers.js +2 -0
  52. package/dist/cl3.storyline.pointers.js.map +1 -0
  53. package/dist/cl3.storyline.stringify.d.ts +4 -0
  54. package/dist/cl3.storyline.stringify.d.ts.map +1 -0
  55. package/dist/cl3.storyline.stringify.js +23 -0
  56. package/dist/cl3.storyline.stringify.js.map +1 -0
  57. package/dist/cl3.storyline.types.d.ts +36 -0
  58. package/dist/cl3.storyline.types.d.ts.map +1 -0
  59. package/dist/cl3.storyline.types.js +87 -0
  60. package/dist/cl3.storyline.types.js.map +1 -0
  61. package/dist/util.d.ts +1 -1
  62. package/dist/util.d.ts.map +1 -1
  63. package/package.json +1 -1
@@ -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,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;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
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"}
@@ -0,0 +1,4 @@
1
+ export { parseStringifiedStoryline, updateChangesFromParsedStoryline, } from './cl2.storyline.parse.js';
2
+ export { stringifyStoryline } from './cl2.storyline.stringify.js';
3
+ export { isStorylineMote, listStorylines, storylineSchemaId, type StorylineData, type StorylineMote, type StorylineUpdateResult, } from './cl2.storyline.types.js';
4
+ //# sourceMappingURL=cl3.storyline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cl3.storyline.d.ts","sourceRoot":"","sources":["../src/cl3.storyline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { parseStringifiedStoryline, updateChangesFromParsedStoryline, } from './cl2.storyline.parse.js';
2
+ export { stringifyStoryline } from './cl2.storyline.stringify.js';
3
+ export { isStorylineMote, listStorylines, storylineSchemaId, } from './cl2.storyline.types.js';
4
+ //# sourceMappingURL=cl3.storyline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cl3.storyline.js","sourceRoot":"","sources":["../src/cl3.storyline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,GAIlB,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { GameChanger } from './GameChanger.js';
2
+ import { type StorylineUpdateResult } from './cl2.storyline.types.js';
3
+ export declare function parseStringifiedStoryline(text: string, packed: GameChanger, options?: {
4
+ checkSpelling?: boolean;
5
+ }): StorylineUpdateResult;
6
+ export declare function updateChangesFromParsedStoryline(parsed: StorylineUpdateResult['parsed'], moteId: string, packed: GameChanger): Promise<void>;
7
+ //# sourceMappingURL=cl3.storyline.parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cl3.storyline.parse.d.ts","sourceRoot":"","sources":["../src/cl3.storyline.parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,OAAO,EAQL,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAQlC,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,OAAO,CAAC;CACpB,GACL,qBAAqB,CAkMvB;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,EACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CA0Ef"}
@@ -0,0 +1,257 @@
1
+ import { assert } from './assert.js';
2
+ import { getStagingOptions } from './cl2.quest.utils.js';
3
+ import { arrayTagPattern, getStorylineMote, getStorylineSchema, lineIsArrayItem, linePatterns, parseIfMatch, storylineSchemaId, } from './cl2.storyline.types.js';
4
+ import { bsArrayToArray, createBsArrayKey, updateBsArrayOrder, } from './helpers.js';
5
+ import { checkWords, includes } from './util.js';
6
+ export function parseStringifiedStoryline(text, packed, options = {}) {
7
+ const result = {
8
+ diagnostics: [],
9
+ hovers: [],
10
+ edits: [],
11
+ completions: [],
12
+ words: [],
13
+ parsed: {
14
+ comments: [],
15
+ },
16
+ };
17
+ const availableGlobalLabels = new Set([
18
+ 'Name',
19
+ 'Description',
20
+ 'Stage',
21
+ ]);
22
+ const stagingOptions = getStagingOptions(packed.working);
23
+ /** Terms from the glossary for use in autocompletes */
24
+ const glossaryTerms = (packed.glossary?.relevantTerms() || []).map((t) => t.text);
25
+ const checkSpelling = (item) => {
26
+ if (!item || !options.checkSpelling)
27
+ return;
28
+ result.words.push(...checkWords(item, packed.glossary));
29
+ };
30
+ const lines = text.split(/(\r?\n)/g);
31
+ let index = 0;
32
+ let lineNumber = 0;
33
+ for (const line of lines) {
34
+ const trace = [];
35
+ try {
36
+ // Is this just a newline?
37
+ if (line.match(/\r?\n/)) {
38
+ // Then we just need to increment the index
39
+ index += line.length;
40
+ lineNumber++;
41
+ continue;
42
+ }
43
+ const lineRange = {
44
+ start: {
45
+ index,
46
+ line: lineNumber,
47
+ character: 0,
48
+ },
49
+ end: {
50
+ index: index + line.length,
51
+ line: lineNumber,
52
+ character: line.length,
53
+ },
54
+ };
55
+ // Is this just a blank line?
56
+ if (!line) {
57
+ // Add global autocompletes
58
+ result.completions.push({
59
+ type: 'labels',
60
+ start: lineRange.start,
61
+ end: lineRange.end,
62
+ options: availableGlobalLabels,
63
+ });
64
+ continue;
65
+ }
66
+ // Find the first matching pattern and pull the values from it.
67
+ let parsedLine = null;
68
+ for (const pattern of linePatterns) {
69
+ parsedLine = parseIfMatch(pattern, line, lineRange.start);
70
+ if (parsedLine)
71
+ break;
72
+ }
73
+ if (!parsedLine) {
74
+ // Then this is likely the result of uncommenting something
75
+ // that was commented out, resulting in a line that starts with
76
+ // the comment's array tag. Provide a deletion edit!
77
+ parsedLine = parseIfMatch(`^${arrayTagPattern} +(?<text>.*)$`, line, lineRange.start);
78
+ if (parsedLine) {
79
+ result.edits.push({
80
+ start: lineRange.start,
81
+ end: lineRange.end,
82
+ newText: parsedLine.text.value,
83
+ });
84
+ }
85
+ else {
86
+ result.diagnostics.push({
87
+ message: `Unfamiliar syntax: ${line}`,
88
+ ...lineRange,
89
+ });
90
+ }
91
+ index += line.length;
92
+ continue;
93
+ }
94
+ // Ensure the array tag. It goes right after the label or indicator.
95
+ if (!parsedLine.arrayTag?.value && lineIsArrayItem(line)) {
96
+ const arrayTag = createBsArrayKey();
97
+ const start = parsedLine.indicator?.end || parsedLine.label?.end;
98
+ result.edits.push({
99
+ start,
100
+ end: start,
101
+ newText: `#${arrayTag}`,
102
+ });
103
+ parsedLine.arrayTag = {
104
+ start,
105
+ end: start,
106
+ value: arrayTag,
107
+ };
108
+ }
109
+ // If this has a label, remove it from the list of available labels
110
+ if (parsedLine.label?.value &&
111
+ availableGlobalLabels.has(parsedLine.label.value)) {
112
+ availableGlobalLabels.delete(parsedLine.label.value);
113
+ }
114
+ // If this has a text section, provide glossary autocompletes
115
+ if ('text' in parsedLine) {
116
+ const start = parsedLine.text.start;
117
+ const end = parsedLine.text.end;
118
+ result.completions.push({
119
+ type: 'glossary',
120
+ start,
121
+ end,
122
+ options: glossaryTerms,
123
+ });
124
+ }
125
+ // Work through each line type to add diagnostics and completions
126
+ const labelLower = parsedLine.label?.value?.toLowerCase();
127
+ const indicator = parsedLine.indicator?.value;
128
+ if (indicator === '//') {
129
+ // Then this is a comment/note
130
+ result.parsed.comments.push({
131
+ id: parsedLine.arrayTag?.value?.trim(),
132
+ text: parsedLine.text?.value?.trim(),
133
+ });
134
+ checkSpelling(parsedLine.text);
135
+ }
136
+ else if (labelLower === 'name') {
137
+ result.parsed.name = parsedLine.text?.value?.trim();
138
+ if (!result.parsed.name) {
139
+ result.diagnostics.push({
140
+ message: `Quest name required!`,
141
+ ...lineRange,
142
+ });
143
+ }
144
+ }
145
+ else if (labelLower === 'description') {
146
+ result.parsed.description = parsedLine.text?.value?.trim();
147
+ checkSpelling(parsedLine.text);
148
+ }
149
+ else if (labelLower === 'stage') {
150
+ const stage = parsedLine.text?.value?.trim();
151
+ if (includes(stagingOptions, stage)) {
152
+ result.parsed.stage = stage;
153
+ }
154
+ else {
155
+ result.diagnostics.push({
156
+ message: `Stage must be one of: ${stagingOptions.join(', ')}`,
157
+ ...lineRange,
158
+ });
159
+ // Provide autocomplete options
160
+ result.completions.push({
161
+ type: 'stages',
162
+ options: stagingOptions,
163
+ start: parsedLine.labelGroup.end,
164
+ end: lineRange.end,
165
+ });
166
+ }
167
+ }
168
+ else {
169
+ // Then we're in an error state on this line!
170
+ result.diagnostics.push({
171
+ message: `Unfamiliar syntax: ${line}`,
172
+ ...lineRange,
173
+ });
174
+ }
175
+ }
176
+ catch (err) {
177
+ if (err instanceof Error) {
178
+ err.cause = trace;
179
+ }
180
+ throw err;
181
+ }
182
+ index += line.length;
183
+ }
184
+ return result;
185
+ }
186
+ export async function updateChangesFromParsedStoryline(parsed, moteId, packed) {
187
+ const _traceLogs = [];
188
+ const trace = (log) => _traceLogs.push(log);
189
+ trace(`Updating mote ${moteId}`);
190
+ try {
191
+ // We're always going to be computing ALL changes, so clear whatever
192
+ // we previously had.
193
+ packed.clearMoteChanges(moteId);
194
+ const storylineMoteBase = getStorylineMote(packed.base, moteId);
195
+ const storylineMoteWorking = getStorylineMote(packed.working, moteId);
196
+ const schema = getStorylineSchema(packed.working);
197
+ assert(schema, `${storylineSchemaId} schema not found in working copy`);
198
+ assert(schema.name, 'Quest mote must have a name pointer');
199
+ const updateMote = (path, value) => {
200
+ packed.updateMoteData(moteId, path, value);
201
+ };
202
+ updateMote('data/name/text', parsed.name);
203
+ updateMote('data/description/text', parsed.description);
204
+ if (parsed.stage) {
205
+ updateMote('data/wip/staging', parsed.stage);
206
+ }
207
+ else if (storylineMoteWorking?.data.wip) {
208
+ updateMote('data/wip/staging', null);
209
+ }
210
+ const parsedComments = parsed.comments.filter((c) => !!c.text);
211
+ //#region COMMENTS
212
+ // Add/Update COMMENTS
213
+ trace(`Updating comments`);
214
+ for (const comment of parsedComments) {
215
+ trace(`Updating comment ${comment.id} with text "${comment.text}"`);
216
+ updateMote(`data/wip/notes/${comment.id}/element/text`, comment.text);
217
+ }
218
+ // Remove deleted comments
219
+ for (const existingComment of bsArrayToArray(storylineMoteBase?.data.wip?.notes || {})) {
220
+ if (!parsedComments.find((c) => c.id === existingComment.id)) {
221
+ trace(`Deleting comment ${existingComment.id}`);
222
+ updateMote(`data/wip/notes/${existingComment.id}`, null);
223
+ }
224
+ }
225
+ // Get the BASE order of the comments (if any) and use those
226
+ // as the starting point for an up to date order.
227
+ const comments = parsedComments.map((c) => {
228
+ // Look up the base comment
229
+ let comment = storylineMoteBase?.data.wip?.notes?.[c.id];
230
+ if (!comment) {
231
+ comment = storylineMoteWorking?.data.wip?.notes?.[c.id];
232
+ // @ts-expect-error - order is a required field, but it'll be re-added
233
+ delete comment?.order;
234
+ }
235
+ assert(comment, `Comment ${c.id} not found in base or working mote`);
236
+ return { ...comment, id: c.id };
237
+ });
238
+ trace('Updating comment order');
239
+ updateBsArrayOrder(comments);
240
+ comments.forEach((comment) => {
241
+ trace(`Updating comment ${comment.id} order to ${comment.order}`);
242
+ updateMote(`data/wip/notes/${comment.id}/order`, comment.order);
243
+ });
244
+ //#endregion
245
+ trace(`Writing changes`);
246
+ await packed.writeChanges();
247
+ }
248
+ catch (err) {
249
+ console.error(err);
250
+ console.error(_traceLogs);
251
+ if (err instanceof Error) {
252
+ err.cause = _traceLogs;
253
+ }
254
+ throw err;
255
+ }
256
+ }
257
+ //# sourceMappingURL=cl3.storyline.parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cl3.storyline.parse.js","sourceRoot":"","sources":["../src/cl3.storyline.parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
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/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
+ //# sourceMappingURL=cl3.storyline.pointers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cl3.storyline.pointers.d.ts","sourceRoot":"","sources":["../src/cl3.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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cl3.storyline.pointers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cl3.storyline.pointers.js","sourceRoot":"","sources":["../src/cl3.storyline.pointers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { GameChanger } from './GameChanger.js';
2
+ import { type StorylineMote } from './cl2.storyline.types.js';
3
+ export declare function stringifyStoryline(mote: StorylineMote, packed: GameChanger): string;
4
+ //# sourceMappingURL=cl3.storyline.stringify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cl3.storyline.stringify.d.ts","sourceRoot":"","sources":["../src/cl3.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"}
@@ -0,0 +1,23 @@
1
+ import { bsArrayToArray, toArrayTag } from './helpers.js';
2
+ export function stringifyStoryline(mote, packed) {
3
+ // METADATA
4
+ const blocks = [
5
+ `Name: ${packed.working.getMoteName(mote)}`,
6
+ `Description: ${mote.data.description?.text || ''}\n`,
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
+ }
21
+ return blocks.join('\n');
22
+ }
23
+ //# sourceMappingURL=cl3.storyline.stringify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cl3.storyline.stringify.js","sourceRoot":"","sources":["../src/cl3.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"}
@@ -0,0 +1,36 @@
1
+ import type { Gcdata } from './GameChanger.js';
2
+ import type { ParsedLine } from './cl2.quest.types.js';
3
+ import type { Crashlands2 } from './cl2.types.auto.js';
4
+ import type { ParsedBase, ParserResult } from './cl2.types.editor.js';
5
+ import type { Position, Range } from './types.editor.js';
6
+ import type { BschemaRoot, Mote } from './types.js';
7
+ export declare const storylineSchemaId = "cl2_storyline";
8
+ export type StorylineData = Crashlands2.Schemas['cl2_storyline'];
9
+ export type StorylineMote = Mote<StorylineData>;
10
+ type CompletionsData = {
11
+ type: 'glossary';
12
+ options: string[];
13
+ } | {
14
+ type: 'stages';
15
+ options: string[];
16
+ } | {
17
+ type: 'labels';
18
+ options: Set<string>;
19
+ };
20
+ export interface StorylineUpdateResult extends ParserResult {
21
+ parsed: ParsedBase & {
22
+ description?: string;
23
+ };
24
+ completions: (Range & CompletionsData)[];
25
+ }
26
+ export declare function listStorylines(gcData: Gcdata): StorylineMote[];
27
+ export declare function isStorylineMote(mote: any): mote is StorylineMote;
28
+ export declare function getStorylineMote(gcData: Gcdata, moteId: string): StorylineMote | undefined;
29
+ export declare function getStorylineMotes(gcData: Gcdata): StorylineMote[];
30
+ export declare function getStorylineSchema(gcData: Gcdata): BschemaRoot | undefined;
31
+ export declare const arrayTagPattern = "(?:#(?<arrayTag>[a-z0-9]+))";
32
+ export declare const linePatterns: string[];
33
+ export declare function parseIfMatch(pattern: string, line: string, startPosition: Position): ParsedLine | null;
34
+ export declare function lineIsArrayItem(line: string): boolean;
35
+ export {};
36
+ //# sourceMappingURL=cl3.storyline.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cl3.storyline.types.d.ts","sourceRoot":"","sources":["../src/cl3.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,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;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"}
@@ -0,0 +1,87 @@
1
+ import { z } from 'zod';
2
+ import { assert } from './assert.js';
3
+ export const storylineSchemaId = 'cl2_storyline';
4
+ export function listStorylines(gcData) {
5
+ return gcData.listMotesBySchema(storylineSchemaId);
6
+ }
7
+ export function isStorylineMote(mote) {
8
+ return mote.schema_id === storylineSchemaId;
9
+ }
10
+ export function getStorylineMote(gcData, moteId) {
11
+ const mote = gcData.getMote(moteId);
12
+ assert(!mote || isStorylineMote(mote), `Mote ${moteId} is not a storyline`);
13
+ return mote;
14
+ }
15
+ export function getStorylineMotes(gcData) {
16
+ const motes = gcData.listMotesBySchema(storylineSchemaId);
17
+ return motes;
18
+ }
19
+ export function getStorylineSchema(gcData) {
20
+ return gcData.getSchema(storylineSchemaId);
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
+ export const linePatterns = [
44
+ /** Label:Text */
45
+ `^(?<labelGroup>(?<label>Name|Description|Stage)\\s*:)\\s*(?<text>.*?)\\s*$`,
46
+ /** Comment Line */
47
+ `^(?<indicator>//)\\s*?${arrayTagPattern}?\\s*(?<text>.*?)\\s*$`,
48
+ ];
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
+ //# sourceMappingURL=cl3.storyline.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cl3.storyline.types.js","sourceRoot":"","sources":["../src/cl3.storyline.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAOrC,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,WAAW;AACX,yEAAyE;AACzE,oFAAoF;AACpF,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iEAAiE,CAClE;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CAAC,aAAa,CAAC;SACpB,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACjE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC1E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACnE,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;CACxD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iBAAiB;IACjB,4EAA4E;IAC5E,mBAAmB;IACnB,yBAAyB,eAAe,wBAAwB;CACjE,CAAC;AAEF,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,IAAY,EACZ,aAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAO,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAe;QACzB,CAAC,EAAE;YACD,KAAK,EAAE,aAAa;YACpB,GAAG,EAAE,EAAE,GAAG,aAAa,EAAE;YACzB,KAAK,EAAE,IAAI;SACZ;KACF,CAAC;IACF,MAAM,CAAC,CAAE,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC;IACvC,MAAM,CAAC,CAAE,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;IACnC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;YACjC,gDAAgD;YAChD,uCAAuC;YACvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,SAAS,GAAG,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC;YAC9C,MAAM,KAAK,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;YACnC,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;YAC7B,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;YACzB,MAAM,GAAG,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;YACjC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC;YACzB,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC;YACrB,MAAM,CAAC,GAAuB,CAAC,GAAG;gBAChC,KAAK;gBACL,GAAG;gBACH,KAAK,EAAE,KAAY;aACb,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
package/dist/util.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Glossary } from '@bscotch/cl2-string-server-shared';
2
2
  import type { Gcdata } from './GameChanger.js';
3
- import { ParsedLineItem } from './cl2.quest.types.js';
3
+ import { ParsedLineItem } from './cl2.shared.types.js';
4
4
  import { ParsedWord } from './cl2.types.editor.js';
5
5
  import { type Bschema, type Mote } from './types.js';
6
6
  export declare function sizeOf(thing: any): number;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAKL,KAAK,OAAO,EAEZ,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AAEpB,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAOzC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAM/D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAKrE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAUnE;AA6BD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,KAAK,EAAE,GAAG,GACT,CAAC,CAuBH;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM;AACd;;;GAGG;AACH,YAAY,CAAC,EAAE,GAAG,GACjB,OAAO,GAAG,SAAS,CAuBrB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM;AACd,2BAA2B;AAC3B,IAAI,EAAE,GAAG,GACR,OAAO,CAgCT;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,UAErC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,GAAG,EACT,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,cAAoB,EAC9B,aAAa,GAAE,MAAM,EAAO,GAC3B,GAAG,CAAC,MAAM,CAAC,CAuBb;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,UAAU,cAAoB,EAC9B,cAAc,UAAQ,EACtB,aAAa,GAAE,MAAM,EAAO,GAC3B,GAAG,CAAC,MAAM,CAAC,CAyDb;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAE1D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAErE;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC5D,EAAE,EAAE,CAAC,EACL,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GACrB,UAAU,CAAC,CAAC,CAAC,CAef;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,CAiCxE;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,EACrC,QAAQ,CAAC,EAAE,QAAQ,GAClB,UAAU,EAAE,CAoBd;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,CAAC,CAE5D"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAKL,KAAK,OAAO,EAEZ,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AAEpB,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAOzC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAM/D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAKrE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAUnE;AA6BD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,KAAK,EAAE,GAAG,GACT,CAAC,CAuBH;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM;AACd;;;GAGG;AACH,YAAY,CAAC,EAAE,GAAG,GACjB,OAAO,GAAG,SAAS,CAuBrB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM;AACd,2BAA2B;AAC3B,IAAI,EAAE,GAAG,GACR,OAAO,CAgCT;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,UAErC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,GAAG,EACT,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,cAAoB,EAC9B,aAAa,GAAE,MAAM,EAAO,GAC3B,GAAG,CAAC,MAAM,CAAC,CAuBb;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,UAAU,cAAoB,EAC9B,cAAc,UAAQ,EACtB,aAAa,GAAE,MAAM,EAAO,GAC3B,GAAG,CAAC,MAAM,CAAC,CAyDb;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAE1D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAErE;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC5D,EAAE,EAAE,CAAC,EACL,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GACrB,UAAU,CAAC,CAAC,CAAC,CAef;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,CAiCxE;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,EACrC,QAAQ,CAAC,EAAE,QAAQ,GAClB,UAAU,EAAE,CAoBd;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,CAAC,CAE5D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bscotch/gcdata",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",