@milaboratories/pl-middle-layer 1.64.41 → 1.64.42

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.
Files changed (55) hide show
  1. package/dist/index.cjs +16 -0
  2. package/dist/index.d.ts +3 -1
  3. package/dist/index.js +3 -1
  4. package/dist/middle_layer/frontend_path.cjs +1 -0
  5. package/dist/middle_layer/frontend_path.cjs.map +1 -1
  6. package/dist/middle_layer/frontend_path.js +1 -0
  7. package/dist/middle_layer/frontend_path.js.map +1 -1
  8. package/dist/middle_layer/index.d.ts +2 -1
  9. package/dist/middle_layer/middle_layer.cjs +443 -16
  10. package/dist/middle_layer/middle_layer.cjs.map +1 -1
  11. package/dist/middle_layer/middle_layer.d.ts +153 -12
  12. package/dist/middle_layer/middle_layer.d.ts.map +1 -1
  13. package/dist/middle_layer/middle_layer.js +445 -18
  14. package/dist/middle_layer/middle_layer.js.map +1 -1
  15. package/dist/middle_layer/ops.cjs +2 -1
  16. package/dist/middle_layer/ops.cjs.map +1 -1
  17. package/dist/middle_layer/ops.d.ts +5 -1
  18. package/dist/middle_layer/ops.d.ts.map +1 -1
  19. package/dist/middle_layer/ops.js +2 -1
  20. package/dist/middle_layer/ops.js.map +1 -1
  21. package/dist/middle_layer/project.d.ts +4 -4
  22. package/dist/middle_layer/project.d.ts.map +1 -1
  23. package/dist/middle_layer/sharing_list.cjs +203 -0
  24. package/dist/middle_layer/sharing_list.cjs.map +1 -0
  25. package/dist/middle_layer/sharing_list.d.ts +41 -0
  26. package/dist/middle_layer/sharing_list.d.ts.map +1 -0
  27. package/dist/middle_layer/sharing_list.js +198 -0
  28. package/dist/middle_layer/sharing_list.js.map +1 -0
  29. package/dist/model/index.cjs +29 -0
  30. package/dist/model/index.d.ts +2 -1
  31. package/dist/model/index.js +4 -0
  32. package/dist/model/project_model.d.ts +3 -3
  33. package/dist/model/project_model.d.ts.map +1 -1
  34. package/dist/model/sharing_model.cjs +81 -0
  35. package/dist/model/sharing_model.cjs.map +1 -0
  36. package/dist/model/sharing_model.d.ts +112 -0
  37. package/dist/model/sharing_model.d.ts.map +1 -0
  38. package/dist/model/sharing_model.js +68 -0
  39. package/dist/model/sharing_model.js.map +1 -0
  40. package/dist/mutator/block-pack/frontend.cjs +1 -0
  41. package/dist/mutator/block-pack/frontend.cjs.map +1 -1
  42. package/dist/mutator/block-pack/frontend.js +1 -0
  43. package/dist/mutator/block-pack/frontend.js.map +1 -1
  44. package/dist/mutator/sharing.cjs +138 -0
  45. package/dist/mutator/sharing.cjs.map +1 -0
  46. package/dist/mutator/sharing.js +130 -0
  47. package/dist/mutator/sharing.js.map +1 -0
  48. package/package.json +14 -14
  49. package/src/middle_layer/index.ts +1 -0
  50. package/src/middle_layer/middle_layer.ts +644 -22
  51. package/src/middle_layer/ops.ts +7 -0
  52. package/src/middle_layer/sharing_list.ts +343 -0
  53. package/src/model/index.ts +2 -0
  54. package/src/model/sharing_model.ts +150 -0
  55. package/src/mutator/sharing.ts +216 -0
package/dist/index.cjs CHANGED
@@ -8,6 +8,8 @@ const require_project_list = require("./middle_layer/project_list.cjs");
8
8
  const require_render_template = require("./mutator/template/render_template.cjs");
9
9
  const require_template_loading = require("./mutator/template/template_loading.cjs");
10
10
  const require_block_pack_spec = require("./model/block_pack_spec.cjs");
11
+ const require_sharing_model = require("./model/sharing_model.cjs");
12
+ require("./model/index.cjs");
11
13
  const require_project = require("./mutator/project.cjs");
12
14
  const require_data = require("./pool/data.cjs");
13
15
  const require_p_object_collection = require("./pool/p_object_collection.cjs");
@@ -20,6 +22,7 @@ require("./middle_layer/index.cjs");
20
22
  const require_network_check = require("./network_check/network_check.cjs");
21
23
  exports.ACCESS_COUNT_KEY = require_template_cache.ACCESS_COUNT_KEY;
22
24
  exports.ACCESS_KEY_PREFIX = require_template_cache.ACCESS_KEY_PREFIX;
25
+ exports.AcceptanceFieldPrefix = require_sharing_model.AcceptanceFieldPrefix;
23
26
  exports.BlockArgsAuthorKeyPrefix = require_project_model.BlockArgsAuthorKeyPrefix;
24
27
  exports.BlockPackRegistry = require_registry.BlockPackRegistry;
25
28
  exports.CentralBlockRegistry = require_well_known_registries.CentralBlockRegistry;
@@ -43,6 +46,11 @@ exports.ProjectStructureKey = require_project_model.ProjectStructureKey;
43
46
  exports.ProjectsField = require_project_list.ProjectsField;
44
47
  exports.SchemaVersionCurrent = require_project_model.SchemaVersionCurrent;
45
48
  exports.SchemaVersionKey = require_project_model.SchemaVersionKey;
49
+ exports.SharedEnvelopeResourceType = require_sharing_model.SharedEnvelopeResourceType;
50
+ exports.SharingOutboxField = require_sharing_model.SharingOutboxField;
51
+ exports.SharingOutboxResourceType = require_sharing_model.SharingOutboxResourceType;
52
+ exports.SharingStateField = require_sharing_model.SharingStateField;
53
+ exports.SharingStateResourceType = require_sharing_model.SharingStateResourceType;
46
54
  exports.TemplateCacheFieldName = require_template_cache.TemplateCacheFieldName;
47
55
  exports.TemplateCacheType = require_template_cache.TemplateCacheType;
48
56
  exports.TengoTemplateGet = require_template_loading.TengoTemplateGet;
@@ -56,9 +64,15 @@ exports.TengoTemplatePackConvertTemplatePack = require_template_loading.TengoTem
56
64
  exports.V1CentralDevSnapshotRegistry = require_well_known_registries.V1CentralDevSnapshotRegistry;
57
65
  exports.V1CentralRegistry = require_well_known_registries.V1CentralRegistry;
58
66
  exports.V2RegistryProvider = require_registry_v2_provider.V2RegistryProvider;
67
+ exports.acceptanceField = require_sharing_model.acceptanceField;
68
+ exports.acceptanceFieldLogin = require_sharing_model.acceptanceFieldLogin;
69
+ exports.asShareId = require_sharing_model.asShareId;
59
70
  exports.cacheBlockPackTemplate = require_template_cache.cacheBlockPackTemplate;
