@api-client/ui 0.5.38 → 0.5.40
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/build/src/md/list/internals/ListItem.d.ts +24 -15
- package/build/src/md/list/internals/ListItem.d.ts.map +1 -1
- package/build/src/md/list/internals/ListItem.js +85 -59
- package/build/src/md/list/internals/ListItem.js.map +1 -1
- package/build/src/md/list/internals/ListItem.styles.js +11 -11
- package/build/src/md/list/internals/ListItem.styles.js.map +1 -1
- package/build/src/md/select/internals/Option.d.ts +4 -14
- package/build/src/md/select/internals/Option.d.ts.map +1 -1
- package/build/src/md/select/internals/Option.js +13 -28
- package/build/src/md/select/internals/Option.js.map +1 -1
- package/build/src/md/select/internals/Select.d.ts +1 -1
- package/build/src/md/select/internals/Select.d.ts.map +1 -1
- package/build/src/md/select/internals/Select.js +15 -5
- package/build/src/md/select/internals/Select.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -0
- package/package.json +1 -1
- package/src/md/list/internals/ListItem.styles.ts +11 -11
- package/src/md/list/internals/ListItem.ts +68 -43
- package/src/md/select/internals/Option.ts +14 -26
- package/src/md/select/internals/Select.ts +15 -5
- package/.aiexclude +0 -3
- package/.cursor/rules/html-and-css-best-practices.mdc +0 -63
- package/.cursor/rules/lit-best-practices.mdc +0 -89
- package/.editorconfig +0 -29
- package/.github/CONTRIBUTING.md +0 -24
- package/.github/instructions/html-and-css-best-practices.instructions.md +0 -70
- package/.github/instructions/lit-best-practices.instructions.md +0 -90
- package/.github/release.yml +0 -14
- package/.github/stale.yml +0 -23
- package/.github/workflows/auto-release.yml +0 -182
- package/.github/workflows/release.yml +0 -82
- package/.prettierrc.js +0 -14
- package/.vscode/settings.json +0 -18
- package/RELEASE.md +0 -163
- package/RELEASE_SETUP.md +0 -235
- package/build/src/demo/DemoPage.d.ts +0 -81
- package/build/src/demo/DemoPage.d.ts.map +0 -1
- package/build/src/demo/DemoPage.js +0 -175
- package/build/src/demo/DemoPage.js.map +0 -1
- package/build/src/demo/DemoStyles.d.ts +0 -3
- package/build/src/demo/DemoStyles.d.ts.map +0 -1
- package/build/src/demo/DemoStyles.js +0 -60
- package/build/src/demo/DemoStyles.js.map +0 -1
- package/build/test/elements/navigation/Navigation.test.d.ts +0 -3
- package/build/test/elements/navigation/Navigation.test.d.ts.map +0 -1
- package/build/test/elements/navigation/Navigation.test.js +0 -113
- package/build/test/elements/navigation/Navigation.test.js.map +0 -1
- package/commitlint.config.cjs +0 -2
- package/demo/elements/authorization/AuthPlugin.js +0 -57
- package/demo/elements/authorization/AuthProxy.js +0 -215
- package/demo/elements/authorization/api-key.html +0 -27
- package/demo/elements/authorization/api-key.ts +0 -44
- package/demo/elements/authorization/basic.html +0 -27
- package/demo/elements/authorization/basic.ts +0 -43
- package/demo/elements/authorization/bearer.html +0 -27
- package/demo/elements/authorization/bearer.ts +0 -43
- package/demo/elements/authorization/env.js +0 -8
- package/demo/elements/authorization/index.html +0 -44
- package/demo/elements/authorization/ntlm.html +0 -27
- package/demo/elements/authorization/ntlm.ts +0 -43
- package/demo/elements/authorization/oauth-authorize.html +0 -75
- package/demo/elements/authorization/oauth-authorize.ts +0 -40
- package/demo/elements/authorization/oauth-error.html +0 -18
- package/demo/elements/authorization/oauth-error.ts +0 -10
- package/demo/elements/authorization/oauth-popup.html +0 -36
- package/demo/elements/authorization/oauth2.html +0 -27
- package/demo/elements/authorization/oauth2.ts +0 -100
- package/demo/elements/authorization/oidc.html +0 -27
- package/demo/elements/authorization/oidc.ts +0 -139
- package/demo/elements/authorization/private.crt +0 -31
- package/demo/elements/authorization/private.csr +0 -28
- package/demo/elements/authorization/private.key +0 -51
- package/demo/elements/authorization/private.pem +0 -31
- package/demo/elements/authorization/redirect.html +0 -20
- package/demo/elements/authorization/ssl-commands.sh +0 -30
- package/demo/elements/authorization/ssl.conf +0 -24
- package/demo/elements/autocomplete/index.html +0 -64
- package/demo/elements/autocomplete/index.ts +0 -171
- package/demo/elements/code-editor/CodeEditorDemo.ts +0 -173
- package/demo/elements/code-editor/index.html +0 -19
- package/demo/elements/context-menu/DemoIcons.ts +0 -21
- package/demo/elements/context-menu/basic.html +0 -25
- package/demo/elements/context-menu/basic.ts +0 -119
- package/demo/elements/context-menu/custom-data.html +0 -25
- package/demo/elements/context-menu/custom-data.ts +0 -62
- package/demo/elements/context-menu/demo.css +0 -28
- package/demo/elements/context-menu/enabled-state.html +0 -25
- package/demo/elements/context-menu/enabled-state.ts +0 -73
- package/demo/elements/context-menu/icons.html +0 -25
- package/demo/elements/context-menu/icons.ts +0 -64
- package/demo/elements/context-menu/index.html +0 -43
- package/demo/elements/context-menu/nested.html +0 -25
- package/demo/elements/context-menu/nestedt.ts +0 -152
- package/demo/elements/context-menu/no-execute.html +0 -25
- package/demo/elements/context-menu/no-execute.ts +0 -134
- package/demo/elements/context-menu/radio-menu.html +0 -25
- package/demo/elements/context-menu/radio-menu.ts +0 -83
- package/demo/elements/context-menu/separators.html +0 -25
- package/demo/elements/context-menu/separators.ts +0 -172
- package/demo/elements/currency/index.html +0 -91
- package/demo/elements/currency/index.ts +0 -352
- package/demo/elements/environment/environment-editor.html +0 -20
- package/demo/elements/environment/environment-editor.ts +0 -49
- package/demo/elements/environment/index.html +0 -33
- package/demo/elements/environment/server-editor.html +0 -20
- package/demo/elements/environment/server-editor.ts +0 -67
- package/demo/elements/environment/variables-editor.html +0 -20
- package/demo/elements/environment/variables-editor.ts +0 -94
- package/demo/elements/har/har-viewer.html +0 -20
- package/demo/elements/har/har-viewer.ts +0 -76
- package/demo/elements/har/har1.har +0 -3044
- package/demo/elements/har/har2.json +0 -439
- package/demo/elements/har/index.html +0 -26
- package/demo/elements/highlight/example.md +0 -27
- package/demo/elements/highlight/index.html +0 -31
- package/demo/elements/highlight/marked-highlight.html +0 -132
- package/demo/elements/highlight/marked-highlight.ts +0 -22
- package/demo/elements/highlight/prism-highlight.html +0 -62
- package/demo/elements/highlight/prism-highlight.ts +0 -17
- package/demo/elements/http/body-editor.html +0 -17
- package/demo/elements/http/body-editor.ts +0 -115
- package/demo/elements/http/headers.html +0 -17
- package/demo/elements/http/headers.ts +0 -59
- package/demo/elements/http/http-assertions.html +0 -20
- package/demo/elements/http/http-assertions.ts +0 -89
- package/demo/elements/http/http-flows.html +0 -23
- package/demo/elements/http/http-flows.ts +0 -89
- package/demo/elements/http/index.html +0 -45
- package/demo/elements/http/request-editor.html +0 -26
- package/demo/elements/http/request-editor.ts +0 -197
- package/demo/elements/http/request-log.html +0 -16
- package/demo/elements/http/request-log.ts +0 -136
- package/demo/elements/http/url-editing.html +0 -17
- package/demo/elements/http/url-editing.ts +0 -112
- package/demo/elements/icons/index.html +0 -81
- package/demo/elements/icons/index.ts +0 -52
- package/demo/elements/index.html +0 -72
- package/demo/elements/mention-textarea/index.html +0 -19
- package/demo/elements/mention-textarea/index.ts +0 -205
- package/demo/elements/navigation/navigation-item.html +0 -49
- package/demo/elements/navigation/navigation-item.ts +0 -131
- package/demo/elements/navigation/navigation.html +0 -20
- package/demo/elements/navigation/navigation.ts +0 -45
- package/demo/elements/project/index.html +0 -29
- package/demo/elements/project/project-run-report.html +0 -20
- package/demo/elements/project/project-run-report.ts +0 -132
- package/demo/elements/project/request-editor.html +0 -23
- package/demo/elements/project/request-editor.ts +0 -232
- package/demo/elements/user/user-avatar.html +0 -17
- package/demo/elements/user/user-avatar.ts +0 -60
- package/demo/env.js +0 -4
- package/demo/index.html +0 -34
- package/demo/layout/index.html +0 -94
- package/demo/layout/index.ts +0 -190
- package/demo/md/DemoStyles.ts +0 -61
- package/demo/md/UiDemoPage.ts +0 -6
- package/demo/md/buttons/button.html +0 -121
- package/demo/md/buttons/button.ts +0 -246
- package/demo/md/buttons/group.html +0 -36
- package/demo/md/buttons/group.ts +0 -171
- package/demo/md/checkbox/index.html +0 -39
- package/demo/md/checkbox/index.ts +0 -220
- package/demo/md/chip/chip.html +0 -70
- package/demo/md/chip/chip.ts +0 -219
- package/demo/md/chip/pawel6c9a.jpg +0 -0
- package/demo/md/collapse/CustomDetail.ts +0 -89
- package/demo/md/collapse/collapse.html +0 -21
- package/demo/md/collapse/collapse.ts +0 -78
- package/demo/md/date-picker/date-picker.ts +0 -336
- package/demo/md/date-picker/index.html +0 -171
- package/demo/md/dialog/confirm-dialog.html +0 -49
- package/demo/md/dialog/confirm-dialog.ts +0 -121
- package/demo/md/dialog/dialog.html +0 -25
- package/demo/md/dialog/dialog.ts +0 -468
- package/demo/md/dropdown-list/index.html +0 -31
- package/demo/md/dropdown-list/index.ts +0 -158
- package/demo/md/icon-button/index.html +0 -122
- package/demo/md/icon-button/index.ts +0 -132
- package/demo/md/index.html +0 -73
- package/demo/md/inputs/input.html +0 -73
- package/demo/md/inputs/input.ts +0 -278
- package/demo/md/inputs/radio.html +0 -39
- package/demo/md/inputs/radio.ts +0 -156
- package/demo/md/inputs/switch.html +0 -45
- package/demo/md/inputs/switch.ts +0 -144
- package/demo/md/list/list.html +0 -65
- package/demo/md/list/list.ts +0 -204
- package/demo/md/listbox/listbox.html +0 -31
- package/demo/md/listbox/listbox.ts +0 -27
- package/demo/md/menu/index.html +0 -19
- package/demo/md/menu/index.ts +0 -514
- package/demo/md/notification/snack.html +0 -21
- package/demo/md/notification/snack.ts +0 -70
- package/demo/md/progress/progress.html +0 -46
- package/demo/md/progress/progress.ts +0 -161
- package/demo/md/segmented-button/index.html +0 -21
- package/demo/md/segmented-button/index.ts +0 -55
- package/demo/md/select/index.html +0 -16
- package/demo/md/select/index.ts +0 -207
- package/demo/md/tabs/tabs.html +0 -40
- package/demo/md/tabs/tabs.ts +0 -214
- package/demo/oauth-popup.html +0 -36
- package/demo/page.css +0 -8
- package/demo/resources/calendar-month.png +0 -0
- package/demo/resources/favorite.png +0 -0
- package/demo/resources/fingerprint.png +0 -0
- package/demo/resources/home-work.png +0 -0
- package/demo/resources/mood.png +0 -0
- package/demo/resources/print.png +0 -0
- package/demo/resources/stars.png +0 -0
- package/demo/resources/theaters.png +0 -0
- package/demo/tsconfig.json +0 -4
- package/eslint.config.js +0 -97
- package/scripts/copy-assets.js +0 -21
- package/scripts/release.js +0 -66
- package/src/demo/DemoPage.ts +0 -169
- package/src/demo/DemoStyles.ts +0 -60
- package/test/README.md +0 -375
- package/test/contextual-menu/ContextMenu.test.ts +0 -760
- package/test/contextual-menu/ContextMenuElement.test.ts +0 -569
- package/test/core/activity.spec.ts +0 -413
- package/test/core/activity_manager.spec.ts +0 -544
- package/test/core/application.spec.ts +0 -218
- package/test/core/fragment.spec.ts +0 -565
- package/test/core/fragment_manager.spec.ts +0 -404
- package/test/core/live_data.spec.ts +0 -558
- package/test/core/renderer.spec.ts +0 -113
- package/test/dom-assertions.test.ts +0 -182
- package/test/elements/MonacoSetup.ts +0 -65
- package/test/elements/authorization/basic-method.test.ts +0 -177
- package/test/elements/authorization/bearer-method.test.ts +0 -143
- package/test/elements/authorization/ntlm-method.test.ts +0 -219
- package/test/elements/authorization/oauth2-client-credentials-method.test.ts +0 -334
- package/test/elements/authorization/oauth2-code-method.test.ts +0 -320
- package/test/elements/authorization/oauth2-custom-grant-method.test.ts +0 -255
- package/test/elements/authorization/oauth2-device-code-method.test.ts +0 -371
- package/test/elements/authorization/oauth2-implicit-method.test.ts +0 -407
- package/test/elements/authorization/oauth2-jwt-method.test.ts +0 -217
- package/test/elements/authorization/oauth2-password-method.test.ts +0 -275
- package/test/elements/authorization/openid-method.test.ts +0 -591
- package/test/elements/autocomplete/autocomplete-input.spec.ts +0 -646
- package/test/elements/code-editor/code-editor.accessibility.test.ts +0 -298
- package/test/elements/code-editor/code-editor.test.ts +0 -574
- package/test/elements/currency/CurrencyPicker.accessibility.test.ts +0 -328
- package/test/elements/currency/CurrencyPicker.core.test.ts +0 -318
- package/test/elements/currency/CurrencyPicker.integration.test.ts +0 -482
- package/test/elements/currency/CurrencyPicker.test.ts +0 -486
- package/test/elements/data-table/DataTable.browser.test.ts +0 -649
- package/test/elements/har/HarUtils.test.ts +0 -45
- package/test/elements/har/HarViewerElement.test.ts +0 -687
- package/test/elements/har/test-data/har1.har +0 -3044
- package/test/elements/highlight/MarkedHighlightElement.test.ts +0 -452
- package/test/elements/highlight/PrismHighlightElement.test.ts +0 -79
- package/test/elements/highlight/PrismHighlighter.test.ts +0 -94
- package/test/elements/highlight/remoteSanitization.md +0 -1
- package/test/elements/highlight/test.md +0 -3
- package/test/elements/highlight/test1.md +0 -3
- package/test/elements/highlight/test2.md +0 -1
- package/test/elements/http/BodyFormdataEditorElement.test.ts +0 -482
- package/test/elements/http/BodyMultipartEditorElement.test.ts +0 -658
- package/test/elements/http/BodyRawEditorElement.test.ts +0 -90
- package/test/elements/http/CertificateAdd.test.ts +0 -457
- package/test/elements/http/HttpAssertions.test.ts +0 -994
- package/test/elements/http/HttpFlows.test.ts +0 -502
- package/test/elements/http/UrlEncodeUtils.test.ts +0 -202
- package/test/elements/layout/SplitItem.test.ts +0 -440
- package/test/elements/layout/SplitLayoutManager.test.ts +0 -1501
- package/test/elements/layout/SplitPanel.test.ts +0 -1109
- package/test/elements/mention-textarea/MentionTextArea.basic.test.ts +0 -114
- package/test/elements/mention-textarea/MentionTextArea.test.ts +0 -613
- package/test/elements/navigation/Navigation.test.ts +0 -120
- package/test/env.ts +0 -15
- package/test/events/EventTypes.test.ts +0 -363
- package/test/events/EventsTestHelpers.ts +0 -16
- package/test/helpers/TestUtils.ts +0 -243
- package/test/helpers/UiMock.ts +0 -185
- package/test/lib/Dom.test.ts +0 -231
- package/test/md/button/UiButton.test.ts +0 -347
- package/test/md/button/UiIconButton.test.ts +0 -155
- package/test/md/chip/UiChip.test.ts +0 -219
- package/test/md/collapse/UiCollapse.test.ts +0 -250
- package/test/md/collapse/flex-layout.test.ts +0 -105
- package/test/md/date-time/DateTime.test.ts +0 -348
- package/test/md/dialog/UiConfirmDialog.test.ts +0 -131
- package/test/md/dialog/UiDialog.test.ts +0 -759
- package/test/md/menu/Menu.test.ts +0 -855
- package/test/md/menu/MenuIntegration.test.ts +0 -426
- package/test/md/menu/MenuItem.test.ts +0 -652
- package/test/md/menu/SubMenu.test.ts +0 -410
- package/test/md/progress/UiCircularProgressElement.test.ts +0 -481
- package/test/md/progress/UiProgressElement.test.ts +0 -117
- package/test/md/progress/UiRangeElement.test.ts +0 -156
- package/test/md/select/Select.test.ts +0 -925
- package/test/plugins/takeScreenshotPlugin.js +0 -35
- package/test/setup.test.ts +0 -217
- package/test/setup.ts +0 -117
- package/test/tsconfig.json +0 -7
- package/web-dev-server.config.js +0 -21
- package/web-test-runner.config.js +0 -90
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
applyTo: "src/{elements,md,styles}/**,demo/**"
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Lit Element Best Practices
|
|
6
|
-
|
|
7
|
-
You are an expert developer in web components using the Lit library and Material Design version 3, focusing on best practices, accessibility, and responsive design.
|
|
8
|
-
|
|
9
|
-
## Key Principles
|
|
10
|
-
|
|
11
|
-
- Comply with web elements authoring standards when designing a web component.
|
|
12
|
-
- Use accessibility best practices to produce semantically relevant web components.
|
|
13
|
-
- Prioritize web standards over custom implementation.
|
|
14
|
-
- Prioritize APIs that are passing the Web Platform Baseline
|
|
15
|
-
- Minimize external dependencies, but also balance between custom code and widely known and trusted dependencies.
|
|
16
|
-
- Everything must be ES compliant. Use the appropriate standards for module imports.
|
|
17
|
-
|
|
18
|
-
## Lit Web Components
|
|
19
|
-
|
|
20
|
-
- Document public properties and public function for authors to understand what these properties and functions do.
|
|
21
|
-
- Ensure the appropriate aria roles are applied to each element.
|
|
22
|
-
- Document all events and their structure (for custom events).
|
|
23
|
-
- Prioritize well-known events (like change, select) over custom events.
|
|
24
|
-
- Provide examples of usage when producing component documentation.
|
|
25
|
-
- Prioritize native elements over custom elements whenever possible.
|
|
26
|
-
- Prioritize composition over attribute passed configuration (a dropdown should have a semantic HTML structure and not auto-generated structure from a complex configuration object).
|
|
27
|
-
- Think of other use-cases and how the custom element can scale for future use cases.
|
|
28
|
-
- Reuse existing components whenever possible.
|
|
29
|
-
- Prefer to put lifecycle methods after the constructor and before the render and other methods.
|
|
30
|
-
- Put render methods at the end of the class.
|
|
31
|
-
- Use `@property` decorator for public properties and `@state` decorator for private properties.
|
|
32
|
-
- Use `@query` decorator for querying elements in the shadow DOM.
|
|
33
|
-
- Use `@queryAssignedElements` decorator for querying slotted elements.
|
|
34
|
-
- Boolean properties should be initialized to `false` in the constructor.
|
|
35
|
-
- Use `@eventOptions` decorator to specify event options like `capture`, `passive`, and `once`.
|
|
36
|
-
- Use `@queryAsync` decorator for querying elements that may not be immediately available in the DOM.
|
|
37
|
-
- Use `@state` decorator for properties that are internal to the component and should not be exposed to the outside world.
|
|
38
|
-
- Avoid passing complex objects as properties. Instead, use simple types like `string`, `number`, or `boolean` and handle complex logic internally.
|
|
39
|
-
- Use lifecycle methods like `connectedCallback`, `disconnectedCallback`, and `update` to manage component state and behavior.
|
|
40
|
-
- Use `willUpdate` method to perform actions before the component updates, such as validating properties or preparing data.
|
|
41
|
-
- Place the component definition under the `internals/` directory of a component folder. The components registration should be done in the component file in the main component directory.
|
|
42
|
-
- Place the base material components under the `src/md/` directory.
|
|
43
|
-
- Place composite components under the `src/elements/` directory.
|
|
44
|
-
|
|
45
|
-
## CSS and Styling
|
|
46
|
-
|
|
47
|
-
- Prioritize native CSS over JavaScript implementation. Use Web Platform Baseline even if the editor says it's not supported.
|
|
48
|
-
- Use anchoring and popover API whenever possible and applicable over JavaScript positioning.
|
|
49
|
-
- Place lit component styles in a separate file with the `.styles.ts` extension.
|
|
50
|
-
- Add styles to the component registration class, not the base class.
|
|
51
|
-
- Declare the `part` attributes to expose custom styling.
|
|
52
|
-
- When working on base components, use CSS variables to allow customization of the component styles.
|
|
53
|
-
- Define component states via the `internals.states.add("--state-name")` method. These states can be used as `component-name:state(state-name) {}` in the CSS.
|
|
54
|
-
|
|
55
|
-
## Error handling
|
|
56
|
-
|
|
57
|
-
- Components either communicate errors through rendering them internally or dispatch an error event with the error details to the parent component or application.
|
|
58
|
-
- Prefer error states defined on the element internals over custom error styling.
|
|
59
|
-
|
|
60
|
-
## Naming Convention
|
|
61
|
-
|
|
62
|
-
- Follow web authoring standards as closely as possible.
|
|
63
|
-
- Minimize the the of "-" in attribute and event names
|
|
64
|
-
- Use camelCase for properties and methods.
|
|
65
|
-
- Do not prefix private or protected properties and methods with an underscore. Use the typescript `private` and `protected` keywords to indicate visibility.
|
|
66
|
-
|
|
67
|
-
## Testing
|
|
68
|
-
|
|
69
|
-
- Use @open-wc/testing library.
|
|
70
|
-
- Always add accessibility tests.
|
|
71
|
-
- Create fixtures for different states of a component.
|
|
72
|
-
- To run tests for a specific file, use the `--files` option in the test command. For example:
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
npm test -- --files=".tmp/test/**/[test file name].test.js"
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
- Prefer the Assert API over the Expect API for assertions. The Assert API is more performant and provides better error messages.
|
|
79
|
-
- When updating an element's property, await for the update to complete using `await element.updateComplete` before making assertions. This ensures that the component has fully rendered before checking its state.
|
|
80
|
-
|
|
81
|
-
## Component Demoing
|
|
82
|
-
|
|
83
|
-
- Always produce a demo page under the demo/ directory.
|
|
84
|
-
- Use the `DemoPage` class to bootstrap the demo page.
|
|
85
|
-
- Use material styles with the demo page. Minimize custom styling.
|
|
86
|
-
- Try to render each state separately and minimize the use of complex configurations.
|
|
87
|
-
- Start with simple states and progressively enhance the demo with more complex configurations.
|
|
88
|
-
- If a component produces output, ensure that the demo page shows the output in a readable format. Use one output per component.
|
|
89
|
-
- Document the states in a way that is obvious to the user. Use headings and paragraphs to explain the states.
|
|
90
|
-
- Due to the nature how the demo pages are processed, ensure that typescript files that belong to the demo page are imported from the `/.tmp/demo/` directory. This is done automatically by the build process. Imports inside the typescript file should reference files from the `src/` folder directly.
|
package/.github/release.yml
DELETED
package/.github/stale.yml
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Number of days of inactivity before an issue becomes stale
|
|
2
|
-
daysUntilStale: 45
|
|
3
|
-
# Number of days of inactivity before a stale issue is closed
|
|
4
|
-
daysUntilClose: 7
|
|
5
|
-
# Issues with these labels will never be considered stale
|
|
6
|
-
exemptLabels:
|
|
7
|
-
- bug
|
|
8
|
-
- fixme/bug
|
|
9
|
-
- fixme/security
|
|
10
|
-
- blocked
|
|
11
|
-
- needs-review
|
|
12
|
-
- roadmap
|
|
13
|
-
# Label to use when marking an issue as stale
|
|
14
|
-
staleLabel: stale
|
|
15
|
-
# Comment to post when marking an issue as stale. Set to `false` to disable
|
|
16
|
-
markComment: >
|
|
17
|
-
This issue has been automatically marked as stale because it has not had
|
|
18
|
-
recent activity and is not currently prioritized. It will be closed
|
|
19
|
-
in a week if no further activity occurs :)
|
|
20
|
-
# Comment to post when closing a stale issue. Set to `false` to disable
|
|
21
|
-
closeComment: >
|
|
22
|
-
If you still think this issue is relevant, please ping a maintainer or
|
|
23
|
-
leave a comment!
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
name: Auto Release
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- main
|
|
7
|
-
|
|
8
|
-
env:
|
|
9
|
-
FORCE_COLOR: 1
|
|
10
|
-
|
|
11
|
-
jobs:
|
|
12
|
-
test:
|
|
13
|
-
name: Test
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
steps:
|
|
16
|
-
- name: Checkout code
|
|
17
|
-
uses: actions/checkout@v4
|
|
18
|
-
with:
|
|
19
|
-
fetch-depth: 0
|
|
20
|
-
|
|
21
|
-
- name: Setup Node.js
|
|
22
|
-
uses: actions/setup-node@v4
|
|
23
|
-
with:
|
|
24
|
-
node-version: 24
|
|
25
|
-
cache: 'npm'
|
|
26
|
-
|
|
27
|
-
- uses: google/wireit@setup-github-actions-caching/v2
|
|
28
|
-
|
|
29
|
-
- name: Install dependencies
|
|
30
|
-
run: npm ci
|
|
31
|
-
|
|
32
|
-
- name: Install playwright browsers
|
|
33
|
-
run: npx playwright install --with-deps
|
|
34
|
-
|
|
35
|
-
- name: Run tests
|
|
36
|
-
run: npm test
|
|
37
|
-
|
|
38
|
-
determine-release:
|
|
39
|
-
name: Determine Release Type
|
|
40
|
-
needs: test
|
|
41
|
-
runs-on: ubuntu-latest
|
|
42
|
-
outputs:
|
|
43
|
-
should-release: ${{ steps.release-check.outputs.should-release }}
|
|
44
|
-
release-type: ${{ steps.release-check.outputs.release-type }}
|
|
45
|
-
new-version: ${{ steps.release-check.outputs.new-version }}
|
|
46
|
-
steps:
|
|
47
|
-
- name: Checkout code
|
|
48
|
-
uses: actions/checkout@v4
|
|
49
|
-
with:
|
|
50
|
-
fetch-depth: 0
|
|
51
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
52
|
-
|
|
53
|
-
- name: Setup Node.js
|
|
54
|
-
uses: actions/setup-node@v4
|
|
55
|
-
with:
|
|
56
|
-
node-version: 24
|
|
57
|
-
cache: 'npm'
|
|
58
|
-
|
|
59
|
-
- name: Install dependencies
|
|
60
|
-
run: npm ci
|
|
61
|
-
|
|
62
|
-
- name: Determine release type
|
|
63
|
-
id: release-check
|
|
64
|
-
run: |
|
|
65
|
-
# Get the last tag
|
|
66
|
-
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
|
|
67
|
-
echo "Last tag: $LAST_TAG"
|
|
68
|
-
|
|
69
|
-
# Get commits since last tag
|
|
70
|
-
COMMITS=$(git log --pretty=format:"%s" ${LAST_TAG}..HEAD)
|
|
71
|
-
echo "Commits since last tag:"
|
|
72
|
-
echo "$COMMITS"
|
|
73
|
-
|
|
74
|
-
# Check if there are any commits to release
|
|
75
|
-
if [ -z "$COMMITS" ]; then
|
|
76
|
-
echo "No new commits since last tag"
|
|
77
|
-
echo "should-release=false" >> $GITHUB_OUTPUT
|
|
78
|
-
exit 0
|
|
79
|
-
fi
|
|
80
|
-
|
|
81
|
-
# Determine release type based on commit messages
|
|
82
|
-
RELEASE_TYPE="patch"
|
|
83
|
-
|
|
84
|
-
# Check for breaking changes
|
|
85
|
-
if echo "$COMMITS" | grep -q "BREAKING CHANGE" || echo "$COMMITS" | grep -q '!:'; then
|
|
86
|
-
RELEASE_TYPE="major"
|
|
87
|
-
# Check for new features
|
|
88
|
-
elif echo "$COMMITS" | grep -q "^feat"; then
|
|
89
|
-
RELEASE_TYPE="minor"
|
|
90
|
-
fi
|
|
91
|
-
|
|
92
|
-
echo "Release type: $RELEASE_TYPE"
|
|
93
|
-
|
|
94
|
-
# Calculate new version
|
|
95
|
-
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
96
|
-
echo "Current version: $CURRENT_VERSION"
|
|
97
|
-
|
|
98
|
-
# Use semver to calculate new version
|
|
99
|
-
NEW_VERSION=$(node -e "
|
|
100
|
-
const SemVer = require('@pawel-up/semver/classes/semver.js').default || require('@pawel-up/semver/classes/semver.js');
|
|
101
|
-
const ver = new SemVer('$CURRENT_VERSION');
|
|
102
|
-
ver.inc('$RELEASE_TYPE');
|
|
103
|
-
console.log(ver.format());
|
|
104
|
-
" CURRENT_VERSION="$CURRENT_VERSION" RELEASE_TYPE="$RELEASE_TYPE")
|
|
105
|
-
|
|
106
|
-
echo "New version: $NEW_VERSION"
|
|
107
|
-
|
|
108
|
-
echo "should-release=true" >> $GITHUB_OUTPUT
|
|
109
|
-
echo "release-type=$RELEASE_TYPE" >> $GITHUB_OUTPUT
|
|
110
|
-
echo "new-version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
111
|
-
|
|
112
|
-
release:
|
|
113
|
-
name: Create Release
|
|
114
|
-
needs: [test, determine-release]
|
|
115
|
-
if: needs.determine-release.outputs.should-release == 'true'
|
|
116
|
-
runs-on: ubuntu-latest
|
|
117
|
-
permissions:
|
|
118
|
-
contents: write
|
|
119
|
-
issues: write
|
|
120
|
-
pull-requests: write
|
|
121
|
-
steps:
|
|
122
|
-
- name: Checkout code
|
|
123
|
-
uses: actions/checkout@v4
|
|
124
|
-
with:
|
|
125
|
-
fetch-depth: 0
|
|
126
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
127
|
-
|
|
128
|
-
- name: Setup Node.js
|
|
129
|
-
uses: actions/setup-node@v4
|
|
130
|
-
with:
|
|
131
|
-
node-version: 24
|
|
132
|
-
cache: 'npm'
|
|
133
|
-
registry-url: 'https://registry.npmjs.org'
|
|
134
|
-
|
|
135
|
-
- name: Install dependencies
|
|
136
|
-
run: npm ci
|
|
137
|
-
|
|
138
|
-
- name: Update version
|
|
139
|
-
run: |
|
|
140
|
-
# Update package.json version
|
|
141
|
-
NEW_VERSION="${{ needs.determine-release.outputs.new-version }}"
|
|
142
|
-
npm version $NEW_VERSION --no-git-tag-version
|
|
143
|
-
git add package.json
|
|
144
|
-
|
|
145
|
-
# Commit version bump
|
|
146
|
-
# git config --local user.email "action@github.com"
|
|
147
|
-
# git config --local user.name "GitHub Action"
|
|
148
|
-
# git add package.json
|
|
149
|
-
# git commit -m "chore: bump version to $NEW_VERSION"
|
|
150
|
-
# git push
|
|
151
|
-
|
|
152
|
-
- uses: qoomon/actions--create-commit@v1
|
|
153
|
-
id: commit
|
|
154
|
-
with:
|
|
155
|
-
message: "chore: bump version to ${{ needs.determine-release.outputs.new-version }}"
|
|
156
|
-
skip-empty: true
|
|
157
|
-
|
|
158
|
-
- run: git push
|
|
159
|
-
|
|
160
|
-
- name: Build
|
|
161
|
-
run: npm run build
|
|
162
|
-
|
|
163
|
-
- name: Generate changelog
|
|
164
|
-
id: changelog
|
|
165
|
-
run: |
|
|
166
|
-
echo "changelog<<EOF" >> $GITHUB_OUTPUT
|
|
167
|
-
npx conventional-changelog-cli@latest release --preset conventionalcommits --release-count 1 >> $GITHUB_OUTPUT
|
|
168
|
-
echo "EOF" >> $GITHUB_OUTPUT
|
|
169
|
-
|
|
170
|
-
- name: Create Release
|
|
171
|
-
uses: softprops/action-gh-release@v2
|
|
172
|
-
with:
|
|
173
|
-
tag_name: v${{ needs.determine-release.outputs.new-version }}
|
|
174
|
-
body: ${{ steps.changelog.outputs.changelog }}
|
|
175
|
-
draft: false
|
|
176
|
-
prerelease: false
|
|
177
|
-
generate_release_notes: false
|
|
178
|
-
|
|
179
|
-
- name: Publish to npm
|
|
180
|
-
run: npm publish --access public
|
|
181
|
-
env:
|
|
182
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
name: Manual Release
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- 'v*'
|
|
7
|
-
|
|
8
|
-
env:
|
|
9
|
-
FORCE_COLOR: 1
|
|
10
|
-
|
|
11
|
-
jobs:
|
|
12
|
-
test:
|
|
13
|
-
name: Test
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
steps:
|
|
16
|
-
- name: Checkout code
|
|
17
|
-
uses: actions/checkout@v4
|
|
18
|
-
with:
|
|
19
|
-
fetch-depth: 0
|
|
20
|
-
|
|
21
|
-
- name: Setup Node.js
|
|
22
|
-
uses: actions/setup-node@v4
|
|
23
|
-
with:
|
|
24
|
-
node-version: 24
|
|
25
|
-
cache: 'npm'
|
|
26
|
-
|
|
27
|
-
- name: Install dependencies
|
|
28
|
-
run: npm ci
|
|
29
|
-
|
|
30
|
-
- name: Install playwright browsers
|
|
31
|
-
run: npx playwright install --with-deps
|
|
32
|
-
|
|
33
|
-
- name: Run tests
|
|
34
|
-
run: npm test
|
|
35
|
-
|
|
36
|
-
release:
|
|
37
|
-
name: Create Release
|
|
38
|
-
needs: test
|
|
39
|
-
runs-on: ubuntu-latest
|
|
40
|
-
permissions:
|
|
41
|
-
contents: write
|
|
42
|
-
issues: write
|
|
43
|
-
pull-requests: write
|
|
44
|
-
steps:
|
|
45
|
-
- name: Checkout code
|
|
46
|
-
uses: actions/checkout@v4
|
|
47
|
-
with:
|
|
48
|
-
fetch-depth: 0
|
|
49
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
50
|
-
|
|
51
|
-
- name: Setup Node.js
|
|
52
|
-
uses: actions/setup-node@v4
|
|
53
|
-
with:
|
|
54
|
-
node-version: 24
|
|
55
|
-
cache: 'npm'
|
|
56
|
-
registry-url: 'https://registry.npmjs.org'
|
|
57
|
-
|
|
58
|
-
- name: Install dependencies
|
|
59
|
-
run: npm ci
|
|
60
|
-
|
|
61
|
-
- name: Build
|
|
62
|
-
run: npm run build
|
|
63
|
-
|
|
64
|
-
- name: Generate changelog
|
|
65
|
-
id: changelog
|
|
66
|
-
run: |
|
|
67
|
-
echo "changelog<<EOF" >> $GITHUB_OUTPUT
|
|
68
|
-
npx conventional-changelog-cli@latest release --preset conventionalcommits --release-count 1 >> $GITHUB_OUTPUT
|
|
69
|
-
echo "EOF" >> $GITHUB_OUTPUT
|
|
70
|
-
|
|
71
|
-
- name: Create Release
|
|
72
|
-
uses: softprops/action-gh-release@v2
|
|
73
|
-
with:
|
|
74
|
-
body: ${{ steps.changelog.outputs.changelog }}
|
|
75
|
-
draft: false
|
|
76
|
-
prerelease: false
|
|
77
|
-
generate_release_notes: false
|
|
78
|
-
|
|
79
|
-
- name: Publish to npm
|
|
80
|
-
run: npm publish --access public
|
|
81
|
-
env:
|
|
82
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/.prettierrc.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @see https://prettier.io/docs/configuration
|
|
3
|
-
* @type {import("prettier").Config}
|
|
4
|
-
*/
|
|
5
|
-
export default {
|
|
6
|
-
trailingComma: 'es5',
|
|
7
|
-
semi: false,
|
|
8
|
-
singleQuote: true,
|
|
9
|
-
useTabs: false,
|
|
10
|
-
quoteProps: 'consistent',
|
|
11
|
-
bracketSpacing: true,
|
|
12
|
-
arrowParens: 'always',
|
|
13
|
-
printWidth: 120,
|
|
14
|
-
}
|
package/.vscode/settings.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"cSpell.words": [
|
|
3
|
-
"debouncer",
|
|
4
|
-
"iconbutton",
|
|
5
|
-
"itemschange",
|
|
6
|
-
"openentity",
|
|
7
|
-
"popovertarget",
|
|
8
|
-
"querycomplete",
|
|
9
|
-
"selectedcontent",
|
|
10
|
-
"startactivity",
|
|
11
|
-
"startactivityforresult",
|
|
12
|
-
"typescale"
|
|
13
|
-
],
|
|
14
|
-
"vscode-wtr-runner.testRunnerCommand": "npm run tsc:all && npx wtr --playwright --browsers \"chromium\"",
|
|
15
|
-
"geminicodeassist.customCommands": {
|
|
16
|
-
"add-comments": "add comments to my code. add examples whenever reasonable. focus on another developer understanding what the function is about. don't forget about class fields."
|
|
17
|
-
}
|
|
18
|
-
}
|
package/RELEASE.md
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
# Release Guide
|
|
2
|
-
|
|
3
|
-
This project uses an **automated release system** with conventional commits and GitHub Actions. Releases are automatically created when changes are merged to the main branch.
|
|
4
|
-
|
|
5
|
-
## 🚀 Automated Releases (Recommended)
|
|
6
|
-
|
|
7
|
-
### How It Works
|
|
8
|
-
|
|
9
|
-
1. **Push to main branch** (usually via PR merge)
|
|
10
|
-
2. **Tests run automatically** to ensure quality
|
|
11
|
-
3. **System analyzes commit messages** since the last release
|
|
12
|
-
4. **Release type is determined automatically:**
|
|
13
|
-
- `major` - if commits contain "breaking:" or "!:"
|
|
14
|
-
- `minor` - if commits contain "feat:" (new features)
|
|
15
|
-
- `patch` - for all other changes (bug fixes, docs, etc.)
|
|
16
|
-
5. **Release is created automatically** with changelog and npm publish
|
|
17
|
-
|
|
18
|
-
### Commit Message Examples
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
# Major release (breaking changes)
|
|
22
|
-
git commit -m "feat!: remove deprecated API"
|
|
23
|
-
git commit -m "feat: new system
|
|
24
|
-
|
|
25
|
-
BREAKING CHANGE: Old methods no longer work"
|
|
26
|
-
|
|
27
|
-
# Minor release (new features)
|
|
28
|
-
git commit -m "feat: add OAuth2 support"
|
|
29
|
-
git commit -m "feat(auth): implement JWT tokens"
|
|
30
|
-
|
|
31
|
-
# Patch release (bug fixes, docs, etc.)
|
|
32
|
-
git commit -m "fix: resolve memory leak"
|
|
33
|
-
git commit -m "docs: update API documentation"
|
|
34
|
-
git commit -m "chore: update dependencies"
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### What Happens Automatically
|
|
38
|
-
|
|
39
|
-
1. ✅ Tests run to ensure everything works
|
|
40
|
-
2. ✅ Version is bumped in `package.json`
|
|
41
|
-
3. ✅ Changes are committed with conventional commit message
|
|
42
|
-
4. ✅ Git tag is created (e.g., `v1.2.3`)
|
|
43
|
-
5. ✅ GitHub release is created with automated changelog
|
|
44
|
-
6. ✅ Package is published to npm
|
|
45
|
-
|
|
46
|
-
## 🔧 Manual Releases (Fallback)
|
|
47
|
-
|
|
48
|
-
If you need to create a release manually (e.g., for hotfixes or special releases):
|
|
49
|
-
|
|
50
|
-
### Option 1: Use the release script
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
# Create a patch release (bug fixes)
|
|
54
|
-
npm run release:patch
|
|
55
|
-
|
|
56
|
-
# Create a minor release (new features)
|
|
57
|
-
npm run release:minor
|
|
58
|
-
|
|
59
|
-
# Create a major release (breaking changes)
|
|
60
|
-
npm run release:major
|
|
61
|
-
|
|
62
|
-
# Or use the default (patch)
|
|
63
|
-
npm run release
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Option 2: Manual tag creation
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
npm run build
|
|
70
|
-
# Update version in package.json
|
|
71
|
-
npm version patch --no-git-tag-version
|
|
72
|
-
|
|
73
|
-
# Commit the change
|
|
74
|
-
git add package.json
|
|
75
|
-
git commit -m "chore: bump version to X.Y.Z"
|
|
76
|
-
|
|
77
|
-
# Create and push tag
|
|
78
|
-
git tag vX.Y.Z
|
|
79
|
-
git push origin main
|
|
80
|
-
git push origin vX.Y.Z
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## 📋 Conventional Commits
|
|
84
|
-
|
|
85
|
-
The release system uses conventional commits to generate changelogs. Your commit messages should follow this format:
|
|
86
|
-
|
|
87
|
-
```plain
|
|
88
|
-
type(scope): description
|
|
89
|
-
|
|
90
|
-
[optional body]
|
|
91
|
-
|
|
92
|
-
[optional footer]
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Commit Types
|
|
96
|
-
|
|
97
|
-
- `feat`: New features (triggers minor release)
|
|
98
|
-
- `fix`: Bug fixes (triggers patch release)
|
|
99
|
-
- `docs`: Documentation changes
|
|
100
|
-
- `style`: Code style changes (formatting, etc.)
|
|
101
|
-
- `refactor`: Code refactoring
|
|
102
|
-
- `test`: Adding or updating tests
|
|
103
|
-
- `chore`: Maintenance tasks
|
|
104
|
-
|
|
105
|
-
### Breaking Changes
|
|
106
|
-
|
|
107
|
-
To indicate a breaking change, use either:
|
|
108
|
-
|
|
109
|
-
- `!:` in the commit message: `feat!: remove deprecated API`
|
|
110
|
-
- `BREAKING CHANGE:` in the commit body:
|
|
111
|
-
|
|
112
|
-
```plain
|
|
113
|
-
feat: new authentication system
|
|
114
|
-
|
|
115
|
-
BREAKING CHANGE: Old auth methods are no longer supported
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## 🔄 Workflow Comparison
|
|
119
|
-
|
|
120
|
-
| Aspect | Automated Release | Manual Release |
|
|
121
|
-
|--------|------------------|----------------|
|
|
122
|
-
| **Trigger** | Push to main | Tag push or script |
|
|
123
|
-
| **Release Type** | Auto-detected from commits | Manually specified |
|
|
124
|
-
| **Effort** | Zero - fully automated | Manual intervention |
|
|
125
|
-
| **Use Case** | Regular development flow | Hotfixes, special releases |
|
|
126
|
-
|
|
127
|
-
## 🛠️ Configuration
|
|
128
|
-
|
|
129
|
-
The release system is configured in:
|
|
130
|
-
|
|
131
|
-
- `.github/workflows/auto-release.yml` - Automated release workflow
|
|
132
|
-
- `.github/workflows/release.yml` - Manual release workflow (fallback)
|
|
133
|
-
- `scripts/release.js` - Manual release automation script
|
|
134
|
-
- `commitlint.config.js` - Conventional commits configuration
|
|
135
|
-
- `package.json` - Version management and scripts
|
|
136
|
-
|
|
137
|
-
## 🚨 Troubleshooting
|
|
138
|
-
|
|
139
|
-
### Common Issues
|
|
140
|
-
|
|
141
|
-
1. **No release created**: Check if commits follow conventional format
|
|
142
|
-
2. **Wrong release type**: Ensure commit messages use correct prefixes
|
|
143
|
-
3. **Tests failing**: Release won't proceed if tests fail
|
|
144
|
-
4. **Permission denied**: Ensure GitHub token has write permissions
|
|
145
|
-
|
|
146
|
-
### Debugging
|
|
147
|
-
|
|
148
|
-
The automated workflow logs will show:
|
|
149
|
-
|
|
150
|
-
- Last tag found
|
|
151
|
-
- Commits since last tag
|
|
152
|
-
- Determined release type
|
|
153
|
-
- Calculated new version
|
|
154
|
-
|
|
155
|
-
### Rollback
|
|
156
|
-
|
|
157
|
-
If you need to rollback a release:
|
|
158
|
-
|
|
159
|
-
1. Delete the tag locally: `git tag -d vX.Y.Z`
|
|
160
|
-
2. Delete the tag on GitHub: `git push origin :refs/tags/vX.Y.Z`
|
|
161
|
-
3. Revert the version in `package.json`
|
|
162
|
-
4. Commit the revert: `git commit -m "chore: revert version to X.Y.Z"`
|
|
163
|
-
5. Push the changes: `git push origin main`
|