@ontemper/sdk 0.7.1-postgresql.5 → 0.7.1-postgresql.6

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.
package/README.md CHANGED
@@ -355,9 +355,8 @@ registry; inside a workflow handler, prefer `makePostgresqlPool`, which register
355
355
 
356
356
  ## Resource records and Kafka
357
357
 
358
- `@temper/workflow/resources` gives Effect workflows what `@ontemper/resources` gives legacy ones: record schemas
359
- (`KafkaResource`, `S3Resource`, `AzureBlobResource`, `SftpResource`, `PostgresqlResource`), `kafkaConfig`, and a promise
360
- `env` for code that cannot run an Effect. Declare the Resource with `Resource` from the root; its secrets arrive as
358
+ `@temper/workflow/resources` gives Effect workflows the record schemas and Kafka options of `@ontemper/resources`:
359
+ `KafkaResource`, `S3Resource`, `AzureBlobResource`, `SftpResource`, `PostgresqlResource`, and `kafkaConfig`. Declare the Resource with `Resource` from the root; its secrets arrive as
361
360
  `Redacted` values, and `kafkaConfig` unwraps them itself. It loads the optional peers `@aws-sdk/credential-providers` and
362
361
  `aws-msk-iam-sasl-signer-js` only for AWS MSK IAM.
363
362
 
