textmode.export.js 1.5.2 → 1.6.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.
Files changed (61) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +10 -4
  3. package/dist/textmode.export.esm.js +3160 -2960
  4. package/dist/textmode.export.umd.js +6 -6
  5. package/dist/types/index.d.ts +2 -26
  6. package/dist/types/index.d.ts.map +1 -1
  7. package/dist/types/overlay/blades/Blade.d.ts +9 -2
  8. package/dist/types/overlay/blades/Blade.d.ts.map +1 -1
  9. package/dist/types/overlay/blades/GIFBlade.d.ts +1 -0
  10. package/dist/types/overlay/blades/GIFBlade.d.ts.map +1 -1
  11. package/dist/types/overlay/blades/ImageBlade.d.ts +1 -0
  12. package/dist/types/overlay/blades/ImageBlade.d.ts.map +1 -1
  13. package/dist/types/overlay/blades/JSONBlade.d.ts +1 -0
  14. package/dist/types/overlay/blades/JSONBlade.d.ts.map +1 -1
  15. package/dist/types/overlay/blades/RecordingBlade.d.ts +8 -0
  16. package/dist/types/overlay/blades/RecordingBlade.d.ts.map +1 -0
  17. package/dist/types/overlay/blades/SVGBlade.d.ts +1 -0
  18. package/dist/types/overlay/blades/SVGBlade.d.ts.map +1 -1
  19. package/dist/types/overlay/blades/TextBlade.d.ts +1 -0
  20. package/dist/types/overlay/blades/TextBlade.d.ts.map +1 -1
  21. package/dist/types/overlay/blades/VideoBlade.d.ts +1 -0
  22. package/dist/types/overlay/blades/VideoBlade.d.ts.map +1 -1
  23. package/dist/types/overlay/blades/index.d.ts +3 -0
  24. package/dist/types/overlay/blades/index.d.ts.map +1 -1
  25. package/dist/types/overlay/components/display/Header.d.ts +3 -0
  26. package/dist/types/overlay/components/display/Header.d.ts.map +1 -1
  27. package/dist/types/overlay/config/DefaultsStore.d.ts +12 -0
  28. package/dist/types/overlay/config/DefaultsStore.d.ts.map +1 -0
  29. package/dist/types/overlay/config/DefaultsStore.test.d.ts +2 -0
  30. package/dist/types/overlay/config/DefaultsStore.test.d.ts.map +1 -0
  31. package/dist/types/overlay/config/ExportDefaults.d.ts +4 -0
  32. package/dist/types/overlay/config/ExportDefaults.d.ts.map +1 -0
  33. package/dist/types/overlay/config/ExportDefaults.test.d.ts +2 -0
  34. package/dist/types/overlay/config/ExportDefaults.test.d.ts.map +1 -0
  35. package/dist/types/overlay/core/OverlayController.d.ts +29 -5
  36. package/dist/types/overlay/core/OverlayController.d.ts.map +1 -1
  37. package/dist/types/overlay/core/OverlayController.test.d.ts +2 -0
  38. package/dist/types/overlay/core/OverlayController.test.d.ts.map +1 -0
  39. package/dist/types/overlay/core/StateManager.d.ts.map +1 -1
  40. package/dist/types/overlay/formatRegistry.d.ts +3 -1
  41. package/dist/types/overlay/formatRegistry.d.ts.map +1 -1
  42. package/dist/types/overlay/index.d.ts +0 -1
  43. package/dist/types/overlay/index.d.ts.map +1 -1
  44. package/dist/types/overlay/models/OverlayState.d.ts +1 -1
  45. package/dist/types/overlay/services/ClipboardService.d.ts +1 -4
  46. package/dist/types/overlay/services/ClipboardService.d.ts.map +1 -1
  47. package/dist/types/overlay/services/ExportService.d.ts +0 -1
  48. package/dist/types/overlay/services/ExportService.d.ts.map +1 -1
  49. package/dist/types/overlay/services/OverlayPositionStorage.d.ts +13 -0
  50. package/dist/types/overlay/services/OverlayPositionStorage.d.ts.map +1 -0
  51. package/dist/types/overlay/services/PositionService.d.ts +33 -2
  52. package/dist/types/overlay/services/PositionService.d.ts.map +1 -1
  53. package/dist/types/overlay/services/PositionService.test.d.ts +2 -0
  54. package/dist/types/overlay/services/PositionService.test.d.ts.map +1 -0
  55. package/dist/types/overlay/types.d.ts +36 -1
  56. package/dist/types/overlay/types.d.ts.map +1 -1
  57. package/dist/types/overlay/utils/classes.d.ts +3 -0
  58. package/dist/types/overlay/utils/classes.d.ts.map +1 -1
  59. package/dist/types/types.d.ts +175 -22
  60. package/dist/types/types.d.ts.map +1 -1
  61. package/package.json +24 -22
