@uns-kit/cli 0.0.34 → 0.0.36

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 (57) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +128 -128
  3. package/dist/index.js +181 -6
  4. package/package.json +2 -2
  5. package/templates/api/src/examples/api-example.ts +62 -61
  6. package/templates/azure-pipelines.yml +21 -21
  7. package/templates/codegen/codegen.ts +15 -15
  8. package/templates/codegen/src/uns/uns-tags.ts +1 -1
  9. package/templates/codegen/src/uns/uns-topics.ts +1 -1
  10. package/templates/config-files/config-docker.json +27 -0
  11. package/templates/config-files/config-localhost.json +27 -0
  12. package/templates/cron/src/examples/cron-example.ts +46 -45
  13. package/templates/default/README.md +30 -30
  14. package/templates/default/config.json +27 -27
  15. package/templates/default/gitignore +51 -48
  16. package/templates/default/package.json +19 -19
  17. package/templates/default/src/config/project.config.extension.example +23 -23
  18. package/templates/default/src/config/project.config.extension.ts +6 -6
  19. package/templates/default/src/examples/data-example.ts +68 -68
  20. package/templates/default/src/examples/load-test-data.ts +108 -108
  21. package/templates/default/src/examples/table-example.ts +66 -66
  22. package/templates/default/src/examples/uns-gateway-cli.ts +7 -7
  23. package/templates/default/src/index.ts +15 -15
  24. package/templates/default/src/uns/uns-tags.ts +2 -2
  25. package/templates/default/src/uns/uns-topics.ts +2 -2
  26. package/templates/default/tsconfig.json +16 -16
  27. package/templates/python/app/README.md +8 -0
  28. package/templates/python/app/__init__.py +0 -0
  29. package/templates/python/examples/README.md +134 -84
  30. package/templates/python/examples/__init__.py +0 -0
  31. package/templates/python/examples/api_handler.py +28 -101
  32. package/templates/python/examples/data_publish.py +11 -0
  33. package/templates/python/examples/data_subscribe.py +8 -124
  34. package/templates/python/examples/data_transformer.py +17 -147
  35. package/templates/python/examples/table_transformer.py +16 -163
  36. package/templates/python/gateway/__init__.py +0 -0
  37. package/templates/python/gateway/cli.py +75 -0
  38. package/templates/python/gateway/client.py +155 -0
  39. package/templates/python/gateway/manager.py +97 -0
  40. package/templates/python/gen/__init__.py +1 -0
  41. package/templates/python/gen/uns_gateway_pb2.py +70 -0
  42. package/templates/python/gen/uns_gateway_pb2_grpc.py +312 -0
  43. package/templates/python/main.py +1 -0
  44. package/templates/python/proto/uns-gateway.proto +102 -102
  45. package/templates/python/pyproject.toml +5 -0
  46. package/templates/python/scripts/setup.sh +87 -64
  47. package/templates/temporal/src/examples/temporal-example.ts +35 -34
  48. package/templates/vscode/.vscode/launch.json +164 -164
  49. package/templates/vscode/.vscode/settings.json +9 -9
  50. package/templates/vscode/uns-kit.code-workspace +13 -13
  51. package/templates/python/examples/api_register_and_serve.py +0 -159
  52. package/templates/python/examples/data_publish_once.py +0 -140
  53. package/templates/python/examples/data_publisher_loop.py +0 -142
  54. package/templates/python/gateway_client.py +0 -242
  55. package/templates/python/local/README.md +0 -8
  56. package/templates/python/local/__init__.py +0 -2
  57. package/templates/python/requirements.txt +0 -3
