@r8s/recipes 0.2.0 → 0.3.0

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 (69) hide show
  1. package/dist/app.d.ts +1 -1
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +4 -8
  4. package/dist/app.js.map +1 -1
  5. package/dist/auth.d.ts.map +1 -1
  6. package/dist/auth.js +54 -94
  7. package/dist/auth.js.map +1 -1
  8. package/dist/backup.d.ts +18 -2
  9. package/dist/backup.d.ts.map +1 -1
  10. package/dist/backup.js +54 -6
  11. package/dist/backup.js.map +1 -1
  12. package/dist/cert-provider.d.ts.map +1 -1
  13. package/dist/cert-provider.js +2 -5
  14. package/dist/cert-provider.js.map +1 -1
  15. package/dist/database.d.ts +55 -13
  16. package/dist/database.d.ts.map +1 -1
  17. package/dist/database.js +135 -58
  18. package/dist/database.js.map +1 -1
  19. package/dist/dns-provider.d.ts.map +1 -1
  20. package/dist/dns-provider.js +2 -5
  21. package/dist/dns-provider.js.map +1 -1
  22. package/dist/endpoint.d.ts +1 -1
  23. package/dist/endpoint.d.ts.map +1 -1
  24. package/dist/endpoint.js +31 -23
  25. package/dist/endpoint.js.map +1 -1
  26. package/dist/errors.d.ts +16 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +19 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/index.d.ts +5 -2
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +18 -5
  33. package/dist/index.js.map +1 -1
  34. package/dist/monitoring.d.ts.map +1 -1
  35. package/dist/monitoring.js +6 -13
  36. package/dist/monitoring.js.map +1 -1
  37. package/dist/platform.d.ts +3 -2
  38. package/dist/platform.d.ts.map +1 -1
  39. package/dist/platform.js +3 -2
  40. package/dist/platform.js.map +1 -1
  41. package/dist/r8s-cluster.d.ts +1 -1
  42. package/dist/r8s-cluster.d.ts.map +1 -1
  43. package/dist/r8s-cluster.js +25 -16
  44. package/dist/r8s-cluster.js.map +1 -1
  45. package/dist/s3-provider.d.ts +151 -0
  46. package/dist/s3-provider.d.ts.map +1 -0
  47. package/dist/s3-provider.js +126 -0
  48. package/dist/s3-provider.js.map +1 -0
  49. package/dist/secret-provider.d.ts +16 -7
  50. package/dist/secret-provider.d.ts.map +1 -1
  51. package/dist/secret-provider.js +80 -9
  52. package/dist/secret-provider.js.map +1 -1
  53. package/dist/static-secret.d.ts +107 -0
  54. package/dist/static-secret.d.ts.map +1 -0
  55. package/dist/static-secret.js +87 -0
  56. package/dist/static-secret.js.map +1 -0
  57. package/dist/use-operators.d.ts +7 -0
  58. package/dist/use-operators.d.ts.map +1 -0
  59. package/dist/use-operators.js +13 -0
  60. package/dist/use-operators.js.map +1 -0
  61. package/dist/web-service.d.ts +10 -2
  62. package/dist/web-service.d.ts.map +1 -1
  63. package/dist/web-service.js +54 -14
  64. package/dist/web-service.js.map +1 -1
  65. package/package.json +30 -5
  66. package/dist/operators.d.ts +0 -19
  67. package/dist/operators.d.ts.map +0 -1
  68. package/dist/operators.js +0 -30
  69. package/dist/operators.js.map +0 -1
package/dist/database.js CHANGED
@@ -2,8 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Database = Database;
4
4
  const core_1 = require("@r8s/core");
5
+ const operator_cnpg_1 = require("@r8s/operator-cnpg");
5
6
  const defaults_1 = require("@r8s/core/defaults");
6
- const operators_1 = require("./operators");
7
+ const secret_provider_1 = require("./secret-provider");
8
+ const s3_provider_1 = require("./s3-provider");
7
9
  /**
8
10
  * CloudNativePG PostgreSQL database.
9
11
  *
@@ -11,7 +13,7 @@ const operators_1 = require("./operators");
11
13
  * @category Data & Analytics
12
14
  *
13
15
  * Creates a dedicated 3-instance HA CloudNativePG cluster for this database.
14
- * When wrapped in a `<Database>` component, child components receive the
16
+ * When wrapped in a `<Database backup={false}>` component, child components receive the
15
17
  * connection info via DatabaseContext automatically.
16
18
  *
17
19
  * Credentials are managed by the secrets backend configured on the Platform.
@@ -23,14 +25,32 @@ const operators_1 = require("./operators");
23
25
  * @example
24
26
  * import { Database } from '@r8s/recipes'
25
27
  *
26
- * export default <Database name="app-db" storage="10Gi" />
28
+ * // Required target: explicit S3 settings (credentials from an existing Secret)
29
+ * export default (
30
+ * <Database
31
+ * name="app-db"
32
+ * storage="10Gi"
33
+ * backup={{
34
+ * destinationPath: 's3://backups/app-db-cnpg',
35
+ * endpointURL: 'https://s3.example.com',
36
+ * credentialsSecret: 'app-db-backup-creds',
37
+ * }}
38
+ * />
39
+ * )
27
40
  *
28
41
  * @example
29
42
  * import { Platform, Database, WebService } from '@r8s/recipes'
30
43
  *
31
44
  * export default (
32
45
  * <Platform secrets={{ backend: 'openbao' }}>
33
- * <Database name="app-db" storage="10Gi">
46
+ * <Database
47
+ * name="app-db"
48
+ * storage="10Gi"
49
+ * backup={{
50
+ * destinationPath: 's3://backups/app-db-cnpg',
51
+ * endpointURL: 'https://s3.example.com',
52
+ * }}
53
+ * >
34
54
  * <WebService name="api" image="myapp/api:v1" />
35
55
  * </Database>
36
56
  * </Platform>
@@ -59,7 +79,7 @@ const operators_1 = require("./operators");
59
79
  * )
60
80
  */
