quidproquo-actionprocessor-node 0.1.16 → 0.1.17
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/README.md +15 -97
- package/lib/commonjs/actionProcessor/core/dynamicFunctions/getDynamicFunctionsExecuteActionProcessor.d.ts +1 -2
- package/lib/commonjs/actionProcessor/core/dynamicFunctions/getDynamicFunctionsExecuteActionProcessor.js +1 -6
- package/lib/commonjs/actionProcessor/core/dynamicFunctions/getDynamicFunctionsExecuteActionProcessor.js.map +1 -1
- package/lib/commonjs/actionProcessor/core/index.js +1 -1
- package/lib/commonjs/actionProcessor/core/index.js.map +1 -1
- package/lib/commonjs/actionProcessor/core/inlineFunction/getInlineFunctionExecuteActionProcessor.d.ts +1 -2
- package/lib/commonjs/actionProcessor/core/inlineFunction/getInlineFunctionExecuteActionProcessor.js +1 -6
- package/lib/commonjs/actionProcessor/core/inlineFunction/getInlineFunctionExecuteActionProcessor.js.map +1 -1
- package/lib/commonjs/actionProcessor/core/stream/getStreamCloseActionProcessor.d.ts +1 -2
- package/lib/commonjs/actionProcessor/core/stream/getStreamCloseActionProcessor.js +1 -6
- package/lib/commonjs/actionProcessor/core/stream/getStreamCloseActionProcessor.js.map +1 -1
- package/lib/commonjs/actionProcessor/core/stream/getStreamReadActionProcessor.d.ts +1 -2
- package/lib/commonjs/actionProcessor/core/stream/getStreamReadActionProcessor.js +1 -6
- package/lib/commonjs/actionProcessor/core/stream/getStreamReadActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileDeleteActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileDeleteActionProcessor.js +3 -7
- package/lib/commonjs/dynamicActionProcessor/file/getFileDeleteActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileExistsActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileExistsActionProcessor.js +3 -7
- package/lib/commonjs/dynamicActionProcessor/file/getFileExistsActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileGenerateTemporarySecureUrlActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileGenerateTemporarySecureUrlActionProcessor.js +3 -7
- package/lib/commonjs/dynamicActionProcessor/file/getFileGenerateTemporarySecureUrlActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js +3 -7
- package/lib/commonjs/dynamicActionProcessor/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileIsColdStorageActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileIsColdStorageActionProcessor.js +1 -5
- package/lib/commonjs/dynamicActionProcessor/file/getFileIsColdStorageActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileListDirectoryActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileListDirectoryActionProcessor.js +5 -9
- package/lib/commonjs/dynamicActionProcessor/file/getFileListDirectoryActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileReadBinaryContentsActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileReadBinaryContentsActionProcessor.js +3 -7
- package/lib/commonjs/dynamicActionProcessor/file/getFileReadBinaryContentsActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileReadObjectJsonActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileReadObjectJsonActionProcessor.js +4 -8
- package/lib/commonjs/dynamicActionProcessor/file/getFileReadObjectJsonActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileReadTextContentsActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileReadTextContentsActionProcessor.js +3 -7
- package/lib/commonjs/dynamicActionProcessor/file/getFileReadTextContentsActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileStreamOpenActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileStreamOpenActionProcessor.js +3 -7
- package/lib/commonjs/dynamicActionProcessor/file/getFileStreamOpenActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileWriteBinaryContentsActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileWriteBinaryContentsActionProcessor.js +3 -7
- package/lib/commonjs/dynamicActionProcessor/file/getFileWriteBinaryContentsActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileWriteObjectJsonActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileWriteObjectJsonActionProcessor.js +3 -7
- package/lib/commonjs/dynamicActionProcessor/file/getFileWriteObjectJsonActionProcessor.js.map +1 -1
- package/lib/commonjs/dynamicActionProcessor/file/getFileWriteTextContentsActionProcessor.d.ts +1 -2
- package/lib/commonjs/dynamicActionProcessor/file/getFileWriteTextContentsActionProcessor.js +3 -7
- package/lib/commonjs/dynamicActionProcessor/file/getFileWriteTextContentsActionProcessor.js.map +1 -1
- package/lib/commonjs/traceStoryExecution/getSystemTraceStoryActionProcessor.js.map +1 -1
- package/lib/esm/actionProcessor/core/dynamicFunctions/getDynamicFunctionsExecuteActionProcessor.d.ts +1 -2
- package/lib/esm/actionProcessor/core/dynamicFunctions/getDynamicFunctionsExecuteActionProcessor.js +2 -4
- package/lib/esm/actionProcessor/core/dynamicFunctions/getDynamicFunctionsExecuteActionProcessor.js.map +1 -1
- package/lib/esm/actionProcessor/core/index.js +1 -1
- package/lib/esm/actionProcessor/core/index.js.map +1 -1
- package/lib/esm/actionProcessor/core/inlineFunction/getInlineFunctionExecuteActionProcessor.d.ts +1 -2
- package/lib/esm/actionProcessor/core/inlineFunction/getInlineFunctionExecuteActionProcessor.js +2 -4
- package/lib/esm/actionProcessor/core/inlineFunction/getInlineFunctionExecuteActionProcessor.js.map +1 -1
- package/lib/esm/actionProcessor/core/stream/getStreamCloseActionProcessor.d.ts +1 -2
- package/lib/esm/actionProcessor/core/stream/getStreamCloseActionProcessor.js +2 -4
- package/lib/esm/actionProcessor/core/stream/getStreamCloseActionProcessor.js.map +1 -1
- package/lib/esm/actionProcessor/core/stream/getStreamReadActionProcessor.d.ts +1 -2
- package/lib/esm/actionProcessor/core/stream/getStreamReadActionProcessor.js +2 -4
- package/lib/esm/actionProcessor/core/stream/getStreamReadActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileDeleteActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileDeleteActionProcessor.js +4 -6
- package/lib/esm/dynamicActionProcessor/file/getFileDeleteActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileExistsActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileExistsActionProcessor.js +4 -6
- package/lib/esm/dynamicActionProcessor/file/getFileExistsActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileGenerateTemporarySecureUrlActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileGenerateTemporarySecureUrlActionProcessor.js +4 -6
- package/lib/esm/dynamicActionProcessor/file/getFileGenerateTemporarySecureUrlActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js +4 -6
- package/lib/esm/dynamicActionProcessor/file/getFileGenerateTemporaryUploadSecureUrlActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileIsColdStorageActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileIsColdStorageActionProcessor.js +2 -4
- package/lib/esm/dynamicActionProcessor/file/getFileIsColdStorageActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileListDirectoryActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileListDirectoryActionProcessor.js +6 -8
- package/lib/esm/dynamicActionProcessor/file/getFileListDirectoryActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileReadBinaryContentsActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileReadBinaryContentsActionProcessor.js +4 -6
- package/lib/esm/dynamicActionProcessor/file/getFileReadBinaryContentsActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileReadObjectJsonActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileReadObjectJsonActionProcessor.js +5 -7
- package/lib/esm/dynamicActionProcessor/file/getFileReadObjectJsonActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileReadTextContentsActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileReadTextContentsActionProcessor.js +4 -6
- package/lib/esm/dynamicActionProcessor/file/getFileReadTextContentsActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileStreamOpenActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileStreamOpenActionProcessor.js +4 -6
- package/lib/esm/dynamicActionProcessor/file/getFileStreamOpenActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileWriteBinaryContentsActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileWriteBinaryContentsActionProcessor.js +4 -6
- package/lib/esm/dynamicActionProcessor/file/getFileWriteBinaryContentsActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileWriteObjectJsonActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileWriteObjectJsonActionProcessor.js +4 -6
- package/lib/esm/dynamicActionProcessor/file/getFileWriteObjectJsonActionProcessor.js.map +1 -1
- package/lib/esm/dynamicActionProcessor/file/getFileWriteTextContentsActionProcessor.d.ts +1 -2
- package/lib/esm/dynamicActionProcessor/file/getFileWriteTextContentsActionProcessor.js +4 -6
- package/lib/esm/dynamicActionProcessor/file/getFileWriteTextContentsActionProcessor.js.map +1 -1
- package/lib/esm/traceStoryExecution/getSystemTraceStoryActionProcessor.js.map +1 -1
- package/package.json +11 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileReadTextContentsActionProcessor.js","sourceRoot":"","sources":["../../../../src/dynamicActionProcessor/file/getFileReadTextContentsActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getFileReadTextContentsActionProcessor.js","sourceRoot":"","sources":["../../../../src/dynamicActionProcessor/file/getFileReadTextContentsActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,GAItB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAGlC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,8BAA8B,GAAG,CAAC,SAAoB,EAAE,MAAyB,EAAgD,EAAE;IACvI,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC9G,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,SAAS,CAAC,YAAY,EAAE,mBAAmB,QAAQ,EAAE,CAAC,EAAE,eAAe;aAChI,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,MAAyB,EAAE,EAAE,CAClF,qBAAqB,CAAC,uBAAuB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,8BAA8B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC","sourcesContent":["import {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n askFileReadTextContents,\n createActionProcessor,\n FileActionType,\n ProcessorFor,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport * as fs from 'fs/promises';\n\nimport { FileStorageConfig } from './types';\nimport { resolveFilePath } from './utils';\n\nconst getProcessFileReadTextContents = (qpqConfig: QPQConfig, config: FileStorageConfig): ProcessorFor<typeof askFileReadTextContents> => {\n return async ({ drive, filepath, scope }) => {\n try {\n const fullPath = resolveFilePath(config, qpqConfig, drive, filepath, scope);\n const content = await fs.readFile(fullPath, 'utf8');\n return actionResult(content);\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InvalidScopeError: (error) => actionResultError(askFileReadTextContents.errorType.InvalidScope, error.message),\n ENOENT: () => actionResultError(askFileReadTextContents.errorType.FileNotFound, `File not found: ${filepath}`), // node fs code\n });\n }\n };\n};\n\nexport const getFileReadTextContentsActionProcessor = (config: FileStorageConfig) =>\n createActionProcessor(askFileReadTextContents, (qpqConfig) => getProcessFileReadTextContents(qpqConfig, config));\n"]}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { ActionProcessorListResolver } from 'quidproquo-core';
|
|
2
1
|
import { FileStorageConfig } from './types';
|
|
3
|
-
export declare const getFileStreamOpenActionProcessor: (config: FileStorageConfig) => ActionProcessorListResolver;
|
|
2
|
+
export declare const getFileStreamOpenActionProcessor: (config: FileStorageConfig) => import("quidproquo-core").ActionProcessorListResolver;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { actionResult, actionResultError, actionResultErrorFromCaughtError,
|
|
1
|
+
import { actionResult, actionResultError, actionResultErrorFromCaughtError, askFileStreamOpenBase, createActionProcessor, } from 'quidproquo-core';
|
|
2
2
|
import { randomUUID } from 'crypto';
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import { resolveFilePath } from './utils';
|
|
@@ -27,13 +27,11 @@ const getProcessFileStreamOpen = (qpqConfig, config) => {
|
|
|
27
27
|
}
|
|
28
28
|
catch (error) {
|
|
29
29
|
return actionResultErrorFromCaughtError(error, {
|
|
30
|
-
InvalidScopeError: (error) => actionResultError(
|
|
31
|
-
ENOENT: () => actionResultError(
|
|
30
|
+
InvalidScopeError: (error) => actionResultError(askFileStreamOpenBase.errorType.InvalidScope, error.message),
|
|
31
|
+
ENOENT: () => actionResultError(askFileStreamOpenBase.errorType.FileNotFound, `File not found: ${filepath}`), // node fs code
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
};
|
|
36
|
-
export const getFileStreamOpenActionProcessor = (config) =>
|
|
37
|
-
[FileActionType.StreamOpen]: getProcessFileStreamOpen(qpqConfig, config),
|
|
38
|
-
});
|
|
36
|
+
export const getFileStreamOpenActionProcessor = (config) => createActionProcessor(askFileStreamOpenBase, (qpqConfig) => getProcessFileStreamOpen(qpqConfig, config));
|
|
39
37
|
//# sourceMappingURL=getFileStreamOpenActionProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileStreamOpenActionProcessor.js","sourceRoot":"","sources":["../../../../src/dynamicActionProcessor/file/getFileStreamOpenActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getFileStreamOpenActionProcessor.js","sourceRoot":"","sources":["../../../../src/dynamicActionProcessor/file/getFileStreamOpenActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,GAItB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAIzB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,KAAK,SAAS,CAAC,CAAC,kBAAkB,CAAC,MAAgB;IACjD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAAC,MAAgB;IACnD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAgB,CAAC;QAClF,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,wBAAwB,GAAG,CAAC,SAAoB,EAAE,MAAyB,EAA8C,EAAE;IAC/H,OAAO,KAAK,EACV,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAC/C,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,EAAE;QACF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC;YACnC,MAAM,aAAa,GAAG,SAAS,IAAI,KAAK,CAAC;YACzC,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;YACnH,MAAM,QAAQ,GAAG,QAAQ,UAAU,EAAE,EAAE,CAAC;YAExC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAC5F,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAE5C,OAAO,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC5G,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,SAAS,CAAC,YAAY,EAAE,mBAAmB,QAAQ,EAAE,CAAC,EAAE,eAAe;aAC9H,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,MAAyB,EAAE,EAAE,CAC5E,qBAAqB,CAAC,qBAAqB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC","sourcesContent":["import {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n askFileStreamOpenBase,\n createActionProcessor,\n FileActionType,\n ProcessorFor,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport { randomUUID } from 'crypto';\nimport * as fs from 'fs';\nimport { Readable } from 'stream';\n\nimport { FileStorageConfig } from './types';\nimport { resolveFilePath } from './utils';\n\nasync function* textStreamIterator(stream: Readable): AsyncIterableIterator<string> {\n for await (const chunk of stream) {\n yield typeof chunk === 'string' ? chunk : (chunk as Buffer).toString('utf8');\n }\n}\n\nasync function* binaryStreamIterator(stream: Readable): AsyncIterableIterator<string> {\n for await (const chunk of stream) {\n const buffer = typeof chunk === 'string' ? Buffer.from(chunk) : (chunk as Buffer);\n yield buffer.toString('base64');\n }\n}\n\nconst getProcessFileStreamOpen = (qpqConfig: QPQConfig, config: FileStorageConfig): ProcessorFor<typeof askFileStreamOpenBase> => {\n return async (\n { drive, filepath, encoding, chunkSize, scope },\n session,\n actionProcessors,\n logger,\n updateSession,\n dynamicModuleLoader,\n streamRegistry,\n ) => {\n try {\n const fullPath = resolveFilePath(config, qpqConfig, drive, filepath, scope);\n const isText = encoding === 'text';\n const highWaterMark = chunkSize ?? 65536;\n const readStream = fs.createReadStream(fullPath, isText ? { encoding: 'utf8', highWaterMark } : { highWaterMark });\n const streamId = `file-${randomUUID()}`;\n\n const iterator = isText ? textStreamIterator(readStream) : binaryStreamIterator(readStream);\n streamRegistry.register(streamId, iterator);\n\n return actionResult({ id: streamId, encoding });\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InvalidScopeError: (error) => actionResultError(askFileStreamOpenBase.errorType.InvalidScope, error.message),\n ENOENT: () => actionResultError(askFileStreamOpenBase.errorType.FileNotFound, `File not found: ${filepath}`), // node fs code\n });\n }\n };\n};\n\nexport const getFileStreamOpenActionProcessor = (config: FileStorageConfig) =>\n createActionProcessor(askFileStreamOpenBase, (qpqConfig) => getProcessFileStreamOpen(qpqConfig, config));\n"]}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { ActionProcessorListResolver } from 'quidproquo-core';
|
|
2
1
|
import { FileStorageConfig } from './types';
|
|
3
|
-
export declare const getFileWriteBinaryContentsActionProcessor: (config: FileStorageConfig) => ActionProcessorListResolver;
|
|
2
|
+
export declare const getFileWriteBinaryContentsActionProcessor: (config: FileStorageConfig) => import("quidproquo-core").ActionProcessorListResolver;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { actionResult, actionResultError, actionResultErrorFromCaughtError,
|
|
1
|
+
import { actionResult, actionResultError, actionResultErrorFromCaughtError, askFileWriteBinaryContents, createActionProcessor, } from 'quidproquo-core';
|
|
2
2
|
import * as fs from 'fs/promises';
|
|
3
3
|
import { ensureParentDirectoryExists, resolveFilePath } from './utils';
|
|
4
4
|
const getProcessFileWriteBinaryContents = (config) => (qpqConfig) => {
|
|
@@ -19,13 +19,11 @@ const getProcessFileWriteBinaryContents = (config) => (qpqConfig) => {
|
|
|
19
19
|
}
|
|
20
20
|
catch (error) {
|
|
21
21
|
return actionResultErrorFromCaughtError(error, {
|
|
22
|
-
InvalidScopeError: (error) => actionResultError(
|
|
23
|
-
EACCES: () => actionResultError(
|
|
22
|
+
InvalidScopeError: (error) => actionResultError(askFileWriteBinaryContents.errorType.InvalidScope, error.message),
|
|
23
|
+
EACCES: () => actionResultError(askFileWriteBinaryContents.errorType.AccessDenied, `Access denied writing file: ${filepath}`), // node fs code
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
};
|
|
28
|
-
export const getFileWriteBinaryContentsActionProcessor = (config) =>
|
|
29
|
-
[FileActionType.WriteBinaryContents]: getProcessFileWriteBinaryContents(config)(qpqConfig),
|
|
30
|
-
});
|
|
28
|
+
export const getFileWriteBinaryContentsActionProcessor = (config) => createActionProcessor(askFileWriteBinaryContents, (qpqConfig) => getProcessFileWriteBinaryContents(config)(qpqConfig));
|
|
31
29
|
//# sourceMappingURL=getFileWriteBinaryContentsActionProcessor.js.map
|
package/lib/esm/dynamicActionProcessor/file/getFileWriteBinaryContentsActionProcessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileWriteBinaryContentsActionProcessor.js","sourceRoot":"","sources":["../../../../src/dynamicActionProcessor/file/getFileWriteBinaryContentsActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getFileWriteBinaryContentsActionProcessor.js","sourceRoot":"","sources":["../../../../src/dynamicActionProcessor/file/getFileWriteBinaryContentsActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,0BAA0B,EAC1B,qBAAqB,GAItB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAGlC,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE,MAAM,iCAAiC,GACrC,CAAC,MAAyB,EAAE,EAAE,CAC9B,CAAC,SAAoB,EAAmD,EAAE;IACxE,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC5E,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YAE5C,kCAAkC;YAClC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACtD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAErC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7C,MAAM,EAAE,CAAC,SAAS,CAChB,GAAG,QAAQ,eAAe,EAC1B,IAAI,CAAC,SAAS,CAAC;oBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;iBAC5C,CAAC,CACH,CAAC;YACJ,CAAC;YAED,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBACjH,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,SAAS,CAAC,YAAY,EAAE,+BAA+B,QAAQ,EAAE,CAAC,EAAE,eAAe;aAC/I,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,MAAyB,EAAE,EAAE,CACrF,qBAAqB,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC","sourcesContent":["import {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n askFileWriteBinaryContents,\n createActionProcessor,\n FileActionType,\n ProcessorFor,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport * as fs from 'fs/promises';\n\nimport { FileStorageConfig } from './types';\nimport { ensureParentDirectoryExists, resolveFilePath } from './utils';\n\nconst getProcessFileWriteBinaryContents =\n (config: FileStorageConfig) =>\n (qpqConfig: QPQConfig): ProcessorFor<typeof askFileWriteBinaryContents> => {\n return async ({ drive, filepath, data, scope }) => {\n try {\n const fullPath = resolveFilePath(config, qpqConfig, drive, filepath, scope);\n await ensureParentDirectoryExists(fullPath);\n\n // Convert QPQBinaryData to Buffer\n const buffer = Buffer.from(data.base64Data, 'base64');\n await fs.writeFile(fullPath, buffer);\n\n if (data.mimetype || data.contentDisposition) {\n await fs.writeFile(\n `${fullPath}.qpqmeta.json`,\n JSON.stringify({\n mimetype: data.mimetype,\n contentDisposition: data.contentDisposition,\n }),\n );\n }\n\n return actionResult(void 0);\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InvalidScopeError: (error) => actionResultError(askFileWriteBinaryContents.errorType.InvalidScope, error.message),\n EACCES: () => actionResultError(askFileWriteBinaryContents.errorType.AccessDenied, `Access denied writing file: ${filepath}`), // node fs code\n });\n }\n };\n };\n\nexport const getFileWriteBinaryContentsActionProcessor = (config: FileStorageConfig) =>\n createActionProcessor(askFileWriteBinaryContents, (qpqConfig) => getProcessFileWriteBinaryContents(config)(qpqConfig));\n"]}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { ActionProcessorListResolver } from 'quidproquo-core';
|
|
2
1
|
import { FileStorageConfig } from './types';
|
|
3
|
-
export declare const getFileWriteObjectJsonActionProcessor: (config: FileStorageConfig) => ActionProcessorListResolver;
|
|
2
|
+
export declare const getFileWriteObjectJsonActionProcessor: (config: FileStorageConfig) => import("quidproquo-core").ActionProcessorListResolver;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { actionResult, actionResultError, actionResultErrorFromCaughtError,
|
|
1
|
+
import { actionResult, actionResultError, actionResultErrorFromCaughtError, askFileWriteObjectJsonBase, createActionProcessor, } from 'quidproquo-core';
|
|
2
2
|
import * as fs from 'fs/promises';
|
|
3
3
|
import { ensureParentDirectoryExists, resolveFilePath } from './utils';
|
|
4
4
|
const getProcessFileWriteObjectJson = (config) => (qpqConfig) => {
|
|
@@ -12,13 +12,11 @@ const getProcessFileWriteObjectJson = (config) => (qpqConfig) => {
|
|
|
12
12
|
}
|
|
13
13
|
catch (error) {
|
|
14
14
|
return actionResultErrorFromCaughtError(error, {
|
|
15
|
-
InvalidScopeError: (error) => actionResultError(
|
|
16
|
-
EACCES: () => actionResultError(
|
|
15
|
+
InvalidScopeError: (error) => actionResultError(askFileWriteObjectJsonBase.errorType.InvalidScope, error.message),
|
|
16
|
+
EACCES: () => actionResultError(askFileWriteObjectJsonBase.errorType.AccessDenied, `Access denied writing file: ${filepath}`), // node fs code
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
-
export const getFileWriteObjectJsonActionProcessor = (config) =>
|
|
22
|
-
[FileActionType.WriteObjectJson]: getProcessFileWriteObjectJson(config)(qpqConfig),
|
|
23
|
-
});
|
|
21
|
+
export const getFileWriteObjectJsonActionProcessor = (config) => createActionProcessor(askFileWriteObjectJsonBase, (qpqConfig) => getProcessFileWriteObjectJson(config)(qpqConfig));
|
|
24
22
|
//# sourceMappingURL=getFileWriteObjectJsonActionProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileWriteObjectJsonActionProcessor.js","sourceRoot":"","sources":["../../../../src/dynamicActionProcessor/file/getFileWriteObjectJsonActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getFileWriteObjectJsonActionProcessor.js","sourceRoot":"","sources":["../../../../src/dynamicActionProcessor/file/getFileWriteObjectJsonActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,0BAA0B,EAC1B,qBAAqB,GAItB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAGlC,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE,MAAM,6BAA6B,GACjC,CAAC,MAAyB,EAAE,EAAE,CAC9B,CAAC,SAAoB,EAAmD,EAAE;IACxE,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC5E,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACjD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBACjH,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,SAAS,CAAC,YAAY,EAAE,+BAA+B,QAAQ,EAAE,CAAC,EAAE,eAAe;aAC/I,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,MAAyB,EAAE,EAAE,CACjF,qBAAqB,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC","sourcesContent":["import {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n askFileWriteObjectJsonBase,\n createActionProcessor,\n FileActionType,\n ProcessorFor,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport * as fs from 'fs/promises';\n\nimport { FileStorageConfig } from './types';\nimport { ensureParentDirectoryExists, resolveFilePath } from './utils';\n\nconst getProcessFileWriteObjectJson =\n (config: FileStorageConfig) =>\n (qpqConfig: QPQConfig): ProcessorFor<typeof askFileWriteObjectJsonBase> => {\n return async ({ drive, filepath, data, scope }) => {\n try {\n const fullPath = resolveFilePath(config, qpqConfig, drive, filepath, scope);\n await ensureParentDirectoryExists(fullPath);\n const jsonString = JSON.stringify(data, null, 2);\n await fs.writeFile(fullPath, jsonString, 'utf8');\n return actionResult(void 0);\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InvalidScopeError: (error) => actionResultError(askFileWriteObjectJsonBase.errorType.InvalidScope, error.message),\n EACCES: () => actionResultError(askFileWriteObjectJsonBase.errorType.AccessDenied, `Access denied writing file: ${filepath}`), // node fs code\n });\n }\n };\n };\n\nexport const getFileWriteObjectJsonActionProcessor = (config: FileStorageConfig) =>\n createActionProcessor(askFileWriteObjectJsonBase, (qpqConfig) => getProcessFileWriteObjectJson(config)(qpqConfig));\n"]}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { ActionProcessorListResolver } from 'quidproquo-core';
|
|
2
1
|
import { FileStorageConfig } from './types';
|
|
3
|
-
export declare const getFileWriteTextContentsActionProcessor: (config: FileStorageConfig) => ActionProcessorListResolver;
|
|
2
|
+
export declare const getFileWriteTextContentsActionProcessor: (config: FileStorageConfig) => import("quidproquo-core").ActionProcessorListResolver;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { actionResult, actionResultError, actionResultErrorFromCaughtError,
|
|
1
|
+
import { actionResult, actionResultError, actionResultErrorFromCaughtError, askFileWriteTextContents, createActionProcessor, } from 'quidproquo-core';
|
|
2
2
|
import * as fs from 'fs/promises';
|
|
3
3
|
import { ensureParentDirectoryExists, resolveFilePath } from './utils';
|
|
4
4
|
const getProcessFileWriteTextContents = (qpqConfig, config) => {
|
|
@@ -11,13 +11,11 @@ const getProcessFileWriteTextContents = (qpqConfig, config) => {
|
|
|
11
11
|
}
|
|
12
12
|
catch (error) {
|
|
13
13
|
return actionResultErrorFromCaughtError(error, {
|
|
14
|
-
InvalidScopeError: (error) => actionResultError(
|
|
15
|
-
EACCES: () => actionResultError(
|
|
14
|
+
InvalidScopeError: (error) => actionResultError(askFileWriteTextContents.errorType.InvalidScope, error.message),
|
|
15
|
+
EACCES: () => actionResultError(askFileWriteTextContents.errorType.AccessDenied, `Access denied writing file: ${filepath}`), // node fs code
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
|
-
export const getFileWriteTextContentsActionProcessor = (config) =>
|
|
21
|
-
[FileActionType.WriteTextContents]: getProcessFileWriteTextContents(qpqConfig, config),
|
|
22
|
-
});
|
|
20
|
+
export const getFileWriteTextContentsActionProcessor = (config) => createActionProcessor(askFileWriteTextContents, (qpqConfig) => getProcessFileWriteTextContents(qpqConfig, config));
|
|
23
21
|
//# sourceMappingURL=getFileWriteTextContentsActionProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileWriteTextContentsActionProcessor.js","sourceRoot":"","sources":["../../../../src/dynamicActionProcessor/file/getFileWriteTextContentsActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getFileWriteTextContentsActionProcessor.js","sourceRoot":"","sources":["../../../../src/dynamicActionProcessor/file/getFileWriteTextContentsActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,wBAAwB,EACxB,qBAAqB,GAItB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAGlC,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE,MAAM,+BAA+B,GAAG,CAAC,SAAoB,EAAE,MAAyB,EAAiD,EAAE;IACzI,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC5E,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,gCAAgC,CAAC,KAAK,EAAE;gBAC7C,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC/G,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,SAAS,CAAC,YAAY,EAAE,+BAA+B,QAAQ,EAAE,CAAC,EAAE,eAAe;aAC7I,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,MAAyB,EAAE,EAAE,CACnF,qBAAqB,CAAC,wBAAwB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,+BAA+B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC","sourcesContent":["import {\n actionResult,\n actionResultError,\n actionResultErrorFromCaughtError,\n askFileWriteTextContents,\n createActionProcessor,\n FileActionType,\n ProcessorFor,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport * as fs from 'fs/promises';\n\nimport { FileStorageConfig } from './types';\nimport { ensureParentDirectoryExists, resolveFilePath } from './utils';\n\nconst getProcessFileWriteTextContents = (qpqConfig: QPQConfig, config: FileStorageConfig): ProcessorFor<typeof askFileWriteTextContents> => {\n return async ({ drive, filepath, data, scope }) => {\n try {\n const fullPath = resolveFilePath(config, qpqConfig, drive, filepath, scope);\n await ensureParentDirectoryExists(fullPath);\n await fs.writeFile(fullPath, data, 'utf8');\n return actionResult(void 0);\n } catch (error: unknown) {\n return actionResultErrorFromCaughtError(error, {\n InvalidScopeError: (error) => actionResultError(askFileWriteTextContents.errorType.InvalidScope, error.message),\n EACCES: () => actionResultError(askFileWriteTextContents.errorType.AccessDenied, `Access denied writing file: ${filepath}`), // node fs code\n });\n }\n };\n};\n\nexport const getFileWriteTextContentsActionProcessor = (config: FileStorageConfig) =>\n createActionProcessor(askFileWriteTextContents, (qpqConfig) => getProcessFileWriteTextContents(qpqConfig, config));\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSystemTraceStoryActionProcessor.js","sourceRoot":"","sources":["../../../src/traceStoryExecution/getSystemTraceStoryActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,iBAAiB,
|
|
1
|
+
{"version":3,"file":"getSystemTraceStoryActionProcessor.js","sourceRoot":"","sources":["../../../src/traceStoryExecution/getSystemTraceStoryActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,iBAAiB,EAIjB,aAAa,EAOb,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAS5D,qFAAqF;AACrF,wFAAwF;AACxF,yFAAyF;AACzF,yFAAyF;AACzF,MAAM,oBAAoB,GAAG,CAC3B,SAAoB,EACpB,qBAA+B,EAC/B,qBAA8C,EACV,EAAE;IACtC,OAAO,KAAK,EACV,OAAsC,EACtC,OAAqB,EACrB,gBAAqC,EACrC,MAAiB,EACjB,aAAkC,EAClC,mBAAwC,EACxC,EAAE;QACF,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAE7D,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;YACxC,OAAO,iBAAiB,CACtB,aAAa,CAAC,UAAU,EACxB,UAAU,WAAW,CAAC,WAAW,mEAAmE,CACrG,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,yCAAyC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC;QACxH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE;gBAC9D,cAAc,EAAE,CAAC,GAAG,qBAAqB,EAAE,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;gBACrE,WAAW;gBACX,cAAc,EAAE,qBAAqB,EAAE,CAAC,WAAW,CAAC,sBAAsB,EAAE,SAAS,CAAC;aACvF,CAAC,CAAC;YAEH,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,iBAAiB,CAAC,aAAa,CAAC,YAAY,EAAE,qBAAqB,WAAW,CAAC,WAAW,MAAO,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACrI,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAC7C,CAAC,wBAAkC,EAAE,EAAE,qBAA8C,EAA+B,EAAE,CACtH,KAAK,EAAE,SAAoB,EAAgC,EAAE,CAAC,CAAC;IAC7D,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC,SAAS,EAAE,qBAAqB,EAAE,qBAAqB,CAAC;CAC7G,CAAC,CAAC","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n askTraceStory,\n createActionProcessor,\n DynamicModuleLoader,\n ErrorTypeEnum,\n ProcessorFor,\n QPQConfig,\n QpqFunctionRuntime,\n QpqLogger,\n StorySession,\n StorySessionUpdater,\n SystemActionType,\n SystemTraceStoryActionPayload,\n} from 'quidproquo-core';\n\nimport { traceStoryExecution } from './traceStoryExecution';\n\n// Resolves extra own-code markers (see resolveSourceMaps.filterOwnCodeLocations) for the\n// story being traced. Opt-in: lambda's federated remotes stay on the plain \"not\n// node_modules\" heuristic that already works for them; hosts whose bundle layout defeats\n// that heuristic (the dev server bundles every hosted service plus the whole framework\n// into one script) pass a resolver to narrow onlyOwnCode to the traced service.\nexport type OwnCodeMarkersResolver = (qpqFunctionRuntimeInfo: QpqFunctionRuntime | undefined, qpqConfig: QPQConfig) => string[] | undefined;\n\n// Shared System::TraceStory processor for node runtimes (lambda and the dev server).\n// Loads the recorded story's real code through the runtime's dynamicModuleLoader (which\n// federates on lambda), then replays it under the tracer. defaultScriptPatterns lets the\n// host add environment-specific scripts to trace (e.g. the lambda federated code cache).\nconst getProcessTraceStory = (\n qpqConfig: QPQConfig,\n defaultScriptPatterns: string[],\n resolveOwnCodeMarkers?: OwnCodeMarkersResolver,\n): ProcessorFor<typeof askTraceStory> => {\n return async (\n payload: SystemTraceStoryActionPayload,\n session: StorySession,\n actionProcessors: ActionProcessorList,\n logger: QpqLogger,\n updateSession: StorySessionUpdater,\n dynamicModuleLoader: DynamicModuleLoader,\n ) => {\n const { storyResult, scriptPatterns, onlyOwnCode } = payload;\n\n if (!storyResult.qpqFunctionRuntimeInfo) {\n return actionResultError(\n ErrorTypeEnum.BadRequest,\n `Story [${storyResult.correlation}] has no qpqFunctionRuntimeInfo - cannot locate its code to trace`,\n );\n }\n\n const story = await dynamicModuleLoader(storyResult.qpqFunctionRuntimeInfo);\n if (!story) {\n return actionResultError(ErrorTypeEnum.NotFound, `Unable to dynamically load story for [${storyResult.correlation}]`);\n }\n\n try {\n const { trace } = await traceStoryExecution(storyResult, story, {\n scriptPatterns: [...defaultScriptPatterns, ...(scriptPatterns || [])],\n onlyOwnCode,\n ownCodeMarkers: resolveOwnCodeMarkers?.(storyResult.qpqFunctionRuntimeInfo, qpqConfig),\n });\n\n return actionResult(trace);\n } catch (error) {\n return actionResultError(ErrorTypeEnum.GenericError, `Trace failed for [${storyResult.correlation}]: ${(error as Error).message}`);\n }\n };\n};\n\nexport const getSystemTraceStoryActionProcessor =\n (defaultScriptPatterns: string[] = [], resolveOwnCodeMarkers?: OwnCodeMarkersResolver): ActionProcessorListResolver =>\n async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [SystemActionType.TraceStory]: getProcessTraceStory(qpqConfig, defaultScriptPatterns, resolveOwnCodeMarkers),\n });\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quidproquo-actionprocessor-node",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.17",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./lib/commonjs/index.js",
|
|
6
6
|
"module": "./lib/esm/index.js",
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"lib/**/*"
|
|
11
11
|
],
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public"
|
|
14
|
+
},
|
|
12
15
|
"scripts": {
|
|
13
16
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
14
17
|
"clean": "npx rimraf lib && npx rimraf node_modules",
|
|
@@ -22,27 +25,26 @@
|
|
|
22
25
|
},
|
|
23
26
|
"repository": {
|
|
24
27
|
"type": "git",
|
|
25
|
-
"url": "git+https://github.com/
|
|
28
|
+
"url": "git+https://github.com/qpqjs/quidproquo.git"
|
|
26
29
|
},
|
|
27
30
|
"keywords": [],
|
|
28
31
|
"author": "",
|
|
29
32
|
"license": "MIT",
|
|
30
33
|
"bugs": {
|
|
31
|
-
"url": "https://github.com/
|
|
34
|
+
"url": "https://github.com/qpqjs/quidproquo/issues"
|
|
32
35
|
},
|
|
33
|
-
"homepage": "https://github.com/
|
|
36
|
+
"homepage": "https://github.com/qpqjs/quidproquo#readme",
|
|
34
37
|
"dependencies": {
|
|
35
|
-
"@anthropic-ai/sdk": "^0.19.1",
|
|
36
38
|
"@jridgewell/trace-mapping": "^0.3.25",
|
|
37
|
-
"quidproquo-actionprocessor-js": "0.1.
|
|
38
|
-
"quidproquo-core": "0.1.
|
|
39
|
-
"quidproquo-webserver": "0.1.
|
|
39
|
+
"quidproquo-actionprocessor-js": "0.1.17",
|
|
40
|
+
"quidproquo-core": "0.1.17",
|
|
41
|
+
"quidproquo-webserver": "0.1.17",
|
|
40
42
|
"uuidv7": "^1.0.1"
|
|
41
43
|
},
|
|
42
44
|
"devDependencies": {
|
|
43
45
|
"@jridgewell/gen-mapping": "^0.3.13",
|
|
44
46
|
"@types/node": "^22.13.13",
|
|
45
|
-
"quidproquo-tsconfig": "0.1.
|
|
47
|
+
"quidproquo-tsconfig": "0.1.17",
|
|
46
48
|
"typescript": "^5.8.2"
|
|
47
49
|
}
|
|
48
50
|
}
|