@@ -1,61 +1,62 @@
1
- /**
2
- * Change this file according to your specifications and rename it to index.ts
3
- */
4
- import { UnsProxyProcess, ConfigFile } from "@uns-kit/core";
5
- import { IApiProxyOptions } from "@uns-kit/core";
6
- import type { UnsEvents } from "@uns-kit/core";
7
- import { type UnsProxyProcessWithApi } from "@uns-kit/api";
8
-
9
- /**
10
- * Load the configuration from a file.
11
- * On the server, this file is provided by the `uns-datahub-controller`.
12
- * In the development environment, you are responsible for creating and maintaining this file and its contents.
13
- */
14
- const config = await ConfigFile.loadConfig();
15
-
16
- /**
17
- * Connect to the API proxy process
18
- */
19
- const unsProxyProcess = new UnsProxyProcess(config.infra.host!, {processName: config.uns.processName}) as UnsProxyProcessWithApi;
20
- const apiOptions: IApiProxyOptions = config.uns?.jwksWellKnownUrl
21
- ? {
22
- jwks: {
23
- wellKnownJwksUrl: config.uns.jwksWellKnownUrl,
24
- activeKidUrl: config.uns.kidWellKnownUrl,
25
- },
26
- }
27
- : {
28
- jwtSecret: "CHANGEME",
29
- };
30
- const apiInput = await unsProxyProcess.createApiProxy("templateUnsApiInput", apiOptions);
31
-
32
- /**
33
- * Register an API endpoint and event handler
34
- */
35
- apiInput.get("example/", "summary-1",{
36
- tags: ["Tag1"],
37
- apiDescription: "Test API endpoint 1",
38
- queryParams: [
39
- { name: "filter", type: "string", required: true, description: "Filter za podatke" },
40
- { name: "limit", type: "number", required: false, description: "Koliko podatkov želiš" },
41
- ]
42
- });
43
-
44
- apiInput.get("example/", "summary-2",{
45
- tags: ["Tag2"],
46
- apiDescription: "Test API endpoint 2",
47
- queryParams: [
48
- { name: "filter", type: "string", required: true, description: "Filter za podatke" },
49
- { name: "limit", type: "number", required: false, description: "Koliko podatkov želiš" },
50
- ]
51
- });
52
-
53
- apiInput.event.on("apiGetEvent", (event: UnsEvents["apiGetEvent"]) => {
54
- try {
55
- const appContext = event.req.appContext;
56
- // Add SQL query or any other code here
57
- event.res.send("OK");
58
- } catch (error) {
59
- event.res.status(400).send("Error");
60
- }
61
- });
1
+ /**
2
+ * Change this file according to your specifications and rename it to index.ts
3
+ */
4
+ import { UnsProxyProcess, ConfigFile } from "@uns-kit/core.js";
5
+ import { IApiProxyOptions } from "@uns-kit/core.js";
6
+ import type { UnsEvents } from "@uns-kit/core.js";
7
+ import "@uns-kit/api";
8
+ import { type UnsProxyProcessWithApi } from "@uns-kit/api.js";
9
+
10
+ /**
11
+ * Load the configuration from a file.
12
+ * On the server, this file is provided by the `uns-datahub-controller`.
13
+ * In the development environment, you are responsible for creating and maintaining this file and its contents.
14
+ */
15
+ const config = await ConfigFile.loadConfig();
16
+
17
+ /**
18
+ * Connect to the API proxy process
19
+ */
20
+ const unsProxyProcess = new UnsProxyProcess(config.infra.host!, {processName: config.uns.processName}) as UnsProxyProcessWithApi;
21
+ const apiOptions: IApiProxyOptions = config.uns?.jwksWellKnownUrl
22
+ ? {
23
+ jwks: {
24
+ wellKnownJwksUrl: config.uns.jwksWellKnownUrl,
25
+ activeKidUrl: config.uns.kidWellKnownUrl,
26
+ },
27
+ }
28
+ : {
29
+ jwtSecret: "CHANGEME",
30
+ };
31
+ const apiInput = await unsProxyProcess.createApiProxy("templateUnsApiInput", apiOptions);
32
+
33
+ /**
34
+ * Register an API endpoint and event handler
35
+ */
36
+ apiInput.get("example/", "summary-1",{
37
+ tags: ["Tag1"],
38
+ apiDescription: "Test API endpoint 1",
39
+ queryParams: [
40
+ { name: "filter", type: "string", required: true, description: "Filter za podatke" },
41
+ { name: "limit", type: "number", required: false, description: "Koliko podatkov želiš" },
42
+ ]
43
+ });
44
+
45
+ apiInput.get("example/", "summary-2",{
46
+ tags: ["Tag2"],
47
+ apiDescription: "Test API endpoint 2",
48
+ queryParams: [
49
+ { name: "filter", type: "string", required: true, description: "Filter za podatke" },
50
+ { name: "limit", type: "number", required: false, description: "Koliko podatkov želiš" },
51
+ ]
52
+ });
53
+
54
+ apiInput.event.on("apiGetEvent", (event: UnsEvents["apiGetEvent"]) => {
55
+ try {
56
+ const appContext = event.req.appContext;
57
+ // Add SQL query or any other code here
58
+ event.res.send("OK");
59
+ } catch (error) {
60
+ event.res.status(400).send("Error");
61
+ }
62
+ });
@@ -1,21 +1,21 @@
1
- variables:
2
- privatePool: 'Azure private pool'
3
-
4
- trigger:
5
- - master
6
-
7
- stages:
8
- - stage: version_tag
9
- displayName: Add Version Tag
10
- pool: $(privatePool)
11
- jobs:
12
- - job: add_tags
13
- steps:
14
- - checkout: self
15
- persistCredentials: true
16
- clean: true
17
- - script: |
18
- tag=$(node -pe "require('./package.json').version")
19
- git tag $tag
20
- git push origin $tag
21
- displayName: "Add version tag from package.json"
1
+ variables:
2
+ privatePool: 'Azure private pool'
3
+
4
+ trigger:
5
+ - master
6
+
7
+ stages:
8
+ - stage: version_tag
9
+ displayName: Add Version Tag
10
+ pool: $(privatePool)
11
+ jobs:
12
+ - job: add_tags
13
+ steps:
14
+ - checkout: self
15
+ persistCredentials: true
16
+ clean: true
17
+ - script: |
18
+ tag=$(node -pe "require('./package.json').version")
19
+ git tag $tag
20
+ git push origin $tag
21
+ displayName: "Add version tag from package.json"
@@ -1,15 +1,15 @@
1
- import type { CodegenConfig } from '@graphql-codegen/cli';
2
- import { ConfigFile } from '@uns-kit/core';
3
-
4
- const appConfig = await ConfigFile.loadConfig();
5
-
6
- const config: CodegenConfig = {
7
- schema: appConfig.uns.graphql,
8
- generates: {
9
- 'src/graphql/schema.ts': {
10
- plugins: ['typescript', 'typescript-operations', 'typescript-resolvers'],
11
- },
12
- },
13
- };
14
-
15
- export default config;
1
+ import type { CodegenConfig } from '@graphql-codegen/cli';
2
+ import { ConfigFile } from '@uns-kit/core.js';
3
+
4
+ const appConfig = await ConfigFile.loadConfig();
5
+
6
+ const config: CodegenConfig = {
7
+ schema: appConfig.uns.graphql,
8
+ generates: {
9
+ 'src/graphql/schema.ts': {
10
+ plugins: ['typescript', 'typescript-operations', 'typescript-resolvers'],
11
+ },
12
+ },
13
+ };
14
+
15
+ export default config;
@@ -1 +1 @@
1
- export type UnsTags = string & {};
1
+ export type UnsTags = string & {};
@@ -1 +1 @@
1
- export type UnsTopics = string & {};
1
+ export type UnsTopics = string & {};
@@ -0,0 +1,27 @@
1
+ {
2
+ "uns": {
3
+ "graphql": "http://uns-datahub-controller:3200/graphql",
4
+ "rest": "http://uns-datahub-controller:3200/api",
5
+ "processName": "__APP_NAME__",
6
+ "instanceMode": "wait",
7
+ "handover": true,
8
+ "jwksWellKnownUrl": "http://uns-datahub-controller:3200/api/.well-known/jwks.json",
9
+ "kidWellKnownUrl": "http://uns-datahub-controller:3200/api/.well-known/kid",
10
+ "email": "user@example-org.com",
11
+ "password": "secret"
12
+ },
13
+ "infra": {
14
+ "host": "mosquitto:1883"
15
+ },
16
+ "output": {
17
+ "host": "mosquitto:1883"
18
+ },
19
+ "input": {
20
+ "host": "mosquitto:1883"
21
+ },
22
+ "devops": {
23
+ "provider": "azure-devops",
24
+ "organization": "example-org",
25
+ "project": "example-project"
26
+ }
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "uns": {
3
+ "graphql": "http://localhost:3200/graphql",
4
+ "rest": "http://localhost:3200/api",
5
+ "processName": "__APP_NAME__",
6
+ "instanceMode": "wait",
7
+ "handover": true,
8
+ "jwksWellKnownUrl": "http://localhost:3200/api/.well-known/jwks.json",
9
+ "kidWellKnownUrl": "http://localhost:3200/api/.well-known/kid",
10
+ "email": "user@example-org.com",
11
+ "password": "secret"
12
+ },
13
+ "infra": {
14
+ "host": "localhost:1883"
15
+ },
16
+ "output": {
17
+ "host": "localhost:1883"
18
+ },
19
+ "input": {
20
+ "host": "localhost:1883"
21
+ },
22
+ "devops": {
23
+ "provider": "azure-devops",
24
+ "organization": "example-org",
25
+ "project": "example-project"
26
+ }
27
+ }
@@ -1,45 +1,46 @@
1
- /**
2
- * Change this file according to your specifications and rename it to index.ts
3
- */
4
- import { UnsProxyProcess, ConfigFile, logger } from "@uns-kit/core";
5
- import type { IUnsMessage, UnsEvents } from "@uns-kit/core";
6
- import { type UnsProxyProcessWithCron } from "@uns-kit/cron";
7
- import { UnsTags } from "../uns/uns-tags.js";
8
- import { UnsTopics } from "../uns/uns-topics.js";
9
- import { PhysicalMeasurements } from "@uns-kit/core/uns/uns-measurements.js";
10
- import { UnsPacket } from "@uns-kit/core/uns/uns-packet.js";
11
-
12
-
13
- /**
14
- * Load the configuration from a file.
15
- * On the server, this file is provided by the `uns-datahub-controller`.
16
- * In the development environment, you are responsible for creating and maintaining this file and its contents.
17
- */
18
- const config = await ConfigFile.loadConfig();
19
-
20
- /**
21
- * Connect to the output broker and create a crontab proxy
22
- */
23
- const unsProxyProcess = new UnsProxyProcess(config.infra.host!, {processName:config.uns.processName}) as UnsProxyProcessWithCron;;
24
- const mqttOutput = await unsProxyProcess.createUnsMqttProxy((config.output?.host)!, "templateUnsRttOutput", config.uns.instanceMode, config.uns.handover, { publishThrottlingDelay: 1000});
25
- const cronInput = await unsProxyProcess.createCrontabProxy("* * * * * *");
26
-
27
- /**
28
- * Event listener for cron events.
29
- * On each cron event, publish a message to the MQTT output broker.
30
- */
31
- cronInput.event.on("cronEvent", async (event: UnsEvents["cronEvent"]) => {
32
- try {
33
- const time = UnsPacket.formatToISO8601(new Date());
34
- const numberValue: number = 42;
35
- const message: IUnsMessage = { data: { time, value: numberValue, uom: PhysicalMeasurements.MiliVolt } };
36
- const topic: UnsTopics = "example/";
37
- const tags: UnsTags[] = [];
38
- const packet = await UnsPacket.unsPacketFromUnsMessage(message);
39
- mqttOutput.publishMqttMessage({ topic, attribute: "data-number", packet, description: "Number value", tags });
40
- } catch (error) {
41
- const reason = error instanceof Error ? error : new Error(String(error));
42
- logger.error(`Error publishing message to MQTT: ${reason.message}`);
43
- throw error;
44
- }
45
- });
1
+ /**
2
+ * Change this file according to your specifications and rename it to index.ts
3
+ */
4
+ import { UnsProxyProcess, ConfigFile, logger } from "@uns-kit/core.js";
5
+ import type { IUnsMessage, UnsEvents } from "@uns-kit/core.js";
6
+ import "@uns-kit/cron";
7
+ import { type UnsProxyProcessWithCron } from "@uns-kit/cron.js";
8
+ import { UnsTags } from "../uns/uns-tags.js";
9
+ import { UnsTopics } from "../uns/uns-topics.js";
10
+ import { PhysicalMeasurements } from "@uns-kit/core/uns/uns-measurements.js";
11
+ import { UnsPacket } from "@uns-kit/core/uns/uns-packet.js";
12
+
13
+
14
+ /**
15
+ * Load the configuration from a file.
16
+ * On the server, this file is provided by the `uns-datahub-controller`.
17
+ * In the development environment, you are responsible for creating and maintaining this file and its contents.
18
+ */
19
+ const config = await ConfigFile.loadConfig();
20
+
21
+ /**
22
+ * Connect to the output broker and create a crontab proxy
23
+ */
24
+ const unsProxyProcess = new UnsProxyProcess(config.infra.host!, {processName:config.uns.processName}) as UnsProxyProcessWithCron;;
25
+ const mqttOutput = await unsProxyProcess.createUnsMqttProxy((config.output?.host)!, "templateUnsRttOutput", config.uns.instanceMode, config.uns.handover, { publishThrottlingDelay: 1000});
26
+ const cronInput = await unsProxyProcess.createCrontabProxy("* * * * * *");
27
+
28
+ /**
29
+ * Event listener for cron events.
30
+ * On each cron event, publish a message to the MQTT output broker.
31
+ */
32
+ cronInput.event.on("cronEvent", async (event: UnsEvents["cronEvent"]) => {
33
+ try {
34
+ const time = UnsPacket.formatToISO8601(new Date());
35
+ const numberValue: number = 42;
36
+ const message: IUnsMessage = { data: { time, value: numberValue, uom: PhysicalMeasurements.MiliVolt } };
37
+ const topic: UnsTopics = "example/";
38
+ const tags: UnsTags[] = [];
39
+ const packet = await UnsPacket.unsPacketFromUnsMessage(message);
40
+ mqttOutput.publishMqttMessage({ topic, attribute: "data-number", packet, description: "Number value", tags });
41
+ } catch (error) {
42
+ const reason = error instanceof Error ? error : new Error(String(error));
43
+ logger.error(`Error publishing message to MQTT: ${reason.message}`);
44
+ throw error;
45
+ }
46
+ });
@@ -1,30 +1,30 @@
1
- # __APP_NAME__
2
-
3
- Generated with `@uns-kit/cli`.
4
-
5
- ## Scripts
6
-
7
- ```bash
8
- pnpm run dev # start the local development loop
9
- pnpm run build # emit dist/ output
10
- pnpm run start # run the compiled entrypoint
11
- pnpm run generate-config-schema # regenerate config.schema.json and AppConfig augmentations
12
- pnpm run codegen # regenerate typed GraphQL operations (after configure-codegen)
13
- pnpm run refresh-uns # rebuild UNS topics/tags from the live schema
14
- ```
15
-
16
- ## Configuration
17
-
18
- Update `config.json` with your broker, UNS URLs, and credentials. The generated file contains sensible defaults for local development.
19
-
20
- ## Next Steps
21
-
22
- - Install additional plugins: `pnpm add @uns-kit/api` etc.
23
- - Create MQTT proxies or Temporal workflows inside `src/index.ts`.
24
- - Extend `src/config/project.config.extension.ts` with project-specific sections and run `pnpm run generate-config-schema` (reload your editor's TS server afterward if completions lag).
25
- - Run `uns-kit configure-devops` to add the Azure DevOps pull-request tooling.
26
- - Run `uns-kit configure-vscode` to copy workspace/launch configuration for VS Code.
27
- - Run `uns-kit configure-codegen` to scaffold GraphQL code generation and UNS refresh scripts.
28
- - Run `uns-kit configure-api` / `configure-cron` / `configure-temporal` to pull in example stubs and install the matching UNS plugins.
29
- - Run `uns-kit configure-python` to copy the Python gateway client template (examples, scripts, proto).
30
- - Commit your new project and start building!
1
+ # __APP_NAME__
2
+
3
+ Generated with `@uns-kit/cli`.
4
+
5
+ ## Scripts
6
+
7
+ ```bash
8
+ pnpm run dev # start the local development loop
9
+ pnpm run build # emit dist/ output
10
+ pnpm run start # run the compiled entrypoint
11
+ pnpm run generate-config-schema # regenerate config.schema.json and AppConfig augmentations
12
+ pnpm run codegen # regenerate typed GraphQL operations (after configure-codegen)
13
+ pnpm run refresh-uns # rebuild UNS topics/tags from the live schema
14
+ ```
15
+
16
+ ## Configuration
17
+
18
+ Update `config.json` with your broker, UNS URLs, and credentials. The generated file contains sensible defaults for local development.
19
+
20
+ ## Next Steps
21
+
22
+ - Install additional plugins: `pnpm add @uns-kit/api` etc.
23
+ - Create MQTT proxies or Temporal workflows inside `src/index.ts`.
24
+ - Extend `src/config/project.config.extension.ts` with project-specific sections and run `pnpm run generate-config-schema` (reload your editor's TS server afterward if completions lag).
25
+ - Run `uns-kit configure-devops` to add the Azure DevOps pull-request tooling.
26
+ - Run `uns-kit configure-vscode` to copy workspace/launch configuration for VS Code.
27
+ - Run `uns-kit configure-codegen` to scaffold GraphQL code generation and UNS refresh scripts.
28
+ - Run `uns-kit configure-api` / `configure-cron` / `configure-temporal` to pull in example stubs and install the matching UNS plugins.
29
+ - Run `uns-kit configure-python` to copy the Python gateway client template (examples, scripts, proto).
30
+ - Commit your new project and start building!
@@ -1,27 +1,27 @@
1
- {
2
- "uns": {
3
- "graphql": "http://localhost:3200/graphql",
4
- "rest": "http://localhost:3200/api",
5
- "processName": "__APP_NAME__",
6
- "instanceMode": "wait",
7
- "handover": true,
8
- "jwksWellKnownUrl": "http://localhost:3200/api/.well-known/jwks.json",
9
- "kidWellKnownUrl": "http://localhost:3200/api/.well-known/kid",
10
- "email": "user@example-org.com",
11
- "password": "secret"
12
- },
13
- "infra": {
14
- "host": "localhost:1883"
15
- },
16
- "output": {
17
- "host": "localhost:1883"
18
- },
19
- "input": {
20
- "host": "localhost:1883"
21
- },
22
- "devops": {
23
- "provider": "azure-devops",
24
- "organization": "example-org",
25
- "project": "example-project"
26
- }
27
- }
1
+ {
2
+ "uns": {
3
+ "graphql": "http://localhost:3200/graphql",
4
+ "rest": "http://localhost:3200/api",
5
+ "processName": "__APP_NAME__",
6
+ "instanceMode": "wait",
7
+ "handover": true,
8
+ "jwksWellKnownUrl": "http://localhost:3200/api/.well-known/jwks.json",
9
+ "kidWellKnownUrl": "http://localhost:3200/api/.well-known/kid",
10
+ "email": "user@example-org.com",
11
+ "password": "secret"
12
+ },
13
+ "infra": {
14
+ "host": "localhost:1883"
15
+ },
16
+ "output": {
17
+ "host": "localhost:1883"
18
+ },
19
+ "input": {
20
+ "host": "localhost:1883"
21
+ },
22
+ "devops": {
23
+ "provider": "azure-devops",
24
+ "organization": "example-org",
25
+ "project": "example-project"
26
+ }
27
+ }
@@ -1,48 +1,51 @@
1
- # Dependencies
2
- node_modules/
3
- .pnpm-store/
4
- .pnpm/
5
- .pnp.cjs
6
- .pnp.loader.mjs
7
-
8
- # Build outputs
9
- build/
10
- dist/
11
- tmp/
12
- temp/
13
- *.tsbuildinfo
14
-
15
- # Logs & diagnostics
16
- logs/
17
- *.log
18
- npm-debug.log*
19
- yarn-debug.log*
20
- pnpm-debug.log*
21
- lerna-debug.log*
22
-
23
- # Test & coverage artifacts
24
- coverage/
25
- .nyc_output/
26
- .vitest/
27
-
28
- # Runtime queues & sandboxes
29
- publisherQueue/
30
- sandbox-*
31
- tmp-rtt
32
- .tmp-rtt
33
-
34
- # Environment & secrets
35
- .env
36
- .env.*
37
- !.env.example
38
- !.env.sample
39
-
40
- # Editor files & OS cruft
41
- .idea/
42
- .DS_Store
43
- Thumbs.db
44
- *.swp
45
- *.swo
46
-
47
- # Package managers
48
- package-lock.json
1
+ # Dependencies
2
+ node_modules/
3
+ .pnpm-store/
4
+ .pnpm/
5
+ .pnp.cjs
6
+ .pnp.loader.mjs
7
+
8
+ # Build outputs
9
+ build/
10
+ dist/
11
+ tmp/
12
+ temp/
13
+ *.tsbuildinfo
14
+
15
+ # Logs & diagnostics
16
+ logs/
17
+ *.log
18
+ npm-debug.log*
19
+ yarn-debug.log*
20
+ pnpm-debug.log*
21
+ lerna-debug.log*
22
+
23
+ # Test & coverage artifacts
24
+ coverage/
25
+ .nyc_output/
26
+ .vitest/
27
+
28
+ # Runtime queues & sandboxes
29
+ publisherQueue/
30
+ sandbox-*
31
+ tmp-rtt
32
+ .tmp-rtt
33
+
34
+ # Environment & secrets
35
+ .env
36
+ .env.*
37
+ !.env.example
38
+ !.env.sample
39
+
40
+ # UNS configuration overrides
41
+ config*.json
42
+
43
+ # Editor files & OS cruft
44
+ .idea/
45
+ .DS_Store
46
+ Thumbs.db
47
+ *.swp
48
+ *.swo
49
+
50
+ # Package managers
51
+ package-lock.json
@@ -1,19 +1,19 @@
1
- {
2
- "name": "__APP_NAME__",
3
- "version": "0.0.0",
4
- "type": "module",
5
- "scripts": {
6
- "typecheck": "tsc --noEmit",
7
- "build": "tsc -p tsconfig.json",
8
- "dev": "tsx watch src/index.ts",
9
- "generate-config-schema": "node ./node_modules/@uns-kit/core/dist/tools/generate-config-schema.js"
10
- },
11
- "dependencies": {
12
- "@uns-kit/core": "__UNS_KIT_CORE_VERSION__",
13
- "zod": "^3.23.8"
14
- },
15
- "devDependencies": {
16
- "tsx": "^4.20.5",
17
- "typescript": "^5.9.2"
18
- }
19
- }
1
+ {
2
+ "name": "__APP_NAME__",
3
+ "version": "0.0.0",
4
+ "type": "module",
5
+ "scripts": {
6
+ "typecheck": "tsc --noEmit",
7
+ "build": "tsc -p tsconfig.json",
8
+ "dev": "tsx watch src/index.ts",
9
+ "generate-config-schema": "node ./node_modules/@uns-kit/core/dist/tools/generate-config-schema.js"
10
+ },
11
+ "dependencies": {
12
+ "@uns-kit/core": "__UNS_KIT_CORE_VERSION__",
13
+ "zod": "^3.23.8"
14
+ },
15
+ "devDependencies": {
16
+ "tsx": "^4.20.5",
17
+ "typescript": "^5.9.2"
18
+ }
19
+ }