embedoc 0.9.0
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 +21 -0
- package/README.md +941 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +337 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/dependency.d.ts +59 -0
- package/dist/core/dependency.d.ts.map +1 -0
- package/dist/core/dependency.js +209 -0
- package/dist/core/dependency.js.map +1 -0
- package/dist/core/generator.d.ts +23 -0
- package/dist/core/generator.d.ts.map +1 -0
- package/dist/core/generator.js +211 -0
- package/dist/core/generator.js.map +1 -0
- package/dist/core/inline-datasource.d.ts +117 -0
- package/dist/core/inline-datasource.d.ts.map +1 -0
- package/dist/core/inline-datasource.js +346 -0
- package/dist/core/inline-datasource.js.map +1 -0
- package/dist/core/parser.d.ts +41 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/parser.js +250 -0
- package/dist/core/parser.js.map +1 -0
- package/dist/core/processor.d.ts +18 -0
- package/dist/core/processor.d.ts.map +1 -0
- package/dist/core/processor.js +219 -0
- package/dist/core/processor.js.map +1 -0
- package/dist/datasources/csv.d.ts +17 -0
- package/dist/datasources/csv.d.ts.map +1 -0
- package/dist/datasources/csv.js +54 -0
- package/dist/datasources/csv.js.map +1 -0
- package/dist/datasources/glob.d.ts +17 -0
- package/dist/datasources/glob.d.ts.map +1 -0
- package/dist/datasources/glob.js +72 -0
- package/dist/datasources/glob.js.map +1 -0
- package/dist/datasources/index.d.ts +22 -0
- package/dist/datasources/index.d.ts.map +1 -0
- package/dist/datasources/index.js +53 -0
- package/dist/datasources/index.js.map +1 -0
- package/dist/datasources/json.d.ts +16 -0
- package/dist/datasources/json.d.ts.map +1 -0
- package/dist/datasources/json.js +59 -0
- package/dist/datasources/json.js.map +1 -0
- package/dist/datasources/sqlite.d.ts +15 -0
- package/dist/datasources/sqlite.d.ts.map +1 -0
- package/dist/datasources/sqlite.js +40 -0
- package/dist/datasources/sqlite.js.map +1 -0
- package/dist/datasources/yaml.d.ts +16 -0
- package/dist/datasources/yaml.d.ts.map +1 -0
- package/dist/datasources/yaml.js +60 -0
- package/dist/datasources/yaml.js.map +1 -0
- package/dist/helpers/markdown.d.ts +10 -0
- package/dist/helpers/markdown.d.ts.map +1 -0
- package/dist/helpers/markdown.js +93 -0
- package/dist/helpers/markdown.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +254 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite Datasource
|
|
3
|
+
*/
|
|
4
|
+
import Database from 'better-sqlite3';
|
|
5
|
+
export class SqliteDatasource {
|
|
6
|
+
type = 'sqlite';
|
|
7
|
+
db;
|
|
8
|
+
queryString;
|
|
9
|
+
constructor(config) {
|
|
10
|
+
if (!config.path) {
|
|
11
|
+
throw new Error('SQLite datasource requires "path" configuration');
|
|
12
|
+
}
|
|
13
|
+
this.db = new Database(config.path, { readonly: true });
|
|
14
|
+
this.queryString = config.query;
|
|
15
|
+
}
|
|
16
|
+
async query(sql, params = []) {
|
|
17
|
+
try {
|
|
18
|
+
const stmt = this.db.prepare(sql);
|
|
19
|
+
const rows = stmt.all(...params);
|
|
20
|
+
return rows;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
24
|
+
throw new Error(`SQLite query failed: ${message}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async getAll() {
|
|
28
|
+
if (!this.queryString) {
|
|
29
|
+
throw new Error('No query defined for this datasource. Use query() method instead.');
|
|
30
|
+
}
|
|
31
|
+
return this.query(this.queryString);
|
|
32
|
+
}
|
|
33
|
+
async close() {
|
|
34
|
+
this.db.close();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function createSqliteDatasource(config) {
|
|
38
|
+
return new SqliteDatasource(config);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=sqlite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/datasources/sqlite.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,QAAQ,CAAC;IACjB,EAAE,CAAoB;IACtB,WAAW,CAAU;IAE7B,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,SAAoB,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YACjC,OAAO,IAAmB,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAwB;IAC7D,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML Datasource
|
|
3
|
+
*/
|
|
4
|
+
import type { Datasource, DatasourceConfig, QueryResult } from '../types/index.js';
|
|
5
|
+
export declare class YamlDatasource implements Datasource {
|
|
6
|
+
readonly type = "yaml";
|
|
7
|
+
private data;
|
|
8
|
+
private filePath;
|
|
9
|
+
constructor(config: DatasourceConfig);
|
|
10
|
+
private loadData;
|
|
11
|
+
query(sql: string, params?: unknown[]): Promise<QueryResult>;
|
|
12
|
+
getAll(): Promise<QueryResult>;
|
|
13
|
+
close(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createYamlDatasource(config: DatasourceConfig): YamlDatasource;
|
|
16
|
+
//# sourceMappingURL=yaml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/datasources/yaml.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnF,qBAAa,cAAe,YAAW,UAAU;IAC/C,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,gBAAgB;YAQtB,QAAQ;IAoBhB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBhE,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;IAI9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,CAE7E"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML Datasource
|
|
3
|
+
*/
|
|
4
|
+
import { readFile } from 'node:fs/promises';
|
|
5
|
+
import yaml from 'js-yaml';
|
|
6
|
+
export class YamlDatasource {
|
|
7
|
+
type = 'yaml';
|
|
8
|
+
data = null;
|
|
9
|
+
filePath;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
if (!config.path) {
|
|
12
|
+
throw new Error('YAML datasource requires "path" configuration');
|
|
13
|
+
}
|
|
14
|
+
this.filePath = config.path;
|
|
15
|
+
}
|
|
16
|
+
async loadData() {
|
|
17
|
+
if (this.data !== null) {
|
|
18
|
+
return this.data;
|
|
19
|
+
}
|
|
20
|
+
const content = await readFile(this.filePath, { encoding: 'utf-8' });
|
|
21
|
+
const parsed = yaml.load(content);
|
|
22
|
+
// Use as-is if array, wrap in array if object
|
|
23
|
+
if (Array.isArray(parsed)) {
|
|
24
|
+
this.data = parsed;
|
|
25
|
+
}
|
|
26
|
+
else if (typeof parsed === 'object' && parsed !== null) {
|
|
27
|
+
this.data = [parsed];
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
throw new Error('YAML file must contain an array or object');
|
|
31
|
+
}
|
|
32
|
+
return this.data;
|
|
33
|
+
}
|
|
34
|
+
async query(sql, params = []) {
|
|
35
|
+
// YAML does not support SQL queries
|
|
36
|
+
// Simple filtering only
|
|
37
|
+
const data = await this.loadData();
|
|
38
|
+
// Only supports simple WHERE column = value
|
|
39
|
+
const whereMatch = sql.match(/WHERE\s+(\w+)\s*=\s*\?/i);
|
|
40
|
+
if (whereMatch && params.length > 0) {
|
|
41
|
+
const column = whereMatch[1];
|
|
42
|
+
const value = params[0];
|
|
43
|
+
return data.filter((row) => {
|
|
44
|
+
const rowValue = row[column ?? ''];
|
|
45
|
+
return rowValue === value || String(rowValue) === String(value);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return data;
|
|
49
|
+
}
|
|
50
|
+
async getAll() {
|
|
51
|
+
return this.loadData();
|
|
52
|
+
}
|
|
53
|
+
async close() {
|
|
54
|
+
this.data = null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function createYamlDatasource(config) {
|
|
58
|
+
return new YamlDatasource(config);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=yaml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/datasources/yaml.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,SAAS,CAAC;AAG3B,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,MAAM,CAAC;IACf,IAAI,GAAuB,IAAI,CAAC;IAChC,QAAQ,CAAS;IAEzB,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElC,8CAA8C;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,MAAqB,CAAC;QACpC,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACzD,IAAI,CAAC,IAAI,GAAG,CAAC,MAAiC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,SAAoB,EAAE;QAC7C,oCAAoC;QACpC,wBAAwB;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEnC,4CAA4C;QAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxD,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACnC,OAAO,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAwB;IAC3D,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown Helper
|
|
3
|
+
* Utilities for generating Markdown strings
|
|
4
|
+
*/
|
|
5
|
+
import type { MarkdownHelper } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Create a Markdown helper instance
|
|
8
|
+
*/
|
|
9
|
+
export declare function createMarkdownHelper(): MarkdownHelper;
|
|
10
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/helpers/markdown.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAexD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAwFrD"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown Helper
|
|
3
|
+
* Utilities for generating Markdown strings
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Escape cell content for Markdown tables
|
|
7
|
+
*/
|
|
8
|
+
function escapeCell(value) {
|
|
9
|
+
if (value === null || value === undefined) {
|
|
10
|
+
return '';
|
|
11
|
+
}
|
|
12
|
+
const str = String(value);
|
|
13
|
+
// Escape pipe characters and newlines
|
|
14
|
+
return str.replace(/\|/g, '\\|').replace(/\n/g, '<br>');
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a Markdown helper instance
|
|
18
|
+
*/
|
|
19
|
+
export function createMarkdownHelper() {
|
|
20
|
+
return {
|
|
21
|
+
/**
|
|
22
|
+
* Generate a table
|
|
23
|
+
*/
|
|
24
|
+
table(headers, rows) {
|
|
25
|
+
if (headers.length === 0) {
|
|
26
|
+
return '';
|
|
27
|
+
}
|
|
28
|
+
const lines = [];
|
|
29
|
+
// Header row
|
|
30
|
+
const headerLine = '| ' + headers.map(escapeCell).join(' | ') + ' |';
|
|
31
|
+
lines.push(headerLine);
|
|
32
|
+
// Separator row
|
|
33
|
+
const separatorLine = '| ' + headers.map(() => '---').join(' | ') + ' |';
|
|
34
|
+
lines.push(separatorLine);
|
|
35
|
+
// Data rows
|
|
36
|
+
for (const row of rows) {
|
|
37
|
+
const cells = headers.map((_, i) => escapeCell(row[i]));
|
|
38
|
+
const rowLine = '| ' + cells.join(' | ') + ' |';
|
|
39
|
+
lines.push(rowLine);
|
|
40
|
+
}
|
|
41
|
+
return lines.join('\n');
|
|
42
|
+
},
|
|
43
|
+
/**
|
|
44
|
+
* Generate a list
|
|
45
|
+
*/
|
|
46
|
+
list(items, ordered = false) {
|
|
47
|
+
return items
|
|
48
|
+
.map((item, index) => {
|
|
49
|
+
const prefix = ordered ? `${index + 1}.` : '-';
|
|
50
|
+
return `${prefix} ${item}`;
|
|
51
|
+
})
|
|
52
|
+
.join('\n');
|
|
53
|
+
},
|
|
54
|
+
/**
|
|
55
|
+
* Generate a code block
|
|
56
|
+
*/
|
|
57
|
+
codeBlock(code, language = '') {
|
|
58
|
+
return '```' + language + '\n' + code + '\n```';
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* Generate a link
|
|
62
|
+
*/
|
|
63
|
+
link(text, url) {
|
|
64
|
+
return `[${text}](${url})`;
|
|
65
|
+
},
|
|
66
|
+
/**
|
|
67
|
+
* Generate a heading
|
|
68
|
+
*/
|
|
69
|
+
heading(text, level = 1) {
|
|
70
|
+
const prefix = '#'.repeat(Math.min(Math.max(level, 1), 6));
|
|
71
|
+
return `${prefix} ${text}`;
|
|
72
|
+
},
|
|
73
|
+
/**
|
|
74
|
+
* Generate bold text
|
|
75
|
+
*/
|
|
76
|
+
bold(text) {
|
|
77
|
+
return `**${text}**`;
|
|
78
|
+
},
|
|
79
|
+
/**
|
|
80
|
+
* Generate italic text
|
|
81
|
+
*/
|
|
82
|
+
italic(text) {
|
|
83
|
+
return `*${text}*`;
|
|
84
|
+
},
|
|
85
|
+
/**
|
|
86
|
+
* Generate a checkbox
|
|
87
|
+
*/
|
|
88
|
+
checkbox(checked) {
|
|
89
|
+
return checked ? '✔' : '';
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/helpers/markdown.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* embedoc - In-Place Document Generator
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { defineEmbed, build, generateAll } from 'embedoc';
|
|
7
|
+
*
|
|
8
|
+
* const myEmbed = defineEmbed({
|
|
9
|
+
* dependsOn: ['my_datasource'],
|
|
10
|
+
* async render(ctx) {
|
|
11
|
+
* const data = await ctx.datasources.my_datasource.query('SELECT * FROM table');
|
|
12
|
+
* return { content: ctx.markdown.table(['Column'], data.map(r => [r.name])) };
|
|
13
|
+
* }
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export type { CommentStyle, TargetConfig, GeneratorConfig, DatasourceConfig, OutputConfig, GithubConfig, EmbedifyConfig, InlineDatasourceConfig, ParsedMarker, DetectedComment, QueryResult, Datasource, DatasourceFactory, MarkdownHelper, EmbedContext, EmbedResult, EmbedDefinition, DefineEmbedFn, ParsedFrontmatter, ProcessResult, GenerateResult, BuildResult, CLIOptions, } from './types/index.js';
|
|
18
|
+
export { build, processFile } from './core/processor.js';
|
|
19
|
+
export { generateAll, generateFromDatasource } from './core/generator.js';
|
|
20
|
+
export { parseMarkers, parseFrontmatter, parseAttributes, resolveVariables, getCommentStyle, guessCommentStyle, parseInlineDataMarkers, DEFAULT_COMMENT_STYLES, } from './core/parser.js';
|
|
21
|
+
export { InlineDatasource, buildInlineDatasources, parseDotPath, resolveDotPath, setDotPath, getRootName, parseInlineContent, } from './core/inline-datasource.js';
|
|
22
|
+
export type { ParsedInlineData, ContentProcessingOptions } from './core/inline-datasource.js';
|
|
23
|
+
export { DependencyGraph } from './core/dependency.js';
|
|
24
|
+
export type { DependencyType, DependencyNode } from './core/dependency.js';
|
|
25
|
+
export { createDatasource, initializeDatasources, closeDatasources, SqliteDatasource, CsvDatasource, JsonDatasource, YamlDatasource, GlobDatasource, } from './datasources/index.js';
|
|
26
|
+
export { createMarkdownHelper } from './helpers/markdown.js';
|
|
27
|
+
import type { DefineEmbedFn } from './types/index.js';
|
|
28
|
+
/**
|
|
29
|
+
* Helper function to define an embed
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* import { defineEmbed } from 'embedoc';
|
|
34
|
+
*
|
|
35
|
+
* export default defineEmbed({
|
|
36
|
+
* dependsOn: ['metadata_db'],
|
|
37
|
+
* async render(ctx) {
|
|
38
|
+
* const { id } = ctx.params;
|
|
39
|
+
* const data = await ctx.datasources.metadata_db.query(
|
|
40
|
+
* 'SELECT * FROM tables WHERE name = ?',
|
|
41
|
+
* [id]
|
|
42
|
+
* );
|
|
43
|
+
* return { content: ctx.markdown.table(['Name'], data.map(r => [r.name])) };
|
|
44
|
+
* }
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare const defineEmbed: DefineEmbedFn;
|
|
49
|
+
export declare const defineTemplate: DefineEmbedFn;
|
|
50
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,YAAY,EAEV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,sBAAsB,EAEtB,YAAY,EACZ,eAAe,EAEf,WAAW,EACX,UAAU,EACV,iBAAiB,EAEjB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,eAAe,EACf,aAAa,EAEb,iBAAiB,EAEjB,aAAa,EACb,cAAc,EACd,WAAW,EACX,UAAU,GACX,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,WAAW,EACX,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3E,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,WAAW,EAAE,aAA2D,CAAC;AAGtF,eAAO,MAAM,cAAc,eAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* embedoc - In-Place Document Generator
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { defineEmbed, build, generateAll } from 'embedoc';
|
|
7
|
+
*
|
|
8
|
+
* const myEmbed = defineEmbed({
|
|
9
|
+
* dependsOn: ['my_datasource'],
|
|
10
|
+
* async render(ctx) {
|
|
11
|
+
* const data = await ctx.datasources.my_datasource.query('SELECT * FROM table');
|
|
12
|
+
* return { content: ctx.markdown.table(['Column'], data.map(r => [r.name])) };
|
|
13
|
+
* }
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
// Core functions
|
|
18
|
+
export { build, processFile } from './core/processor.js';
|
|
19
|
+
export { generateAll, generateFromDatasource } from './core/generator.js';
|
|
20
|
+
export { parseMarkers, parseFrontmatter, parseAttributes, resolveVariables, getCommentStyle, guessCommentStyle, parseInlineDataMarkers, DEFAULT_COMMENT_STYLES, } from './core/parser.js';
|
|
21
|
+
// Inline datasource
|
|
22
|
+
export { InlineDatasource, buildInlineDatasources, parseDotPath, resolveDotPath, setDotPath, getRootName, parseInlineContent, } from './core/inline-datasource.js';
|
|
23
|
+
export { DependencyGraph } from './core/dependency.js';
|
|
24
|
+
// Datasources
|
|
25
|
+
export { createDatasource, initializeDatasources, closeDatasources, SqliteDatasource, CsvDatasource, JsonDatasource, YamlDatasource, GlobDatasource, } from './datasources/index.js';
|
|
26
|
+
// Helpers
|
|
27
|
+
export { createMarkdownHelper } from './helpers/markdown.js';
|
|
28
|
+
/**
|
|
29
|
+
* Helper function to define an embed
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* import { defineEmbed } from 'embedoc';
|
|
34
|
+
*
|
|
35
|
+
* export default defineEmbed({
|
|
36
|
+
* dependsOn: ['metadata_db'],
|
|
37
|
+
* async render(ctx) {
|
|
38
|
+
* const { id } = ctx.params;
|
|
39
|
+
* const data = await ctx.datasources.metadata_db.query(
|
|
40
|
+
* 'SELECT * FROM tables WHERE name = ?',
|
|
41
|
+
* [id]
|
|
42
|
+
* );
|
|
43
|
+
* return { content: ctx.markdown.table(['Name'], data.map(r => [r.name])) };
|
|
44
|
+
* }
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export const defineEmbed = (definition) => definition;
|
|
49
|
+
// Export alias for documentation consistency
|
|
50
|
+
export const defineTemplate = defineEmbed;
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAmCH,iBAAiB;AACjB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,oBAAoB;AACpB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,WAAW,EACX,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,cAAc;AACd,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,UAAU;AACV,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAK7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAkB,CAAC,UAA2B,EAAE,EAAE,CAAC,UAAU,CAAC;AAEtF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* embedoc Type Definitions
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Comment style definition
|
|
6
|
+
*/
|
|
7
|
+
export interface CommentStyle {
|
|
8
|
+
start: string;
|
|
9
|
+
end: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Target file pattern configuration
|
|
13
|
+
*/
|
|
14
|
+
export interface TargetConfig {
|
|
15
|
+
pattern: string;
|
|
16
|
+
comment_style: string;
|
|
17
|
+
exclude?: string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generator configuration
|
|
21
|
+
*/
|
|
22
|
+
export interface GeneratorConfig {
|
|
23
|
+
output_path: string;
|
|
24
|
+
template: string;
|
|
25
|
+
overwrite?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Datasource configuration
|
|
29
|
+
*/
|
|
30
|
+
export interface DatasourceConfig {
|
|
31
|
+
type: 'sqlite' | 'csv' | 'json' | 'yaml' | 'glob';
|
|
32
|
+
path?: string;
|
|
33
|
+
pattern?: string;
|
|
34
|
+
query?: string;
|
|
35
|
+
encoding?: string;
|
|
36
|
+
generators?: GeneratorConfig[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Output configuration
|
|
40
|
+
*/
|
|
41
|
+
export interface OutputConfig {
|
|
42
|
+
encoding?: BufferEncoding;
|
|
43
|
+
line_ending?: 'lf' | 'crlf';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* GitHub configuration
|
|
47
|
+
*/
|
|
48
|
+
export interface GithubConfig {
|
|
49
|
+
base_url?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Inline datasource configuration
|
|
53
|
+
*/
|
|
54
|
+
export interface InlineDatasourceConfig {
|
|
55
|
+
/** Enable/disable inline datasources (default: true) */
|
|
56
|
+
enabled?: boolean;
|
|
57
|
+
/** Maximum size in bytes (default: 10240) */
|
|
58
|
+
maxBytes?: number;
|
|
59
|
+
/** Allowed formats (default: all) */
|
|
60
|
+
allowedFormats?: string[];
|
|
61
|
+
/** Conflict policy when inline name matches external (default: warn) */
|
|
62
|
+
conflictPolicy?: 'warn' | 'error' | 'prefer_external';
|
|
63
|
+
/** Allow anonymous inline data (default: false) */
|
|
64
|
+
allowAnonymous?: boolean;
|
|
65
|
+
/** Strip code fences from content (default: true) */
|
|
66
|
+
stripCodeFences?: boolean;
|
|
67
|
+
/** Custom regex patterns to strip from content start/end */
|
|
68
|
+
stripPatterns?: string[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Main configuration file
|
|
72
|
+
*/
|
|
73
|
+
export interface EmbedifyConfig {
|
|
74
|
+
version: string;
|
|
75
|
+
targets: TargetConfig[];
|
|
76
|
+
comment_styles?: Record<string, CommentStyle>;
|
|
77
|
+
datasources?: Record<string, DatasourceConfig>;
|
|
78
|
+
embeds_dir?: string;
|
|
79
|
+
templates_dir?: string;
|
|
80
|
+
output?: OutputConfig;
|
|
81
|
+
github?: GithubConfig;
|
|
82
|
+
/** Inline datasource configuration */
|
|
83
|
+
inline_datasource?: InlineDatasourceConfig;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Parsed marker information
|
|
87
|
+
*/
|
|
88
|
+
export interface ParsedMarker {
|
|
89
|
+
/** Start position of entire marker */
|
|
90
|
+
startIndex: number;
|
|
91
|
+
/** End position of entire marker */
|
|
92
|
+
endIndex: number;
|
|
93
|
+
/** Template name */
|
|
94
|
+
templateName: string;
|
|
95
|
+
/** Parameters (attribute values) */
|
|
96
|
+
params: Record<string, string>;
|
|
97
|
+
/** Existing content (between markers) */
|
|
98
|
+
existingContent: string;
|
|
99
|
+
/** Full start marker line */
|
|
100
|
+
startMarkerLine: string;
|
|
101
|
+
/** Full end marker line */
|
|
102
|
+
endMarkerLine: string;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Detected comment format result
|
|
106
|
+
*/
|
|
107
|
+
export interface DetectedComment {
|
|
108
|
+
style: CommentStyle;
|
|
109
|
+
styleName: string;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Datasource query result
|
|
113
|
+
*/
|
|
114
|
+
export type QueryResult = Record<string, unknown>[];
|
|
115
|
+
/**
|
|
116
|
+
* Datasource interface
|
|
117
|
+
*/
|
|
118
|
+
export interface Datasource {
|
|
119
|
+
/** Datasource type */
|
|
120
|
+
readonly type: string;
|
|
121
|
+
/** Execute query */
|
|
122
|
+
query(sql: string, params?: unknown[]): Promise<QueryResult>;
|
|
123
|
+
/** Get all data (for generators) */
|
|
124
|
+
getAll(): Promise<QueryResult>;
|
|
125
|
+
/** Close connection */
|
|
126
|
+
close(): Promise<void>;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Datasource factory
|
|
130
|
+
*/
|
|
131
|
+
export type DatasourceFactory = (config: DatasourceConfig) => Promise<Datasource>;
|
|
132
|
+
/**
|
|
133
|
+
* Markdown helper
|
|
134
|
+
*/
|
|
135
|
+
export interface MarkdownHelper {
|
|
136
|
+
/** Generate table */
|
|
137
|
+
table(headers: string[], rows: (string | number | boolean | null | undefined)[][]): string;
|
|
138
|
+
/** Generate list */
|
|
139
|
+
list(items: string[], ordered?: boolean): string;
|
|
140
|
+
/** Generate code block */
|
|
141
|
+
codeBlock(code: string, language?: string): string;
|
|
142
|
+
/** Generate link */
|
|
143
|
+
link(text: string, url: string): string;
|
|
144
|
+
/** Generate heading */
|
|
145
|
+
heading(text: string, level?: number): string;
|
|
146
|
+
/** Bold text */
|
|
147
|
+
bold(text: string): string;
|
|
148
|
+
/** Italic text */
|
|
149
|
+
italic(text: string): string;
|
|
150
|
+
/** Checkbox */
|
|
151
|
+
checkbox(checked: boolean): string;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Embed context
|
|
155
|
+
*/
|
|
156
|
+
export interface EmbedContext {
|
|
157
|
+
/** Marker parameters */
|
|
158
|
+
params: Record<string, string>;
|
|
159
|
+
/** Frontmatter properties */
|
|
160
|
+
frontmatter: Record<string, unknown>;
|
|
161
|
+
/** Datasource access */
|
|
162
|
+
datasources: Record<string, Datasource>;
|
|
163
|
+
/** Markdown helper */
|
|
164
|
+
markdown: MarkdownHelper;
|
|
165
|
+
/** Current file path being processed */
|
|
166
|
+
filePath: string;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Embed execution result
|
|
170
|
+
*/
|
|
171
|
+
export interface EmbedResult {
|
|
172
|
+
content: string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Embed definition
|
|
176
|
+
*/
|
|
177
|
+
export interface EmbedDefinition {
|
|
178
|
+
/** Dependent datasource names */
|
|
179
|
+
dependsOn?: string[];
|
|
180
|
+
/** Render function */
|
|
181
|
+
render(ctx: EmbedContext): Promise<EmbedResult>;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Helper function type for embed definition
|
|
185
|
+
*/
|
|
186
|
+
export type DefineEmbedFn = (definition: EmbedDefinition) => EmbedDefinition;
|
|
187
|
+
/**
|
|
188
|
+
* Parsed frontmatter
|
|
189
|
+
*/
|
|
190
|
+
export interface ParsedFrontmatter {
|
|
191
|
+
/** Frontmatter data */
|
|
192
|
+
data: Record<string, unknown>;
|
|
193
|
+
/** Content after frontmatter */
|
|
194
|
+
content: string;
|
|
195
|
+
/** Original frontmatter string (including ---) */
|
|
196
|
+
raw: string;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* File processing result
|
|
200
|
+
*/
|
|
201
|
+
export interface ProcessResult {
|
|
202
|
+
/** Processed file path */
|
|
203
|
+
filePath: string;
|
|
204
|
+
/** Whether successful */
|
|
205
|
+
success: boolean;
|
|
206
|
+
/** Number of updated markers */
|
|
207
|
+
markersUpdated: number;
|
|
208
|
+
/** Error (if any) */
|
|
209
|
+
error?: Error;
|
|
210
|
+
/** Whether changed */
|
|
211
|
+
changed: boolean;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Generation result
|
|
215
|
+
*/
|
|
216
|
+
export interface GenerateResult {
|
|
217
|
+
/** Generated file path */
|
|
218
|
+
filePath: string;
|
|
219
|
+
/** Whether successful */
|
|
220
|
+
success: boolean;
|
|
221
|
+
/** Whether skipped (existing file without overwrite) */
|
|
222
|
+
skipped: boolean;
|
|
223
|
+
/** Error (if any) */
|
|
224
|
+
error?: Error;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Build result
|
|
228
|
+
*/
|
|
229
|
+
export interface BuildResult {
|
|
230
|
+
/** Number of processed files */
|
|
231
|
+
totalFiles: number;
|
|
232
|
+
/** Number of successful files */
|
|
233
|
+
successFiles: number;
|
|
234
|
+
/** Number of failed files */
|
|
235
|
+
failedFiles: number;
|
|
236
|
+
/** Total number of updated markers */
|
|
237
|
+
totalMarkersUpdated: number;
|
|
238
|
+
/** Results for each file */
|
|
239
|
+
results: ProcessResult[];
|
|
240
|
+
/** Processing time (milliseconds) */
|
|
241
|
+
duration: number;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* CLI options
|
|
245
|
+
*/
|
|
246
|
+
export interface CLIOptions {
|
|
247
|
+
config?: string;
|
|
248
|
+
dryRun?: boolean;
|
|
249
|
+
verbose?: boolean;
|
|
250
|
+
datasource?: string;
|
|
251
|
+
generator?: string;
|
|
252
|
+
all?: boolean;
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,iBAAiB,CAAC;IACtD,mDAAmD;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;CAC5C;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,oCAAoC;IACpC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/B,uBAAuB;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAMlF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC;IAC3F,oBAAoB;IACpB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjD,0BAA0B;IAC1B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnD,oBAAoB;IACpB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,uBAAuB;IACvB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9C,gBAAgB;IAChB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,kBAAkB;IAClB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,eAAe;IACf,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,sBAAsB;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,sBAAsB;IACtB,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,eAAe,KAAK,eAAe,CAAC;AAM7E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;CACb;AAMD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4BAA4B;IAC5B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|