71
+ exports.canGrantToEveryone = require_sharing_model.canGrantToEveryone;
60
72
  exports.checkNetwork = require_network_check.checkNetwork;
61
73
  exports.createRenderTemplate = require_render_template.createRenderTemplate;
74
+ exports.decisionField = require_sharing_model.decisionField;
75
+ exports.decodeEnvelopeData = require_sharing_model.decodeEnvelopeData;
62
76
  exports.deriveGlobalPObjectId = require_data.deriveGlobalPObjectId;
63
77
  exports.deriveLocalPObjectId = require_data.deriveLocalPObjectId;
64
78
  exports.dropTemplateCache = require_template_cache.dropTemplateCache;
@@ -71,8 +85,10 @@ exports.getOrCreateTemplateCache = require_template_cache.getOrCreateTemplateCac
71
85
  exports.initDriverKit = require_driver_kit.initDriverKit;
72
86
  exports.initNetworkCheck = require_network_check.initNetworkCheck;
73
87
  exports.invalidateTemplateCacheId = require_template_cache.invalidateTemplateCacheId;
88
+ exports.isAcceptanceField = require_sharing_model.isAcceptanceField;
74
89
  exports.loadTemplate = require_template_loading.loadTemplate;
75
90
  exports.loadTemplateCached = require_template_cache.loadTemplateCached;
91
+ exports.newShareId = require_sharing_model.newShareId;
76
92
  exports.parseFinalPObjectCollection = require_p_object_collection.parseFinalPObjectCollection;
77
93
  exports.prepareTemplateSpec = require_template_loading.prepareTemplateSpec;
78
94
  exports.runGc = require_template_cache.runGc;
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ import { V2RegistryProvider } from "./block_registry/registry-v2-provider.js";
2
2
  import { BlockPackRegistry, getDevV1PacketMtime, getDevV2PacketMtime, getFromPackV2Mtime } from "./block_registry/registry.js";
3
3
  import { CentralBlockRegistry, V1CentralDevSnapshotRegistry, V1CentralRegistry } from "./block_registry/well_known_registries.js";
4
4
  import { BlockArgsAuthorKeyPrefix, ProjectCreatedTimestamp, ProjectField, ProjectId, ProjectLastModifiedTimestamp, ProjectListEntry, ProjectMetaKey, ProjectResourceType, ProjectStructureAuthorKey, ProjectStructureKey, SchemaVersionCurrent, SchemaVersionKey } from "./model/project_model.js";
5
+ import { AcceptanceFieldPrefix, EnvelopeAcceptance, EnvelopeData, EnvelopeMode, EnvelopeProject, ProjectChangeAction, ProjectFieldUuid, ShareId, ShareProjectsOptions, SharedEnvelopeResourceType, SharingDecision, SharingOutboxField, SharingOutboxResourceType, SharingStateField, SharingStateResourceType, acceptanceField, acceptanceFieldLogin, asShareId, canGrantToEveryone, decisionField, decodeEnvelopeData, isAcceptanceField, newShareId } from "./model/sharing_model.js";
6
+ import { OutgoingShare, PendingShare } from "./middle_layer/sharing_list.js";
5
7
  import { CachedTemplate, ExplicitTemplate, PreparedTemplate, TemplateFromFile, TemplateFromRegistry, TemplateSpecAny, TemplateSpecPrepared } from "./model/template_spec.js";
6
8
  import { BlockPackExplicit, BlockPackSpecAny, BlockPackSpecPrepared, FrontendFromFolder, FrontendFromFolderData, FrontendFromFolderResourceType, FrontendFromLocalTgz, FrontendFromLocalTgzData, FrontendFromLocalTgzResourceType, FrontendFromUrl, FrontendFromUrlData, FrontendFromUrlResourceType, FrontendSpec } from "./model/block_pack_spec.js";
7
9
  import { Project } from "./middle_layer/project.js";
@@ -22,4 +24,4 @@ export * from "@platforma-sdk/model";
22
24
  export * from "@milaboratories/pl-model-middle-layer";
23
25
  export * from "@milaboratories/pl-deployments";
24
26
  export * from "@milaboratories/pl-client";
