@mxpicture/gcp-functions-common 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/annotation/anno.head.d.ts +24 -0
  2. package/dist/annotation/anno.head.d.ts.map +1 -1
  3. package/dist/annotation/anno.head.js +24 -0
  4. package/dist/annotation/anno.head.js.map +1 -1
  5. package/dist/annotation/anno.property.d.ts +13 -0
  6. package/dist/annotation/anno.property.d.ts.map +1 -1
  7. package/dist/annotation/anno.property.js +13 -0
  8. package/dist/annotation/anno.property.js.map +1 -1
  9. package/dist/config/config.api.d.ts +24 -0
  10. package/dist/config/config.api.d.ts.map +1 -1
  11. package/dist/config/config.api.js +16 -0
  12. package/dist/config/config.api.js.map +1 -1
  13. package/dist/decorator/DecoArray.d.ts +67 -0
  14. package/dist/decorator/DecoArray.d.ts.map +1 -1
  15. package/dist/decorator/DecoArray.js +57 -0
  16. package/dist/decorator/DecoArray.js.map +1 -1
  17. package/dist/decorator/DecoBoolean.d.ts +19 -0
  18. package/dist/decorator/DecoBoolean.d.ts.map +1 -1
  19. package/dist/decorator/DecoBoolean.js +15 -0
  20. package/dist/decorator/DecoBoolean.js.map +1 -1
  21. package/dist/decorator/DecoDate.d.ts +22 -0
  22. package/dist/decorator/DecoDate.d.ts.map +1 -1
  23. package/dist/decorator/DecoDate.js +18 -0
  24. package/dist/decorator/DecoDate.js.map +1 -1
  25. package/dist/decorator/DecoNumber.d.ts +65 -0
  26. package/dist/decorator/DecoNumber.d.ts.map +1 -1
  27. package/dist/decorator/DecoNumber.js +55 -0
  28. package/dist/decorator/DecoNumber.js.map +1 -1
  29. package/dist/decorator/DecoObject.d.ts +21 -0
  30. package/dist/decorator/DecoObject.d.ts.map +1 -1
  31. package/dist/decorator/DecoObject.js +17 -0
  32. package/dist/decorator/DecoObject.js.map +1 -1
  33. package/dist/decorator/DecoProperty.d.ts +95 -0
  34. package/dist/decorator/DecoProperty.d.ts.map +1 -1
  35. package/dist/decorator/DecoProperty.js +94 -0
  36. package/dist/decorator/DecoProperty.js.map +1 -1
  37. package/dist/decorator/DecoString.d.ts +57 -0
  38. package/dist/decorator/DecoString.d.ts.map +1 -1
  39. package/dist/decorator/DecoString.js +48 -0
  40. package/dist/decorator/DecoString.js.map +1 -1
  41. package/dist/decorator/Decorator.d.ts +93 -0
  42. package/dist/decorator/Decorator.d.ts.map +1 -1
  43. package/dist/decorator/Decorator.js +74 -0
  44. package/dist/decorator/Decorator.js.map +1 -1
  45. package/dist/decorator/deco.cast.d.ts +42 -0
  46. package/dist/decorator/deco.cast.d.ts.map +1 -1
  47. package/dist/decorator/deco.cast.js +42 -0
  48. package/dist/decorator/deco.cast.js.map +1 -1
  49. package/dist/decorator/deco.enum.d.ts +37 -0
  50. package/dist/decorator/deco.enum.d.ts.map +1 -1
  51. package/dist/decorator/deco.enum.js +37 -0
  52. package/dist/decorator/deco.enum.js.map +1 -1
  53. package/dist/decorator/deco.names.d.ts +28 -0
  54. package/dist/decorator/deco.names.d.ts.map +1 -1
  55. package/dist/decorator/deco.names.js +6 -0
  56. package/dist/decorator/deco.names.js.map +1 -1
  57. package/dist/decorator/deco.paths.d.ts +20 -0
  58. package/dist/decorator/deco.paths.d.ts.map +1 -1
  59. package/dist/decorator/deco.paths.js +20 -0
  60. package/dist/decorator/deco.paths.js.map +1 -1
  61. package/dist/decorator/deco.properties.d.ts +20 -0
  62. package/dist/decorator/deco.properties.d.ts.map +1 -1
  63. package/dist/decorator/deco.properties.js +20 -0
  64. package/dist/decorator/deco.properties.js.map +1 -1
  65. package/dist/decorator/deco.routes.d.ts +10 -0
  66. package/dist/decorator/deco.routes.d.ts.map +1 -1
  67. package/dist/decorator/deco.routes.js +10 -0
  68. package/dist/decorator/deco.routes.js.map +1 -1
  69. package/dist/helper/FirebaseTimestamp.d.ts +76 -0
  70. package/dist/helper/FirebaseTimestamp.d.ts.map +1 -1
  71. package/dist/helper/FirebaseTimestamp.js +73 -0
  72. package/dist/helper/FirebaseTimestamp.js.map +1 -1
  73. package/dist/helper/helper.annotation.d.ts +10 -0
  74. package/dist/helper/helper.annotation.d.ts.map +1 -1
  75. package/dist/helper/helper.annotation.js +10 -0
  76. package/dist/helper/helper.annotation.js.map +1 -1
  77. package/dist/helper/helper.date.d.ts +23 -0
  78. package/dist/helper/helper.date.d.ts.map +1 -1
  79. package/dist/helper/helper.date.js +28 -1
  80. package/dist/helper/helper.date.js.map +1 -1
  81. package/dist/helper/helper.document.d.ts +10 -0
  82. package/dist/helper/helper.document.d.ts.map +1 -1
  83. package/dist/helper/helper.document.js +10 -0
  84. package/dist/helper/helper.document.js.map +1 -1
  85. package/dist/helper/helper.object.d.ts +7 -0
  86. package/dist/helper/helper.object.d.ts.map +1 -1
  87. package/dist/helper/helper.object.js +7 -0
  88. package/dist/helper/helper.object.js.map +1 -1
  89. package/dist/path/path.common.d.ts +48 -0
  90. package/dist/path/path.common.d.ts.map +1 -1
  91. package/dist/path/path.common.js +37 -4
  92. package/dist/path/path.common.js.map +1 -1
  93. package/dist/types/types.annotation.d.ts +28 -0
  94. package/dist/types/types.annotation.d.ts.map +1 -1
  95. package/dist/types/types.deco.common.d.ts +26 -0
  96. package/dist/types/types.deco.common.d.ts.map +1 -1
  97. package/dist/types/types.deco.property.d.ts +67 -0
  98. package/dist/types/types.deco.property.d.ts.map +1 -1
  99. package/dist/types/types.document.d.ts +29 -0
  100. package/dist/types/types.document.d.ts.map +1 -1
  101. package/dist/types/types.filter.d.ts +13 -0
  102. package/dist/types/types.filter.d.ts.map +1 -1
  103. package/dist/types/types.function.d.ts +20 -0
  104. package/dist/types/types.function.d.ts.map +1 -1
  105. package/dist/types/types.routes.d.ts +31 -0
  106. package/dist/types/types.routes.d.ts.map +1 -1
  107. package/dist/types/types.validation.d.ts +7 -0
  108. package/dist/types/types.validation.d.ts.map +1 -1
  109. package/package.json +4 -2