@@ -371,33 +370,12 @@ class Events extends Resource<Events>()('events', { type: 'kafka', schema: Kafka
371
370
  // In an Effect: const kafka = new Kafka(kafkaConfig(yield* Events));
372
371
  ```
373
372
 
374
- For scripts outside Effect, the subpath exports the promise-style `env`:
373
+ A record that a built-in schema rejects fails the read with the field name, never the value. An unknown closed
374
+ value, such as a new `sslmode`, fails with `UnknownRecordValueError`.
375
375
 
376
- ```ts
377
- import { env, S3Resource } from '@temper/workflow/resources';
378
-
379
- const archive = await env.resources.resolve('archive', S3Resource);
380
- const metadata = await env.resources.inspect('archive');
381
- const { key } = await env.resources.select({ resourceTypeKey: 'http_api', match: { tenantKey } });
382
- const region = await env.variables.get('PARTNER_REGION');
383
- const timeout = (await env.variables.tryGet('PARTNER_TIMEOUT_MS')) ?? '30000';
384
- ```
385
-
386
- Without a schema, `resolve` returns the JSON object; with one, it decodes it and keeps extension fields.
387
- `ResourceNotFoundError` means the key or selection has no record. A found record with a missing reference
388
- fails with `InvalidResourceError`; unknown closed values in a built-in schema fail with `UnknownRecordValueError`.
389
- Authorization failures use `ResourcesUnauthorizedError`; outages use `ResourcesUnavailableError`.
390
-
391
- Promise reads use the same runtime API and Run token as the declarations. Their cache matches the legacy
392
- resolver: a 30 s TTL, up to 15 min of stale reads through an outage (5 min for selections), and a separate
393
- 10 s select-miss cache with a cap of 60 distinct misses per minute. `{ cache: false }` bypasses it;
394
- `{ ttlMs }` sets a read's TTL. The legacy cache environment settings still apply.
395
-
396
- `variables.tryGet` and `variables.has` read the runtime API like `get`, so they are awaited: `tryGet` answers
397
- `undefined` and `has` answers `false` when no Variable answers the key. Legacy read them from a boot snapshot that
398
- only `env.initialize()` filled. `initialize` and `reload` resolve at once, because every read is live. The legacy
399
- partners and connections APIs are excluded.
400
- Existing workflows can keep `@ontemper/resources`; this entry does not modify that package.
376
+ This release has no promise-style `env`: no `env.resources`, `env.variables`, `initialize`, or `reload`. Code that
377
+ cannot run an Effect keeps `@ontemper/resources`; this entry does not modify that package. The legacy partners and
378
+ connections APIs are excluded.
401
379
 
402
380
  ## Versions
403
381
 
@@ -1,6 +1,6 @@
1
1
  import { HttpApi, type HttpApiGroup } from 'effect/http-api';
2
2
  import { type WorkflowManifest } from './Contract/Manifest.js';
3
- export declare const SDK_VERSION = "0.7.1-postgresql.5";
3
+ export declare const SDK_VERSION = "0.7.1-postgresql.6";
4
4
  export declare const RUNTIME_API_VERSION = 1;
5
5
  /** The route the SDK serves for platform probes; an API declaring `GET` on it collides with it on every request. */
6
6
  export declare const HEALTHCHECK_PATH = "/healthcheck";
package/dist/Manifest.js CHANGED
@@ -5,7 +5,7 @@ import { declarationOf } from './Resource.js';
5
5
  import { Trigger } from './Trigger.js';
6
6
  const decodeTrigger = Schema.decodeUnknownSync(TriggerMetadata, { onExcessProperty: 'error' });
7
7
  const identityOf = (resource) => `${resource.kind}:${resource.kind === 'resourceType' ? resource.type : resource.key}`;
8
- export const SDK_VERSION = '0.7.1-postgresql.5';
8
+ export const SDK_VERSION = '0.7.1-postgresql.6';
9
9
  export const RUNTIME_API_VERSION = 1;
10
10
  /** The route the SDK serves for platform probes; an API declaring `GET` on it collides with it on every request. */
11
11
  export const HEALTHCHECK_PATH = '/healthcheck';
package/dist/Redaction.js CHANGED
@@ -167,7 +167,7 @@ const makeMasks = (shared, limit = MASK_LIMIT) => {
167
167
  };
168
168
  };
169
169
  export const makeSecretMasks = (limit) => makeMasks(undefined, limit);
170
- // Reads outside a workflow fiber (the promise `env`, `createPostgresqlPool`) register here, as legacy masked globally.
170
+ // Reads outside a workflow fiber (`createPostgresqlPool`) register here, as legacy masked globally.
171
171
  const processSecretMasks = makeMasks();
172
172
  /** A module's own registry that also masks every secret registered process-wide, in one longest-first pass. */
173
173
  export const makeWorkflowSecretMasks = () => makeMasks(processSecretMasks.own);
@@ -1 +1 @@
1
- {"version":3,"file":"Redaction.js","sourceRoot":"","sources":["../src/Redaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGzD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC,wGAAwG;AACxG,0GAA0G;AAC1G,4GAA4G;AAC5G,MAAM,4BAA4B,GAAG;IACnC,eAAe;IACf,gBAAgB;IAChB,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,UAAU;IACV,QAAQ;CACT,CAAC;AACF,MAAM,uBAAuB,GAAG;IAC9B,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;CACsB,CAAC;AAE1C,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAW,EAAE;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,CACL,4BAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CACjF,CAAC;AACJ,CAAC,CAAC;AAEF,oHAAoH;AACpH,MAAM,cAAc,GAAG;IACrB,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;CAC4B,CAAC;AAE1C,MAAM,eAAe,GAAG,CAAC,IAAY,EAAW,EAAE,CAChD,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEzE,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAW,EAAE;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,MAAM,GAA+B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAU,EAAE,CACpD,IAAI;KACD,KAAK,CAAC,GAAG,CAAC;KACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;IACb,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACvC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC;QACH,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IACD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAClE,CAAC,CAAC;KACD,IAAI,CAAC,GAAG,CAAC,CAAC;AAEf,+GAA+G;AAC/G,MAAM,aAAa,GAAG,CAAC,KAAc,EAAW,EAAE;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,IAAI,GAA+B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,KAAK,QAAQ;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACvG,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAgC,EAAQ,EAAE;IACnE,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;QAAE,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO;IACtC,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QACxC,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3G,CAAC;QACD,kFAAkF;QAClF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvE,IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC/B,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,mCAAmC,CAAC,EACzE,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAQF,wGAAwG;AACxG,MAAM,WAAW,GAAG,CAAC,KAAa,EAAyB,EAAE;IAC3D,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,sFAAsF;QACtF,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAEF,2GAA2G;AAC3G,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC;AAQhC,iHAAiH;AACjH,MAAM,SAAS,GAAG,CAAC,MAAmB,EAAE,KAAK,GAAG,UAAU,EAA8C,EAAE;IACxG,MAAM,GAAG,GAAe,EAAE,MAAM,EAAE,IAAI,GAAG,EAAU,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAClE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,0FAA0F;IAC1F,IAAI,OAA2B,CAAC;IAChC,IAAI,aAAa,GAAG,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC;IACzC,OAAO;QACL,GAAG;QACH,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE;YACvB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBACrC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3C,4GAA4G;oBAC5G,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAClB,SAAS;oBACX,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAClB,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBACxB,IAAI,MAAM,CAAC,IAAI,GAAG,KAAK,IAAI,MAAM,KAAK,SAAS;wBAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACvE,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO,GAAG,SAAS,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;gBAC7D,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAChE,OAAO,KAAK,IAAI,MAAM,CACpB,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;iBACnC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;iBACjD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,KAAK;iBACF,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;gBACvC,0FAA0F;iBACzF,OAAO,CACN,8BAA8B,EAC9B,CAAC,OAAO,EAAE,IAAY,EAAE,GAAW,EAAE,EAAE,CACrC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAC9H,CACJ;iBACA,IAAI,CAAC,GAAG,CAAC,EACZ,GAAG,CACJ,CAAC;YACF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAe,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAE5F,uHAAuH;AACvH,MAAM,kBAAkB,GAAG,SAAS,EAAE,CAAC;AAEvC,+GAA+G;AAC/G,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAgB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAE5F,sHAAsH;AACtH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAc,8BAA8B,EAAE;IACxF,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB;CACvC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAwB,EAAuB,EAAE,CAC/E,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Redaction.js","sourceRoot":"","sources":["../src/Redaction.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,14 @@
1
1
  /**
2
- * Resource readers, records, Kafka client options, and a promise-style `env` for code outside Effect:
3
- * `import { makePostgresqlPool, KafkaResource, kafkaConfig } from '@temper/workflow/resources'`. The surface of
4
- * `@ontemper/resources` without its partner and connection state. PostgreSQL pools load the optional `pg` and `ws`
5
- * peers when a pool is built, and Kafka's optional AWS peers load only for MSK IAM, so importing this module needs none.
2
+ * Resource pools, records, and Kafka client options:
3
+ * `import { makePostgresqlPool, KafkaResource, kafkaConfig } from '@temper/workflow/resources'`. PostgreSQL pools load
4
+ * the optional `pg` and `ws` peers when a pool is built, and Kafka's optional AWS peers load only for MSK IAM, so
5
+ * importing this module needs none.
6
6
  */
7
7
  export { As2IdentityResource, As2PartnerResource } from './As2Resource.js';
8
8
  export { getDatabaseTunnelAuthorization } from './DatabaseTunnelAuthorization.js';
9
9
  export { HttpApiAuth, HttpApiResource, HttpApiUnsupportedAuth, HttpProxy, OAuthTokenRequest, TlsSettings, } from './HttpApiResource.js';
10
10
  export { createPostgresqlPool, makePostgresqlPool, type PostgresqlPoolError } from './PostgreSql.js';
11
- /** A resolved Variable value; the root's `Variable` export is the Effect declaration instead. */
12
- export type Variable = string;
13
11
  export { AzureBlobResource, type JsonObject, type JsonValue, KafkaResource, PostgresqlResource, S3Resource, SftpResource, UnknownRecordValueError, } from './ResourceRecords.js';
14
12
  export { kafkaConfig, type KafkaClientConfig, type KafkaClientSasl, type KafkaClientTlsOptions, type KafkaConfigOptions, OptionalKafkaDependencyError, UnsupportedKafkaAuthError, } from './Kafka.js';
15
- export { env, type RuntimeEnv, type RuntimeEnvConfig, type RuntimeEnvLogger, type RuntimeResourceReads, type RuntimeVariableReads, type RuntimeResolveOptions, type RuntimeResourceRecord, type RuntimeSelectResourceInput, type RuntimeSelectResourceOutput, } from './ResourcesEnv.js';
16
13
  export { InvalidResourceError, ResourceNotFoundError, ResourceNotSelectableError, ResourcesUnauthorizedError, ResourcesUnavailableError, } from './ResourcesErrors.js';
17
14
  //# sourceMappingURL=Resources.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Resources.d.ts","sourceRoot":"","sources":["../src/Resources.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EACL,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAErG,iGAAiG;AACjG,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,GAAG,EACH,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,GACjC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"Resources.d.ts","sourceRoot":"","sources":["../src/Resources.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EACL,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAErG,OAAO,EACL,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC"}
package/dist/Resources.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Resource readers, records, Kafka client options, and a promise-style `env` for code outside Effect:
3
- * `import { makePostgresqlPool, KafkaResource, kafkaConfig } from '@temper/workflow/resources'`. The surface of
4
- * `@ontemper/resources` without its partner and connection state. PostgreSQL pools load the optional `pg` and `ws`
5
- * peers when a pool is built, and Kafka's optional AWS peers load only for MSK IAM, so importing this module needs none.
2
+ * Resource pools, records, and Kafka client options:
3
+ * `import { makePostgresqlPool, KafkaResource, kafkaConfig } from '@temper/workflow/resources'`. PostgreSQL pools load
4
+ * the optional `pg` and `ws` peers when a pool is built, and Kafka's optional AWS peers load only for MSK IAM, so
5
+ * importing this module needs none.
6
6
  */
7
7
  export { As2IdentityResource, As2PartnerResource } from './As2Resource.js';
8
8
  export { getDatabaseTunnelAuthorization } from './DatabaseTunnelAuthorization.js';
@@ -10,6 +10,5 @@ export { HttpApiAuth, HttpApiResource, HttpApiUnsupportedAuth, HttpProxy, OAuthT
10
10
  export { createPostgresqlPool, makePostgresqlPool } from './PostgreSql.js';
11
11
  export { AzureBlobResource, KafkaResource, PostgresqlResource, S3Resource, SftpResource, UnknownRecordValueError, } from './ResourceRecords.js';
12
12
  export { kafkaConfig, OptionalKafkaDependencyError, UnsupportedKafkaAuthError, } from './Kafka.js';
13
- export { env, } from './ResourcesEnv.js';
14
13
  export { InvalidResourceError, ResourceNotFoundError, ResourceNotSelectableError, ResourcesUnauthorizedError, ResourcesUnavailableError, } from './ResourcesErrors.js';
15
14
  //# sourceMappingURL=Resources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Resources.js","sourceRoot":"","sources":["../src/Resources.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EACL,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAA4B,MAAM,iBAAiB,CAAC;AAIrG,OAAO,EACL,iBAAiB,EAGjB,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EAKX,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,GAAG,GAUJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"Resources.js","sourceRoot":"","sources":["../src/Resources.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EACL,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAA4B,MAAM,iBAAiB,CAAC;AAErG,OAAO,EACL,iBAAiB,EAGjB,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EAKX,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC"}
@@ -28,12 +28,8 @@ export declare class ResourcesUnauthorizedError extends ResourcesUnauthorizedErr
28
28
  }
29
29
  declare const ResourcesUnavailableError_base: Schema.Class<ResourcesUnavailableError, Schema.TaggedStruct<"ResourcesUnavailableError", {
30
30
  readonly message: Schema.String;
31
- readonly status: Schema.optional<Schema.Number>;
32
31
  }>, import("effect/Cause").YieldableError>;
33
- /**
34
- * The runtime API gave no usable answer: a transport failure, a timeout, a 5xx, a status the contract does not
35
- * declare, or a body the SDK cannot read. `status` is the HTTP status when an answer arrived.
36
- */
32
+ /** The runtime API gave no usable answer: a transport failure, a timeout, a 5xx, or a body the SDK cannot read. */
37
33
  export declare class ResourcesUnavailableError extends ResourcesUnavailableError_base {
38
34
  }
39
35
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ResourcesErrors.d.ts","sourceRoot":"","sources":["../src/ResourcesErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;AAIhC,2HAA2H;AAC3H,qBAAa,qBAAsB,SAAQ,0BAGzC;CAAG;;;;;AAEL,+HAA+H;AAC/H,qBAAa,0BAA2B,SAAQ,+BAM/C;CAAG;;;;;AAEJ,sJAAsJ;AACtJ,qBAAa,oBAAqB,SAAQ,yBAGxC;CAAG;;;;AAEL,4IAA4I;AAC5I,qBAAa,0BAA2B,SAAQ,+BAG/C;CAAG;;;;;AAEJ;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,8BAG9C;CAAG"}
1
+ {"version":3,"file":"ResourcesErrors.d.ts","sourceRoot":"","sources":["../src/ResourcesErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;AAIhC,2HAA2H;AAC3H,qBAAa,qBAAsB,SAAQ,0BAGzC;CAAG;;;;;AAEL,+HAA+H;AAC/H,qBAAa,0BAA2B,SAAQ,+BAM/C;CAAG;;;;;AAEJ,sJAAsJ;AACtJ,qBAAa,oBAAqB,SAAQ,yBAGxC;CAAG;;;;AAEL,4IAA4I;AAC5I,qBAAa,0BAA2B,SAAQ,+BAG/C;CAAG;;;;AAEJ,mHAAmH;AACnH,qBAAa,yBAA0B,SAAQ,8BAG9C;CAAG"}
@@ -21,10 +21,7 @@ export class InvalidResourceError extends Schema.TaggedError()('InvalidResourceE
21
21
  /** The runtime identity is missing or refused: no API URL or runtime token, a provider that never published a fresh token, or a 401/403. */
22
22
  export class ResourcesUnauthorizedError extends Schema.TaggedError()('ResourcesUnauthorizedError', { message: Schema.String }) {
23
23
  }
24
- /**
25
- * The runtime API gave no usable answer: a transport failure, a timeout, a 5xx, a status the contract does not
26
- * declare, or a body the SDK cannot read. `status` is the HTTP status when an answer arrived.
27
- */
28
- export class ResourcesUnavailableError extends Schema.TaggedError()('ResourcesUnavailableError', { message: Schema.String, status: Schema.optional(Schema.Number) }) {
24
+ /** The runtime API gave no usable answer: a transport failure, a timeout, a 5xx, or a body the SDK cannot read. */
25
+ export class ResourcesUnavailableError extends Schema.TaggedError()('ResourcesUnavailableError', { message: Schema.String }) {
29
26
  }
30
27
  //# sourceMappingURL=ResourcesErrors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResourcesErrors.js","sourceRoot":"","sources":["../src/ResourcesErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,gHAAgH;AAEhH,2HAA2H;AAC3H,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CAAC,uBAAuB,EAAE;IAC9G,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG;AAEL,+HAA+H;AAC/H,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,WAAW,EAA8B,CAC9F,4BAA4B,EAC5B;IACE,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,sJAAsJ;AACtJ,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAAC,sBAAsB,EAAE;IAC3G,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG;AAEL,4IAA4I;AAC5I,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,WAAW,EAA8B,CAC9F,4BAA4B,EAC5B,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAC3B;CAAG;AAEJ;;;GAGG;AACH,MAAM,OAAO,yBAA0B,SAAQ,MAAM,CAAC,WAAW,EAA6B,CAC5F,2BAA2B,EAC3B,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACnE;CAAG"}
1
+ {"version":3,"file":"ResourcesErrors.js","sourceRoot":"","sources":["../src/ResourcesErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,gHAAgH;AAEhH,2HAA2H;AAC3H,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CAAC,uBAAuB,EAAE;IAC9G,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG;AAEL,+HAA+H;AAC/H,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,WAAW,EAA8B,CAC9F,4BAA4B,EAC5B;IACE,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,sJAAsJ;AACtJ,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAAC,sBAAsB,EAAE;IAC3G,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG;AAEL,4IAA4I;AAC5I,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,WAAW,EAA8B,CAC9F,4BAA4B,EAC5B,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAC3B;CAAG;AAEJ,mHAAmH;AACnH,MAAM,OAAO,yBAA0B,SAAQ,MAAM,CAAC,WAAW,EAA6B,CAC5F,2BAA2B,EAC3B,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAC3B;CAAG"}
@@ -1,19 +1,12 @@
1
1
  import { Effect } from 'effect';
2
2
  import { ResourcesUnauthorizedError } from './ResourcesErrors.js';
3
- /** The provider published no usable token in time; the promise `env` reads it as an outage, as `@ontemper/resources` did. */
3
+ /** The provider published no usable token in time; a database tunnel reads it as an outage. */
4
4
  export declare const TOKEN_NOT_PUBLISHED = "Runtime resolver token provider did not publish a fresh token.";
5
- /**
6
- * Which token a read sends. `refreshWindow` waits for a token outside the refresh window: a database tunnel re-checks
7
- * it every 2 s. `unexpired` sends any unexpired token at once and waits 2 s for an expired one, as the legacy
8
- * resolver did, so a stalled provider costs a short wait and an outage instead of a 35 s stall.
9
- */
10
- export type RuntimeTokenPolicy = 'refreshWindow' | 'unexpired';
11
5
  export interface RuntimeTokens {
12
6
  /** The provider's token when it outlives the refresh window, otherwise the next one it publishes. */
13
7
  readonly current: Effect.Effect<string, ResourcesUnauthorizedError>;
14
8
  /** The first usable token other than the one the runtime API just refused. */
15
9
  readonly replacing: (refused: string) => Effect.Effect<string, ResourcesUnauthorizedError>;
16
10
  }
17
- export declare const makeRuntimeTokensWith: (policy: RuntimeTokenPolicy) => Effect.Effect<RuntimeTokens>;
18
11
  export declare const makeRuntimeTokens: Effect.Effect<RuntimeTokens>;
19
12
  //# sourceMappingURL=ResourcesToken.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResourcesToken.d.ts","sourceRoot":"","sources":["../src/ResourcesToken.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,MAAM,EAAsC,MAAM,QAAQ,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,6HAA6H;AAC7H,eAAO,MAAM,mBAAmB,mEAAmE,CAAC;AAqBpG;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,WAAW,CAAC;AAoD/D,MAAM,WAAW,aAAa;IAC5B,qGAAqG;IACrG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACpE,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;CAC5F;AAED,eAAO,MAAM,qBAAqB,WAAY,kBAAkB,KAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAqB1F,CAAC;AAEL,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAA0C,CAAC"}
1
+ {"version":3,"file":"ResourcesToken.d.ts","sourceRoot":"","sources":["../src/ResourcesToken.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,MAAM,EAAsC,MAAM,QAAQ,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,+FAA+F;AAC/F,eAAO,MAAM,mBAAmB,mEAAmE,CAAC;AAqEpG,MAAM,WAAW,aAAa;IAC5B,qGAAqG;IACrG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACpE,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;CAC5F;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAWzD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import { Cache, Clock, Config, Duration, Effect, Option, Redacted, Schedule, Schema } from 'effect';
3
3
  import { ResourcesUnauthorizedError } from './ResourcesErrors.js';
4
- /** The provider published no usable token in time; the promise `env` reads it as an outage, as `@ontemper/resources` did. */
4
+ /** The provider published no usable token in time; a database tunnel reads it as an outage. */
5
5
  export const TOKEN_NOT_PUBLISHED = 'Runtime resolver token provider did not publish a fresh token.';
6
6
  /** A token this close to `exp` could lapse mid-request, so it counts as spent. */
7
7
  const REFRESH_WINDOW_MS = 30_000;
@@ -10,13 +10,11 @@ const PUBLISH_TIMEOUT = Duration.seconds(35);
10
10
  const POLL_INTERVAL = Duration.millis(100);
11
11
  const TokenExpiry = Schema.StringFromBase64Url.pipe(Schema.decodeTo(Schema.fromJsonString(Schema.Struct({ exp: Schema.Number }))));
12
12
  const decodeTokenExpiry = Schema.decodeUnknownOption(TokenExpiry);
13
- /** Whether a JWT outlives `marginMs` from `now`; one without `exp` never does, as in `@ontemper/resources`. */
14
- const outlives = (token, now, marginMs) => Option.match(decodeTokenExpiry(token.split('.')[1]), {
13
+ /** Only a JWT that outlives the refresh window is sent; one without `exp` never is, as in `@ontemper/resources`. */
14
+ const outlivesRefreshWindow = (token, now) => Option.match(decodeTokenExpiry(token.split('.')[1]), {
15
15
  onNone: () => false,
16
- onSome: ({ exp }) => exp * 1000 - now > marginMs,
16
+ onSome: ({ exp }) => exp * 1000 - now > REFRESH_WINDOW_MS,
17
17
  });
18
- const outlivesRefreshWindow = (token, now) => outlives(token, now, REFRESH_WINDOW_MS);
19
- const EXPIRED_TOKEN_WAIT = Duration.seconds(2);
20
18
  const TokenSources = Config.all({
21
19
  file: Config.option(Config.String('UNNBOUND_RUNTIME_TOKEN_FILE')),
22
20
  token: Config.option(Config.Redacted('UNNBOUND_RUNTIME_TOKEN')),
@@ -53,26 +51,17 @@ Effect.map((published) => Option.getOrThrow(published)), Effect.timeoutOrElse({
53
51
  duration: PUBLISH_TIMEOUT,
54
52
  orElse: () => Effect.fail(new ResourcesUnauthorizedError({ message: TOKEN_NOT_PUBLISHED })),
55
53
  }));
56
- export const makeRuntimeTokensWith = (policy) => Effect.gen(function* () {
54
+ export const makeRuntimeTokens = Effect.gen(function* () {
57
55
  // Waiters on one refused token share a single poll; a refusal of a newer token starts its own.
58
56
  const published = yield* Cache.makeWith(awaitPublished, { capacity: 8, timeToLive: () => Duration.zero });
59
57
  const replacing = (refused) => Cache.get(published, refused);
60
58
  const current = Effect.gen(function* () {
61
59
  const token = yield* readToken;
62
60
  const now = yield* Clock.currentTimeMillis;
63
- if (Option.isNone(token))
64
- return yield* replacing('');
65
- if (policy === 'refreshWindow') {
66
- return outlivesRefreshWindow(token.value, now) ? token.value : yield* replacing(token.value);
67
- }
68
- if (outlives(token.value, now, 0))
61
+ if (Option.isSome(token) && outlivesRefreshWindow(token.value, now))
69
62
  return token.value;
70
- return yield* replacing(token.value).pipe(Effect.timeoutOrElse({
71
- duration: EXPIRED_TOKEN_WAIT,
72
- orElse: () => Effect.fail(new ResourcesUnauthorizedError({ message: TOKEN_NOT_PUBLISHED })),
73
- }));
63
+ return yield* replacing(Option.getOrElse(token, () => ''));
74
64
  });
75
65
  return { current, replacing };
76
66
  });
77
- export const makeRuntimeTokens = makeRuntimeTokensWith('refreshWindow');
78
67
  //# sourceMappingURL=ResourcesToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResourcesToken.js","sourceRoot":"","sources":["../src/ResourcesToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResourcesToken.js","sourceRoot":"","sources":["../src/ResourcesToken.ts"],"names":[],"mappings":"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"}
@@ -2,25 +2,12 @@ import { Context, Effect, Layer, Redacted, Schema } from 'effect';
2
2
  import { HttpClient } from 'effect/http';
3
3
  import { type RuntimeInspectedResourceSchema, type SelectResourceRuntimeInputSchema } from './Contract/RuntimeApi.js';
4
4
  import { InvalidResourceError, ResourceNotFoundError, ResourceNotSelectableError, ResourcesUnauthorizedError, ResourcesUnavailableError } from './ResourcesErrors.js';
5
- import { type RuntimeTokenPolicy } from './ResourcesToken.js';
6
5
  /** Finds the one record of a type whose `x-selectable` field equals the value a tenant presented. */
7
6
  export type ResourceSelector = typeof SelectResourceRuntimeInputSchema.Type;
8
7
  export type ReadError = ResourceNotFoundError | InvalidResourceError | ResourcesUnauthorizedError | ResourcesUnavailableError;
9
8
  /** The resolver's answer to `inspect`: literal fields and metadata, never a secret. */
10
9
  export type InspectedResource = typeof RuntimeInspectedResourceSchema.Type;
11
- /** Uncached runtime reads and the current runtime token; the promise `env` sends any unexpired token, as legacy did. */
12
- export declare const runtimeResourceClient: (policy: RuntimeTokenPolicy) => Effect.Effect<{
13
- /**
14
- * The token for one database tunnel; re-read on every call, never cached by the caller. The tunnel re-checks it
15
- * every 2 s, so a token in its 30 s refresh window would end the connection when it expires.
16
- */
17
- tunnelToken: Effect.Effect<string, ResourcesUnauthorizedError, never>;
18
- variable: (key: string) => Effect.Effect<string, ReadError, never>;
19
- resolve: (key: string) => Effect.Effect<Schema.Json, ReadError, never>;
20
- inspect: (key: string) => Effect.Effect<InspectedResource, ReadError>;
21
- select: (selector: ResourceSelector) => Effect.Effect<string, ResourceNotSelectableError | ReadError, never>;
22
- }, never, HttpClient.HttpClient>;
23
- /** The `./postgresql` client: tunnel tokens must outlive their refresh window. */
10
+ /** The `./resources` pool client: uncached runtime reads and the current runtime token. */
24
11
  export declare const makeRuntimeResourceClient: Effect.Effect<{
25
12
  /**
26
13
  * The token for one database tunnel; re-read on every call, never cached by the caller. The tunnel re-checks it
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeResources.d.ts","sourceRoot":"","sources":["../src/RuntimeResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAY,MAAM,EAAQ,KAAK,EAAU,QAAQ,EAAE,MAAM,EAAc,MAAM,QAAQ,CAAC;AAErH,OAAO,EAAE,UAAU,EAA2C,MAAM,aAAa,CAAC;AAElF,OAAO,EAQL,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACtC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAWrF,qGAAqG;AACrG,MAAM,MAAM,gBAAgB,GAAG,OAAO,gCAAgC,CAAC,IAAI,CAAC;AAE5E,MAAM,MAAM,SAAS,GACjB,qBAAqB,GACrB,oBAAoB,GACpB,0BAA0B,GAC1B,yBAAyB,CAAC;AA0B9B,uFAAuF;AACvF,MAAM,MAAM,iBAAiB,GAAG,OAAO,8BAA8B,CAAC,IAAI,CAAC;AAuJ3E,wHAAwH;AACxH,eAAO,MAAM,qBAAqB,WAAY,kBAAkB;IAI1D;;;OAGG;;oBAEa,MAAM;mBACP,MAAM;mBACN,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAAC;uBAChD,gBAAgB;gCAErC,CAAC;AAEL,kFAAkF;AAClF,eAAO,MAAM,yBAAyB;IAbhC;;;OAGG;;oBAEa,MAAM;mBACP,MAAM;mBACN,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAAC;uBAChD,gBAAgB;gCAKsC,CAAC;AA8BhF,yGAAyG;AACzG,MAAM,WAAW,cAAc;IAC7B,wGAAwG;IACxG,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IACxF,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,oBAAoB,CAAC,CAAC;IAChG,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,gBAAgB,KACvB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,0BAA0B,GAAG,oBAAoB,CAAC,CAAC;CAC3F;;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,qBAErC;IAEC,MAAM,CAAC,QAAQ,CAAC,KAAK,8DAAiD;CACvE"}
1
+ {"version":3,"file":"RuntimeResources.d.ts","sourceRoot":"","sources":["../src/RuntimeResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAY,MAAM,EAAQ,KAAK,EAAU,QAAQ,EAAE,MAAM,EAAc,MAAM,QAAQ,CAAC;AAErH,OAAO,EAAE,UAAU,EAA2C,MAAM,aAAa,CAAC;AAElF,OAAO,EAQL,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACtC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAY9B,qGAAqG;AACrG,MAAM,MAAM,gBAAgB,GAAG,OAAO,gCAAgC,CAAC,IAAI,CAAC;AAE5E,MAAM,MAAM,SAAS,GACjB,qBAAqB,GACrB,oBAAoB,GACpB,0BAA0B,GAC1B,yBAAyB,CAAC;AA0B9B,uFAAuF;AACvF,MAAM,MAAM,iBAAiB,GAAG,OAAO,8BAA8B,CAAC,IAAI,CAAC;AAgJ3E,2FAA2F;AAC3F,eAAO,MAAM,yBAAyB;IAGlC;;;OAGG;;oBAEa,MAAM;mBACP,MAAM;mBACN,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAAC;uBAChD,gBAAgB;gCAErC,CAAC;AA8BH,yGAAyG;AACzG,MAAM,WAAW,cAAc;IAC7B,wGAAwG;IACxG,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IACxF,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,oBAAoB,CAAC,CAAC;IAChG,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,gBAAgB,KACvB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,0BAA0B,GAAG,oBAAoB,CAAC,CAAC;CAC3F;;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,qBAErC;IAEC,MAAM,CAAC,QAAQ,CAAC,KAAK,8DAAiD;CACvE"}
@@ -5,7 +5,7 @@ import { HttpApiClient } from 'effect/http-api';
5
5
  import { ResourcesRuntimeApi, } from './Contract/RuntimeApi.js';
6
6
  import { registerSecrets } from './Redaction.js';
7
7
  import { InvalidResourceError, ResourceNotFoundError, ResourceNotSelectableError, ResourcesUnauthorizedError, ResourcesUnavailableError, } from './ResourcesErrors.js';
8
- import { makeRuntimeTokensWith } from './ResourcesToken.js';
8
+ import { makeRuntimeTokens } from './ResourcesToken.js';
9
9
  // Resolved values are live configuration: an edit, or a revoked secret, reaches a warm process within this window.
10
10
  const CACHE_TTL = Duration.seconds(30);
11
11
  // Bounds memory for a workflow that selects across many tenants; the least recently read entry goes first.
@@ -27,8 +27,8 @@ const statusOfRuntimeError = {
27
27
  RuntimeResourcesUnavailableError: 503,
28
28
  };
29
29
  // One authenticated runtime API caller; `RuntimeResources` and the `@temper/workflow/resources` pools share it.
30
- const runtimeCaller = (policy) => Effect.gen(function* () {
31
- const tokens = yield* makeRuntimeTokensWith(policy);
30
+ const makeRuntimeCaller = Effect.gen(function* () {
31
+ const tokens = yield* makeRuntimeTokens;
32
32
  // Each attempt's scope owns its request: leaving the scope aborts it, so no response outlives its attempt.
33
33
  const platform = HttpClient.withScope(yield* HttpClient.HttpClient).pipe(HttpClient.mapRequestEffect((request) => Config.NonEmptyString('UNNBOUND_API_URL').pipe(Effect.map((apiUrl) => HttpClientRequest.prependUrl(request, apiUrl)), Effect.mapError(() => new ApiUrlMissing()))));
34
34
  // A 401's body is the fixed `Unauthorized`; failing before it is read lets a refused attempt end at once.
@@ -46,13 +46,9 @@ const runtimeCaller = (policy) => Effect.gen(function* () {
46
46
  case 'TokenRefused':
47
47
  return new ResourcesUnauthorizedError({ message: failed('401 Unauthorized') });
48
48
  case 'HttpClientError':
49
- // An undeclared 4xx is still an answer; the promise `env` drops its cached value on it, as legacy did.
50
- return error.response === undefined
51
- ? new ResourcesUnavailableError({ message: failed(error.message) })
52
- : new ResourcesUnavailableError({
53
- message: failed(`${error.response.status}`),
54
- status: error.response.status,
55
- });
49
+ return new ResourcesUnavailableError({
50
+ message: failed(error.response === undefined ? error.message : `${error.response.status}`),
51
+ });
56
52
  case 'SchemaError':
57
53
  return new ResourcesUnavailableError({ message: failed('unreadable answer') });
58
54
  default: {
@@ -92,7 +88,6 @@ const runtimeCaller = (policy) => Effect.gen(function* () {
92
88
  });
93
89
  // Registers the answer's secrets in the caller's context, so a cached read masks them like a fresh one.
94
90
  const unwrap = (read) => read.pipe(Effect.tap(({ redactionMasks }) => registerSecrets(redactionMasks ?? [])), Effect.map(({ value }) => value));
95
- const makeRuntimeCaller = runtimeCaller('refreshWindow');
96
91
  // The four runtime reads, uncached; each answer still carries its `redactionMasks`.
97
92
  const runtimeReads = (call) => ({
98
93
  variable: (key) => call('resolveVariable', `key ${key}`, (api, authorization) => api.resolveVariable({ headers: { authorization }, payload: { key } })),
@@ -107,8 +102,8 @@ const runtimeReads = (call) => ({
107
102
  : undefined);
108
103
  },
109
104
  });
110
- /** Uncached runtime reads and the current runtime token; the promise `env` sends any unexpired token, as legacy did. */
111
- export const runtimeResourceClient = (policy) => Effect.map(runtimeCaller(policy), ({ tokens, call }) => {
105
+ /** The `./resources` pool client: uncached runtime reads and the current runtime token. */
106
+ export const makeRuntimeResourceClient = Effect.map(makeRuntimeCaller, ({ tokens, call }) => {
112
107
  const reads = runtimeReads(call);
113
108
  return {
114
109
  /**
@@ -122,8 +117,6 @@ export const runtimeResourceClient = (policy) => Effect.map(runtimeCaller(policy
122
117
  select: (selector) => Effect.map(unwrap(reads.select(selector)), (selected) => selected.key),
123
118
  };
124
119
  });
125
- /** The `./postgresql` client: tunnel tokens must outlive their refresh window. */
126
- export const makeRuntimeResourceClient = runtimeResourceClient('refreshWindow');
127
120
  const ResourcesMake = Effect.gen(function* () {
128
121
  const reads = runtimeReads((yield* makeRuntimeCaller).call);
129
122
  const cache = (lookup) => Cache.makeWith(lookup, {
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeResources.js","sourceRoot":"","sources":["../src/RuntimeResources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RuntimeResources.js","sourceRoot":"","sources":["../src/RuntimeResources.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ontemper/sdk",
3
- "version": "0.7.1-postgresql.5",
3
+ "version": "0.7.1-postgresql.6",
4
4
  "description": "Effect workflow SDK for Temper.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -105,7 +105,7 @@
105
105
  },
106
106
  "license": "MIT",
107
107
  "sideEffects": false,
108
- "gitHead": "b740e5a21798f3c739e1911d349814fc41a37b34",
108
+ "gitHead": "f1899ad6f8de899c5c43c308806366f3c52894dc",
109
109
  "scripts": {
110
110
  "build": "tsc -p tsconfig.json",
111
111
  "test": "vitest run",
@@ -1,21 +0,0 @@
1
- /**
2
- * A read drops an expired entry; a write sweeps all expired entries at most once per sweep interval. At `maxEntries`, a
3
- * write evicts one entry in this order: an expired entry, the least recently used entry outside its stale window, then
4
- * the least recently used entry inside it. Losing a fresh entry costs one re-fetch; losing a stale-window entry during
5
- * an outage fails the read that needed it.
6
- */
7
- export declare class ExpiringMap<V> {
8
- private readonly maxEntries;
9
- private readonly sweepIntervalMs;
10
- private readonly entries;
11
- private nextSweepAt;
12
- constructor(maxEntries: number, sweepIntervalMs?: number);
13
- get(key: string, now: number): V | undefined;
14
- peek(key: string): V | undefined;
15
- extend(key: string, until: number, now: number): void;
16
- set(key: string, value: V, expiresAt: number, now: number, staleFrom?: number): void;
17
- delete(key: string): void;
18
- get size(): number;
19
- private evictionCandidate;
20
- }
21
- //# sourceMappingURL=ExpiringMap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExpiringMap.d.ts","sourceRoot":"","sources":["../src/ExpiringMap.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,qBAAa,WAAW,CAAC,CAAC;IAKtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IALlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,WAAW,CAAK;IAExB,YACmB,UAAU,EAAE,MAAM,EAClB,eAAe,SAA4B,EAC1D;IAEJ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAQ3C;IAGD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAE/B;IAGD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAKpD;IAGD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,IAAI,CActF;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAExB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAGD,OAAO,CAAC,iBAAiB;CAU1B"}
@@ -1,79 +0,0 @@
1
- // A port of `@ontemper/resources` `expiring-map.ts`, so the promise `env` evicts as the legacy resolver does.
2
- const DEFAULT_SWEEP_INTERVAL_MS = 60_000;
3
- /**
4
- * A read drops an expired entry; a write sweeps all expired entries at most once per sweep interval. At `maxEntries`, a
5
- * write evicts one entry in this order: an expired entry, the least recently used entry outside its stale window, then
6
- * the least recently used entry inside it. Losing a fresh entry costs one re-fetch; losing a stale-window entry during
7
- * an outage fails the read that needed it.
8
- */
9
- export class ExpiringMap {
10
- maxEntries;
11
- sweepIntervalMs;
12
- entries = new Map();
13
- nextSweepAt = 0;
14
- constructor(maxEntries, sweepIntervalMs = DEFAULT_SWEEP_INTERVAL_MS) {
15
- this.maxEntries = maxEntries;
16
- this.sweepIntervalMs = sweepIntervalMs;
17
- }
18
- get(key, now) {
19
- const entry = this.entries.get(key);
20
- if (!entry)
21
- return undefined;
22
- this.entries.delete(key);
23
- if (entry.expiresAt <= now)
24
- return undefined;
25
- // Map iteration follows insertion order, so re-inserting a hit makes the first key the least recently used.
26
- this.entries.set(key, entry);
27
- return entry.value;
28
- }
29
- // The value without a recency touch or an expiry check, for a caller that only compares it before deleting it.
30
- peek(key) {
31
- return this.entries.get(key)?.value;
32
- }
33
- // Keeps a live entry that is never served stale at least until `until`, without a recency touch; never shortens it.
34
- extend(key, until, now) {
35
- const entry = this.entries.get(key);
36
- if (!entry || entry.expiresAt <= now || until <= entry.expiresAt)
37
- return;
38
- entry.expiresAt = until;
39
- entry.staleFrom = until;
40
- }
41
- // `staleFrom` marks when the entry enters its stale window; omit it for an entry that is never served stale.
42
- set(key, value, expiresAt, now, staleFrom = expiresAt) {
43
- this.entries.delete(key);
44
- if (now >= this.nextSweepAt) {
45
- for (const [candidate, entry] of this.entries) {
46
- if (entry.expiresAt <= now)
47
- this.entries.delete(candidate);
48
- }
49
- this.nextSweepAt = now + this.sweepIntervalMs;
50
- }
51
- while (this.entries.size >= this.maxEntries) {
52
- const victim = this.evictionCandidate(now);
53
- if (victim === undefined)
54
- break;
55
- this.entries.delete(victim);
56
- }
57
- this.entries.set(key, { value, expiresAt, staleFrom });
58
- }
59
- delete(key) {
60
- this.entries.delete(key);
61
- }
62
- get size() {
63
- return this.entries.size;
64
- }
65
- // One pass in least-recently-used order; the scan runs only when the map is full.
66
- evictionCandidate(now) {
67
- let outsideStaleWindow;
68
- let first;
69
- for (const [candidate, entry] of this.entries) {
70
- if (entry.expiresAt <= now)
71
- return candidate;
72
- first ??= candidate;
73
- if (outsideStaleWindow === undefined && now < entry.staleFrom)
74
- outsideStaleWindow = candidate;
75
- }
76
- return outsideStaleWindow ?? first;
77
- }
78
- }
79
- //# sourceMappingURL=ExpiringMap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExpiringMap.js","sourceRoot":"","sources":["../src/ExpiringMap.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { type Schema } from 'effect';
2
- import type { RuntimeEnvConfig, RuntimeEnvLogger, RuntimeResolveOptions } from './ResourcesEnv.js';
3
- export interface CachePolicy {
4
- readonly staleIfErrorMs: number;
5
- readonly cacheMisses: boolean;
6
- }
7
- /** The legacy resolver cache, keyed by operation and target; every caller gets its own copy of a value. */
8
- export declare class RuntimeReadCache {
9
- private readonly values;
10
- private readonly misses;
11
- private readonly inFlight;
12
- private readonly defaultTtlMs;
13
- readonly readPolicy: CachePolicy;
14
- readonly selectPolicy: CachePolicy;
15
- private readonly notFoundTtlMs;
16
- private readonly missCapPerMinute;
17
- private missWindowStart;
18
- private readonly missedInWindow;
19
- private holdingMisses;
20
- private generation;
21
- private readonly now;
22
- private readonly logger;
23
- constructor(config: RuntimeEnvConfig & {
24
- readonly logger: RuntimeEnvLogger;
25
- });
26
- read<A extends Schema.Json>(target: string, options: RuntimeResolveOptions | undefined, policy: CachePolicy, fetch: () => Promise<A>): Promise<A>;
27
- private nextGeneration;
28
- private rollMissWindow;
29
- private recordConfirmedMiss;
30
- private invalidate;
31
- private load;
32
- }
33
- //# sourceMappingURL=ResourcesCache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResourcesCache.d.ts","sourceRoot":"","sources":["../src/ResourcesCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAsCnG,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAmBD,2GAA2G;AAC3G,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,eAAe,CAA4B;IAEnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAGpD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAE1C,YAAY,MAAM,EAAE,gBAAgB,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;KAAE,EA2B3E;IAEK,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,IAAI,EAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAC1C,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,CAAC,CAAC,CA6CZ;IAED,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,UAAU;YAaJ,IAAI;CAyCnB"}
@@ -1,205 +0,0 @@
1
- import {} from 'effect';
2
- import { ExpiringMap } from './ExpiringMap.js';
3
- import { ResourceNotFoundError, ResourcesUnauthorizedError, ResourcesUnavailableError } from './ResourcesErrors.js';
4
- import { TOKEN_NOT_PUBLISHED } from './ResourcesToken.js';
5
- const DEFAULT_TTL_MS = 30_000;
6
- const DEFAULT_STALE_IF_ERROR_MS = 15 * 60_000;
7
- const DEFAULT_SELECT_STALE_IF_ERROR_MS = 5 * 60_000;
8
- const DEFAULT_NOT_FOUND_TTL_MS = 10_000;
9
- // One tenant costs a select, a resolve, and its Variables, so 1,000 entries held only ~450 tenants per process.
10
- const DEFAULT_MAX_ENTRIES = 10_000;
11
- const DEFAULT_MISS_CAP_PER_MINUTE = 60;
12
- const MISS_WINDOW_MS = 60_000;
13
- const RETRY_AFTER_UNAVAILABLE_MS = 5_000;
14
- const readEnvInteger = (name, fallback, min) => {
15
- const raw = process.env[name];
16
- if (!raw)
17
- return fallback;
18
- const value = Number(raw);
19
- return Number.isSafeInteger(value) && value >= min ? value : fallback;
20
- };
21
- // No usable answer: a transport fault, a timeout, a 5xx, or a token provider that stopped publishing (an API outage).
22
- // An undeclared 4xx carries its status: it is an answer, so it drops the cached value instead of serving it stale.
23
- const isOutage = (error) => (error instanceof ResourcesUnavailableError &&
24
- (error.status === undefined || error.status >= 500 || error.status < 400)) ||
25
- (error instanceof ResourcesUnauthorizedError && error.message === TOKEN_NOT_PUBLISHED);
26
- /** The legacy resolver cache, keyed by operation and target; every caller gets its own copy of a value. */
27
- export class RuntimeReadCache {
28
- values;
29
- // Misses live apart from values so a flood of unknown tenant keys cannot evict the known ones.
30
- misses;
31
- inFlight = new Map();
32
- defaultTtlMs;
33
- readPolicy;
34
- selectPolicy;
35
- notFoundTtlMs;
36
- missCapPerMinute;
37
- missWindowStart = Number.NEGATIVE_INFINITY;
38
- // Distinct select keys the API answered 404 for in the current window, until the cap is reached.
39
- missedInWindow = new Set();
40
- // Past the cap a 404 is cached until the window ends: every unseen key still reaches the API once, but no key the API
41
- // just refused is sent again that minute.
42
- holdingMisses = false;
43
- generation = 0;
44
- now;
45
- logger;
46
- constructor(config) {
47
- // Zero or a negative age would expire every entry on write and turn each read into a resolver call.
48
- this.defaultTtlMs =
49
- config.defaultTtlMs ?? readEnvInteger('UNNBOUND_RUNTIME_RESOLVE_CACHE_MAX_AGE', DEFAULT_TTL_MS, 1);
50
- this.readPolicy = {
51
- staleIfErrorMs: config.staleIfErrorMs ??
52
- readEnvInteger('TEMPER_RUNTIME_RESOLVE_STALE_IF_ERROR_MAX_AGE', DEFAULT_STALE_IF_ERROR_MS, 0),
53
- cacheMisses: false,
54
- };
55
- this.selectPolicy = {
56
- staleIfErrorMs: config.selectStaleIfErrorMs ??
57
- readEnvInteger('TEMPER_RUNTIME_RESOLVE_SELECT_STALE_IF_ERROR_MAX_AGE', DEFAULT_SELECT_STALE_IF_ERROR_MS, 0),
58
- cacheMisses: true,
59
- };
60
- this.notFoundTtlMs =
61
- config.notFoundTtlMs ?? readEnvInteger('TEMPER_RUNTIME_RESOLVE_NOT_FOUND_MAX_AGE', DEFAULT_NOT_FOUND_TTL_MS, 0);
62
- this.missCapPerMinute =
63
- config.missCapPerMinute ??
64
- readEnvInteger('TEMPER_RUNTIME_RESOLVE_MISS_CAP_PER_MINUTE', DEFAULT_MISS_CAP_PER_MINUTE, 0);
65
- const maxEntries = config.maxEntries ?? readEnvInteger('TEMPER_RUNTIME_RESOLVE_CACHE_MAX_ENTRIES', DEFAULT_MAX_ENTRIES, 1);
66
- this.values = new ExpiringMap(maxEntries);
67
- this.misses = new ExpiringMap(maxEntries);
68
- this.now = config.now ?? Date.now;
69
- this.logger = config.logger;
70
- }
71
- async read(target, options, policy, fetch) {
72
- // A reader can serve multiple workflow identities during its life; a cache hit must belong to this one.
73
- const key = JSON.stringify([
74
- process.env.UNNBOUND_API_URL ?? '',
75
- process.env.UNNBOUND_WORKFLOW_ID ?? '',
76
- process.env.UNNBOUND_DEPLOYMENT_ID ?? '',
77
- process.env.TEMPER_ENVIRONMENT ?? process.env.UNNBOUND_ENVIRONMENT ?? '',
78
- target,
79
- ]);
80
- // SAFETY: `key` encodes the operation, so every value under it was stored by the same call site with the same `A`.
81
- const deliver = (value) => structuredClone(value);
82
- if (options?.cache === false) {
83
- const started = this.nextGeneration();
84
- try {
85
- const value = await fetch();
86
- this.invalidate(key, started);
87
- return deliver(value);
88
- }
89
- catch (error) {
90
- // Only an outage leaves the cache alone; any API answer replaces what the cache knew about this key.
91
- if (!(error instanceof Error && isOutage(error)))
92
- this.invalidate(key, started);
93
- throw error;
94
- }
95
- }
96
- const now = this.now();
97
- const entry = this.values.get(key, now);
98
- if (entry && (now < entry.freshUntil || now < entry.retryAt))
99
- return deliver(entry.value);
100
- const miss = this.misses.get(key, now);
101
- if (miss)
102
- throw new ResourceNotFoundError({ target: miss.error.target, message: miss.error.message });
103
- const existing = this.inFlight.get(key);
104
- if (existing)
105
- return deliver(await existing.promise);
106
- const token = { superseded: false, generation: this.nextGeneration() };
107
- const load = {
108
- token,
109
- promise: this.load(key, fetch, options?.ttlMs ?? this.defaultTtlMs, policy, token),
110
- };
111
- this.inFlight.set(key, load);
112
- try {
113
- return deliver(await load.promise);
114
- }
115
- finally {
116
- if (this.inFlight.get(key) === load)
117
- this.inFlight.delete(key);
118
- }
119
- }
120
- nextGeneration() {
121
- this.generation += 1;
122
- return this.generation;
123
- }
124
- rollMissWindow(now) {
125
- if (now - this.missWindowStart < MISS_WINDOW_MS)
126
- return;
127
- this.missWindowStart = now;
128
- this.missedInWindow.clear();
129
- this.holdingMisses = false;
130
- }
131
- // The cap limits the rate of distinct confirmed misses, never a first request: a valid tenant this process has not
132
- // seen is indistinguishable from a rotating miss until the API answers. Returns when the 404 stops being cached.
133
- recordConfirmedMiss(key, now) {
134
- const expiresAt = now + this.notFoundTtlMs;
135
- if (this.missCapPerMinute === 0)
136
- return expiresAt;
137
- this.rollMissWindow(now);
138
- const windowEnd = this.missWindowStart + MISS_WINDOW_MS;
139
- if (!this.holdingMisses) {
140
- this.missedInWindow.add(key);
141
- if (this.missedInWindow.size < this.missCapPerMinute)
142
- return expiresAt;
143
- this.holdingMisses = true;
144
- // The 404s that filled the cap are held too, unless a newer answer or eviction already removed them.
145
- for (const missed of this.missedInWindow)
146
- this.misses.extend(missed, windowEnd, now);
147
- this.missedInWindow.clear();
148
- this.logger.warn({ missCapPerMinute: this.missCapPerMinute }, 'Runtime resolver select miss cap reached; keys answered 404 are not sent again until the minute ends.');
149
- }
150
- return Math.max(expiresAt, windowEnd);
151
- }
152
- // A `cache: false` answer replaces what older reads cached or still have in flight; a read that started after the
153
- // bypass carries a newer answer and stays.
154
- invalidate(key, started) {
155
- const value = this.values.peek(key);
156
- if (value && value.generation < started)
157
- this.values.delete(key);
158
- const miss = this.misses.peek(key);
159
- if (miss && miss.generation < started)
160
- this.misses.delete(key);
161
- const pending = this.inFlight.get(key);
162
- if (pending && pending.token.generation < started) {
163
- pending.token.superseded = true;
164
- this.inFlight.delete(key);
165
- }
166
- }
167
- // An outage serves the last good value; any answer from the resolver (401, 403, 404, 409) drops it.
168
- async load(key, fetch, ttlMs, policy, token) {
169
- try {
170
- const value = await fetch();
171
- // A refresh that a newer `cache: false` answer superseded must not write its older answer back.
172
- if (token.superseded)
173
- return value;
174
- const now = this.now();
175
- const freshUntil = now + ttlMs;
176
- const entry = { value, freshUntil, retryAt: 0, warned: false, generation: token.generation };
177
- this.values.set(key, entry, freshUntil + policy.staleIfErrorMs, now, freshUntil);
178
- return value;
179
- }
180
- catch (error) {
181
- // A superseded answer is older than the bypass that replaced it: it neither counts as a miss nor changes the cache.
182
- if (token.superseded)
183
- throw error;
184
- const now = this.now();
185
- if (!(error instanceof Error && isOutage(error))) {
186
- this.values.delete(key);
187
- if (policy.cacheMisses && error instanceof ResourceNotFoundError) {
188
- const expiresAt = this.recordConfirmedMiss(key, now);
189
- this.misses.set(key, { error, generation: token.generation }, expiresAt, now);
190
- }
191
- throw error;
192
- }
193
- const last = this.values.get(key, now);
194
- if (!last)
195
- throw error;
196
- last.retryAt = now + RETRY_AFTER_UNAVAILABLE_MS;
197
- if (!last.warned) {
198
- last.warned = true;
199
- this.logger.warn({ err: error.message, staleForMs: now - last.freshUntil }, 'Runtime resolver unavailable; serving the last good value.');
200
- }
201
- return last.value;
202
- }
203
- }
204
- }
205
- //# sourceMappingURL=ResourcesCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResourcesCache.js","sourceRoot":"","sources":["../src/ResourcesCache.ts"],"names":[],"mappings":"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"}
@@ -1,95 +0,0 @@
1
- import { Effect, Schema } from 'effect';
2
- import { type JsonObject, type RecordSchema } from './ResourceRecords.js';
3
- import { RuntimeReadCache } from './ResourcesCache.js';
4
- import { type InspectedResource } from './RuntimeResources.js';
5
- /** Per-read cache control, as in `@ontemper/resources`. */
6
- export interface RuntimeResolveOptions {
7
- /** `false` reads the resolver and replaces what the cache held for this read. */
8
- cache?: boolean;
9
- /** How long this answer stays fresh; default 30 s (`UNNBOUND_RUNTIME_RESOLVE_CACHE_MAX_AGE`). */
10
- ttlMs?: number;
11
- }
12
- /** The resource record as `inspect` returns it: literal fields only, secrets left to `resolve`. */
13
- export type RuntimeResourceRecord = InspectedResource;
14
- export interface RuntimeSelectResourceInput {
15
- resourceTypeKey: string;
16
- match: Record<string, string>;
17
- }
18
- export interface RuntimeSelectResourceOutput {
19
- key: string;
20
- }
21
- /** Where a warning goes; the SDK line logger on stdout by default. */
22
- export interface RuntimeEnvLogger {
23
- readonly warn: (fields: Readonly<Record<string, string | number>>, message: string) => void;
24
- }
25
- /** Cache settings; each defaults to its `@ontemper/resources` environment variable, then to the legacy default. */
26
- export interface RuntimeEnvConfig {
27
- readonly now?: () => number;
28
- readonly defaultTtlMs?: number;
29
- /** How long past its TTL a value still serves while the resolver is unavailable; 0 turns stale serving off. */
30
- readonly staleIfErrorMs?: number;
31
- /** The same window for `select`, shorter because a selection can authorize a tenant the API now refuses. */
32
- readonly selectStaleIfErrorMs?: number;
33
- readonly notFoundTtlMs?: number;
34
- readonly maxEntries?: number;
35
- /** Distinct `select` 404s per minute; past it, a 404 stays cached until the minute ends. 0 turns it off. */
36
- readonly missCapPerMinute?: number;
37
- readonly logger?: RuntimeEnvLogger;
38
- }
39
- declare const makeClient: Effect.Effect<{
40
- tunnelToken: Effect.Effect<string, import("./ResourcesErrors.js").ResourcesUnauthorizedError, never>;
41
- variable: (key: string) => Effect.Effect<string, import("./RuntimeResources.js").ReadError, never>;
42
- resolve: (key: string) => Effect.Effect<Schema.Json, import("./RuntimeResources.js").ReadError, never>;
43
- inspect: (key: string) => Effect.Effect<InspectedResource, import("./RuntimeResources.js").ReadError>;
44
- select: (selector: import("./RuntimeResources.js").ResourceSelector) => Effect.Effect<string, import("./ResourcesErrors.js").ResourceNotSelectableError | import("./RuntimeResources.js").ReadError, never>;
45
- }, never, import("effect/http/HttpClient").HttpClient>;
46
- type Client = Effect.Success<typeof makeClient>;
47
- /** `env.resources`: the reads of `@ontemper/resources` `ResourceAccessor`. */
48
- export declare class RuntimeResourceReads {
49
- private readonly cache;
50
- private readonly connect;
51
- constructor(cache: RuntimeReadCache, connect: () => Promise<Client>);
52
- /** The record without its secret fields: type, scope, and literal values. */
53
- inspect(key: string, options?: RuntimeResolveOptions): Promise<RuntimeResourceRecord>;
54
- /** The value with every secret field filled in; given a `schema` (such as `SftpResource`), the decoded value. */
55
- resolve(key: string, schema?: undefined, options?: RuntimeResolveOptions): Promise<JsonObject>;
56
- resolve<S extends RecordSchema>(key: string, schema: S, options?: RuntimeResolveOptions): Promise<S['Type']>;
57
- /** The key of the record whose selectable field matches; feed it to `resolve`. */
58
- select(input: RuntimeSelectResourceInput, options?: RuntimeResolveOptions): Promise<RuntimeSelectResourceOutput>;
59
- }
60
- /** `env.variables`: live Variable reads through the runtime resolver. */
61
- export declare class RuntimeVariableReads {
62
- private readonly cache;
63
- private readonly connect;
64
- constructor(cache: RuntimeReadCache, connect: () => Promise<Client>);
65
- /** The Variable's live value. */
66
- get(key: string, options?: RuntimeResolveOptions): Promise<string>;
67
- /**
68
- * The Variable's live value, or `undefined` when no Variable answers the key. Legacy read a boot snapshot
69
- * synchronously; this reads the runtime API, so it is awaited. Any other failure still rejects.
70
- */
71
- tryGet(key: string, options?: RuntimeResolveOptions): Promise<string | undefined>;
72
- /** Whether a Variable answers the key, read live as `tryGet` reads it. */
73
- has(key: string, options?: RuntimeResolveOptions): Promise<boolean>;
74
- }
75
- /** One reader per process, with the Run token of `UNNBOUND_RUNTIME_TOKEN_FILE` or `UNNBOUND_RUNTIME_TOKEN`. */
76
- export declare class RuntimeEnv {
77
- readonly resources: RuntimeResourceReads;
78
- readonly variables: RuntimeVariableReads;
79
- private client;
80
- constructor(config?: RuntimeEnvConfig);
81
- /**
82
- * Legacy loaded a configuration snapshot here. Every read is live and cached per key, so there is nothing to load;
83
- * it resolves at once so that ported code that awaits it keeps working.
84
- */
85
- initialize(): Promise<void>;
86
- /** Legacy refreshed its snapshot here; reads refresh per key when their cache entry expires. Resolves at once. */
87
- reload(): Promise<void>;
88
- }
89
- /**
90
- * Promise reads of Resources and Variables, with the signatures of `@ontemper/resources` `env`. Errors reject with
91
- * the SDK's Resource errors; `ResourceNotFoundError` means that no record answers the key or the `select` match.
92
- */
93
- export declare const env: Pick<RuntimeEnv, 'resources' | 'variables' | 'initialize' | 'reload'>;
94
- export {};
95
- //# sourceMappingURL=ResourcesEnv.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResourcesEnv.d.ts","sourceRoot":"","sources":["../src/ResourcesEnv.ts"],"names":[],"mappings":"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"}
@@ -1,135 +0,0 @@
1
- import { Cause, ConfigProvider, Effect, Exit, Layer, Option, Schema } from 'effect';
2
- import { FetchHttpClient } from 'effect/http';
3
- import { loggerLayer, writeStdoutLine } from './Logger.js';
4
- import { decodeRecord } from './ResourceRecords.js';
5
- import { RuntimeReadCache } from './ResourcesCache.js';
6
- import { InvalidResourceError, ResourceNotFoundError, ResourcesUnavailableError } from './ResourcesErrors.js';
7
- import { runtimeResourceClient } from './RuntimeResources.js';
8
- const normalizeKey = (key) => {
9
- const normalized = key.trim();
10
- if (!normalized)
11
- throw new Error('Runtime resolver key is required.');
12
- return normalized;
13
- };
14
- // Key order must not split the cache: `{a,b}` and `{b,a}` select the same record.
15
- const selectTarget = ({ resourceTypeKey, match }) => JSON.stringify([
16
- resourceTypeKey,
17
- Object.keys(match)
18
- .sort()
19
- .map((field) => [field, match[field]]),
20
- ]);
21
- const decodeJsonObject = Schema.decodeUnknownOption(Schema.Record(Schema.String, Schema.MutableJson));
22
- // The resolver answers a record as a JSON object; anything else cannot serve the read.
23
- const asRecord = (key, value) => {
24
- const record = Option.getOrUndefined(decodeJsonObject(value));
25
- return record !== undefined
26
- ? Effect.succeed(record)
27
- : Effect.fail(new InvalidResourceError({ target: `key ${key}`, message: `Resource ${key} did not resolve to a JSON object` }));
28
- };
29
- // The live environment on every read, as `workflow()` provides it; Effect's default provider keeps a first-use copy.
30
- const liveConfig = Layer.unwrap(Effect.sync(() => ConfigProvider.layer(ConfigProvider.fromEnvRecord(process.env, { preserveEmptyStrings: true }))));
31
- const standalone = loggerLayer(writeStdoutLine).pipe(Layer.orDie, Layer.provideMerge(liveConfig));
32
- const run = async (effect) => {
33
- const exit = await Effect.runPromiseExit(effect.pipe(Effect.provide(liveConfig)));
34
- if (Exit.isSuccess(exit))
35
- return exit.value;
36
- throw Cause.squash(exit.cause);
37
- };
38
- const sdkLogger = {
39
- warn: (fields, message) => Effect.runFork(Effect.logWarning(message).pipe(Effect.annotateLogs(fields), Effect.provide(standalone))),
40
- };
41
- const makeClient = runtimeResourceClient('unexpired');
42
- // A resolve 404 cannot tell a missing record from a broken reference inside a found one; inspect answers 404 only
43
- // for the first, as the `./resources` PostgreSQL pool reads it. When inspect cannot answer, the error keeps the
44
- // resolver's 404: an answer, so the cache drops the value instead of serving a credential whose Variable is gone.
45
- const resolveRecord = (client, key) => client.resolve(key).pipe(Effect.catchTag('ResourceNotFoundError', (notFound) => client.inspect(key).pipe(Effect.catchTag('ResourceNotFoundError', () => Effect.fail(notFound)), Effect.mapError((error) => error instanceof ResourceNotFoundError
46
- ? error
47
- : new ResourcesUnavailableError({
48
- status: 404,
49
- message: `${notFound.message}; inspect could not tell a missing record from a broken reference: ${error.message}`,
50
- })), Effect.flatMap(() => Effect.fail(new InvalidResourceError({ target: notFound.target, message: notFound.message }))))), Effect.flatMap((value) => asRecord(key, value)));
51
- /** `env.resources`: the reads of `@ontemper/resources` `ResourceAccessor`. */
52
- export class RuntimeResourceReads {
53
- cache;
54
- connect;
55
- constructor(cache, connect) {
56
- this.cache = cache;
57
- this.connect = connect;
58
- }
59
- /** The record without its secret fields: type, scope, and literal values. */
60
- async inspect(key, options) {
61
- const normalized = normalizeKey(key);
62
- return this.cache.read(`resource.inspect:${normalized}`, options, this.cache.readPolicy, async () => run((await this.connect()).inspect(normalized)));
63
- }
64
- async resolve(key, schema, options) {
65
- const normalized = normalizeKey(key);
66
- const value = await this.cache.read(`resource.resolve:${normalized}`, options, this.cache.readPolicy, async () => run(resolveRecord(await this.connect(), normalized)));
67
- return schema === undefined ? value : run(decodeRecord(schema, normalized, value));
68
- }
69
- /** The key of the record whose selectable field matches; feed it to `resolve`. */
70
- async select(input, options) {
71
- const selector = { resourceTypeKey: input.resourceTypeKey, match: { ...input.match } };
72
- const key = await this.cache.read(`resource.select:${selectTarget(selector)}`, options, this.cache.selectPolicy, async () => run((await this.connect()).select(selector)));
73
- return { key };
74
- }
75
- }
76
- /** `env.variables`: live Variable reads through the runtime resolver. */
77
- export class RuntimeVariableReads {
78
- cache;
79
- connect;
80
- constructor(cache, connect) {
81
- this.cache = cache;
82
- this.connect = connect;
83
- }
84
- /** The Variable's live value. */
85
- async get(key, options) {
86
- const normalized = normalizeKey(key);
87
- return this.cache.read(`variable.resolve:${normalized}`, options, this.cache.readPolicy, async () => run((await this.connect()).variable(normalized)));
88
- }
89
- /**
90
- * The Variable's live value, or `undefined` when no Variable answers the key. Legacy read a boot snapshot
91
- * synchronously; this reads the runtime API, so it is awaited. Any other failure still rejects.
92
- */
93
- async tryGet(key, options) {
94
- try {
95
- return await this.get(key, options);
96
- }
97
- catch (error) {
98
- if (error instanceof ResourceNotFoundError)
99
- return undefined;
100
- throw error;
101
- }
102
- }
103
- /** Whether a Variable answers the key, read live as `tryGet` reads it. */
104
- async has(key, options) {
105
- return (await this.tryGet(key, options)) !== undefined;
106
- }
107
- }
108
- /** One reader per process, with the Run token of `UNNBOUND_RUNTIME_TOKEN_FILE` or `UNNBOUND_RUNTIME_TOKEN`. */
109
- export class RuntimeEnv {
110
- resources;
111
- variables;
112
- client;
113
- constructor(config = {}) {
114
- const cache = new RuntimeReadCache({ ...config, logger: config.logger ?? sdkLogger });
115
- const connect = () => {
116
- this.client ??= Effect.runPromise(makeClient.pipe(Effect.provide(FetchHttpClient.layer)));
117
- return this.client;
118
- };
119
- this.resources = new RuntimeResourceReads(cache, connect);
120
- this.variables = new RuntimeVariableReads(cache, connect);
121
- }
122
- /**
123
- * Legacy loaded a configuration snapshot here. Every read is live and cached per key, so there is nothing to load;
124
- * it resolves at once so that ported code that awaits it keeps working.
125
- */
126
- async initialize() { }
127
- /** Legacy refreshed its snapshot here; reads refresh per key when their cache entry expires. Resolves at once. */
128
- async reload() { }
129
- }
130
- /**
131
- * Promise reads of Resources and Variables, with the signatures of `@ontemper/resources` `env`. Errors reject with
132
- * the SDK's Resource errors; `ResourceNotFoundError` means that no record answers the key or the `select` match.
133
- */
134
- export const env = new RuntimeEnv();
135
- //# sourceMappingURL=ResourcesEnv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResourcesEnv.js","sourceRoot":"","sources":["../src/ResourcesEnv.ts"],"names":[],"mappings":"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"}