25
- export { ACCESS_COUNT_KEY, ACCESS_KEY_PREFIX, BlockArgsAuthorKeyPrefix, BlockPackExplicit, BlockPackRegistry, BlockPackSpecAny, BlockPackSpecPrepared, CachedTemplate, CentralBlockRegistry, CheckNetworkOpts, DefaultDriverKitOpsPaths, DefaultDriverKitOpsSettings, DefaultMiddleLayerOpsPaths, DefaultMiddleLayerOpsSettings, DriverKitOps, DriverKitOpsConstructor, DriverKitOpsPaths, DriverKitOpsSettings, ExplicitTemplate, type FieldType, FrontendFromFolder, FrontendFromFolderData, FrontendFromFolderResourceType, FrontendFromLocalTgz, FrontendFromLocalTgzData, FrontendFromLocalTgzResourceType, FrontendFromUrl, FrontendFromUrlData, FrontendFromUrlResourceType, FrontendSpec, GC_ACCESS_THRESHOLD, GC_MAX_ENTRIES, type InternalLsDriver, MiddleLayer, MiddleLayerDebugOptions, MiddleLayerDriverKit, MiddleLayerOps, MiddleLayerOpsConstructor, MiddleLayerOpsPaths, MiddleLayerOpsSettings, PreparedTemplate, Project, ProjectCreatedTimestamp, type ProjectField, type ProjectId, ProjectLastModifiedTimestamp, type ProjectListEntry, ProjectMetaKey, ProjectResourceType, ProjectStructureAuthorKey, ProjectStructureKey, ProjectsField, type ResourceType, SchemaVersionCurrent, SchemaVersionKey, TemplateCacheFieldName, TemplateCacheStat, TemplateCacheType, TemplateFromFile, TemplateFromRegistry, TemplateSpecAny, TemplateSpecPrepared, TengoTemplateGet, TengoTemplateGetRegistry, TengoTemplateGetTemplate, TengoTemplateGetTemplateURI, TengoTemplatePack, TengoTemplatePackConvert, TengoTemplatePackConvertTemplate, TengoTemplatePackConvertTemplatePack, V1CentralDevSnapshotRegistry, V1CentralRegistry, V2RegistryProvider, cacheBlockPackTemplate, checkNetwork, createRenderTemplate, deriveGlobalPObjectId, deriveLocalPObjectId, dropTemplateCache, duplicateProject, flattenTemplateTree, getDevV1PacketMtime, getDevV2PacketMtime, getFromPackV2Mtime, getOrCreateTemplateCache, initDriverKit, initNetworkCheck, invalidateTemplateCacheId, loadTemplate, loadTemplateCached, parseFinalPObjectCollection, prepareTemplateSpec, runGc };
27
+ export { ACCESS_COUNT_KEY, ACCESS_KEY_PREFIX, AcceptanceFieldPrefix, BlockArgsAuthorKeyPrefix, BlockPackExplicit, BlockPackRegistry, BlockPackSpecAny, BlockPackSpecPrepared, CachedTemplate, CentralBlockRegistry, CheckNetworkOpts, DefaultDriverKitOpsPaths, DefaultDriverKitOpsSettings, DefaultMiddleLayerOpsPaths, DefaultMiddleLayerOpsSettings, DriverKitOps, DriverKitOpsConstructor, DriverKitOpsPaths, DriverKitOpsSettings, EnvelopeAcceptance, EnvelopeData, EnvelopeMode, EnvelopeProject, ExplicitTemplate, type FieldType, FrontendFromFolder, FrontendFromFolderData, FrontendFromFolderResourceType, FrontendFromLocalTgz, FrontendFromLocalTgzData, FrontendFromLocalTgzResourceType, FrontendFromUrl, FrontendFromUrlData, FrontendFromUrlResourceType, FrontendSpec, GC_ACCESS_THRESHOLD, GC_MAX_ENTRIES, type InternalLsDriver, MiddleLayer, MiddleLayerDebugOptions, MiddleLayerDriverKit, MiddleLayerOps, MiddleLayerOpsConstructor, MiddleLayerOpsPaths, MiddleLayerOpsSettings, type OutgoingShare, type PendingShare, PreparedTemplate, Project, ProjectChangeAction, ProjectCreatedTimestamp, type ProjectField, ProjectFieldUuid, type ProjectId, ProjectLastModifiedTimestamp, type ProjectListEntry, ProjectMetaKey, ProjectResourceType, ProjectStructureAuthorKey, ProjectStructureKey, ProjectsField, type ResourceType, SchemaVersionCurrent, SchemaVersionKey, ShareId, ShareProjectsOptions, SharedEnvelopeResourceType, SharingDecision, SharingOutboxField, SharingOutboxResourceType, SharingStateField, SharingStateResourceType, TemplateCacheFieldName, TemplateCacheStat, TemplateCacheType, TemplateFromFile, TemplateFromRegistry, TemplateSpecAny, TemplateSpecPrepared, TengoTemplateGet, TengoTemplateGetRegistry, TengoTemplateGetTemplate, TengoTemplateGetTemplateURI, TengoTemplatePack, TengoTemplatePackConvert, TengoTemplatePackConvertTemplate, TengoTemplatePackConvertTemplatePack, V1CentralDevSnapshotRegistry, V1CentralRegistry, V2RegistryProvider, acceptanceField, acceptanceFieldLogin, asShareId, cacheBlockPackTemplate, canGrantToEveryone, checkNetwork, createRenderTemplate, decisionField, decodeEnvelopeData, deriveGlobalPObjectId, deriveLocalPObjectId, dropTemplateCache, duplicateProject, flattenTemplateTree, getDevV1PacketMtime, getDevV2PacketMtime, getFromPackV2Mtime, getOrCreateTemplateCache, initDriverKit, initNetworkCheck, invalidateTemplateCacheId, isAcceptanceField, loadTemplate, loadTemplateCached, newShareId, parseFinalPObjectCollection, prepareTemplateSpec, runGc };
package/dist/index.js CHANGED
@@ -7,6 +7,8 @@ import { ProjectsField } from "./middle_layer/project_list.js";
7
7
  import { createRenderTemplate } from "./mutator/template/render_template.js";
8
8
  import { TengoTemplateGet, TengoTemplateGetRegistry, TengoTemplateGetTemplate, TengoTemplateGetTemplateURI, TengoTemplatePack, TengoTemplatePackConvert, TengoTemplatePackConvertTemplate, TengoTemplatePackConvertTemplatePack, loadTemplate, prepareTemplateSpec } from "./mutator/template/template_loading.js";
9
9
  import { FrontendFromFolderResourceType, FrontendFromLocalTgzResourceType, FrontendFromUrlResourceType } from "./model/block_pack_spec.js";
10
+ import { AcceptanceFieldPrefix, SharedEnvelopeResourceType, SharingOutboxField, SharingOutboxResourceType, SharingStateField, SharingStateResourceType, acceptanceField, acceptanceFieldLogin, asShareId, canGrantToEveryone, decisionField, decodeEnvelopeData, isAcceptanceField, newShareId } from "./model/sharing_model.js";
11
+ import "./model/index.js";
10
12
  import { duplicateProject } from "./mutator/project.js";
11
13
  import { deriveGlobalPObjectId, deriveLocalPObjectId } from "./pool/data.js";
12
14
  import { parseFinalPObjectCollection } from "./pool/p_object_collection.js";
@@ -21,4 +23,4 @@ export * from "@platforma-sdk/model";
21
23
  export * from "@milaboratories/pl-model-middle-layer";
22
24
  export * from "@milaboratories/pl-deployments";
23
25
  export * from "@milaboratories/pl-client";
24
- export { ACCESS_COUNT_KEY, ACCESS_KEY_PREFIX, BlockArgsAuthorKeyPrefix, BlockPackRegistry, CentralBlockRegistry, DefaultDriverKitOpsPaths, DefaultDriverKitOpsSettings, DefaultMiddleLayerOpsPaths, DefaultMiddleLayerOpsSettings, FrontendFromFolderResourceType, FrontendFromLocalTgzResourceType, FrontendFromUrlResourceType, GC_ACCESS_THRESHOLD, GC_MAX_ENTRIES, MiddleLayer, Project, ProjectCreatedTimestamp, ProjectLastModifiedTimestamp, ProjectMetaKey, ProjectResourceType, ProjectStructureAuthorKey, ProjectStructureKey, ProjectsField, SchemaVersionCurrent, SchemaVersionKey, TemplateCacheFieldName, TemplateCacheType, TengoTemplateGet, TengoTemplateGetRegistry, TengoTemplateGetTemplate, TengoTemplateGetTemplateURI, TengoTemplatePack, TengoTemplatePackConvert, TengoTemplatePackConvertTemplate, TengoTemplatePackConvertTemplatePack, V1CentralDevSnapshotRegistry, V1CentralRegistry, V2RegistryProvider, cacheBlockPackTemplate, checkNetwork, createRenderTemplate, deriveGlobalPObjectId, deriveLocalPObjectId, dropTemplateCache, duplicateProject, flattenTemplateTree, getDevV1PacketMtime, getDevV2PacketMtime, getFromPackV2Mtime, getOrCreateTemplateCache, initDriverKit, initNetworkCheck, invalidateTemplateCacheId, loadTemplate, loadTemplateCached, parseFinalPObjectCollection, prepareTemplateSpec, runGc };
26
+ export { ACCESS_COUNT_KEY, ACCESS_KEY_PREFIX, AcceptanceFieldPrefix, BlockArgsAuthorKeyPrefix, BlockPackRegistry, CentralBlockRegistry, DefaultDriverKitOpsPaths, DefaultDriverKitOpsSettings, DefaultMiddleLayerOpsPaths, DefaultMiddleLayerOpsSettings, FrontendFromFolderResourceType, FrontendFromLocalTgzResourceType, FrontendFromUrlResourceType, GC_ACCESS_THRESHOLD, GC_MAX_ENTRIES, MiddleLayer, Project, ProjectCreatedTimestamp, ProjectLastModifiedTimestamp, ProjectMetaKey, ProjectResourceType, ProjectStructureAuthorKey, ProjectStructureKey, ProjectsField, SchemaVersionCurrent, SchemaVersionKey, SharedEnvelopeResourceType, SharingOutboxField, SharingOutboxResourceType, SharingStateField, SharingStateResourceType, TemplateCacheFieldName, TemplateCacheType, TengoTemplateGet, TengoTemplateGetRegistry, TengoTemplateGetTemplate, TengoTemplateGetTemplateURI, TengoTemplatePack, TengoTemplatePackConvert, TengoTemplatePackConvertTemplate, TengoTemplatePackConvertTemplatePack, V1CentralDevSnapshotRegistry, V1CentralRegistry, V2RegistryProvider, acceptanceField, acceptanceFieldLogin, asShareId, cacheBlockPackTemplate, canGrantToEveryone, checkNetwork, createRenderTemplate, decisionField, decodeEnvelopeData, deriveGlobalPObjectId, deriveLocalPObjectId, dropTemplateCache, duplicateProject, flattenTemplateTree, getDevV1PacketMtime, getDevV2PacketMtime, getFromPackV2Mtime, getOrCreateTemplateCache, initDriverKit, initNetworkCheck, invalidateTemplateCacheId, isAcceptanceField, loadTemplate, loadTemplateCached, newShareId, parseFinalPObjectCollection, prepareTemplateSpec, runGc };
@@ -1,5 +1,6 @@
1
1
  const require_project_model = require("../model/project_model.cjs");
