@pikku/azure-functions 0.12.4 → 0.12.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/CHANGELOG.md CHANGED
@@ -1,3 +1,61 @@
1
+ ## 0.12.6
2
+
3
+ ### Patch Changes
4
+
5
+ - 6794681: Publish the ecosystem surface as per-area sub-barrels under `@pikku/core/ecosystem/*`, and point generated code, the CLI, the inspector and the runtime adapters at them.
6
+
7
+ 348 names that only generated code, the toolchain or a runtime adapter ever imports now have a second home on `@pikku/core/ecosystem/<area>` — one sub-barrel per area, matching how core already publishes its entrypoints, so no single barrel grows without bound and a consumer only pulls in the area it uses.
8
+
9
+ This step is additive: every name is still exported from the entrypoint it was published from before, so nothing downstream breaks. Removing them from the app-facing barrels is a later change, and needs a release carrying `./ecosystem/*` first.
10
+
11
+ - Updated dependencies [7406bfe]
12
+ - Updated dependencies [6794681]
13
+ - @pikku/core@0.12.84
14
+
15
+ ## 0.12.5
16
+
17
+ ### Patch Changes
18
+
19
+ - 78b29f0: `SecretService` now returns a `SecretValue<T>` rather than the bare value, so a
20
+ vault secret cannot reach a sink by accident.
21
+
22
+ `SecretValue` is nominally typed, which means it is not assignable to `string`
23
+ (or to any other concretely-typed field). Every sink with a real type — a
24
+ database column, an email body, a session payload — rejects it with no lint
25
+ rule involved. The sinks typed `any`, `unknown`, or a free generic — the logger,
26
+ queue payloads, webhook and email inputs, and a function's own output — are
27
+ guarded with `Safe<T>`, which collapses a `SecretValue` found anywhere inside
28
+ `T`, however deeply nested, to `never`.
29
+
30
+ Unwrap deliberately at the point the secret reaches the wire:
31
+
32
+ ```ts
33
+ const secret = await secrets.getSecret('BETTER_AUTH_SECRET')
34
+ betterAuth({ secret: secret.reveal() })
35
+ ```
36
+
37
+ Two behaviours cover what types cannot see. Structured serialization redacts —
38
+ `JSON.stringify` and node's inspect both yield `[secret]`, so an audit or log
39
+ write stays honest without crashing the request. String coercion throws
40
+ `SecretCoercionError`, because a template literal is always a leak.
41
+
42
+ `AuditLog.write` is guarded the same way as the logger, since an audit event
43
+ carries `input` and `metadata` as `unknown` and nominality alone cannot stop a
44
+ secret landing in one.
45
+
46
+ `.reveal()` is the deliberate escape hatch, and what it hands back is an
47
+ ordinary string as far as every sink signature is concerned. **PKU953** closes
48
+ that gap: under `pikku all --security` the inspector reports a revealed secret
49
+ that flows into a logger, an audit, a queue, an email or a webhook — `console` included.
50
+
51
+ This also fixed a real one: `remote-addon-auth.ts` called `String(token)` on an
52
+ `unknown` and wrote the result straight into an `Authorization` header.
53
+
54
+ - Updated dependencies [62ea4cc]
55
+ - Updated dependencies [9dddff8]
56
+ - Updated dependencies [78b29f0]
57
+ - @pikku/core@0.12.76
58
+
1
59
  ## 0.12.4
2
60
 
3
61
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- import type { DeploymentService, DeploymentConfig } from '@pikku/core/services';
1
+ import type { DeploymentService, DeploymentConfig } from '@pikku/core/ecosystem/services';
2
2
  import type { JWTService } from '@pikku/core/services';
3
3
  import type { SecretService } from '@pikku/core/services';
