@ms-cloudpack/storybook-builder 0.1.16 → 0.1.18
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/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -13
- package/lib/index.js.map +1 -1
- package/lib/utils/processPreviewAnnotation.d.ts +1 -2
- package/lib/utils/processPreviewAnnotation.d.ts.map +1 -1
- package/lib/utils/processPreviewAnnotation.js +13 -12
- package/lib/utils/processPreviewAnnotation.js.map +1 -1
- package/package.json +10 -9
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAMA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAmBxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAOnC,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAMF,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BvD;AAED,eAAO,MAAM,KAAK;aAMP,OAAO;eACL,CAAC,MAAM,EAAE,MAAM,CAAC;YACnB,MAAM;YACN,MAAM;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAMA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAmBxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAOnC,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAMF,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BvD;AAED,eAAO,MAAM,KAAK;aAMP,OAAO;eACL,CAAC,MAAM,EAAE,MAAM,CAAC;YACnB,MAAM;YACN,MAAM;;;;;;;EAuKf,CAAC;AAEF,eAAO,MAAM,KAAK,SAAU;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,KAAG,IAG/E,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -146,19 +146,7 @@ export const start = async ({ options, startTime, router, server: devServer, })
|
|
|
146
146
|
input: { name: definition.name, version: definition.version },
|
|
147
147
|
ctx: apiContext,
|
|
148
148
|
});
|
|
149
|
-
//
|
|
150
|
-
const preBundlePackages = ['lodash'];
|
|
151
|
-
preBundlePackages.forEach((name) => {
|
|
152
|
-
const packageEntry = findResolveMapEntry({ packageName: name, resolveMap: session.resolveMap });
|
|
153
|
-
if (!packageEntry) {
|
|
154
|
-
throw new Error(`Could not find package ${name} in the resolve map.`);
|
|
155
|
-
}
|
|
156
|
-
void ensurePackageBundled({
|
|
157
|
-
input: { name, version: packageEntry.version },
|
|
158
|
-
ctx: apiContext,
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
// Then start bundle and app servers for hosting the app.
|
|
149
|
+
// Start bundle and app servers for hosting the app.
|
|
162
150
|
bundleServer = await startBundleServer({
|
|
163
151
|
context: {
|
|
164
152
|
...apiContext,
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { getLocalCachePath, type ApiServer } from '@ms-cloudpack/api-server';\nimport { createPartialApiContext, ensurePackageBundled } from '@ms-cloudpack/api-server';\nimport { startAppServer, type AppServer } from '@ms-cloudpack/app-server';\nimport { startBundleServer, type BundleServer } from '@ms-cloudpack/bundle-server';\nimport { readConfig } from '@ms-cloudpack/config';\nimport type { PackageJson } from '@ms-cloudpack/config-types';\nimport { express, type Router } from '@ms-cloudpack/create-express-app';\nimport { readJson } from '@ms-cloudpack/json-utilities';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n getExportsMap,\n getVersion,\n resolve,\n} from '@ms-cloudpack/package-utilities';\nimport { normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport {\n TaskReporter,\n bold,\n debugLoggingConfig,\n defaultLoggingConfig,\n noLoggingConfig,\n verboseLoggingConfig,\n} from '@ms-cloudpack/task-reporter';\nimport { createTelemetryClient } from '@ms-cloudpack/telemetry';\nimport type { Options } from '@storybook/types';\nimport fsExtra from 'fs-extra';\nimport fsPromises from 'fs/promises';\nimport { type Server } from 'http';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { generateIframeHtml } from './generateIFrameHtml.js';\nimport { getNodeModuleDir } from './getNodeModuleDir.js';\nimport { listStories } from './listStories.js';\n\nexport type ClosableServer = {\n close: () => Promise<void>;\n url: string;\n};\n\nlet appServer: AppServer;\nlet apiServer: ApiServer;\nlet bundleServer: BundleServer;\n\nexport async function bail(error?: Error): Promise<void> {\n if (error) {\n console.error('Error:', error);\n }\n\n const servers = [\n ['appServer', appServer] as const,\n ['apiServer', apiServer] as const,\n ['bundleServer', bundleServer] as const,\n ];\n\n await Promise.all(\n servers.map(async ([name, server]) => {\n if (!server || !server.url) {\n console.info(`No ${name} to close.`);\n return;\n }\n console.info(`Closing ${name}: ${server.url}`);\n try {\n await server?.close();\n console.info(`Closed ${name}: ${server.url}`);\n } catch (err) {\n console.warn('Error closing server:', err);\n }\n }),\n );\n}\n\nexport const start = async ({\n options,\n startTime,\n router,\n server: devServer,\n}: {\n options: Options;\n startTime: [number, number];\n router: Router;\n server: Server;\n}) => {\n const previewResolvedDir = getNodeModuleDir('@storybook/preview');\n const previewDirOrigin = path.join(previewResolvedDir, 'dist');\n\n router.use('/sb-preview', express.static(previewDirOrigin, { immutable: true, maxAge: '5m' }));\n\n // TODO: This might be useful later on.\n // const env = await options.presets.apply<Record<string, string>>('env');\n\n // eslint-disable-next-line no-restricted-properties -- this is the one place we need cwd (for a default)\n const appPath = process.cwd();\n\n const config = await readConfig(appPath);\n\n // TODO: Move to won package.\n // runPrerequisites(config, appPath);\n\n // Make sure the package has a valid definition.\n const definition = (await readJson(path.join(appPath, 'package.json'))) as PackageJson;\n\n if (!definition.name || !definition.version) {\n throw new Error(`The package.json at \"${appPath}\" did not have a name and/or version.`);\n }\n\n // This part should be almost identical to the cli start command.\n const reporter = new TaskReporter({\n productName: `Cloudpack`,\n version: getVersion(import.meta.url),\n description: () => `Running \"${bold('storybook')}\"`,\n helpMessage: config.helpMessage,\n // TODO: Get options and enable this.\n plainTextMode: options.ci,\n ...(options.loglevel === 'debug'\n ? debugLoggingConfig\n : options.loglevel === 'verbose'\n ? verboseLoggingConfig\n : options.quiet || options.loglevel === 'quiet'\n ? noLoggingConfig\n : defaultLoggingConfig),\n });\n\n const connectionString = options.disableTelemetry\n ? undefined\n : config.telemetry?.connectionString || process.env.CLOUDPACK_TELEMETRY_CONNECTION_STRING;\n\n const logLevel = options.loglevel === 'verbose' ? 'VERBOSE' : options.loglevel === 'debug' ? 'DEBUG' : undefined;\n if (options.loglevel !== 'debug') {\n reporter.ignoreLogMessage('ApplicationInsights:');\n }\n\n const telemetryClient = await createTelemetryClient({\n productVersion: getVersion(import.meta.url),\n connectionString,\n logLevel,\n serviceNamespace: 'cloudpack',\n serviceName: 'cli',\n rootSpanName: 'CLI',\n });\n\n // Register performance observers to track performance metrics as events of CLI span.\n // registerPerformanceObservers(telemetryClient);\n\n const apiContext = await createPartialApiContext({\n appPath,\n config,\n reporter,\n telemetryClient,\n items: ['bus', 'watcher', 'taskRunner', 'packages', 'session', 'packageImportPaths', 'packageHashes'],\n overlayPath: await resolve('@ms-cloudpack/overlay', path.dirname(fileURLToPath(import.meta.url))),\n });\n\n const { packages, session, packageImportPaths } = apiContext;\n\n // TODO: Get options and enable this.\n // Increment the session version if caching is disabled.\n // if (options.cache === false) {\n // session.incrementSessionVersion();\n // }\n\n // Set shared telemetry attributes which will be sent with all telemetry events.\n telemetryClient.setSharedSpanAttribute('sessionId', session.id);\n\n // TODO: Get options and enable this.\n // if (options.logResolveMap) {\n // // Write the resolve map to disk.\n // await writeJson(path.join(appPath, 'resolve-map.json'), session.resolveMap);\n // }\n\n // Storybook set up is mostly done here.\n const generated = await generateIframeHtml(options, { packages, session });\n await fsExtra.ensureDir(getLocalCachePath(appPath));\n\n // TODO: Currently saving it to disk as the config only accepts a path.\n const iFramePath = path.join(getLocalCachePath(appPath), 'iFrame.html');\n await fsPromises.writeFile(iFramePath, generated, { encoding: 'utf-8' });\n\n // iFrame script is required for storybook to work.\n config.devServer ??= {};\n config.devServer.routes ??= [];\n config.devServer.routes.push({\n match: '/iframe.html',\n renderScript: iFramePath,\n });\n\n const storyEntries = Object.fromEntries(\n (await listStories(options)).map((story) => {\n const storyPath = normalizeRelativePath(path.relative(appPath, story));\n return [storyPath, storyPath];\n }),\n );\n\n const packagePath = findResolveMapEntry({ packageName: definition.name, resolveMap: session.resolveMap })?.path;\n if (!packagePath) {\n throw new Error(`Could not find package ${definition.name} in the resolve map.`);\n }\n\n const exports = await getExportsMap({ packagePath }, { packages, config: session.config });\n for (const [importPath, filePath] of Object.entries(storyEntries)) {\n await addExportsMapEntry({ exports, packagePath, importPath, filePath }, { packages, config: session.config });\n }\n\n const { startApiServer } = await import('@ms-cloudpack/api-server');\n\n // Start api server for tracking status and handling remote requests.\n apiServer = await startApiServer(apiContext);\n\n // Kick off bundling app package as soon as api server is ready.\n void ensurePackageBundled({\n input: { name: definition.name, version: definition.version },\n ctx: apiContext,\n });\n\n // Kick off bundling some packages we know are required\n const preBundlePackages = ['lodash'];\n\n preBundlePackages.forEach((name) => {\n const packageEntry = findResolveMapEntry({ packageName: name, resolveMap: session.resolveMap });\n\n if (!packageEntry) {\n throw new Error(`Could not find package ${name} in the resolve map.`);\n }\n\n void ensurePackageBundled({\n input: { name, version: packageEntry.version },\n ctx: apiContext,\n });\n });\n\n // Then start bundle and app servers for hosting the app.\n bundleServer = await startBundleServer({\n context: {\n ...apiContext,\n apiServer,\n disableCache: false, // TODO: Get options and enable this.\n },\n });\n\n // Finally start the app server.\n appServer = await startAppServer({\n session,\n definition,\n bundleServer,\n apiServer,\n config,\n reporter,\n packages,\n packageImportPaths,\n packageHashes: apiContext.packageHashes,\n middlewareMode: true,\n server: devServer,\n });\n\n router.use(appServer.app);\n\n // TODO: Figure out if it is possible to know when browser will open.\n // performance.measure(PerfMeasurementOpenBrowser, PerfMarkerCliEntry);\n\n return {\n bail,\n stats: { toJson: () => null },\n totalTime: process.hrtime(startTime),\n };\n};\n\nexport const build = (_arg: { options: Options; startTime: [number, number] }): void => {\n console.log('Cloudpack Storybook build is not implemented yet.');\n process.exit(1);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAkB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,cAAc,EAAkB,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAqB,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAe,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,OAAO,GACR,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,IAAI,SAAoB,CAAC;AACzB,IAAI,SAAoB,CAAC;AACzB,IAAI,YAA0B,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,KAAa;IACtC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,OAAO,GAAG;QACd,CAAC,WAAW,EAAE,SAAS,CAAU;QACjC,CAAC,WAAW,EAAE,SAAS,CAAU;QACjC,CAAC,cAAc,EAAE,YAAY,CAAU;KACxC,CAAC;IAEF,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;QACnC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,EAC1B,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EAAE,SAAS,GAMlB,EAAE,EAAE;IACH,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAE/D,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/F,uCAAuC;IACvC,0EAA0E;IAE1E,yGAAyG;IACzG,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAEzC,6BAA6B;IAC7B,qCAAqC;IAErC,gDAAgD;IAChD,MAAM,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAgB,CAAC;IAEvF,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,uCAAuC,CAAC,CAAC;IAC1F,CAAC;IAED,iEAAiE;IACjE,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC;QAChC,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACpC,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG;QACnD,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,qCAAqC;QACrC,aAAa,EAAE,OAAO,CAAC,EAAE;QACzB,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC9B,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAC9B,CAAC,CAAC,oBAAoB;gBACtB,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;oBAC7C,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,oBAAoB,CAAC;KAC9B,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB;QAC/C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC;IAE5F,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACjH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,QAAQ,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC;QAClD,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,gBAAgB;QAChB,QAAQ;QACR,gBAAgB,EAAE,WAAW;QAC7B,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,qFAAqF;IACrF,iDAAiD;IAEjD,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,QAAQ;QACR,eAAe;QACf,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,oBAAoB,EAAE,eAAe,CAAC;QACrG,WAAW,EAAE,MAAM,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KAClG,CAAC,CAAC;IAEH,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,UAAU,CAAC;IAE7D,qCAAqC;IACrC,wDAAwD;IACxD,iCAAiC;IACjC,uCAAuC;IACvC,IAAI;IAEJ,gFAAgF;IAChF,eAAe,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAEhE,qCAAqC;IACrC,+BAA+B;IAC/B,sCAAsC;IACtC,iFAAiF;IACjF,IAAI;IAEJ,wCAAwC;IACxC,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,MAAM,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpD,uEAAuE;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;IACxE,MAAM,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAEzE,mDAAmD;IACnD,MAAM,CAAC,SAAS,KAAK,EAAE,CAAC;IACxB,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;IAC/B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3B,KAAK,EAAE,cAAc;QACrB,YAAY,EAAE,UAAU;KACzB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChC,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,WAAW,GAAG,mBAAmB,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC;IAChH,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,CAAC,IAAI,sBAAsB,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3F,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAClE,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAEpE,qEAAqE;IACrE,SAAS,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IAE7C,gEAAgE;IAChE,KAAK,oBAAoB,CAAC;QACxB,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE;QAC7D,GAAG,EAAE,UAAU;KAChB,CAAC,CAAC;IAEH,oDAAoD;IACpD,YAAY,GAAG,MAAM,iBAAiB,CAAC;QACrC,OAAO,EAAE;YACP,GAAG,UAAU;YACb,SAAS;YACT,YAAY,EAAE,KAAK,EAAE,qCAAqC;SAC3D;KACF,CAAC,CAAC;IAEH,gCAAgC;IAChC,SAAS,GAAG,MAAM,cAAc,CAAC;QAC/B,OAAO;QACP,UAAU;QACV,YAAY;QACZ,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,kBAAkB;QAClB,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,cAAc,EAAE,IAAI;QACpB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAE1B,qEAAqE;IACrE,uEAAuE;IAEvE,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;QAC7B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAuD,EAAQ,EAAE;IACrF,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC","sourcesContent":["import { getLocalCachePath, type ApiServer } from '@ms-cloudpack/api-server';\nimport { createPartialApiContext, ensurePackageBundled } from '@ms-cloudpack/api-server';\nimport { startAppServer, type AppServer } from '@ms-cloudpack/app-server';\nimport { startBundleServer, type BundleServer } from '@ms-cloudpack/bundle-server';\nimport { readConfig } from '@ms-cloudpack/config';\nimport type { PackageJson } from '@ms-cloudpack/config-types';\nimport { express, type Router } from '@ms-cloudpack/create-express-app';\nimport { readJson } from '@ms-cloudpack/json-utilities';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n getExportsMap,\n getVersion,\n resolve,\n} from '@ms-cloudpack/package-utilities';\nimport { normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport {\n TaskReporter,\n bold,\n debugLoggingConfig,\n defaultLoggingConfig,\n noLoggingConfig,\n verboseLoggingConfig,\n} from '@ms-cloudpack/task-reporter';\nimport { createTelemetryClient } from '@ms-cloudpack/telemetry';\nimport type { Options } from '@storybook/types';\nimport fsExtra from 'fs-extra';\nimport fsPromises from 'fs/promises';\nimport { type Server } from 'http';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { generateIframeHtml } from './generateIFrameHtml.js';\nimport { getNodeModuleDir } from './getNodeModuleDir.js';\nimport { listStories } from './listStories.js';\n\nexport type ClosableServer = {\n close: () => Promise<void>;\n url: string;\n};\n\nlet appServer: AppServer;\nlet apiServer: ApiServer;\nlet bundleServer: BundleServer;\n\nexport async function bail(error?: Error): Promise<void> {\n if (error) {\n console.error('Error:', error);\n }\n\n const servers = [\n ['appServer', appServer] as const,\n ['apiServer', apiServer] as const,\n ['bundleServer', bundleServer] as const,\n ];\n\n await Promise.all(\n servers.map(async ([name, server]) => {\n if (!server || !server.url) {\n console.info(`No ${name} to close.`);\n return;\n }\n console.info(`Closing ${name}: ${server.url}`);\n try {\n await server?.close();\n console.info(`Closed ${name}: ${server.url}`);\n } catch (err) {\n console.warn('Error closing server:', err);\n }\n }),\n );\n}\n\nexport const start = async ({\n options,\n startTime,\n router,\n server: devServer,\n}: {\n options: Options;\n startTime: [number, number];\n router: Router;\n server: Server;\n}) => {\n const previewResolvedDir = getNodeModuleDir('@storybook/preview');\n const previewDirOrigin = path.join(previewResolvedDir, 'dist');\n\n router.use('/sb-preview', express.static(previewDirOrigin, { immutable: true, maxAge: '5m' }));\n\n // TODO: This might be useful later on.\n // const env = await options.presets.apply<Record<string, string>>('env');\n\n // eslint-disable-next-line no-restricted-properties -- this is the one place we need cwd (for a default)\n const appPath = process.cwd();\n\n const config = await readConfig(appPath);\n\n // TODO: Move to won package.\n // runPrerequisites(config, appPath);\n\n // Make sure the package has a valid definition.\n const definition = (await readJson(path.join(appPath, 'package.json'))) as PackageJson;\n\n if (!definition.name || !definition.version) {\n throw new Error(`The package.json at \"${appPath}\" did not have a name and/or version.`);\n }\n\n // This part should be almost identical to the cli start command.\n const reporter = new TaskReporter({\n productName: `Cloudpack`,\n version: getVersion(import.meta.url),\n description: () => `Running \"${bold('storybook')}\"`,\n helpMessage: config.helpMessage,\n // TODO: Get options and enable this.\n plainTextMode: options.ci,\n ...(options.loglevel === 'debug'\n ? debugLoggingConfig\n : options.loglevel === 'verbose'\n ? verboseLoggingConfig\n : options.quiet || options.loglevel === 'quiet'\n ? noLoggingConfig\n : defaultLoggingConfig),\n });\n\n const connectionString = options.disableTelemetry\n ? undefined\n : config.telemetry?.connectionString || process.env.CLOUDPACK_TELEMETRY_CONNECTION_STRING;\n\n const logLevel = options.loglevel === 'verbose' ? 'VERBOSE' : options.loglevel === 'debug' ? 'DEBUG' : undefined;\n if (options.loglevel !== 'debug') {\n reporter.ignoreLogMessage('ApplicationInsights:');\n }\n\n const telemetryClient = await createTelemetryClient({\n productVersion: getVersion(import.meta.url),\n connectionString,\n logLevel,\n serviceNamespace: 'cloudpack',\n serviceName: 'cli',\n rootSpanName: 'CLI',\n });\n\n // Register performance observers to track performance metrics as events of CLI span.\n // registerPerformanceObservers(telemetryClient);\n\n const apiContext = await createPartialApiContext({\n appPath,\n config,\n reporter,\n telemetryClient,\n items: ['bus', 'watcher', 'taskRunner', 'packages', 'session', 'packageImportPaths', 'packageHashes'],\n overlayPath: await resolve('@ms-cloudpack/overlay', path.dirname(fileURLToPath(import.meta.url))),\n });\n\n const { packages, session, packageImportPaths } = apiContext;\n\n // TODO: Get options and enable this.\n // Increment the session version if caching is disabled.\n // if (options.cache === false) {\n // session.incrementSessionVersion();\n // }\n\n // Set shared telemetry attributes which will be sent with all telemetry events.\n telemetryClient.setSharedSpanAttribute('sessionId', session.id);\n\n // TODO: Get options and enable this.\n // if (options.logResolveMap) {\n // // Write the resolve map to disk.\n // await writeJson(path.join(appPath, 'resolve-map.json'), session.resolveMap);\n // }\n\n // Storybook set up is mostly done here.\n const generated = await generateIframeHtml(options, { packages, session });\n await fsExtra.ensureDir(getLocalCachePath(appPath));\n\n // TODO: Currently saving it to disk as the config only accepts a path.\n const iFramePath = path.join(getLocalCachePath(appPath), 'iFrame.html');\n await fsPromises.writeFile(iFramePath, generated, { encoding: 'utf-8' });\n\n // iFrame script is required for storybook to work.\n config.devServer ??= {};\n config.devServer.routes ??= [];\n config.devServer.routes.push({\n match: '/iframe.html',\n renderScript: iFramePath,\n });\n\n const storyEntries = Object.fromEntries(\n (await listStories(options)).map((story) => {\n const storyPath = normalizeRelativePath(path.relative(appPath, story));\n return [storyPath, storyPath];\n }),\n );\n\n const packagePath = findResolveMapEntry({ packageName: definition.name, resolveMap: session.resolveMap })?.path;\n if (!packagePath) {\n throw new Error(`Could not find package ${definition.name} in the resolve map.`);\n }\n\n const exports = await getExportsMap({ packagePath }, { packages, config: session.config });\n for (const [importPath, filePath] of Object.entries(storyEntries)) {\n await addExportsMapEntry({ exports, packagePath, importPath, filePath }, { packages, config: session.config });\n }\n\n const { startApiServer } = await import('@ms-cloudpack/api-server');\n\n // Start api server for tracking status and handling remote requests.\n apiServer = await startApiServer(apiContext);\n\n // Kick off bundling app package as soon as api server is ready.\n void ensurePackageBundled({\n input: { name: definition.name, version: definition.version },\n ctx: apiContext,\n });\n\n // Start bundle and app servers for hosting the app.\n bundleServer = await startBundleServer({\n context: {\n ...apiContext,\n apiServer,\n disableCache: false, // TODO: Get options and enable this.\n },\n });\n\n // Finally start the app server.\n appServer = await startAppServer({\n session,\n definition,\n bundleServer,\n apiServer,\n config,\n reporter,\n packages,\n packageImportPaths,\n packageHashes: apiContext.packageHashes,\n middlewareMode: true,\n server: devServer,\n });\n\n router.use(appServer.app);\n\n // TODO: Figure out if it is possible to know when browser will open.\n // performance.measure(PerfMeasurementOpenBrowser, PerfMarkerCliEntry);\n\n return {\n bail,\n stats: { toJson: () => null },\n totalTime: process.hrtime(startTime),\n };\n};\n\nexport const build = (_arg: { options: Options; startTime: [number, number] }): void => {\n console.log('Cloudpack Storybook build is not implemented yet.');\n process.exit(1);\n};\n"]}
|
|
@@ -7,9 +7,8 @@ import type { Session } from '@ms-cloudpack/api-server';
|
|
|
7
7
|
*
|
|
8
8
|
* For node_modules, we want bare imports (so cloudpack can process them),
|
|
9
9
|
* and for files in the user's source, we want URLs absolute relative to project root.
|
|
10
|
-
*
|
|
11
10
|
*/
|
|
12
|
-
export declare function processPreviewAnnotation(
|
|
11
|
+
export declare function processPreviewAnnotation(previewPath: PreviewAnnotation | undefined, context: {
|
|
13
12
|
packages: PackageDefinitionsCache;
|
|
14
13
|
session: Session;
|
|
15
14
|
}): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processPreviewAnnotation.d.ts","sourceRoot":"","sources":["../../src/utils/processPreviewAnnotation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAK1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"processPreviewAnnotation.d.ts","sourceRoot":"","sources":["../../src/utils/processPreviewAnnotation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAK1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,iBAAiB,GAAG,SAAS,EAC1C,OAAO,EAAE;IAAE,QAAQ,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,mBAgEjE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// based on https://github.com/storybookjs/storybook/blob/v7.6.5/code/builders/builder-vite/src/utils/process-preview-annotation.ts
|
|
2
|
-
import
|
|
2
|
+
import path from 'path';
|
|
3
3
|
import { slash } from '@ms-cloudpack/path-string-parsing';
|
|
4
4
|
import { stripAbsNodeModulesPath } from '@storybook/core-common';
|
|
5
5
|
import { findPackageRoot } from '@ms-cloudpack/path-utilities';
|
|
@@ -9,9 +9,8 @@ import { findPackageRoot } from '@ms-cloudpack/path-utilities';
|
|
|
9
9
|
*
|
|
10
10
|
* For node_modules, we want bare imports (so cloudpack can process them),
|
|
11
11
|
* and for files in the user's source, we want URLs absolute relative to project root.
|
|
12
|
-
*
|
|
13
12
|
*/
|
|
14
|
-
export async function processPreviewAnnotation(
|
|
13
|
+
export async function processPreviewAnnotation(previewPath, context) {
|
|
15
14
|
const { packages, session } = context;
|
|
16
15
|
const { appPath } = session;
|
|
17
16
|
// If entry is an object, take the first, which is the
|
|
@@ -20,22 +19,22 @@ export async function processPreviewAnnotation(path, context) {
|
|
|
20
19
|
// continue supporting super-addons in pnp/pnpm without
|
|
21
20
|
// requiring them to re-export their sub-addons as we do
|
|
22
21
|
// in addon-essentials.
|
|
23
|
-
if (typeof
|
|
24
|
-
return
|
|
22
|
+
if (typeof previewPath === 'object') {
|
|
23
|
+
return previewPath.bare;
|
|
25
24
|
}
|
|
26
25
|
// This should not occur, since we use `.filter(Boolean)` prior to
|
|
27
26
|
// calling this function, but this makes typescript happy
|
|
28
|
-
if (!
|
|
27
|
+
if (!previewPath) {
|
|
29
28
|
throw new Error('Could not determine path for previewAnnotation');
|
|
30
29
|
}
|
|
31
30
|
// For addon dependencies that use require.resolve(), we need to convert to a bare path
|
|
32
31
|
// so that cloudpack will process it as a dependency (cjs -> esm, etc).
|
|
33
32
|
// TODO: Evaluate if searching for node_modules in a yarn pnp environment is correct
|
|
34
|
-
if (
|
|
35
|
-
return stripAbsNodeModulesPath(
|
|
33
|
+
if (previewPath.includes('node_modules') && !previewPath.includes('.store')) {
|
|
34
|
+
return stripAbsNodeModulesPath(previewPath);
|
|
36
35
|
}
|
|
37
36
|
// resolve absolute paths relative to project root
|
|
38
|
-
const relativePath = isAbsolute(
|
|
37
|
+
const relativePath = path.isAbsolute(previewPath) ? slash(path.relative(appPath, previewPath)) : previewPath;
|
|
39
38
|
// resolve relative paths into absolute urls
|
|
40
39
|
// note: this only works if cloudpack's appPath === cwd.
|
|
41
40
|
// Add package root to relative paths.
|
|
@@ -46,10 +45,12 @@ export async function processPreviewAnnotation(path, context) {
|
|
|
46
45
|
}
|
|
47
46
|
return slash(`${definition.name}/${relativePath.replace(/^\.\//, '')}`);
|
|
48
47
|
}
|
|
49
|
-
// If something is outside of root, convert to absolute.
|
|
48
|
+
// If something is outside of root, convert to absolute.
|
|
49
|
+
// This can happen with a store installation layout:
|
|
50
|
+
// /<repo>/node_modules/.store/@storybook-react-virtual-acd5c7bee4/package
|
|
50
51
|
if (relativePath.startsWith('../')) {
|
|
51
52
|
// Find package and add to root.
|
|
52
|
-
const packagePath = findPackageRoot(resolve(appPath, relativePath));
|
|
53
|
+
const packagePath = findPackageRoot(path.resolve(appPath, relativePath));
|
|
53
54
|
if (!packagePath) {
|
|
54
55
|
throw new Error(`Could not find package root for ${relativePath}`);
|
|
55
56
|
}
|
|
@@ -57,7 +58,7 @@ export async function processPreviewAnnotation(path, context) {
|
|
|
57
58
|
if (!definition) {
|
|
58
59
|
throw new Error(`Could not find package definition for ${relativePath}`);
|
|
59
60
|
}
|
|
60
|
-
return slash(`${definition.name}/${relative(packagePath, resolve(appPath, relativePath))}`);
|
|
61
|
+
return slash(`${definition.name}/${path.relative(packagePath, path.resolve(appPath, relativePath))}`);
|
|
61
62
|
}
|
|
62
63
|
// At this point, it must be relative to the root but not start with a ./ or ../
|
|
63
64
|
// Add package root to relative paths.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processPreviewAnnotation.js","sourceRoot":"","sources":["../../src/utils/processPreviewAnnotation.ts"],"names":[],"mappings":"AAAA,mIAAmI;AAGnI,OAAO,
|
|
1
|
+
{"version":3,"file":"processPreviewAnnotation.js","sourceRoot":"","sources":["../../src/utils/processPreviewAnnotation.ts"],"names":[],"mappings":"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","sourcesContent":["// based on https://github.com/storybookjs/storybook/blob/v7.6.5/code/builders/builder-vite/src/utils/process-preview-annotation.ts\n\nimport type { PreviewAnnotation } from '@storybook/types';\nimport path from 'path';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { stripAbsNodeModulesPath } from '@storybook/core-common';\nimport { findPackageRoot } from '@ms-cloudpack/path-utilities';\nimport type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport type { Session } from '@ms-cloudpack/api-server';\n\n/**\n * Preview annotations can take several forms, and cloudpack needs them to be\n * a bit more restrained.\n *\n * For node_modules, we want bare imports (so cloudpack can process them),\n * and for files in the user's source, we want URLs absolute relative to project root.\n */\nexport async function processPreviewAnnotation(\n previewPath: PreviewAnnotation | undefined,\n context: { packages: PackageDefinitionsCache; session: Session },\n) {\n const { packages, session } = context;\n const { appPath } = session;\n // If entry is an object, take the first, which is the\n // bare (non-absolute) specifier.\n // This is so that webpack can use an absolute path, and\n // continue supporting super-addons in pnp/pnpm without\n // requiring them to re-export their sub-addons as we do\n // in addon-essentials.\n if (typeof previewPath === 'object') {\n return previewPath.bare;\n }\n\n // This should not occur, since we use `.filter(Boolean)` prior to\n // calling this function, but this makes typescript happy\n if (!previewPath) {\n throw new Error('Could not determine path for previewAnnotation');\n }\n\n // For addon dependencies that use require.resolve(), we need to convert to a bare path\n // so that cloudpack will process it as a dependency (cjs -> esm, etc).\n // TODO: Evaluate if searching for node_modules in a yarn pnp environment is correct\n if (previewPath.includes('node_modules') && !previewPath.includes('.store')) {\n return stripAbsNodeModulesPath(previewPath);\n }\n\n // resolve absolute paths relative to project root\n const relativePath = path.isAbsolute(previewPath) ? slash(path.relative(appPath, previewPath)) : previewPath;\n\n // resolve relative paths into absolute urls\n // note: this only works if cloudpack's appPath === cwd.\n // Add package root to relative paths.\n if (relativePath.startsWith('./')) {\n const definition = await packages.get(appPath);\n if (!definition) {\n throw new Error(`Could not find package definition for ${appPath}`);\n }\n return slash(`${definition.name}/${relativePath.replace(/^\\.\\//, '')}`);\n }\n\n // If something is outside of root, convert to absolute.\n // This can happen with a store installation layout:\n // /<repo>/node_modules/.store/@storybook-react-virtual-acd5c7bee4/package\n if (relativePath.startsWith('../')) {\n // Find package and add to root.\n const packagePath = findPackageRoot(path.resolve(appPath, relativePath));\n if (!packagePath) {\n throw new Error(`Could not find package root for ${relativePath}`);\n }\n const definition = await packages.get(packagePath);\n if (!definition) {\n throw new Error(`Could not find package definition for ${relativePath}`);\n }\n return slash(`${definition.name}/${path.relative(packagePath, path.resolve(appPath, relativePath))}`);\n }\n\n // At this point, it must be relative to the root but not start with a ./ or ../\n // Add package root to relative paths.\n const definition = await packages.get(appPath);\n if (!definition) {\n throw new Error(`Could not find package definition for ${appPath}`);\n }\n return slash(`${definition.name}/${relativePath}`);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/storybook-builder",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"description": "A tool for building storybook bundles for the cloudpack ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -22,21 +22,22 @@
|
|
|
22
22
|
"lint": "cloudpack-scripts lint"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@ms-cloudpack/api-server": "^0.32.
|
|
26
|
-
"@ms-cloudpack/app-server": "^0.2.
|
|
27
|
-
"@ms-cloudpack/bundle-server": "^0.2.
|
|
28
|
-
"@ms-cloudpack/config": "^0.17.
|
|
29
|
-
"@ms-cloudpack/config-types": "^0.
|
|
30
|
-
"@ms-cloudpack/create-express-app": "^1.5.
|
|
25
|
+
"@ms-cloudpack/api-server": "^0.32.4",
|
|
26
|
+
"@ms-cloudpack/app-server": "^0.2.5",
|
|
27
|
+
"@ms-cloudpack/bundle-server": "^0.2.35",
|
|
28
|
+
"@ms-cloudpack/config": "^0.17.36",
|
|
29
|
+
"@ms-cloudpack/config-types": "^0.7.0",
|
|
30
|
+
"@ms-cloudpack/create-express-app": "^1.5.2",
|
|
31
31
|
"@ms-cloudpack/json-utilities": "^0.1.4",
|
|
32
|
-
"@ms-cloudpack/package-utilities": "^6.0.
|
|
32
|
+
"@ms-cloudpack/package-utilities": "^6.0.2",
|
|
33
33
|
"@ms-cloudpack/path-string-parsing": "^1.2.1",
|
|
34
34
|
"@ms-cloudpack/path-utilities": "^2.6.1",
|
|
35
35
|
"@ms-cloudpack/task-reporter": "^0.11.2",
|
|
36
|
-
"@ms-cloudpack/telemetry": "^0.4.
|
|
36
|
+
"@ms-cloudpack/telemetry": "^0.4.8",
|
|
37
37
|
"@storybook/core-common": "7.6.5",
|
|
38
38
|
"@storybook/node-logger": "7.6.5",
|
|
39
39
|
"@storybook/preview": "7.6.5",
|
|
40
|
+
"@storybook/preview-api": "7.6.5",
|
|
40
41
|
"fast-glob": "^3.2.12",
|
|
41
42
|
"fs-extra": "^11.2.0"
|
|
42
43
|
},
|