2
2
  const require_block_pack_spec = require("../model/block_pack_spec.cjs");
3
+ require("../model/index.cjs");
3
4
  const require_block_pack = require("../mutator/block-pack/block_pack.cjs");
4
5
  const require_util = require("./util.cjs");
5
6
  let _milaboratories_pl_client = require("@milaboratories/pl-client");
@@ -1 +1 @@
1
- {"version":3,"file":"frontend_path.cjs","names":["FrontendFromUrlResourceType","FrontendFromFolderResourceType","FrontendFromLocalTgzResourceType","Computable","getBlockPackInfo","projectFieldName","Pl","BlockPackFrontendField"],"sources":["../../src/middle_layer/frontend_path.ts"],"sourcesContent":["import type { PlTreeEntry, PlTreeEntryAccessor } from \"@milaboratories/pl-tree\";\nimport type { MiddleLayerEnvironment } from \"./middle_layer\";\nimport type { ComputableStableDefined } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport { Pl, resourceTypesEqual } from \"@milaboratories/pl-client\";\nimport type {\n FrontendFromFolderData,\n FrontendFromLocalTgzData,\n FrontendFromUrlData,\n} from \"../model\";\nimport {\n FrontendFromFolderResourceType,\n FrontendFromLocalTgzResourceType,\n FrontendFromUrlResourceType,\n} from \"../model\";\nimport type { UrlResult } from \"@milaboratories/pl-drivers\";\nimport { projectFieldName } from \"../model/project_model\";\nimport { BlockPackFrontendField } from \"../mutator/block-pack/block_pack\";\nimport { getBlockPackInfo } from \"./util\";\nimport type { FrontendData } from \"../model/frontend\";\n\nfunction kernel(\n frontendRes: PlTreeEntryAccessor,\n env: MiddleLayerEnvironment,\n): undefined | string | ComputableStableDefined<UrlResult> {\n const node = frontendRes.node();\n if (resourceTypesEqual(node.resourceType, FrontendFromUrlResourceType)) {\n const data = node.getDataAsJson<FrontendFromUrlData>();\n if (data === undefined) throw new Error(`No resource data.`);\n return env.frontendDownloadDriver.getUrl(new URL(data.url)).withStableType();\n } else if (resourceTypesEqual(node.resourceType, FrontendFromFolderResourceType)) {\n const data = node.getDataAsJson<FrontendFromFolderData>();\n if (data === undefined) throw new Error(`No resource data.`);\n env.signer.verify(\n data.path,\n data.signature,\n `Frontend path signature mismatch for: ${data.path}`,\n );\n return data.path;\n } else if (resourceTypesEqual(node.resourceType, FrontendFromLocalTgzResourceType)) {\n const data = node.getDataAsJson<FrontendFromLocalTgzData>();\n if (data === undefined) throw new Error(`No resource data.`);\n env.signer.verify(\n `${data.path}:${data.mtime}`,\n data.signature,\n `Frontend path signature mismatch for: ${data.path}`,\n );\n // Lazily unpack the local ui.tgz through the download driver, so it\n // inherits the driver's space recycling + usage-tracking (same as the\n // registry url path), instead of serving an eagerly-unpacked folder.\n return env.frontendDownloadDriver.getLocalTgz(data.path, data.mtime).withStableType();\n } else {\n throw new Error(`Unsupported resource type: ${JSON.stringify(node.resourceType)}`);\n }\n}\n\nfunction frontendUrlComputable(\n entry: PlTreeEntry | undefined,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<string> | undefined {\n if (entry === undefined) return undefined;\n return Computable.make(\n (c) => {\n return kernel(c.accessor(entry), env);\n },\n {\n postprocessValue: (v) => {\n if (v === undefined) return undefined;\n if (typeof v === \"string\") return v;\n if (v.error !== undefined) throw new Error(v.error);\n return v.url;\n },\n },\n ).withStableType();\n}\n\nexport function frontendData(\n projectEntry: PlTreeEntry,\n id: string,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<FrontendData> {\n return Computable.make(\n (ctx) => {\n const prj = ctx.accessor(projectEntry).node();\n const bp = getBlockPackInfo(prj, id);\n const frontendEntry = prj\n .traverse(\n {\n field: projectFieldName(id, \"blockPack\"),\n assertFieldType: \"Dynamic\",\n },\n { field: Pl.HolderRefField, assertFieldType: \"Input\", errorIfFieldNotFound: true },\n { field: BlockPackFrontendField, assertFieldType: \"Input\" },\n )\n ?.persist();\n return {\n url: frontendUrlComputable(frontendEntry, env),\n sdkVersion: bp?.cfg.sdkVersion,\n };\n },\n { mode: \"StableOnlyLive\" },\n ) as ComputableStableDefined<FrontendData>;\n}\n"],"mappings":";;;;;;;AAqBA,SAAS,OACP,aACA,KACyD;CACzD,MAAM,OAAO,YAAY,KAAK;CAC9B,KAAA,GAAA,0BAAA,mBAAA,CAAuB,KAAK,cAAcA,wBAAAA,2BAA2B,GAAG;EACtE,MAAM,OAAO,KAAK,cAAmC;EACrD,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,OAAO,IAAI,uBAAuB,OAAO,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe;CAC7E,OAAO,KAAA,GAAA,0BAAA,mBAAA,CAAuB,KAAK,cAAcC,wBAAAA,8BAA8B,GAAG;EAChF,MAAM,OAAO,KAAK,cAAsC;EACxD,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,IAAI,OAAO,OACT,KAAK,MACL,KAAK,WACL,yCAAyC,KAAK,MAChD;EACA,OAAO,KAAK;CACd,OAAO,KAAA,GAAA,0BAAA,mBAAA,CAAuB,KAAK,cAAcC,wBAAAA,gCAAgC,GAAG;EAClF,MAAM,OAAO,KAAK,cAAwC;EAC1D,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,IAAI,OAAO,OACT,GAAG,KAAK,KAAK,GAAG,KAAK,SACrB,KAAK,WACL,yCAAyC,KAAK,MAChD;EAIA,OAAO,IAAI,uBAAuB,YAAY,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,eAAe;CACtF,OACE,MAAM,IAAI,MAAM,8BAA8B,KAAK,UAAU,KAAK,YAAY,GAAG;AAErF;AAEA,SAAS,sBACP,OACA,KAC6C;CAC7C,IAAI,UAAU,KAAA,GAAW,OAAO,KAAA;CAChC,OAAOC,2BAAAA,WAAW,MACf,MAAM;EACL,OAAO,OAAO,EAAE,SAAS,KAAK,GAAG,GAAG;CACtC,GACA,EACE,mBAAmB,MAAM;EACvB,IAAI,MAAM,KAAA,GAAW,OAAO,KAAA;EAC5B,IAAI,OAAO,MAAM,UAAU,OAAO;EAClC,IAAI,EAAE,UAAU,KAAA,GAAW,MAAM,IAAI,MAAM,EAAE,KAAK;EAClD,OAAO,EAAE;CACX,EACF,CACF,CAAC,CAAC,eAAe;AACnB;AAEA,SAAgB,aACd,cACA,IACA,KACuC;CACvC,OAAOA,2BAAAA,WAAW,MACf,QAAQ;EACP,MAAM,MAAM,IAAI,SAAS,YAAY,CAAC,CAAC,KAAK;EAC5C,MAAM,KAAKC,aAAAA,iBAAiB,KAAK,EAAE;EACnC,MAAM,gBAAgB,IACnB,SACC;GACE,OAAOC,sBAAAA,iBAAiB,IAAI,WAAW;GACvC,iBAAiB;EACnB,GACA;GAAE,OAAOC,0BAAAA,GAAG;GAAgB,iBAAiB;GAAS,sBAAsB;EAAK,GACjF;GAAE,OAAOC,mBAAAA;GAAwB,iBAAiB;EAAQ,CAC5D,CAAC,EACC,QAAQ;EACZ,OAAO;GACL,KAAK,sBAAsB,eAAe,GAAG;GAC7C,YAAY,IAAI,IAAI;EACtB;CACF,GACA,EAAE,MAAM,iBAAiB,CAC3B;AACF"}
1
+ {"version":3,"file":"frontend_path.cjs","names":["FrontendFromUrlResourceType","FrontendFromFolderResourceType","FrontendFromLocalTgzResourceType","Computable","getBlockPackInfo","projectFieldName","Pl","BlockPackFrontendField"],"sources":["../../src/middle_layer/frontend_path.ts"],"sourcesContent":["import type { PlTreeEntry, PlTreeEntryAccessor } from \"@milaboratories/pl-tree\";\nimport type { MiddleLayerEnvironment } from \"./middle_layer\";\nimport type { ComputableStableDefined } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport { Pl, resourceTypesEqual } from \"@milaboratories/pl-client\";\nimport type {\n FrontendFromFolderData,\n FrontendFromLocalTgzData,\n FrontendFromUrlData,\n} from \"../model\";\nimport {\n FrontendFromFolderResourceType,\n FrontendFromLocalTgzResourceType,\n FrontendFromUrlResourceType,\n} from \"../model\";\nimport type { UrlResult } from \"@milaboratories/pl-drivers\";\nimport { projectFieldName } from \"../model/project_model\";\nimport { BlockPackFrontendField } from \"../mutator/block-pack/block_pack\";\nimport { getBlockPackInfo } from \"./util\";\nimport type { FrontendData } from \"../model/frontend\";\n\nfunction kernel(\n frontendRes: PlTreeEntryAccessor,\n env: MiddleLayerEnvironment,\n): undefined | string | ComputableStableDefined<UrlResult> {\n const node = frontendRes.node();\n if (resourceTypesEqual(node.resourceType, FrontendFromUrlResourceType)) {\n const data = node.getDataAsJson<FrontendFromUrlData>();\n if (data === undefined) throw new Error(`No resource data.`);\n return env.frontendDownloadDriver.getUrl(new URL(data.url)).withStableType();\n } else if (resourceTypesEqual(node.resourceType, FrontendFromFolderResourceType)) {\n const data = node.getDataAsJson<FrontendFromFolderData>();\n if (data === undefined) throw new Error(`No resource data.`);\n env.signer.verify(\n data.path,\n data.signature,\n `Frontend path signature mismatch for: ${data.path}`,\n );\n return data.path;\n } else if (resourceTypesEqual(node.resourceType, FrontendFromLocalTgzResourceType)) {\n const data = node.getDataAsJson<FrontendFromLocalTgzData>();\n if (data === undefined) throw new Error(`No resource data.`);\n env.signer.verify(\n `${data.path}:${data.mtime}`,\n data.signature,\n `Frontend path signature mismatch for: ${data.path}`,\n );\n // Lazily unpack the local ui.tgz through the download driver, so it\n // inherits the driver's space recycling + usage-tracking (same as the\n // registry url path), instead of serving an eagerly-unpacked folder.\n return env.frontendDownloadDriver.getLocalTgz(data.path, data.mtime).withStableType();\n } else {\n throw new Error(`Unsupported resource type: ${JSON.stringify(node.resourceType)}`);\n }\n}\n\nfunction frontendUrlComputable(\n entry: PlTreeEntry | undefined,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<string> | undefined {\n if (entry === undefined) return undefined;\n return Computable.make(\n (c) => {\n return kernel(c.accessor(entry), env);\n },\n {\n postprocessValue: (v) => {\n if (v === undefined) return undefined;\n if (typeof v === \"string\") return v;\n if (v.error !== undefined) throw new Error(v.error);\n return v.url;\n },\n },\n ).withStableType();\n}\n\nexport function frontendData(\n projectEntry: PlTreeEntry,\n id: string,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<FrontendData> {\n return Computable.make(\n (ctx) => {\n const prj = ctx.accessor(projectEntry).node();\n const bp = getBlockPackInfo(prj, id);\n const frontendEntry = prj\n .traverse(\n {\n field: projectFieldName(id, \"blockPack\"),\n assertFieldType: \"Dynamic\",\n },\n { field: Pl.HolderRefField, assertFieldType: \"Input\", errorIfFieldNotFound: true },\n { field: BlockPackFrontendField, assertFieldType: \"Input\" },\n )\n ?.persist();\n return {\n url: frontendUrlComputable(frontendEntry, env),\n sdkVersion: bp?.cfg.sdkVersion,\n };\n },\n { mode: \"StableOnlyLive\" },\n ) as ComputableStableDefined<FrontendData>;\n}\n"],"mappings":";;;;;;;;AAqBA,SAAS,OACP,aACA,KACyD;CACzD,MAAM,OAAO,YAAY,KAAK;CAC9B,KAAA,GAAA,0BAAA,mBAAA,CAAuB,KAAK,cAAcA,wBAAAA,2BAA2B,GAAG;EACtE,MAAM,OAAO,KAAK,cAAmC;EACrD,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,OAAO,IAAI,uBAAuB,OAAO,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe;CAC7E,OAAO,KAAA,GAAA,0BAAA,mBAAA,CAAuB,KAAK,cAAcC,wBAAAA,8BAA8B,GAAG;EAChF,MAAM,OAAO,KAAK,cAAsC;EACxD,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,IAAI,OAAO,OACT,KAAK,MACL,KAAK,WACL,yCAAyC,KAAK,MAChD;EACA,OAAO,KAAK;CACd,OAAO,KAAA,GAAA,0BAAA,mBAAA,CAAuB,KAAK,cAAcC,wBAAAA,gCAAgC,GAAG;EAClF,MAAM,OAAO,KAAK,cAAwC;EAC1D,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,IAAI,OAAO,OACT,GAAG,KAAK,KAAK,GAAG,KAAK,SACrB,KAAK,WACL,yCAAyC,KAAK,MAChD;EAIA,OAAO,IAAI,uBAAuB,YAAY,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,eAAe;CACtF,OACE,MAAM,IAAI,MAAM,8BAA8B,KAAK,UAAU,KAAK,YAAY,GAAG;AAErF;AAEA,SAAS,sBACP,OACA,KAC6C;CAC7C,IAAI,UAAU,KAAA,GAAW,OAAO,KAAA;CAChC,OAAOC,2BAAAA,WAAW,MACf,MAAM;EACL,OAAO,OAAO,EAAE,SAAS,KAAK,GAAG,GAAG;CACtC,GACA,EACE,mBAAmB,MAAM;EACvB,IAAI,MAAM,KAAA,GAAW,OAAO,KAAA;EAC5B,IAAI,OAAO,MAAM,UAAU,OAAO;EAClC,IAAI,EAAE,UAAU,KAAA,GAAW,MAAM,IAAI,MAAM,EAAE,KAAK;EAClD,OAAO,EAAE;CACX,EACF,CACF,CAAC,CAAC,eAAe;AACnB;AAEA,SAAgB,aACd,cACA,IACA,KACuC;CACvC,OAAOA,2BAAAA,WAAW,MACf,QAAQ;EACP,MAAM,MAAM,IAAI,SAAS,YAAY,CAAC,CAAC,KAAK;EAC5C,MAAM,KAAKC,aAAAA,iBAAiB,KAAK,EAAE;EACnC,MAAM,gBAAgB,IACnB,SACC;GACE,OAAOC,sBAAAA,iBAAiB,IAAI,WAAW;GACvC,iBAAiB;EACnB,GACA;GAAE,OAAOC,0BAAAA,GAAG;GAAgB,iBAAiB;GAAS,sBAAsB;EAAK,GACjF;GAAE,OAAOC,mBAAAA;GAAwB,iBAAiB;EAAQ,CAC5D,CAAC,EACC,QAAQ;EACZ,OAAO;GACL,KAAK,sBAAsB,eAAe,GAAG;GAC7C,YAAY,IAAI,IAAI;EACtB;CACF,GACA,EAAE,MAAM,iBAAiB,CAC3B;AACF"}
@@ -1,5 +1,6 @@
1
1
  import { projectFieldName } from "../model/project_model.js";
