@qualcomm-ui/mdx-vite 2.5.4 → 2.6.1

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.
@@ -9,6 +9,7 @@ export declare const configSchema: z.ZodObject<{
9
9
  hotUpdateIgnore: z.ZodOptional<z.ZodType<RegExp, z.ZodTypeDef, RegExp>>;
10
10
  navConfig: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodType<RouteMeta, z.ZodTypeDef, RouteMeta>, z.ZodObject<{}, z.UnknownKeysParam, z.ZodTypeAny, {}, {}>]>, "many">>;
11
11
  pageDirectory: z.ZodOptional<z.ZodString>;
12
+ pageTimestampMetadata: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"off">, z.ZodLiteral<"timestamp">, z.ZodLiteral<"user-and-timestamp">]>>;
12
13
  routingStrategy: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"vite-generouted">, z.ZodFunction<z.ZodTuple<[z.ZodString], null>, z.ZodArray<z.ZodString, "many">>]>>;
13
14
  typeDocProps: z.ZodOptional<z.ZodString>;
14
15
  typeDocPropsOptions: z.ZodOptional<z.ZodObject<{
@@ -24,6 +25,7 @@ export declare const configSchema: z.ZodObject<{
24
25
  disableCache?: boolean | undefined;
25
26
  headings?: ("h1" | "h2" | "h3" | "h4" | "h5" | "h6")[] | undefined;
26
27
  navConfig?: (RouteMeta | {})[] | undefined;
28
+ pageTimestampMetadata?: "off" | "timestamp" | "user-and-timestamp" | undefined;
27
29
  routingStrategy?: "vite-generouted" | ((args_0: string) => string[]) | undefined;
28
30
  typeDocPropsOptions?: {
29
31
  includeInSearchIndex?: boolean | undefined;
@@ -36,6 +38,7 @@ export declare const configSchema: z.ZodObject<{
36
38
  disableCache?: boolean | undefined;
37
39
  headings?: ("h1" | "h2" | "h3" | "h4" | "h5" | "h6")[] | undefined;
38
40
  navConfig?: (RouteMeta | {})[] | undefined;
41
+ pageTimestampMetadata?: "off" | "timestamp" | "user-and-timestamp" | undefined;
39
42
  routingStrategy?: "vite-generouted" | ((args_0: string) => string[]) | undefined;
40
43
  typeDocPropsOptions?: {
41
44
  includeInSearchIndex?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../src/docs-plugin/internal/config-schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,CAAC,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAC,MAAM,KAAK,CAAA;AAErD,OAAO,KAAK,EAIV,SAAS,EACV,MAAM,UAAU,CAAA;AAIjB,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,EAAE,CAItC,CAAA;AAEF,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,SAAS,CAmB7C,CAAA;AAMJ,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BvB,CAAA"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../src/docs-plugin/internal/config-schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,CAAC,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAC,MAAM,KAAK,CAAA;AAErD,OAAO,KAAK,EAIV,SAAS,EACV,MAAM,UAAU,CAAA;AAIjB,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,EAAE,CAItC,CAAA;AAEF,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,SAAS,CAmB7C,CAAA;AAMJ,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCvB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-indexer.d.ts","sourceRoot":"","sources":["../../../src/docs-plugin/internal/search-indexer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,OAAO,EAEP,OAAO,EACP,WAAW,EACZ,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAA;AAE7D,OAAO,KAAK,EAGV,oBAAoB,EACrB,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,KAAK,eAAe,EAEpB,eAAe,EAQf,kBAAkB,EAClB,eAAe,EACf,UAAU,EACX,MAAM,YAAY,CAAA;AAInB,qBAAa,aAAa;IA4Cf,MAAM,EAAE,oBAAoB;IAC5B,WAAW;IA5CpB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAa;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;IAExE,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAE/D;IACD,OAAO,CAAC,aAAa,CAAmD;IAExE,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,OAAO,CAAC,aAAa,CAAY;IAEjC,IAAI,QAAQ,IAAI,OAAO,EAAE,CAExB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,OAAO,CAAC,QAAQ,CAAc;IAE9B,IAAI,WAAW,IAAI,WAAW,EAAE,CAE/B;IACD,OAAO,CAAC,YAAY,CAAoB;IAExC,KAAK,IAAI,IAAI;gBAOJ,MAAM,EAAE,oBAAoB,EAC5B,WAAW,UAAO,EAEzB,MAAM,GAAE;QACN,eAAe,CAAC,EAAE,eAAe,CAAA;QACjC,SAAS,CAAC,EAAE,kBAAkB,CAAA;QAC9B,eAAe,CAAC,EAAE,eAAe,CAAA;QACjC,UAAU,CAAC,EAAE,UAAU,CAAA;KACnB;IAwBR;;;OAGG;IACH,OAAO,CAAC,YAAY;IA4DpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAiHtB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,cAAc;IAqBtB,UAAU,CACR,aAAa,EAAE,MAAM,EAAE,EACvB,WAAW,GAAE,OAAc,GAC1B,eAAe,EAAE;CAmCrB"}
1
+ {"version":3,"file":"search-indexer.d.ts","sourceRoot":"","sources":["../../../src/docs-plugin/internal/search-indexer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,OAAO,EAEP,OAAO,EACP,WAAW,EACZ,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAA;AAE7D,OAAO,KAAK,EAGV,oBAAoB,EACrB,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,KAAK,eAAe,EAEpB,eAAe,EAQf,kBAAkB,EAClB,eAAe,EACf,UAAU,EACX,MAAM,YAAY,CAAA;AAInB,qBAAa,aAAa;IA4Cf,MAAM,EAAE,oBAAoB;IAC5B,WAAW;IA5CpB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAa;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;IAExE,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAE/D;IACD,OAAO,CAAC,aAAa,CAAmD;IAExE,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,OAAO,CAAC,aAAa,CAAY;IAEjC,IAAI,QAAQ,IAAI,OAAO,EAAE,CAExB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,OAAO,CAAC,QAAQ,CAAc;IAE9B,IAAI,WAAW,IAAI,WAAW,EAAE,CAE/B;IACD,OAAO,CAAC,YAAY,CAAoB;IAExC,KAAK,IAAI,IAAI;gBAOJ,MAAM,EAAE,oBAAoB,EAC5B,WAAW,UAAO,EAEzB,MAAM,GAAE;QACN,eAAe,CAAC,EAAE,eAAe,CAAA;QACjC,SAAS,CAAC,EAAE,kBAAkB,CAAA;QAC9B,eAAe,CAAC,EAAE,eAAe,CAAA;QACjC,UAAU,CAAC,EAAE,UAAU,CAAA;KACnB;IAyBR;;;OAGG;IACH,OAAO,CAAC,YAAY;IA8DpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAiHtB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,cAAc;IAqBtB,UAAU,CACR,aAAa,EAAE,MAAM,EAAE,EACvB,WAAW,GAAE,OAAc,GAC1B,eAAe,EAAE;CAmCrB"}
@@ -1,6 +1,17 @@
1
1
  import type { PageFrontmatter } from "@qualcomm-ui/mdx-common";
2
2
  import type { QuiPropTypes } from "@qualcomm-ui/typedoc-common";
3
+ import type { PageTimestampMetadataMode } from "../../../types";
3
4
  import type { IndexedPage, IndexedSection } from "./markdown.types";
5
+ export interface GitMetadata {
6
+ updatedBy?: string;
7
+ updatedOn?: string;
8
+ }
9
+ /**
10
+ * Gets the last git commit metadata for a file.
11
+ * Returns undefined values if the file is not tracked by git or if git is
12
+ * unavailable.
13
+ */
14
+ export declare function getGitMetadata(filePath: string, mode: PageTimestampMetadataMode): GitMetadata;
4
15
  interface PageCache {
5
16
  frontmatter: PageFrontmatter;
6
17
  md5: string;
@@ -10,10 +21,11 @@ interface PageCache {
10
21
  }
11
22
  export declare class MarkdownFileReader {
12
23
  enabled: boolean;
24
+ pageTimestampMetadata: PageTimestampMetadataMode;
13
25
  cachedFileCount: number;
14
26
  logWarnings: boolean;
15
27
  private mdxCache;
16
- constructor(enabled: boolean);
28
+ constructor(enabled: boolean, pageTimestampMetadata?: PageTimestampMetadataMode);
17
29
  private hash;
18
30
  reset(): void;
19
31
  readCache(filePath: string): PageCache | null;
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-file-reader.d.ts","sourceRoot":"","sources":["../../../../../src/docs-plugin/internal/services/markdown/markdown-file-reader.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAA;AAI7D,OAAO,KAAK,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAEjE,UAAU,SAAS;IACjB,WAAW,EAAE,eAAe,CAAA;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,WAAW,CAAA;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAC1C,mBAAmB,EAAE,cAAc,EAAE,CAAA;CACtC;AAED,qBAAa,kBAAkB;IAKV,OAAO,EAAE,OAAO;IAJnC,eAAe,SAAI;IACnB,WAAW,UAAO;IAClB,OAAO,CAAC,QAAQ,CAAgC;gBAE7B,OAAO,EAAE,OAAO;IAEnC,OAAO,CAAC,IAAI;IAIZ,KAAK,IAAI,IAAI;IAIb,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAI7C,OAAO,CAAC,UAAU;IAyBlB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG;QAC1B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,SAAS,CAAA;QAC1C,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,EAAE,eAAe,CAAA;KAC7B;IAuDD,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,GAChC,IAAI;CAKR"}
1
+ {"version":3,"file":"markdown-file-reader.d.ts","sourceRoot":"","sources":["../../../../../src/docs-plugin/internal/services/markdown/markdown-file-reader.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAA;AAE7D,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,gBAAgB,CAAA;AAG7D,OAAO,KAAK,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAEjE,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAQD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,yBAAyB,GAC9B,WAAW,CA+Bb;AAED,UAAU,SAAS;IACjB,WAAW,EAAE,eAAe,CAAA;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,WAAW,CAAA;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAC1C,mBAAmB,EAAE,cAAc,EAAE,CAAA;CACtC;AAED,qBAAa,kBAAkB;IAMpB,OAAO,EAAE,OAAO;IAChB,qBAAqB,EAAE,yBAAyB;IANzD,eAAe,SAAI;IACnB,WAAW,UAAO;IAClB,OAAO,CAAC,QAAQ,CAAgC;gBAGvC,OAAO,EAAE,OAAO,EAChB,qBAAqB,GAAE,yBAAiC;IAGjE,OAAO,CAAC,IAAI;IAIZ,KAAK,IAAI,IAAI;IAIb,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAI7C,OAAO,CAAC,UAAU;IAyBlB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG;QAC1B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,SAAS,CAAA;QAC1C,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,EAAE,eAAe,CAAA;KAC7B;IAiED,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,GAChC,IAAI;CAKR"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/docs-plugin/internal/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAI,KAAK,SAAS,EAAC,MAAM,KAAK,CAAA;AAMrC,eAAO,MAAM,SAAS,GACpB,OAAO,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,KAC3D,OAAyD,CAAA;AAE5D,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAElE;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,CAAC,EAAE,CAcxC,CAAA;AAEJ;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/docs-plugin/internal/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAI,KAAK,SAAS,EAAC,MAAM,KAAK,CAAA;AAMrC,eAAO,MAAM,SAAS,GACpB,OAAO,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,KAC3D,OAAyD,CAAA;AAE5D,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAElE;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,CAAC,EAAE,CAgBxC,CAAA;AAEJ;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD"}
@@ -1,6 +1,13 @@
1
1
  import type { PageFrontmatter, TocHeading } from "@qualcomm-ui/mdx-common";
2
2
  import type { QuiPropTypes } from "@qualcomm-ui/typedoc-common";
3
3
  export type RoutingStrategy = "vite-generouted" | ((filePath: string) => string[]);
4
+ /**
5
+ * Controls how page timestamp metadata is populated from git history.
6
+ * - "off": No timestamp data is added
7
+ * - "timestamp": Only `updatedOn` is populated
8
+ * - "user-and-timestamp": Both `updatedOn` and `updatedBy` are populated
9
+ */
10
+ export type PageTimestampMetadataMode = "off" | "timestamp" | "user-and-timestamp";
4
11
  /**
5
12
  * Side nav item data.
6
13
  */
@@ -117,6 +124,12 @@ export interface SearchIndexerOptions {
117
124
  * directory.
118
125
  */
119
126
  pageDirectory: string;
127
+ /**
128
+ * Controls how page timestamp metadata is populated from git history.
129
+ *
130
+ * @default "off"
131
+ */
132
+ pageTimestampMetadata?: PageTimestampMetadataMode;
120
133
  /**
121
134
  * Strategy to use for building each route's path segments. Omit this property if
122
135
  * you are using the default {@link https://github.com/kiliman/remix-flat-routes
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/docs-plugin/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/docs-plugin/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,yBAAyB,CAAA;AACxE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAA;AAE7D,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC,CAAA;AAEpC;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GACjC,KAAK,GACL,WAAW,GACX,oBAAoB,CAAA;AAExB;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,KAAK,CAAA;IAEV;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,sBACf,SAAQ,IAAI,CACV,eAAe,EACb,OAAO,GACP,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,QAAQ,GACR,cAAc,CACjB;IACD;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAE5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IAErB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAA;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAA;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;AAEtE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAE3C,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,OAAO,CAAC;IAC1D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;IAEtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAA;IAEvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,EAAE,CAAA;IAEvB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,yBAAyB,CAAA;IAEjD;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IAEjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAE3C;;OAEG;IACH,mBAAmB,CAAC,EAAE,qBAAqB,CAAA;CAC5C;AAED,MAAM,WAAW,aACf,SAAQ,IAAI,CACV,oBAAoB,EACpB,QAAQ,GAAG,eAAe,GAAG,cAAc,CAC5C;IACD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,mBAAmB,CAAC,EAAE,qBAAqB,CAAA;CAC5C"}
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import { watch } from "chokidar";
6
6
  import { glob as glob2 } from "glob";
7
7
  import { existsSync } from "node:fs";
8
8
  import { readFile as readFile2, stat } from "node:fs/promises";
9
- import { basename, dirname, join as join2, relative, resolve as resolve2 } from "node:path";
9
+ import { basename, dirname, join as join2, relative as relative2, resolve as resolve2 } from "node:path";
10
10
  import {
11
11
  createHighlighter
12
12
  } from "shiki";
@@ -82,6 +82,11 @@ var configSchema = implement().with({
82
82
  hotUpdateIgnore: z2.instanceof(RegExp).optional(),
83
83
  navConfig: z2.array(z2.union([routeMetaSchema, navMetaSchema])).optional(),
84
84
  pageDirectory: z2.string().optional(),
85
+ pageTimestampMetadata: z2.union([
86
+ z2.literal("off"),
87
+ z2.literal("timestamp"),
88
+ z2.literal("user-and-timestamp")
89
+ ]).optional(),
85
90
  routingStrategy: z2.union([
86
91
  z2.literal("vite-generouted"),
87
92
  z2.function(z2.tuple([z2.string()]), z2.array(z2.string()))
@@ -107,7 +112,9 @@ var frontmatterSchema = implement().with({
107
112
  id: z3.string().optional(),
108
113
  restricted: z3.boolean().optional(),
109
114
  sideNavTitle: z3.string().optional(),
110
- title: z3.string()
115
+ title: z3.string(),
116
+ updatedBy: z3.string().optional(),
117
+ updatedOn: z3.string().optional()
111
118
  });
112
119
  function fixPath(str) {
113
120
  return str.replaceAll("\\", "/");
@@ -383,16 +390,52 @@ var DocPropsIndexer = class {
383
390
 
384
391
  // src/docs-plugin/internal/services/markdown/markdown-file-reader.ts
385
392
  import chalk from "chalk";
393
+ import { execSync } from "node:child_process";
386
394
  import { createHash } from "node:crypto";
387
395
  import { readFileSync } from "node:fs";
396
+ import { relative } from "node:path";
388
397
  import remarkFrontmatter from "remark-frontmatter";
389
398
  import remarkParse2 from "remark-parse";
390
399
  import remarkParseFrontmatter from "remark-parse-frontmatter";
391
400
  import remarkStringify2 from "remark-stringify";
392
401
  import { unified as unified2 } from "unified";
402
+ function getRepoRoot() {
403
+ return execSync("git rev-parse --show-toplevel", {
404
+ encoding: "utf-8"
405
+ }).trim();
406
+ }
407
+ function getGitMetadata(filePath, mode) {
408
+ if (mode === "off") {
409
+ return {};
410
+ }
411
+ try {
412
+ const repoRoot = getRepoRoot();
413
+ const relativePath = relative(repoRoot, filePath);
414
+ const format = mode === "user-and-timestamp" ? "%cI%n%aN" : "%cI";
415
+ const result = execSync(
416
+ `git log -1 --format=${format} -- "${relativePath}"`,
417
+ {
418
+ cwd: repoRoot,
419
+ encoding: "utf-8",
420
+ stdio: ["pipe", "pipe", "pipe"]
421
+ }
422
+ ).trim();
423
+ if (!result) {
424
+ return {};
425
+ }
426
+ if (mode === "user-and-timestamp") {
427
+ const [updatedOn, updatedBy] = result.split("\n");
428
+ return { updatedBy, updatedOn };
429
+ }
430
+ return { updatedOn: result };
431
+ } catch {
432
+ return {};
433
+ }
434
+ }
393
435
  var MarkdownFileReader = class {
394
- constructor(enabled) {
436
+ constructor(enabled, pageTimestampMetadata = "off") {
395
437
  this.enabled = enabled;
438
+ this.pageTimestampMetadata = pageTimestampMetadata;
396
439
  }
397
440
  cachedFileCount = 0;
398
441
  logWarnings = true;
@@ -458,6 +501,15 @@ var MarkdownFileReader = class {
458
501
  console.debug(`- ${issue.path.join(".")}`);
459
502
  });
460
503
  }
504
+ if (!frontmatter.updatedOn || !frontmatter.updatedBy) {
505
+ const gitMetadata = getGitMetadata(filepath, this.pageTimestampMetadata);
506
+ if (!frontmatter.updatedOn && gitMetadata.updatedOn) {
507
+ frontmatter.updatedOn = gitMetadata.updatedOn;
508
+ }
509
+ if (!frontmatter.updatedBy && gitMetadata.updatedBy) {
510
+ frontmatter.updatedBy = gitMetadata.updatedBy;
511
+ }
512
+ }
461
513
  return { cached, fileContents, frontmatter };
462
514
  }
463
515
  updateCache(filepath, fileContents, cacheData) {
@@ -1414,7 +1466,8 @@ var SearchIndexer = class {
1414
1466
  this.navBuilder = addons.navBuilder || new NavBuilder(this.metaJson, this.routeMetaNav);
1415
1467
  this.docPropsIndexer = addons.docPropsIndexer || new DocPropsIndexer(this.config.typeDocProps ?? {});
1416
1468
  this.fileCache = addons.fileCache || new MarkdownFileReader(
1417
- process.env.NODE_ENV === "development" && !this.config.disableCache
1469
+ process.env.NODE_ENV === "development" && !this.config.disableCache,
1470
+ this.config.pageTimestampMetadata
1418
1471
  );
1419
1472
  }
1420
1473
  docPropsIndexer;
@@ -1483,7 +1536,9 @@ var SearchIndexer = class {
1483
1536
  pathname,
1484
1537
  pathSegments,
1485
1538
  restricted: defined(routeMeta.restricted) ? routeMeta.restricted : frontmatter.restricted,
1486
- title: defined(routeMeta.title) ? routeMeta.title || "" : frontmatter.title || ""
1539
+ title: defined(routeMeta.title) ? routeMeta.title || "" : frontmatter.title || "",
1540
+ updatedBy: frontmatter.updatedBy,
1541
+ updatedOn: frontmatter.updatedOn
1487
1542
  };
1488
1543
  }
1489
1544
  /**
@@ -3259,7 +3314,7 @@ function angularDemoPlugin({
3259
3314
  return null;
3260
3315
  }
3261
3316
  const demoId = componentClass;
3262
- const importPath = relative(process.cwd(), filePath).replace(/\\/g, "/");
3317
+ const importPath = relative2(process.cwd(), filePath).replace(/\\/g, "/");
3263
3318
  const fileName = basename(filePath);
3264
3319
  const importsWithoutStrip = stripImports(code, filePath);
3265
3320
  const sourceCode = [];
@@ -3808,7 +3863,7 @@ var NODE_BUILTINS = [
3808
3863
  import chalk5 from "chalk";
3809
3864
  import { existsSync as existsSync2, readFileSync as readFileSync3 } from "node:fs";
3810
3865
  import { readFile as readFile3 } from "node:fs/promises";
3811
- import { dirname as dirname2, join as join3, relative as relative2, resolve as resolve3, sep } from "node:path";
3866
+ import { dirname as dirname2, join as join3, relative as relative3, resolve as resolve3, sep } from "node:path";
3812
3867
  import * as ts2 from "typescript";
3813
3868
  import { pascalCase } from "@qualcomm-ui/utils/change-case";
3814
3869
  function createDemoName(filePath) {
@@ -4082,7 +4137,7 @@ function resolvePathAlias2(source, pathAliases) {
4082
4137
  return null;
4083
4138
  }
4084
4139
  function extractPageId(filePath, routesDir) {
4085
- const relativePath = relative2(routesDir, filePath);
4140
+ const relativePath = relative3(routesDir, filePath);
4086
4141
  const pathParts = relativePath.split(sep);
4087
4142
  if (pathParts.includes("demos")) {
4088
4143
  const demosIndex = pathParts.indexOf("demos");