@metricinsights/pp-dev 0.19.0 → 1.0.0-beta.2
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.
- package/CHANGELOG.md +198 -0
- package/README.md +298 -266
- package/dist/CHANGELOG.md +198 -0
- package/dist/README.md +298 -266
- package/dist/cjs/cli.js +1 -1
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/helpers.js +1 -1
- package/dist/cjs/helpers.js.map +1 -1
- package/dist/cjs/index-DeUfAH6g.js +2 -0
- package/dist/cjs/index-DeUfAH6g.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/migrate-r2mXdGLZ.js +2 -0
- package/dist/cjs/migrate-r2mXdGLZ.js.map +1 -0
- package/dist/cjs/package.json +16 -16
- package/dist/cjs/plugin-Cm9vRLCu.js +2 -0
- package/dist/cjs/plugin-Cm9vRLCu.js.map +1 -0
- package/dist/cjs/plugin.js +1 -1
- package/dist/cjs/version-plugin-DsC5NLoX.js +2 -0
- package/dist/cjs/{version-plugin-DUKsGBsW.js.map → version-plugin-DsC5NLoX.js.map} +1 -1
- package/dist/client/client.css +1 -1
- package/dist/client/client.css.map +1 -1
- package/dist/client/client.js +509 -47
- package/dist/client/client.js.map +1 -1
- package/dist/client/index.html +71 -18
- package/dist/esm/cli.js +1 -1
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/helpers.js +1 -1
- package/dist/esm/helpers.js.map +1 -1
- package/dist/esm/index-DOjGFYJ7.js +2 -0
- package/dist/esm/index-DOjGFYJ7.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/migrate-BYuCtRbI.js +2 -0
- package/dist/esm/migrate-BYuCtRbI.js.map +1 -0
- package/dist/esm/package.json +16 -16
- package/dist/esm/plugin-B2ocw-wb.js +2 -0
- package/dist/esm/plugin-B2ocw-wb.js.map +1 -0
- package/dist/esm/plugin.js +1 -1
- package/dist/esm/version-plugin-BGWVTSsN.js +2 -0
- package/dist/esm/{version-plugin-C7j2jDQX.js.map → version-plugin-BGWVTSsN.js.map} +1 -1
- package/dist/types/index.d.ts +116 -139
- package/package.json +34 -28
- package/dist/cjs/index-Bb3yIW5d.js +0 -2
- package/dist/cjs/index-Bb3yIW5d.js.map +0 -1
- package/dist/cjs/plugin-CqahMAGe.js +0 -2
- package/dist/cjs/plugin-CqahMAGe.js.map +0 -1
- package/dist/cjs/version-plugin-DUKsGBsW.js +0 -2
- package/dist/esm/index-Cd-DmbPQ.js +0 -2
- package/dist/esm/index-Cd-DmbPQ.js.map +0 -1
- package/dist/esm/plugin-BeehFkJq.js +0 -2
- package/dist/esm/plugin-BeehFkJq.js.map +0 -1
- package/dist/esm/version-plugin-C7j2jDQX.js +0 -2
package/dist/types/index.d.ts
CHANGED
|
@@ -3,25 +3,93 @@ import { ViteImageOptimizer } from 'vite-plugin-image-optimizer';
|
|
|
3
3
|
import next, { NextConfig } from 'next';
|
|
4
4
|
import * as nextConstants from 'next/constants';
|
|
5
5
|
|
|
6
|
-
type
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
type MiMode = 'standalone' | 'embedding';
|
|
7
|
+
type MiInclude = 'shared-components' | 'top-bar';
|
|
8
|
+
type AppType = 'page' | 'template';
|
|
9
|
+
interface MiConfig {
|
|
10
|
+
/** MI instance base URL. Falls back to process.env.MI_BACKEND_URL. */
|
|
11
|
+
url?: string;
|
|
12
|
+
/** Personal Access Token. Falls back to process.env.MI_ACCESS_TOKEN. */
|
|
13
|
+
token?: string;
|
|
14
|
+
/** How the page integrates into MI. @default 'standalone' */
|
|
15
|
+
mode?: MiMode;
|
|
16
|
+
/** Optional MI shared resources. Only valid when mode === 'standalone'. */
|
|
17
|
+
include?: MiInclude;
|
|
18
|
+
/** MI API/routing version. @default 7 */
|
|
19
|
+
apiVersion?: 6 | 7;
|
|
20
|
+
}
|
|
21
|
+
interface AppConfig {
|
|
22
|
+
/** Portal page / app ID on MI. Required for type=template and type=page+standalone. */
|
|
23
|
+
id?: number;
|
|
24
|
+
/** Internal asset name. @default package.json#name */
|
|
25
|
+
name?: string;
|
|
26
|
+
/** App type affecting routing and data loading. @default 'template' */
|
|
27
|
+
type?: AppType;
|
|
28
|
+
}
|
|
29
|
+
interface ProxyConfig {
|
|
30
|
+
/** Enable request caching to the backend. @default true */
|
|
31
|
+
cache?: boolean;
|
|
32
|
+
/** Cache TTL in milliseconds. @default 600000 */
|
|
33
|
+
cacheTtl?: number;
|
|
34
|
+
tls?: {
|
|
35
|
+
/** Allow self-signed TLS certificates. @default false */
|
|
36
|
+
allowSelfSigned?: boolean;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
interface DistZipBuildConfig {
|
|
40
|
+
/** Output ZIP file name. @default '<app.name>.zip' */
|
|
41
|
+
fileName?: string;
|
|
42
|
+
/** Output directory for the ZIP archive. @default 'dist-zip' */
|
|
18
43
|
outDir?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Input directory for the build.
|
|
21
|
-
* @default 'dist'
|
|
22
|
-
*/
|
|
44
|
+
/** Input directory to zip. @default value of build.outDir */
|
|
23
45
|
inDir?: string;
|
|
24
46
|
}
|
|
47
|
+
interface VersionFileBuildConfig {
|
|
48
|
+
/** @default true */
|
|
49
|
+
enabled?: boolean;
|
|
50
|
+
/** @default 'VERSION-v{packageversion}-{currentDate}.json' */
|
|
51
|
+
fileNameTemplate?: string;
|
|
52
|
+
}
|
|
53
|
+
interface BuildConfig {
|
|
54
|
+
/** Build output directory. @default 'dist' */
|
|
55
|
+
outDir?: string;
|
|
56
|
+
/** Pack build output into a ZIP archive. @default true */
|
|
57
|
+
zip?: boolean | DistZipBuildConfig;
|
|
58
|
+
/** Create a VERSION JSON file with SHA256 hashes. @default true */
|
|
59
|
+
versionFile?: boolean | VersionFileBuildConfig;
|
|
60
|
+
/** Image optimisation options. @default true */
|
|
61
|
+
imageOptimisations?: boolean | Record<string, unknown>;
|
|
62
|
+
}
|
|
63
|
+
interface SyncConfig {
|
|
64
|
+
/** Directory for sync backups. @default 'backups' */
|
|
65
|
+
backupsDir?: string;
|
|
66
|
+
}
|
|
67
|
+
interface InspectorConfig {
|
|
68
|
+
/** Enable the request inspector web UI at /@pp-dev/inspector. @default true */
|
|
69
|
+
enabled?: boolean;
|
|
70
|
+
/** Maximum RAM for stored request/response payloads in bytes. @default 1073741824 (1 GB) */
|
|
71
|
+
maxMemory?: number;
|
|
72
|
+
/** Maximum bytes captured per individual request/response body. @default 10485760 (10 MB) */
|
|
73
|
+
captureLimit?: number;
|
|
74
|
+
}
|
|
75
|
+
type DevPanelPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
76
|
+
interface DevPanelConfig {
|
|
77
|
+
/** Screen corner the dev panel is anchored to. @default 'bottom-right' */
|
|
78
|
+
position?: DevPanelPosition;
|
|
79
|
+
/** Fully hide the panel. Restore in the browser with ?pp-dev-panel=show. @default false */
|
|
80
|
+
hidden?: boolean;
|
|
81
|
+
/** Auto-hide: the panel slides behind the screen edge leaving a thin strip; hover reveals it. @default false */
|
|
82
|
+
autoHide?: boolean;
|
|
83
|
+
}
|
|
84
|
+
interface PPDevConfig {
|
|
85
|
+
mi?: MiConfig;
|
|
86
|
+
app?: AppConfig;
|
|
87
|
+
proxy?: ProxyConfig;
|
|
88
|
+
build?: BuildConfig;
|
|
89
|
+
sync?: SyncConfig;
|
|
90
|
+
inspector?: InspectorConfig;
|
|
91
|
+
devPanel?: DevPanelConfig;
|
|
92
|
+
}
|
|
25
93
|
interface VersionPluginOptions {
|
|
26
94
|
/**
|
|
27
95
|
* Version file filename template.
|
|
@@ -29,130 +97,45 @@ interface VersionPluginOptions {
|
|
|
29
97
|
* @default "VERSION-v{packageversion}-{currentDate}.json"
|
|
30
98
|
*/
|
|
31
99
|
versionFileTemplate?: string;
|
|
32
|
-
/**
|
|
33
|
-
* Enable or disable the version plugin.
|
|
34
|
-
* @default true
|
|
35
|
-
*/
|
|
100
|
+
/** @default true */
|
|
36
101
|
enabled?: boolean;
|
|
37
102
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
*/
|
|
103
|
+
/** @internal — used by the Vite plugin and CLI; not part of the public API. */
|
|
104
|
+
interface NormalizedVitePPDevOptions {
|
|
105
|
+
templateName: string;
|
|
42
106
|
backendBaseURL?: string;
|
|
43
|
-
/**
|
|
44
|
-
* Portal page ID on the MI instance.
|
|
45
|
-
* @deprecated Use appId instead
|
|
46
|
-
*/
|
|
47
|
-
portalPageId?: number;
|
|
48
|
-
/**
|
|
49
|
-
* Application ID on the MI instance.
|
|
50
|
-
* This is a synonym for portalPageId.
|
|
51
|
-
*/
|
|
52
107
|
appId?: number;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
*/
|
|
57
|
-
templateName: string;
|
|
58
|
-
/**
|
|
59
|
-
* Enable or disable template variables loading from the backend.
|
|
60
|
-
*/
|
|
61
|
-
templateLess?: boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Enable or disable MI top bar and scripts loading from the backend for local development.
|
|
64
|
-
*/
|
|
65
|
-
miHudLess?: boolean;
|
|
66
|
-
/**
|
|
67
|
-
* Integrate MI Top Bar and script into the App build.
|
|
68
|
-
*
|
|
69
|
-
* Depends on `miHudLess` option. Can be used only if `miHudLess` is enabled (true).
|
|
70
|
-
*
|
|
71
|
-
* @since 0.11.0
|
|
72
|
-
* @default false
|
|
73
|
-
*/
|
|
74
|
-
integrateMiTopBar?: boolean | {
|
|
75
|
-
/**
|
|
76
|
-
* Add MI Top Bar root element to the build.
|
|
77
|
-
* If disabled, you will need to add the root element manually to the HTML.
|
|
78
|
-
* @default false
|
|
79
|
-
*/
|
|
108
|
+
templateLess: boolean;
|
|
109
|
+
miHudLess: boolean;
|
|
110
|
+
integrateMiTopBar: boolean | {
|
|
80
111
|
addRootElement?: boolean;
|
|
81
|
-
/**
|
|
82
|
-
* Add MI Shared Components scripts to the build.
|
|
83
|
-
* @default false
|
|
84
|
-
*/
|
|
85
112
|
addSharedComponentsScripts?: boolean;
|
|
86
113
|
};
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
*/
|
|
101
|
-
disableSSLValidation?: boolean;
|
|
102
|
-
/**
|
|
103
|
-
* Image optimizer options.
|
|
104
|
-
* @default true
|
|
105
|
-
*/
|
|
106
|
-
imageOptimizer?: boolean | Parameters<typeof ViteImageOptimizer>[0];
|
|
107
|
-
/**
|
|
108
|
-
* Output directory for the build.
|
|
109
|
-
* @default 'dist'
|
|
110
|
-
*/
|
|
111
|
-
outDir?: string;
|
|
112
|
-
/**
|
|
113
|
-
* Disable or enable packing the build output into a ZIP archive.
|
|
114
|
-
* @default true
|
|
115
|
-
*/
|
|
116
|
-
distZip?: boolean | DistZipOptions;
|
|
117
|
-
/**
|
|
118
|
-
* Create a VERSION JSON file with SHA256 hashes of all build output files.
|
|
119
|
-
* @default true
|
|
120
|
-
*/
|
|
121
|
-
versionPlugin?: boolean | VersionPluginOptions;
|
|
122
|
-
/**
|
|
123
|
-
* Backups an asset directory path for sync with the MI instance.
|
|
124
|
-
* @default backups
|
|
125
|
-
*/
|
|
126
|
-
syncBackupsDir?: string;
|
|
127
|
-
/**
|
|
128
|
-
* Enable Metric Insights v7 features.
|
|
129
|
-
* @default false
|
|
130
|
-
* @since 0.8.0
|
|
131
|
-
*/
|
|
132
|
-
v7Features?: boolean;
|
|
133
|
-
/**
|
|
134
|
-
* Personal Access Token for the MI instance.
|
|
135
|
-
* @default process.env.MI_ACCESS_TOKEN
|
|
136
|
-
* @since 0.10.0
|
|
137
|
-
* @example
|
|
138
|
-
* ```ts
|
|
139
|
-
* import vitePPDev from '@metricinsights/pp-dev';
|
|
140
|
-
*
|
|
141
|
-
* export default vitePPDev({
|
|
142
|
-
* personalAccessToken: process.env.MI_ACCESS_TOKEN,
|
|
143
|
-
* // other options...
|
|
144
|
-
* });
|
|
145
|
-
* ```
|
|
146
|
-
*/
|
|
114
|
+
enableProxyCache: boolean;
|
|
115
|
+
proxyCacheTTL: number;
|
|
116
|
+
disableSSLValidation: boolean;
|
|
117
|
+
imageOptimizer: boolean | Parameters<typeof ViteImageOptimizer>[0];
|
|
118
|
+
outDir: string;
|
|
119
|
+
distZip: false | {
|
|
120
|
+
outFileName: string;
|
|
121
|
+
outDir: string;
|
|
122
|
+
inDir?: string;
|
|
123
|
+
};
|
|
124
|
+
versionPlugin: false | VersionPluginOptions;
|
|
125
|
+
syncBackupsDir: string;
|
|
126
|
+
v7Features: boolean;
|
|
147
127
|
personalAccessToken?: string;
|
|
128
|
+
inspectorEnabled: boolean;
|
|
129
|
+
inspectorMaxMemory: number;
|
|
130
|
+
inspectorCaptureLimit: number;
|
|
131
|
+
devPanelPosition: DevPanelPosition;
|
|
132
|
+
devPanelHidden: boolean;
|
|
133
|
+
devPanelAutoHide: boolean;
|
|
148
134
|
}
|
|
149
|
-
|
|
135
|
+
declare function validatePPDevConfig(config: PPDevConfig, templateName: string): void;
|
|
136
|
+
declare function normalizePPDevConfig(config: PPDevConfig, templateName: string): NormalizedVitePPDevOptions;
|
|
150
137
|
|
|
151
|
-
|
|
152
|
-
type PPWatchConfig = {
|
|
153
|
-
baseURL: string;
|
|
154
|
-
portalPageId: number;
|
|
155
|
-
};
|
|
138
|
+
declare function defineConfig(config: PPDevConfig): PPDevConfig;
|
|
156
139
|
|
|
157
140
|
/**
|
|
158
141
|
* Safe Next.js import utility
|
|
@@ -226,12 +209,6 @@ declare class AuthProvider {
|
|
|
226
209
|
* Notify all listeners of state changes
|
|
227
210
|
*/
|
|
228
211
|
private notifyListeners;
|
|
229
|
-
/**
|
|
230
|
-
* Get authentication info for debugging
|
|
231
|
-
*/
|
|
232
|
-
getDebugInfo(): AuthState & {
|
|
233
|
-
listenerCount: number;
|
|
234
|
-
};
|
|
235
212
|
}
|
|
236
213
|
declare const authProvider: AuthProvider;
|
|
237
214
|
|
|
@@ -260,7 +237,7 @@ declare function getViteConfig(): Promise<InlineConfig>;
|
|
|
260
237
|
* ```ts
|
|
261
238
|
* // In next.config.js - use withPPDev to avoid validation warnings
|
|
262
239
|
* const { withPPDev } = require('@metricinsights/pp-dev');
|
|
263
|
-
* module.exports = withPPDev({ ... }, {
|
|
240
|
+
* module.exports = withPPDev({ ... }, { mi: { url: '...' } });
|
|
264
241
|
*
|
|
265
242
|
* // Or use standalone pp-dev.config.js (preferred - no Next.js config pollution)
|
|
266
243
|
* module.exports = { ... }; // your next config
|
|
@@ -287,5 +264,5 @@ declare function withPPDev(nextjsConfig: NextConfig | ((phase: string, nextConfi
|
|
|
287
264
|
defaultConfig?: any;
|
|
288
265
|
}) => Promise<NextConfig>;
|
|
289
266
|
|
|
290
|
-
export { AuthProvider, authProvider, getNextVersion, getPPDevConfigFromNextConfig, getViteConfig, isNextAvailable, safeNextImport, withPPDev };
|
|
291
|
-
export type { AuthState, PPDevConfig,
|
|
267
|
+
export { AuthProvider, authProvider, defineConfig, getNextVersion, getPPDevConfigFromNextConfig, getViteConfig, isNextAvailable, normalizePPDevConfig, safeNextImport, validatePPDevConfig, withPPDev };
|
|
268
|
+
export type { AppConfig, AppType, AuthState, BuildConfig, DevPanelConfig, DevPanelPosition, MiConfig, MiInclude, MiMode, PPDevConfig, ProxyConfig, SyncConfig, VersionPluginOptions };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metricinsights/pp-dev",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "1.0.0-beta.2",
|
|
5
5
|
"description": "Portal Page dev build tool",
|
|
6
6
|
"bin": {
|
|
7
7
|
"pp-dev": "bin/pp-dev.js"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"prebuild": "npm run clean",
|
|
15
15
|
"build": "npm run build:parallel",
|
|
16
16
|
"build:parallel": "npm run build:node && npm run build:client",
|
|
17
|
-
"build:node": "rollup --config rollup.config.ts --configPlugin typescript && node scripts/postbuild.js",
|
|
17
|
+
"build:node": "rollup --config rollup.config.ts --configPlugin typescript && node scripts/postbuild.js && node scripts/build-types.mjs",
|
|
18
18
|
"build:client": "rollup --config src/client/rollup.config.ts --configPlugin typescript",
|
|
19
19
|
"build:watch": "rollup --config rollup.config.ts --configPlugin typescript --watch",
|
|
20
20
|
"build:analyze": "rollup --config rollup.config.ts --configPlugin typescript --configPlugin rollup-plugin-visualizer",
|
|
@@ -30,10 +30,14 @@
|
|
|
30
30
|
"test:unit:watch": "vitest --config vitest.config.ts",
|
|
31
31
|
"test:unit:coverage": "vitest run --config vitest.config.ts --coverage",
|
|
32
32
|
"test:integration": "vitest run --config vitest.integration.config.ts",
|
|
33
|
+
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
34
|
+
"test:e2e:browser": "tsx scripts/run-playwright-e2e.ts",
|
|
35
|
+
"record:mi": "tsx tests/mock-mi/record.ts",
|
|
33
36
|
"test:integration:watch": "vitest --config vitest.integration.config.ts",
|
|
34
|
-
"test:e2e": "node scripts/run-tests.js",
|
|
35
37
|
"test:e2e:ui": "npx playwright test --ui",
|
|
36
38
|
"test:all": "npm run test:unit && npm run test:integration",
|
|
39
|
+
"lint": "eslint src",
|
|
40
|
+
"lint:fix": "eslint src --fix",
|
|
37
41
|
"audit:all": "node scripts/audit-all.mjs",
|
|
38
42
|
"prereinstall:all": "npm run build",
|
|
39
43
|
"reinstall:all": "node scripts/reinstall-all.mjs"
|
|
@@ -67,22 +71,22 @@
|
|
|
67
71
|
},
|
|
68
72
|
"license": "ISC",
|
|
69
73
|
"engines": {
|
|
70
|
-
"node": ">=
|
|
74
|
+
"node": ">=24"
|
|
71
75
|
},
|
|
72
76
|
"overrides": {
|
|
73
77
|
"@xmldom/xmldom": ">=0.8.12",
|
|
74
78
|
"brace-expansion": "5.0.6",
|
|
75
79
|
"chokidar": "^5.0.0",
|
|
76
|
-
"file-type": "^22.0.
|
|
80
|
+
"file-type": "^22.0.1",
|
|
77
81
|
"ip-address": "^10.2.0",
|
|
78
82
|
"minimatch": "10.2.5",
|
|
79
83
|
"next@*": {
|
|
80
84
|
"postcss": "8.5.10"
|
|
81
85
|
},
|
|
82
|
-
"npm": ">=11.
|
|
86
|
+
"npm": ">=11.18.0",
|
|
83
87
|
"qs": ">=6.15.2",
|
|
84
88
|
"serialize-javascript": ">=7.0.5",
|
|
85
|
-
"undici": "
|
|
89
|
+
"undici": "^7.28.0",
|
|
86
90
|
"vite@*": {
|
|
87
91
|
"postcss": "8.5.10"
|
|
88
92
|
}
|
|
@@ -97,64 +101,66 @@
|
|
|
97
101
|
}
|
|
98
102
|
},
|
|
99
103
|
"dependencies": {
|
|
100
|
-
"axios": "^1.
|
|
104
|
+
"axios": "^1.18.1",
|
|
101
105
|
"cac": "^7.0.0",
|
|
102
106
|
"chokidar": "^5.0.0",
|
|
103
107
|
"deepmerge-ts": "^7.1.5",
|
|
104
108
|
"diff-match-patch": "^1.0.5",
|
|
105
109
|
"dir-compare": "^5.0.0",
|
|
106
|
-
"ejs": "^
|
|
107
|
-
"esbuild": "^0.28.
|
|
110
|
+
"ejs": "^6.0.1",
|
|
111
|
+
"esbuild": "^0.28.1",
|
|
108
112
|
"express": "^5.2.1",
|
|
109
113
|
"extract-zip": "^2.0.1",
|
|
110
|
-
"file-type": "^22.0.
|
|
114
|
+
"file-type": "^22.0.1",
|
|
111
115
|
"formdata-node": "^6.0.3",
|
|
112
|
-
"http-proxy-middleware": "^
|
|
116
|
+
"http-proxy-middleware": "^4.2.0",
|
|
113
117
|
"isbinaryfile": "^6.0.0",
|
|
114
118
|
"jsdom": "29.1.1",
|
|
115
119
|
"jszip": "^3.10.1",
|
|
116
120
|
"memory-cache": "^0.2.0",
|
|
117
121
|
"picocolors": "^1.1.1",
|
|
118
|
-
"rollup": "^4.
|
|
119
|
-
"sass": "^1.
|
|
120
|
-
"sharp": "^0.
|
|
122
|
+
"rollup": "^4.62.2",
|
|
123
|
+
"sass": "^1.101.0",
|
|
124
|
+
"sharp": "^0.35.3",
|
|
121
125
|
"source-map-support": "^0.5.21",
|
|
122
126
|
"svgo": "^4.0.1",
|
|
123
|
-
"svgtofont": "^6.5.
|
|
127
|
+
"svgtofont": "^6.5.3",
|
|
124
128
|
"typescript": "^6.0.3",
|
|
125
|
-
"vite": "^8.
|
|
129
|
+
"vite": "^8.1.3",
|
|
126
130
|
"vite-plugin-image-optimizer": "^2.0.3",
|
|
127
131
|
"vite-plugin-zip-pack": "^1.2.4",
|
|
128
132
|
"winston": "^3.19.0",
|
|
129
|
-
"ws": "^8.
|
|
133
|
+
"ws": "^8.21.0"
|
|
130
134
|
},
|
|
131
135
|
"devDependencies": {
|
|
132
|
-
"@playwright/test": "^1.
|
|
136
|
+
"@playwright/test": "^1.61.1",
|
|
133
137
|
"@rollup/plugin-terser": "^1.0.0",
|
|
134
138
|
"@rollup/plugin-typescript": "^12.3.0",
|
|
135
139
|
"@rollup/plugin-url": "^8.0.2",
|
|
136
140
|
"@semantic-release/changelog": "^6.0.3",
|
|
137
141
|
"@semantic-release/git": "^10.0.1",
|
|
138
|
-
"@types/diff": "^8.0.0",
|
|
139
142
|
"@types/diff-match-patch": "^1.0.36",
|
|
140
143
|
"@types/ejs": "^3.1.5",
|
|
141
144
|
"@types/express": "^5.0.6",
|
|
142
|
-
"@types/jsdom": "^28.0.
|
|
145
|
+
"@types/jsdom": "^28.0.3",
|
|
143
146
|
"@types/memory-cache": "^0.2.6",
|
|
144
|
-
"@types/node": "^
|
|
147
|
+
"@types/node": "^26.1.0",
|
|
145
148
|
"@types/ws": "^8.18.1",
|
|
146
|
-
"@vitest/coverage-v8": "^4.1.
|
|
149
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
147
150
|
"connect": "^3.7.0",
|
|
148
|
-
"
|
|
149
|
-
"
|
|
151
|
+
"eslint": "^10.6.0",
|
|
152
|
+
"next": "^16.2.10",
|
|
153
|
+
"prettier": "^3.9.4",
|
|
150
154
|
"rimraf": "^6.1.3",
|
|
151
155
|
"rollup-plugin-dts": "^6.4.1",
|
|
152
156
|
"rollup-plugin-scss": "^4.0.1",
|
|
153
157
|
"rollup-plugin-visualizer": "7.0.1",
|
|
154
|
-
"semantic-release": "^25.0.
|
|
158
|
+
"semantic-release": "^25.0.5",
|
|
155
159
|
"tslib": "^2.8.1",
|
|
156
|
-
"tsx": "^4.
|
|
157
|
-
"
|
|
160
|
+
"tsx": "^4.23.0",
|
|
161
|
+
"typescript-eslint": "^8.63.0",
|
|
162
|
+
"undici": "^7.28.0",
|
|
163
|
+
"vitest": "^4.1.10",
|
|
158
164
|
"yargs": "^18.0.0"
|
|
159
165
|
},
|
|
160
166
|
"files": [
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("child_process"),t=require("./plugin-CqahMAGe.js"),n=require("fs"),i=require("path"),s=require("url"),r=require("vite"),o=require("ejs");var a="undefined"!=typeof document?document.currentScript:null;const c=e=>e&&"object"==typeof e&&"default"in e?e.default:e;function p(e){if(e&&"object"==typeof e&&"default"in e)return e;const t=Object.create(null);if(e)for(const n in e)t[n]=e[n];return t.default=e,Object.freeze(t)}const l=p(n),u=p(i),f=c(i),d=c(o),m=i.resolve("undefined"!=typeof __filename&&__filename||s.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:a&&"SCRIPT"===a.tagName.toUpperCase()&&a.src||new URL("index-Bb3yIW5d.js",document.baseURI).href),"../../.."),g=i.resolve("undefined"!=typeof __filename&&__filename||s.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:a&&"SCRIPT"===a.tagName.toUpperCase()&&a.src||new URL("index-Bb3yIW5d.js",document.baseURI).href),"../.."),h=n.existsSync(i.resolve(m,"package.json"))?m:g,y=i.resolve(h,"dist/client/client.js"),{version:_,name:v}=JSON.parse(n.readFileSync(i.resolve(h,"package.json")).toString()),j=_,R=v,w=[".pp-watch.config.js",".pp-watch.config.ts",".pp-watch.config.json"],P=[".pp-dev.config.js",".pp-dev.config.cjs",".pp-dev.config.mjs",".pp-dev.config.ts",".pp-dev.config.cts",".pp-dev.config.mts",".pp-dev.config.json","pp-dev.config.js","pp-dev.config.cjs","pp-dev.config.mjs","pp-dev.config.ts","pp-dev.config.cts","pp-dev.config.mts","pp-dev.config.json"];const x=new class{cache;_maxSize;constructor(e=10){this._maxSize=e,this.cache=new Map}get maxSize(){return this._maxSize}set maxSize(e){this._maxSize=e}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,t),t}}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this._maxSize){const e=this.cache.keys().next().value;void 0!==e&&this.cache.delete(e)}this.cache.set(e,t)}clear(){this.cache.clear()}has(e){return this.cache.has(e)}}(5),T=new Map;let S;try{S="undefined"!=typeof __filename&&__filename?u.resolve(u.dirname(__filename),".."):void 0!=={url:"undefined"==typeof document?require("url").pathToFileURL(__filename).href:a&&"SCRIPT"===a.tagName.toUpperCase()&&a.src||new URL("index-Bb3yIW5d.js",document.baseURI).href}&&("undefined"==typeof document?require("url").pathToFileURL(__filename).href:a&&"SCRIPT"===a.tagName.toUpperCase()&&a.src||new URL("index-Bb3yIW5d.js",document.baseURI).href,1)&&("undefined"==typeof document?require("url").pathToFileURL(__filename).href:a&&"SCRIPT"===a.tagName.toUpperCase()&&a.src||new URL("index-Bb3yIW5d.js",document.baseURI).href)?u.resolve(s.fileURLToPath(new URL(".","undefined"==typeof document?require("url").pathToFileURL(__filename).href:a&&"SCRIPT"===a.tagName.toUpperCase()&&a.src||new URL("index-Bb3yIW5d.js",document.baseURI).href)),".."):process.cwd()}catch{S=process.cwd()}const I=`/${R}/client`,b=`/${I}`,U=new RegExp(`^\\/?${R}\\/client\\/(.*)$`);const $={templateCompilations:0,cacheHits:0,totalRequests:0};function C(e){let t="",n=!1,i=null;return{name:"pp-dev:client",apply:"serve",config:e=>(e.optimizeDeps?.exclude?.push(`${R}/client`),e),resolveId(e){if(U.test(e))return{id:r.normalizePath(u.join(h,"dist/client",e.replace(U,"$1")))}},transformIndexHtml:async(e,s)=>{$.totalRequests++;const r=s.server?.config.base||"";r!==t&&(t=r,n=!0,i=null),i&&!n||(x.has(t)?(i=x.get(t),$.cacheHits++):(i=function(e,t=!0){const n=e;if(t&&x.has(n))return x.get(n);const i=u.resolve(S,"client","index.html");let s;T.has(i)?s=T.get(i):(s=l.readFileSync(i,{encoding:"utf8"}),T.set(i,s));const r=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=d.compile(s.replace(new RegExp(r,"g"),u.posix.join(e,I)),{openDelimiter:"{",closeDelimiter:"}",async:!0,cache:!0,filename:i,rmWhitespace:!0,compileDebug:!1});return t&&x.set(n,o),o}(t,true),$.templateCompilations++),n=!1);const o=function(e){return{css:u.posix.join(e,R,"client/client.css"),js:u.posix.join(e,R,"client/client.js")}}(t),a={html:e,tags:[{tag:"link",injectTo:"head",attrs:{rel:"stylesheet",href:o.css}}]},{backendBaseURL:c,templateLess:p,portalPageId:f,canSync:m=!0}=s.server?.config.clientInjectionPlugin||{},g={PACKAGE_NAME:R,VERSION:j,backendBaseURL:c,templateLess:p,portalPageId:f,canSync:m};return a.tags.push({tag:"div",injectTo:"body-prepend",children:await i(g)}),a.tags.push({tag:"script",injectTo:"body-prepend",attrs:{src:o.js,type:"module"}}),a},configureServer(e){const t=r.normalizePath(u.resolve(e.config.root,u.dirname(y)));e.config.server?.fs?.allow&&e.config.server.fs.allow.push(t),e.middlewares.use("/@api/__pp-dev-metrics",(e,t)=>{t.setHeader("Content-Type","application/json"),t.end(JSON.stringify($,null,2))})},closeBundle(){x.clear(),T.clear()}}}const E=(e,t)=>` * ${t}`;function L(e){return`/*!\n${"***** DO NOT EDIT THIS CODE! *****\n***** ------- *****".replace(/^(.*)$/gm,E)}\n */`}async function N(){try{const[e,t]=await Promise.all([import("next"),import("next/constants.js")]);return{next:e.default,constants:t}}catch(e){throw new Error(`Next.js is required but not available. Please install Next.js as a dependency:\nnpm install next@^15\n\nThis package requires Next.js >=15 <17 as a peer dependency.\n\nError: ${e}`)}}const O=new Map,D=3e4;let F=null;function k(){const e=Date.now();if(F&&e-F.timestamp<6e4)return F.data;const t=process.cwd();try{const i=JSON.parse(n.readFileSync(f.resolve(t,"package.json"),{encoding:"utf-8",flag:"r"}));return F={data:i,timestamp:e},i}catch{const t={};return F={data:t,timestamp:e},t}}let z=null;async function q(e){const t=process.cwd(),i=`ts:${e}`,r=O.get(i);if(r&&Date.now()-r.timestamp<D)return r.data;let o=!1;if(/\.m[jt]s$/.test(e))o=!0;else if(/\.c[jt]s$/.test(e))o=!1;else{const e=k();o=!!e&&"module"===e.type}const a=await async function(){return z||(z=await import("esbuild")),z}(),c=await a.build({absWorkingDir:t,entryPoints:[e],outfile:"out.js",write:!1,target:["node14.18","node16"],platform:"node",bundle:!0,format:o?"esm":"cjs",mainFields:["main"],sourcemap:"inline",metafile:!0}),{text:p}=c.outputFiles[0],l=`${`pp-config.timestamp-${Date.now()}-${Math.random().toString(16).slice(2)}`}.js`,u=s.pathToFileURL(f.resolve(t,l)).toString();n.writeFileSync(l,p);let d={};try{const t=(await import(u)).default;d=t?.default||t,O.set(i,{data:d,timestamp:Date.now(),filePath:e})}finally{n.existsSync(l)&&n.unlink(l,()=>{})}return d}async function A(e){const t=`js:${e}`,n=O.get(t);if(n&&Date.now()-n.timestamp<D)return n.data;const i=(await import(s.pathToFileURL(e).toString())).default;return O.set(t,{data:i,timestamp:Date.now(),filePath:e}),i}async function V(e){const t=`json:${e}`,i=O.get(t);if(i&&Date.now()-i.timestamp<D)return i.data;const s=JSON.parse(n.readFileSync(e,{encoding:"utf-8"}));return O.set(t,{data:s,timestamp:Date.now(),filePath:e}),s}let H=null;async function B(e,t){for(const n of t)if(e.includes(n)){if(/\.[cm]?ts$/i.test(n))return await q(n);if(/\.[cm]?js$/i.test(n))return await A(f.resolve(".",n));if(n.endsWith(".json"))return await V(f.resolve(".",n))}return null}function M(){return k()}async function G(){const e=function(){const e=Date.now();if(H&&e-H.timestamp<1e4)return H.files;const t=/\.config\.(([cm]?ts)|([cm]?js)|(json))$/,i=process.cwd(),s=n.readdirSync(i,{withFileTypes:!0}).filter(e=>e.isFile()&&t.test(e.name)).map(e=>e.name);return H={files:s,timestamp:e},s}();let t={},i=!1;const s=await B(e,P);if(s&&(t=s,i=!0),e.length&&!i){const n=await B(e,w);n&&(t={backendBaseURL:n.baseURL,portalPageId:n.portalPageId},i=!0)}const r=k();return i||"object"!=typeof r["pp-dev"]||(t=r["pp-dev"]),t}const J=Object.freeze({__proto__:null,clearConfigCache:function(){O.clear(),F=null,H=null},getConfig:G,getConfigCacheStats:function(){return{configEntries:O.size,packageJsonCached:!!F,dirContentCached:!!H}},getPkg:M}),K="/p",W="/pt";function Y(t){if("string"==typeof t)return t;if(t&&"object"==typeof t&&"url"in t&&"string"==typeof t.url)return t.url;const n=["CI_REPOSITORY_URL","GIT_URL","BUILD_REPOSITORY_URI","CI_PROJECT_URL","BITBUCKET_GIT_HTTP_ORIGIN","BUILDKITE_REPO"];for(const e of n){const t=process.env[e];if("string"==typeof t&&t.trim())return t}const i=process.env.GITHUB_REPOSITORY;if("string"==typeof i&&i.trim()){return`${(process.env.GITHUB_SERVER_URL||"https://github.com").replace(/\/+$/,"")}/${i.replace(/^\/+/,"")}`}const s=process.env.CI_PROJECT_PATH;if("string"==typeof s&&s.trim()){return`${(process.env.CI_SERVER_URL||"https://gitlab.com").replace(/\/+$/,"")}/${s.replace(/^\/+/,"")}`}const r=process.env.BITBUCKET_REPO_FULL_NAME;if("string"==typeof r&&r.trim())return`https://bitbucket.org/${r.replace(/^\/+/,"")}`;const o=process.env.TRAVIS_REPO_SLUG;if("string"==typeof o&&o.trim())return`https://github.com/${o.replace(/^\/+/,"")}`;try{const t=e.execSync("git config --get remote.origin.url",{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(t)return t}catch{}}function Z(e){return e?.ppDev||{}}function Q(e,t,n){return Object.assign({},e,t,n)}exports.PACKAGE_NAME=R,exports.PP_DEV_CLIENT_ENTRY=y,exports.PP_DEV_CONFIG_NAMES=P,exports.PP_DEV_HMR_WS_PATH="/@pp-dev-hmr",exports.PP_WATCH_CONFIG_NAMES=w,exports.VERSION=j,exports.config=J,exports.getNextVersion=async function(){try{return(await import("next/package.json")).version}catch{return null}},exports.getPPDevConfigFromNextConfig=Z,exports.getViteConfig=async function(){const e=M(),n=e.name,i=await G(),s=t.normalizeVitePPDevConfig(Object.assign(i,{templateName:n})),{default:r}=await Promise.resolve().then(()=>require("./plugin.js")),o=[r(s),C()],{outDir:a,distZip:c,versionPlugin:p,imageOptimizer:l,templateLess:u,integrateMiTopBar:f}=s;if(f&&o.push(function(e){return{name:"mi-topbar-plugin",transformIndexHtml(){const t=[];return(!0===e||"object"==typeof e&&!0===e.addRootElement)&&t.push({tag:"div",injectTo:"body-prepend",attrs:{id:"mi-react-root"}}),(!0===e||"object"==typeof e&&!0===e.addSharedComponentsScripts)&&t.push({tag:"script",injectTo:"head-prepend",attrs:{src:"/auth/info.js"}},{tag:"script",injectTo:"head-prepend",attrs:{src:"/js/main.js",defer:"defer"}},{tag:"link",injectTo:"head-prepend",attrs:{href:"/css/main.css",rel:"stylesheet"}}),t}}}(f)),l){const{ViteImageOptimizer:e}=await import("vite-plugin-image-optimizer");o.push(e("object"==typeof l?l:void 0))}if(p){const{versionPlugin:t}=await Promise.resolve().then(()=>require("./version-plugin-DUKsGBsW.js"));o.push(t({outDir:a,packageVersion:e.version??"0.0.0",packageRepositoryUrl:Y(e.repository),..."object"==typeof p?p:{}}))}if(c){const{default:e}=await import("vite-plugin-zip-pack");o.push({...e("object"==typeof c?c:{outFileName:`${n}.zip`}),enforce:"post"})}return{base:u?`${K}/${n}`:`${W}/${n}`,server:{port:3e3},build:{minify:!1,assetsInlineLimit:4096,rollupOptions:{output:{banner:L}},outDir:a},css:{modules:{localsConvention:"dashes"}},ppDevConfig:s,plugins:o}},exports.isNextAvailable=async function(){try{return await import("next"),!0}catch(e){return!1}},exports.safeNextImport=N,exports.withPPDev=function(e,t){return async(n,i={})=>{try{const{constants:s}=await N(),{PHASE_DEVELOPMENT_SERVER:r}=s,o=await G(),a=M().name,c="function"==typeof e?await e(n,i):e,p=Z(c),l=Object.assign({},o,p,t??{}),u=n===r,f=function(e,t,n,i){return n?i?t?`${K}/${e}`:`/pl/${e}`:t?`${K}/${e}`:`${W}/${e}`:`/p/${e}`}(a,l.templateLess??!1,u,l.v7Features??!1),d={basePath:f,trailingSlash:!!u||void 0};return l.templateLess||(d.assetPrefix=`${W}/${a}`),Q(d,c)}catch(t){console.error("Error in withPPDev:",t),console.warn("Falling back to original Next.js configuration");try{return"function"==typeof e?await e(n,i):e}catch(e){return console.error("Error in fallback configuration:",e),{}}}}};
|
|
2
|
-
//# sourceMappingURL=index-Bb3yIW5d.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Bb3yIW5d.js","sources":["../../../src/constants.ts","../../../src/plugins/client-injection-plugin.ts","../../../src/banner/header.ts","../../../src/lib/next-import.ts","../../../src/config.ts","../../../src/index.ts","../../../src/plugins/mi-topbar-plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["afterBundlePath","resolve","__filename","fileURLToPath","document","require","pathToFileURL","href","_documentCurrentScript","tagName","toUpperCase","src","URL","baseURI","beforeBundlePath","PP_DEV_PACKAGE_DIR","existsSync","PP_DEV_CLIENT_ENTRY","version","name","JSON","parse","readFileSync","toString","VERSION","PACKAGE_NAME","PP_WATCH_CONFIG_NAMES","PP_DEV_CONFIG_NAMES","templateCache","cache","_maxSize","constructor","maxSize","this","Map","value","get","key","has","delete","set","size","firstKey","keys","next","undefined","clear","fileCache","DIRNAME","path","dirname","url","process","cwd","PACKAGE_IMPORT","CLIENT_PATH","PACKAGE_REGEXP","RegExp","performanceMetrics","templateCompilations","cacheHits","totalRequests","clientInjectionPlugin","opts","base","baseChanged","currentTemplate","apply","config","optimizeDeps","exclude","push","resolveId","source","test","id","normalizePath","join","replace","transformIndexHtml","async","html","ctx","serverBase","server","enableCache","cacheKey","templatePath","templateContent","fs","encoding","escapedClientPath","compiledTemplate","ejs","compile","posix","openDelimiter","closeDelimiter","filename","rmWhitespace","compileDebug","getTemplate","assetPaths","css","js","getAssetPaths","result","tags","tag","injectTo","attrs","rel","backendBaseURL","templateLess","portalPageId","canSync","templateData","children","type","configureServer","clientDir","root","allow","middlewares","use","req","res","setHeader","end","stringify","closeBundle","replacer","substring","$1","header","_chunk","safeNextImport","constants","Promise","all","import","default","error","Error","configCache","CACHE_TTL","packageJsonCache","getPackageJson","now","Date","timestamp","data","flag","empty","esbuildModule","loadTsConfig","filePath","cached","isESM","pkg","esbuild","getEsbuild","build","absWorkingDir","entryPoints","outfile","write","target","platform","bundle","format","mainFields","sourcemap","metafile","text","code","outputFiles","fileNameTmp","Math","random","slice","fileUrl","writeFileSync","conf","unlink","loadJsConfig","loadJSONConfig","dirContentCache","loadConfig","dirFiles","configNames","configName","includes","endsWith","getPkg","getConfig","dirContent","files","endsWithRegExp","readdirSync","withFileTypes","filter","isFile","map","getDirectoryContent","configFound","newConfig","length","watchConfig","baseURL","configEntries","packageJsonCached","dirContentCached","pathPagePrefix","pathTemplatePrefix","resolveRepositoryUrl","repository","directCiRepositoryUrlEnvVars","variableName","ciRepositoryUrl","env","trim","githubRepository","GITHUB_REPOSITORY","GITHUB_SERVER_URL","gitlabProjectPath","CI_PROJECT_PATH","CI_SERVER_URL","bitbucketRepositoryFullName","BITBUCKET_REPO_FULL_NAME","travisRepositorySlug","TRAVIS_REPO_SLUG","gitRemoteOriginUrl","execSync","stdio","getPPDevConfigFromNextConfig","nextConfig","ppDev","mergeConfigs","baseConfig","nextConfiguration","additionalConfig","Object","assign","templateName","ppDevConfig","normalizedPPDevConfig","normalizeVitePPDevConfig","vitePPDev","then","plugins","outDir","distZip","versionPlugin","imageOptimizer","integrateMiTopBar","addRootElement","addSharedComponentsScripts","defer","miTopBarPlugin","ViteImageOptimizer","versionPluginFn","packageVersion","packageRepositoryUrl","zipPack","outFileName","enforce","port","minify","assetsInlineLimit","rollupOptions","output","banner","modules","localsConvention","nextjsConfig","phase","PHASE_DEVELOPMENT_SERVER","nextConfigPPDev","mergedConfig","isDevelopment","basePath","v7Features","createBasePath","trailingSlash","assetPrefix","console","warn","fallbackError"],"mappings":"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"}
|