2
2
  import { FrontendFromFolderResourceType, FrontendFromLocalTgzResourceType, FrontendFromUrlResourceType } from "../model/block_pack_spec.js";
3
+ import "../model/index.js";
3
4
  import { BlockPackFrontendField } from "../mutator/block-pack/block_pack.js";
4
5
  import { getBlockPackInfo } from "./util.js";
5
6
  import { Pl, resourceTypesEqual } from "@milaboratories/pl-client";
@@ -1 +1 @@
1
- {"version":3,"file":"frontend_path.js","names":[],"sources":["../../src/middle_layer/frontend_path.ts"],"sourcesContent":["import type { PlTreeEntry, PlTreeEntryAccessor } from \"@milaboratories/pl-tree\";\nimport type { MiddleLayerEnvironment } from \"./middle_layer\";\nimport type { ComputableStableDefined } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport { Pl, resourceTypesEqual } from \"@milaboratories/pl-client\";\nimport type {\n FrontendFromFolderData,\n FrontendFromLocalTgzData,\n FrontendFromUrlData,\n} from \"../model\";\nimport {\n FrontendFromFolderResourceType,\n FrontendFromLocalTgzResourceType,\n FrontendFromUrlResourceType,\n} from \"../model\";\nimport type { UrlResult } from \"@milaboratories/pl-drivers\";\nimport { projectFieldName } from \"../model/project_model\";\nimport { BlockPackFrontendField } from \"../mutator/block-pack/block_pack\";\nimport { getBlockPackInfo } from \"./util\";\nimport type { FrontendData } from \"../model/frontend\";\n\nfunction kernel(\n frontendRes: PlTreeEntryAccessor,\n env: MiddleLayerEnvironment,\n): undefined | string | ComputableStableDefined<UrlResult> {\n const node = frontendRes.node();\n if (resourceTypesEqual(node.resourceType, FrontendFromUrlResourceType)) {\n const data = node.getDataAsJson<FrontendFromUrlData>();\n if (data === undefined) throw new Error(`No resource data.`);\n return env.frontendDownloadDriver.getUrl(new URL(data.url)).withStableType();\n } else if (resourceTypesEqual(node.resourceType, FrontendFromFolderResourceType)) {\n const data = node.getDataAsJson<FrontendFromFolderData>();\n if (data === undefined) throw new Error(`No resource data.`);\n env.signer.verify(\n data.path,\n data.signature,\n `Frontend path signature mismatch for: ${data.path}`,\n );\n return data.path;\n } else if (resourceTypesEqual(node.resourceType, FrontendFromLocalTgzResourceType)) {\n const data = node.getDataAsJson<FrontendFromLocalTgzData>();\n if (data === undefined) throw new Error(`No resource data.`);\n env.signer.verify(\n `${data.path}:${data.mtime}`,\n data.signature,\n `Frontend path signature mismatch for: ${data.path}`,\n );\n // Lazily unpack the local ui.tgz through the download driver, so it\n // inherits the driver's space recycling + usage-tracking (same as the\n // registry url path), instead of serving an eagerly-unpacked folder.\n return env.frontendDownloadDriver.getLocalTgz(data.path, data.mtime).withStableType();\n } else {\n throw new Error(`Unsupported resource type: ${JSON.stringify(node.resourceType)}`);\n }\n}\n\nfunction frontendUrlComputable(\n entry: PlTreeEntry | undefined,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<string> | undefined {\n if (entry === undefined) return undefined;\n return Computable.make(\n (c) => {\n return kernel(c.accessor(entry), env);\n },\n {\n postprocessValue: (v) => {\n if (v === undefined) return undefined;\n if (typeof v === \"string\") return v;\n if (v.error !== undefined) throw new Error(v.error);\n return v.url;\n },\n },\n ).withStableType();\n}\n\nexport function frontendData(\n projectEntry: PlTreeEntry,\n id: string,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<FrontendData> {\n return Computable.make(\n (ctx) => {\n const prj = ctx.accessor(projectEntry).node();\n const bp = getBlockPackInfo(prj, id);\n const frontendEntry = prj\n .traverse(\n {\n field: projectFieldName(id, \"blockPack\"),\n assertFieldType: \"Dynamic\",\n },\n { field: Pl.HolderRefField, assertFieldType: \"Input\", errorIfFieldNotFound: true },\n { field: BlockPackFrontendField, assertFieldType: \"Input\" },\n )\n ?.persist();\n return {\n url: frontendUrlComputable(frontendEntry, env),\n sdkVersion: bp?.cfg.sdkVersion,\n };\n },\n { mode: \"StableOnlyLive\" },\n ) as ComputableStableDefined<FrontendData>;\n}\n"],"mappings":";;;;;;;AAqBA,SAAS,OACP,aACA,KACyD;CACzD,MAAM,OAAO,YAAY,KAAK;CAC9B,IAAI,mBAAmB,KAAK,cAAc,2BAA2B,GAAG;EACtE,MAAM,OAAO,KAAK,cAAmC;EACrD,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,OAAO,IAAI,uBAAuB,OAAO,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe;CAC7E,OAAO,IAAI,mBAAmB,KAAK,cAAc,8BAA8B,GAAG;EAChF,MAAM,OAAO,KAAK,cAAsC;EACxD,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,IAAI,OAAO,OACT,KAAK,MACL,KAAK,WACL,yCAAyC,KAAK,MAChD;EACA,OAAO,KAAK;CACd,OAAO,IAAI,mBAAmB,KAAK,cAAc,gCAAgC,GAAG;EAClF,MAAM,OAAO,KAAK,cAAwC;EAC1D,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,IAAI,OAAO,OACT,GAAG,KAAK,KAAK,GAAG,KAAK,SACrB,KAAK,WACL,yCAAyC,KAAK,MAChD;EAIA,OAAO,IAAI,uBAAuB,YAAY,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,eAAe;CACtF,OACE,MAAM,IAAI,MAAM,8BAA8B,KAAK,UAAU,KAAK,YAAY,GAAG;AAErF;AAEA,SAAS,sBACP,OACA,KAC6C;CAC7C,IAAI,UAAU,KAAA,GAAW,OAAO,KAAA;CAChC,OAAO,WAAW,MACf,MAAM;EACL,OAAO,OAAO,EAAE,SAAS,KAAK,GAAG,GAAG;CACtC,GACA,EACE,mBAAmB,MAAM;EACvB,IAAI,MAAM,KAAA,GAAW,OAAO,KAAA;EAC5B,IAAI,OAAO,MAAM,UAAU,OAAO;EAClC,IAAI,EAAE,UAAU,KAAA,GAAW,MAAM,IAAI,MAAM,EAAE,KAAK;EAClD,OAAO,EAAE;CACX,EACF,CACF,CAAC,CAAC,eAAe;AACnB;AAEA,SAAgB,aACd,cACA,IACA,KACuC;CACvC,OAAO,WAAW,MACf,QAAQ;EACP,MAAM,MAAM,IAAI,SAAS,YAAY,CAAC,CAAC,KAAK;EAC5C,MAAM,KAAK,iBAAiB,KAAK,EAAE;EACnC,MAAM,gBAAgB,IACnB,SACC;GACE,OAAO,iBAAiB,IAAI,WAAW;GACvC,iBAAiB;EACnB,GACA;GAAE,OAAO,GAAG;GAAgB,iBAAiB;GAAS,sBAAsB;EAAK,GACjF;GAAE,OAAO;GAAwB,iBAAiB;EAAQ,CAC5D,CAAC,EACC,QAAQ;EACZ,OAAO;GACL,KAAK,sBAAsB,eAAe,GAAG;GAC7C,YAAY,IAAI,IAAI;EACtB;CACF,GACA,EAAE,MAAM,iBAAiB,CAC3B;AACF"}
1
+ {"version":3,"file":"frontend_path.js","names":[],"sources":["../../src/middle_layer/frontend_path.ts"],"sourcesContent":["import type { PlTreeEntry, PlTreeEntryAccessor } from \"@milaboratories/pl-tree\";\nimport type { MiddleLayerEnvironment } from \"./middle_layer\";\nimport type { ComputableStableDefined } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport { Pl, resourceTypesEqual } from \"@milaboratories/pl-client\";\nimport type {\n FrontendFromFolderData,\n FrontendFromLocalTgzData,\n FrontendFromUrlData,\n} from \"../model\";\nimport {\n FrontendFromFolderResourceType,\n FrontendFromLocalTgzResourceType,\n FrontendFromUrlResourceType,\n} from \"../model\";\nimport type { UrlResult } from \"@milaboratories/pl-drivers\";\nimport { projectFieldName } from \"../model/project_model\";\nimport { BlockPackFrontendField } from \"../mutator/block-pack/block_pack\";\nimport { getBlockPackInfo } from \"./util\";\nimport type { FrontendData } from \"../model/frontend\";\n\nfunction kernel(\n frontendRes: PlTreeEntryAccessor,\n env: MiddleLayerEnvironment,\n): undefined | string | ComputableStableDefined<UrlResult> {\n const node = frontendRes.node();\n if (resourceTypesEqual(node.resourceType, FrontendFromUrlResourceType)) {\n const data = node.getDataAsJson<FrontendFromUrlData>();\n if (data === undefined) throw new Error(`No resource data.`);\n return env.frontendDownloadDriver.getUrl(new URL(data.url)).withStableType();\n } else if (resourceTypesEqual(node.resourceType, FrontendFromFolderResourceType)) {\n const data = node.getDataAsJson<FrontendFromFolderData>();\n if (data === undefined) throw new Error(`No resource data.`);\n env.signer.verify(\n data.path,\n data.signature,\n `Frontend path signature mismatch for: ${data.path}`,\n );\n return data.path;\n } else if (resourceTypesEqual(node.resourceType, FrontendFromLocalTgzResourceType)) {\n const data = node.getDataAsJson<FrontendFromLocalTgzData>();\n if (data === undefined) throw new Error(`No resource data.`);\n env.signer.verify(\n `${data.path}:${data.mtime}`,\n data.signature,\n `Frontend path signature mismatch for: ${data.path}`,\n );\n // Lazily unpack the local ui.tgz through the download driver, so it\n // inherits the driver's space recycling + usage-tracking (same as the\n // registry url path), instead of serving an eagerly-unpacked folder.\n return env.frontendDownloadDriver.getLocalTgz(data.path, data.mtime).withStableType();\n } else {\n throw new Error(`Unsupported resource type: ${JSON.stringify(node.resourceType)}`);\n }\n}\n\nfunction frontendUrlComputable(\n entry: PlTreeEntry | undefined,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<string> | undefined {\n if (entry === undefined) return undefined;\n return Computable.make(\n (c) => {\n return kernel(c.accessor(entry), env);\n },\n {\n postprocessValue: (v) => {\n if (v === undefined) return undefined;\n if (typeof v === \"string\") return v;\n if (v.error !== undefined) throw new Error(v.error);\n return v.url;\n },\n },\n ).withStableType();\n}\n\nexport function frontendData(\n projectEntry: PlTreeEntry,\n id: string,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<FrontendData> {\n return Computable.make(\n (ctx) => {\n const prj = ctx.accessor(projectEntry).node();\n const bp = getBlockPackInfo(prj, id);\n const frontendEntry = prj\n .traverse(\n {\n field: projectFieldName(id, \"blockPack\"),\n assertFieldType: \"Dynamic\",\n },\n { field: Pl.HolderRefField, assertFieldType: \"Input\", errorIfFieldNotFound: true },\n { field: BlockPackFrontendField, assertFieldType: \"Input\" },\n )\n ?.persist();\n return {\n url: frontendUrlComputable(frontendEntry, env),\n sdkVersion: bp?.cfg.sdkVersion,\n };\n },\n { mode: \"StableOnlyLive\" },\n ) as ComputableStableDefined<FrontendData>;\n}\n"],"mappings":";;;;;;;;AAqBA,SAAS,OACP,aACA,KACyD;CACzD,MAAM,OAAO,YAAY,KAAK;CAC9B,IAAI,mBAAmB,KAAK,cAAc,2BAA2B,GAAG;EACtE,MAAM,OAAO,KAAK,cAAmC;EACrD,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,OAAO,IAAI,uBAAuB,OAAO,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe;CAC7E,OAAO,IAAI,mBAAmB,KAAK,cAAc,8BAA8B,GAAG;EAChF,MAAM,OAAO,KAAK,cAAsC;EACxD,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,IAAI,OAAO,OACT,KAAK,MACL,KAAK,WACL,yCAAyC,KAAK,MAChD;EACA,OAAO,KAAK;CACd,OAAO,IAAI,mBAAmB,KAAK,cAAc,gCAAgC,GAAG;EAClF,MAAM,OAAO,KAAK,cAAwC;EAC1D,IAAI,SAAS,KAAA,GAAW,MAAM,IAAI,MAAM,mBAAmB;EAC3D,IAAI,OAAO,OACT,GAAG,KAAK,KAAK,GAAG,KAAK,SACrB,KAAK,WACL,yCAAyC,KAAK,MAChD;EAIA,OAAO,IAAI,uBAAuB,YAAY,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,eAAe;CACtF,OACE,MAAM,IAAI,MAAM,8BAA8B,KAAK,UAAU,KAAK,YAAY,GAAG;AAErF;AAEA,SAAS,sBACP,OACA,KAC6C;CAC7C,IAAI,UAAU,KAAA,GAAW,OAAO,KAAA;CAChC,OAAO,WAAW,MACf,MAAM;EACL,OAAO,OAAO,EAAE,SAAS,KAAK,GAAG,GAAG;CACtC,GACA,EACE,mBAAmB,MAAM;EACvB,IAAI,MAAM,KAAA,GAAW,OAAO,KAAA;EAC5B,IAAI,OAAO,MAAM,UAAU,OAAO;EAClC,IAAI,EAAE,UAAU,KAAA,GAAW,MAAM,IAAI,MAAM,EAAE,KAAK;EAClD,OAAO,EAAE;CACX,EACF,CACF,CAAC,CAAC,eAAe;AACnB;AAEA,SAAgB,aACd,cACA,IACA,KACuC;CACvC,OAAO,WAAW,MACf,QAAQ;EACP,MAAM,MAAM,IAAI,SAAS,YAAY,CAAC,CAAC,KAAK;EAC5C,MAAM,KAAK,iBAAiB,KAAK,EAAE;EACnC,MAAM,gBAAgB,IACnB,SACC;GACE,OAAO,iBAAiB,IAAI,WAAW;GACvC,iBAAiB;EACnB,GACA;GAAE,OAAO,GAAG;GAAgB,iBAAiB;GAAS,sBAAsB;EAAK,GACjF;GAAE,OAAO;GAAwB,iBAAiB;EAAQ,CAC5D,CAAC,EACC,QAAQ;EACZ,OAAO;GACL,KAAK,sBAAsB,eAAe,GAAG;GAC7C,YAAY,IAAI,IAAI;EACtB;CACF,GACA,EAAE,MAAM,iBAAiB,CAC3B;AACF"}
@@ -1,6 +1,7 @@
1
+ import { OutgoingShare, PendingShare } from "./sharing_list.js";
1
2
  import { Project } from "./project.js";
