emberflow 1.3.68 → 1.3.70

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.
@@ -1,77 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.createViewLogicFn = void 0;
27
- const index_1 = require("../index");
28
- const admin = __importStar(require("firebase-admin"));
29
- const paths_1 = require("../utils/paths");
30
- function createViewLogicFn(viewDefinition) {
31
- return async (action) => {
32
- const { srcProps, destEntity, destProp } = viewDefinition;
33
- const { document, path, actionType } = action;
34
- console.log(`Executing ViewLogic on document at ${path}...`);
35
- const docId = path.split("/").slice(-1)[0];
36
- const destDocPath = index_1.docPaths[destEntity];
37
- const destPaths = await (0, paths_1.hydrateDocPath)(destDocPath, {
38
- [destEntity]: {
39
- fieldName: destProp ? `${destProp}.id` : "id",
40
- operator: "==",
41
- value: docId,
42
- },
43
- });
44
- let documents;
45
- if (actionType === "delete") {
46
- documents = destPaths.map((destPath) => {
47
- return {
48
- action: "delete",
49
- dstPath: path,
50
- };
51
- });
52
- }
53
- else {
54
- const viewDoc = {};
55
- for (const srcProp of srcProps) {
56
- if (document[srcProp]) {
57
- viewDoc[`${destProp ? `${destProp}.` : ""}${srcProp}`] = document[srcProp];
58
- }
59
- }
60
- documents = destPaths.map((destPath) => {
61
- return {
62
- action: "merge",
63
- dstPath: destPath,
64
- doc: viewDoc,
65
- };
66
- });
67
- }
68
- return {
69
- name: `${destEntity}#${destProp} ViewLogic`,
70
- status: "finished",
71
- timeFinished: admin.firestore.Timestamp.now(),
72
- documents,
73
- };
74
- };
75
- }
76
- exports.createViewLogicFn = createViewLogicFn;
77
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oCAAkC;AAClC,sDAAwC;AACxC,0CAA8C;AAE9C,SAAgB,iBAAiB,CAAC,cAA8B;IAC9D,OAAO,KAAK,EAAE,MAAc,EAAE,EAAE;QAC9B,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAC,GAAG,cAAc,CAAC;QACxD,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,sCAAsC,IAAI,KAAK,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3C,MAAM,WAAW,GAAG,gBAAQ,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,IAAA,sBAAc,EACpC,WAAW,EACX;YACE,CAAC,UAAU,CAAC,EAAE;gBACZ,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,IAAI;gBAC7C,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,KAAK;aACb;SACF,CACF,CAAC;QAEF,IAAI,SAA2B,CAAC;QAChC,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC3B,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrC,OAAO;oBACL,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,OAAO,GAAwB,EAAE,CAAC;YACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACrB,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAC5E;aACF;YACD,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrC,OAAO;oBACL,MAAM,EAAE,OAA4B;oBACpC,OAAO,EAAE,QAAQ;oBACjB,GAAG,EAAE,OAAO;iBACb,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QAED,OAAO;YACL,IAAI,EAAE,GAAG,UAAU,IAAI,QAAQ,YAAY;YAC3C,MAAM,EAAE,UAAU;YAClB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;YAC7C,SAAS;SACV,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAlDD,8CAkDC"}
@@ -1,2 +0,0 @@
1
- import { LogicConfig } from "../types";
2
- export declare const forDistributionLogicConfig: LogicConfig;
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.forDistributionLogicConfig = void 0;
4
- const db_structure_1 = require("../db-structure");
5
- exports.forDistributionLogicConfig = {
6
- name: "ForDistribution Logic",
7
- actionTypes: ["create"],
8
- modifiedFields: "all",
9
- entities: [db_structure_1.InternalEntity.ForDistribution],
10
- logicFn: async (action) => {
11
- const { modifiedFields } = action;
12
- const documents = modifiedFields.logicResultDocs;
13
- return {
14
- name: "For Distribution Logic Result",
15
- status: "finished",
16
- documents,
17
- };
18
- },
19
- };
20
- //# sourceMappingURL=logics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logics.js","sourceRoot":"","sources":["../../src/logics/logics.ts"],"names":[],"mappings":";;;AAKA,kDAA+C;AAElC,QAAA,0BAA0B,GAAgB;IACrD,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,CAAC,QAAQ,CAAC;IACvB,cAAc,EAAE,KAAK;IACrB,QAAQ,EAAE,CAAC,6BAAc,CAAC,eAAe,CAAC;IAC1C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAChC,MAAM,EAAC,cAAc,EAAC,GAAG,MAAM,CAAC;QAChC,MAAM,SAAS,GAAqB,cAAc,CAAC,eAAe,CAAC;QACnE,OAAO;YACL,IAAI,EAAE,+BAA+B;YACrC,MAAM,EAAE,UAAU;YAClB,SAAS;SACV,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1,127 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const logics_1 = require("../../logics");
27
- const admin = __importStar(require("firebase-admin"));
28
- const queryutils = __importStar(require("../../utils/query"));
29
- const pathsutils = __importStar(require("../../utils/paths"));
30
- const vd1 = {
31
- srcEntity: "user",
32
- srcProps: ["name", "avatar"],
33
- destEntity: "friend",
34
- };
35
- const vd2 = {
36
- srcEntity: "user",
37
- srcProps: ["name", "avatar"],
38
- destEntity: "post",
39
- destProp: "postedBy",
40
- };
41
- const testAction = {
42
- actionType: "update",
43
- path: "users/1234",
44
- document: {
45
- name: "John Doe",
46
- age: 16,
47
- },
48
- status: "processing",
49
- timeCreated: admin.firestore.Timestamp.now(),
50
- };
51
- jest.mock("../../index", () => {
52
- const originalModule = jest.requireActual("../../index");
53
- return Object.assign(Object.assign({}, originalModule), { docPaths: {
54
- user: "users/{userId}",
55
- friend: "users/{userId}/friends/{friendId}",
56
- post: "users/{userId}/posts/{postId}",
57
- }, hydrateDocPath: jest.fn()
58
- .mockReturnValueOnce(Promise.resolve([
59
- "users/456/friends/1234",
60
- "users/789/friends/1234",
61
- ]))
62
- .mockReturnValueOnce(Promise.resolve([
63
- "users/123/posts/987",
64
- "users/890/posts/987",
65
- ])) });
66
- });
67
- describe("createViewLogicFn", () => {
68
- it("should create a logic function that processes the given action and view definition", async () => {
69
- const hydrateDocPathSpy = jest.spyOn(pathsutils, "hydrateDocPath");
70
- const fetchIdsMock = jest.spyOn(queryutils, "fetchIds");
71
- fetchIdsMock
72
- .mockResolvedValueOnce(["456", "789"])
73
- .mockResolvedValue(["1234"]);
74
- // Create the logic function using the viewDefinition
75
- const logicFn = (0, logics_1.createViewLogicFn)(vd1);
76
- // Call the logic function with the test action
77
- const result = await logicFn(testAction);
78
- // Add your expectations here, e.g., result.documents should have the correct properties and values
79
- expect(result).toBeDefined();
80
- expect(result.documents).toBeDefined();
81
- expect(result.documents.length).toEqual(2);
82
- let document = result.documents[0];
83
- expect(document).toHaveProperty("action", "merge");
84
- expect(document).toHaveProperty("dstPath", "users/456/friends/1234");
85
- expect(document.doc).toEqual({ "name": "John Doe" });
86
- document = result.documents[1];
87
- expect(document).toHaveProperty("action", "merge");
88
- expect(document).toHaveProperty("dstPath", "users/789/friends/1234");
89
- expect(document.doc).toEqual({ "name": "John Doe" });
90
- expect(hydrateDocPathSpy.mock.calls[0][0]).toEqual("users/{userId}/friends/{friendId}");
91
- expect(hydrateDocPathSpy.mock.calls[0][1]).toEqual({
92
- "friend": {
93
- fieldName: "id",
94
- operator: "==",
95
- value: "1234",
96
- },
97
- });
98
- fetchIdsMock
99
- .mockResolvedValueOnce(["123", "890"])
100
- .mockResolvedValue(["987"]);
101
- // Create the logic function using the viewDefinition
102
- const logicFn2 = (0, logics_1.createViewLogicFn)(vd2);
103
- // Call the logic function with the test action
104
- const result2 = await logicFn2(testAction);
105
- // Add your expectations here, e.g., result.documents should have the correct properties and values
106
- expect(result2).toBeDefined();
107
- expect(result2.documents).toBeDefined();
108
- expect(result2.documents.length).toEqual(2);
109
- document = result2.documents[0];
110
- expect(document).toHaveProperty("action", "merge");
111
- expect(document).toHaveProperty("dstPath", "users/123/posts/987");
112
- expect(document.doc).toEqual({ "postedBy.name": "John Doe" });
113
- document = result2.documents[1];
114
- expect(document).toHaveProperty("action", "merge");
115
- expect(document).toHaveProperty("dstPath", "users/890/posts/987");
116
- expect(document.doc).toEqual({ "postedBy.name": "John Doe" });
117
- expect(hydrateDocPathSpy.mock.calls[1][0]).toEqual("users/{userId}/posts/{postId}");
118
- expect(hydrateDocPathSpy.mock.calls[1][1]).toEqual({
119
- "post": {
120
- fieldName: "postedBy.id",
121
- operator: "==",
122
- value: "1234",
123
- },
124
- });
125
- });
126
- });
127
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/tests/logics/index.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const admin = __importStar(require("firebase-admin"));
27
- const sample_1 = require("../../utils/sample");
28
- describe("Your test suite", () => {
29
- let createNowTimestampMock;
30
- let firestoreMock;
31
- beforeEach(() => {
32
- // Mock the createNowTimestamp function
33
- createNowTimestampMock = jest.spyOn(sample_1._mockable, "createNowTimestamp");
34
- createNowTimestampMock.mockReturnValue({ seconds: 1234567890, nanoseconds: 0 });
35
- // Mock admin.firestore
36
- firestoreMock = jest.spyOn(admin, "firestore");
37
- firestoreMock.mockReturnValue({});
38
- });
39
- afterEach(() => {
40
- // Reset the mocks after each test
41
- jest.resetAllMocks();
42
- });
43
- it("Your test case", () => {
44
- // Redirect console.info to a jest function to capture its output
45
- console.info = jest.fn();
46
- (0, sample_1.sampleFunction)();
47
- expect(console.info).toHaveBeenCalledWith(true, { seconds: 1234567890, nanoseconds: 0 });
48
- expect(createNowTimestampMock).toHaveBeenCalledTimes(1);
49
- expect(firestoreMock).toHaveBeenCalledTimes(1);
50
- });
51
- });
52
- //# sourceMappingURL=sample.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sample.test.js","sourceRoot":"","sources":["../../../src/tests/utils/sample.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AACxC,+CAA6D;AAE7D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,sBAAwC,CAAC;IAC7C,IAAI,aAA+B,CAAC;IAEpC,UAAU,CAAC,GAAG,EAAE;QACd,uCAAuC;QACvC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAS,EAAE,oBAAoB,CAAC,CAAC;QACrE,sBAAsB,CAAC,eAAe,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAC,CAAC,CAAC;QAE9E,uBAAuB;QACvB,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/C,aAAa,CAAC,eAAe,CAAC,EAAS,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,kCAAkC;QAClC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,iEAAiE;QACjE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAEzB,IAAA,uBAAc,GAAE,CAAC;QAEjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAC,CAAC,CAAC;QACvF,MAAM,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- import * as admin from "firebase-admin";
2
- export declare const _mockable: {
3
- createNowTimestamp: () => admin.firestore.Timestamp;
4
- };
5
- export declare function sampleFunction(): void;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.sampleFunction = exports._mockable = void 0;
27
- const admin = __importStar(require("firebase-admin"));
28
- exports._mockable = {
29
- createNowTimestamp: () => admin.firestore.Timestamp.now(),
30
- };
31
- function sampleFunction() {
32
- const firestore = admin.firestore();
33
- const now = exports._mockable.createNowTimestamp();
34
- console.info(firestore != null, now);
35
- }
36
- exports.sampleFunction = sampleFunction;
37
- //# sourceMappingURL=sample.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/utils/sample.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AAE3B,QAAA,SAAS,GAAG;IACvB,kBAAkB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;CAC1D,CAAC;AAEF,SAAgB,cAAc;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,iBAAS,CAAC,kBAAkB,EAAE,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACvC,CAAC;AAJD,wCAIC"}
package/lib/utils.d.ts DELETED
@@ -1,12 +0,0 @@
1
- declare function findMatchingDocPathRegex(docPath: string, docPathsRegex: Record<string, RegExp>): {
2
- entity: string;
3
- regex: RegExp;
4
- } | {
5
- entity: null;
6
- regex: null;
7
- };
8
- declare function filterSubDocPathsByEntity(entity: string, docPaths: Record<string, string>): string[];
9
- declare function expandAndGroupDocPaths(startingDocPath: string, idsFetcher: (collectionPath: string) => Promise<string[]>): Promise<{
10
- [key: string]: string[];
11
- }>;
12
- export { expandAndGroupDocPaths, filterSubDocPathsByEntity, findMatchingDocPathRegex };
package/lib/utils.js DELETED
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findMatchingDocPathRegex = exports.filterSubDocPathsByEntity = exports.expandAndGroupDocPaths = void 0;
4
- const index_1 = require("./index");
5
- function findMatchingDocPathRegex(docPath, docPathsRegex) {
6
- for (const key in docPathsRegex) {
7
- if (docPathsRegex[key].test(docPath)) {
8
- return { entity: key, regex: docPathsRegex[key] };
9
- }
10
- }
11
- return { entity: null, regex: null };
12
- }
13
- exports.findMatchingDocPathRegex = findMatchingDocPathRegex;
14
- function filterSubDocPathsByEntity(entity, docPaths) {
15
- const path = docPaths[entity];
16
- const paths = Object.values(docPaths);
17
- return paths.filter((p) => p.startsWith(path));
18
- }
19
- exports.filterSubDocPathsByEntity = filterSubDocPathsByEntity;
20
- async function expandAndGroupDocPaths(startingDocPath, idsFetcher) {
21
- const groupedPaths = {};
22
- const { entity } = findMatchingDocPathRegex(startingDocPath, index_1.docPathsRegex);
23
- if (!entity) {
24
- return groupedPaths;
25
- }
26
- const entityDocPath = index_1.docPaths[entity];
27
- const subDocPaths = filterSubDocPathsByEntity(entity, index_1.docPaths);
28
- const values = Object.values(subDocPaths).map((p) => p.replace(entityDocPath, startingDocPath));
29
- const sortedValues = values.sort();
30
- const newPathMap = new Map();
31
- const expandedPaths = [];
32
- while (sortedValues.length > 0) {
33
- const path = sortedValues.shift();
34
- if (!path) {
35
- break;
36
- }
37
- let skipPath = false;
38
- for (const key of [...newPathMap.keys()].sort()) {
39
- if (path.startsWith(key)) {
40
- skipPath = true;
41
- const values = newPathMap.get(key);
42
- const newPaths = (values || []).map((value) => path.replace(key, value));
43
- sortedValues.push(...newPaths);
44
- break;
45
- }
46
- }
47
- if (skipPath)
48
- continue;
49
- if (/{\w+Id}$/.test(path)) {
50
- const idIndex = path.lastIndexOf("/");
51
- const collectionPath = path.substring(0, idIndex);
52
- const ids = await idsFetcher(collectionPath);
53
- const newPaths = ids.map((id) => path.replace(/{\w+Id}$/, id.toString()));
54
- newPathMap.set(path, newPaths);
55
- sortedValues.push(...newPaths);
56
- continue;
57
- }
58
- expandedPaths.push(path);
59
- }
60
- // Group expandedPaths based on docPaths keys and values
61
- for (const [key, regex] of Object.entries(index_1.docPathsRegex)) {
62
- groupedPaths[key] = expandedPaths.filter((path) => path.match(regex));
63
- }
64
- return groupedPaths;
65
- }
66
- exports.expandAndGroupDocPaths = expandAndGroupDocPaths;
67
- //# sourceMappingURL=utils.js.map
package/lib/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}