@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.
Files changed (160) hide show
  1. package/package.json +6 -7
  2. package/dist/src/browser.d.ts +0 -1
  3. package/dist/src/browser.js +0 -2
  4. package/dist/src/browser.js.map +0 -1
  5. package/dist/src/cli.d.ts +0 -2
  6. package/dist/src/cli.js +0 -19
  7. package/dist/src/cli.js.map +0 -1
  8. package/dist/src/commands/assets/command.d.ts +0 -30
  9. package/dist/src/commands/assets/command.js +0 -41
  10. package/dist/src/commands/assets/command.js.map +0 -1
  11. package/dist/src/commands/assets/index.d.ts +0 -4
  12. package/dist/src/commands/assets/index.js +0 -79
  13. package/dist/src/commands/assets/index.js.map +0 -1
  14. package/dist/src/commands/assets/index.test.d.ts +0 -1
  15. package/dist/src/commands/assets/index.test.js +0 -419
  16. package/dist/src/commands/assets/index.test.js.map +0 -1
  17. package/dist/src/commands/assets/variants.d.ts +0 -8
  18. package/dist/src/commands/assets/variants.js +0 -23
  19. package/dist/src/commands/assets/variants.js.map +0 -1
  20. package/dist/src/commands/assets/variants.test.d.ts +0 -1
  21. package/dist/src/commands/assets/variants.test.js +0 -48
  22. package/dist/src/commands/assets/variants.test.js.map +0 -1
  23. package/dist/src/commands/config/command.d.ts +0 -2
  24. package/dist/src/commands/config/command.js +0 -42
  25. package/dist/src/commands/config/command.js.map +0 -1
  26. package/dist/src/commands/config/index.d.ts +0 -3
  27. package/dist/src/commands/config/index.js +0 -37
  28. package/dist/src/commands/config/index.js.map +0 -1
  29. package/dist/src/commands/config/index.test.d.ts +0 -1
  30. package/dist/src/commands/config/index.test.js +0 -93
  31. package/dist/src/commands/config/index.test.js.map +0 -1
  32. package/dist/src/commands/opengraph/browser.d.ts +0 -3
  33. package/dist/src/commands/opengraph/browser.js +0 -23
  34. package/dist/src/commands/opengraph/browser.js.map +0 -1
  35. package/dist/src/commands/opengraph/browser.test.d.ts +0 -1
  36. package/dist/src/commands/opengraph/browser.test.js +0 -30
  37. package/dist/src/commands/opengraph/browser.test.js.map +0 -1
  38. package/dist/src/commands/opengraph/command.d.ts +0 -30
  39. package/dist/src/commands/opengraph/command.js +0 -41
  40. package/dist/src/commands/opengraph/command.js.map +0 -1
  41. package/dist/src/commands/opengraph/command.test.d.ts +0 -1
  42. package/dist/src/commands/opengraph/command.test.js +0 -68
  43. package/dist/src/commands/opengraph/command.test.js.map +0 -1
  44. package/dist/src/commands/opengraph/html.d.ts +0 -4
  45. package/dist/src/commands/opengraph/html.js +0 -47
  46. package/dist/src/commands/opengraph/html.js.map +0 -1
  47. package/dist/src/commands/opengraph/html.test.d.ts +0 -1
  48. package/dist/src/commands/opengraph/html.test.js +0 -79
  49. package/dist/src/commands/opengraph/html.test.js.map +0 -1
  50. package/dist/src/commands/opengraph/index.d.ts +0 -4
  51. package/dist/src/commands/opengraph/index.js +0 -47
  52. package/dist/src/commands/opengraph/index.js.map +0 -1
  53. package/dist/src/commands/opengraph/index.test.d.ts +0 -1
  54. package/dist/src/commands/opengraph/index.test.js +0 -162
  55. package/dist/src/commands/opengraph/index.test.js.map +0 -1
  56. package/dist/src/commands/opengraph/png.d.ts +0 -3
  57. package/dist/src/commands/opengraph/png.js +0 -26
  58. package/dist/src/commands/opengraph/png.js.map +0 -1
  59. package/dist/src/commands/opengraph/png.test.d.ts +0 -1
  60. package/dist/src/commands/opengraph/png.test.js +0 -50
  61. package/dist/src/commands/opengraph/png.test.js.map +0 -1
  62. package/dist/src/commands/opengraph/svelte.d.ts +0 -7
  63. package/dist/src/commands/opengraph/svelte.js +0 -77
  64. package/dist/src/commands/opengraph/svelte.js.map +0 -1
  65. package/dist/src/commands/opengraph/svelte.test.d.ts +0 -1
  66. package/dist/src/commands/opengraph/svelte.test.js +0 -189
  67. package/dist/src/commands/opengraph/svelte.test.js.map +0 -1
  68. package/dist/src/commands/opengraph/utils.d.ts +0 -8
  69. package/dist/src/commands/opengraph/utils.js +0 -136
  70. package/dist/src/commands/opengraph/utils.js.map +0 -1
  71. package/dist/src/commands/opengraph/utils.test.d.ts +0 -1
  72. package/dist/src/commands/opengraph/utils.test.js +0 -215
  73. package/dist/src/commands/opengraph/utils.test.js.map +0 -1
  74. package/dist/src/commands/sqlite/command.d.ts +0 -8
  75. package/dist/src/commands/sqlite/command.js +0 -16
  76. package/dist/src/commands/sqlite/command.js.map +0 -1
  77. package/dist/src/commands/sqlite/command.test.d.ts +0 -1
  78. package/dist/src/commands/sqlite/command.test.js +0 -42
  79. package/dist/src/commands/sqlite/command.test.js.map +0 -1
  80. package/dist/src/commands/sqlite/database.d.ts +0 -9
  81. package/dist/src/commands/sqlite/database.js +0 -174
  82. package/dist/src/commands/sqlite/database.js.map +0 -1
  83. package/dist/src/commands/sqlite/database.mock.d.ts +0 -24
  84. package/dist/src/commands/sqlite/database.mock.js +0 -58
  85. package/dist/src/commands/sqlite/database.mock.js.map +0 -1
  86. package/dist/src/commands/sqlite/database.test.d.ts +0 -1
  87. package/dist/src/commands/sqlite/database.test.js +0 -211
  88. package/dist/src/commands/sqlite/database.test.js.map +0 -1
  89. package/dist/src/commands/sqlite/index.d.ts +0 -1
  90. package/dist/src/commands/sqlite/index.js +0 -26
  91. package/dist/src/commands/sqlite/index.js.map +0 -1
  92. package/dist/src/commands/sqlite/index.test.d.ts +0 -1
  93. package/dist/src/commands/sqlite/index.test.js +0 -48
  94. package/dist/src/commands/sqlite/index.test.js.map +0 -1
  95. package/dist/src/commands/theme/command.d.ts +0 -13
  96. package/dist/src/commands/theme/command.js +0 -21
  97. package/dist/src/commands/theme/command.js.map +0 -1
  98. package/dist/src/commands/theme/command.test.d.ts +0 -1
  99. package/dist/src/commands/theme/command.test.js +0 -40
  100. package/dist/src/commands/theme/command.test.js.map +0 -1
  101. package/dist/src/commands/theme/index.d.ts +0 -1
  102. package/dist/src/commands/theme/index.js +0 -9
  103. package/dist/src/commands/theme/index.js.map +0 -1
  104. package/dist/src/commands/theme/index.test.d.ts +0 -1
  105. package/dist/src/commands/theme/index.test.js +0 -46
  106. package/dist/src/commands/theme/index.test.js.map +0 -1
  107. package/dist/src/commands/theme/theme.d.ts +0 -4
  108. package/dist/src/commands/theme/theme.js +0 -76
  109. package/dist/src/commands/theme/theme.js.map +0 -1
  110. package/dist/src/commands/theme/theme.test.d.ts +0 -1
  111. package/dist/src/commands/theme/theme.test.js +0 -54
  112. package/dist/src/commands/theme/theme.test.js.map +0 -1
  113. package/dist/src/lib/browser.d.ts +0 -55
  114. package/dist/src/lib/browser.js +0 -52
  115. package/dist/src/lib/browser.js.map +0 -1
  116. package/dist/src/lib/browser.test.d.ts +0 -1
  117. package/dist/src/lib/browser.test.js +0 -67
  118. package/dist/src/lib/browser.test.js.map +0 -1
  119. package/dist/src/lib/config/config.d.ts +0 -9
  120. package/dist/src/lib/config/config.js +0 -56
  121. package/dist/src/lib/config/config.js.map +0 -1
  122. package/dist/src/lib/config/config.test.d.ts +0 -1
  123. package/dist/src/lib/config/config.test.js +0 -71
  124. package/dist/src/lib/config/config.test.js.map +0 -1
  125. package/dist/src/lib/config/config.test.ts +0 -88
  126. package/dist/src/lib/config/config.ts +0 -74
  127. package/dist/src/lib/config/defaults.json +0 -145
  128. package/dist/src/lib/config/defaults.yaml +0 -151
  129. package/dist/src/lib/config/schema.d.ts +0 -172
  130. package/dist/src/lib/config/schema.js +0 -8
  131. package/dist/src/lib/config/schema.js.map +0 -1
  132. package/dist/src/lib/config/schema.json +0 -663
  133. package/dist/src/lib/config/schema.ts +0 -294
  134. package/dist/src/lib/config/user-error.config.yaml +0 -2
  135. package/dist/src/lib/config/user.config.yaml +0 -2
  136. package/dist/src/lib/deep-merge.d.ts +0 -1
  137. package/dist/src/lib/deep-merge.js +0 -27
  138. package/dist/src/lib/deep-merge.js.map +0 -1
  139. package/dist/src/lib/deep-merge.test.d.ts +0 -1
  140. package/dist/src/lib/deep-merge.test.js +0 -29
  141. package/dist/src/lib/deep-merge.test.js.map +0 -1
  142. package/dist/src/lib/lastRun.d.ts +0 -4
  143. package/dist/src/lib/lastRun.js +0 -23
  144. package/dist/src/lib/lastRun.js.map +0 -1
  145. package/dist/src/lib/lastRun.test.d.ts +0 -1
  146. package/dist/src/lib/lastRun.test.js +0 -47
  147. package/dist/src/lib/lastRun.test.js.map +0 -1
  148. package/dist/src/lib/vibrant.d.ts +0 -21
  149. package/dist/src/lib/vibrant.js +0 -78
  150. package/dist/src/lib/vibrant.js.map +0 -1
  151. package/dist/src/lib/vibrant.test.d.ts +0 -1
  152. package/dist/src/lib/vibrant.test.js +0 -164
  153. package/dist/src/lib/vibrant.test.js.map +0 -1
  154. package/dist/src/sdk.d.ts +0 -4
  155. package/dist/src/sdk.js +0 -4
  156. package/dist/src/sdk.js.map +0 -1
  157. package/dist/src/types.d.ts +0 -2
  158. package/dist/src/types.js +0 -2
  159. package/dist/src/types.js.map +0 -1
  160. 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,3 +0,0 @@
1
- import { Browser } from 'puppeteer';
2
- declare function getBrowser(): Promise<Browser>;
3
- export { getBrowser };
@@ -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,4 +0,0 @@
1
- import { Pieces } from '@luzzle/cli';
2
- import { type WebPieces, type Config } from '@luzzle/web.utils';
3
- declare function generateHtml(item: WebPieces, pieces: Pieces, config: Config): Promise<string | null>;
4
- export { generateHtml };
@@ -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,4 +0,0 @@
1
- export default function generateOpenGraphs(configPath: string, luzzle: string, outputDir: string, options: {
2
- force?: boolean;
3
- id?: string;
4
- }): Promise<void>;
@@ -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":"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"}
@@ -1 +0,0 @@
1
- export {};