61
81
  function Database(props) {
62
- const { name, namespace: namespaceProp, instances = 3, storage = '10Gi', storageClass, parameters, backup, rolloutRestartTargets, operatorVersion, postInitSQL, children, } = props;
82
+ const { name, namespace: namespaceProp, instances = 3, database: databaseName = name, owner: ownerName = name, storage = '10Gi', storageClass, parameters, credentialsMode = 'backend', backup: backupProp, rolloutRestartTargets, operatorVersion, postInitSQL, children, } = props;
63
83
  // Plaintext password props are forbidden. This also catches untyped/JS
64
84
  // callers that pass `password` to Database regardless of backend — the
65
85
  // rendered Secret would leak the credential into git and cluster state.
@@ -71,14 +91,71 @@ function Database(props) {
71
91
  `\n` +
72
92
  `Fix: configure a secrets backend on the Platform and let it manage credentials:\n` +
73
93
  ` <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>\n` +
74
- ` <Database name="${name}" />\n` +
94
+ ` <Database name="${name}" backup={false} />\n` +
75
95
  ` </Platform>\n` +
76
96
  `\n` +
77
97
  `Supported backends: 'openbao', 'vault', 'sealed-secrets', 'kubernetes', 'manual-secrets'`);
78
98
  }
79
99
  // Inherit namespace from <Platform> context if not explicitly set
80
- const contextNamespace = (0, core_1.useContext)(defaults_1.Namespace);
81
- const namespace = namespaceProp ?? (contextNamespace !== 'default' ? contextNamespace : undefined) ?? 'default';
100
+ const namespace = (0, defaults_1.useNamespace)(namespaceProp);
101
+ // Backups are a REQUIRED decision: no barman archive means stalled WAL
102
+ // recycling fills the data PVC over time. Passing nothing is a bug the
103
+ // renderer must catch, not a silent default.
104
+ const s3 = (0, s3_provider_1.useS3)();
105
+ if (backupProp === undefined) {
106
+ throw new Error(`Database "${name}": backup is a required decision.\n` +
107
+ `\n` +
108
+ `WAL segments accumulate until they are archived — a cluster without\n` +
109
+ `working backups slowly fills its PVC.\n` +
110
+ `\n` +
111
+ `Enable backups (derives target/credentials from the platform's S3Provider):\n` +
112
+ ` <Database name="${name}" backup />\n` +
113
+ `\n` +
114
+ `or pass the full target explicitly:\n` +
115
+ ` backup={{ destinationPath: 's3://backups/${name}-cnpg', endpointURL: 'https://s3.example.com' }}\n` +
116
+ `\n` +
117
+ `To explicitly run without backups (forks, ephemeral CI databases):\n` +
118
+ ` <Database name="${name}" backup={false} />`);
119
+ }
120
+ let backup = backupProp;
121
+ if (backupProp && typeof backupProp === 'object' && (0, s3_provider_1.isBucketElement)(backupProp)) {
122
+ const target = (0, s3_provider_1.resolveBucket)(backupProp, s3);
123
+ backup = {
124
+ endpointURL: target.s3.endpoint,
125
+ destinationPath: `${target.root}/${name}-cnpg`,
126
+ credentialsSecret: target.s3.credentialsSecret,
127
+ };
128
+ }
129
+ else if (backupProp && typeof backupProp === 'object' && 'type' in backupProp) {
130
+ throw new Error(`Database "${name}": backup element must be a <Bucket name="…" /> descriptor — got another component`);
131
+ }
132
+ const backupSpec = backup === false ? false : backup === true ? {} : { ...backup };
133
+ if (backupSpec) {
134
+ if (backupSpec.endpointURL === undefined)
135
+ backupSpec.endpointURL = s3?.endpoint;
136
+ if (backupSpec.credentialsSecret === undefined)
137
+ backupSpec.credentialsSecret = s3?.credentialsSecret;
138
+ if (backupSpec.destinationPath === undefined && s3) {
139
+ const base = s3.prefix ? `${s3.prefix}/` : '';
140
+ backupSpec.destinationPath = `s3://${s3.bucket}/${base}${name}-cnpg`;
141
+ }
142
+ }
143
+ // With no S3 provider and no explicit target there is nothing valid to
144
+ // render — fail with the two ways out instead of half a barman spec.
145
+ if (backupSpec && (!backupSpec.endpointURL || !backupSpec.destinationPath)) {
146
+ throw new Error(`Database "${name}" has backup configured without an S3 target.\n` +
147
+ `\n` +
148
+ `Add an <S3Provider> to the Platform — endpoint, bucket and credentials are derived from it:\n` +
149
+ ` <Platform>\n` +
150
+ ` <S3Provider provider={<MinIO endpoint="https://rustfs:9000" bucket="infra" credentialsSecret="infra-s3-creds" />}>\n` +
151
+ ` <Database name="${name}" backup />\n` +
152
+ ` </Platform>\n` +
153
+ `\n` +
154
+ `or pass the target explicitly:\n` +
155
+ ` backup={{ endpointURL: 'https://s3.example.com', destinationPath: 's3://backups/${name}-cnpg' }}\n` +
156
+ `\n` +
157
+ `Missing: ${[!backupSpec.endpointURL && 'endpointURL', !backupSpec.destinationPath && 'destinationPath'].filter(Boolean).join(', ')}`);
158
+ }
82
159
  const clusterConfig = (0, core_1.useContext)(defaults_1.ClusterContext);
83
160
  const secretProvider = (0, core_1.useContext)(defaults_1.SecretContext);
84
161
  const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
