npm package diff

Package: @forge/cli-shared

Versions: 5.6.0-next.15 - 6.0.0-next.16

Modified: package/out/service/feature-flag-service.js

Index: package/out/service/feature-flag-service.js
===================================================================
--- package/out/service/feature-flag-service.js
+++ package/out/service/feature-flag-service.js
@@ -7,8 +7,11 @@
 class FeatureFlagReader {
     async isAtlasProductSupported() {
         return (await this.readFlag('forge-cli-enable-atlas-product-support')) ?? false;
     }
+    async isLogsV2ApiEnabled() {
+        return (await this.readFlag('is-logs-v-2-api-enabled')) ?? true;
+    }
 }
 exports.FeatureFlagReader = FeatureFlagReader;
 var CLIENT_SIDE_ID;
 (function (CLIENT_SIDE_ID) {

Modified: package/out/app-logs/graphql-client.js

Index: package/out/app-logs/graphql-client.js
===================================================================
--- package/out/app-logs/graphql-client.js
+++ package/out/app-logs/graphql-client.js
@@ -33,8 +33,79 @@
             ...this.extractInvocationInfo(result.metadata),
             logs: result.lines.map(sanitizeLogLine)
         };
     }
+    async viewAppLogsV2(details, invocationMap, totalRecieved) {
+        const query = `
+      query forge_cli_getApplicationLogsV2(
+        $appId: String!,
+        $environmentId: String!,
+        $dateSearchInput: DateSearchInput,
+        $offset: Int!,
+        $limit: Int!,
+        $queryStartTime: String!
+      ) {
+        appLogsWithMetaData(
+          appId: $appId
+          environmentId: $environmentId
+          limit: $limit
+          offset: $offset
+          queryStartTime: $queryStartTime
+          query: {
+            dates: $dateSearchInput
+          }
+        ) {
+          appLogs {
+            appId
+            appVersion
+            message
+            environmentId
+            invocationId
+            functionKey
+            lvl
+            error
+            other
+            ts
+          }
+          hasNextPage
+          totalLogs
+          __typename
+        }
+      }
+    `;
+        const result = await this.graphqlClient.query(query, details);
+        if (!result || !result.appLogsWithMetaData || !result.appLogsWithMetaData.appLogs) {
+            throw new MissingAppLogsError();
+        }
+        for (const logLine of result.appLogsWithMetaData.appLogs) {
+            let logsMetadata = invocationMap.get(logLine.invocationId);
+            if (!logsMetadata) {
+                logsMetadata = {
+                    id: logLine.invocationId,
+                    appVersion: logLine.appVersion,
+                    function: logLine.functionKey || undefined,
+                    trigger: undefined,
+                    logs: []
+                };
+            }
+            logsMetadata.logs.push({
+                message: logLine.message || undefined,
+                other: logLine.other ? JSON.parse(logLine.other) : [],
+                level: logLine.lvl || undefined,
+                timestamp: logLine.ts
+            });
+            invocationMap.set(logLine.invocationId, logsMetadata);
+        }
+        const serverSideMaxLimit = result.appLogsWithMetaData.appLogs.length;
+        totalRecieved += serverSideMaxLimit;
+        if (result.appLogsWithMetaData.hasNextPage && details.maxLimit > totalRecieved) {
+            details.offset = details.offset + serverSideMaxLimit;
+            details.limit = details.limit - serverSideMaxLimit;
+            return this.viewAppLogsV2(details, invocationMap, totalRecieved);
+        }
+        const invocations = [...invocationMap.values()];
+        return invocations;
+    }
     async viewAppLogs(details) {
         const query = `
       query forge_cli_getApplicationLogs($appId: ID!, $environmentId: [ID!]!, $limit: Int!, $contextAri: [ID!], $startTime: String) {
         appLogs(

Modified: package/out/graphql/graphql-types.js

Large diffs are not rendered by default.

Modified: package/out/ui/text.js

Index: package/out/ui/text.js
===================================================================
--- package/out/ui/text.js
+++ package/out/ui/text.js
@@ -704,9 +704,9 @@
     },
     logs: {
         cmd: 'view app logs',
         optionInvocation: 'view logs for a given invocation ID',
-        optionLimit: 'number of invocations to return',
+        optionLimit: 'number of log lines to return',
         optionGroup: 'group logs by invocation ID',
         optionSince: 'view logs since the specified time. valid formats: YYYY-MM-DD, ISO 8061 timestamp or a relative time (e.g: 5m, 10h, 2d)',
         invalidSinceOption: (since) => `Invalid date-time format: '${since}'. Date filter will not be applied.\n`
     },

Modified: package/out/app-logs/view-logs.js

Index: package/out/app-logs/view-logs.js
===================================================================
--- package/out/app-logs/view-logs.js
+++ package/out/app-logs/view-logs.js
@@ -7,29 +7,57 @@
     getAppConfig;
     appEnvironmentClient;
     globalEdgeClient;
     logsClient;
-    constructor(getAppConfig, appEnvironmentClient, globalEdgeClient, logsClient) {
+    featureFlagService;
+    constructor(getAppConfig, appEnvironmentClient, globalEdgeClient, logsClient, featureFlagService) {
         this.getAppConfig = getAppConfig;
         this.appEnvironmentClient = appEnvironmentClient;
         this.globalEdgeClient = globalEdgeClient;
         this.logsClient = logsClient;
+        this.featureFlagService = featureFlagService;
     }
     async getAll({ environmentKey, limit, context, startTime = null }) {
         const { id: appId } = await this.getAppConfig();
         const [environmentId, cloudId] = await Promise.all([
             this.appEnvironmentClient.getAppEnvironmentId(appId, environmentKey),
             context ? this.globalEdgeClient.getCloudId(context.site) : undefined
         ]);
         const contextAri = cloudId ? (0, ari_2.buildContextAri)(cloudId, context.product) : undefined;
-        return this.logsClient.viewAppLogs({
+        const details = {
             appId: ari_1.EcosystemAppAri.parse(appId).appId,
             environmentId,
             limit,
             startTime,
             contextAri: contextAri ? [contextAri] : undefined
-        });
+        };
+        const isV2ApiEnabled = await this.featureFlagService.isLogsV2ApiEnabled();
+        if (isV2ApiEnabled) {
+            return this.getLogs(details);
+        }
+        return this.logsClient.viewAppLogs(details);
     }
+    async getLogs(details) {
+        const latestStart = new Date().toISOString();
+        let earliestStart = new Date();
+        if (details.startTime) {
+            earliestStart = new Date(details.startTime);
+        }
+        else {
+            earliestStart.setHours(new Date().getHours() - 1);
+        }
+        const dateSearchInput = {
+            earliestStart: earliestStart.toISOString(),
+            latestStart
+        };
+        return this.logsClient.viewAppLogsV2({
+            ...details,
+            offset: 0,
+            dateSearchInput,
+            queryStartTime: earliestStart.toISOString(),
+            maxLimit: details.limit
+        }, new Map(), 0);
+    }
     async getOne(details) {
         return this.logsClient.viewInvocationLogs({ invocationId: details.invocationId });
     }
 }

Modified: package/package.json

Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/cli-shared",
-  "version": "5.6.0-next.15",
+  "version": "6.0.0-next.16",
   "description": "Common functionality for Forge CLI",
   "author": "Atlassian",
   "license": "UNLICENSED",
   "main": "out/index.js",

Modified: package/out/service/feature-flag-service.d.ts.map

Index: package/out/service/feature-flag-service.d.ts.map
===================================================================
--- package/out/service/feature-flag-service.d.ts.map
+++ package/out/service/feature-flag-service.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"feature-flag-service.d.ts","sourceRoot":"","sources":["../../src/service/feature-flag-service.ts"],"names":[],"mappings":"AAAA,OAAqB,EAAe,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAgB,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAyB/B,aAAK,eAAe,GAAG;IACrB,qBAAqB,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACpE,2BAA2B,EAAE,MAAM,CAAC;IACpC,wCAAwC,EAAE,OAAO,CAAC;IAClD,iCAAiC,EAAE,OAAO,CAAC;CAC5C,CAAC;AAEF,oBAAY,WAAW,GAAG,MAAM,eAAe,CAAC;AAKhD,8BAAsB,iBAAiB;IACrC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAE/E,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;CAGlD;AAqBD,aAAK,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,gBAAgB,CAAC,CAAC;AAMpE,aAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,KAAK,aAAa,CAAC;AAEzG,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAa3F;AAKD,qBAAa,kBAAmB,SAAQ,iBAAiB;IAErD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBALZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,SAAS,EACnD,eAAe,EAAE,gBAAgB,EACjC,eAAe,EAAE,mBAAmB,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,EACpD,gBAAgB,GAAE,OAAO,oBAA2C,EACpE,YAAY,GAAE,sBAAgD;IASjF,OAAO,CAAC,KAAK,CAOV;IAMH,OAAO,CAAC,OAAO,CAyBZ;IAEH,OAAO,CAAC,MAAM,CAQX;IAEG,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAcnF;AAED,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC9C,OAAO,CAAC,YAAY;gBAAZ,YAAY,GAAE,OAAO,CAAC;SAAG,GAAG,IAAI,WAAW,GAAG,GAAG;KAAE,CAAC,GAAG,SAAqB;IAI1F,QAAQ,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAG7F"}
\ No newline at end of file
+{"version":3,"file":"feature-flag-service.d.ts","sourceRoot":"","sources":["../../src/service/feature-flag-service.ts"],"names":[],"mappings":"AAAA,OAAqB,EAAe,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAgB,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAyB/B,aAAK,eAAe,GAAG;IACrB,qBAAqB,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACpE,2BAA2B,EAAE,MAAM,CAAC;IACpC,wCAAwC,EAAE,OAAO,CAAC;IAClD,iCAAiC,EAAE,OAAO,CAAC;IAC3C,yBAAyB,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,oBAAY,WAAW,GAAG,MAAM,eAAe,CAAC;AAKhD,8BAAsB,iBAAiB;IACrC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAE/E,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3C,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;CAG7C;AAqBD,aAAK,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,gBAAgB,CAAC,CAAC;AAMpE,aAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,KAAK,aAAa,CAAC;AAEzG,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAa3F;AAKD,qBAAa,kBAAmB,SAAQ,iBAAiB;IAErD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBALZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,SAAS,EACnD,eAAe,EAAE,gBAAgB,EACjC,eAAe,EAAE,mBAAmB,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,EACpD,gBAAgB,GAAE,OAAO,oBAA2C,EACpE,YAAY,GAAE,sBAAgD;IASjF,OAAO,CAAC,KAAK,CAOV;IAMH,OAAO,CAAC,OAAO,CAyBZ;IAEH,OAAO,CAAC,MAAM,CAQX;IAEG,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAcnF;AAED,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC9C,OAAO,CAAC,YAAY;gBAAZ,YAAY,GAAE,OAAO,CAAC;SAAG,GAAG,IAAI,WAAW,GAAG,GAAG;KAAE,CAAC,GAAG,SAAqB;IAI1F,QAAQ,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAG7F"}
\ No newline at end of file

Modified: package/out/app-logs/graphql-client.d.ts.map

Index: package/out/app-logs/graphql-client.d.ts.map
===================================================================
--- package/out/app-logs/graphql-client.d.ts.map
+++ package/out/app-logs/graphql-client.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/app-logs/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6E,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtH,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAwBrB,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AACjD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AACpD,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAElD,qBAAa,iBAAkB,YAAW,iBAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,kBAAkB,CAAC,OAAO,EAAE,wBAAwB;;;;;;;IAapD,WAAW,CAAC,OAAO,EAAE,cAAc;IAwEhD,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,eAAe;YAcT,iBAAiB;CAqDhC"}
\ No newline at end of file
+{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/app-logs/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6E,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtH,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAwBrB,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AACjD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AACpD,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAElD,qBAAa,iBAAkB,YAAW,iBAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,kBAAkB,CAAC,OAAO,EAAE,wBAAwB;;;;;;;IAapD,aAAa,CACxB,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,EAAE,CAAC;IAkFX,WAAW,CAAC,OAAO,EAAE,cAAc;IAwEhD,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,eAAe;YAcT,iBAAiB;CAqDhC"}
\ No newline at end of file

Modified: package/out/graphql/graphql-types.d.ts.map

Large diffs are not rendered by default.

Modified: package/out/app-logs/view-logs.d.ts.map

Index: package/out/app-logs/view-logs.d.ts.map
===================================================================
--- package/out/app-logs/view-logs.d.ts.map
+++ package/out/app-logs/view-logs.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"view-logs.d.ts","sourceRoot":"","sources":["../../src/app-logs/view-logs.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAmB,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,oBAAY,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5D,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5E;AAED,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAHV,YAAY,EAAE,iBAAiB,EAC/B,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,iBAAiB;IAGnC,MAAM,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,SAAgB,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAmBjG,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC;CAI1E"}
\ No newline at end of file
+{"version":3,"file":"view-logs.d.ts","sourceRoot":"","sources":["../../src/app-logs/view-logs.ts"],"names":[],"mappings":"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"}
\ No newline at end of file

Modified: package/CHANGELOG.md

Large diffs are not rendered by default.

Modified: package/out/service/feature-flag-service.d.ts

Index: package/out/service/feature-flag-service.d.ts
===================================================================
--- package/out/service/feature-flag-service.d.ts
+++ package/out/service/feature-flag-service.d.ts
@@ -8,13 +8,15 @@
     'forge-cli-test-flag': 'apple' | 'banana' | 'orange' | 'watermelon';
     'forge-cli-startup-warning': string;
     'forge-cli-enable-atlas-product-support': boolean;
     'forge-cli-use-cloudflare-tunnel': boolean;
+    'is-logs-v-2-api-enabled': boolean;
 };
 export declare type FeatureFlag = keyof FeatureFlagType;
 export declare abstract class FeatureFlagReader {
     abstract readFlag<F extends FeatureFlag>(flag: F): Promise<FeatureFlagType[F] | null>;
     isAtlasProductSupported(): Promise<boolean>;
+    isLogsV2ApiEnabled(): Promise<boolean>;
 }
 declare type ILaunchDarkly = Pick<LDClient, 'variation' | 'waitUntilReady'>;
 declare type LaunchDarklyInitialize = (envKey: string, context: LDContext, options?: LDOptions) => ILaunchDarkly;
 export declare function cachedMethod<C, T>(getter: (this: C) => Promise<T>): (this: C) => Promise<T>;

Modified: package/out/app-logs/graphql-client.d.ts

Index: package/out/app-logs/graphql-client.d.ts
===================================================================
--- package/out/app-logs/graphql-client.d.ts
+++ package/out/app-logs/graphql-client.d.ts
@@ -1,6 +1,6 @@
 import { GraphQLClient } from '../graphql';
-import { AppInvocationLogsDetails, AppLogsDetails, Invocation, InvocationLogLine, ViewAppLogsClient } from './view-logs';
+import { AppInvocationLogsDetails, AppLogsDetails, AppLogsDetailsV2, Invocation, InvocationLogLine, ViewAppLogsClient } from './view-logs';
 export declare class MissingAppLogsError extends Error {
 }
 export declare class MissingAppLogLinesError extends Error {
 }
@@ -17,8 +17,9 @@
         appVersion: string;
         function?: string | undefined;
         trigger?: string | undefined;
     }>;
+    viewAppLogsV2(details: AppLogsDetailsV2, invocationMap: Map<string, Invocation>, totalRecieved: number): Promise<Invocation[]>;
     viewAppLogs(details: AppLogsDetails): Promise<Invocation[]>;
     private extractInvocationInfo;
     private extractLogLines;
     private getInvocationLogs;

Modified: package/out/graphql/graphql-types.d.ts

Large diffs are not rendered by default.

Modified: package/out/app-logs/view-logs.d.ts

Index: package/out/app-logs/view-logs.d.ts
===================================================================
--- package/out/app-logs/view-logs.d.ts
+++ package/out/app-logs/view-logs.d.ts
@@ -1,10 +1,11 @@
 /// <reference types="node" />
 import { Ari } from '@forge/util/packages/ari';
 import { URL } from 'url';
 import { AppConfigProvider } from '../apps';
-import { AppEnvironmentClient } from '../graphql';
+import { AppEnvironmentClient, DateSearchInput } from '../graphql';
 import { GlobalEdgeClient } from '../http-client';
+import { FeatureFlagService } from '../service';
 export interface Context {
     site: URL;
     product: string;
 }
@@ -23,8 +24,14 @@
     limit: number;
     startTime?: string | null;
     contextAri?: [Ari];
 };
+export declare type AppLogsDetailsV2 = AppLogsDetails & {
+    offset: number;
+    dateSearchInput: DateSearchInput;
+    queryStartTime: string;
+    maxLimit: number;
+};
 export interface InvocationQueryDetails {
     environmentKey: string;
     invocationId: string;
     context?: Context;
@@ -46,16 +53,19 @@
     trigger?: string;
 }
 export interface ViewAppLogsClient {
     viewAppLogs(details: AppLogsDetails): Promise<Invocation[]>;
+    viewAppLogsV2(details: AppLogsDetailsV2, invocationMap: Map<string, Invocation>, totalRecieved: number): Promise<Invocation[]>;
     viewInvocationLogs(details: AppInvocationLogsDetails): Promise<Invocation>;
 }
 export declare class ViewAppLogsCommand {
     private readonly getAppConfig;
     private readonly appEnvironmentClient;
     private readonly globalEdgeClient;
     private readonly logsClient;
-    constructor(getAppConfig: AppConfigProvider, appEnvironmentClient: AppEnvironmentClient, globalEdgeClient: GlobalEdgeClient, logsClient: ViewAppLogsClient);
+    private readonly featureFlagService;
+    constructor(getAppConfig: AppConfigProvider, appEnvironmentClient: AppEnvironmentClient, globalEdgeClient: GlobalEdgeClient, logsClient: ViewAppLogsClient, featureFlagService: FeatureFlagService);
     getAll({ environmentKey, limit, context, startTime }: QueryDetails): Promise<Invocation[]>;
+    getLogs(details: AppLogsDetails): Promise<Invocation[]>;
     getOne(details: InvocationQueryDetails): Promise<Invocation>;
 }
 //# sourceMappingURL=view-logs.d.ts.map
\ No newline at end of file