@ninedeploy/sdk 0.10.6 → 0.16.1

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 (129) hide show
  1. package/LICENSE +21 -21
  2. package/dist/apiPath.d.ts +5 -0
  3. package/dist/apiPath.d.ts.map +1 -0
  4. package/dist/apiPath.js +18 -0
  5. package/dist/apiPath.js.map +1 -0
  6. package/dist/client.d.ts +29 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +51 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/databaseImport.d.ts +138 -0
  11. package/dist/databaseImport.d.ts.map +1 -0
  12. package/dist/databaseImport.js +126 -0
  13. package/dist/databaseImport.js.map +1 -0
  14. package/dist/errors.js +1 -1
  15. package/dist/errors.js.map +1 -1
  16. package/dist/index.d.ts +15 -1973
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +9 -641
  19. package/dist/index.js.map +1 -1
  20. package/dist/manifest.d.ts.map +1 -1
  21. package/dist/manifest.js +25 -21
  22. package/dist/manifest.js.map +1 -1
  23. package/dist/resources/auth.d.ts +282 -0
  24. package/dist/resources/auth.d.ts.map +1 -0
  25. package/dist/resources/auth.js +111 -0
  26. package/dist/resources/auth.js.map +1 -0
  27. package/dist/resources/databases.d.ts +178 -0
  28. package/dist/resources/databases.d.ts.map +1 -0
  29. package/dist/resources/databases.js +82 -0
  30. package/dist/resources/databases.js.map +1 -0
  31. package/dist/resources/deploys.d.ts +125 -0
  32. package/dist/resources/deploys.d.ts.map +1 -0
  33. package/dist/resources/deploys.js +46 -0
  34. package/dist/resources/deploys.js.map +1 -0
  35. package/dist/resources/domains.d.ts +109 -0
  36. package/dist/resources/domains.d.ts.map +1 -0
  37. package/dist/resources/domains.js +29 -0
  38. package/dist/resources/domains.js.map +1 -0
  39. package/dist/resources/env.d.ts +55 -0
  40. package/dist/resources/env.d.ts.map +1 -0
  41. package/dist/resources/env.js +33 -0
  42. package/dist/resources/env.js.map +1 -0
  43. package/dist/resources/logs.d.ts +27 -0
  44. package/dist/resources/logs.d.ts.map +1 -0
  45. package/dist/resources/logs.js +18 -0
  46. package/dist/resources/logs.js.map +1 -0
  47. package/dist/resources/network.d.ts +169 -0
  48. package/dist/resources/network.d.ts.map +1 -0
  49. package/dist/resources/network.js +39 -0
  50. package/dist/resources/network.js.map +1 -0
  51. package/dist/resources/plugins.d.ts +42 -0
  52. package/dist/resources/plugins.d.ts.map +1 -0
  53. package/dist/resources/plugins.js +22 -0
  54. package/dist/resources/plugins.js.map +1 -0
  55. package/dist/resources/servers.d.ts +130 -0
  56. package/dist/resources/servers.d.ts.map +1 -0
  57. package/dist/resources/servers.js +37 -0
  58. package/dist/resources/servers.js.map +1 -0
  59. package/dist/resources/services.d.ts +240 -0
  60. package/dist/resources/services.d.ts.map +1 -0
  61. package/dist/resources/services.js +93 -0
  62. package/dist/resources/services.js.map +1 -0
  63. package/dist/resources/settings.d.ts +373 -0
  64. package/dist/resources/settings.d.ts.map +1 -0
  65. package/dist/resources/settings.js +94 -0
  66. package/dist/resources/settings.js.map +1 -0
  67. package/dist/resources/sources.d.ts +87 -0
  68. package/dist/resources/sources.d.ts.map +1 -0
  69. package/dist/resources/sources.js +39 -0
  70. package/dist/resources/sources.js.map +1 -0
  71. package/dist/resources/system.d.ts +240 -0
  72. package/dist/resources/system.d.ts.map +1 -0
  73. package/dist/resources/system.js +86 -0
  74. package/dist/resources/system.js.map +1 -0
  75. package/dist/resources/templates.d.ts +36 -0
  76. package/dist/resources/templates.d.ts.map +1 -0
  77. package/dist/resources/templates.js +17 -0
  78. package/dist/resources/templates.js.map +1 -0
  79. package/dist/resources/terminals.d.ts +60 -0
  80. package/dist/resources/terminals.d.ts.map +1 -0
  81. package/dist/resources/terminals.js +35 -0
  82. package/dist/resources/terminals.js.map +1 -0
  83. package/dist/resources/traefik.d.ts +93 -0
  84. package/dist/resources/traefik.d.ts.map +1 -0
  85. package/dist/resources/traefik.js +39 -0
  86. package/dist/resources/traefik.js.map +1 -0
  87. package/dist/resources/volumes.d.ts +114 -0
  88. package/dist/resources/volumes.d.ts.map +1 -0
  89. package/dist/resources/volumes.js +47 -0
  90. package/dist/resources/volumes.js.map +1 -0
  91. package/dist/terminal.d.ts +98 -0
  92. package/dist/terminal.d.ts.map +1 -0
  93. package/dist/terminal.js +180 -0
  94. package/dist/terminal.js.map +1 -0
  95. package/dist/transport.d.ts +61 -0
  96. package/dist/transport.d.ts.map +1 -0
  97. package/dist/transport.js +90 -0
  98. package/dist/transport.js.map +1 -0
  99. package/dist/types.d.ts +539 -0
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/types.js +5 -0
  102. package/dist/types.js.map +1 -0
  103. package/package.json +5 -4
  104. package/src/apiPath.ts +23 -0
  105. package/src/client.ts +70 -0
  106. package/src/databaseImport.ts +174 -0
  107. package/src/errors.ts +27 -0
  108. package/src/index.ts +121 -0
  109. package/src/manifest.ts +414 -0
  110. package/src/resources/auth.ts +357 -0
  111. package/src/resources/databases.ts +227 -0
  112. package/src/resources/deploys.ts +161 -0
  113. package/src/resources/domains.ts +149 -0
  114. package/src/resources/env.ts +84 -0
  115. package/src/resources/logs.ts +48 -0
  116. package/src/resources/network.ts +154 -0
  117. package/src/resources/plugins.ts +52 -0
  118. package/src/resources/servers.ts +141 -0
  119. package/src/resources/services.ts +296 -0
  120. package/src/resources/settings.ts +334 -0
  121. package/src/resources/sources.ts +131 -0
  122. package/src/resources/system.ts +281 -0
  123. package/src/resources/templates.ts +55 -0
  124. package/src/resources/terminals.ts +112 -0
  125. package/src/resources/traefik.ts +125 -0
  126. package/src/resources/volumes.ts +138 -0
  127. package/src/terminal.ts +254 -0
  128. package/src/transport.ts +154 -0
  129. package/src/types.ts +588 -0
