@futdevpro/fsm-dynamo 1.20.131 → 1.20.133

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,32 @@
1
+ /**
2
+ * BFR-FLEET-010 (`CFR-FLEET-043`, 2026-10-19) — the ONE list of the agent / documentation paths, for every place that
3
+ * decides "this change is documentation only".
4
+ *
5
+ * Two places decide it today, and they must agree:
6
+ * - the Overseer queue (`DocOnlyPush_Util`): a doc-only PUSH gets the lowest priority;
7
+ * - the `dc` pre-commit steps (`dc sync-fdp-deps`, `dc bump-version`): a doc-only COMMIT gets no dependency and no version
8
+ * bump. Measured 2026-10-19: 41 of the 44 fleet hooks put both into every doc commit (a `USER_INPUT.md` line ⇒ 4-5 files),
9
+ * and the Overseer then let that bedrock bump through as a "doc-only" push.
10
+ *
11
+ * The patterns are the Overseer's `DOC_PATTERNS` of 2026-09-24 (`CFR-FLEET-027`): `CLAUDE.md` / `AGENTS.md` / `SKILLS.md`
12
+ * anywhere, and anything under `__documentations/` or `__agent/` (part of the repo, never gitignored, but never the product).
13
+ * ⚠️ `__agent-workspaces/` is NOT `__agent/` (the slash) — it stays a non-doc path here, like at the Overseer.
14
+ */
15
+ export declare class DyFM_DocOnlyPath_Util {
16
+ /** The agent / documentation paths (repo-relative, `/`-separated; a `\` path is normalized first). */
17
+ static readonly docPatterns: readonly RegExp[];
18
+ /**
19
+ * Whether ONE path is an agent / documentation path.
20
+ *
21
+ * @param filePath a repo-relative path (`/` or `\` separated)
22
+ */
23
+ static isDocPath(filePath: string): boolean;
24
+ /**
25
+ * Whether a change is documentation ONLY: at least one path, and every path is a doc path. An EMPTY list is NOT doc-only
26
+ * (nothing is known ⇒ the caller keeps its usual path).
27
+ *
28
+ * @param filePaths the changed paths
29
+ */
30
+ static isDocOnly(filePaths: readonly string[]): boolean;
31
+ }
32
+ //# sourceMappingURL=doc-only-path.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-only-path.util.d.ts","sourceRoot":"","sources":["../../../src/_collections/utils/doc-only-path.util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAqB;IAEhC,sGAAsG;IACtG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAI5C;IAEF;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAM3C;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO;CAKxD"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyFM_DocOnlyPath_Util = void 0;
4
+ /**
5
+ * BFR-FLEET-010 (`CFR-FLEET-043`, 2026-10-19) — the ONE list of the agent / documentation paths, for every place that
6
+ * decides "this change is documentation only".
7
+ *
8
+ * Two places decide it today, and they must agree:
9
+ * - the Overseer queue (`DocOnlyPush_Util`): a doc-only PUSH gets the lowest priority;
10
+ * - the `dc` pre-commit steps (`dc sync-fdp-deps`, `dc bump-version`): a doc-only COMMIT gets no dependency and no version
11
+ * bump. Measured 2026-10-19: 41 of the 44 fleet hooks put both into every doc commit (a `USER_INPUT.md` line ⇒ 4-5 files),
12
+ * and the Overseer then let that bedrock bump through as a "doc-only" push.
13
+ *
14
+ * The patterns are the Overseer's `DOC_PATTERNS` of 2026-09-24 (`CFR-FLEET-027`): `CLAUDE.md` / `AGENTS.md` / `SKILLS.md`
15
+ * anywhere, and anything under `__documentations/` or `__agent/` (part of the repo, never gitignored, but never the product).
16
+ * ⚠️ `__agent-workspaces/` is NOT `__agent/` (the slash) — it stays a non-doc path here, like at the Overseer.
17
+ */
18
+ class DyFM_DocOnlyPath_Util {
19
+ /** The agent / documentation paths (repo-relative, `/`-separated; a `\` path is normalized first). */
20
+ static docPatterns = [
21
+ /(^|\/)(CLAUDE|AGENTS|SKILLS)\.md$/,
22
+ /(^|\/)__documentations\//,
23
+ /(^|\/)__agent\//,
24
+ ];
25
+ /**
26
+ * Whether ONE path is an agent / documentation path.
27
+ *
28
+ * @param filePath a repo-relative path (`/` or `\` separated)
29
+ */
30
+ static isDocPath(filePath) {
31
+ const normalized = `${filePath ?? ''}`.trim().replace(/\\/g, '/');
32
+ return !!normalized && DyFM_DocOnlyPath_Util.docPatterns.some((pattern) => pattern.test(normalized));
33
+ }
34
+ /**
35
+ * Whether a change is documentation ONLY: at least one path, and every path is a doc path. An EMPTY list is NOT doc-only
36
+ * (nothing is known ⇒ the caller keeps its usual path).
37
+ *
38
+ * @param filePaths the changed paths
39
+ */
40
+ static isDocOnly(filePaths) {
41
+ const paths = (filePaths ?? []).filter((filePath) => !!`${filePath ?? ''}`.trim());
42
+ return paths.length > 0 && paths.every((filePath) => DyFM_DocOnlyPath_Util.isDocPath(filePath));
43
+ }
44
+ }
45
+ exports.DyFM_DocOnlyPath_Util = DyFM_DocOnlyPath_Util;
46
+ //# sourceMappingURL=doc-only-path.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-only-path.util.js","sourceRoot":"","sources":["../../../src/_collections/utils/doc-only-path.util.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,MAAa,qBAAqB;IAEhC,sGAAsG;IACtG,MAAM,CAAU,WAAW,GAAsB;QAC/C,mCAAmC;QACnC,0BAA0B;QAC1B,iBAAiB;KAClB,CAAC;IAEF;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,QAAgB;QAC/B,MAAM,UAAU,GAAW,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE1E,OAAO,CAAC,CAAC,UAAU,IAAI,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,SAA4B;QAC3C,MAAM,KAAK,GAAa,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAgB,EAAW,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9G,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,QAAgB,EAAW,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnH,CAAC;;AA9BH,sDA+BC"}
package/build/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export * from './_collections/utils/json-error-helper.util';
11
11
  export * from './_collections/utils/log.util';
