@intentic/providers 1.0.2

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 (259) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -0
  3. package/dist/auth/authentik-api.d.ts +23 -0
  4. package/dist/auth/authentik-api.d.ts.map +1 -0
  5. package/dist/auth/authentik-api.js +67 -0
  6. package/dist/auth/authentik-api.js.map +1 -0
  7. package/dist/auth/authentik-client.d.ts +4 -0
  8. package/dist/auth/authentik-client.d.ts.map +1 -0
  9. package/dist/auth/authentik-client.js +50 -0
  10. package/dist/auth/authentik-client.js.map +1 -0
  11. package/dist/auth/authentik.d.ts +4 -0
  12. package/dist/auth/authentik.d.ts.map +1 -0
  13. package/dist/auth/authentik.js +132 -0
  14. package/dist/auth/authentik.js.map +1 -0
  15. package/dist/backup/backup-restore.d.ts +15 -0
  16. package/dist/backup/backup-restore.d.ts.map +1 -0
  17. package/dist/backup/backup-restore.js +51 -0
  18. package/dist/backup/backup-restore.js.map +1 -0
  19. package/dist/backup/backup.d.ts +6 -0
  20. package/dist/backup/backup.d.ts.map +1 -0
  21. package/dist/backup/backup.js +154 -0
  22. package/dist/backup/backup.js.map +1 -0
  23. package/dist/backup/migrate-host.d.ts +6 -0
  24. package/dist/backup/migrate-host.d.ts.map +1 -0
  25. package/dist/backup/migrate-host.js +46 -0
  26. package/dist/backup/migrate-host.js.map +1 -0
  27. package/dist/core/backing-ssh.d.ts +9 -0
  28. package/dist/core/backing-ssh.d.ts.map +1 -0
  29. package/dist/core/backing-ssh.js +67 -0
  30. package/dist/core/backing-ssh.js.map +1 -0
  31. package/dist/core/ci-yaml.d.ts +3 -0
  32. package/dist/core/ci-yaml.d.ts.map +1 -0
  33. package/dist/core/ci-yaml.js +15 -0
  34. package/dist/core/ci-yaml.js.map +1 -0
  35. package/dist/core/guarded-update.d.ts +14 -0
  36. package/dist/core/guarded-update.d.ts.map +1 -0
  37. package/dist/core/guarded-update.js +25 -0
  38. package/dist/core/guarded-update.js.map +1 -0
  39. package/dist/core/inputs.d.ts +27 -0
  40. package/dist/core/inputs.d.ts.map +1 -0
  41. package/dist/core/inputs.js +36 -0
  42. package/dist/core/inputs.js.map +1 -0
  43. package/dist/core/ssh-probe.d.ts +5 -0
  44. package/dist/core/ssh-probe.d.ts.map +1 -0
  45. package/dist/core/ssh-probe.js +22 -0
  46. package/dist/core/ssh-probe.js.map +1 -0
  47. package/dist/core/ssh.d.ts +31 -0
  48. package/dist/core/ssh.d.ts.map +1 -0
  49. package/dist/core/ssh.js +186 -0
  50. package/dist/core/ssh.js.map +1 -0
  51. package/dist/data/garage-bucket.d.ts +4 -0
  52. package/dist/data/garage-bucket.d.ts.map +1 -0
  53. package/dist/data/garage-bucket.js +92 -0
  54. package/dist/data/garage-bucket.js.map +1 -0
  55. package/dist/data/garage.d.ts +4 -0
  56. package/dist/data/garage.d.ts.map +1 -0
  57. package/dist/data/garage.js +124 -0
  58. package/dist/data/garage.js.map +1 -0
  59. package/dist/data/postgres-database.d.ts +4 -0
  60. package/dist/data/postgres-database.d.ts.map +1 -0
  61. package/dist/data/postgres-database.js +88 -0
  62. package/dist/data/postgres-database.js.map +1 -0
  63. package/dist/data/postgres.d.ts +4 -0
  64. package/dist/data/postgres.d.ts.map +1 -0
  65. package/dist/data/postgres.js +106 -0
  66. package/dist/data/postgres.js.map +1 -0
  67. package/dist/data/valkey-namespace.d.ts +4 -0
  68. package/dist/data/valkey-namespace.d.ts.map +1 -0
  69. package/dist/data/valkey-namespace.js +78 -0
  70. package/dist/data/valkey-namespace.js.map +1 -0
  71. package/dist/data/valkey.d.ts +4 -0
  72. package/dist/data/valkey.d.ts.map +1 -0
  73. package/dist/data/valkey.js +105 -0
  74. package/dist/data/valkey.js.map +1 -0
  75. package/dist/forgejo/ci.d.ts +4 -0
  76. package/dist/forgejo/ci.d.ts.map +1 -0
  77. package/dist/forgejo/ci.js +138 -0
  78. package/dist/forgejo/ci.js.map +1 -0
  79. package/dist/forgejo/forgejo-api.d.ts +209 -0
  80. package/dist/forgejo/forgejo-api.d.ts.map +1 -0
  81. package/dist/forgejo/forgejo-api.fake.d.ts +3 -0
  82. package/dist/forgejo/forgejo-api.fake.d.ts.map +1 -0
  83. package/dist/forgejo/forgejo-api.fake.js +31 -0
  84. package/dist/forgejo/forgejo-api.fake.js.map +1 -0
  85. package/dist/forgejo/forgejo-api.js +181 -0
  86. package/dist/forgejo/forgejo-api.js.map +1 -0
  87. package/dist/forgejo/forgejo-notify.d.ts +4 -0
  88. package/dist/forgejo/forgejo-notify.d.ts.map +1 -0
  89. package/dist/forgejo/forgejo-notify.js +103 -0
  90. package/dist/forgejo/forgejo-notify.js.map +1 -0
  91. package/dist/forgejo/forgejo-org.d.ts +4 -0
  92. package/dist/forgejo/forgejo-org.d.ts.map +1 -0
  93. package/dist/forgejo/forgejo-org.js +43 -0
  94. package/dist/forgejo/forgejo-org.js.map +1 -0
  95. package/dist/forgejo/forgejo-runner.d.ts +4 -0
  96. package/dist/forgejo/forgejo-runner.d.ts.map +1 -0
  97. package/dist/forgejo/forgejo-runner.js +111 -0
  98. package/dist/forgejo/forgejo-runner.js.map +1 -0
  99. package/dist/forgejo/forgejo-team.d.ts +4 -0
  100. package/dist/forgejo/forgejo-team.d.ts.map +1 -0
  101. package/dist/forgejo/forgejo-team.js +68 -0
  102. package/dist/forgejo/forgejo-team.js.map +1 -0
  103. package/dist/forgejo/forgejo-user.d.ts +4 -0
  104. package/dist/forgejo/forgejo-user.d.ts.map +1 -0
  105. package/dist/forgejo/forgejo-user.js +50 -0
  106. package/dist/forgejo/forgejo-user.js.map +1 -0
  107. package/dist/forgejo/forgejo.d.ts +4 -0
  108. package/dist/forgejo/forgejo.d.ts.map +1 -0
  109. package/dist/forgejo/forgejo.js +169 -0
  110. package/dist/forgejo/forgejo.js.map +1 -0
  111. package/dist/forgejo/repo.d.ts +4 -0
  112. package/dist/forgejo/repo.d.ts.map +1 -0
  113. package/dist/forgejo/repo.js +80 -0
  114. package/dist/forgejo/repo.js.map +1 -0
  115. package/dist/github/gh-ci.d.ts +4 -0
  116. package/dist/github/gh-ci.d.ts.map +1 -0
  117. package/dist/github/gh-ci.js +140 -0
  118. package/dist/github/gh-ci.js.map +1 -0
  119. package/dist/github/gh-deployment.d.ts +4 -0
  120. package/dist/github/gh-deployment.d.ts.map +1 -0
  121. package/dist/github/gh-deployment.js +92 -0
  122. package/dist/github/gh-deployment.js.map +1 -0
  123. package/dist/github/gh-repo.d.ts +4 -0
  124. package/dist/github/gh-repo.d.ts.map +1 -0
  125. package/dist/github/gh-repo.js +52 -0
  126. package/dist/github/gh-repo.js.map +1 -0
  127. package/dist/github/github-api.d.ts +70 -0
  128. package/dist/github/github-api.d.ts.map +1 -0
  129. package/dist/github/github-api.js +120 -0
  130. package/dist/github/github-api.js.map +1 -0
  131. package/dist/github/github.d.ts +4 -0
  132. package/dist/github/github.d.ts.map +1 -0
  133. package/dist/github/github.js +34 -0
  134. package/dist/github/github.js.map +1 -0
  135. package/dist/gitlab/gitlab-api.d.ts +77 -0
  136. package/dist/gitlab/gitlab-api.d.ts.map +1 -0
  137. package/dist/gitlab/gitlab-api.js +124 -0
  138. package/dist/gitlab/gitlab-api.js.map +1 -0
  139. package/dist/gitlab/gitlab.d.ts +4 -0
  140. package/dist/gitlab/gitlab.d.ts.map +1 -0
  141. package/dist/gitlab/gitlab.js +34 -0
  142. package/dist/gitlab/gitlab.js.map +1 -0
  143. package/dist/gitlab/gl-ci.d.ts +4 -0
  144. package/dist/gitlab/gl-ci.d.ts.map +1 -0
  145. package/dist/gitlab/gl-ci.js +130 -0
  146. package/dist/gitlab/gl-ci.js.map +1 -0
  147. package/dist/gitlab/gl-deployment.d.ts +4 -0
  148. package/dist/gitlab/gl-deployment.d.ts.map +1 -0
  149. package/dist/gitlab/gl-deployment.js +93 -0
  150. package/dist/gitlab/gl-deployment.js.map +1 -0
  151. package/dist/gitlab/gl-repo.d.ts +4 -0
  152. package/dist/gitlab/gl-repo.d.ts.map +1 -0
  153. package/dist/gitlab/gl-repo.js +61 -0
  154. package/dist/gitlab/gl-repo.js.map +1 -0
  155. package/dist/host/host.d.ts +4 -0
  156. package/dist/host/host.d.ts.map +1 -0
  157. package/dist/host/host.js +48 -0
  158. package/dist/host/host.js.map +1 -0
  159. package/dist/host/workspace.d.ts +4 -0
  160. package/dist/host/workspace.d.ts.map +1 -0
  161. package/dist/host/workspace.js +152 -0
  162. package/dist/host/workspace.js.map +1 -0
  163. package/dist/index.d.ts +51 -0
  164. package/dist/index.d.ts.map +1 -0
  165. package/dist/index.js +43 -0
  166. package/dist/index.js.map +1 -0
  167. package/dist/integrations/discord-api.d.ts +31 -0
  168. package/dist/integrations/discord-api.d.ts.map +1 -0
  169. package/dist/integrations/discord-api.js +85 -0
  170. package/dist/integrations/discord-api.js.map +1 -0
  171. package/dist/integrations/discord.d.ts +4 -0
  172. package/dist/integrations/discord.d.ts.map +1 -0
  173. package/dist/integrations/discord.js +133 -0
  174. package/dist/integrations/discord.js.map +1 -0
  175. package/dist/integrations/stripe-api.d.ts +8 -0
  176. package/dist/integrations/stripe-api.d.ts.map +1 -0
  177. package/dist/integrations/stripe-api.js +16 -0
  178. package/dist/integrations/stripe-api.js.map +1 -0
  179. package/dist/integrations/stripe.d.ts +4 -0
  180. package/dist/integrations/stripe.d.ts.map +1 -0
  181. package/dist/integrations/stripe.js +28 -0
  182. package/dist/integrations/stripe.js.map +1 -0
  183. package/dist/komodo/deployment.d.ts +4 -0
  184. package/dist/komodo/deployment.d.ts.map +1 -0
  185. package/dist/komodo/deployment.js +103 -0
  186. package/dist/komodo/deployment.js.map +1 -0
  187. package/dist/komodo/komodo-api.d.ts +150 -0
  188. package/dist/komodo/komodo-api.d.ts.map +1 -0
  189. package/dist/komodo/komodo-api.js +104 -0
  190. package/dist/komodo/komodo-api.js.map +1 -0
  191. package/dist/komodo/komodo-notify.d.ts +4 -0
  192. package/dist/komodo/komodo-notify.d.ts.map +1 -0
  193. package/dist/komodo/komodo-notify.js +88 -0
  194. package/dist/komodo/komodo-notify.js.map +1 -0
  195. package/dist/komodo/komodo-periphery.d.ts +4 -0
  196. package/dist/komodo/komodo-periphery.d.ts.map +1 -0
  197. package/dist/komodo/komodo-periphery.js +92 -0
  198. package/dist/komodo/komodo-periphery.js.map +1 -0
  199. package/dist/komodo/komodo-server.d.ts +4 -0
  200. package/dist/komodo/komodo-server.d.ts.map +1 -0
  201. package/dist/komodo/komodo-server.js +54 -0
  202. package/dist/komodo/komodo-server.js.map +1 -0
  203. package/dist/komodo/komodo-user.d.ts +4 -0
  204. package/dist/komodo/komodo-user.d.ts.map +1 -0
  205. package/dist/komodo/komodo-user.js +66 -0
  206. package/dist/komodo/komodo-user.js.map +1 -0
  207. package/dist/komodo/komodo.d.ts +4 -0
  208. package/dist/komodo/komodo.d.ts.map +1 -0
  209. package/dist/komodo/komodo.js +222 -0
  210. package/dist/komodo/komodo.js.map +1 -0
  211. package/dist/network/cf-route.d.ts +5 -0
  212. package/dist/network/cf-route.d.ts.map +1 -0
  213. package/dist/network/cf-route.js +74 -0
  214. package/dist/network/cf-route.js.map +1 -0
  215. package/dist/network/cloudflare-api.d.ts +85 -0
  216. package/dist/network/cloudflare-api.d.ts.map +1 -0
  217. package/dist/network/cloudflare-api.js +110 -0
  218. package/dist/network/cloudflare-api.js.map +1 -0
  219. package/dist/network/cloudflare.d.ts +4 -0
  220. package/dist/network/cloudflare.d.ts.map +1 -0
  221. package/dist/network/cloudflare.js +29 -0
  222. package/dist/network/cloudflare.js.map +1 -0
  223. package/dist/network/tunnel.d.ts +5 -0
  224. package/dist/network/tunnel.d.ts.map +1 -0
  225. package/dist/network/tunnel.js +127 -0
  226. package/dist/network/tunnel.js.map +1 -0
  227. package/dist/observability/signoz.d.ts +4 -0
  228. package/dist/observability/signoz.d.ts.map +1 -0
  229. package/dist/observability/signoz.js +391 -0
  230. package/dist/observability/signoz.js.map +1 -0
  231. package/dist/providers.d.ts +25 -0
  232. package/dist/providers.d.ts.map +1 -0
  233. package/dist/providers.js +110 -0
  234. package/dist/providers.js.map +1 -0
  235. package/dist/services/compose-service.d.ts +34 -0
  236. package/dist/services/compose-service.d.ts.map +1 -0
  237. package/dist/services/compose-service.js +150 -0
  238. package/dist/services/compose-service.js.map +1 -0
  239. package/dist/services/infisical.d.ts +4 -0
  240. package/dist/services/infisical.d.ts.map +1 -0
  241. package/dist/services/infisical.js +72 -0
  242. package/dist/services/infisical.js.map +1 -0
  243. package/dist/services/invoiceninja.d.ts +4 -0
  244. package/dist/services/invoiceninja.d.ts.map +1 -0
  245. package/dist/services/invoiceninja.js +116 -0
  246. package/dist/services/invoiceninja.js.map +1 -0
  247. package/dist/services/openproject.d.ts +4 -0
  248. package/dist/services/openproject.d.ts.map +1 -0
  249. package/dist/services/openproject.js +45 -0
  250. package/dist/services/openproject.js.map +1 -0
  251. package/dist/services/outline.d.ts +4 -0
  252. package/dist/services/outline.d.ts.map +1 -0
  253. package/dist/services/outline.js +121 -0
  254. package/dist/services/outline.js.map +1 -0
  255. package/dist/services/paperless.d.ts +4 -0
  256. package/dist/services/paperless.d.ts.map +1 -0
  257. package/dist/services/paperless.js +48 -0
  258. package/dist/services/paperless.js.map +1 -0
  259. package/package.json +54 -0