@@ -6,7 +6,10 @@ export declare const overlayClasses: {
6
6
  readonly section: "textmode-export-overlay__section";
7
7
  readonly header: "textmode-export-overlay__header";
8
8
  readonly headerTitleRow: "textmode-export-overlay__header-title-row";
9
+ readonly headerIdentity: "textmode-export-overlay__header-identity";
9
10
  readonly headerLinks: "textmode-export-overlay__header-links";
11
+ readonly grabHandle: "textmode-export-overlay__grab-handle";
12
+ readonly rootDragging: "textmode-export-overlay--dragging";
10
13
  readonly row: "textmode-export-overlay__row";
11
14
  readonly label: "textmode-export-overlay__label";
12
15
  readonly field: "textmode-export-overlay__field";
@@ -1 +1 @@
1
- {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../../src/overlay/utils/classes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCjB,CAAC"}
1
+ {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../../src/overlay/utils/classes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCjB,CAAC"}
@@ -2,8 +2,83 @@ import type { ImageExportOptions } from './exporters/image';
2
2
  import type { TXTExportOptions } from './exporters/txt';
3
3
  import type { SVGExportOptions } from './exporters/svg';
4
4
  import type { GIFExportOptions } from './exporters/gif';
5
- import type { VideoExportOptions } from './exporters/video';
5
+ import type { VideoBitratePreset, VideoExportOptions } from './exporters/video';
6
6
  import type { JSONExportOptions, TextmodeDocumentJSON } from './exporters/json';
7
+ export type TXTOverlayDefaults = Pick<TXTExportOptions, 'preserveTrailingSpaces' | 'emptyCharacter'>;
8
+ export type JSONOverlayDefaults = Pick<JSONExportOptions, 'target' | 'pretty' | 'includeMetadata' | 'colorMode'>;
9
+ export type ImageOverlayDefaults = Pick<ImageExportOptions, 'format' | 'scale'>;
10
+ export type SVGOverlayDefaults = Pick<SVGExportOptions, 'includeBackgroundRectangles' | 'drawMode' | 'strokeWidth'>;
11
+ export type GIFOverlayDefaults = Pick<GIFExportOptions, 'frameCount' | 'frameRate' | 'scale' | 'repeat'>;
12
+ export type VideoOverlayDefaults = Pick<VideoExportOptions, 'format' | 'frameCount' | 'frameRate' | 'bitrateMode' | 'latencyMode' | 'hardwareAcceleration' | 'keyFrameInterval' | 'transparent'> & {
13
+ bitrate?: VideoBitratePreset;
14
+ };
15
+ /**
16
+ * Per-format default options used to seed the overlay UI inputs at mount time
17
+ * and after a {@link ExportOverlayController.resetDefaults} call.
18
+ *
19
+ * Each sub-object contains the library-chosen defaults for the fields that
20
+ * the overlay exposes. Top-level `format` controls which export format is
21
+ * selected in the overlay. You can read and override them at runtime via
22
+ * {@link ExportOverlayController.getDefaults} and
23
+ * {@link ExportOverlayController.setDefaults}.
24
+ *
25
+ * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ExportDefaults | ExportDefaults API reference}
26
+ */
27
+ export type ExportDefaults = {
28
+ /**
29
+ * Export format selected by default in the overlay.
30
+ *
31
+ * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ExportDefaults | ExportDefaults API reference}
32
+ */
33
+ format: 'txt' | 'json' | 'image' | 'gif' | 'video' | 'svg';
34
+ txt: TXTOverlayDefaults;
35
+ json: JSONOverlayDefaults;
36
+ image: ImageOverlayDefaults;
37
+ svg: SVGOverlayDefaults;
38
+ gif: GIFOverlayDefaults;
39
+ video: VideoOverlayDefaults;
40
+ };
41
+ /**
42
+ * Partial patch accepted by {@link ExportOverlayController.setDefaults}.
43
+ *
44
+ * Every supplied per-format sub-object is deep-merged into the corresponding
45
+ * format's curated defaults. Top-level `format` changes the overlay's selected
46
+ * format. Omitted keys keep their current value.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * t.exportOverlay.setDefaults({ format: 'image', image: { scale: 2 }, gif: { frameRate: 30 } });
51
+ * ```
52
+ *
53
+ * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ExportDefaultsPatch | ExportDefaultsPatch API reference}
54
+ */
55
+ export type ExportDefaultsPatch = {
56
+ format?: ExportDefaults['format'];
57
+ } & {
58
+ [K in Exclude<keyof ExportDefaults, 'format'>]?: Partial<ExportDefaults[K]>;
59
+ };
60
+ /**
61
+ * Current canvas-relative placement state for the export overlay UI.
62
+ *
63
+ * `auto` means the overlay is using the library default offset from the
64
+ * textmode canvas. `custom` means the user or runtime API has moved it.
65
+ *
66
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayPosition | ExportOverlayPosition API reference}
67
+ */
68
+ export interface ExportOverlayPosition {
69
+ mode: 'auto' | 'custom';
70
+ offsetX: number;
71
+ offsetY: number;
72
+ }
73
+ /**
74
+ * Canvas-relative placement coordinates for the export overlay UI.
75
+ *
76
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayPositionInput | ExportOverlayPositionInput API reference}
77
+ */
78
+ export interface ExportOverlayPositionInput {
79
+ offsetX: number;
80
+ offsetY: number;
81
+ }
7
82
  /**
8
83
  * Controller for managing the export overlay UI visibility at runtime.
9
84
  *
@@ -54,9 +129,107 @@ export interface ExportOverlayController {
54
129
  * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/isVisible | ExportOverlayController.isVisible API reference}
55
130
  */
56
131
  isVisible(): boolean;
132
+ /**
133
+ * Restores the export overlay to its default canvas-relative placement and
134
+ * clears any remembered placement.
135
+ *
136
+ * @example
137
+ * ```ts
138
+ * t.exportOverlay.resetPosition();
139
+ * ```
140
+ *
141
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/resetPosition | ExportOverlayController.resetPosition API reference}
142
+ */
143
+ resetPosition(): void;
144
+ /**
145
+ * Reads the current export overlay placement.
146
+ *
147
+ * @returns The current canvas-relative overlay placement state.
148
+ *
149
+ * @example
150
+ * ```ts
151
+ * const position = t.exportOverlay.getPosition();
152
+ * console.log(position.mode, position.offsetX, position.offsetY);
153
+ * ```
154
+ *
155
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/getPosition | ExportOverlayController.getPosition API reference}
156
+ */
157
+ getPosition(): Readonly<ExportOverlayPosition>;
158
+ /**
159
+ * Moves the export overlay to a custom canvas-relative placement and
160
+ * remembers that placement for future sessions on the same origin.
161
+ *
162
+ * @param position Canvas-relative overlay offsets in CSS pixels.
163
+ *
164
+ * @example
165
+ * ```ts
166
+ * t.exportOverlay.setPosition({ offsetX: 24, offsetY: 24 });
167
+ * ```
168
+ *
169
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/setPosition | ExportOverlayController.setPosition API reference}
170
+ */
171
+ setPosition(position: ExportOverlayPositionInput): void;
172
+ /**
173
+ * Override the curated overlay defaults at runtime.
174
+ *
175
+ * Merges the supplied patch into the internal defaults store. Per-format
176
+ * option patches are pushed into mounted blades; top-level `format` updates
177
+ * the overlay's selected export format immediately.
178
+ *
179
+ * @param patch Partial defaults to merge per format.
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * // Select image export by default, set image scale to 2×, and GIF to 30 fps
184
+ * t.exportOverlay.setDefaults({ format: 'image', image: { scale: 2 }, gif: { frameRate: 30 } });
185
+ * ```
186
+ *
187
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/setDefaults | ExportOverlayController.setDefaults API reference}
188
+ */
189
+ setDefaults(patch: ExportDefaultsPatch): void;
190
+ /**
191
+ * Read the current effective defaults for every format.
192
+ *
193
+ * The returned object reflects the library's curated defaults merged
194
+ * with any runtime overrides applied via {@link setDefaults}.
195
+ *
196
+ * @returns The current per-format defaults.
197
+ *
198
+ * @example
199
+ * ```ts
200
+ * const defaults = t.exportOverlay.getDefaults();
201
+ * console.log(defaults.image.scale); // 1 (or whatever was set)
202
+ * ```
203
+ *
204
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/getDefaults | ExportOverlayController.getDefaults API reference}
205
+ */
206
+ getDefaults(): Readonly<ExportDefaults>;
207
+ /**
208
+ * Restore one or all formats to the library's curated defaults.
209
+ *
210
+ * If a format is specified, only that format is reset; otherwise all
211
+ * formats are restored.
212
+ *
213
+ * @param format Optional format to reset. Omit to reset all.
214
+ *
215
+ * @example
216
+ * ```ts
217
+ * // Reset image defaults
218
+ * t.exportOverlay.resetDefaults('image');
219
+ *
220
+ * // Reset the overlay's selected default export format
221
+ * t.exportOverlay.resetDefaults('format');
222
+ *
223
+ * // Reset all formats
224
+ * t.exportOverlay.resetDefaults();
225
+ * ```
226
+ *
227
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/resetDefaults | ExportOverlayController.resetDefaults API reference}
228
+ */
229
+ resetDefaults(format?: keyof ExportDefaults): void;
57
230
  }
58
231
  /**
59
- * Runtime export helpers that `createExportPlugin` attaches to the `Textmodifier` instance.
232
+ * Runtime export helpers that `ExportPlugin` attaches to the `Textmodifier` instance.
60
233
  *
61
234
  * @example
62
235
  * {@includeCode ../examples/ExportPlugin/layerTargets/sketch.js}
@@ -230,24 +403,4 @@ export interface TextmodeExportAPI {
230
403
  */
231
404
  saveVideo(options?: VideoExportOptions): Promise<void>;
232
405
  }
233
- /**
234
- * Options for configuring the export plugin.
235
- *
236
- * @deprecated This interface is only used by the deprecated `createTextmodeExportPlugin` function.
237
- * Use {@link ExportPlugin} directly instead, and control overlay visibility at runtime via
238
- * {@link ExportOverlayController}.
239
- *
240
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportPluginOptions | TextmodeExportPluginOptions API reference}
241
- */
242
- export interface TextmodeExportPluginOptions {
243
- /**
244
- * Controls whether the export overlay UI should be created.
245
- * Defaults to `true`.
246
- *
247
- * @deprecated Use runtime overlay controls instead: `textmodifier.exportOverlay.show()` / `.hide()`
248
- *
249
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportPluginOptions#overlay | TextmodeExportPluginOptions.overlay API reference}
250
- */
251
- overlay?: boolean;
252
- }
253
406
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEhF;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC;;;;;;;;;OASG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;;;;;;;OASG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;;;;;;;OASG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;;;;;;;;OASG;IACH,SAAS,IAAI,OAAO,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;;OAIG;IACH,aAAa,EAAE,uBAAuB,CAAC;IAEvC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE1C;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE9C;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAE1C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAE7C;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAE1D;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAElD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAE5C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IAC3C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "textmode.export.js",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "Export plugin for textmode.js - Save your creations as images, GIFs, videos, SVG, JSON, and plain text.",
5
5
  "type": "module",
6
6
  "main": "./dist/textmode.export.umd.js",
@@ -25,10 +25,10 @@
25
25
  "build:bundle": "vite build",
26
26
  "build:types": "tsc",
27
27
  "build": "npm run build:bundle && npm run build:types",
28
- "check": "npm run check:format && npm run lint && npm run lint:md && npm run check:types && npm run check:api-docs && npm run test && npm run build",
29
- "docs:links:add": "node ./scripts/add-api-doc-links.mjs",
30
- "check:api-docs": "node ./scripts/check-public-api-docs.mjs",
31
- "check:examples": "node ./scripts/check-examples.mjs",
28
+ "check": "npm run check:format && npm run check:deps && npm run lint && npm run lint:md && npm run check:types && npm run check:api-docs && npm run test && npm run build",
29
+ "docs:links:add": "textmode-add-api-links",
30
+ "check:api-docs": "textmode-check-api-docs",
31
+ "check:examples": "textmode-check-examples",
32
32
  "dev:docs": "typedoc --watch",
33
33
  "build:docs": "typedoc",
34
34
  "preview": "vite preview",
@@ -41,11 +41,12 @@
41
41
  "check:types": "tsc --noEmit",
42
42
  "lint:md": "markdownlint-cli2",
43
43
  "lint:md:fix": "markdownlint-cli2 --fix",
44
- "lint": "eslint src --config eslint.config.js",
45
- "prepare": "husky"
44
+ "lint": "eslint src",
45
+ "prepare": "husky && install-husky",
46
+ "check:deps": "check-deps"
46
47
  },
