@mxpicture/gcp-functions-common 1.3.3 → 1.3.17

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.
@@ -0,0 +1,8 @@
1
+ import type { FunctionRequestHeaders } from "../types/types.function.js";
2
+ export declare const functionRequestHeaders: Required<FunctionRequestHeaders>;
3
+ export declare const getFunctionRequestHeaderMap: () => Map<keyof FunctionRequestHeaders, string>;
4
+ export declare const toHttpHeaderKey: (key: keyof FunctionRequestHeaders) => string | null;
5
+ export declare const fromHttpHeaderKey: (key: string) => keyof FunctionRequestHeaders | null;
6
+ export declare const mapHttpToFunctionHeaders: (httpHeaders: Record<string, string | string[] | undefined>) => FunctionRequestHeaders;
7
+ export declare const enrichHttpHeaders: (functionHeaders: FunctionRequestHeaders, httpHeaders: Record<string, string | string[] | undefined>) => void;
8
+ //# sourceMappingURL=config.function.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.function.d.ts","sourceRoot":"","sources":["../../src/config/config.function.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEzE,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB,CAGnE,CAAC;AAIF,eAAO,MAAM,2BAA2B,QAAO,GAAG,CAChD,MAAM,sBAAsB,EAC5B,MAAM,CAQP,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,MAAM,sBAAsB,KAChC,MAAM,GAAG,IAAsD,CAAC;AAEnE,eAAO,MAAM,iBAAiB,GAC5B,KAAK,MAAM,KACV,MAAM,sBAAsB,GAAG,IAG0B,CAAC;AAE7D,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,KACzD,sBAWF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,iBAAiB,sBAAsB,EACvC,aAAa,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,KACzD,IAOF,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { kebabCase, upperFirstLetter } from "../helper/helper.string.js";
2
+ export const functionRequestHeaders = {
3
+ taskId: undefined,
4
+ taskStatus: undefined,
5
+ };
6
+ let _keyMap = null;
7
+ export const getFunctionRequestHeaderMap = () => {
8
+ if (!_keyMap) {
9
+ _keyMap = new Map();
10
+ for (const key of Object.keys(functionRequestHeaders))
11
+ _keyMap.set(key, kebabCase(`X${upperFirstLetter(key)}`));
12
+ }
13
+ return _keyMap;
14
+ };
15
+ export const toHttpHeaderKey = (key) => getFunctionRequestHeaderMap().get(key) ?? null;
16
+ export const fromHttpHeaderKey = (key) => getFunctionRequestHeaderMap()
17
+ .entries()
18
+ .find(([, keyString]) => keyString === key)?.[0] ?? null;
19
+ export const mapHttpToFunctionHeaders = (httpHeaders) => {
20
+ const results = {};
21
+ for (const [httpKey, value] of Object.entries(httpHeaders)) {
22
+ if (typeof value !== "string")
23
+ continue;
24
+ const functionkey = fromHttpHeaderKey(httpKey);
25
+ if (!functionkey)
26
+ continue;
27
+ results[functionkey] = value;
28
+ }
29
+ return results;
30
+ };
31
+ export const enrichHttpHeaders = (functionHeaders, httpHeaders) => {
32
+ for (const [_key, value] of Object.entries(functionHeaders)) {
33
+ const functionKey = _key;
34
+ const httpKey = toHttpHeaderKey(functionKey);
35
+ if (!httpKey)
36
+ continue;
37
+ httpHeaders[httpKey] = value;
38
+ }
39
+ };
40
+ //# sourceMappingURL=config.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.function.js","sourceRoot":"","sources":["../../src/config/config.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGzE,MAAM,CAAC,MAAM,sBAAsB,GAAqC;IACtE,MAAM,EAAE,SAAU;IAClB,UAAU,EAAE,SAAU;CACvB,CAAC;AAEF,IAAI,OAAO,GAA+B,IAAI,CAAC;AAE/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAGzC,EAAE;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,OAAoD,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,GAAiC,EAClB,EAAE,CAAC,2BAA2B,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,GAAW,EAC0B,EAAE,CACvC,2BAA2B,EAAE;KAC1B,OAAO,EAAE;KACT,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAE7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,WAA0D,EAClC,EAAE;IAC1B,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QACxC,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,eAAuC,EACvC,WAA0D,EACpD,EAAE;IACR,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAoC,CAAC;QACzD,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,WAAW,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from "./config.api.js";
2
+ export * from "./config.function.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  // This file is auto-generated by build-cli. Do not edit manually.
2
2
  export * from "./config.api.js";