4
4
  export declare class AzureDeploymentService implements DeploymentService {
@@ -1,4 +1,4 @@
1
- import { buildRemoteHeaders } from '@pikku/core/remote';
1
+ import { buildRemoteHeaders } from '@pikku/core/ecosystem/remote';
2
2
  export class AzureDeploymentService {
3
3
  jwt;
4
4
  secrets;
@@ -1 +1 @@
1
- {"version":3,"file":"azure-deployment-service.js","sourceRoot":"","sources":["../src/azure-deployment-service.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,OAAO,sBAAsB;IAIvB;IACA;IAJF,QAAQ,CAAqB;IAErC,YACU,GAA2B,EAC3B,OAAsB,EAC9B,gBAAwC;QAFhC,QAAG,GAAH,GAAG,CAAwB;QAC3B,YAAO,GAAP,OAAO,CAAe;QAG9B,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,IAAI,KAAmB,CAAC;IAC9B,KAAK,CAAC,KAAK,CAAC,OAAyB,IAAkB,CAAC;IACxD,KAAK,CAAC,IAAI,KAAmB,CAAC;IAE9B,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,IAAa,EACb,OAAiB,EACjB,OAAgB;QAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,2CAA2C,QAAQ,KAAK;gBACtD,uBAAuB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAA;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACtC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,EACZ,QAAQ,EACR,OAAO,EACP,OAAO,CACR,CAAA;QAED,MAAM,GAAG,GAAG,GAAG,WAAW,eAAe,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;QACvE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;SAC/B,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,SAAiB,CAAA;YACrB,IAAI,CAAC;gBACH,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YACnC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,aAAa,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CACnG,CAAA;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"azure-deployment-service.js","sourceRoot":"","sources":["../src/azure-deployment-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,OAAO,sBAAsB;IAIvB;IACA;IAJF,QAAQ,CAAqB;IAErC,YACU,GAA2B,EAC3B,OAAsB,EAC9B,gBAAwC;QAFhC,QAAG,GAAH,GAAG,CAAwB;QAC3B,YAAO,GAAP,OAAO,CAAe;QAG9B,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,IAAI,KAAmB,CAAC;IAC9B,KAAK,CAAC,KAAK,CAAC,OAAyB,IAAkB,CAAC;IACxD,KAAK,CAAC,IAAI,KAAmB,CAAC;IAE9B,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,IAAa,EACb,OAAiB,EACjB,OAAgB;QAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,2CAA2C,QAAQ,KAAK;gBACtD,uBAAuB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAA;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACtC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,EACZ,QAAQ,EACR,OAAO,EACP,OAAO,CACR,CAAA;QAED,MAAM,GAAG,GAAG,GAAG,WAAW,eAAe,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;QACvE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;SAC/B,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,SAAiB,CAAA;YACrB,IAAI,CAAC;gBACH,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YACnC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,aAAa,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CACnG,CAAA;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
- import type { QueueService, QueueJob, JobOptions } from '@pikku/core/queue';
1
+ import type { QueueService, QueueJob } from '@pikku/core/queue';
2
+ import type { JobOptions } from '@pikku/core/ecosystem/queue';
2
3
  export declare class AzureQueueService implements QueueService {
3
4
  readonly supportsResults = false;
4
5
  private queueServiceClient;
@@ -1 +1 @@
1
- {"version":3,"file":"azure-queue-service.js","sourceRoot":"","sources":["../src/azure-queue-service.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAIzD,MAAM,OAAO,iBAAiB;IACnB,eAAe,GAAG,KAAK,CAAA;IACxB,kBAAkB,CAAoB;IACtC,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAA;IAErD,YAAY,gBAAyB;QACnC,MAAM,OAAO,GAAG,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAA;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC5E,CAAC;IAED,KAAK,CAAC,GAAG,CACP,SAAiB,EACjB,IAAO,EACP,OAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QAErC,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,SAAS;YACb,SAAS;YACT,IAAI;YACJ,WAAW,EAAE,OAAO,EAAE,WAAW;SAClC,CAAA;QAGD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEvE,MAAM,iBAAiB,GAAG,OAAO,EAAE,KAAK;YACtC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC;YACnD,CAAC,CAAC,SAAS,CAAA;QAEb,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAA;QACxD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,MAAc;QAEd,MAAM,IAAI,KAAK,CACb,+CAA+C;YAC7C,4CAA4C;YAC5C,uDAAuD,CAC1D,CAAA;IACH,CAAC;IAEO,cAAc,CAAC,SAAiB;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;YACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAE,CAAA;IAC1C,CAAC;IAMO,gBAAgB,CAAC,SAAiB;QACxC,MAAM,MAAM,GAAG,oBAAoB,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAA;QAChE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAA;IACzC,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,WAAW,EAAE,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"azure-queue-service.js","sourceRoot":"","sources":["../src/azure-queue-service.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAKzD,MAAM,OAAO,iBAAiB;IACnB,eAAe,GAAG,KAAK,CAAA;IACxB,kBAAkB,CAAoB;IACtC,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAA;IAErD,YAAY,gBAAyB;QACnC,MAAM,OAAO,GAAG,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAA;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC5E,CAAC;IAED,KAAK,CAAC,GAAG,CACP,SAAiB,EACjB,IAAO,EACP,OAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QAErC,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,SAAS;YACb,SAAS;YACT,IAAI;YACJ,WAAW,EAAE,OAAO,EAAE,WAAW;SAClC,CAAA;QAGD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEvE,MAAM,iBAAiB,GAAG,OAAO,EAAE,KAAK;YACtC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC;YACnD,CAAC,CAAC,SAAS,CAAA;QAEb,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAA;QACxD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,MAAc;QAEd,MAAM,IAAI,KAAK,CACb,+CAA+C;YAC7C,4CAA4C;YAC5C,uDAAuD,CAC1D,CAAA;IACH,CAAC;IAEO,cAAc,CAAC,SAAiB;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;YACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAE,CAAA;IAC1C,CAAC;IAMO,gBAAgB,CAAC,SAAiB;QACxC,MAAM,MAAM,GAAG,oBAAoB,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAA;QAChE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAA;IACzC,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,WAAW,EAAE,CAAA;AAClB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { LocalVariablesService, LocalSecretService } from '@pikku/core/services';
2
2
  import { PikkuFetchHTTPResponse, fetchData } from '@pikku/core/http';
3
3
  import { runQueueJob } from '@pikku/core/queue';
4
- import { runScheduledTask, getScheduledTasks } from '@pikku/core/scheduler';
4
+ import { runScheduledTask } from '@pikku/core/scheduler';
5
+ import { getScheduledTasks } from '@pikku/core/ecosystem/scheduler';
5
6
  let cachedServices = null;
6
7
  async function setupServices(factories) {
7
8
  if (cachedServices)
@@ -1 +1 @@
1
- {"version":3,"file":"handler-factories.js","sourceRoot":"","sources":["../src/handler-factories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-factories.js","sourceRoot":"","sources":["../src/handler-factories.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,23 @@
1
1
  import type { InvocationContext } from '@azure/functions';
2
2
  import type { Logger, LogLevel } from '@pikku/core/services';
3
+ import type { Safe } from '@pikku/core';
3
4
  export declare class AzInvocationLogger implements Logger {
4
5
  private context;
5
6
  constructor(context: InvocationContext);
6
- info(messageOrObj: string | Record<string, any>): void;
7
- warn(messageOrObj: string | Record<string, any>): void;
8
- error(messageOrObj: string | Record<string, any> | Error): void;
9
- debug(message: string): void;
10
- trace(message: string): void;
7
+ info<M extends string | Record<string, any>, A extends unknown[]>(messageOrObj: Safe<M>, ...meta: {
8
+ [K in keyof A]: Safe<A[K]>;
9
+ }): void;
10
+ warn<M extends string | Record<string, any>, A extends unknown[]>(messageOrObj: Safe<M>, ...meta: {
11
+ [K in keyof A]: Safe<A[K]>;
12
+ }): void;
13
+ error<M extends string | Record<string, any> | Error, A extends unknown[]>(messageOrObj: Safe<M>, ...meta: {
14
+ [K in keyof A]: Safe<A[K]>;
15
+ }): void;
16
+ debug<A extends unknown[]>(message: string, ...meta: {
17
+ [K in keyof A]: Safe<A[K]>;
18
+ }): void;
19
+ trace<A extends unknown[]>(message: string, ...meta: {
20
+ [K in keyof A]: Safe<A[K]>;
21
+ }): void;
11
22
  setLevel(level: LogLevel): void;
12
23
  }
@@ -3,20 +3,20 @@ export class AzInvocationLogger {
3
3
  constructor(context) {
4
4
  this.context = context;
5
5
  }
6
- info(messageOrObj) {
7
- this.context.info(messageOrObj);
6
+ info(messageOrObj, ...meta) {
7
+ this.context.info(messageOrObj, ...meta);
8
8
  }
9
- warn(messageOrObj) {
10
- this.context.warn(messageOrObj);
9
+ warn(messageOrObj, ...meta) {
10
+ this.context.warn(messageOrObj, ...meta);
11
11
  }
12
- error(messageOrObj) {
13
- this.context.error(messageOrObj);
12
+ error(messageOrObj, ...meta) {
13
+ this.context.error(messageOrObj, ...meta);
14
14
  }
15
- debug(message) {
16
- this.context.debug(message);
15
+ debug(message, ...meta) {
16
+ this.context.debug(message, ...meta);
17
17
  }
18
- trace(message) {
19
- this.context.trace(message);
18
+ trace(message, ...meta) {
19
+ this.context.trace(message, ...meta);
20
20
  }
21
21
  setLevel(level) {
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pikku-az-functions-logger.js","sourceRoot":"","sources":["../src/pikku-az-functions-logger.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,kBAAkB;IAGT;IAApB,YAAoB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAE3C,IAAI,CAAC,YAA0C;QACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACjC,CAAC;IAEM,IAAI,CAAC,YAA0C;QACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,YAAkD;QAC7D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,OAAe;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAEM,KAAK,CAAC,OAAe;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAEM,QAAQ,CAAC,KAAe;IAE/B,CAAC;CACF"}
1
+ {"version":3,"file":"pikku-az-functions-logger.js","sourceRoot":"","sources":["../src/pikku-az-functions-logger.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,kBAAkB;IAGT;IAApB,YAAoB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAE3C,IAAI,CACT,YAAqB,EACrB,GAAG,IAAoC;QAEvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAmB,EAAE,GAAG,IAAI,CAAC,CAAA;IACjD,CAAC;IAEM,IAAI,CACT,YAAqB,EACrB,GAAG,IAAoC;QAEvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAmB,EAAE,GAAG,IAAI,CAAC,CAAA;IACjD,CAAC;IAEM,KAAK,CAGV,YAAqB,EAAE,GAAG,IAAoC;QAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAmB,EAAE,GAAG,IAAI,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CACV,OAAe,EACf,GAAG,IAAoC;QAEvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;IACtC,CAAC;IAEM,KAAK,CACV,OAAe,EACf,GAAG,IAAoC;QAEvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;IACtC,CAAC;IAEM,QAAQ,CAAC,KAAe;IAE/B,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import type { InvocationContext } from '@azure/functions';
2
- import { PikkuRequest } from '@pikku/core';
2
+ import { PikkuRequest } from '@pikku/core/ecosystem/types';
3
3
  export declare class PikkuAZTimerRequest<In = any> extends PikkuRequest<In> {
4
4
  constructor(_context: InvocationContext, data: In);
5
5
  }
@@ -1,4 +1,4 @@
1
- import { PikkuRequest } from '@pikku/core';
1
+ import { PikkuRequest } from '@pikku/core/ecosystem/types';
2
2
  export class PikkuAZTimerRequest extends PikkuRequest {
3
3
  constructor(_context, data) {
4
4
  super(data);
@@ -1 +1 @@
1
- {"version":3,"file":"pikku-az-timer-request.js","sourceRoot":"","sources":["../src/pikku-az-timer-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,OAAO,mBAA8B,SAAQ,YAAgB;IACjE,YAAY,QAA2B,EAAE,IAAQ;QAC/C,KAAK,CAAC,IAAI,CAAC,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"pikku-az-timer-request.js","sourceRoot":"","sources":["../src/pikku-az-timer-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,MAAM,OAAO,mBAA8B,SAAQ,YAAgB;IACjE,YAAY,QAA2B,EAAE,IAAQ;QAC/C,KAAK,CAAC,IAAI,CAAC,CAAA;IACb,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikku/azure-functions",
3
- "version": "0.12.4",
3
+ "version": "0.12.6",
4
4
  "description": "Azure Functions runtime for Pikku — HTTP, timer and storage-queue handlers",
5
5
  "license": "MIT",
6
6
  "author": "yasser.fadl@gmail.com",
@@ -8,7 +8,7 @@
8
8
  "main": "dist/index.js",
9
9
  "type": "module",
10
10
  "scripts": {
11
- "tsc": "tsc",
11
+ "tsc": "tsc && tsc -p tsconfig.type-tests.json",
12
12
  "ncu": "npx npm-check-updates",
13
13
  "build": "tsc -b",
14
14
  "release": "npm run build && npm test",
@@ -18,7 +18,7 @@
18
18
  "prepublishOnly": "yarn build"
19
19
  },
20
20
  "peerDependencies": {
21
- "@pikku/core": "^0.12.74"
21
+ "@pikku/core": "^0.12.84"
22
22
  },
23
23
  "devDependencies": {
24
24
  "typescript": "^6.0.3"
@@ -9,10 +9,13 @@
9
9
  * JWT signed with PIKKU_REMOTE_SECRET, session encrypted in payload.
10
10
  */
11
11
 
12
- import type { DeploymentService, DeploymentConfig } from '@pikku/core/services'
12
+ import type {
13
+ DeploymentService,
14
+ DeploymentConfig,
15
+ } from '@pikku/core/ecosystem/services'
13
16
  import type { JWTService } from '@pikku/core/services'
14
17
  import type { SecretService } from '@pikku/core/services'
15
- import { buildRemoteHeaders } from '@pikku/core/remote'
18
+ import { buildRemoteHeaders } from '@pikku/core/ecosystem/remote'
16
19
 
17
20
  export class AzureDeploymentService implements DeploymentService {
18
21
  private bindings: Map<string, string>
@@ -9,7 +9,8 @@
9
9
 
10
10
  import { QueueServiceClient } from '@azure/storage-queue'
11
11
  import type { QueueClient } from '@azure/storage-queue'
12
- import type { QueueService, QueueJob, JobOptions } from '@pikku/core/queue'
12
+ import type { QueueService, QueueJob } from '@pikku/core/queue'
13
+ import type { JobOptions } from '@pikku/core/ecosystem/queue'
13
14
 
14
15
  export class AzureQueueService implements QueueService {
15
16
  readonly supportsResults = false
@@ -14,7 +14,8 @@ import type { CoreSingletonServices } from '@pikku/core'
14
14
  import { PikkuFetchHTTPResponse, fetchData } from '@pikku/core/http'
15
15
  import { runQueueJob } from '@pikku/core/queue'
16
16
  import type { QueueJob, QueueJobStatus } from '@pikku/core/queue'
17
- import { runScheduledTask, getScheduledTasks } from '@pikku/core/scheduler'
17
+ import { runScheduledTask } from '@pikku/core/scheduler'
18
+ import { getScheduledTasks } from '@pikku/core/ecosystem/scheduler'
18
19
  import type {
19
20
  HttpRequest,
20
21
  HttpResponseInit,
@@ -1,29 +1,45 @@
1
1
  import type { InvocationContext } from '@azure/functions'
2
2
  import type { Logger, LogLevel } from '@pikku/core/services'
3
+ import type { Safe } from '@pikku/core'
3
4
 
4
5
  export class AzInvocationLogger implements Logger {
5
6
  // private logLevel: LogLevel = LogLevel.info
6
7
 
7
8
  constructor(private context: InvocationContext) {}
8
9
 
9
- public info(messageOrObj: string | Record<string, any>): void {
10
- this.context.info(messageOrObj)
10
+ public info<M extends string | Record<string, any>, A extends unknown[]>(
11
+ messageOrObj: Safe<M>,
12
+ ...meta: { [K in keyof A]: Safe<A[K]> }
13
+ ): void {
14
+ this.context.info(messageOrObj as any, ...meta)
11
15
  }
12
16
 
13
- public warn(messageOrObj: string | Record<string, any>): void {
14
- this.context.warn(messageOrObj)
17
+ public warn<M extends string | Record<string, any>, A extends unknown[]>(
18
+ messageOrObj: Safe<M>,
19
+ ...meta: { [K in keyof A]: Safe<A[K]> }
20
+ ): void {
21
+ this.context.warn(messageOrObj as any, ...meta)
15
22
  }
16
23
 
17
- public error(messageOrObj: string | Record<string, any> | Error): void {
18
- this.context.error(messageOrObj)
24
+ public error<
25
+ M extends string | Record<string, any> | Error,
26
+ A extends unknown[],
27
+ >(messageOrObj: Safe<M>, ...meta: { [K in keyof A]: Safe<A[K]> }): void {
28
+ this.context.error(messageOrObj as any, ...meta)
19
29
  }
20
30
 
21
- public debug(message: string): void {
22
- this.context.debug(message)
31
+ public debug<A extends unknown[]>(
32
+ message: string,
33
+ ...meta: { [K in keyof A]: Safe<A[K]> }
34
+ ): void {
35
+ this.context.debug(message, ...meta)
23
36
  }
24
37
 
25
- public trace(message: string): void {
26
- this.context.trace(message)
38
+ public trace<A extends unknown[]>(
39
+ message: string,
40
+ ...meta: { [K in keyof A]: Safe<A[K]> }
41
+ ): void {
42
+ this.context.trace(message, ...meta)
27
43
  }
28
44
 
29
45
  public setLevel(level: LogLevel): void {
@@ -0,0 +1,18 @@
1
+ import { createSecretValue } from '@pikku/core'
2
+ import type { AzInvocationLogger } from './pikku-az-functions-logger.js'
3
+
4
+ // A concrete logger must not be a way around the `Logger` guard.
5
+ const _assertions = (logger: AzInvocationLogger) => {
6
+ const secret = createSecretValue('sk-live-DEADBEEF')
7
+
8
+ // @ts-expect-error a secret cannot be logged
9
+ logger.info(secret)
10
+ // @ts-expect-error nor nested in the message
11
+ logger.info({ token: secret })
12
+ // @ts-expect-error nor in the metadata
13
+ logger.warn('using', { token: secret })
14
+
15
+ logger.info('fine')
16
+ logger.info({ count: 1 })
17
+ }
18
+ void _assertions
@@ -1,5 +1,5 @@
1
1
  import type { InvocationContext } from '@azure/functions'
2
- import { PikkuRequest } from '@pikku/core'
2
+ import { PikkuRequest } from '@pikku/core/ecosystem/types'
3
3
 
4
4
  export class PikkuAZTimerRequest<In = any> extends PikkuRequest<In> {
5
5
  constructor(_context: InvocationContext, data: In) {
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "noEmit": true,
5
+ "composite": false,
6
+ "declaration": false,
7
+ "declarationMap": false
8
+ },
9
+ "files": [
10
+ "src/pikku-az-functions-logger.type.test.ts"
11
+ ]
12
+ }