47
48
  "peerDependencies": {
48
- "textmode.js": ">=0.13.0"
49
+ "textmode.js": ">=0.16.0"
49
50
  },
50
51
  "dependencies": {
51
52
  "gifenc": "^1.0.1",
@@ -53,25 +54,14 @@
53
54
  },
54
55
  "devDependencies": {
55
56
  "@commitlint/cli": "^20.5.0",
56
- "@commitlint/config-conventional": "^20.5.0",
57
- "@eslint/js": "^9.39.4",
58
57
  "@rollup/plugin-terser": "^0.4.4",
59
- "@semantic-release/commit-analyzer": "^13.0.1",
60
- "@semantic-release/exec": "^7.1.0",
61
- "@semantic-release/git": "^10.0.1",
62
- "@semantic-release/github": "^12.0.6",
63
- "@semantic-release/npm": "^13.1.5",
64
- "@semantic-release/release-notes-generator": "^14.1.0",
65
58
  "@types/node": "^24.0.13",
66
59
  "@vitest/ui": "^3.1.2",
67
60
  "eslint": "^9.39.2",
68
- "eslint-plugin-jsdoc": "^62.9.0",
69
- "globals": "^17.5.0",
70
61
  "husky": "^9.1.7",
71
- "jsdom": "^26.1.0",
62
+ "jsdom": "^27.4.0",
72
63
  "lint-staged": "^16.4.0",
73
64
  "markdownlint-cli2": "^0.22.1",
74
- "markdownlint-cli2-formatter-default": "^0.0.6",
75
65
  "prettier": "^3.8.3",
76
66
  "semantic-release": "^25.0.3",
77
67
  "terser": "^5.44.0",
@@ -81,10 +71,16 @@
81
71
  "typedoc-plugin-markdown": "^4.11.0",
82
72
  "typedoc-vitepress-theme": "^1.1.2",
83
73
  "typescript": "^5.9.2",
84
- "typescript-eslint": "^8.59.0",
85
74
  "vite": "^6.3.4",
86
75
  "vite-plugin-css-injected-by-js": "^3.5.2",
87
- "vitest": "^3.1.2"
76
+ "vitest": "^3.1.2",
77
+ "@textmode/commitlint-config": "^0.1.0",
78
+ "@textmode/eslint-config": "^0.1.0",
79
+ "@textmode/markdownlint-config": "^0.1.1",
80
+ "@textmode/prettier-config": "^0.1.0",
81
+ "@textmode/release-config": "^0.1.1",
82
+ "@textmode/tooling-scripts": "^0.1.0",
83
+ "@textmode/tsconfig": "^0.1.0"
88
84
  },
89
85
  "keywords": [
90
86
  "textmode",
@@ -111,6 +107,12 @@
111
107
  "lint-staged": {
112
108
  "*": "prettier --ignore-unknown --write"
113
109
  },
110
+ "prettier": "@textmode/prettier-config",
111
+ "commitlint": {
112
+ "extends": [
113
+ "@textmode/commitlint-config"
114
+ ]
115
+ },
114
116
  "repository": {
115
117
  "type": "git",
116
118
  "url": "git+https://github.com/humanbydefinition/textmode.export.js.git"