@bscotch/gcdata 0.14.2
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.
- package/LICENSE.md +29 -0
- package/README.md +36 -0
- package/dist/GameChanger.d.ts +209 -0
- package/dist/GameChanger.d.ts.map +1 -0
- package/dist/GameChanger.events.d.ts +13 -0
- package/dist/GameChanger.events.d.ts.map +1 -0
- package/dist/GameChanger.events.js +3 -0
- package/dist/GameChanger.events.js.map +1 -0
- package/dist/GameChanger.js +478 -0
- package/dist/GameChanger.js.map +1 -0
- package/dist/SpellChecker.d.ts +31 -0
- package/dist/SpellChecker.d.ts.map +1 -0
- package/dist/SpellChecker.js +92 -0
- package/dist/SpellChecker.js.map +1 -0
- package/dist/assert.d.ts +6 -0
- package/dist/assert.d.ts.map +1 -0
- package/dist/assert.js +22 -0
- package/dist/assert.js.map +1 -0
- package/dist/cl2.loc.d.ts +1 -0
- package/dist/cl2.loc.d.ts.map +1 -0
- package/dist/cl2.loc.js +2 -0
- package/dist/cl2.loc.js.map +1 -0
- package/dist/cl2.quest.d.ts +4 -0
- package/dist/cl2.quest.d.ts.map +1 -0
- package/dist/cl2.quest.js +4 -0
- package/dist/cl2.quest.js.map +1 -0
- package/dist/cl2.quest.parse.d.ts +7 -0
- package/dist/cl2.quest.parse.d.ts.map +1 -0
- package/dist/cl2.quest.parse.js +825 -0
- package/dist/cl2.quest.parse.js.map +1 -0
- package/dist/cl2.quest.pointers.d.ts +3 -0
- package/dist/cl2.quest.pointers.d.ts.map +1 -0
- package/dist/cl2.quest.pointers.js +2 -0
- package/dist/cl2.quest.pointers.js.map +1 -0
- package/dist/cl2.quest.stringify.d.ts +5 -0
- package/dist/cl2.quest.stringify.d.ts.map +1 -0
- package/dist/cl2.quest.stringify.js +148 -0
- package/dist/cl2.quest.stringify.js.map +1 -0
- package/dist/cl2.quest.types.d.ts +168 -0
- package/dist/cl2.quest.types.d.ts.map +1 -0
- package/dist/cl2.quest.types.js +116 -0
- package/dist/cl2.quest.types.js.map +1 -0
- package/dist/cl2.quest.utils.d.ts +16 -0
- package/dist/cl2.quest.utils.d.ts.map +1 -0
- package/dist/cl2.quest.utils.js +105 -0
- package/dist/cl2.quest.utils.js.map +1 -0
- package/dist/cl2.storyline.d.ts +4 -0
- package/dist/cl2.storyline.d.ts.map +1 -0
- package/dist/cl2.storyline.js +4 -0
- package/dist/cl2.storyline.js.map +1 -0
- package/dist/cl2.storyline.parse.d.ts +7 -0
- package/dist/cl2.storyline.parse.d.ts.map +1 -0
- package/dist/cl2.storyline.parse.js +208 -0
- package/dist/cl2.storyline.parse.js.map +1 -0
- package/dist/cl2.storyline.pointers.d.ts +3 -0
- package/dist/cl2.storyline.pointers.d.ts.map +1 -0
- package/dist/cl2.storyline.pointers.js +2 -0
- package/dist/cl2.storyline.pointers.js.map +1 -0
- package/dist/cl2.storyline.stringify.d.ts +4 -0
- package/dist/cl2.storyline.stringify.d.ts.map +1 -0
- package/dist/cl2.storyline.stringify.js +18 -0
- package/dist/cl2.storyline.stringify.js.map +1 -0
- package/dist/cl2.storyline.types.d.ts +24 -0
- package/dist/cl2.storyline.types.d.ts.map +1 -0
- package/dist/cl2.storyline.types.js +87 -0
- package/dist/cl2.storyline.types.js.map +1 -0
- package/dist/cl2.storyline.utils.d.ts +1 -0
- package/dist/cl2.storyline.utils.d.ts.map +1 -0
- package/dist/cl2.storyline.utils.js +2 -0
- package/dist/cl2.storyline.utils.js.map +1 -0
- package/dist/cl2.types.auto.d.ts +22682 -0
- package/dist/cl2.types.auto.d.ts.map +1 -0
- package/dist/cl2.types.auto.js +2 -0
- package/dist/cl2.types.auto.js.map +1 -0
- package/dist/cl2.types.editor.d.ts +31 -0
- package/dist/cl2.types.editor.d.ts.map +1 -0
- package/dist/cl2.types.editor.js +2 -0
- package/dist/cl2.types.editor.js.map +1 -0
- package/dist/dict.d.ts +3 -0
- package/dist/dict.d.ts.map +1 -0
- package/dist/dict.js +49777 -0
- package/dist/dict.js.map +1 -0
- package/dist/helpers.d.ts +44 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +149 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/types.cl2.rumpus.d.ts +190 -0
- package/dist/types.cl2.rumpus.d.ts.map +1 -0
- package/dist/types.cl2.rumpus.js +30 -0
- package/dist/types.cl2.rumpus.js.map +1 -0
- package/dist/types.d.ts +586 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.editor.d.ts +25 -0
- package/dist/types.editor.d.ts.map +1 -0
- package/dist/types.editor.js +2 -0
- package/dist/types.editor.js.map +1 -0
- package/dist/types.js +98 -0
- package/dist/types.js.map +1 -0
- package/dist/util.d.ts +42 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +272 -0
- package/dist/util.js.map +1 -0
- package/package.json +32 -0
package/dist/types.js
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export function getProperties(schema) {
|
|
3
|
+
if (!schema)
|
|
4
|
+
return;
|
|
5
|
+
if (isBschemaObject(schema)) {
|
|
6
|
+
return schema.properties;
|
|
7
|
+
}
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
export function getAdditionalProperties(schema) {
|
|
11
|
+
if (!schema)
|
|
12
|
+
return;
|
|
13
|
+
if (isBschemaObject(schema)) {
|
|
14
|
+
return schema.additionalProperties;
|
|
15
|
+
}
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
export function isBschemaObject(schema) {
|
|
19
|
+
return (typeof schema === 'object' &&
|
|
20
|
+
(schema['type'] === 'object' ||
|
|
21
|
+
(!schema['type'] &&
|
|
22
|
+
(schema['properties'] || schema['additionalProperties']))));
|
|
23
|
+
}
|
|
24
|
+
export function isBschemaEnum(schema) {
|
|
25
|
+
return typeof schema === 'object' && Array.isArray(schema['enum']);
|
|
26
|
+
}
|
|
27
|
+
export function isBschemaConst(schema) {
|
|
28
|
+
return typeof schema === 'object' && 'bConst' in schema;
|
|
29
|
+
}
|
|
30
|
+
export function isBschemaString(schema) {
|
|
31
|
+
return typeof schema === 'object' && schema['type'] === 'string';
|
|
32
|
+
}
|
|
33
|
+
export function isBschemaBoolean(schema) {
|
|
34
|
+
return typeof schema === 'object' && schema['type'] === 'boolean';
|
|
35
|
+
}
|
|
36
|
+
export function isBschemaNumeric(schema) {
|
|
37
|
+
return (typeof schema === 'object' &&
|
|
38
|
+
(schema['type'] === 'number' || schema['type'] === 'integer'));
|
|
39
|
+
}
|
|
40
|
+
const changeTypeSchema = z
|
|
41
|
+
.union([z.literal('added'), z.literal('deleted'), z.literal('changed')])
|
|
42
|
+
.describe(`The type of change that occurred. 'added' and 'deleted' refer to the mote itself, while everything else is a 'change'.`);
|
|
43
|
+
export const changeSchema = z
|
|
44
|
+
.object({
|
|
45
|
+
mote_id: z
|
|
46
|
+
.string()
|
|
47
|
+
.optional()
|
|
48
|
+
.describe('If this was a mote change, the ID of that mote.'),
|
|
49
|
+
schema_id: z
|
|
50
|
+
.string()
|
|
51
|
+
.describe(`If this was a mote change, the mote's schema. Otherwise, the schema that changed.`),
|
|
52
|
+
type: changeTypeSchema,
|
|
53
|
+
schema_title: z
|
|
54
|
+
.string()
|
|
55
|
+
.optional()
|
|
56
|
+
.describe('Stored for posterity in case the name changes.'),
|
|
57
|
+
mote_name: z
|
|
58
|
+
.string()
|
|
59
|
+
.optional()
|
|
60
|
+
.describe(`If this was a mote change, the mote's name. Stored for posterity in case the name changes.`),
|
|
61
|
+
allowed: z
|
|
62
|
+
.union([z.boolean(), z.number()])
|
|
63
|
+
.default(true)
|
|
64
|
+
.describe('Whether or not the current user is allowed to make this change.'),
|
|
65
|
+
staged: z
|
|
66
|
+
.union([z.boolean(), z.number()])
|
|
67
|
+
.default(false)
|
|
68
|
+
.describe('Whether or not the change is staged.'),
|
|
69
|
+
diffs: z
|
|
70
|
+
.record(z.tuple([z.any(), z.any()]))
|
|
71
|
+
.optional()
|
|
72
|
+
.describe('Changes, keyed by the JSON Pointer-ish (e.g. "data/quest_end_moments/g803/order") path to the field. Values are [before,after], where "null" is used to represent added/deleted values.'),
|
|
73
|
+
})
|
|
74
|
+
.passthrough();
|
|
75
|
+
export const changesSchema = z
|
|
76
|
+
.object({
|
|
77
|
+
commitId: z
|
|
78
|
+
.string()
|
|
79
|
+
.regex(/^c\d+$/)
|
|
80
|
+
.describe('The base GameChanger commit these changes are relative to'),
|
|
81
|
+
changes: z.object({
|
|
82
|
+
message: z
|
|
83
|
+
.string()
|
|
84
|
+
.describe('The commit message for the changes. Can be a null string.'),
|
|
85
|
+
motes: z.record(changeSchema).default({}),
|
|
86
|
+
/** Schema changes. */
|
|
87
|
+
schemas: z.record(changeSchema).default({}),
|
|
88
|
+
/** Cache of known conflicts */
|
|
89
|
+
conflicts: z
|
|
90
|
+
.object({
|
|
91
|
+
motes: z.record(z.any()).default({}),
|
|
92
|
+
schemas: z.record(z.any()).default({}),
|
|
93
|
+
})
|
|
94
|
+
.passthrough(),
|
|
95
|
+
}),
|
|
96
|
+
})
|
|
97
|
+
.passthrough();
|
|
98
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Gcdata } from './GameChanger.js';
|
|
2
|
+
import { ParsedLineItem } from './cl2.quest.types.js';
|
|
3
|
+
import { type Bschema, type Mote } from './types.js';
|
|
4
|
+
export declare function objectToMap<T>(obj: T): Map<keyof T, T[keyof T]>;
|
|
5
|
+
export declare function normalizePointer(pointer: string | string[]): string[];
|
|
6
|
+
export declare function resolvePointer(pointer: string | string[], data: any): any;
|
|
7
|
+
/**
|
|
8
|
+
* Set the value at a pointer in a nested object. If a value along
|
|
9
|
+
* the path is missing, it'll be created as an object.
|
|
10
|
+
*
|
|
11
|
+
* Only works with Bschema-style pointers.
|
|
12
|
+
*/
|
|
13
|
+
export declare function setValueAtPointer<T>(data: T, pointer: string | string[], value: any): T;
|
|
14
|
+
/**
|
|
15
|
+
* Given a Bschema pointer for mote data, resolve the schema definition
|
|
16
|
+
* for that value.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolvePointerInSchema(pointer: string | string[], mote: Mote, gcData: Gcdata,
|
|
19
|
+
/**
|
|
20
|
+
* For cases where the mote data is incomplete and we need some
|
|
21
|
+
* data to resolve the schema, provide that fallback value here.
|
|
22
|
+
*/
|
|
23
|
+
moteFallback?: any): Bschema | undefined;
|
|
24
|
+
export declare function normalizeSchema(schema: Bschema, gcData: Gcdata,
|
|
25
|
+
/** For resolving oneOfs */
|
|
26
|
+
data: any): Bschema;
|
|
27
|
+
export declare function capitalize(str: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Given some kind of data object, traverse it to generate all
|
|
30
|
+
* of the terminal pointers through the data.
|
|
31
|
+
* Optionally prefix each pointer with some string.
|
|
32
|
+
*/
|
|
33
|
+
export declare function computeTerminalPointers(data: any, prefixWith?: string, collection?: Set<string>, __basePointer?: string[]): Set<string>;
|
|
34
|
+
/**
|
|
35
|
+
* Get all Bschema-style data pointers defined by a schema.
|
|
36
|
+
*/
|
|
37
|
+
export declare function computeMotePointersFromSchema(gcData: Gcdata, schema: Bschema, collection?: Set<string>, withDataPrefix?: boolean, __basePointer?: string[]): Set<string>;
|
|
38
|
+
export declare function isUndefined(value: any): value is undefined;
|
|
39
|
+
export declare function isDefined<T>(value: T): value is Exclude<T, undefined>;
|
|
40
|
+
export declare function debugOnError<T extends (...args: any[]) => any>(fn: T, ...args: Parameters<T>): ReturnType<T>;
|
|
41
|
+
export declare function parsedItemToWords(item: ParsedLineItem): ParsedLineItem[];
|
|
42
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAKL,KAAK,OAAO,EAEZ,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AAEpB,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;AAwBD;;;;;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,CA+BT;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"}
|
package/dist/util.js
ADDED
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { assert } from './assert.js';
|
|
2
|
+
import { getAdditionalProperties, getProperties, isBschemaObject, } from './types.js';
|
|
3
|
+
export function objectToMap(obj) {
|
|
4
|
+
const map = new Map();
|
|
5
|
+
for (const key in obj) {
|
|
6
|
+
map.set(key, obj[key]);
|
|
7
|
+
}
|
|
8
|
+
return map;
|
|
9
|
+
}
|
|
10
|
+
export function normalizePointer(pointer) {
|
|
11
|
+
if (Array.isArray(pointer)) {
|
|
12
|
+
return pointer;
|
|
13
|
+
}
|
|
14
|
+
return pointer.split('/');
|
|
15
|
+
}
|
|
16
|
+
export function resolvePointer(pointer, data) {
|
|
17
|
+
pointer = normalizePointer(pointer);
|
|
18
|
+
let current = data;
|
|
19
|
+
for (let i = 0; i < pointer.length; i++) {
|
|
20
|
+
if (typeof current !== 'object') {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
current = current[pointer[i]];
|
|
24
|
+
}
|
|
25
|
+
return current;
|
|
26
|
+
}
|
|
27
|
+
function resolveOneOf(schema, data) {
|
|
28
|
+
if (!schema || !('oneOf' in schema) || !('discriminator' in schema)) {
|
|
29
|
+
return schema;
|
|
30
|
+
}
|
|
31
|
+
const dataDescriminator = data[schema.discriminator.propertyName];
|
|
32
|
+
const possibleMatches = [];
|
|
33
|
+
const matching = schema.oneOf.find((subschema) => {
|
|
34
|
+
if (!('properties' in subschema)) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
const subschemaDescriminator = subschema.properties[schema.discriminator.propertyName].bConst;
|
|
38
|
+
possibleMatches.push(subschemaDescriminator);
|
|
39
|
+
if (subschemaDescriminator === dataDescriminator) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
});
|
|
44
|
+
return matching;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Set the value at a pointer in a nested object. If a value along
|
|
48
|
+
* the path is missing, it'll be created as an object.
|
|
49
|
+
*
|
|
50
|
+
* Only works with Bschema-style pointers.
|
|
51
|
+
*/
|
|
52
|
+
export function setValueAtPointer(data, pointer, value) {
|
|
53
|
+
// Ensure that the path to the value exists
|
|
54
|
+
pointer = normalizePointer(pointer);
|
|
55
|
+
let current = data;
|
|
56
|
+
for (let i = 0; i < pointer.length; i++) {
|
|
57
|
+
if (i === pointer.length - 1) {
|
|
58
|
+
current[pointer[i]] = value;
|
|
59
|
+
}
|
|
60
|
+
else if ([undefined, null].includes(current[pointer[i]])) {
|
|
61
|
+
current[pointer[i]] = {};
|
|
62
|
+
}
|
|
63
|
+
else if (typeof current[pointer[i]] !== 'object') {
|
|
64
|
+
throw new Error(`Cannot set intermediate pointer at ${pointer
|
|
65
|
+
.slice(0, i + 1)
|
|
66
|
+
.join('/')}: a non-object value already exists there (${JSON.stringify(current[pointer[i]])})`);
|
|
67
|
+
}
|
|
68
|
+
current = current[pointer[i]];
|
|
69
|
+
}
|
|
70
|
+
return data;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Given a Bschema pointer for mote data, resolve the schema definition
|
|
74
|
+
* for that value.
|
|
75
|
+
*/
|
|
76
|
+
export function resolvePointerInSchema(pointer, mote, gcData,
|
|
77
|
+
/**
|
|
78
|
+
* For cases where the mote data is incomplete and we need some
|
|
79
|
+
* data to resolve the schema, provide that fallback value here.
|
|
80
|
+
*/
|
|
81
|
+
moteFallback) {
|
|
82
|
+
pointer = normalizePointer(pointer);
|
|
83
|
+
let current = gcData.getSchema(mote.schema_id);
|
|
84
|
+
for (let i = 0; i < pointer.length; i++) {
|
|
85
|
+
const currentPointer = pointer.slice(0, i);
|
|
86
|
+
const data = resolvePointer(currentPointer, mote.data) ??
|
|
87
|
+
resolvePointer(currentPointer, moteFallback?.data);
|
|
88
|
+
current = normalizeSchema(current, gcData, data);
|
|
89
|
+
if ('properties' in current && current.properties?.[pointer[i]]) {
|
|
90
|
+
current = current.properties[pointer[i]];
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
if ('additionalProperties' in current &&
|
|
94
|
+
typeof current.additionalProperties === 'object') {
|
|
95
|
+
current = current.additionalProperties;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
return normalizeSchema(current, gcData, resolvePointer(pointer, mote.data));
|
|
101
|
+
}
|
|
102
|
+
export function normalizeSchema(schema, gcData,
|
|
103
|
+
/** For resolving oneOfs */
|
|
104
|
+
data) {
|
|
105
|
+
if ('$ref' in schema) {
|
|
106
|
+
const refParts = schema.$ref.split('/');
|
|
107
|
+
schema = gcData.getSchema(refParts[0]);
|
|
108
|
+
assert(schema, `Could not resolve $ref ${refParts[0]}`);
|
|
109
|
+
if (refParts.length > 1) {
|
|
110
|
+
schema = resolvePointer(refParts.slice(1), schema);
|
|
111
|
+
assert(schema, `Could not resolve subpointer $ref ${refParts.join('/')}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const oneOf = 'oneOf' in schema ? resolveOneOf(schema, data) : undefined;
|
|
115
|
+
let properties;
|
|
116
|
+
let additionalProperties;
|
|
117
|
+
if (isBschemaObject(oneOf) || isBschemaObject(schema)) {
|
|
118
|
+
properties = {
|
|
119
|
+
...getProperties(schema),
|
|
120
|
+
...getProperties(oneOf),
|
|
121
|
+
};
|
|
122
|
+
additionalProperties = {
|
|
123
|
+
...getAdditionalProperties(schema),
|
|
124
|
+
...getAdditionalProperties(oneOf),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
...schema,
|
|
129
|
+
properties,
|
|
130
|
+
// @ts-ignore
|
|
131
|
+
additionalProperties,
|
|
132
|
+
oneOf: undefined,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export function capitalize(str) {
|
|
136
|
+
return str[0].toUpperCase() + str.slice(1);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Given some kind of data object, traverse it to generate all
|
|
140
|
+
* of the terminal pointers through the data.
|
|
141
|
+
* Optionally prefix each pointer with some string.
|
|
142
|
+
*/
|
|
143
|
+
export function computeTerminalPointers(data, prefixWith, collection = new Set(), __basePointer = []) {
|
|
144
|
+
const addToCollection = () => {
|
|
145
|
+
const pointer = [...__basePointer];
|
|
146
|
+
collection.add(pointer.join('/'));
|
|
147
|
+
return collection;
|
|
148
|
+
};
|
|
149
|
+
__basePointer = prefixWith
|
|
150
|
+
? [prefixWith, ...__basePointer]
|
|
151
|
+
: [...__basePointer];
|
|
152
|
+
if (typeof data === 'object') {
|
|
153
|
+
for (const key in data) {
|
|
154
|
+
const subdata = data[key];
|
|
155
|
+
computeTerminalPointers(subdata, undefined, collection, [
|
|
156
|
+
...__basePointer,
|
|
157
|
+
key,
|
|
158
|
+
]);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
addToCollection();
|
|
163
|
+
}
|
|
164
|
+
return collection;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Get all Bschema-style data pointers defined by a schema.
|
|
168
|
+
*/
|
|
169
|
+
export function computeMotePointersFromSchema(gcData, schema, collection = new Set(), withDataPrefix = false, __basePointer = []) {
|
|
170
|
+
const addToCollection = (final) => {
|
|
171
|
+
const pointer = __basePointer.filter((p) => !p.startsWith('$$'));
|
|
172
|
+
if (final) {
|
|
173
|
+
pointer.push(final);
|
|
174
|
+
}
|
|
175
|
+
collection.add(pointer.join('/'));
|
|
176
|
+
return collection;
|
|
177
|
+
};
|
|
178
|
+
__basePointer = withDataPrefix
|
|
179
|
+
? ['data', ...__basePointer]
|
|
180
|
+
: [...__basePointer];
|
|
181
|
+
addToCollection();
|
|
182
|
+
if ('$ref' in schema) {
|
|
183
|
+
const subschema = gcData.getSchema(schema.$ref);
|
|
184
|
+
const refKey = `$$${schema.$ref}`;
|
|
185
|
+
if (__basePointer.includes(refKey)) {
|
|
186
|
+
__basePointer = [...__basePointer, '*'];
|
|
187
|
+
return addToCollection(`recursion(${schema.$ref})`);
|
|
188
|
+
}
|
|
189
|
+
schema = subschema;
|
|
190
|
+
__basePointer = [...__basePointer, refKey];
|
|
191
|
+
}
|
|
192
|
+
if (isBschemaObject(schema)) {
|
|
193
|
+
for (const key in schema.oneOf || []) {
|
|
194
|
+
computeMotePointersFromSchema(gcData, schema.oneOf[key], collection, false, __basePointer);
|
|
195
|
+
}
|
|
196
|
+
for (const key in schema.properties) {
|
|
197
|
+
const subSchema = schema.properties[key];
|
|
198
|
+
computeMotePointersFromSchema(gcData, subSchema, collection, false, [
|
|
199
|
+
...__basePointer,
|
|
200
|
+
key,
|
|
201
|
+
]);
|
|
202
|
+
}
|
|
203
|
+
if (schema.additionalProperties) {
|
|
204
|
+
computeMotePointersFromSchema(gcData, schema.additionalProperties, collection, false, [...__basePointer, '*']);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
// Then we're at a leaf node and can store it
|
|
209
|
+
// addToCollection();
|
|
210
|
+
}
|
|
211
|
+
return collection;
|
|
212
|
+
}
|
|
213
|
+
export function isUndefined(value) {
|
|
214
|
+
return value === undefined;
|
|
215
|
+
}
|
|
216
|
+
export function isDefined(value) {
|
|
217
|
+
return value !== undefined;
|
|
218
|
+
}
|
|
219
|
+
export function debugOnError(fn, ...args) {
|
|
220
|
+
for (let i = 0; i < 2; i++) {
|
|
221
|
+
try {
|
|
222
|
+
// eslint-disable-next-line no-debugger
|
|
223
|
+
if (i === 1)
|
|
224
|
+
debugger;
|
|
225
|
+
return fn(...args);
|
|
226
|
+
}
|
|
227
|
+
catch (e) {
|
|
228
|
+
if (i === 0) {
|
|
229
|
+
console.error(e);
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
throw e;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
throw new Error('Cannot happen. This is to satisfy the type checker.');
|
|
236
|
+
}
|
|
237
|
+
export function parsedItemToWords(item) {
|
|
238
|
+
const words = [];
|
|
239
|
+
let currentWordStart = item.start.character;
|
|
240
|
+
let currentWord = '';
|
|
241
|
+
for (let i = 0; i < item.value.length; i++) {
|
|
242
|
+
const char = item.value[i];
|
|
243
|
+
const position = item.start.character + i;
|
|
244
|
+
if (char.match(/[<>()[\].:;|@#,!?"*\s-]/)) {
|
|
245
|
+
// Normalize some stuff to reduce false positives
|
|
246
|
+
currentWord ||= currentWord
|
|
247
|
+
.replace(/'(s|d|ll|ve|re|n)$/, '')
|
|
248
|
+
.replace(/^\d+%?$/, '');
|
|
249
|
+
if (currentWord) {
|
|
250
|
+
// Clean up a bit to allow focusing on the WORDS
|
|
251
|
+
const word = {
|
|
252
|
+
start: { ...item.start },
|
|
253
|
+
end: { ...item.start },
|
|
254
|
+
value: currentWord,
|
|
255
|
+
};
|
|
256
|
+
word.start.character = currentWordStart;
|
|
257
|
+
word.start.index = item.start.index + currentWordStart;
|
|
258
|
+
word.end.character = currentWordStart + currentWord.length;
|
|
259
|
+
word.end.index =
|
|
260
|
+
item.start.index + currentWordStart + currentWord.length;
|
|
261
|
+
currentWord = '';
|
|
262
|
+
words.push(word);
|
|
263
|
+
}
|
|
264
|
+
currentWordStart = position + 1;
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
currentWord += char;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return words;
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAEL,uBAAuB,EACvB,aAAa,EACb,eAAe,GAIhB,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,WAAW,CAAI,GAAM;IACnC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KACxB;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAA0B;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,OAAO,CAAC;KAChB;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAA0B,EAAE,IAAS;IAClE,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO;SACR;QACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/B;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,MAAe,EAAE,IAAS;IAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,MAAM,CAAC,EAAE;QACnE,OAAO,MAAM,CAAC;KACf;IACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAc,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QAChD,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QACD,MAAM,sBAAsB,GAC1B,SAAS,CAAC,UAAW,CAAC,MAAM,CAAC,aAAc,CAAC,YAAY,CACzD,CAAC,MAAM,CAAC;QACT,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC7C,IAAI,sBAAsB,KAAK,iBAAiB,EAAE;YAChD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAO,EACP,OAA0B,EAC1B,KAAU;IAEV,2CAA2C;IAC3C,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,GAAG,IAA2B,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;SAC7B;aAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YAC1D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SAC1B;aAAM,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,sCAAsC,OAAO;iBAC1C,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;iBACf,IAAI,CACH,GAAG,CACJ,8CAA8C,IAAI,CAAC,SAAS,CAC7D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACpB,GAAG,CACL,CAAC;SACH;QACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/B;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAA0B,EAC1B,IAAU,EACV,MAAc;AACd;;;GAGG;AACH,YAAkB;IAElB,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAE,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,GACR,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC;YACzC,cAAc,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACrD,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,YAAY,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/D,OAAO,GAAG,OAAO,CAAC,UAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,SAAS;SACV;QACD,IACE,sBAAsB,IAAI,OAAO;YACjC,OAAO,OAAO,CAAC,oBAAoB,KAAK,QAAQ,EAChD;YACA,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;YACvC,SAAS;SACV;QACD,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAe,EACf,MAAc;AACd,2BAA2B;AAC3B,IAAS;IAET,IAAI,MAAM,IAAI,MAAM,EAAE;QACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC;QACxC,MAAM,CAAC,MAAM,EAAE,0BAA0B,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAE,CAAC;YACpD,MAAM,CAAC,MAAM,EAAE,qCAAqC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAC3E;KACF;IACD,MAAM,KAAK,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAI,UAAmD,CAAC;IACxD,IAAI,oBAAuE,CAAC;IAC5E,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;QACrD,UAAU,GAAG;YACX,GAAG,aAAa,CAAC,MAAM,CAAC;YACxB,GAAG,aAAa,CAAC,KAAK,CAAC;SACxB,CAAC;QACF,oBAAoB,GAAG;YACrB,GAAG,uBAAuB,CAAC,MAAM,CAAC;YAClC,GAAG,uBAAuB,CAAC,KAAK,CAAC;SACvB,CAAC;KACd;IAED,OAAO;QACL,GAAG,MAAM;QACT,UAAU;QACV,aAAa;QACb,oBAAoB;QACpB,KAAK,EAAE,SAAS;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAS,EACT,UAAmB,EACnB,aAAa,IAAI,GAAG,EAAU,EAC9B,gBAA0B,EAAE;IAE5B,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QACnC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,aAAa,GAAG,UAAU;QACxB,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,aAAa,CAAC;QAChC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;IAEvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,uBAAuB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE;gBACtD,GAAG,aAAa;gBAChB,GAAG;aACJ,CAAC,CAAC;SACJ;KACF;SAAM;QACL,eAAe,EAAE,CAAC;KACnB;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAAc,EACd,MAAe,EACf,aAAa,IAAI,GAAG,EAAU,EAC9B,cAAc,GAAG,KAAK,EACtB,gBAA0B,EAAE;IAE5B,MAAM,eAAe,GAAG,CAAC,KAAc,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrB;QACD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,aAAa,GAAG,cAAc;QAC5B,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC;QAC5B,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;IAEvB,eAAe,EAAE,CAAC;IAElB,IAAI,MAAM,IAAI,MAAM,EAAE;QACpB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAClC,aAAa,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,CAAC,CAAC;YACxC,OAAO,eAAe,CAAC,aAAa,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;SACrD;QACD,MAAM,GAAG,SAAS,CAAC;QACnB,aAAa,GAAG,CAAC,GAAG,aAAa,EAAE,MAAM,CAAC,CAAC;KAC5C;IACD,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;QAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE;YACpC,6BAA6B,CAC3B,MAAM,EACN,MAAM,CAAC,KAAM,CAAC,GAAG,CAAC,EAClB,UAAU,EACV,KAAK,EACL,aAAa,CACd,CAAC;SACH;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE;YACnC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACzC,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE;gBAClE,GAAG,aAAa;gBAChB,GAAG;aACJ,CAAC,CAAC;SACJ;QACD,IAAI,MAAM,CAAC,oBAAoB,EAAE;YAC/B,6BAA6B,CAC3B,MAAM,EACN,MAAM,CAAC,oBAAoB,EAC3B,UAAU,EACV,KAAK,EACL,CAAC,GAAG,aAAa,EAAE,GAAG,CAAC,CACxB,CAAC;SACH;KACF;SAAM;QACL,6CAA6C;QAC7C,qBAAqB;KACtB;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAU;IACpC,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAAQ;IACnC,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,EAAK,EACL,GAAG,IAAmB;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI;YACF,uCAAuC;YACvC,IAAI,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC;YACtB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;SACpB;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,KAAK,CAAC,EAAE;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,SAAS;aACV;YACD,MAAM,CAAC,CAAC;SACT;KACF;IACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAoB;IACpD,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,IAAI,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC5C,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE;YACzC,iDAAiD;YACjD,WAAW,KAAK,WAAW;iBACxB,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;iBACjC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,WAAW,EAAE;gBACf,gDAAgD;gBAChD,MAAM,IAAI,GAAG;oBACX,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;oBACxB,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;oBACtB,KAAK,EAAE,WAAW;iBACnB,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC;gBACvD,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC;gBAC3D,IAAI,CAAC,GAAG,CAAC,KAAK;oBACZ,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC;gBAC3D,WAAW,GAAG,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB;YACD,gBAAgB,GAAG,QAAQ,GAAG,CAAC,CAAC;SACjC;aAAM;YACL,WAAW,IAAI,IAAI,CAAC;SACrB;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bscotch/gcdata",
|
|
3
|
+
"version": "0.14.2",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@bscotch/emitter": "0.2.1",
|
|
9
|
+
"@bscotch/pathy": "^2.12.0",
|
|
10
|
+
"nspell": "2.1.5",
|
|
11
|
+
"zod": "3.22.4"
|
|
12
|
+
},
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@types/nspell": "2.1.6",
|
|
15
|
+
"chai": "^4.3.10",
|
|
16
|
+
"dictionary-en": "4.0.0",
|
|
17
|
+
"json-schema-to-typescript": "13.1.1",
|
|
18
|
+
"source-map-support": "0.5.21",
|
|
19
|
+
"typescript": "5.2.2"
|
|
20
|
+
},
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc --build",
|
|
26
|
+
"build:dictionary": "node scripts/compile-dict.mjs",
|
|
27
|
+
"build:types": "node scripts/compile-types.mjs",
|
|
28
|
+
"test": "mocha --config ../../config/.mocharc.cjs",
|
|
29
|
+
"test:dev": "mocha --config ../../config/.mocharc.cjs --forbid-only=false --parallel=false --timeout=9999999999",
|
|
30
|
+
"watch": "tsc --build --watch"
|
|
31
|
+
}
|
|
32
|
+
}
|