@@ -89,8 +166,8 @@ function Database(props) {
89
166
  const connection = {
90
167
  host: clusterConfig.host,
91
168
  port: 5432,
92
- database: name,
93
- username: name,
169
+ database: databaseName,
170
+ username: ownerName,
94
171
  passwordSecret: { name: secretName, key: 'password' },
95
172
  passwordKey: 'password',
96
173
  vendor: 'postgres',
@@ -102,13 +179,13 @@ function Database(props) {
102
179
  }
103
180
  else {
104
181
  // Dedicated cluster — create full CNPG cluster
105
- const hasCNPG = sharedOperators.some((op) => op.name === 'cnpg');
182
+ const needsCnpg = (0, operator_cnpg_1.declareCnpg)(sharedOperators).length > 0;
106
183
  // Backup credentials: explicit existing Secret, or provisioned by the
107
184
  // secrets backend. Plaintext is never rendered.
108
185
  let backupCredentials;
109
- if (backup) {
110
- if (backup.credentialsSecret) {
111
- backupCredentials = backup.credentialsSecret;
186
+ if (backupSpec) {
187
+ if (backupSpec.credentialsSecret) {
188
+ backupCredentials = backupSpec.credentialsSecret;
112
189
  }
113
190
  else if (secretProvider &&
114
191
  (secretProvider.backend === 'openbao' || secretProvider.backend === 'vault')) {
@@ -116,6 +193,9 @@ function Database(props) {
116
193
  }
117
194
  else {
118
195
  throw new Error(`Database "${name}" has backup configured without backup credentials.\n` +
196
+ `\n` +
197
+ `Add an <S3Provider> to the Platform — backup endpoint, bucket and credentials are derived from it.\n` +
198
+ `\n` +
119
199
  `\n` +
120
200
  `Set an existing Secret holding keys 'access-key-id' and 'secret-access-key':\n` +
121
201
  ` backup={{ ..., credentialsSecret: 'my-backup-creds' }}\n` +
@@ -136,9 +216,11 @@ function Database(props) {
136
216
  },
137
217
  bootstrap: {
138
218
  initdb: {
139
- database: name,
140
- owner: name,
141
- secret: { name: secretName },
219
+ database: databaseName,
220
+ owner: ownerName,
221
+ // 'cnpg' credentialsMode: let CNPG default to '<cluster>-app'
222
+ // (the native credentials secret incl. fqdn-uri references)
223
+ ...(credentialsMode === 'cnpg' ? {} : { secret: { name: secretName } }),
142
224
  // Roles/extensions the application needs on a fresh cluster —
143
225
  // applied once by CNPG after the initial bootstrap.
144
226
  ...(postInitSQL && postInitSQL.length > 0
@@ -148,21 +230,21 @@ function Database(props) {
148
230
  },
149
231
  monitoring: { enablePodMonitor: true },
150
232
  ...(parameters && { postgresql: { parameters } }),
151
- ...(backup && backupCredentials
233
+ ...(backupSpec && backupCredentials
152
234
  ? {
153
235
  backup: {
154
- retentionPolicy: backup.retention ?? '30d',
236
+ retentionPolicy: backupSpec.retention ?? '30d',
155
237
  barmanObjectStore: {
156
- destinationPath: backup.destinationPath,
157
- endpointURL: backup.endpointURL,
238
+ destinationPath: backupSpec.destinationPath,
239
+ endpointURL: backupSpec.endpointURL,
158
240
  s3Credentials: {
159
241
  accessKeyId: { name: backupCredentials, key: 'access-key-id' },
160
242
  secretAccessKey: { name: backupCredentials, key: 'secret-access-key' },
161
243
  },
162
- data: { compression: backup.compression ?? 'gzip' },
244
+ data: { compression: backupSpec.compression ?? 'gzip' },
163
245
  wal: {
164
- compression: backup.compression ?? 'gzip',
165
- encryption: backup.encryption ?? 'AES256',
246
+ compression: backupSpec.compression ?? 'gzip',
247
+ encryption: backupSpec.encryption ?? 'AES256',
166
248
  },
167
249
  },
168
250
  },
@@ -173,14 +255,14 @@ function Database(props) {
173
255
  const connection = {
174
256
  host: `${name}-rw`,
175
257
  port: 5432,
176
- database: name,
177
- username: name,
258
+ database: databaseName,
259
+ username: ownerName,
178
260
  passwordSecret: { name: secretName, key: 'password' },
179
261
  passwordKey: 'password',
180
262
  vendor: 'postgres',
181
263
  };
182
- if (!hasCNPG) {
183
- resources.push((0, core_1.declareOperator)((0, operators_1.cnpgOperator)(operatorVersion)));
264
+ if (needsCnpg) {
265
+ resources.push(...(0, operator_cnpg_1.declareCnpg)(sharedOperators, operatorVersion));
184
266
  }
185
267
  resources.push((0, core_1.jsx)('Cluster', cluster));
186
268
  if (backup && backupCredentials) {
@@ -190,19 +272,23 @@ function Database(props) {
190
272
  metadata: { name: `${name}-backup`, namespace },
191
273
  spec: {
192
274
  cluster: { name },
193
- schedule: backup.schedule ?? '0 3 * * *',
275
+ schedule: backupSpec && backupSpec.schedule ? backupSpec.schedule : '0 3 * * *',
194
276
  backupOwnerReference: 'self',
195
277
  },
196
278
  }));
197
279
  // Backend-provisioned S3 credentials for barman
198
- if (!backup.credentialsSecret && secretProvider) {
280
+ if (backupSpec && !backupSpec.credentialsSecret && secretProvider) {
199
281
  resources.push(...createStaticSecretResource(`${name}-backup-credentials`, `${name}-backup-credentials`, namespace, secretProvider, `${secretProvider.path}/${name}-s3-credentials`, undefined));
200
282
  }
201
283
  }
202
284
  // For dedicated clusters with a secrets backend, the backend manages
203
285
  // credentials. For kubernetes/manual-secrets backend, CNPG manages the
204
286
  // bootstrap secret automatically — no plaintext Secret is rendered.
205
- if (secretProvider) {
287
+ // 'cnpg' credentialsMode: the operator generates the bootstrap secret
288
+ // in-cluster (incl. fqdn-uri) even when a secrets backend is present —
289
+ // apps referencing the CNPG-generated secret directly (e.g. paperclip's
290
+ // externalURLSecretRef) work without vault-stored DB credentials.
291
+ if (secretProvider && credentialsMode === 'backend') {
206
292
  resources.push(...createSecretResources(name, namespace, secretName, secretProvider, 'dedicated', rolloutRestartTargets));
207
293
  }
208
294
  if (children) {
@@ -232,7 +318,7 @@ function createSecretResources(name, namespace, secretName, secretProvider, mode
232
318
  `CNPG only provisions credentials for databases on dedicated clusters, so a ` +
233
319
  `shared-cluster database needs a managed secrets backend:\n` +
234
320
  ` <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>\n` +
235
- ` <Database name="${name}" />\n` +
321
+ ` <Database name="${name}" backup={false} />\n` +
236
322
  ` </Platform>\n` +
237
323
  `\n` +
238
324
  `Supported backends: 'openbao', 'vault', 'sealed-secrets', 'kubernetes', 'manual-secrets'`);
@@ -270,7 +356,7 @@ function createSecretResources(name, namespace, secretName, secretProvider, mode
270
356
  `Credentials for shared-cluster databases cannot be provisioned automatically. ` +
271
357
  `Use a managed backend instead:\n` +
272
358
  ` <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>\n` +
273
- ` <Database name="${name}" />\n` +
359
+ ` <Database name="${name}" backup={false} />\n` +
274
360
  ` </Platform>\n` +
275
361
  `\n` +
276
362
  `Supported backends: 'openbao', 'vault', 'sealed-secrets', 'kubernetes', 'manual-secrets'`);
@@ -288,6 +374,11 @@ function createSecretResources(name, namespace, secretName, secretProvider, mode
288
374
  * `refreshAfter` comes from the provider (Platform secrets config),
289
375
  * `rolloutRestartTargets` restarts consuming workloads on rotation.
290
376
  * The secret content itself is never rendered into the manifest.
377
+ *
378
+ * Delegates to the shared provisioner in raw-sync mode (empty keys → the
379
+ * destination passes the whole store entry through — byte-identical to
380
+ * the legacy inline emission). Identity awareness lives ONLY in
381
+ * `secret-provider.tsx`.
291
382
  */
292
383
  function createStaticSecretResource(resourceName, destinationName, namespace, secretProvider, vaultPath, rolloutRestartTargets) {
293
384
  const targets = rolloutRestartTargets?.map((t) => ({
@@ -295,31 +386,17 @@ function createStaticSecretResource(resourceName, destinationName, namespace, se
295
386
  kind: t.kind ?? 'Deployment',
296
387
  name: t.name,
297
388
  }));
298
- const spec = {
299
- mount: secretProvider.mount,
300
- type: 'kv-v2',
389
+ const el = (0, secret_provider_1.provisionerForSecretProvider)(secretProvider)({
390
+ name: resourceName,
391
+ namespace,
301
392
  path: vaultPath,
302
- ...(secretProvider.refreshAfter && { refreshAfter: secretProvider.refreshAfter }),
303
- ...(targets && targets.length > 0 && { rolloutRestartTargets: targets }),
304
- destination: { create: true, name: destinationName },
305
- };
306
- if (secretProvider.backend === 'openbao') {
307
- return [
308
- (0, core_1.jsx)('OpenBaoStaticSecret', {
309
- apiVersion: 'secrets.openbao.org/v1beta1',
310
- kind: 'OpenBaoStaticSecret',
311
- metadata: { name: resourceName, namespace },
312
- spec: { openbaoAuthRef: secretProvider.authRef, ...spec },
313
- }),
314
- ];
315
- }
316
- return [
317
- (0, core_1.jsx)('VaultStaticSecret', {
318
- apiVersion: 'secrets.hashicorp.com/v1beta1',
319
- kind: 'VaultStaticSecret',
320
- metadata: { name: resourceName, namespace },
321
- spec: { vaultAuthRef: secretProvider.authRef, ...spec },
322
- }),
323
- ];
393
+ // Raw sync: callers (DB credentials, backup creds) don't enumerate
394
+ // store keys at render time pass the whole entry through
395
+ keys: {},
396
+ secretName: destinationName,
397
+ refreshAfter: secretProvider.refreshAfter,
398
+ restartTargets: targets,
399
+ });
400
+ return Array.isArray(el) ? el : [el];
324
401
  }
325
402
  //# sourceMappingURL=database.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":";;AA2KA,4BA0RC;AArcD,oCAA2C;AAE3C,sDAAgD;AAChD,iDAM2B;AAC3B,uDAAgE;AAChE,+CAAuF;AAwFvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,SAAgB,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EACJ,IAAI,EACJ,SAAS,EAAE,aAAa,EACxB,SAAS,GAAG,CAAC,EACb,QAAQ,EAAE,YAAY,GAAG,IAAI,EAC7B,KAAK,EAAE,SAAS,GAAG,IAAI,EACvB,OAAO,GAAG,MAAM,EAChB,YAAY,EACZ,UAAU,EACV,eAAe,GAAG,SAAS,EAC3B,MAAM,EAAE,UAAU,EAClB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,QAAQ,GACT,GAAG,KAAK,CAAA;IAET,uEAAuE;IACvE,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,cAAc,GAAI,KAAgC,CAAC,QAAQ,CAAA;IACjE,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,mCAAmC;YAClD,wEAAwE;YACxE,qFAAqF;YACrF,IAAI;YACJ,mFAAmF;YACnF,4EAA4E;YAC5E,uBAAuB,IAAI,uBAAuB;YAClD,iBAAiB;YACjB,IAAI;YACJ,0FAA0F,CAC7F,CAAA;IACH,CAAC;IAED,kEAAkE;IAClE,MAAM,SAAS,GAAG,IAAA,uBAAY,EAAC,aAAa,CAAC,CAAA;IAE7C,uEAAuE;IACvE,uEAAuE;IACvE,6CAA6C;IAC7C,MAAM,EAAE,GAAG,IAAA,mBAAK,GAAE,CAAA;IAClB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,qCAAqC;YACpD,IAAI;YACJ,uEAAuE;YACvE,yCAAyC;YACzC,IAAI;YACJ,+EAA+E;YAC/E,qBAAqB,IAAI,eAAe;YACxC,IAAI;YACJ,uCAAuC;YACvC,8CAA8C,IAAI,oDAAoD;YACtG,IAAI;YACJ,sEAAsE;YACtE,qBAAqB,IAAI,qBAAqB,CACjD,CAAA;IACH,CAAC;IACD,IAAI,MAAM,GAAG,UAAU,CAAA;IACvB,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,IAAA,6BAAe,EAAC,UAAU,CAAC,EAAE,CAAC;QAChF,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QAC5C,MAAM,GAAG;YACP,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ;YAC/B,eAAe,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,OAAO;YAC9C,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC,iBAAiB;SAC/C,CAAA;IACH,CAAC;SAAM,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,IAAK,UAAoB,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,oFAAoF,CACtG,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GACd,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAI,MAA8B,EAAE,CAAA;IAC1F,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS;YAAE,UAAU,CAAC,WAAW,GAAG,EAAE,EAAE,QAAQ,CAAA;QAC/E,IAAI,UAAU,CAAC,iBAAiB,KAAK,SAAS;YAC5C,UAAU,CAAC,iBAAiB,GAAG,EAAE,EAAE,iBAAiB,CAAA;QACtD,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC7C,UAAU,CAAC,eAAe,GAAG,QAAQ,EAAE,CAAC,MAAM,IAAI,IAAI,GAAG,IAAI,OAAO,CAAA;QACtE,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,qEAAqE;IACrE,IAAI,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,iDAAiD;YAChE,IAAI;YACJ,+FAA+F;YAC/F,gBAAgB;YAChB,0HAA0H;YAC1H,yBAAyB,IAAI,eAAe;YAC5C,iBAAiB;YACjB,IAAI;YACJ,kCAAkC;YAClC,qFAAqF,IAAI,aAAa;YACtG,IAAI;YACJ,YAAY,CAAC,CAAC,UAAU,CAAC,WAAW,IAAI,aAAa,EAAE,CAAC,UAAU,CAAC,eAAe,IAAI,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxI,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,iBAAU,EAAC,yBAAc,CAAC,CAAA;IAChD,MAAM,cAAc,GAAG,IAAA,iBAAU,EAAC,wBAAa,CAAC,CAAA;IAChD,MAAM,eAAe,GAAG,IAAA,iBAAU,EAAC,0BAAe,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,GAAG,IAAI,iBAAiB,CAAA;IAE3C,MAAM,SAAS,GAA6B,EAAE,CAAA;IAE9C,IAAI,aAAa,EAAE,CAAC;QAClB,sEAAsE;QACtE,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,SAAS;YACnB,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;YACrD,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,UAAmB;SAC5B,CAAA;QAED,SAAS,CAAC,IAAI,CACZ,GAAG,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAC3F,CAAA;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,0BAAe,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,+CAA+C;QAC/C,MAAM,SAAS,GAAG,IAAA,2BAAW,EAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;QAEzD,sEAAsE;QACtE,gDAAgD;QAChD,IAAI,iBAAqC,CAAA;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACjC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAA;YAClD,CAAC;iBAAM,IACL,cAAc;gBACd,CAAC,cAAc,CAAC,OAAO,KAAK,SAAS,IAAI,cAAc,CAAC,OAAO,KAAK,OAAO,CAAC,EAC5E,CAAC;gBACD,iBAAiB,GAAG,GAAG,IAAI,qBAAqB,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,uDAAuD;oBACtE,IAAI;oBACJ,sGAAsG;oBACtG,IAAI;oBACJ,IAAI;oBACJ,gFAAgF;oBAChF,4DAA4D;oBAC5D,IAAI;oBACJ,mEAAmE,IAAI,qBAAqB;oBAC5F,0EAA0E,CAC7E,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAY;YACvB,UAAU,EAAE,uBAAuB;YACnC,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC7B,IAAI,EAAE;gBACJ,SAAS;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;iBACtC;gBACD,SAAS,EAAE;oBACT,MAAM,EAAE;wBACN,QAAQ,EAAE,YAAY;wBACtB,KAAK,EAAE,SAAS;wBAChB,8DAA8D;wBAC9D,4DAA4D;wBAC5D,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;wBACvE,8DAA8D;wBAC9D,oDAAoD;wBACpD,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;4BACvC,CAAC,CAAC,EAAE,sBAAsB,EAAE,WAAW,EAAE;4BACzC,CAAC,CAAC,EAAE,CAAC;qBACR;iBACF;gBACD,UAAU,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;gBACtC,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC;gBACjD,GAAG,CAAC,UAAU,IAAI,iBAAiB;oBACjC,CAAC,CAAC;wBACE,MAAM,EAAE;4BACN,eAAe,EAAE,UAAU,CAAC,SAAS,IAAI,KAAK;4BAC9C,iBAAiB,EAAE;gCACjB,eAAe,EAAE,UAAU,CAAC,eAAgB;gCAC5C,WAAW,EAAE,UAAU,CAAC,WAAY;gCACpC,aAAa,EAAE;oCACb,WAAW,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,eAAe,EAAE;oCAC9D,eAAe,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,mBAAmB,EAAE;iCACvE;gCACD,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,MAAM,EAAE;gCACvD,GAAG,EAAE;oCACH,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,MAAM;oCAC7C,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,QAAQ;iCAC9C;6BACF;yBACF;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAA;QAED,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,GAAG,IAAI,KAAK;YAClB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,SAAS;YACnB,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;YACrD,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,UAAmB;SAC5B,CAAA;QAED,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,GAAG,IAAA,2BAAW,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAA;QAClE,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;QAEvC,IAAI,MAAM,IAAI,iBAAiB,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CACZ,IAAA,UAAG,EAAC,iBAAiB,EAAE;gBACrB,UAAU,EAAE,uBAAuB;gBACnC,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,SAAS,EAAE;gBAC/C,IAAI,EAAE;oBACJ,OAAO,EAAE,EAAE,IAAI,EAAE;oBACjB,QAAQ,EAAE,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;oBAC/E,oBAAoB,EAAE,MAAM;iBAC7B;aAC2B,CAAC,CAChC,CAAA;YAED,gDAAgD;YAChD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,cAAc,EAAE,CAAC;gBAClE,SAAS,CAAC,IAAI,CACZ,GAAG,0BAA0B,CAC3B,GAAG,IAAI,qBAAqB,EAC5B,GAAG,IAAI,qBAAqB,EAC5B,SAAS,EACT,cAAc,EACd,GAAG,cAAc,CAAC,IAAI,IAAI,IAAI,iBAAiB,EAC/C,SAAS,CACV,CACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,uEAAuE;QACvE,wEAAwE;QACxE,kEAAkE;QAClE,IAAI,cAAc,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACpD,SAAS,CAAC,IAAI,CACZ,GAAG,qBAAqB,CACtB,IAAI,EACJ,SAAS,EACT,UAAU,EACV,cAAc,EACd,WAAW,EACX,qBAAqB,CACtB,CACF,CAAA;QACH,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,0BAAe,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAC5B,IAAY,EACZ,SAAiB,EACjB,UAAkB,EAClB,cAMQ,EACR,IAA4B,EAC5B,qBAAyF;IAEzF,MAAM,SAAS,GAA6B,EAAE,CAAA;IAE9C,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,iEAAiE;YACjE,mCAAmC;YACnC,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,gEAAgE;YAC/E,IAAI;YACJ,6EAA6E;YAC7E,4DAA4D;YAC5D,4EAA4E;YAC5E,uBAAuB,IAAI,uBAAuB;YAClD,iBAAiB;YACjB,IAAI;YACJ,0FAA0F,CAC7F,CAAA;IACH,CAAC;IAED,QAAQ,cAAc,CAAC,OAAO,EAAE,CAAC;QAC/B,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,SAAS,CAAC,IAAI,CACZ,GAAG,0BAA0B,CAC3B,GAAG,IAAI,YAAY,EACnB,UAAU,EACV,SAAS,EACT,cAAc,EACd,GAAG,cAAc,CAAC,IAAI,IAAI,IAAI,EAAE,EAChC,qBAAqB,CACtB,CACF,CAAA;YACD,MAAK;QAEP,KAAK,gBAAgB;YACnB,uEAAuE;YACvE,oEAAoE;YACpE,wDAAwD;YACxD,SAAS,CAAC,IAAI,CACZ,IAAA,UAAG,EAAC,cAAc,EAAE;gBAClB,UAAU,EAAE,sBAAsB;gBAClC,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE;gBACzC,IAAI,EAAE;oBACJ,aAAa,EAAE;wBACb,+DAA+D;wBAC/D,QAAQ,EAAE,2BAA2B;qBACtC;iBACF;aACF,CAAC,CACH,CAAA;YACD,MAAK;QAEP,KAAK,YAAY,CAAC;QAClB,KAAK,gBAAgB;YACnB,qEAAqE;YACrE,qEAAqE;YACrE,sEAAsE;YACtE,6DAA6D;YAC7D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,eAAe,cAAc,CAAC,OAAO,0CAA0C;oBAC9F,IAAI;oBACJ,gFAAgF;oBAChF,kCAAkC;oBAClC,4EAA4E;oBAC5E,uBAAuB,IAAI,uBAAuB;oBAClD,iBAAiB;oBACjB,IAAI;oBACJ,0FAA0F,CAC7F,CAAA;YACH,CAAC;YACD,MAAK;QAEP;YACE,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,qCAAqC,cAAc,CAAC,OAAO,MAAM;gBAChF,0FAA0F,CAC7F,CAAA;IACL,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,0BAA0B,CACjC,YAAoB,EACpB,eAAuB,EACvB,SAAiB,EACjB,cAMC,EACD,SAAiB,EACjB,qBAAyF;IAEzF,MAAM,OAAO,GAAG,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,SAAS;QACrC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,YAAY;QAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAA;IAEH,MAAM,EAAE,GAAG,IAAA,8CAA4B,EAAC,cAAuB,CAAE,CAAC;QAChE,IAAI,EAAE,YAAY;QAClB,SAAS;QACT,IAAI,EAAE,SAAS;QACf,mEAAmE;QACnE,2DAA2D;QAC3D,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,eAAe;QAC3B,YAAY,EAAE,cAAc,CAAC,YAAY;QACzC,cAAc,EAAE,OAAO;KACxB,CAAC,CAAA;IACF,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAA4B,CAAC,CAAA;AAChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dns-provider.d.ts","sourceRoot":"","sources":["../src/dns-provider.tsx"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,IAAI,CAAC,EAAE;QACL,yCAAyC;QACzC,IAAI,EAAE,MAAM,CAAA;QACZ,sCAAsC;QACtC,GAAG,EAAE,MAAM,CAAA;QACX,sEAAsE;QACtE,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,sDAAsD;IACtD,KAAK,CAAC,EAAE;QACN,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAA;QACzC,gCAAgC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACjC,CAAA;IACD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAK9D;AAED,iCAAiC;AACjC,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,QAAQ,EAAE,cAAc,CAAA;IACxB,iCAAiC;IACjC,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAA;AAEzD,eAAO,MAAM,UAAU,4DAAwC,CAAA;AAE/D,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,kCAqElD"}
1
+ {"version":3,"file":"dns-provider.d.ts","sourceRoot":"","sources":["../src/dns-provider.tsx"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,IAAI,CAAC,EAAE;QACL,yCAAyC;QACzC,IAAI,EAAE,MAAM,CAAA;QACZ,sCAAsC;QACtC,GAAG,EAAE,MAAM,CAAA;QACX,sEAAsE;QACtE,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,sDAAsD;IACtD,KAAK,CAAC,EAAE;QACN,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAA;QACzC,gCAAgC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACjC,CAAA;IACD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAK9D;AAED,iCAAiC;AACjC,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,QAAQ,EAAE,cAAc,CAAA;IACxB,iCAAiC;IACjC,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAA;AAEzD,eAAO,MAAM,UAAU,4DAAwC,CAAA;AAE/D,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,kCAkElD"}
@@ -6,7 +6,7 @@ exports.DnsProvider = DnsProvider;
6
6
  const core_1 = require("@r8s/core");
7
7
  const defaults_1 = require("@r8s/core/defaults");
8
8
  const defaults_2 = require("@r8s/core/defaults");
9
- const crds_1 = require("@r8s/crds");
9
+ const operator_external_dns_1 = require("@r8s/operator-external-dns");
10
10
  function ExternalDns(props) {
11
11
  return {
12
12
  provider: 'external-dns',
@@ -83,10 +83,7 @@ function DnsProvider(props) {
83
83
  }
84
84
  const resources = [];
85
85
  // Declare external-dns operator
86
- const hasExternalDNS = sharedOperators.some((op) => op.name === 'external-dns');
87
- if (!hasExternalDNS) {
88
- resources.push((0, core_1.declareOperator)(crds_1.operators['external-dns']()));
89
- }
86
+ resources.push(...(0, operator_external_dns_1.declareIfMissing)(sharedOperators));
90
87
  // TSIG secret via VSO
91
88
  if (config.settings.tsig) {
92
89
  if (!secrets || (secrets.backend !== 'vault' && secrets.backend !== 'openbao')) {
@@ -1 +1 @@
1
- {"version":3,"file":"dns-provider.js","sourceRoot":"","sources":["../src/dns-provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dns-provider.js","sourceRoot":"","sources":["../src/dns-provider.tsx"],"names":[],"mappings":"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"}
@@ -56,5 +56,5 @@ export interface EndpointProps extends Omit<BaseRouteProps, 'host'> {
56
56
  * </Platform>
57
57
  * )
58
58
  */
59
- export declare function Endpoint(props: EndpointProps): import("@r8s/core").r8sElement;
59
+ export declare function Endpoint(props: EndpointProps): unknown;
60
60
  //# sourceMappingURL=endpoint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAQpD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IACjE,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,wBAAwB,CAAA;IACxD,4FAA4F;IAC5F,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,kCAmQ5C"}
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAUpD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IACjE,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,wBAAwB,CAAA;IACxD,4FAA4F;IAC5F,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,WAuQ5C"}
package/dist/endpoint.js CHANGED
@@ -3,9 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Endpoint = Endpoint;
4
4
  const core_1 = require("@r8s/core");
5
5
  const defaults_1 = require("@r8s/core/defaults");
6
+ const defaults_2 = require("@r8s/core/defaults");
6
7
  const endpoint_provider_1 = require("./endpoint-provider");
7
- const operators_1 = require("./operators");
8
- const crds_1 = require("@r8s/crds");
8
+ const operator_nginx_ingress_1 = require("@r8s/operator-nginx-ingress");
9
+ const operator_cert_manager_1 = require("@r8s/operator-cert-manager");
10
+ const operator_envoy_gateway_1 = require("@r8s/operator-envoy-gateway");
11
+ const operator_external_dns_1 = require("@r8s/operator-external-dns");
9
12
  const externaldns_1 = require("@r8s/crds/externaldns");
10
13
  const dns_provider_1 = require("./dns-provider");
11
14
  /**
@@ -37,13 +40,29 @@ const dns_provider_1 = require("./dns-provider");
37
40
  * )
38
41
  */
39
42
  function Endpoint(props) {
40
- const { name, namespace = 'default', host, serviceName, servicePort = 80, path, pathType, tls, annotations = {}, dns, dnsTtl = 300, sharedGateway, } = props;
41
- const routing = (0, core_1.useContext)(defaults_1.RoutingContext);
43
+ const { name, namespace: namespaceProp, host, serviceName, servicePort = 80, path, pathType, tls, annotations = {}, dns, dnsTtl = 300, sharedGateway, } = props;
44
+ const namespace = (0, defaults_1.useNamespace)(namespaceProp);
45
+ const routing = (0, core_1.useContext)(defaults_2.RoutingContext);
42
46
  const endpointConfig = (0, core_1.useContext)(endpoint_provider_1.EndpointContext);
43
- const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
47
+ const sharedOperators = (0, core_1.useContext)(defaults_2.OperatorContext);
44
48
  const dnsConfig = (0, core_1.useContext)(dns_provider_1.DnsContext);
45
49
  // DNS defaults to true when DnsProvider is set, unless explicitly disabled
46
50
  const createDnsRecord = dns ?? dnsConfig !== null;
51
+ // Custom route provisioner hook: a RoutingConfig carrying route() owns the
52
+ // whole render for this endpoint (custom ingress controllers / L7 stacks)
53
+ if (routing.route) {
54
+ const el = routing.route({
55
+ name,
56
+ namespace,
57
+ host,
58
+ serviceName,
59
+ servicePort,
60
+ pathPrefix: path,
61
+ annotations,
62
+ tls,
63
+ });
64
+ return Array.isArray(el) ? (0, core_1.jsx)(core_1.Fragment, { children: el }) : el;
65
+ }
47
66
  // Mode resolution: the Platform RoutingContext describes the cluster, but
48
67
  // an explicit EndpointProvider with <EnvoyGateway /> opts this endpoint
49
68
  // into Gateway API even without a Platform (or CLI route-level default)
@@ -53,14 +72,10 @@ function Endpoint(props) {
53
72
  const gatewayClassName = endpointConfig.settings?.gatewayClassName ?? routing.gatewayClassName ?? 'eg';
54
73
  const secretName = tls?.secretName || `${name}-tls`;
55
74
  const issuerName = tls?.clusterIssuer ?? endpointConfig.settings?.tls?.clusterIssuer ?? 'letsencrypt-prod';
56
- const hasCertManager = sharedOperators.some((op) => op.name === 'cert-manager');
57
- const hasEnvoyGateway = sharedOperators.some((op) => op.name === 'envoy-gateway');
58
- if (tls && !hasCertManager) {
59
- resources.push((0, core_1.declareOperator)(crds_1.operators['cert-manager']()));
60
- }
61
- if (!hasEnvoyGateway) {
62
- resources.push((0, core_1.declareOperator)(crds_1.operators['envoy-gateway']()));
75
+ if (tls) {
76
+ resources.push(...(0, operator_cert_manager_1.declareIfMissing)(sharedOperators));
63
77
  }
78
+ resources.push(...(0, operator_envoy_gateway_1.declareIfMissing)(sharedOperators));
64
79
  if (tls) {
65
80
  resources.push((0, core_1.jsx)('Certificate', {
66
81
  apiVersion: 'cert-manager.io/v1',
@@ -159,13 +174,9 @@ function Endpoint(props) {
159
174
  }));
160
175
  }
161
176
  else {
162
- const hasNginxIngress = sharedOperators.some((op) => op.name === 'nginx-ingress');
163
- const hasCertManager = sharedOperators.some((op) => op.name === 'cert-manager');
164
- if (!hasNginxIngress) {
165
- resources.push((0, core_1.declareOperator)((0, operators_1.nginxIngressOperator)()));
166
- }
167
- if (tls && !hasCertManager) {
168
- resources.push((0, core_1.declareOperator)(crds_1.operators['cert-manager']()));
177
+ resources.push(...(0, operator_nginx_ingress_1.declareIfMissing)(sharedOperators));
178
+ if (tls) {
179
+ resources.push(...(0, operator_cert_manager_1.declareIfMissing)(sharedOperators));
169
180
  }
170
181
  const ingress = {
171
182
  apiVersion: 'networking.k8s.io/v1',
@@ -232,10 +243,7 @@ function Endpoint(props) {
232
243
  // nowhere, so we deliberately skip the CR in that case.
233
244
  const dnsTargets = dnsConfig?.settings?.targets;
234
245
  if (createDnsRecord) {
235
- const hasExternalDNS = sharedOperators.some((op) => op.name === 'external-dns');
236
- if (!hasExternalDNS) {
237
- resources.push((0, core_1.declareOperator)(crds_1.operators['external-dns']()));
238
- }
246
+ resources.push(...(0, operator_external_dns_1.declareIfMissing)(sharedOperators));
239
247
  if (dnsTargets && dnsTargets.length > 0) {
240
248
  resources.push((0, externaldns_1.DNSEndpointComponent)({
241
249
  metadata: { name: `${name}-dns`, namespace },
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Actionable errors for the recurring "app needs secrets but no
3
+ * provisioning backend exists" case. Packages reference this factory
4
+ * instead of hand-writing the same 15-line guidance block per app —
5
+ * the advice lives in one place.
6
+ */
7
+ export interface SecretsRequiredOptions {
8
+ /** Prop that carries the fallback pre-created Secret name */
9
+ propName?: string;
10
+ /** Example Secret name to suggest */
11
+ exampleValue?: string;
12
+ /** Expected keys on the pre-created Secret */
13
+ keys?: string[];
14
+ }
15
+ export declare function secretsRequiredError(app: string, resourceName: string, what: string, opts?: SecretsRequiredOptions): Error;
16
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,sBAA2B,GAChC,KAAK,CAgBP"}
package/dist/errors.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.secretsRequiredError = secretsRequiredError;
4
+ function secretsRequiredError(app, resourceName, what, opts = {}) {
5
+ const { propName = 'secretsName', exampleValue = `${resourceName}-secrets`, keys } = opts;
6
+ return new Error(`${app} "${resourceName}" requires ${what}\n` +
7
+ `\n` +
8
+ `Secrets must never be rendered as plaintext.\n` +
9
+ `\n` +
10
+ `Fix: configure a provisioning secrets backend on the Platform\n` +
11
+ `(openbao, vault, or any provider with a provision() hook):\n` +
12
+ ` <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>\n` +
13
+ ` <${app} name="${resourceName}" />\n` +
14
+ ` </Platform>\n` +
15
+ `\n` +
16
+ `Or reference a pre-created Secret${keys ? ` (keys: ${keys.join(', ')})` : ''}:\n` +
17
+ ` ${propName}: "${exampleValue}"`);
18
+ }
19
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;AAeA,oDAqBC;AArBD,SAAgB,oBAAoB,CAClC,GAAW,EACX,YAAoB,EACpB,IAAY,EACZ,OAA+B,EAAE;IAEjC,MAAM,EAAE,QAAQ,GAAG,aAAa,EAAE,YAAY,GAAG,GAAG,YAAY,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IACzF,OAAO,IAAI,KAAK,CACd,GAAG,GAAG,KAAK,YAAY,cAAc,IAAI,IAAI;QAC3C,IAAI;QACJ,gDAAgD;QAChD,IAAI;QACJ,iEAAiE;QACjE,8DAA8D;QAC9D,4EAA4E;QAC5E,QAAQ,GAAG,UAAU,YAAY,QAAQ;QACzC,iBAAiB;QACjB,IAAI;QACJ,oCAAoC,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK;QAClF,KAAK,QAAQ,MAAM,YAAY,GAAG,CACrC,CAAA;AACH,CAAC"}