@@ -0,0 +1,109 @@
1
+ import type { CreateDomainInput, Domain, DomainPatch, DomainEntry } from '@ninedeploy/schemas';
2
+ import type { CreatedDomain, DomainVerifyResult, StartDomainTransferResult, DomainTransferPreview, AcceptDomainTransferInput, AcceptDomainTransferResult } from '../types.js';
3
+ import type { Transport } from '../transport.js';
4
+ export interface DomainsApi {
5
+ domains: {
6
+ list: (serviceId: number) => Promise<Domain[]>;
7
+ /** Add a domain. A non-operator's hostname outside the instance zone comes back `pending` with a TXT `verification` challenge. */
8
+ create: (serviceId: number, input: CreateDomainInput) => Promise<CreatedDomain>;
9
+ /**
10
+ * r332: prove ownership of a `pending` domain and bring it live. Checks
11
+ * the TXT challenge `create` returned; idempotent (an `active` domain
12
+ * answers `verified: true`) and safe to poll while DNS propagates.
13
+ */
14
+ verify: (serviceId: number, domainId: number) => Promise<DomainVerifyResult>;
15
+ /**
16
+ * 0.16.1 "Generate domain": add the service's automatic URL (Settings →
17
+ * Automatic URLs: a base domain or a free sslip.io name) now, instead of
18
+ * on its next deploy. Idempotent: `created: false` when it already exists.
19
+ */
20
+ generate: (serviceId: number) => Promise<Domain & {
21
+ created: boolean;
22
+ }>;
23
+ remove: (serviceId: number, domainId: number) => Promise<void>;
24
+ /**
25
+ * DNS status for a domain: does the hostname resolve to the addresses
26
+ * this panel expects? Advisory — routing is governed by ownership.
27
+ */
28
+ dnsCheck: (serviceId: number, domainId: number) => Promise<{
29
+ hostname: string;
30
+ status: 'ok' | 'mismatch' | 'unresolved';
31
+ addresses: {
32
+ a: string[];
33
+ aaaa: string[];
34
+ };
35
+ expected: string[];
36
+ }>;
37
+ /** Update routing extras: ssl toggle, www→apex redirect, custom headers, basicAuth, ipAllowlist, rateLimit. */
38
+ update: (serviceId: number, domainId: number, input: DomainPatch) => Promise<Domain>;
39
+ all: () => Promise<DomainEntry[]>;
40
+ setSsl: (domainId: number, ssl: boolean) => Promise<{
41
+ id: number;
42
+ ssl: boolean;
43
+ }>;
44
+ /** Toggle sticky-session routing for the service (G-28). */
45
+ setStickySession: (serviceId: number, enabled: boolean) => Promise<{
46
+ id: number;
47
+ enabled: boolean;
48
+ active: boolean;
49
+ }>;
50
+ /**
51
+ * Start a domain transfer (G-29). The source user (admin
52
+ * on the source service) names the target email; the
53
+ * server returns a one-time `acceptUrl` to forward. The
54
+ * target user accepts via `acceptDomainTransfer(token,
55
+ * { targetServiceId })`. The transfer expires after 7
56
+ * days; cancelling is one call.
57
+ */
58
+ transfer: (domainId: number, input: {
59
+ targetEmail: string;
60
+ }) => Promise<StartDomainTransferResult>;
61
+ /**
62
+ * Preview a transfer by token. Does NOT require auth
63
+ * (the token is the secret) — the panel uses this to
64
+ * render the accept page to a logged-out visitor.
65
+ */
66
+ previewTransfer: (token: string) => Promise<DomainTransferPreview>;
67
+ /**
68
+ * Accept a transfer. The caller must be authenticated
69
+ * and the caller's email must equal the transfer's
70
+ * target email; the panel / CLI surfaces the preview
71
+ * first so the user knows what they're signing in to.
72
+ */
73
+ acceptTransfer: (token: string, input: AcceptDomainTransferInput) => Promise<AcceptDomainTransferResult>;
74
+ /**
75
+ * Cancel a pending transfer. Only the source user
76
+ * (or an instance operator) can cancel.
77
+ */
78
+ cancelTransfer: (token: string) => Promise<{
79
+ transferId: number;
80
+ status: 'cancelled';
81
+ }>;
82
+ };
83
+ domainPresets: {
84
+ /** Every `IDomainProvider` the running kernel has registered. */
85
+ list: () => Promise<{
86
+ providers: string[];
87
+ }>;
88
+ /**
89
+ * Manually create the DNS record for `hostname` via the operator's
90
+ * active provider. `content` is optional: when omitted the route
91
+ * falls back to the panel's `dns_records_content` setting, then to
92
+ * `detectPublicIp()`. Returns the upstream recordId so the caller
93
+ * can correlate.
94
+ */
95
+ apply: (input: {
96
+ hostname: string;
97
+ content?: string;
98
+ }) => Promise<{
99
+ hostname: string;
100
+ provider: string;
101
+ zone: string;
102
+ recordId: string;
103
+ type: 'A' | 'CNAME';
104
+ content: string;
105
+ }>;
106
+ };
107
+ }
108
+ export declare function domainsApi(t: Transport): DomainsApi;
109
+ //# sourceMappingURL=domains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/resources/domains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export function domainsApi(t) {
2
+ const { get, send, request } = t;
3
+ return {
4
+ domains: {
5
+ list: (serviceId) => get(`/v1/services/${serviceId}/domains`),
6
+ create: (serviceId, input) => send('POST', `/v1/services/${serviceId}/domains`, input),
7
+ verify: (serviceId, domainId) => send('POST', `/v1/services/${serviceId}/domains/${domainId}/verify`, {}),
8
+ generate: (serviceId) => send('POST', `/v1/services/${serviceId}/domains/auto`, {}),
9
+ dnsCheck: (serviceId, domainId) => get(`/v1/services/${serviceId}/domains/${domainId}/dns`),
10
+ update: (serviceId, domainId, input) => send('PATCH', `/v1/services/${serviceId}/domains/${domainId}`, input),
11
+ remove: async (serviceId, domainId) => {
12
+ await request(`/v1/services/${serviceId}/domains/${domainId}`, { method: 'DELETE' });
13
+ },
14
+ all: () => get('/v1/domains'),
15
+ setSsl: (domainId, ssl) => send('PATCH', `/v1/domains/${domainId}`, { ssl }),
16
+ /** Toggle sticky-session routing (G-28) — sits under `/domains` for legacy compatibility. */
17
+ setStickySession: (serviceId, enabled) => send('POST', `/v1/services/${serviceId}/sticky-session`, { enabled }),
18
+ transfer: (domainId, input) => send('POST', `/v1/domains/${domainId}/transfer`, input),
19
+ previewTransfer: (token) => get(`/v1/domain-transfers/${token}`),
20
+ acceptTransfer: (token, input) => send('POST', `/v1/domain-transfers/${token}/accept`, input),
21
+ cancelTransfer: (token) => send('POST', `/v1/domain-transfers/${token}/cancel`, {}),
22
+ },
23
+ domainPresets: {
24
+ list: () => get('/v1/domain-presets'),
25
+ apply: (input) => send('POST', '/v1/domain-presets/apply', input),
26
+ },
27
+ };
28
+ }
29
+ //# sourceMappingURL=domains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/resources/domains.ts"],"names":[],"mappings":"AAkGA,MAAM,UAAU,UAAU,CAAC,CAAY;IACrC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO;QACL,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAW,gBAAgB,SAAS,UAAU,CAAC;YACvE,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAgB,MAAM,EAAE,gBAAgB,SAAS,UAAU,EAAE,KAAK,CAAC;YACrG,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAC9B,IAAI,CAAqB,MAAM,EAAE,gBAAgB,SAAS,YAAY,QAAQ,SAAS,EAAE,EAAE,CAAC;YAC9F,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAgC,MAAM,EAAE,gBAAgB,SAAS,eAAe,EAAE,EAAE,CAAC;YAClH,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAChC,GAAG,CAKA,gBAAgB,SAAS,YAAY,QAAQ,MAAM,CAAC;YACzD,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CACrC,IAAI,CAAS,OAAO,EAAE,gBAAgB,SAAS,YAAY,QAAQ,EAAE,EAAE,KAAK,CAAC;YAC/E,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;gBACpC,MAAM,OAAO,CAAC,gBAAgB,SAAS,YAAY,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvF,CAAC;YACD,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAgB,aAAa,CAAC;YAC5C,MAAM,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAA+B,OAAO,EAAE,eAAe,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;YAC1G,6FAA6F;YAC7F,gBAAgB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CACvC,IAAI,CACF,MAAM,EACN,gBAAgB,SAAS,iBAAiB,EAC1C,EAAE,OAAO,EAAE,CACZ;YACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAC5B,IAAI,CAA4B,MAAM,EAAE,eAAe,QAAQ,WAAW,EAAE,KAAK,CAAC;YACpF,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAwB,wBAAwB,KAAK,EAAE,CAAC;YACvF,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC/B,IAAI,CAA6B,MAAM,EAAE,wBAAwB,KAAK,SAAS,EAAE,KAAK,CAAC;YACzF,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CACxB,IAAI,CAA8C,MAAM,EAAE,wBAAwB,KAAK,SAAS,EAAE,EAAE,CAAC;SACxG;QACD,aAAa,EAAE;YACb,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAA0B,oBAAoB,CAAC;YAC9D,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAOnB,MAAM,EAAE,0BAA0B,EAAE,KAAK,CAAC;SAC9C;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { EnvVar, UpsertEnvVarInput } from '@ninedeploy/schemas';
2
+ import type { Transport } from '../transport.js';
3
+ export interface EnvApi {
4
+ env: {
5
+ list: (serviceId: number) => Promise<EnvVar[]>;
6
+ create: (serviceId: number, input: UpsertEnvVarInput) => Promise<EnvVar>;
7
+ update: (serviceId: number, varId: number, input: UpsertEnvVarInput) => Promise<EnvVar>;
8
+ remove: (serviceId: number, varId: number) => Promise<void>;
9
+ /** Bulk import from a .env-formatted string. Returns imported/skipped counts. */
10
+ import: (serviceId: number, content: string) => Promise<{
11
+ imported: number;
12
+ skipped: number;
13
+ errors: Array<{
14
+ line: number;
15
+ message: string;
16
+ }>;
17
+ }>;
18
+ /** Export non-secret env vars as a .env-formatted string (admin floor). */
19
+ export: (serviceId: number) => Promise<{
20
+ content: string;
21
+ count: number;
22
+ }>;
23
+ /** Cross-scope key search: where a given env key is defined. */
24
+ search: (q: string) => Promise<{
25
+ results: Array<{
26
+ key: string;
27
+ isSecret: boolean;
28
+ scope: string;
29
+ serviceId: number | null;
30
+ serviceName: string | null;
31
+ }>;
32
+ }>;
33
+ };
34
+ projectEnv: {
35
+ /** Shared env vars applied to every service in a project (service env wins). */
36
+ list: (projectId: number) => Promise<EnvVar[]>;
37
+ create: (projectId: number, input: UpsertEnvVarInput) => Promise<EnvVar>;
38
+ update: (projectId: number, varId: number, input: UpsertEnvVarInput) => Promise<EnvVar>;
39
+ remove: (projectId: number, varId: number) => Promise<void>;
40
+ };
41
+ /**
42
+ * 0.12 preview-only env: values a service hands ONLY to its PR previews
43
+ * (they override the parent's non-secret values there; production never
44
+ * sees them). Same floors as `env`: viewer reads, member writes. A panel
45
+ * older than 0.12 answers 404.
46
+ */
47
+ previewEnv: {
48
+ list: (serviceId: number) => Promise<EnvVar[]>;
49
+ create: (serviceId: number, input: UpsertEnvVarInput) => Promise<EnvVar>;
50
+ update: (serviceId: number, varId: number, input: UpsertEnvVarInput) => Promise<EnvVar>;
51
+ remove: (serviceId: number, varId: number) => Promise<void>;
52
+ };
53
+ }
54
+ export declare function envApi(t: Transport): EnvApi;
55
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/resources/env.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,MAAM,EACN,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE;QACH,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACzE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACxF,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,iFAAiF;QACjF,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAC;QACjJ,2EAA2E;QAC3E,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3E,gEAAgE;QAChE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,OAAO,EAAE,KAAK,CAAC;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,OAAO,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;gBAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAC;KAC7J,CAAC;IACF,UAAU,EAAE;QACV,gFAAgF;QAChF,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACzE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACxF,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D,CAAC;IACF;;;;;OAKG;IACH,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACzE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACxF,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D,CAAC;CACH;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAwC3C"}
@@ -0,0 +1,33 @@
1
+ export function envApi(t) {
2
+ const { get, send, request } = t;
3
+ return {
4
+ env: {
5
+ list: (serviceId) => get(`/v1/services/${serviceId}/env`),
6
+ create: (serviceId, input) => send('POST', `/v1/services/${serviceId}/env`, input),
7
+ update: (serviceId, varId, input) => send('PATCH', `/v1/services/${serviceId}/env/${varId}`, input),
8
+ remove: async (serviceId, varId) => {
9
+ await request(`/v1/services/${serviceId}/env/${varId}`, { method: 'DELETE' });
10
+ },
11
+ import: (serviceId, content) => send('POST', `/v1/services/${serviceId}/env/import`, { content }),
12
+ export: (serviceId) => get(`/v1/services/${serviceId}/env/export`),
13
+ search: (q) => get(`/v1/env/search?q=${encodeURIComponent(q)}`),
14
+ },
15
+ projectEnv: {
16
+ list: (projectId) => get(`/v1/projects/${projectId}/env`),
17
+ create: (projectId, input) => send('POST', `/v1/projects/${projectId}/env`, input),
18
+ update: (projectId, varId, input) => send('PATCH', `/v1/projects/${projectId}/env/${varId}`, input),
19
+ remove: async (projectId, varId) => {
20
+ await request(`/v1/projects/${projectId}/env/${varId}`, { method: 'DELETE' });
21
+ },
22
+ },
23
+ previewEnv: {
24
+ list: (serviceId) => get(`/v1/services/${serviceId}/env/preview`),
25
+ create: (serviceId, input) => send('POST', `/v1/services/${serviceId}/env/preview`, input),
26
+ update: (serviceId, varId, input) => send('PATCH', `/v1/services/${serviceId}/env/preview/${varId}`, input),
27
+ remove: async (serviceId, varId) => {
28
+ await request(`/v1/services/${serviceId}/env/preview/${varId}`, { method: 'DELETE' });
29
+ },
30
+ },
31
+ };
32
+ }
33
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/resources/env.ts"],"names":[],"mappings":"AA2CA,MAAM,UAAU,MAAM,CAAC,CAAY;IACjC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO;QACL,GAAG,EAAE;YACH,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAW,gBAAgB,SAAS,MAAM,CAAC;YACnE,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAS,MAAM,EAAE,gBAAgB,SAAS,MAAM,EAAE,KAAK,CAAC;YAC1F,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAS,OAAO,EAAE,gBAAgB,SAAS,QAAQ,KAAK,EAAE,EAAE,KAAK,CAAC;YAC3G,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;gBACjC,MAAM,OAAO,CAAC,gBAAgB,SAAS,QAAQ,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAC7B,IAAI,CACF,MAAM,EACN,gBAAgB,SAAS,aAAa,EACtC,EAAE,OAAO,EAAE,CACZ;YACH,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CACpB,GAAG,CAAqC,gBAAgB,SAAS,aAAa,CAAC;YACjF,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CACZ,GAAG,CACD,oBAAoB,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAC5C;SACJ;QACD,UAAU,EAAE;YACV,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAW,gBAAgB,SAAS,MAAM,CAAC;YACnE,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAS,MAAM,EAAE,gBAAgB,SAAS,MAAM,EAAE,KAAK,CAAC;YAC1F,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAS,OAAO,EAAE,gBAAgB,SAAS,QAAQ,KAAK,EAAE,EAAE,KAAK,CAAC;YAC3G,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;gBACjC,MAAM,OAAO,CAAC,gBAAgB,SAAS,QAAQ,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChF,CAAC;SACF;QACD,UAAU,EAAE;YACV,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAW,gBAAgB,SAAS,cAAc,CAAC;YAC3E,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAS,MAAM,EAAE,gBAAgB,SAAS,cAAc,EAAE,KAAK,CAAC;YAClG,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAS,OAAO,EAAE,gBAAgB,SAAS,gBAAgB,KAAK,EAAE,EAAE,KAAK,CAAC;YACnH,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;gBACjC,MAAM,OAAO,CAAC,gBAAgB,SAAS,gBAAgB,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxF,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { LogDrain, LogDrainCreateInput, LogDrainUpdateInput, LogDrainTestResult } from '@ninedeploy/schemas';
2
+ import type { LogSearchInput, LogSearchResult } from '../types.js';
3
+ import type { Transport } from '../transport.js';
4
+ export interface LogsApi {
5
+ logDrains: {
6
+ list: (query?: {
7
+ serviceId?: number;
8
+ }) => Promise<LogDrain[]>;
9
+ get: (id: number) => Promise<LogDrain>;
10
+ create: (input: LogDrainCreateInput) => Promise<LogDrain>;
11
+ update: (id: number, input: LogDrainUpdateInput) => Promise<LogDrain>;
12
+ remove: (id: number) => Promise<{
13
+ ok: boolean;
14
+ }>;
15
+ test: (id: number) => Promise<LogDrainTestResult>;
16
+ /**
17
+ * Search the configured Loki drain for `query` over
18
+ * the last `sinceMinutes` (default 15). The route
19
+ * round-trips to the drain's `url` so the upstream
20
+ * does the heavy lifting; this is the same shape
21
+ * the operator sees in the Loki Grafana panel.
22
+ */
23
+ search: (input: LogSearchInput) => Promise<LogSearchResult>;
24
+ };
25
+ }
26
+ export declare function logsApi(t: Transport): LogsApi;
27
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/resources/logs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE;QACT,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACjD,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAClD;;;;;;WAMG;QACH,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;KAC7D,CAAC;CACH;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAgB7C"}
@@ -0,0 +1,18 @@
1
+ export function logsApi(t) {
2
+ const { get, send } = t;
3
+ return {
4
+ logDrains: {
5
+ list: (query) => {
6
+ const qs = query?.serviceId !== undefined ? `?serviceId=${encodeURIComponent(String(query.serviceId))}` : '';
7
+ return get(`/v1/log-drains${qs}`);
8
+ },
9
+ get: (id) => get(`/v1/log-drains/${id}`),
10
+ create: (input) => send('POST', '/v1/log-drains', input),
11
+ update: (id, input) => send('PATCH', `/v1/log-drains/${id}`, input),
12
+ remove: (id) => send('DELETE', `/v1/log-drains/${id}`),
13
+ test: (id) => send('POST', `/v1/log-drains/${id}/test`),
14
+ search: (input) => send('POST', '/v1/log-drains/search', input),
15
+ },
16
+ };
17
+ }
18
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/resources/logs.ts"],"names":[],"mappings":"AA+BA,MAAM,UAAU,OAAO,CAAC,CAAY;IAClC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACxB,OAAO;QACL,SAAS,EAAE;YACT,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACd,MAAM,EAAE,GAAG,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7G,OAAO,GAAG,CAAa,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAW,kBAAkB,EAAE,EAAE,CAAC;YAClD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAW,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC;YAClE,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAW,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,KAAK,CAAC;YAC7E,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAkB,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC;YACvE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAqB,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC;YAC3E,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAkB,MAAM,EAAE,uBAAuB,EAAE,KAAK,CAAC;SACjF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,169 @@
1
+ import type { CreateTunnelInput, TunnelEntry } from '@ninedeploy/schemas';
2
+ import type { Transport } from '../transport.js';
3
+ /** 0.16.1: one address of the panel host, as `GET /v1/host-ips` lists it. */
4
+ export interface HostIpEntry {
5
+ ip: string;
6
+ family: 4 | 6;
7
+ /** Interface the host reports it on; null when not detected (an address saved earlier). */
8
+ iface: string | null;
9
+ detected: boolean;
10
+ label: string | null;
11
+ primary: boolean;
12
+ dedicatedTo: {
13
+ id: number;
14
+ name: string;
15
+ } | null;
16
+ }
17
+ export interface NetworkApi {
18
+ /** 0.16.1 IP inventory of the panel host (operator, except `primary`). */
19
+ hostIps: {
20
+ list: () => Promise<{
21
+ detected: boolean;
22
+ addresses: HostIpEntry[];
23
+ }>;
24
+ /** The primary address, for DNS hints (any signed-in user). */
25
+ primary: () => Promise<{
26
+ ip: string | null;
27
+ }>;
28
+ /** Label it, make it primary, or dedicate it to a docker service on the panel host (`serviceId: null` shares it again). */
29
+ set: (ip: string, patch: {
30
+ label?: string | null;
31
+ primary?: boolean;
32
+ serviceId?: number | null;
33
+ }) => Promise<HostIpEntry | null>;
34
+ /** Forget what was saved about an address. */
35
+ remove: (ip: string) => Promise<{
36
+ ok: boolean;
37
+ }>;
38
+ };
39
+ networks: {
40
+ list: () => Promise<{
41
+ networks: Array<{
42
+ name: string;
43
+ driver: string;
44
+ members: string[];
45
+ /** True when the network is reserved by NineDeploy (cannot be removed). */
46
+ isManaged?: boolean;
47
+ }>;
48
+ remote: number | null;
49
+ }>;
50
+ create: (input: {
51
+ name: string;
52
+ driver?: 'bridge' | 'overlay';
53
+ serverId?: number | null;
54
+ }) => Promise<{
55
+ ok: boolean;
56
+ name: string;
57
+ }>;
58
+ remove: (name: string, serverId?: number) => Promise<{
59
+ ok: boolean;
60
+ }>;
61
+ attach: (input: {
62
+ network: string;
63
+ container: string;
64
+ serverId?: number | null;
65
+ }) => Promise<{
66
+ ok: boolean;
67
+ }>;
68
+ detach: (input: {
69
+ network: string;
70
+ container: string;
71
+ serverId?: number | null;
72
+ }) => Promise<{
73
+ ok: boolean;
74
+ }>;
75
+ /**
76
+ * r557: container names attached to one network (operator-only). The
77
+ * server answers `{ members: [] }` when docker cannot inspect it.
78
+ */
79
+ members: (name: string) => Promise<{
80
+ members: string[];
81
+ }>;
82
+ };
83
+ tunnels: {
84
+ list: () => Promise<TunnelEntry[]>;
85
+ create: (input: CreateTunnelInput) => Promise<TunnelEntry>;
86
+ remove: (id: number) => Promise<void>;
87
+ };
88
+ firewall: {
89
+ status: () => Promise<{
90
+ installed: boolean;
91
+ active: boolean;
92
+ supported: boolean;
93
+ rules: Array<{
94
+ id: number;
95
+ to: string;
96
+ action: string;
97
+ from: string;
98
+ comment?: string;
99
+ }>;
100
+ defaultIncoming: string;
101
+ defaultOutgoing: string;
102
+ }>;
103
+ toggle: (enabled: boolean) => Promise<{
104
+ ok: boolean;
105
+ status: any;
106
+ }>;
107
+ addRule: (input: {
108
+ port: number | string;
109
+ proto?: 'tcp' | 'udp' | 'any';
110
+ action?: 'allow' | 'deny' | 'limit';
111
+ from?: string;
112
+ comment?: string;
113
+ }) => Promise<{
114
+ ok: boolean;
115
+ status: any;
116
+ }>;
117
+ deleteRule: (id: number | string) => Promise<{
118
+ ok: boolean;
119
+ status: any;
120
+ }>;
121
+ applyRecommended: () => Promise<{
122
+ ok: boolean;
123
+ status: any;
124
+ }>;
125
+ };
126
+ egress: {
127
+ /** Every egress IP rule across every registered driver. G-15. */
128
+ list: () => Promise<{
129
+ drivers: Array<{
130
+ name: string;
131
+ rules: Array<{
132
+ selector: {
133
+ projectId: number;
134
+ sourceCidr?: string;
135
+ };
136
+ ip: string;
137
+ createdAt: string;
138
+ }>;
139
+ }>;
140
+ }>;
141
+ /** Attach an egress IP to a project on the named (or first) driver. */
142
+ set: (input: {
143
+ projectId: number;
144
+ ip: string;
145
+ driver?: string;
146
+ }) => Promise<{
147
+ ok: boolean;
148
+ driver: string;
149
+ rule: {
150
+ selector: {
151
+ projectId: number;
152
+ sourceCidr?: string;
153
+ };
154
+ ip: string;
155
+ createdAt: string;
156
+ };
157
+ /** Present (with `ok: false`) when the route refused the request. */
158
+ error?: string;
159
+ }>;
160
+ /** Detach the rule for a project (on the named or first driver). */
161
+ clear: (projectId: number, driver?: string) => Promise<{
162
+ ok: boolean;
163
+ driver: string;
164
+ error?: string;
165
+ }>;
166
+ };
167
+ }
168
+ export declare function networkApi(t: Transport): NetworkApi;
169
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/resources/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export function networkApi(t) {
2
+ const { get, send, request } = t;
3
+ return {
4
+ hostIps: {
5
+ list: () => get('/v1/host-ips'),
6
+ primary: () => get('/v1/host-ips/primary'),
7
+ set: (ip, patch) => send('PUT', `/v1/host-ips/${encodeURIComponent(ip)}`, patch),
8
+ remove: (ip) => send('DELETE', `/v1/host-ips/${encodeURIComponent(ip)}`),
9
+ },
10
+ networks: {
11
+ list: () => get('/v1/networks'),
12
+ create: (input) => send('POST', '/v1/networks', { driver: 'bridge', ...input }),
13
+ remove: (name, serverId) => send('DELETE', `/v1/networks/${encodeURIComponent(name)}${serverId != null ? `?serverId=${serverId}` : ''}`),
14
+ attach: (input) => send('POST', '/v1/networks/attach', input),
15
+ detach: (input) => send('POST', '/v1/networks/detach', input),
16
+ members: (name) => get(`/v1/networks/${encodeURIComponent(name)}/members`),
17
+ },
18
+ tunnels: {
19
+ list: () => get('/v1/tunnels'),
20
+ create: (input) => send('POST', '/v1/tunnels', input),
21
+ remove: async (id) => {
22
+ await request(`/v1/tunnels/${id}`, { method: 'DELETE' });
23
+ },
24
+ },
25
+ firewall: {
26
+ status: () => get('/v1/firewall'),
27
+ toggle: (enabled) => send('POST', '/v1/firewall/toggle', { enabled }),
28
+ addRule: (input) => send('POST', '/v1/firewall/rules', input),
29
+ deleteRule: (id) => request(`/v1/firewall/rules/${id}`, { method: 'DELETE' }),
30
+ applyRecommended: () => send('POST', '/v1/firewall/recommended'),
31
+ },
32
+ egress: {
33
+ list: () => get('/v1/egress'),
34
+ set: (input) => send('POST', '/v1/egress', input),
35
+ clear: (projectId, driver) => send('DELETE', `/v1/egress/${projectId}${driver ? `?driver=${encodeURIComponent(driver)}` : ''}`),
36
+ },
37
+ };
38
+ }
39
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/resources/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { PluginListResponse, PluginInspectResponse, InstallPluginInput, MarketplaceCatalogResponse, MenuListResponse } from '@ninedeploy/schemas';
2
+ import type { Transport } from '../transport.js';
3
+ export interface PluginsApi {
4
+ plugins: {
5
+ list: () => Promise<PluginListResponse>;
6
+ marketplace: (opts?: {
7
+ refresh?: boolean;
8
+ }) => Promise<MarketplaceCatalogResponse>;
9
+ install: (input: InstallPluginInput) => Promise<{
10
+ ok: boolean;
11
+ id: string;
12
+ status: string;
13
+ }>;
14
+ enable: (id: string) => Promise<{
15
+ ok: boolean;
16
+ id: string;
17
+ status: string;
18
+ }>;
19
+ disable: (id: string) => Promise<{
20
+ ok: boolean;
21
+ id: string;
22
+ status: string;
23
+ }>;
24
+ reload: (id: string) => Promise<{
25
+ ok: boolean;
26
+ id: string;
27
+ status: string;
28
+ }>;
29
+ inspect: (id: string) => Promise<PluginInspectResponse>;
30
+ uninstall: (id: string) => Promise<{
31
+ ok: boolean;
32
+ id: string;
33
+ }>;
34
+ };
35
+ menus: {
36
+ list: (query?: {
37
+ slot?: string;
38
+ }) => Promise<MenuListResponse>;
39
+ };
40
+ }
41
+ export declare function pluginsApi(t: Transport): PluginsApi;
42
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/resources/plugins.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACxC,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACnF,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7F,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7E,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9E,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7E,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACxD,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjE,CAAC;IACF,KAAK,EAAE;QACL,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;KAChE,CAAC;CACH;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CAuBnD"}
@@ -0,0 +1,22 @@
1
+ export function pluginsApi(t) {
2
+ const { get, send } = t;
3
+ return {
4
+ plugins: {
5
+ list: () => get('/v1/plugins'),
6
+ marketplace: (opts) => get(`/v1/plugins/marketplace${opts?.refresh ? '?refresh=true' : ''}`),
7
+ install: (input) => send('POST', '/v1/plugins/install', input),
8
+ enable: (id) => send('POST', `/v1/plugins/${encodeURIComponent(id)}/enable`),
9
+ disable: (id) => send('POST', `/v1/plugins/${encodeURIComponent(id)}/disable`),
10
+ reload: (id) => send('POST', `/v1/plugins/${encodeURIComponent(id)}/reload`),
11
+ inspect: (id) => get(`/v1/plugins/${encodeURIComponent(id)}/inspect`),
12
+ uninstall: (id) => send('POST', `/v1/plugins/${encodeURIComponent(id)}/uninstall`),
13
+ },
14
+ menus: {
15
+ list: (query) => {
16
+ const qs = query?.slot ? `?slot=${encodeURIComponent(query.slot)}` : '';
17
+ return get(`/v1/menus${qs}`);
18
+ },
19
+ },
20
+ };
21
+ }
22
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/resources/plugins.ts"],"names":[],"mappings":"AA4BA,MAAM,UAAU,UAAU,CAAC,CAAY;IACrC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACxB,OAAO;QACL,OAAO,EAAE;YACP,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAqB,aAAa,CAAC;YAClD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CACpB,GAAG,CACD,0BAA0B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CACjE;YACH,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAA8C,MAAM,EAAE,qBAAqB,EAAE,KAAK,CAAC;YAC3G,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAA8C,MAAM,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,SAAS,CAAC;YACzH,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAA8C,MAAM,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC;YAC3H,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAA8C,MAAM,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,SAAS,CAAC;YACzH,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAwB,eAAe,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC;YAC5F,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAA8B,MAAM,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,YAAY,CAAC;SAChH;QACD,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACd,MAAM,EAAE,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,OAAO,GAAG,CAAmB,YAAY,EAAE,EAAE,CAAC,CAAC;YACjD,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}