12
12
  export * from './_collections/utils/round-list.util';
13
13
  export * from './_collections/utils/secret-mask.util';
14
+ export * from './_collections/utils/doc-only-path.util';
14
15
  export * from './_collections/utils/object.util';
15
16
  export * from './_collections/utils/require-env.util';
16
17
  export * from './_collections/utils/stack.util';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AAGrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iDAAiD,CAAC;AAChE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iDAAiD,CAAC;AAChE,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gCAAgC,CAAC;AAG/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AAGvD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC;AAI/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AAKjD,cAAc,0DAA0D,CAAC;AACzE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,+DAA+D,CAAC;AAC9E,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0DAA0D,CAAC;AACzE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oDAAoD,CAAC;AACnE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uEAAuE,CAAC;AACtF,cAAc,mEAAmE,CAAC;AAGlF,cAAc,iEAAiE,CAAC;AAChF,cAAc,0DAA0D,CAAC;AACzE,cAAc,wDAAwD,CAAC;AAGvE,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAG1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uDAAuD,CAAC;AACtE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,mDAAmD,CAAC;AAClE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,0DAA0D,CAAC;AACzE,cAAc,yDAAyD,CAAC;AACxE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wDAAwD,CAAC;AACvE,cAAc,wCAAwC,CAAC;AAGvD,cAAc,gEAAgE,CAAC;AAC/E,cAAc,4DAA4D,CAAC;AAG3E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC"}