@@ -1,2 +1,9 @@
1
+ /**
2
+ * Creates a shallow copy of an object containing only the specified keys.
3
+ *
4
+ * @param route - The source object to strip.
5
+ * @param allowedKeys - The keys to retain in the resulting object.
6
+ * @returns A new object containing only the allowed keys that exist on `route`.
7
+ */
1
8
  export declare const stripObject: <T extends object>(route: T, allowedKeys: (keyof T)[]) => T;
2
9
  //# sourceMappingURL=helper.object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.object.d.ts","sourceRoot":"","sources":["../../src/helper/helper.object.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAC1C,OAAO,CAAC,EACR,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,KACvB,CAKF,CAAC"}
1
+ {"version":3,"file":"helper.object.d.ts","sourceRoot":"","sources":["../../src/helper/helper.object.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAC1C,OAAO,CAAC,EACR,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,KACvB,CAKF,CAAC"}
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Creates a shallow copy of an object containing only the specified keys.
3
+ *
4
+ * @param route - The source object to strip.
5
+ * @param allowedKeys - The keys to retain in the resulting object.
6
+ * @returns A new object containing only the allowed keys that exist on `route`.
7
+ */
1
8
  export const stripObject = (route, allowedKeys) => {
2
9
  const result = {};
3
10
  for (const allowedKey of allowedKeys)
@@ -1 +1 @@
1
- {"version":3,"file":"helper.object.js","sourceRoot":"","sources":["../../src/helper/helper.object.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAQ,EACR,WAAwB,EACrB,EAAE;IACL,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,UAAU,IAAI,WAAW;QAClC,IAAI,UAAU,IAAI,KAAK;YAAE,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAClE,OAAO,MAAW,CAAC;AACrB,CAAC,CAAC"}
1
+ {"version":3,"file":"helper.object.js","sourceRoot":"","sources":["../../src/helper/helper.object.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAQ,EACR,WAAwB,EACrB,EAAE;IACL,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,UAAU,IAAI,WAAW;QAClC,IAAI,UAAU,IAAI,KAAK;YAAE,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAClE,OAAO,MAAW,CAAC;AACrB,CAAC,CAAC"}
@@ -1,7 +1,15 @@
1
+ /**
2
+ * Enumerates the high-level base directory categories within the repository.
3
+ */
1
4
  export declare enum BasePathType {
5
+ /** The `packages` directory that holds all workspace packages. */
2
6
  packages = "packages",
7
+ /** The repository root directory. */
3
8
  root = "root"
4
9
  }
10
+ /**
11
+ * Enumerates the workspace package names within the `packages` directory.
12
+ */
5
13
  export declare enum WsPathType {
6
14
  backend = "backend",
7
15
  common = "common",
@@ -9,16 +17,56 @@ export declare enum WsPathType {
9
17
  fs = "fs",
10
18
  generator = "generator"
11
19
  }
20
+ /**
21
+ * Maps each {@link BasePathType} to its resolved absolute file-system path.
22
+ */
12
23
  export type BasePath = Record<BasePathType, string>;
24
+ /**
25
+ * Pre-resolved absolute paths for the base directory categories.
26
+ */
13
27
  export declare const basePaths: BasePath;
28
+ /**
29
+ * Maps each {@link WsPathType} to its resolved absolute file-system path.
30
+ */
14
31
  export type WsPath = Record<WsPathType, string>;
32
+ /**
33
+ * Pre-resolved absolute paths for every workspace package directory.
34
+ */
15
35
  export declare const wsPaths: WsPath;
36
+ /**
37
+ * Extended path information for a specific workspace, including the
38
+ * package directory name, workspace name, and `package.json` location.
39
+ */
16
40
  export interface CurrentPaths extends BasePath {
41
+ /** Name of the top-level directory (expected to be `"packages"`). */
17
42
  pkgDirName: string;
43
+ /** The workspace name (one of the {@link WsPathType} values). */
18
44
  wsName: string;
45
+ /** Absolute path to the workspace's `package.json`. */
19
46
  packageJsonPath: string;
20
47
  }
48
+ /**
49
+ * Absolute path to the repository-level `changelog.json` file.
50
+ */
21
51
  export declare const changelogPath: string;
52
+ /**
53
+ * Returns the absolute path to the `package.json` of the given workspace.
54
+ *
55
+ * @param type - The workspace whose `package.json` path is requested.
56
+ * @returns The resolved absolute path.
57
+ */
22
58
  export declare const packageJsonPath: (type: WsPathType) => string;
59
+ /**
60
+ * Derives {@link CurrentPaths} for the workspace that contains the given file path.
61
+ *
62
+ * @remarks
63
+ * Accepts both absolute and relative paths. The path must reside within one of
64
+ * the known workspace directories under `packages/`. Throws if the path does
65
+ * not match the expected layout.
66
+ *
67
+ * @param currentPath - A file-system path within a workspace.
68
+ * @returns Resolved path information for the containing workspace.
69
+ * @throws If the path does not start with `packages/` or names an unknown workspace.
70
+ */
23
71
  export declare const createCurrentWsPaths: (currentPath: string) => CurrentPaths;
24
72
  //# sourceMappingURL=path.common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"path.common.d.ts","sourceRoot":"","sources":["../../src/path/path.common.ts"],"names":[],"mappings":"AAMA,oBAAY,YAAY;IACtB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,EAAE,OAAO;IACT,SAAS,cAAc;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAEpD,eAAO,MAAM,SAAS,EAAE,QAGvB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEhD,eAAO,MAAM,OAAO,EAAE,MAMrB,CAAC;AAEF,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,aAAa,QAAyC,CAAC;AAEpE,eAAO,MAAM,eAAe,GAAI,MAAM,UAAU,WACX,CAAC;AAEtC,eAAO,MAAM,oBAAoB,GAAI,aAAa,MAAM,KAAG,YAyB1D,CAAC"}
1
+ {"version":3,"file":"path.common.d.ts","sourceRoot":"","sources":["../../src/path/path.common.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,oBAAY,YAAY;IACtB,kEAAkE;IAClE,QAAQ,aAAa;IACrB,qCAAqC;IACrC,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,EAAE,OAAO;IACT,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,QAGvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,MAMrB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,QAAyC,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,UAAU,WACX,CAAC;AAEtC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAAI,aAAa,MAAM,KAAG,YAyB1D,CAAC"}
@@ -1,12 +1,18 @@
1
- import { dirname, isAbsolute, join, relative, resolve, sep } from "path";
2
- import { fileURLToPath } from "url";
3
- const __dirname = dirname(fileURLToPath(import.meta.url));
4
- const packagesDir = resolve(__dirname, "../../..");
1
+ import { isAbsolute, join, relative, resolve, sep } from "path";
2
+ const packagesDir = resolve(import.meta.dirname, "../../..");
3
+ /**
4
+ * Enumerates the high-level base directory categories within the repository.
5
+ */
5
6
  export var BasePathType;
6
7
  (function (BasePathType) {
8
+ /** The `packages` directory that holds all workspace packages. */
7
9
  BasePathType["packages"] = "packages";
10
+ /** The repository root directory. */
8
11
  BasePathType["root"] = "root";
9
12
  })(BasePathType || (BasePathType = {}));
13
+ /**
14
+ * Enumerates the workspace package names within the `packages` directory.
15
+ */
10
16
  export var WsPathType;
11
17
  (function (WsPathType) {
12
18
  WsPathType["backend"] = "backend";
@@ -15,10 +21,16 @@ export var WsPathType;
15
21
  WsPathType["fs"] = "fs";
16
22
  WsPathType["generator"] = "generator";
17
23
  })(WsPathType || (WsPathType = {}));
24
+ /**
25
+ * Pre-resolved absolute paths for the base directory categories.
26
+ */
18
27
  export const basePaths = {
19
28
  [BasePathType.packages]: packagesDir,
20
29
  [BasePathType.root]: resolve(packagesDir, ".."),
21
30
  };
31
+ /**
32
+ * Pre-resolved absolute paths for every workspace package directory.
33
+ */
22
34
  export const wsPaths = {
23
35
  [WsPathType.backend]: join(packagesDir, WsPathType.backend),
24
36
  [WsPathType.common]: join(packagesDir, WsPathType.common),
@@ -26,8 +38,29 @@ export const wsPaths = {
26
38
  [WsPathType.fs]: join(packagesDir, WsPathType.fs),
27
39
  [WsPathType.generator]: join(packagesDir, WsPathType.generator),
28
40
  };
41
+ /**
42
+ * Absolute path to the repository-level `changelog.json` file.
43
+ */
29
44
  export const changelogPath = join(basePaths.root, "changelog.json");
45
+ /**
46
+ * Returns the absolute path to the `package.json` of the given workspace.
47
+ *
48
+ * @param type - The workspace whose `package.json` path is requested.
49
+ * @returns The resolved absolute path.
50
+ */
30
51
  export const packageJsonPath = (type) => join(wsPaths[type], "package.json");
52
+ /**
53
+ * Derives {@link CurrentPaths} for the workspace that contains the given file path.
54
+ *
55
+ * @remarks
56
+ * Accepts both absolute and relative paths. The path must reside within one of
57
+ * the known workspace directories under `packages/`. Throws if the path does
58
+ * not match the expected layout.
59
+ *
60
+ * @param currentPath - A file-system path within a workspace.
61
+ * @returns Resolved path information for the containing workspace.
62
+ * @throws If the path does not start with `packages/` or names an unknown workspace.
63
+ */
31
64
  export const createCurrentWsPaths = (currentPath) => {
32
65
  const res = isAbsolute(currentPath)
33
66
  ? relative(basePaths.root, changelogPath)
@@ -1 +1 @@
1
- {"version":3,"file":"path.common.js","sourceRoot":"","sources":["../../src/path/path.common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"path.common.js","sourceRoot":"","sources":["../../src/path/path.common.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,53 @@
1
1
  import { DecoImport, DecoRouteParams } from "./types.deco.common.js";
2
2
  import { DecoPropertyBase, DecoPropertyCommon } from "./types.deco.property.js";
3
+ /**
4
+ * Describes a single route derived from decorator annotations.
5
+ */
3
6
  export interface AnnotationsRoute extends DecoRouteParams {
7
+ /** Unique name identifying this route. */
4
8
  name: string;
5
9
  }
10
+ /**
11
+ * Describes a single property within a decorated class, including its metadata.
12
+ *
13
+ * @typeParam T - The specific decorator property options type.
14
+ */
6
15
  export interface AnnotationsProperty<T extends DecoPropertyBase> {
16
+ /** The property key on the decorated class. */
7
17
  propertyKey: string;
18
+ /** The TypeScript type of the property (e.g. `"string"`, `"number"`). */
8
19
  propertyType: string;
20
+ /** Shared presentational / behavioural options for this property. */
9
21
  common: DecoPropertyCommon;
22
+ /** Type-specific decorator options. */
10
23
  data: T;
24
+ /** Optional nested annotation header when the property is itself a decorated object. */
11
25
  sub?: AnnotationsHeader;
12
26
  }
27
+ /**
28
+ * Top-level annotation metadata collected from a decorated class.
29
+ */
13
30
  export interface AnnotationsHeader {
31
+ /** Class or model name. */
14
32
  name: string;
33
+ /** Optional namespace used to group related models. */
15
34
  namespace?: string;
35
+ /** Property descriptors extracted from the class. */
16
36
  properties: AnnotationsProperty<DecoPropertyBase>[];
37
+ /** Route definitions attached to the class, if any. */
17
38
  routes?: AnnotationsRoute[];
39
+ /** Extra imports required by generated code for this model. */
18
40
  additionalImports?: DecoImport[];
19
41
  }
42
+ /**
43
+ * Represents a validation or processing error linked to a specific property.
44
+ */
20
45
  export interface AnnotationsError {
46
+ /** The property key that caused the error. */
21
47
  propertyKey: string;
48
+ /** Short human-readable error title. */
22
49
  title: string;
50
+ /** Detailed error message. */
23
51
  error: string;
24
52
  }
25
53
  //# sourceMappingURL=types.annotation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.annotation.d.ts","sourceRoot":"","sources":["../../src/types/types.annotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGhF,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,gBAAgB;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,iBAAiB,CAAC;CACzB;AAGD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,CAAC;IACpD,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC;CAClC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.annotation.d.ts","sourceRoot":"","sources":["../../src/types/types.annotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGhF;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;CACd;AAGD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,gBAAgB;IAC7D,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,uCAAuC;IACvC,IAAI,EAAE,CAAC,CAAC;IACR,wFAAwF;IACxF,GAAG,CAAC,EAAE,iBAAiB,CAAC;CACzB;AAGD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,CAAC;IACpD,uDAAuD;IACvD,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC;CAClC;AAGD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,21 +1,47 @@
1
1
  import type { Decorator } from "../decorator/Decorator.js";
2
+ /**
3
+ * Allows a decorator parameter to be specified either as a plain value
4
+ * or as an object with optional `facet` and `item` variants.
5
+ *
6
+ * @typeParam T - The underlying value type.
7
+ */
2
8
  export type DecoParamsKind<T> = {
3
9
  facet?: T;
4
10
  item?: T;
5
11
  } | T;
12
+ /**
13
+ * Describes a template file together with the decorators it contains.
14
+ */
6
15
  export interface DecoFile {
16
+ /** Absolute path to the template file on disk. */
7
17
  templateFilePath: string;
18
+ /** Repository-relative path to the template file. */
8
19
  templateRepoFilePath: string;
20
+ /** Decorators discovered in the template file. */
9
21
  decorators: Decorator[];
10
22
  }
23
+ /**
24
+ * Request and response type names for a single route endpoint.
25
+ */
11
26
  export interface DecoRouteParams {
27
+ /** Fully-qualified type name of the request payload. */
12
28
  requestType: string;
29
+ /** Fully-qualified type name of the response payload. */
13
30
  responseType: string;
14
31
  }
32
+ /**
33
+ * Maps route names to their corresponding {@link DecoRouteParams}.
34
+ */
15
35
  export type DecoRoutes = Record<string, DecoRouteParams>;
36
+ /**
37
+ * Represents a single import statement required by generated code.
38
+ */
16
39
  export interface DecoImport {
40
+ /** Named exports to import. */
17
41
  props: string[];
42
+ /** Module specifier / path to import from. */
18
43
  path: string;
44
+ /** When `true`, the import is a type-only import. */
19
45
  isType?: boolean;
20
46
  }
21
47
  //# sourceMappingURL=types.deco.common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.deco.common.d.ts","sourceRoot":"","sources":["../../src/types/types.deco.common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,MAAM,cAAc,CAAC,CAAC,IACxB;IACE,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,IAAI,CAAC,EAAE,CAAC,CAAC;CACV,GACD,CAAC,CAAC;AAEN,MAAM,WAAW,QAAQ;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
1
+ {"version":3,"file":"types.deco.common.d.ts","sourceRoot":"","sources":["../../src/types/types.deco.common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IACxB;IACE,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,IAAI,CAAC,EAAE,CAAC,CAAC;CACV,GACD,CAAC,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kDAAkD;IAClD,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
@@ -1,62 +1,129 @@
1
1
  import type { DecoPropertyType, DecoDateFormat } from "../decorator/deco.enum.js";
2
2
  import type { Decorator } from "../decorator/Decorator.js";
3
3
  import type { DecoParamsKind } from "./types.deco.common.js";
4
+ /**
5
+ * Base interface for all decorator property option objects.
6
+ *
7
+ * @remarks
8
+ * Every concrete property-options interface (e.g. {@link DecoNumberOptions})
9
+ * extends this base and narrows the `type` discriminant.
10
+ */
4
11
  export interface DecoPropertyBase {
12
+ /** Discriminant identifying the property type. */
5
13
  type: DecoPropertyType;
14
+ /** Allows additional, type-specific options. */
6
15
  [key: string]: unknown;
7
16
  }
17
+ /**
18
+ * Shared presentational and behavioural options applicable to any decorator property.
19
+ */
8
20
  export interface DecoPropertyCommon {
21
+ /** Human-readable title for the property. */
9
22
  title?: DecoParamsKind<string>;
23
+ /** Longer description of the property. */
10
24
  description?: DecoParamsKind<string>;
25
+ /** Whether the property is optional. */
11
26
  optional?: boolean;
27
+ /** Whether the property can be edited by the user. */
12
28
  editable?: boolean;
29
+ /** Whether the property supports sorting in a table view. */
13
30
  sortable?: boolean;
31
+ /** Whether the property supports filtering. */
14
32
  filterable?: boolean;
33
+ /** Whether the property should be hidden from the UI. */
15
34
  hidden?: DecoParamsKind<boolean>;
35
+ /** CSS width hint for the property column. */
16
36
  width?: string;
37
+ /** Whether the property depends on a popin container. */
17
38
  depandPopin?: boolean;
39
+ /** Display order for the property. */
18
40
  order?: DecoParamsKind<number>;
19
41
  }
42
+ /**
43
+ * Wraps a decorator property's shared and type-specific options.
44
+ *
45
+ * @typeParam T - The specific decorator property options type.
46
+ */
20
47
  export interface DecoPropertyRaw<T extends DecoPropertyBase> {
48
+ /** Shared common options. */
21
49
  common: DecoPropertyCommon;
50
+ /** Type-specific decorator options. */
22
51
  data: T;
23
52
  }
53
+ /**
54
+ * Decorator options for a numeric property.
55
+ */
24
56
  export interface DecoNumberOptions extends DecoPropertyBase {
25
57
  type: DecoPropertyType.number;
58
+ /** Default numeric value. */
26
59
  default?: number;
60
+ /** Minimum allowed value. */
27
61
  min?: number;
62
+ /** Whether the minimum bound is inclusive. */
28
63
  minInclusive?: boolean;
64
+ /** Maximum allowed value. */
29
65
  max?: number;
66
+ /** Whether the maximum bound is inclusive. */
30
67
  maxInclusive?: boolean;
68
+ /** Value must be a multiple of this number. */
31
69
  multipleOf?: number;
70
+ /** Maximum number of fraction digits to display. */
32
71
  fractionDigits?: number;
33
72
  }
73
+ /**
74
+ * Decorator options for a string property.
75
+ */
34
76
  export interface DecoStringOptions extends DecoPropertyBase {
35
77
  type: DecoPropertyType.string;
78
+ /** Default string value. */
36
79
  default?: string;
80
+ /** Minimum allowed string length. */
37
81
  minLength?: number;
82
+ /** Maximum allowed string length. */
38
83
  maxLength?: number;
84
+ /** The string must be exactly this length. */
39
85
  exactLength?: number;
86
+ /** Regular expression the value must match. */
40
87
  regex?: string;
88
+ /** Whether this string property acts as a unique key. */
41
89
  isKey?: boolean;
42
90
  }
91
+ /**
92
+ * Decorator options for an array property.
93
+ */
43
94
  export interface DecoArrayOptions extends DecoPropertyBase {
44
95
  type: DecoPropertyType.array;
96
+ /** Decorator describing the array element type. */
45
97
  sub: Decorator;
98
+ /** Minimum number of elements. */
46
99
  minLength?: number;
100
+ /** Maximum number of elements. */
47
101
  maxLength?: number;
102
+ /** The array must contain exactly this many elements. */
48
103
  exactLength?: number;
49
104
  }
105
+ /**
106
+ * Decorator options for a nested object property.
107
+ */
50
108
  export interface DecoObjectOptions extends DecoPropertyBase {
51
109
  type: DecoPropertyType.object;
110
+ /** Decorator describing the nested object type. */
52
111
  sub: Decorator;
53
112
  }
113
+ /**
114
+ * Decorator options for a date property.
115
+ */
54
116
  export interface DecoDateOptions extends DecoPropertyBase {
55
117
  type: DecoPropertyType.date;
118
+ /** Display / serialization format for the date. */
56
119
  dateFormat: DecoDateFormat;
57
120
  }
121
+ /**
122
+ * Decorator options for a boolean property.
123
+ */
58
124
  export interface DecoBooleanOptions extends DecoPropertyBase {
59
125
  type: DecoPropertyType.boolean;
126
+ /** Default boolean value. */
60
127
  default?: boolean;
61
128
  }
62
129
  //# sourceMappingURL=types.deco.property.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.deco.property.d.ts","sourceRoot":"","sources":["../../src/types/types.deco.property.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,gBAAgB;IACzD,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;CACT;AAGD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC;IAC7B,GAAG,EAAE,SAAS,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAC9B,GAAG,EAAE,SAAS,CAAC;CAChB;AAGD,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAC5B,UAAU,EAAE,cAAc,CAAC;CAC5B;AAGD,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"types.deco.property.d.ts","sourceRoot":"","sources":["../../src/types/types.deco.property.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,44 @@
1
+ /**
2
+ * Represents any value that may be stored in a Firestore document field.
3
+ */
1
4
  export type DocumentFieldValue = any;
5
+ /**
6
+ * A generic Firestore document represented as a string-keyed map of field values.
7
+ */
2
8
  export type DocumentData = {
3
9
  [field: string]: DocumentFieldValue;
4
10
  };
11
+ /**
12
+ * Identifies a Firestore document by its unique `id`.
13
+ */
5
14
  export interface DocumentKey {
15
+ /** Unique document identifier. */
6
16
  id: string;
7
17
  }
18
+ /**
19
+ * Administrative timestamps automatically managed by Firestore.
20
+ */
8
21
  export interface DocumentAdmin {
22
+ /** Timestamp when the document was created. */
9
23
  createTime?: Date;
24
+ /** Timestamp of the most recent update. */
10
25
  updateTime?: Date;
11
26
  }
27
+ /**
28
+ * Combines {@link DocumentKey} and {@link DocumentAdmin} into a single type
29
+ * representing all Firestore administrative fields.
30
+ */
12
31
  export type DocumentKeyAdmin = DocumentKey & DocumentAdmin;
32
+ /**
33
+ * Augments a DTO with Firestore administrative fields (`id`, `createTime`, `updateTime`).
34
+ *
35
+ * @typeParam DTO - The base document data type.
36
+ */
13
37
  export type WithKey<DTO extends DocumentData> = DocumentKey & DocumentAdmin & DTO;
38
+ /**
39
+ * Strips Firestore administrative fields from a DTO type.
40
+ *
41
+ * @typeParam DTO - The base document data type.
42
+ */
14
43
  export type WithoutKey<DTO extends DocumentData> = Omit<DTO, keyof DocumentKeyAdmin>;
15
44
  //# sourceMappingURL=types.document.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.document.d.ts","sourceRoot":"","sources":["../../src/types/types.document.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACrC,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,aAAa,CAAC;AAE3D,MAAM,MAAM,OAAO,CAAC,GAAG,SAAS,YAAY,IAAI,WAAW,GACzD,aAAa,GACb,GAAG,CAAC;AAEN,MAAM,MAAM,UAAU,CAAC,GAAG,SAAS,YAAY,IAAI,IAAI,CACrD,GAAG,EACH,MAAM,gBAAgB,CACvB,CAAC"}
1
+ {"version":3,"file":"types.document.d.ts","sourceRoot":"","sources":["../../src/types/types.document.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,aAAa,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,GAAG,SAAS,YAAY,IAAI,WAAW,GACzD,aAAa,GACb,GAAG,CAAC;AAEN;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,GAAG,SAAS,YAAY,IAAI,IAAI,CACrD,GAAG,EACH,MAAM,gBAAgB,CACvB,CAAC"}
@@ -1,14 +1,27 @@
1
1
  import { ApiFilterOp } from "../config/config.api.js";
2
+ /**
3
+ * A single filter criterion composed of an operator and a comparison value.
4
+ */
2
5
  export interface ApiFilterItem {
6
+ /** The comparison operator to apply. */
3
7
  op: ApiFilterOp;
8
+ /** The value to compare the field against. */
4
9
  value: string | number | Date;
5
10
  }
11
+ /**
12
+ * A map of field names to their {@link ApiFilterItem} criteria,
13
+ * with an optional `parentId` for hierarchical queries.
14
+ */
6
15
  export type ApiFilterItems = {
7
16
  [key: string]: ApiFilterItem;
8
17
  } & {
9
18
  parentId?: string;
10
19
  };
20
+ /**
21
+ * Encapsulates an optional set of API query filters.
22
+ */
11
23
  export interface ApiFilter {
24
+ /** The filter criteria to apply, keyed by field name. */
12
25
  filters?: ApiFilterItems;
13
26
  }
14
27
  //# sourceMappingURL=types.filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.filter.d.ts","sourceRoot":"","sources":["../../src/types/types.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAC9B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1B,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.filter.d.ts","sourceRoot":"","sources":["../../src/types/types.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,EAAE,EAAE,WAAW,CAAC;IAChB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAC9B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,yDAAyD;IACzD,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B"}
@@ -1,11 +1,31 @@
1
1
  import { RoutesMap } from "./types.routes.js";
2
+ /**
3
+ * Typed request payload for a callable cloud function.
4
+ *
5
+ * @typeParam DOC - The shape of the request data.
6
+ */
2
7
  export interface FunctionRequest<DOC> {
8
+ /** The route identifier for the function being invoked. */
3
9
  route: string;
10
+ /** The request payload. */
4
11
  data: DOC;
5
12
  }
13
+ /**
14
+ * Typed response envelope returned by a callable cloud function.
15
+ *
16
+ * @typeParam DOC - The shape of the response data.
17
+ */
6
18
  export interface FunctionResponse<DOC> {
19
+ /** The response payload. */
7
20
  data: DOC;
8
21
  }
22
+ /**
23
+ * Maps each route key in a {@link RoutesMap} to a callable function that
24
+ * accepts the route's request type and returns a promise of its response type
25
+ * wrapped in a {@link FunctionResponse}.
26
+ *
27
+ * @typeParam R - A routes map defining request/response pairs per route key.
28
+ */
9
29
  export type FunctionFromRoutes<R extends RoutesMap> = {
10
30
  [K in keyof R]: (request: R[K]["request"]) => Promise<FunctionResponse<R[K]["response"]>>;
11
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.function.d.ts","sourceRoot":"","sources":["../../src/types/types.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,WAAW,eAAe,CAAC,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,gBAAgB,CAAC,GAAG;IACnC,IAAI,EAAE,GAAG,CAAC;CACX;AAED,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,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;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,11 +1,36 @@
1
1
  import type { DocumentData, DocumentKey, WithKey, WithoutKey } from "./types.document.js";
2
2
  import { ApiFilter } from "./types.filter.js";
3
+ /**
4
+ * Defines the request and response types for a single API route.
5
+ *
6
+ * @typeParam REQ - The request payload type.
7
+ * @typeParam RES - The response payload type.
8
+ */
3
9
  export type RouteDef<REQ, RES> = {
4
10
  request: REQ;
5
11
  response: RES;
6
12
  };
13
+ /**
14
+ * Maps route names to their {@link RouteDef} request/response pairs.
15
+ *
16
+ * @typeParam DEF - The route definition shape (defaults to `RouteDef<any, any>`).
17
+ */
7
18
  export type RoutesMap<DEF = RouteDef<any, any>> = Record<string, DEF>;
19
+ /**
20
+ * Identity helper that constrains a record to be a valid {@link RoutesMap}.
21
+ *
22
+ * @typeParam R - A routes map type.
23
+ */
8
24
  export type WithRoutes<R extends RoutesMap> = R;
25
+ /**
26
+ * Pre-defined CRUD route map for a Firestore document DTO.
27
+ *
28
+ * @remarks
29
+ * Provides typed route definitions for `create`, `update`, `delete`, `get`,
30
+ * `query`, `count`, and `exists` operations.
31
+ *
32
+ * @typeParam DTO - The base document data type.
33
+ */
9
34
  export type CrudRoutes<DTO extends DocumentData> = WithRoutes<{
10
35
  create: RouteDef<WithoutKey<DTO>, WithKey<DTO>>;
11
36
  update: RouteDef<WithKey<Partial<DTO>>, WithKey<DTO>>;
@@ -21,6 +46,12 @@ export type CrudRoutes<DTO extends DocumentData> = WithRoutes<{
21
46
  exists: boolean;
22
47
  }>;
23
48
  }>;
49
+ /**
50
+ * Maps each route key in a {@link RoutesMap} to an async function
51
+ * accepting the route's request type and returning a promise of its response.
52
+ *
53
+ * @typeParam R - A routes map defining request/response pairs per route key.
54
+ */
24
55
  export type ApiFromRoutes<R extends RoutesMap> = {
25
56
  [K in keyof R]: (request: R[K]["request"]) => Promise<R[K]["response"]>;
26
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.routes.d.ts","sourceRoot":"","sources":["../../src/types/types.routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,OAAO,EACP,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,IAAI;IAC/B,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,SAAS,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,CAAC;AAEhD,MAAM,MAAM,UAAU,CAAC,GAAG,SAAS,YAAY,IAAI,UAAU,CAAC;IAC5D,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IACjD,GAAG,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,KAAK,EAAE,QAAQ,CAAC,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtE,KAAK,EAAE,QAAQ,CAAC,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,IAAI;KAC9C,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;CACxE,CAAC"}
1
+ {"version":3,"file":"types.routes.d.ts","sourceRoot":"","sources":["../../src/types/types.routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,OAAO,EACP,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,IAAI;IAC/B,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;CACf,CAAC;AAEF;;;;GAIG;AAEH,MAAM,MAAM,SAAS,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,CAAC,GAAG,SAAS,YAAY,IAAI,UAAU,CAAC;IAC5D,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IACjD,GAAG,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,KAAK,EAAE,QAAQ,CAAC,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtE,KAAK,EAAE,QAAQ,CAAC,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpD,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,IAAI;KAC9C,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;CACxE,CAAC"}