@luzzle/web.tools 0.0.69 → 0.0.70
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/package.json +6 -7
- package/dist/src/browser.d.ts +0 -1
- package/dist/src/browser.js +0 -2
- package/dist/src/browser.js.map +0 -1
- package/dist/src/cli.d.ts +0 -2
- package/dist/src/cli.js +0 -19
- package/dist/src/cli.js.map +0 -1
- package/dist/src/commands/assets/command.d.ts +0 -30
- package/dist/src/commands/assets/command.js +0 -41
- package/dist/src/commands/assets/command.js.map +0 -1
- package/dist/src/commands/assets/index.d.ts +0 -4
- package/dist/src/commands/assets/index.js +0 -79
- package/dist/src/commands/assets/index.js.map +0 -1
- package/dist/src/commands/assets/index.test.d.ts +0 -1
- package/dist/src/commands/assets/index.test.js +0 -419
- package/dist/src/commands/assets/index.test.js.map +0 -1
- package/dist/src/commands/assets/variants.d.ts +0 -8
- package/dist/src/commands/assets/variants.js +0 -23
- package/dist/src/commands/assets/variants.js.map +0 -1
- package/dist/src/commands/assets/variants.test.d.ts +0 -1
- package/dist/src/commands/assets/variants.test.js +0 -48
- package/dist/src/commands/assets/variants.test.js.map +0 -1
- package/dist/src/commands/config/command.d.ts +0 -2
- package/dist/src/commands/config/command.js +0 -42
- package/dist/src/commands/config/command.js.map +0 -1
- package/dist/src/commands/config/index.d.ts +0 -3
- package/dist/src/commands/config/index.js +0 -37
- package/dist/src/commands/config/index.js.map +0 -1
- package/dist/src/commands/config/index.test.d.ts +0 -1
- package/dist/src/commands/config/index.test.js +0 -93
- package/dist/src/commands/config/index.test.js.map +0 -1
- package/dist/src/commands/opengraph/browser.d.ts +0 -3
- package/dist/src/commands/opengraph/browser.js +0 -23
- package/dist/src/commands/opengraph/browser.js.map +0 -1
- package/dist/src/commands/opengraph/browser.test.d.ts +0 -1
- package/dist/src/commands/opengraph/browser.test.js +0 -30
- package/dist/src/commands/opengraph/browser.test.js.map +0 -1
- package/dist/src/commands/opengraph/command.d.ts +0 -30
- package/dist/src/commands/opengraph/command.js +0 -41
- package/dist/src/commands/opengraph/command.js.map +0 -1
- package/dist/src/commands/opengraph/command.test.d.ts +0 -1
- package/dist/src/commands/opengraph/command.test.js +0 -68
- package/dist/src/commands/opengraph/command.test.js.map +0 -1
- package/dist/src/commands/opengraph/html.d.ts +0 -4
- package/dist/src/commands/opengraph/html.js +0 -47
- package/dist/src/commands/opengraph/html.js.map +0 -1
- package/dist/src/commands/opengraph/html.test.d.ts +0 -1
- package/dist/src/commands/opengraph/html.test.js +0 -79
- package/dist/src/commands/opengraph/html.test.js.map +0 -1
- package/dist/src/commands/opengraph/index.d.ts +0 -4
- package/dist/src/commands/opengraph/index.js +0 -47
- package/dist/src/commands/opengraph/index.js.map +0 -1
- package/dist/src/commands/opengraph/index.test.d.ts +0 -1
- package/dist/src/commands/opengraph/index.test.js +0 -162
- package/dist/src/commands/opengraph/index.test.js.map +0 -1
- package/dist/src/commands/opengraph/png.d.ts +0 -3
- package/dist/src/commands/opengraph/png.js +0 -26
- package/dist/src/commands/opengraph/png.js.map +0 -1
- package/dist/src/commands/opengraph/png.test.d.ts +0 -1
- package/dist/src/commands/opengraph/png.test.js +0 -50
- package/dist/src/commands/opengraph/png.test.js.map +0 -1
- package/dist/src/commands/opengraph/svelte.d.ts +0 -7
- package/dist/src/commands/opengraph/svelte.js +0 -77
- package/dist/src/commands/opengraph/svelte.js.map +0 -1
- package/dist/src/commands/opengraph/svelte.test.d.ts +0 -1
- package/dist/src/commands/opengraph/svelte.test.js +0 -189
- package/dist/src/commands/opengraph/svelte.test.js.map +0 -1
- package/dist/src/commands/opengraph/utils.d.ts +0 -8
- package/dist/src/commands/opengraph/utils.js +0 -136
- package/dist/src/commands/opengraph/utils.js.map +0 -1
- package/dist/src/commands/opengraph/utils.test.d.ts +0 -1
- package/dist/src/commands/opengraph/utils.test.js +0 -215
- package/dist/src/commands/opengraph/utils.test.js.map +0 -1
- package/dist/src/commands/sqlite/command.d.ts +0 -8
- package/dist/src/commands/sqlite/command.js +0 -16
- package/dist/src/commands/sqlite/command.js.map +0 -1
- package/dist/src/commands/sqlite/command.test.d.ts +0 -1
- package/dist/src/commands/sqlite/command.test.js +0 -42
- package/dist/src/commands/sqlite/command.test.js.map +0 -1
- package/dist/src/commands/sqlite/database.d.ts +0 -9
- package/dist/src/commands/sqlite/database.js +0 -174
- package/dist/src/commands/sqlite/database.js.map +0 -1
- package/dist/src/commands/sqlite/database.mock.d.ts +0 -24
- package/dist/src/commands/sqlite/database.mock.js +0 -58
- package/dist/src/commands/sqlite/database.mock.js.map +0 -1
- package/dist/src/commands/sqlite/database.test.d.ts +0 -1
- package/dist/src/commands/sqlite/database.test.js +0 -211
- package/dist/src/commands/sqlite/database.test.js.map +0 -1
- package/dist/src/commands/sqlite/index.d.ts +0 -1
- package/dist/src/commands/sqlite/index.js +0 -26
- package/dist/src/commands/sqlite/index.js.map +0 -1
- package/dist/src/commands/sqlite/index.test.d.ts +0 -1
- package/dist/src/commands/sqlite/index.test.js +0 -48
- package/dist/src/commands/sqlite/index.test.js.map +0 -1
- package/dist/src/commands/theme/command.d.ts +0 -13
- package/dist/src/commands/theme/command.js +0 -21
- package/dist/src/commands/theme/command.js.map +0 -1
- package/dist/src/commands/theme/command.test.d.ts +0 -1
- package/dist/src/commands/theme/command.test.js +0 -40
- package/dist/src/commands/theme/command.test.js.map +0 -1
- package/dist/src/commands/theme/index.d.ts +0 -1
- package/dist/src/commands/theme/index.js +0 -9
- package/dist/src/commands/theme/index.js.map +0 -1
- package/dist/src/commands/theme/index.test.d.ts +0 -1
- package/dist/src/commands/theme/index.test.js +0 -46
- package/dist/src/commands/theme/index.test.js.map +0 -1
- package/dist/src/commands/theme/theme.d.ts +0 -4
- package/dist/src/commands/theme/theme.js +0 -76
- package/dist/src/commands/theme/theme.js.map +0 -1
- package/dist/src/commands/theme/theme.test.d.ts +0 -1
- package/dist/src/commands/theme/theme.test.js +0 -54
- package/dist/src/commands/theme/theme.test.js.map +0 -1
- package/dist/src/lib/browser.d.ts +0 -55
- package/dist/src/lib/browser.js +0 -52
- package/dist/src/lib/browser.js.map +0 -1
- package/dist/src/lib/browser.test.d.ts +0 -1
- package/dist/src/lib/browser.test.js +0 -67
- package/dist/src/lib/browser.test.js.map +0 -1
- package/dist/src/lib/config/config.d.ts +0 -9
- package/dist/src/lib/config/config.js +0 -56
- package/dist/src/lib/config/config.js.map +0 -1
- package/dist/src/lib/config/config.test.d.ts +0 -1
- package/dist/src/lib/config/config.test.js +0 -71
- package/dist/src/lib/config/config.test.js.map +0 -1
- package/dist/src/lib/config/config.test.ts +0 -88
- package/dist/src/lib/config/config.ts +0 -74
- package/dist/src/lib/config/defaults.json +0 -145
- package/dist/src/lib/config/defaults.yaml +0 -151
- package/dist/src/lib/config/schema.d.ts +0 -172
- package/dist/src/lib/config/schema.js +0 -8
- package/dist/src/lib/config/schema.js.map +0 -1
- package/dist/src/lib/config/schema.json +0 -663
- package/dist/src/lib/config/schema.ts +0 -294
- package/dist/src/lib/config/user-error.config.yaml +0 -2
- package/dist/src/lib/config/user.config.yaml +0 -2
- package/dist/src/lib/deep-merge.d.ts +0 -1
- package/dist/src/lib/deep-merge.js +0 -27
- package/dist/src/lib/deep-merge.js.map +0 -1
- package/dist/src/lib/deep-merge.test.d.ts +0 -1
- package/dist/src/lib/deep-merge.test.js +0 -29
- package/dist/src/lib/deep-merge.test.js.map +0 -1
- package/dist/src/lib/lastRun.d.ts +0 -4
- package/dist/src/lib/lastRun.js +0 -23
- package/dist/src/lib/lastRun.js.map +0 -1
- package/dist/src/lib/lastRun.test.d.ts +0 -1
- package/dist/src/lib/lastRun.test.js +0 -47
- package/dist/src/lib/lastRun.test.js.map +0 -1
- package/dist/src/lib/vibrant.d.ts +0 -21
- package/dist/src/lib/vibrant.js +0 -78
- package/dist/src/lib/vibrant.js.map +0 -1
- package/dist/src/lib/vibrant.test.d.ts +0 -1
- package/dist/src/lib/vibrant.test.js +0 -164
- package/dist/src/lib/vibrant.test.js.map +0 -1
- package/dist/src/sdk.d.ts +0 -4
- package/dist/src/sdk.js +0 -4
- package/dist/src/sdk.js.map +0 -1
- package/dist/src/types.d.ts +0 -2
- package/dist/src/types.js +0 -2
- package/dist/src/types.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { describe, test, vi, afterEach, expect } from 'vitest';
|
|
2
|
-
import { getHandler, setHandler, validateHandler } from './index.js';
|
|
3
|
-
import { getConfigValue, setConfigValue, loadConfig } from '@luzzle/web.utils/server';
|
|
4
|
-
import { writeFileSync } from 'fs';
|
|
5
|
-
import yaml from 'yaml';
|
|
6
|
-
vi.mock('@luzzle/web.utils/server');
|
|
7
|
-
vi.mock('fs');
|
|
8
|
-
vi.mock('yaml');
|
|
9
|
-
const mocks = {
|
|
10
|
-
getConfigValue: vi.mocked(getConfigValue),
|
|
11
|
-
setConfigValue: vi.mocked(setConfigValue),
|
|
12
|
-
loadConfig: vi.mocked(loadConfig),
|
|
13
|
-
writeFileSync: vi.mocked(writeFileSync),
|
|
14
|
-
yamlStringify: vi.spyOn(yaml, 'stringify')
|
|
15
|
-
};
|
|
16
|
-
const spies = {};
|
|
17
|
-
describe('src/commands/config', () => {
|
|
18
|
-
afterEach(() => {
|
|
19
|
-
vi.clearAllMocks();
|
|
20
|
-
});
|
|
21
|
-
describe('validateHandler', () => {
|
|
22
|
-
test('should log success when config is valid', () => {
|
|
23
|
-
mocks.loadConfig.mockReturnValue({});
|
|
24
|
-
spies.consoleLog = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
25
|
-
spies.processExit = vi.spyOn(process, 'exit').mockReturnValue(0);
|
|
26
|
-
validateHandler('test');
|
|
27
|
-
expect(mocks.loadConfig).toHaveBeenCalledOnce();
|
|
28
|
-
expect(spies.consoleLog).toHaveBeenCalledOnce();
|
|
29
|
-
expect(spies.processExit).not.toHaveBeenCalled();
|
|
30
|
-
});
|
|
31
|
-
test('should log error and exit when config is invalid', () => {
|
|
32
|
-
mocks.loadConfig.mockImplementation(() => {
|
|
33
|
-
throw new Error('Invalid config');
|
|
34
|
-
});
|
|
35
|
-
spies.consoleError = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
36
|
-
spies.processExit = vi.spyOn(process, 'exit').mockReturnValue(0);
|
|
37
|
-
validateHandler('test');
|
|
38
|
-
expect(mocks.loadConfig).toHaveBeenCalledOnce();
|
|
39
|
-
expect(spies.consoleError).toHaveBeenCalledOnce();
|
|
40
|
-
expect(spies.processExit).toHaveBeenCalledWith(1);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
describe('getHandler', () => {
|
|
44
|
-
test('should log the value when the path is valid', () => {
|
|
45
|
-
mocks.loadConfig.mockReturnValue({});
|
|
46
|
-
mocks.getConfigValue.mockReturnValue('test-value');
|
|
47
|
-
spies.consoleLog = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
48
|
-
getHandler('test', 'test.path');
|
|
49
|
-
expect(mocks.loadConfig).toHaveBeenCalledOnce();
|
|
50
|
-
expect(mocks.getConfigValue).toHaveBeenCalledOnce();
|
|
51
|
-
expect(spies.consoleLog).toHaveBeenCalledOnce();
|
|
52
|
-
});
|
|
53
|
-
test('should log error and exit when the path is invalid', () => {
|
|
54
|
-
mocks.loadConfig.mockReturnValue({});
|
|
55
|
-
mocks.getConfigValue.mockImplementation(() => {
|
|
56
|
-
throw new Error('Invalid path');
|
|
57
|
-
});
|
|
58
|
-
spies.consoleError = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
59
|
-
spies.processExit = vi.spyOn(process, 'exit').mockReturnValue(0);
|
|
60
|
-
getHandler('test', 'test.path');
|
|
61
|
-
expect(mocks.loadConfig).toHaveBeenCalledOnce();
|
|
62
|
-
expect(mocks.getConfigValue).toHaveBeenCalledOnce();
|
|
63
|
-
expect(spies.consoleError).toHaveBeenCalledOnce();
|
|
64
|
-
expect(spies.processExit).toHaveBeenCalledWith(1);
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
describe('setHandler', () => {
|
|
68
|
-
test('should write the updated config to the file', () => {
|
|
69
|
-
mocks.loadConfig.mockReturnValue({});
|
|
70
|
-
mocks.yamlStringify.mockReturnValue('test-config');
|
|
71
|
-
spies.consoleLog = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
72
|
-
setHandler('test', 'test.path', 'test-value');
|
|
73
|
-
expect(mocks.loadConfig).toHaveBeenCalledOnce();
|
|
74
|
-
expect(mocks.setConfigValue).toHaveBeenCalledOnce();
|
|
75
|
-
expect(mocks.writeFileSync).toHaveBeenCalledOnce();
|
|
76
|
-
expect(spies.consoleLog).toHaveBeenCalledOnce();
|
|
77
|
-
});
|
|
78
|
-
test('should log error and exit when the value cannot be set', () => {
|
|
79
|
-
mocks.loadConfig.mockReturnValue({});
|
|
80
|
-
mocks.setConfigValue.mockImplementation(() => {
|
|
81
|
-
throw new Error('Invalid value');
|
|
82
|
-
});
|
|
83
|
-
spies.consoleError = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
84
|
-
spies.processExit = vi.spyOn(process, 'exit').mockReturnValue(0);
|
|
85
|
-
setHandler('test', 'test.path', 'test-value');
|
|
86
|
-
expect(mocks.loadConfig).toHaveBeenCalledOnce();
|
|
87
|
-
expect(mocks.setConfigValue).toHaveBeenCalledOnce();
|
|
88
|
-
expect(spies.consoleError).toHaveBeenCalledOnce();
|
|
89
|
-
expect(spies.processExit).toHaveBeenCalledWith(1);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
//# sourceMappingURL=index.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/commands/config/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import puppeteer from 'puppeteer';
|
|
2
|
-
let browserSingleton;
|
|
3
|
-
async function initializeBrowser() {
|
|
4
|
-
const launchArgs = [
|
|
5
|
-
'--no-sandbox',
|
|
6
|
-
'--disable-setuid-sandbox',
|
|
7
|
-
'--disable-dev-shm-usage',
|
|
8
|
-
'--disable-accelerated-2d-canvas',
|
|
9
|
-
'--disable-gpu',
|
|
10
|
-
];
|
|
11
|
-
return await puppeteer.launch({
|
|
12
|
-
headless: true,
|
|
13
|
-
args: launchArgs,
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
async function getBrowser() {
|
|
17
|
-
if (!browserSingleton || !browserSingleton.connected) {
|
|
18
|
-
browserSingleton = await initializeBrowser();
|
|
19
|
-
}
|
|
20
|
-
return browserSingleton;
|
|
21
|
-
}
|
|
22
|
-
export { getBrowser };
|
|
23
|
-
//# sourceMappingURL=browser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/commands/opengraph/browser.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,WAAW,CAAA;AAE9C,IAAI,gBAAgC,CAAA;AAEpC,KAAK,UAAU,iBAAiB;IAC/B,MAAM,UAAU,GAAG;QAClB,cAAc;QACd,0BAA0B;QAC1B,yBAAyB;QACzB,iCAAiC;QACjC,eAAe;KACf,CAAA;IAED,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC;QAC7B,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU;KAChB,CAAC,CAAA;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACxB,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QACtD,gBAAgB,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAC7C,CAAC;IACD,OAAO,gBAAgB,CAAA;AACxB,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { describe, test, vi, afterEach, expect } from 'vitest';
|
|
2
|
-
import puppeteer from 'puppeteer';
|
|
3
|
-
vi.mock('puppeteer');
|
|
4
|
-
describe('generate-open-graph/browser', () => {
|
|
5
|
-
const mocks = {
|
|
6
|
-
launch: vi.mocked(puppeteer.launch),
|
|
7
|
-
};
|
|
8
|
-
afterEach(() => {
|
|
9
|
-
vi.resetModules();
|
|
10
|
-
Object.values(mocks).forEach((mock) => {
|
|
11
|
-
mock.mockReset();
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
test('should initialize and return a browser instance', async () => {
|
|
15
|
-
const { getBrowser } = await import('./browser.js');
|
|
16
|
-
mocks.launch.mockResolvedValue({ connected: true });
|
|
17
|
-
const browser = await getBrowser();
|
|
18
|
-
expect(mocks.launch).toHaveBeenCalledOnce();
|
|
19
|
-
expect(browser).toBeDefined();
|
|
20
|
-
});
|
|
21
|
-
test('should return the existing browser instance', async () => {
|
|
22
|
-
const { getBrowser } = await import('./browser.js');
|
|
23
|
-
mocks.launch.mockResolvedValue({ connected: true });
|
|
24
|
-
const browser1 = await getBrowser();
|
|
25
|
-
const browser2 = await getBrowser();
|
|
26
|
-
expect(mocks.launch).toHaveBeenCalledOnce();
|
|
27
|
-
expect(browser1).toBe(browser2);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=browser.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser.test.js","sourceRoot":"","sources":["../../../../src/commands/opengraph/browser.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,SAAsB,MAAM,WAAW,CAAC;AAE/C,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAErB,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC5C,MAAM,KAAK,GAAG;QACb,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;KACnC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAwB,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;QAEnC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,oBAAoB,EAAE,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAwB,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,MAAM,UAAU,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,UAAU,EAAE,CAAC;QAEpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,oBAAoB,EAAE,CAAC;QAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Argv } from 'yargs';
|
|
2
|
-
export default function command(cli: Argv): Argv<import("yargs").Omit<{}, "id" | "config" | "luzzle" | "out" | "force"> & import("yargs").InferredOptionTypes<{
|
|
3
|
-
config: {
|
|
4
|
-
type: "string";
|
|
5
|
-
description: string;
|
|
6
|
-
demandOption: true;
|
|
7
|
-
};
|
|
8
|
-
luzzle: {
|
|
9
|
-
type: "string";
|
|
10
|
-
description: string;
|
|
11
|
-
alias: string;
|
|
12
|
-
demandOption: true;
|
|
13
|
-
};
|
|
14
|
-
out: {
|
|
15
|
-
type: "string";
|
|
16
|
-
description: string;
|
|
17
|
-
alias: string;
|
|
18
|
-
demandOption: true;
|
|
19
|
-
};
|
|
20
|
-
id: {
|
|
21
|
-
type: "string";
|
|
22
|
-
description: string;
|
|
23
|
-
};
|
|
24
|
-
force: {
|
|
25
|
-
type: "boolean";
|
|
26
|
-
description: string;
|
|
27
|
-
default: boolean;
|
|
28
|
-
alias: string;
|
|
29
|
-
};
|
|
30
|
-
}>>;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import generateOpenGraphs from './index.js';
|
|
2
|
-
export default function command(cli) {
|
|
3
|
-
return cli.command('opengraph', 'generate open graph images', function (yargs) {
|
|
4
|
-
const options = yargs.options({
|
|
5
|
-
config: {
|
|
6
|
-
type: 'string',
|
|
7
|
-
description: 'path to config.yaml',
|
|
8
|
-
demandOption: true,
|
|
9
|
-
},
|
|
10
|
-
luzzle: {
|
|
11
|
-
type: 'string',
|
|
12
|
-
description: 'path to luzzle directory',
|
|
13
|
-
alias: 'in',
|
|
14
|
-
demandOption: true,
|
|
15
|
-
},
|
|
16
|
-
out: {
|
|
17
|
-
type: 'string',
|
|
18
|
-
description: 'path to direct asset output',
|
|
19
|
-
alias: 'o',
|
|
20
|
-
demandOption: true,
|
|
21
|
-
},
|
|
22
|
-
id: {
|
|
23
|
-
type: 'string',
|
|
24
|
-
description: 'id of just one item to process',
|
|
25
|
-
},
|
|
26
|
-
force: {
|
|
27
|
-
type: 'boolean',
|
|
28
|
-
description: 'force processing of all items, irrespective of last modified times',
|
|
29
|
-
default: false,
|
|
30
|
-
alias: 'f',
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
return options;
|
|
34
|
-
}, async function (argv) {
|
|
35
|
-
await generateOpenGraphs(argv.config, argv.luzzle, argv.out, {
|
|
36
|
-
id: argv.id,
|
|
37
|
-
force: argv.force,
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/commands/opengraph/command.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,YAAY,CAAA;AAE3C,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,GAAS;IACxC,OAAO,GAAG,CAAC,OAAO,CACjB,WAAW,EACX,4BAA4B,EAC5B,UAAS,KAAK;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qBAAqB;gBAClC,YAAY,EAAE,IAAI;aAClB;YACD,MAAM,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;gBACvC,KAAK,EAAE,IAAI;gBACX,YAAY,EAAE,IAAI;aAClB;YACD,GAAG,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;gBAC1C,KAAK,EAAE,GAAG;gBACV,YAAY,EAAE,IAAI;aAClB;YACD,EAAE,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC7C;YACD,KAAK,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,oEAAoE;gBACjF,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG;aACV;SACD,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IACf,CAAC,EACD,KAAK,WAAU,IAAI;QAClB,MAAM,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE;YAC5D,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAA;IACH,CAAC,CACD,CAAA;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect, vi, afterEach } from 'vitest';
|
|
2
|
-
import command from './command.js';
|
|
3
|
-
import generateOpenGraphs from './index.js';
|
|
4
|
-
vi.mock('./index.js');
|
|
5
|
-
const mocks = {
|
|
6
|
-
generateOpenGraphs: vi.mocked(generateOpenGraphs),
|
|
7
|
-
};
|
|
8
|
-
describe('opengraph command', () => {
|
|
9
|
-
afterEach(() => {
|
|
10
|
-
vi.clearAllMocks();
|
|
11
|
-
});
|
|
12
|
-
test('should configure the command and call generateOpenGraphs', async () => {
|
|
13
|
-
const handler = vi.fn();
|
|
14
|
-
const builder = vi.fn();
|
|
15
|
-
const cli = {
|
|
16
|
-
command: vi.fn((_cmd, _desc, b, h) => {
|
|
17
|
-
builder.mockImplementation(b);
|
|
18
|
-
handler.mockImplementation(h);
|
|
19
|
-
return cli;
|
|
20
|
-
}),
|
|
21
|
-
};
|
|
22
|
-
command(cli);
|
|
23
|
-
expect(cli.command).toHaveBeenCalledWith('opengraph', 'generate open graph images', expect.any(Function), expect.any(Function));
|
|
24
|
-
const yargsMock = { options: vi.fn() };
|
|
25
|
-
builder(yargsMock);
|
|
26
|
-
expect(yargsMock.options).toHaveBeenCalledWith({
|
|
27
|
-
config: {
|
|
28
|
-
type: 'string',
|
|
29
|
-
description: 'path to config.yaml',
|
|
30
|
-
demandOption: true,
|
|
31
|
-
},
|
|
32
|
-
luzzle: {
|
|
33
|
-
type: 'string',
|
|
34
|
-
description: 'path to luzzle directory',
|
|
35
|
-
alias: 'in',
|
|
36
|
-
demandOption: true,
|
|
37
|
-
},
|
|
38
|
-
out: {
|
|
39
|
-
type: 'string',
|
|
40
|
-
description: 'path to direct asset output',
|
|
41
|
-
alias: 'o',
|
|
42
|
-
demandOption: true,
|
|
43
|
-
},
|
|
44
|
-
id: {
|
|
45
|
-
type: 'string',
|
|
46
|
-
description: 'id of just one item to process',
|
|
47
|
-
},
|
|
48
|
-
force: {
|
|
49
|
-
type: 'boolean',
|
|
50
|
-
description: 'force processing of all items, irrespective of last modified times',
|
|
51
|
-
default: false,
|
|
52
|
-
alias: 'f',
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
await handler({
|
|
56
|
-
config: 'test',
|
|
57
|
-
luzzle: 'test',
|
|
58
|
-
out: 'test',
|
|
59
|
-
id: 'test-id',
|
|
60
|
-
force: true,
|
|
61
|
-
});
|
|
62
|
-
expect(mocks.generateOpenGraphs).toHaveBeenCalledWith('test', 'test', 'test', {
|
|
63
|
-
id: 'test-id',
|
|
64
|
-
force: true,
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
//# sourceMappingURL=command.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command.test.js","sourceRoot":"","sources":["../../../../src/commands/opengraph/command.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC9D,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,kBAAkB,MAAM,YAAY,CAAA;AAG3C,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAErB,MAAM,KAAK,GAAG;IACb,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC;CACjD,CAAA;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAClC,SAAS,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QACvB,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QACvB,MAAM,GAAG,GAAG;YACX,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;gBAC7B,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;gBAC7B,OAAO,GAAG,CAAA;YACX,CAAC,CAAC;SACF,CAAA;QAED,OAAO,CAAC,GAAsB,CAAC,CAAA;QAE/B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,oBAAoB,CACvC,WAAW,EACX,4BAA4B,EAC5B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CACpB,CAAA;QAED,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;QACtC,OAAO,CAAC,SAAS,CAAC,CAAA;QAClB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC;YAC9C,MAAM,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qBAAqB;gBAClC,YAAY,EAAE,IAAI;aAClB;YACD,MAAM,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;gBACvC,KAAK,EAAE,IAAI;gBACX,YAAY,EAAE,IAAI;aAClB;YACD,GAAG,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;gBAC1C,KAAK,EAAE,GAAG;gBACV,YAAY,EAAE,IAAI;aAClB;YACD,EAAE,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC7C;YACD,KAAK,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,oEAAoE;gBACjF,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG;aACV;SACD,CAAC,CAAA;QAEF,MAAM,OAAO,CAAC;YACb,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,MAAM;YACX,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,IAAI;SACX,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;YAC7E,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,IAAI;SACX,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { OpengraphImageWidth, OpengraphImageHeight } from '@luzzle/web.utils';
|
|
2
|
-
import { getIconComponentForType, getOpengraphComponentForType } from './svelte.js';
|
|
3
|
-
import { render } from 'svelte/server';
|
|
4
|
-
import { findAndReplaceLuzzleUrls, getProps } from './utils.js';
|
|
5
|
-
async function buildHtmlDoc(head, body, pieces) {
|
|
6
|
-
const html = await findAndReplaceLuzzleUrls(body, pieces);
|
|
7
|
-
return `
|
|
8
|
-
<html>
|
|
9
|
-
<head>
|
|
10
|
-
<meta charset="UTF-8" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
12
|
-
<style>
|
|
13
|
-
* {
|
|
14
|
-
box-sizing: border-box;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
html, body {
|
|
18
|
-
margin: 0;
|
|
19
|
-
padding: 0;
|
|
20
|
-
width: ${OpengraphImageWidth}px;
|
|
21
|
-
height: ${OpengraphImageHeight}px;
|
|
22
|
-
}
|
|
23
|
-
</style>
|
|
24
|
-
${head}
|
|
25
|
-
</head>
|
|
26
|
-
<body>${html}</body>
|
|
27
|
-
</html>`;
|
|
28
|
-
}
|
|
29
|
-
async function generateHtml(item, pieces, config) {
|
|
30
|
-
console.log(`generating opengraph for ${item.file_path} (${item.id})`);
|
|
31
|
-
try {
|
|
32
|
-
const OpenGraph = await getOpengraphComponentForType(item, config);
|
|
33
|
-
if (OpenGraph) {
|
|
34
|
-
const Icon = await getIconComponentForType(item, config);
|
|
35
|
-
const props = await getProps(item, Icon, pieces, config);
|
|
36
|
-
const { head, body } = await render(OpenGraph, { props: props });
|
|
37
|
-
return buildHtmlDoc(head, body, pieces);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
console.log(pieces, config);
|
|
42
|
-
throw new Error(`Error generating Open Graph for ${item.file_path} (${item.id}): ${e}`);
|
|
43
|
-
}
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
export { generateHtml };
|
|
47
|
-
//# sourceMappingURL=html.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../../src/commands/opengraph/html.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,mBAAmB,EACnB,oBAAoB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE/D,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc;IACrE,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAEzD,OAAO;;;;;;;;;;;;;aAaK,mBAAmB;cAClB,oBAAoB;;;IAG9B,IAAI;;SAEC,IAAI;QACL,CAAA;AACR,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAe,EAAE,MAAc,EAAE,MAAc;IAC1E,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IACtE,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,MAAM,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAElE,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACxD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YACxD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YAEhE,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QACxC,CAAC;IACF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IACxF,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect, vi, afterEach } from 'vitest';
|
|
2
|
-
import { generateHtml } from './html.js';
|
|
3
|
-
import { Pieces } from '@luzzle/cli';
|
|
4
|
-
import { getIconComponentForType, getOpengraphComponentForType } from './svelte.js';
|
|
5
|
-
import { findAndReplaceLuzzleUrls, getProps } from './utils.js';
|
|
6
|
-
import { render } from 'svelte/server';
|
|
7
|
-
vi.mock('@luzzle/cli');
|
|
8
|
-
vi.mock('./svelte.js');
|
|
9
|
-
vi.mock('./utils.js');
|
|
10
|
-
vi.mock('svelte/server');
|
|
11
|
-
const mocks = {
|
|
12
|
-
findAndReplaceLuzzleUrls: vi.mocked(findAndReplaceLuzzleUrls),
|
|
13
|
-
getOpengraphComponentForType: vi.mocked(getOpengraphComponentForType),
|
|
14
|
-
getIconComponentForType: vi.mocked(getIconComponentForType),
|
|
15
|
-
getProps: vi.mocked(getProps),
|
|
16
|
-
render: vi.mocked(render),
|
|
17
|
-
};
|
|
18
|
-
const spies = {};
|
|
19
|
-
const mockPieces = new Pieces({});
|
|
20
|
-
const mockConfig = {
|
|
21
|
-
paths: { database: 'test.db', config: 'test' },
|
|
22
|
-
url: { app: 'test', luzzle_assets: 'test', app_assets: 'test' },
|
|
23
|
-
text: { title: 'test', description: 'test' },
|
|
24
|
-
};
|
|
25
|
-
describe('src/commands/opengraph/html', () => {
|
|
26
|
-
afterEach(() => {
|
|
27
|
-
Object.values(mocks).forEach((mock) => {
|
|
28
|
-
mock.mockReset();
|
|
29
|
-
});
|
|
30
|
-
Object.values(spies).forEach((spy) => {
|
|
31
|
-
spy.mockRestore();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
test('generateHtml should correctly generate HTML for an item', async () => {
|
|
35
|
-
const item = {
|
|
36
|
-
type: 'book',
|
|
37
|
-
id: '1',
|
|
38
|
-
file_path: 'test',
|
|
39
|
-
date_added: 'test',
|
|
40
|
-
};
|
|
41
|
-
const mockOpenGraphComponent = { render: vi.fn() };
|
|
42
|
-
const mockIconComponent = { render: vi.fn() };
|
|
43
|
-
const mockProps = { some: 'props' };
|
|
44
|
-
const mockRenderResult = { head: '<meta name="test" />', body: '<h1>Hello</h1>', html: '--' };
|
|
45
|
-
mocks.getOpengraphComponentForType.mockResolvedValue(mockOpenGraphComponent);
|
|
46
|
-
mocks.getIconComponentForType.mockResolvedValue(mockIconComponent);
|
|
47
|
-
mocks.getProps.mockResolvedValue(mockProps);
|
|
48
|
-
mocks.render.mockResolvedValue(mockRenderResult);
|
|
49
|
-
mocks.findAndReplaceLuzzleUrls.mockResolvedValue(mockRenderResult.body);
|
|
50
|
-
const result = await generateHtml(item, mockPieces, mockConfig);
|
|
51
|
-
expect(mocks.render).toHaveBeenCalledOnce();
|
|
52
|
-
expect(result).toContain(mockRenderResult.head);
|
|
53
|
-
expect(result).toContain(mockRenderResult.body);
|
|
54
|
-
});
|
|
55
|
-
test('generateHtml should skip html generation', async () => {
|
|
56
|
-
const item = {
|
|
57
|
-
type: 'book',
|
|
58
|
-
id: '1',
|
|
59
|
-
file_path: 'test',
|
|
60
|
-
date_added: 'test',
|
|
61
|
-
};
|
|
62
|
-
mocks.getOpengraphComponentForType.mockResolvedValue(null);
|
|
63
|
-
const html = await generateHtml(item, mockPieces, mockConfig);
|
|
64
|
-
expect(html).toBeNull();
|
|
65
|
-
});
|
|
66
|
-
test('generateHtml should handle errors during HTML generation', async () => {
|
|
67
|
-
const item = {
|
|
68
|
-
type: 'book',
|
|
69
|
-
id: '1',
|
|
70
|
-
file_path: 'test',
|
|
71
|
-
date_added: 'test',
|
|
72
|
-
};
|
|
73
|
-
const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
74
|
-
mocks.getOpengraphComponentForType.mockRejectedValue(new Error('Test Error'));
|
|
75
|
-
await expect(generateHtml(item, mockPieces, mockConfig)).rejects.toThrowError();
|
|
76
|
-
expect(consoleErrorSpy).not.toHaveBeenCalled();
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
//# sourceMappingURL=html.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"html.test.js","sourceRoot":"","sources":["../../../../src/commands/opengraph/html.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { getLastRunFor, setLastRunFor } from '../../lib/lastRun.js';
|
|
2
|
-
import { generatePngFromUrl } from './png.js';
|
|
3
|
-
import { getBrowser } from './browser.js';
|
|
4
|
-
import path from 'path';
|
|
5
|
-
import { getDatabaseClient } from '@luzzle/core';
|
|
6
|
-
import { loadConfig } from '@luzzle/web.utils/server';
|
|
7
|
-
import { getOpenGraphPath } from '@luzzle/web.utils';
|
|
8
|
-
export default async function generateOpenGraphs(configPath, luzzle, outputDir, options) {
|
|
9
|
-
const config = loadConfig(configPath);
|
|
10
|
-
const configDir = path.dirname(configPath);
|
|
11
|
-
const dbPath = path.join(configDir, config.paths.database);
|
|
12
|
-
const db = getDatabaseClient(dbPath);
|
|
13
|
-
const items = await db
|
|
14
|
-
.withTables()
|
|
15
|
-
.selectFrom('web_pieces')
|
|
16
|
-
.selectAll()
|
|
17
|
-
.orderBy('date_updated', 'desc')
|
|
18
|
-
.orderBy('type', 'asc')
|
|
19
|
-
.execute();
|
|
20
|
-
const force = options.force || false;
|
|
21
|
-
const id = options.id || null;
|
|
22
|
-
const operation = 'generate-open-graph';
|
|
23
|
-
const lastRun = force ? new Date(0) : await getLastRunFor(outputDir, operation);
|
|
24
|
-
const browser = await getBrowser();
|
|
25
|
-
const piecesToProcess = id ? items.filter((item) => item.id === id) : items;
|
|
26
|
-
for (const item of piecesToProcess) {
|
|
27
|
-
const pieceModifiedTime = new Date(item.date_updated || item.date_added);
|
|
28
|
-
if (pieceModifiedTime > lastRun || force || id) {
|
|
29
|
-
try {
|
|
30
|
-
const ogPath = getOpenGraphPath(item.type, item.id);
|
|
31
|
-
const outputPath = path.join(outputDir, ogPath);
|
|
32
|
-
const url = `${config.url.app}/api/pieces/${item.type}/${item.slug}/opengraph`;
|
|
33
|
-
await generatePngFromUrl(url, browser, outputPath);
|
|
34
|
-
console.log(`generated opengraph for ${item.file_path} (${item.id})`);
|
|
35
|
-
}
|
|
36
|
-
catch (e) {
|
|
37
|
-
console.log(luzzle);
|
|
38
|
-
console.error(`error making opengraph for ${item.file_path} (${item.id}): ${e}`);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
if (!id) {
|
|
43
|
-
await setLastRunFor(outputDir, operation, new Date());
|
|
44
|
-
}
|
|
45
|
-
await browser.close();
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/opengraph/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAkB,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAC/C,UAAkB,EAClB,MAAc,EACd,SAAiB,EACjB,OAAyC;IAEzC,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,MAAM,EAAE;SACpB,UAAU,EAA6B;SACvC,UAAU,CAAC,YAAY,CAAC;SACxB,SAAS,EAAE;SACX,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;SAC/B,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;SACtB,OAAO,EAAE,CAAA;IAEX,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAA;IACpC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,CAAA;IAC7B,MAAM,SAAS,GAAG,qBAAqB,CAAA;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAE/E,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAA;IAClC,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAE3E,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;QAExE,IAAI,iBAAiB,GAAG,OAAO,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;gBACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;gBAC/C,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,YAAY,CAAA;gBAC9E,MAAM,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;gBAElD,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YACtE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBACnB,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YACjF,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;AACtB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|