package/build/index.js CHANGED
@@ -17,6 +17,7 @@ tslib_1.__exportStar(require("./_collections/utils/json-error-helper.util"), exp
17
17
  tslib_1.__exportStar(require("./_collections/utils/log.util"), exports);
18
18
  tslib_1.__exportStar(require("./_collections/utils/round-list.util"), exports);
19
19
  tslib_1.__exportStar(require("./_collections/utils/secret-mask.util"), exports);
20
+ tslib_1.__exportStar(require("./_collections/utils/doc-only-path.util"), exports);
20
21
  tslib_1.__exportStar(require("./_collections/utils/object.util"), exports);
21
22
  tslib_1.__exportStar(require("./_collections/utils/require-env.util"), exports);
22
23
  tslib_1.__exportStar(require("./_collections/utils/stack.util"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,wBAAwB;AACxB,oFAA0D;AAC1D,wFAA8D;AAC9D,yFAA+D;AAC/D,iFAAuD;AACvD,+EAAqD;AAErD,oBAAoB;AACpB,0EAAgD;AAChD,0EAAgD;AAChD,yEAA+C;AAC/C,0FAAgE;AAChE,sFAA4D;AAC5D,wEAA8C;AAC9C,+EAAqD;AACrD,gFAAsD;AACtD,2EAAiD;AACjD,gFAAsD;AACtD,0EAAgD;AAChD,2EAAiD;AACjD,gFAAsD;AACtD,yEAA+C;AAC/C,0FAAgE;AAChE,8EAAoD;AACpD,oFAA0D;AAC1D,yFAA+D;AAC/D,kFAAwD;AACxD,qFAA2D;AAC3D,yEAA+C;AAE/C,yBAAyB;AACzB,oFAA0D;AAC1D,8EAAoD;AACpD,gFAAsD;AACtD,sFAA4D;AAC5D,iFAAuD;AAEvD,2BAA2B;AAC3B,yFAA+D;AAC/D,gFAAsD;AACtD,yFAA+D;AAG/D,QAAQ;AACR,4EAAkD;AAClD,wEAA8C;AAC9C,yEAA+C;AAC/C,oEAA0C;AAC1C,qEAA2C;AAC3C,kEAAwC;AACxC,4EAAkD;AAClD,gFAAsD;AACtD,mFAAyD;AACzD,iFAAuD;AAEvD,aAAa;AACb,4EAAkD;AAClD,6EAAmD;AACnD,gFAAsD;AAEtD,aAAa;AACb,yEAA+C;AAC/C,mEAAyC;AACzC,2EAAiD;AAGjD,SAAS;AACT,wBAAwB;AACxB,mGAAyE;AACzE,qGAA2E;AAC3E,sGAA4E;AAC5E,wGAA8E;AAC9E,uFAA6D;AAC7D,mGAAyE;AACzE,oGAA0E;AAC1E,sFAA4D;AAC5D,qFAA2D;AAC3D,6FAAmE;AACnE,+FAAqE;AACrE,gHAAsF;AACtF,4GAAkF;AAElF,6BAA6B;AAC7B,0GAAgF;AAChF,mGAAyE;AACzE,iGAAuE;AAEvE,qBAAqB;AACrB,kFAAwD;AACxD,oFAA0D;AAE1D,oBAAoB;AACpB,oFAA0D;AAC1D,wFAA8D;AAC9D,2FAAiE;AACjE,gGAAsE;AACtE,yFAA+D;AAC/D,8FAAoE;AACpE,4FAAkE;AAClE,8FAAoE;AACpE,+FAAqE;AACrE,mGAAyE;AACzE,kGAAwE;AACxE,+FAAqE;AACrE,gGAAsE;AACtE,+EAAqD;AACrD,uFAA6D;AAC7D,wFAA8D;AAC9D,sFAA4D;AAC5D,uFAA6D;AAC7D,iGAAuE;AACvE,iFAAuD;AAEvD,gCAAgC;AAChC,yGAA+E;AAC/E,qGAA2E;AAE3E,eAAe;AACf,yEAA+C;AAC/C,uEAA6C;AAC7C,yEAA+C;AAC/C,uEAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,wBAAwB;AACxB,oFAA0D;AAC1D,wFAA8D;AAC9D,yFAA+D;AAC/D,iFAAuD;AACvD,+EAAqD;AAErD,oBAAoB;AACpB,0EAAgD;AAChD,0EAAgD;AAChD,yEAA+C;AAC/C,0FAAgE;AAChE,sFAA4D;AAC5D,wEAA8C;AAC9C,+EAAqD;AACrD,gFAAsD;AACtD,kFAAwD;AACxD,2EAAiD;AACjD,gFAAsD;AACtD,0EAAgD;AAChD,2EAAiD;AACjD,gFAAsD;AACtD,yEAA+C;AAC/C,0FAAgE;AAChE,8EAAoD;AACpD,oFAA0D;AAC1D,yFAA+D;AAC/D,kFAAwD;AACxD,qFAA2D;AAC3D,yEAA+C;AAE/C,yBAAyB;AACzB,oFAA0D;AAC1D,8EAAoD;AACpD,gFAAsD;AACtD,sFAA4D;AAC5D,iFAAuD;AAEvD,2BAA2B;AAC3B,yFAA+D;AAC/D,gFAAsD;AACtD,yFAA+D;AAG/D,QAAQ;AACR,4EAAkD;AAClD,wEAA8C;AAC9C,yEAA+C;AAC/C,oEAA0C;AAC1C,qEAA2C;AAC3C,kEAAwC;AACxC,4EAAkD;AAClD,gFAAsD;AACtD,mFAAyD;AACzD,iFAAuD;AAEvD,aAAa;AACb,4EAAkD;AAClD,6EAAmD;AACnD,gFAAsD;AAEtD,aAAa;AACb,yEAA+C;AAC/C,mEAAyC;AACzC,2EAAiD;AAGjD,SAAS;AACT,wBAAwB;AACxB,mGAAyE;AACzE,qGAA2E;AAC3E,sGAA4E;AAC5E,wGAA8E;AAC9E,uFAA6D;AAC7D,mGAAyE;AACzE,oGAA0E;AAC1E,sFAA4D;AAC5D,qFAA2D;AAC3D,6FAAmE;AACnE,+FAAqE;AACrE,gHAAsF;AACtF,4GAAkF;AAElF,6BAA6B;AAC7B,0GAAgF;AAChF,mGAAyE;AACzE,iGAAuE;AAEvE,qBAAqB;AACrB,kFAAwD;AACxD,oFAA0D;AAE1D,oBAAoB;AACpB,oFAA0D;AAC1D,wFAA8D;AAC9D,2FAAiE;AACjE,gGAAsE;AACtE,yFAA+D;AAC/D,8FAAoE;AACpE,4FAAkE;AAClE,8FAAoE;AACpE,+FAAqE;AACrE,mGAAyE;AACzE,kGAAwE;AACxE,+FAAqE;AACrE,gGAAsE;AACtE,+EAAqD;AACrD,uFAA6D;AAC7D,wFAA8D;AAC9D,sFAA4D;AAC5D,uFAA6D;AAC7D,iGAAuE;AACvE,iFAAuD;AAEvD,gCAAgC;AAChC,yGAA+E;AAC/E,qGAA2E;AAE3E,eAAe;AACf,yEAA+C;AAC/C,uEAA6C;AAC7C,yEAA+C;AAC/C,uEAA6C"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * BFR-FLEET-010 (`CFR-FLEET-043`, 2026-10-19) — the ONE list of the agent / documentation paths, for every place that
3
+ * decides "this change is documentation only".
4
+ *
5
+ * Two places decide it today, and they must agree:
6
+ * - the Overseer queue (`DocOnlyPush_Util`): a doc-only PUSH gets the lowest priority;
7
+ * - the `dc` pre-commit steps (`dc sync-fdp-deps`, `dc bump-version`): a doc-only COMMIT gets no dependency and no version
8
+ * bump. Measured 2026-10-19: 41 of the 44 fleet hooks put both into every doc commit (a `USER_INPUT.md` line ⇒ 4-5 files),
9
+ * and the Overseer then let that bedrock bump through as a "doc-only" push.
10
+ *
11
+ * The patterns are the Overseer's `DOC_PATTERNS` of 2026-09-24 (`CFR-FLEET-027`): `CLAUDE.md` / `AGENTS.md` / `SKILLS.md`
12
+ * anywhere, and anything under `__documentations/` or `__agent/` (part of the repo, never gitignored, but never the product).
13
+ * ⚠️ `__agent-workspaces/` is NOT `__agent/` (the slash) — it stays a non-doc path here, like at the Overseer.
14
+ */
15
+ export class DyFM_DocOnlyPath_Util {
16
+ /** The agent / documentation paths (repo-relative, `/`-separated; a `\` path is normalized first). */
17
+ static docPatterns = [
18
+ /(^|\/)(CLAUDE|AGENTS|SKILLS)\.md$/,
19
+ /(^|\/)__documentations\//,
20
+ /(^|\/)__agent\//,
21
+ ];
22
+ /**
23
+ * Whether ONE path is an agent / documentation path.
24
+ *
25
+ * @param filePath a repo-relative path (`/` or `\` separated)
26
+ */
27
+ static isDocPath(filePath) {
28
+ const normalized = `${filePath ?? ''}`.trim().replace(/\\/g, '/');
29
+ return !!normalized && DyFM_DocOnlyPath_Util.docPatterns.some((pattern) => pattern.test(normalized));
30
+ }
31
+ /**
32
+ * Whether a change is documentation ONLY: at least one path, and every path is a doc path. An EMPTY list is NOT doc-only
33
+ * (nothing is known ⇒ the caller keeps its usual path).
34
+ *
35
+ * @param filePaths the changed paths
36
+ */
37
+ static isDocOnly(filePaths) {
38
+ const paths = (filePaths ?? []).filter((filePath) => !!`${filePath ?? ''}`.trim());
39
+ return paths.length > 0 && paths.every((filePath) => DyFM_DocOnlyPath_Util.isDocPath(filePath));
40
+ }
41
+ }
@@ -14,6 +14,7 @@ export * from './_collections/utils/json-error-helper.util';
14
14
  export * from './_collections/utils/log.util';
15
15
  export * from './_collections/utils/round-list.util';
16
16
  export * from './_collections/utils/secret-mask.util';
17
+ export * from './_collections/utils/doc-only-path.util';
17
18
  export * from './_collections/utils/object.util';
18
19
  export * from './_collections/utils/require-env.util';
19
20
  export * from './_collections/utils/stack.util';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/fsm-dynamo",
3
- "version": "1.20.131",
3
+ "version": "1.20.133",
4
4
  "description": "Full Stack Model Collection for Dynamic (NodeJS-Typescript) Framework called Dynamo, by Future Development Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "full-stack-package",