@@ -0,0 +1,121 @@
1
+ import bcrypt from "bcryptjs";
2
+ import { z } from "zod";
3
+ import { sshExecutor } from "../core/ssh.js";
4
+ import { createComposeServiceProvider, SERVICE_LOGGING, serviceSchema } from "./compose-service.js";
5
+ const outlineSchema = serviceSchema.extend({
6
+ authDomain: z.string(),
7
+ adminUser: z.string(),
8
+ adminPassword: z.string(),
9
+ outlineImage: z.string(),
10
+ postgresImage: z.string(),
11
+ valkeyImage: z.string(),
12
+ dexImage: z.string(),
13
+ });
14
+ const PORT = 3210;
15
+ const DEX_PORT = 5556;
16
+ const composeYaml = (parsed) => [
17
+ "services:",
18
+ " postgres:",
19
+ ` image: ${parsed.postgresImage}`,
20
+ " restart: unless-stopped",
21
+ SERVICE_LOGGING,
22
+ " environment:",
23
+ " - POSTGRES_USER=outline",
24
+ " - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}",
25
+ " - POSTGRES_DB=outline",
26
+ " volumes: [ pgdata:/var/lib/postgresql ]",
27
+ " healthcheck:",
28
+ ' test: [ CMD-SHELL, "pg_isready -U outline" ]',
29
+ " interval: 10s",
30
+ " timeout: 5s",
31
+ " retries: 6",
32
+ " redis:",
33
+ ` image: ${parsed.valkeyImage}`,
34
+ " restart: unless-stopped",
35
+ SERVICE_LOGGING,
36
+ " dex:",
37
+ ` image: ${parsed.dexImage}`,
38
+ " restart: unless-stopped",
39
+ SERVICE_LOGGING,
40
+ ` ports: [ "${DEX_PORT}:5556" ]`,
41
+ " environment:",
42
+ " - OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET}",
43
+ " - DEX_ADMIN_PASSWORD_HASH=${DEX_ADMIN_PASSWORD_HASH}",
44
+ " volumes:",
45
+ " - ./dex-config.yaml:/etc/dex/config.docker.yaml:ro",
46
+ " - dexdata:/var/dex",
47
+ " outline:",
48
+ ` image: ${parsed.outlineImage}`,
49
+ " restart: unless-stopped",
50
+ SERVICE_LOGGING,
51
+ " depends_on:",
52
+ " postgres: { condition: service_healthy }",
53
+ " redis: { condition: service_started }",
54
+ " dex: { condition: service_started }",
55
+ ` ports: [ "${PORT}:3000" ]`,
56
+ " environment:",
57
+ ` - URL=https://${parsed.domain}`,
58
+ " - PORT=3000",
59
+ " - SECRET_KEY=${SECRET_KEY}",
60
+ " - UTILS_SECRET=${UTILS_SECRET}",
61
+ " - DATABASE_URL=postgres://outline:${POSTGRES_PASSWORD}@postgres:5432/outline",
62
+ " - PGSSLMODE=disable",
63
+ " - REDIS_URL=redis://redis:6379",
64
+ " - FILE_STORAGE=local",
65
+ " - FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data",
66
+ " - FORCE_HTTPS=false",
67
+ " - OIDC_CLIENT_ID=outline",
68
+ " - OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET}",
69
+ ` - OIDC_AUTH_URI=https://${parsed.authDomain}/auth`,
70
+ ` - OIDC_TOKEN_URI=https://${parsed.authDomain}/token`,
71
+ ` - OIDC_USERINFO_URI=https://${parsed.authDomain}/userinfo`,
72
+ " - OIDC_USERNAME_CLAIM=email",
73
+ " - OIDC_DISPLAY_NAME=intentic",
74
+ " volumes: [ outlinedata:/var/lib/outline/data ]",
75
+ ` labels: [ "intentic.id=intentic-outline" ]`,
76
+ "volumes: { pgdata: {}, dexdata: {}, outlinedata: {} }",
77
+ "",
78
+ ].join("\n");
79
+ const dexConfigYaml = (parsed) => [
80
+ `issuer: https://${parsed.authDomain}`,
81
+ "storage:",
82
+ " type: sqlite3",
83
+ " config: { file: /var/dex/dex.db }",
84
+ "web:",
85
+ " http: 0.0.0.0:5556",
86
+ "oauth2:",
87
+ " skipApprovalScreen: true",
88
+ "staticClients:",
89
+ " - id: outline",
90
+ " name: Outline",
91
+ ` redirectURIs: [ "https://${parsed.domain}/auth/oidc.callback" ]`,
92
+ " secretEnv: OIDC_CLIENT_SECRET",
93
+ "enablePasswordDB: true",
94
+ "staticPasswords:",
95
+ ` - email: ${parsed.adminUser}`,
96
+ " hashFromEnv: DEX_ADMIN_PASSWORD_HASH",
97
+ " username: intentic",
98
+ " userID: intentic-admin",
99
+ "",
100
+ ].join("\n");
101
+ export const createOutlineProvider = (executor = sshExecutor) => createComposeServiceProvider({
102
+ kind: "outline",
103
+ schema: outlineSchema,
104
+ port: PORT,
105
+ healthPath: "/_health",
106
+ files: (parsed) => ({ "compose.yaml": composeYaml(parsed), "dex-config.yaml": dexConfigYaml(parsed) }),
107
+ env: (parsed) => [
108
+ { key: "SECRET_KEY" },
109
+ { key: "UTILS_SECRET" },
110
+ { key: "POSTGRES_PASSWORD" },
111
+ { key: "OIDC_CLIENT_SECRET" },
112
+ { key: "DEX_ADMIN_PASSWORD_HASH", value: bcrypt.hashSync(parsed.adminPassword, 10) },
113
+ ],
114
+ images: (parsed) => ({
115
+ postgres: parsed.postgresImage,
116
+ redis: parsed.valkeyImage,
117
+ dex: parsed.dexImage,
118
+ outline: parsed.outlineImage,
119
+ }),
120
+ }, executor);
121
+ //# sourceMappingURL=outline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/services/outline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Provider } from "@intentic/engine";
2
+ import type { SshExecutor } from "../core/ssh.js";
3
+ export declare const createPaperlessProvider: (executor?: SshExecutor) => Provider;
4
+ //# sourceMappingURL=paperless.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paperless.d.ts","sourceRoot":"","sources":["../../src/services/paperless.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAmDlD,eAAO,MAAM,uBAAuB,GAAI,WAAU,WAAyB,KAAG,QAYzE,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { z } from "zod";
2
+ import { sshExecutor } from "../core/ssh.js";
3
+ import { createComposeServiceProvider, SERVICE_LOGGING, serviceSchema } from "./compose-service.js";
4
+ const paperlessSchema = serviceSchema.extend({
5
+ adminUser: z.string(),
6
+ adminPassword: z.string(),
7
+ paperlessImage: z.string(),
8
+ valkeyImage: z.string(),
9
+ });
10
+ const PORT = 8000;
11
+ const composeYaml = (parsed) => [
12
+ "services:",
13
+ " broker:",
14
+ ` image: ${parsed.valkeyImage}`,
15
+ " restart: unless-stopped",
16
+ SERVICE_LOGGING,
17
+ " volumes: [ brokerdata:/data ]",
18
+ " paperless:",
19
+ ` image: ${parsed.paperlessImage}`,
20
+ " restart: unless-stopped",
21
+ SERVICE_LOGGING,
22
+ " depends_on: [ broker ]",
23
+ ` ports: [ "${PORT}:8000" ]`,
24
+ " env_file: ./.env",
25
+ " environment:",
26
+ " - PAPERLESS_REDIS=redis://broker:6379",
27
+ ` - PAPERLESS_URL=https://${parsed.domain}`,
28
+ ` - PAPERLESS_ADMIN_USER=${parsed.adminUser}`,
29
+ ` - PAPERLESS_ADMIN_MAIL=${parsed.adminUser}`,
30
+ " volumes:",
31
+ " - data:/usr/src/paperless/data",
32
+ " - media:/usr/src/paperless/media",
33
+ " - export:/usr/src/paperless/export",
34
+ " - consume:/usr/src/paperless/consume",
35
+ ` labels: [ "intentic.id=intentic-paperless" ]`,
36
+ "volumes: { brokerdata: {}, data: {}, media: {}, export: {}, consume: {} }",
37
+ "",
38
+ ].join("\n");
39
+ export const createPaperlessProvider = (executor = sshExecutor) => createComposeServiceProvider({
40
+ kind: "paperless",
41
+ schema: paperlessSchema,
42
+ port: PORT,
43
+ healthPath: "",
44
+ files: (parsed) => ({ "compose.yaml": composeYaml(parsed) }),
45
+ env: (parsed) => [{ key: "PAPERLESS_SECRET_KEY" }, { key: "PAPERLESS_ADMIN_PASSWORD", value: parsed.adminPassword }],
46
+ images: (parsed) => ({ broker: parsed.valkeyImage, paperless: parsed.paperlessImage }),
47
+ }, executor);
48
+ //# sourceMappingURL=paperless.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paperless.js","sourceRoot":"","sources":["../../src/services/paperless.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEpG,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC;IAGzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAGH,MAAM,IAAI,GAAG,IAAI,CAAC;AAIlB,MAAM,WAAW,GAAG,CAAC,MAAuB,EAAU,EAAE,CACpD;IACI,WAAW;IACX,WAAW;IACX,cAAc,MAAM,CAAC,WAAW,EAAE;IAClC,6BAA6B;IAC7B,eAAe;IACf,mCAAmC;IACnC,cAAc;IACd,cAAc,MAAM,CAAC,cAAc,EAAE;IACrC,6BAA6B;IAC7B,eAAe;IACf,4BAA4B;IAC5B,iBAAiB,IAAI,UAAU;IAE/B,sBAAsB;IACtB,kBAAkB;IAClB,6CAA6C;IAC7C,iCAAiC,MAAM,CAAC,MAAM,EAAE;IAChD,gCAAgC,MAAM,CAAC,SAAS,EAAE;IAClD,gCAAgC,MAAM,CAAC,SAAS,EAAE;IAClD,cAAc;IACd,sCAAsC;IACtC,wCAAwC;IACxC,0CAA0C;IAC1C,4CAA4C;IAC5C,kDAAkD;IAClD,2EAA2E;IAC3E,EAAE;CACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAIjB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,WAAwB,WAAW,EAAY,EAAE,CACrF,4BAA4B,CACxB;IACI,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,eAAe;IACvB,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,EAAE;IACd,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5D,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;IACpH,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;CACzF,EACD,QAAQ,CACX,CAAC"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@intentic/providers",
3
+ "version": "1.0.2",
4
+ "description": "",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://gitlab.com/radarsu/intentic.git",
10
+ "directory": "_libs/providers"
11
+ },
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "publishConfig": {
16
+ "access": "public",
17
+ "registry": "https://registry.npmjs.org/"
18
+ },
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "import": {
23
+ "@intentic/src": "./src/index.ts",
24
+ "default": "./dist/index.js"
25
+ },
26
+ "require": {
27
+ "@intentic/src": "./src/index.ts",
28
+ "default": "./dist/index.js"
29
+ }
30
+ }
31
+ },
32
+ "dependencies": {
33
+ "bcryptjs": "^3.0.2",
34
+ "ssh2": "1.17.0",
35
+ "tslib": "2.8.1",
36
+ "zod": "4.4.3",
37
+ "@intentic/engine": "1.0.2",
38
+ "@intentic/graph": "1.0.2"
39
+ },
40
+ "devDependencies": {
41
+ "@types/node": "24.13.2",
42
+ "@types/ssh2": "1.15.5",
43
+ "typescript": "5.9.3",
44
+ "vitest": "4.1.9",
45
+ "@intentic/sdk": "1.0.2",
46
+ "@intentic/tsconfig": "0.0.0"
47
+ },
48
+ "scripts": {
49
+ "build": "tsc",
50
+ "watch": "tsc --build --watch",
51
+ "test": "vitest run",
52
+ "test:watch": "vitest"
53
+ }
54
+ }