2
3
  import { DefaultDriverKitOpsPaths, DefaultDriverKitOpsSettings, DefaultMiddleLayerOpsPaths, DefaultMiddleLayerOpsSettings, DriverKitOps, DriverKitOpsConstructor, DriverKitOpsPaths, DriverKitOpsSettings, MiddleLayerDebugOptions, MiddleLayerOps, MiddleLayerOpsConstructor, MiddleLayerOpsPaths, MiddleLayerOpsSettings } from "./ops.js";
3
4
  import { MiddleLayerDriverKit, initDriverKit } from "./driver_kit.js";
4
5
  import { MiddleLayer } from "./middle_layer.js";
5
6
  import { ProjectsField } from "./project_list.js";
6
- export { DefaultDriverKitOpsPaths, DefaultDriverKitOpsSettings, DefaultMiddleLayerOpsPaths, DefaultMiddleLayerOpsSettings, DriverKitOps, DriverKitOpsConstructor, DriverKitOpsPaths, DriverKitOpsSettings, MiddleLayer, MiddleLayerDebugOptions, MiddleLayerDriverKit, MiddleLayerOps, MiddleLayerOpsConstructor, MiddleLayerOpsPaths, MiddleLayerOpsSettings, Project, ProjectsField, initDriverKit };
7
+ export { DefaultDriverKitOpsPaths, DefaultDriverKitOpsSettings, DefaultMiddleLayerOpsPaths, DefaultMiddleLayerOpsSettings, DriverKitOps, DriverKitOpsConstructor, DriverKitOpsPaths, DriverKitOpsSettings, MiddleLayer, MiddleLayerDebugOptions, MiddleLayerDriverKit, MiddleLayerOps, MiddleLayerOpsConstructor, MiddleLayerOpsPaths, MiddleLayerOpsSettings, type OutgoingShare, type PendingShare, Project, ProjectsField, initDriverKit };