3
+ export * from "./config.function.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
@@ -12,4 +12,6 @@ export declare const lowerFirstLetter: (val: string) => string;
12
12
  * @returns The string with its first character upper-cased.
13
13
  */
14
14
  export declare const upperFirstLetter: (val: string) => string;
15
+ export declare const kebabCase: (str: string) => string;
16
+ export declare const kebabCaseLower: (str: string) => string;
15
17
  //# sourceMappingURL=helper.string.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.string.d.ts","sourceRoot":"","sources":["../../src/helper/helper.string.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,WAGf,CAAC;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,WAGrB,CAAC"}
1
+ {"version":3,"file":"helper.string.d.ts","sourceRoot":"","sources":["../../src/helper/helper.string.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,WAGf,CAAC;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,WAGrB,CAAC;AAExB,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,MAIZ,CAAC;AAE7B,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MACf,CAAC"}
@@ -16,4 +16,9 @@ export const lowerFirstLetter = (val) => val.length > 1
16
16
  export const upperFirstLetter = (val) => val.length > 1
17
17
  ? val.charAt(0).toUpperCase() + val.slice(1)
18
18
  : val.toUpperCase();
19
+ export const kebabCase = (str) => str
20
+ .replace(/([A-Z])([A-Z])/g, "$1-$2")
21
+ .replace(/([a-z])([A-Z])/g, "$1-$2")
22
+ .replace(/[\s_]+/g, "-");
23
+ export const kebabCaseLower = (str) => kebabCase(str).toLowerCase();
19
24
  //# sourceMappingURL=helper.string.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.string.js","sourceRoot":"","sources":["../../src/helper/helper.string.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9C,GAAG,CAAC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9C,GAAG,CAAC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"helper.string.js","sourceRoot":"","sources":["../../src/helper/helper.string.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9C,GAAG,CAAC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9C,GAAG,CAAC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AAExB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE,CAC/C,GAAG;KACA,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;KACnC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;KACnC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAU,EAAE,CACpD,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC"}
@@ -1,4 +1,9 @@
1
+ import type { DocumentData } from "./types.document.js";
1
2
  import type { RoutesMap } from "./types.routes.js";
3
+ export interface FunctionRequestHeaders {
4
+ taskId?: string;
5
+ taskStatus?: string;
6
+ }
2
7
  /**
3
8
  * Typed request payload for a callable cloud function.
4
9
  *
@@ -9,6 +14,7 @@ export interface FunctionRequest<DOC> {
9
14
  route: string;
10
15
  /** The request payload. */
11
16
  data: DOC;
17
+ headers?: FunctionRequestHeaders;
12
18
  }
13
19
  /**
14
20
  * Typed response envelope returned by a callable cloud function.
@@ -29,4 +35,5 @@ export interface FunctionResponse<DOC> {
29
35
  export type FunctionFromRoutes<R extends RoutesMap> = {
30
36
  [K in keyof R]: (request: R[K]["request"]) => Promise<FunctionResponse<R[K]["response"]>>;
31
37
  };
38
+ export type FunctionIngressFollowup = <FUNC, REQ, RES extends DocumentData>(func: FUNC, state: "success" | "error", request: FunctionRequest<REQ>, response: FunctionResponse<RES> | null) => Promise<void>;
32
39
  //# sourceMappingURL=types.function.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.function.d.ts","sourceRoot":"","sources":["../../src/types/types.function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,GAAG;IAClC,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,IAAI,EAAE,GAAG,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,GAAG;IACnC,4BAA4B;IAC5B,IAAI,EAAE,GAAG,CAAC;CACX;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,IAAI;KACnD,CAAC,IAAI,MAAM,CAAC,GAAG,CACd,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KACrB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACjD,CAAC"}
1
+ {"version":3,"file":"types.function.d.ts","sourceRoot":"","sources":["../../src/types/types.function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,GAAG;IAClC,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,GAAG;IACnC,4BAA4B;IAC5B,IAAI,EAAE,GAAG,CAAC;CACX;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,IAAI;KACnD,CAAC,IAAI,MAAM,CAAC,GAAG,CACd,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KACrB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS,YAAY,EACxE,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,GAAG,OAAO,EAC1B,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,EAC7B,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,KACnC,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mxpicture/gcp-functions-common",
3
- "version": "1.3.3",
3
+ "version": "1.3.17",
4
4
  "description": "Utils for google cloud functions, publishing both CommonJS and ESM builds",
5
5
  "type": "module",
6
6
  "author": "MXPicture",