wexample-wex-addon-dev-javascript 7.10.10__tar.gz → 7.11.0__tar.gz
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.
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/PKG-INFO +8 -4
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/README.md +4 -2
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/pyproject.toml +4 -2
- {wexample_wex_addon_dev_javascript-7.10.10/src/wexample_wex_addon_dev_javascript/config_value → wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/common}/__init__.py +0 -0
- wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/common/npm_registry_gateway.py +44 -0
- {wexample_wex_addon_dev_javascript-7.10.10/src/wexample_wex_addon_dev_javascript/services/node → wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/const}/__init__.py +0 -0
- wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/const/tags.py +11 -0
- wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/services/vite/commands/service/__init__.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/services/vite/commands/service/install.py +12 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/services/vite/commands/service/ready.py +17 -1
- wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/workdir/__init__.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/workdir/javascript_package_workdir.py +17 -27
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/workdir/javascript_packages_suite_workdir.py +2 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/workdir/javascript_workdir.py +8 -1
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/__init__.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10/src/wexample_wex_addon_dev_javascript/services → wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/config_value}/__init__.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/config_value/javascript_package_readme_config_value.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/file/__init__.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/file/javascript_package_json_file.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/file/javascript_tsconfig_json_file.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/javascript_addon_manager.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/py.typed +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/resources/.wex.yml +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/resources/package_publish.yml +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10/src/wexample_wex_addon_dev_javascript/services/vite → wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/services}/__init__.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10/src/wexample_wex_addon_dev_javascript/services/vite/commands → wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/services/node}/__init__.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/services/node/docker/.wex.yml +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/services/node/docker/docker-compose.yml +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/services/node/service.yml +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10/src/wexample_wex_addon_dev_javascript/services/vite/commands/service → wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/services/vite}/__init__.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10/src/wexample_wex_addon_dev_javascript/workdir → wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/services/vite/commands}/__init__.py +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/services/vite/docker/.wex.yml +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/services/vite/docker/docker-compose.yml +0 -0
- {wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/src/wexample_wex_addon_dev_javascript/services/vite/service.yml +0 -0
{wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: wexample-wex-addon-dev-javascript
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.11.0
|
|
4
4
|
Summary: Python dev addon for wex
|
|
5
5
|
Author-Email: weeger <contact@wexample.com>
|
|
6
6
|
License: MIT
|
|
@@ -11,8 +11,10 @@ Project-URL: homepage, https://github.com/wexample/python-wex-dev-python
|
|
|
11
11
|
Requires-Python: >=3.10
|
|
12
12
|
Requires-Dist: attrs>=23.1.0
|
|
13
13
|
Requires-Dist: cattrs>=23.1.0
|
|
14
|
+
Requires-Dist: wexample-api>=6.2.0
|
|
14
15
|
Requires-Dist: wexample-filestate-javascript>=6.3.0
|
|
15
|
-
Requires-Dist: wexample-wex-addon-
|
|
16
|
+
Requires-Dist: wexample-wex-addon-ai>=8.0.0
|
|
17
|
+
Requires-Dist: wexample-wex-addon-app>=23.0.0
|
|
16
18
|
Provides-Extra: dev
|
|
17
19
|
Requires-Dist: pytest; extra == "dev"
|
|
18
20
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
@@ -20,7 +22,7 @@ Description-Content-Type: text/markdown
|
|
|
20
22
|
|
|
21
23
|
# wex_addon_dev_javascript
|
|
22
24
|
|
|
23
|
-
Version: 7.
|
|
25
|
+
Version: 7.11.0
|
|
24
26
|
|
|
25
27
|
Python dev addon for wex
|
|
26
28
|
|
|
@@ -102,8 +104,10 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
|
|
|
102
104
|
|
|
103
105
|
- attrs: >=23.1.0
|
|
104
106
|
- cattrs: >=23.1.0
|
|
107
|
+
- wexample-api: >=6.2.0
|
|
105
108
|
- wexample-filestate-javascript: >=6.3.0
|
|
106
|
-
- wexample-wex-addon-
|
|
109
|
+
- wexample-wex-addon-ai: >=8.0.0
|
|
110
|
+
- wexample-wex-addon-app: >=23.0.0
|
|
107
111
|
|
|
108
112
|
## Versioning & Compatibility Policy
|
|
109
113
|
|
{wexample_wex_addon_dev_javascript-7.10.10 → wexample_wex_addon_dev_javascript-7.11.0}/README.md
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# wex_addon_dev_javascript
|
|
2
2
|
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.11.0
|
|
4
4
|
|
|
5
5
|
Python dev addon for wex
|
|
6
6
|
|
|
@@ -82,8 +82,10 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
|
|
|
82
82
|
|
|
83
83
|
- attrs: >=23.1.0
|
|
84
84
|
- cattrs: >=23.1.0
|
|
85
|
+
- wexample-api: >=6.2.0
|
|
85
86
|
- wexample-filestate-javascript: >=6.3.0
|
|
86
|
-
- wexample-wex-addon-
|
|
87
|
+
- wexample-wex-addon-ai: >=8.0.0
|
|
88
|
+
- wexample-wex-addon-app: >=23.0.0
|
|
87
89
|
|
|
88
90
|
## Versioning & Compatibility Policy
|
|
89
91
|
|
|
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "wexample-wex-addon-dev-javascript"
|
|
9
|
-
version = "7.
|
|
9
|
+
version = "7.11.0"
|
|
10
10
|
description = "Python dev addon for wex"
|
|
11
11
|
authors = [
|
|
12
12
|
{ name = "weeger", email = "contact@wexample.com" },
|
|
@@ -20,8 +20,10 @@ classifiers = [
|
|
|
20
20
|
dependencies = [
|
|
21
21
|
"attrs>=23.1.0",
|
|
22
22
|
"cattrs>=23.1.0",
|
|
23
|
+
"wexample-api>=6.2.0",
|
|
23
24
|
"wexample-filestate-javascript>=6.3.0",
|
|
24
|
-
"wexample-wex-addon-
|
|
25
|
+
"wexample-wex-addon-ai>=8.0.0",
|
|
26
|
+
"wexample-wex-addon-app>=23.0.0",
|
|
25
27
|
]
|
|
26
28
|
|
|
27
29
|
[project.readme]
|
|
File without changes
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from wexample_api.common.abstract_gateway import AbstractGateway
|
|
4
|
+
from wexample_helpers.classes.field import public_field
|
|
5
|
+
from wexample_helpers.decorator.base_class import base_class
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@base_class
|
|
9
|
+
class NpmRegistryGateway(AbstractGateway):
|
|
10
|
+
"""Thin HTTP gateway over an npm registry JSON API.
|
|
11
|
+
|
|
12
|
+
Targets public npm (`https://registry.npmjs.org`) and private registries
|
|
13
|
+
that expose the same package-manifest layout (e.g. GitLab npm registry).
|
|
14
|
+
Optional Bearer auth via `token`.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
token: str | None = public_field(
|
|
18
|
+
default=None,
|
|
19
|
+
description="Optional Bearer token for private registries.",
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
def __attrs_post_init__(self) -> None:
|
|
23
|
+
super().__attrs_post_init__()
|
|
24
|
+
if self.token:
|
|
25
|
+
self.default_headers["Authorization"] = f"Bearer {self.token}"
|
|
26
|
+
|
|
27
|
+
def has_version(self, package: str, version: str) -> bool:
|
|
28
|
+
"""Return True iff `package@version` is published on this registry.
|
|
29
|
+
|
|
30
|
+
Fetches the package manifest and looks up the version in the
|
|
31
|
+
`versions` map — works for both public npm and private (GitLab)
|
|
32
|
+
registries that don't expose per-version URLs. Returns False on
|
|
33
|
+
404 (unknown package or version not yet propagated).
|
|
34
|
+
"""
|
|
35
|
+
encoded = package.replace("/", "%2F")
|
|
36
|
+
response = self.make_request(
|
|
37
|
+
endpoint=encoded,
|
|
38
|
+
expected_status_codes=[200, 404],
|
|
39
|
+
fatal_if_unexpected=False,
|
|
40
|
+
quiet=True,
|
|
41
|
+
)
|
|
42
|
+
if response is None or response.status_code != 200:
|
|
43
|
+
return False
|
|
44
|
+
return version in (response.json().get("versions") or {})
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""Domain tags exposed by this addon — one entry per `domain:*` value its commands use."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class DomainTag:
|
|
7
|
+
"""Functional domain this addon's commands touch."""
|
|
8
|
+
|
|
9
|
+
DEV_SERVER = "domain:dev-server"
|
|
10
|
+
FRONTEND = "domain:frontend"
|
|
11
|
+
SERVICE = "domain:service"
|
|
File without changes
|
|
@@ -2,9 +2,12 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
|
|
5
|
+
from wexample_cli.const.tags import AudienceTag, EffectTag, ScopeTag
|
|
5
6
|
from wexample_cli.decorator.command import command
|
|
6
7
|
from wexample_wex_core.const.globals import COMMAND_TYPE_SERVICE
|
|
7
8
|
|
|
9
|
+
from wexample_wex_addon_dev_javascript.const.tags import DomainTag
|
|
10
|
+
|
|
8
11
|
if TYPE_CHECKING:
|
|
9
12
|
from wexample_cli.context.execution_context import ExecutionContext
|
|
10
13
|
from wexample_wex_addon_app.service.app_service import AppService
|
|
@@ -13,6 +16,15 @@ if TYPE_CHECKING:
|
|
|
13
16
|
@command(
|
|
14
17
|
type=COMMAND_TYPE_SERVICE,
|
|
15
18
|
description="Patch vite.config.ts to allow all hosts (needed behind a reverse proxy)",
|
|
19
|
+
tags=[
|
|
20
|
+
DomainTag.DEV_SERVER,
|
|
21
|
+
DomainTag.FRONTEND,
|
|
22
|
+
DomainTag.SERVICE,
|
|
23
|
+
EffectTag.WRITE,
|
|
24
|
+
AudienceTag.AGENT_SAFE,
|
|
25
|
+
ScopeTag.APP,
|
|
26
|
+
ScopeTag.LOCAL,
|
|
27
|
+
],
|
|
16
28
|
)
|
|
17
29
|
def vite__service__install(
|
|
18
30
|
context: ExecutionContext,
|
|
@@ -2,9 +2,12 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
|
|
5
|
+
from wexample_cli.const.tags import AudienceTag, EffectTag, ScopeTag
|
|
5
6
|
from wexample_cli.decorator.command import command
|
|
6
7
|
from wexample_wex_core.const.globals import COMMAND_TYPE_SERVICE
|
|
7
8
|
|
|
9
|
+
from wexample_wex_addon_dev_javascript.const.tags import DomainTag
|
|
10
|
+
|
|
8
11
|
if TYPE_CHECKING:
|
|
9
12
|
from wexample_app.response.boolean_response import BooleanResponse
|
|
10
13
|
from wexample_cli.context.execution_context import ExecutionContext
|
|
@@ -12,7 +15,20 @@ if TYPE_CHECKING:
|
|
|
12
15
|
|
|
13
16
|
|
|
14
17
|
@command(
|
|
15
|
-
type=COMMAND_TYPE_SERVICE,
|
|
18
|
+
type=COMMAND_TYPE_SERVICE,
|
|
19
|
+
description="Check if the Vite dev server is responding",
|
|
20
|
+
tags=[
|
|
21
|
+
DomainTag.DEV_SERVER,
|
|
22
|
+
DomainTag.FRONTEND,
|
|
23
|
+
DomainTag.SERVICE,
|
|
24
|
+
EffectTag.IDEMPOTENT,
|
|
25
|
+
EffectTag.NETWORK_CALL,
|
|
26
|
+
EffectTag.READ_ONLY,
|
|
27
|
+
EffectTag.SUBPROCESS_SPAWN,
|
|
28
|
+
AudienceTag.AGENT_SAFE,
|
|
29
|
+
ScopeTag.APP,
|
|
30
|
+
ScopeTag.LOCAL,
|
|
31
|
+
],
|
|
16
32
|
)
|
|
17
33
|
def vite__service__ready(
|
|
18
34
|
context: ExecutionContext,
|
wexample_wex_addon_dev_javascript-7.11.0/src/wexample_wex_addon_dev_javascript/workdir/__init__.py
ADDED
|
File without changes
|
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
|
|
5
|
+
from wexample_helpers.decorator.base_class import base_class
|
|
5
6
|
from wexample_helpers.helpers.string import string_to_kebab_case
|
|
6
7
|
from wexample_helpers_git.helpers.git import (
|
|
7
8
|
git_tag_annotated,
|
|
@@ -22,6 +23,7 @@ if TYPE_CHECKING:
|
|
|
22
23
|
)
|
|
23
24
|
|
|
24
25
|
|
|
26
|
+
@base_class
|
|
25
27
|
class JavascriptPackageWorkdir(JavascriptWorkdir):
|
|
26
28
|
def get_package_dependency_name(self) -> str:
|
|
27
29
|
return self.get_package_import_name()
|
|
@@ -155,45 +157,33 @@ class JavascriptPackageWorkdir(JavascriptWorkdir):
|
|
|
155
157
|
def _wait_for_registry(self) -> None:
|
|
156
158
|
"""Poll the configured npm registry until the current version is available (max 20 min).
|
|
157
159
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
160
|
+
Works for both public npm and private registries (e.g. GitLab) that
|
|
161
|
+
don't expose per-version URLs — relies on the package manifest's
|
|
162
|
+
`versions` map.
|
|
161
163
|
"""
|
|
162
|
-
import json
|
|
163
|
-
import urllib.error
|
|
164
|
-
import urllib.request
|
|
165
|
-
|
|
166
164
|
from wexample_helpers.helpers.polling_callback_manager import (
|
|
167
165
|
PollingCallbackManager,
|
|
168
166
|
)
|
|
169
167
|
|
|
168
|
+
from wexample_wex_addon_dev_javascript.common.npm_registry_gateway import (
|
|
169
|
+
NpmRegistryGateway,
|
|
170
|
+
)
|
|
171
|
+
|
|
170
172
|
package = self.get_project_name()
|
|
171
173
|
version = self.get_setup_version()
|
|
172
174
|
|
|
173
175
|
registry_base = (
|
|
174
176
|
self.get_runtime_config().search("npm.registry_url").get_str_or_none()
|
|
177
|
+
or "https://registry.npmjs.org"
|
|
175
178
|
)
|
|
176
179
|
token = self.get_runtime_config().search("npm.api_token").get_str_or_none()
|
|
177
180
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if token:
|
|
185
|
-
req.add_header("Authorization", f"Bearer {token}")
|
|
186
|
-
with urllib.request.urlopen(req, timeout=10) as resp:
|
|
187
|
-
if resp.status == 200:
|
|
188
|
-
data = json.loads(resp.read())
|
|
189
|
-
if version in data.get("versions", {}):
|
|
190
|
-
return True
|
|
191
|
-
except urllib.error.HTTPError as e:
|
|
192
|
-
if e.code != 404:
|
|
193
|
-
raise
|
|
194
|
-
except Exception:
|
|
195
|
-
pass
|
|
196
|
-
return None
|
|
181
|
+
gateway = NpmRegistryGateway(
|
|
182
|
+
base_url=registry_base,
|
|
183
|
+
token=token,
|
|
184
|
+
io=self.io,
|
|
185
|
+
timeout=10,
|
|
186
|
+
)
|
|
197
187
|
|
|
198
188
|
max_attempts = 40
|
|
199
189
|
delay_seconds = 30
|
|
@@ -206,7 +196,7 @@ class JavascriptPackageWorkdir(JavascriptWorkdir):
|
|
|
206
196
|
)
|
|
207
197
|
|
|
208
198
|
PollingCallbackManager(
|
|
209
|
-
callback=
|
|
199
|
+
callback=lambda: True if gateway.has_version(package, version) else None,
|
|
210
200
|
max_attempts=max_attempts,
|
|
211
201
|
delay_seconds_callback=lambda _attempt: delay_seconds,
|
|
212
202
|
on_retry_callback=on_retry,
|
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
|
|
5
|
+
from wexample_helpers.decorator.base_class import base_class
|
|
5
6
|
from wexample_wex_addon_app.workdir.framework_packages_suite_workdir import (
|
|
6
7
|
FrameworkPackageSuiteWorkdir,
|
|
7
8
|
)
|
|
@@ -12,6 +13,7 @@ if TYPE_CHECKING:
|
|
|
12
13
|
from wexample_wex_addon_app.workdir.code_base_workdir import CodeBaseWorkdir
|
|
13
14
|
|
|
14
15
|
|
|
16
|
+
@base_class
|
|
15
17
|
class JavascriptPackagesSuiteWorkdir(FrameworkPackageSuiteWorkdir):
|
|
16
18
|
def _child_is_package_directory(self, entry: Path) -> bool:
|
|
17
19
|
return entry.is_dir() and (entry / "package.json").is_file()
|
|
@@ -5,6 +5,10 @@ from typing import TYPE_CHECKING
|
|
|
5
5
|
from wexample_config.options_provider.abstract_options_provider import (
|
|
6
6
|
AbstractOptionsProvider,
|
|
7
7
|
)
|
|
8
|
+
from wexample_helpers.decorator.base_class import base_class
|
|
9
|
+
from wexample_wex_addon_ai.workdir.mixin.with_ai_workdir_mixin import (
|
|
10
|
+
WithAiWorkdirMixin,
|
|
11
|
+
)
|
|
8
12
|
from wexample_wex_addon_app.workdir.code_base_workdir import CodeBaseWorkdir
|
|
9
13
|
|
|
10
14
|
if TYPE_CHECKING:
|
|
@@ -18,7 +22,8 @@ if TYPE_CHECKING:
|
|
|
18
22
|
)
|
|
19
23
|
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
@base_class
|
|
26
|
+
class JavascriptWorkdir(WithAiWorkdirMixin, CodeBaseWorkdir):
|
|
22
27
|
def get_app_config_file(self, reload: bool = True) -> JavascriptPackageJsonFile:
|
|
23
28
|
from wexample_wex_addon_dev_javascript.file.javascript_package_json_file import (
|
|
24
29
|
JavascriptPackageJsonFile,
|
|
@@ -63,6 +68,8 @@ class JavascriptWorkdir(CodeBaseWorkdir):
|
|
|
63
68
|
|
|
64
69
|
raw_value = super().prepare_value(raw_value=raw_value)
|
|
65
70
|
|
|
71
|
+
self.append_agents(config=raw_value)
|
|
72
|
+
|
|
66
73
|
# Ensure a package.json file exists for any JavaScript package project
|
|
67
74
|
children = raw_value["children"]
|
|
68
75
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|