@platforma-sdk/block-tools 2.5.81 → 2.5.83

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 (86) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/cli.mjs +61 -56
  4. package/dist/cli.mjs.map +1 -1
  5. package/dist/cmd/build-meta.d.ts +0 -1
  6. package/dist/cmd/build-model.d.ts +0 -1
  7. package/dist/cmd/index.d.ts +0 -1
  8. package/dist/cmd/mark-stable.d.ts +0 -1
  9. package/dist/cmd/pack.d.ts +0 -1
  10. package/dist/cmd/publish.d.ts +1 -1
  11. package/dist/cmd/refresh-registry.d.ts +0 -1
  12. package/dist/cmd/upload-package-v1.d.ts +0 -1
  13. package/dist/common_types.d.ts +0 -1
  14. package/dist/{config-DwOM2V6u.mjs → config-VnABe7ki.mjs} +489 -483
  15. package/dist/config-VnABe7ki.mjs.map +1 -0
  16. package/dist/config-t7F2nAAr.js +3 -0
  17. package/dist/config-t7F2nAAr.js.map +1 -0
  18. package/dist/index.js +1 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/index.mjs +47 -45
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/io/folder_reader.d.ts +0 -1
  23. package/dist/io/index.d.ts +0 -1
  24. package/dist/io/storage.d.ts +0 -1
  25. package/dist/lib.d.ts +0 -1
  26. package/dist/registry_v1/config.d.ts +0 -1
  27. package/dist/registry_v1/config_schema.d.ts +0 -1
  28. package/dist/registry_v1/flags.d.ts +0 -1
  29. package/dist/registry_v1/index.d.ts +0 -1
  30. package/dist/registry_v1/registry.d.ts +0 -1
  31. package/dist/registry_v1/v1_repo_schema.d.ts +0 -1
  32. package/dist/util.d.ts +0 -1
  33. package/dist/v2/build_dist.d.ts +0 -1
  34. package/dist/v2/index.d.ts +0 -1
  35. package/dist/v2/model/block_components.d.ts +0 -1
  36. package/dist/v2/model/block_description.d.ts +0 -1
  37. package/dist/v2/model/block_meta.d.ts +0 -1
  38. package/dist/v2/model/content_conversion.d.ts +0 -1
  39. package/dist/v2/model/index.d.ts +0 -1
  40. package/dist/v2/registry/index.d.ts +0 -1
  41. package/dist/v2/registry/registry.d.ts +1 -1
  42. package/dist/v2/registry/registry_reader.d.ts +0 -1
  43. package/dist/v2/registry/schema_internal.d.ts +0 -1
  44. package/dist/v2/registry/schema_public.d.ts +2 -1
  45. package/dist/v2/source_package.d.ts +0 -1
  46. package/package.json +13 -12
  47. package/src/cmd/publish.ts +12 -1
  48. package/src/registry_v1/registry.test.ts +3 -2
  49. package/src/v2/registry/registry.ts +16 -7
  50. package/src/v2/registry/schema_public.ts +2 -0
  51. package/dist/cmd/build-meta.d.ts.map +0 -1
  52. package/dist/cmd/build-model.d.ts.map +0 -1
  53. package/dist/cmd/index.d.ts.map +0 -1
  54. package/dist/cmd/mark-stable.d.ts.map +0 -1
  55. package/dist/cmd/pack.d.ts.map +0 -1
  56. package/dist/cmd/publish.d.ts.map +0 -1
  57. package/dist/cmd/refresh-registry.d.ts.map +0 -1
  58. package/dist/cmd/upload-package-v1.d.ts.map +0 -1
  59. package/dist/common_types.d.ts.map +0 -1
  60. package/dist/config-26zalc5o.js +0 -3
  61. package/dist/config-26zalc5o.js.map +0 -1
  62. package/dist/config-DwOM2V6u.mjs.map +0 -1
  63. package/dist/io/folder_reader.d.ts.map +0 -1
  64. package/dist/io/index.d.ts.map +0 -1
  65. package/dist/io/storage.d.ts.map +0 -1
  66. package/dist/lib.d.ts.map +0 -1
  67. package/dist/registry_v1/config.d.ts.map +0 -1
  68. package/dist/registry_v1/config_schema.d.ts.map +0 -1
  69. package/dist/registry_v1/flags.d.ts.map +0 -1
  70. package/dist/registry_v1/index.d.ts.map +0 -1
  71. package/dist/registry_v1/registry.d.ts.map +0 -1
  72. package/dist/registry_v1/v1_repo_schema.d.ts.map +0 -1
  73. package/dist/util.d.ts.map +0 -1
  74. package/dist/v2/build_dist.d.ts.map +0 -1
  75. package/dist/v2/index.d.ts.map +0 -1
  76. package/dist/v2/model/block_components.d.ts.map +0 -1
  77. package/dist/v2/model/block_description.d.ts.map +0 -1
  78. package/dist/v2/model/block_meta.d.ts.map +0 -1
  79. package/dist/v2/model/content_conversion.d.ts.map +0 -1
  80. package/dist/v2/model/index.d.ts.map +0 -1
  81. package/dist/v2/registry/index.d.ts.map +0 -1
  82. package/dist/v2/registry/registry.d.ts.map +0 -1
  83. package/dist/v2/registry/registry_reader.d.ts.map +0 -1
  84. package/dist/v2/registry/schema_internal.d.ts.map +0 -1
  85. package/dist/v2/registry/schema_public.d.ts.map +0 -1
  86. package/dist/v2/source_package.d.ts.map +0 -1
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var L=Object.defineProperty;var x=(i,e,a)=>e in i?L(i,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[e]=a;var o=(i,e,a)=>x(i,typeof e!="symbol"?e+"":e,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("@oclif/core"),d=require("node:path"),m=require("node:fs");require("zod");require("mime-types");require("tar");require("@milaboratories/resolve-helper");const n=require("./config-26zalc5o.js"),F=require("@milaboratories/pl-model-middle-layer");require("@milaboratories/pl-model-common");require("@milaboratories/ts-helpers");require("canonicalize");require("lru-cache");require("undici");require("@milaboratories/pl-http");const b=require("@milaboratories/ts-helpers-oclif"),V=require("yaml"),f=class f extends r.Command{async run(){const{flags:e}=await this.parse(f),a=d.resolve(e.modulePath),t=await n.loadPackDescriptionRaw(a),s=await n.BlockPackMetaEmbedAbsoluteBase64.parseAsync(n.BlockPackMetaDescription(a).parse(t.meta));await m.promises.writeFile(d.resolve(e.destination),JSON.stringify(s))}};o(f,"description","Extracts meta information from blocks package.json and outputs meta.json with embedded binary and textual information linked from the meta section."),o(f,"flags",{modulePath:r.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),destination:r.Flags.string({char:"o",summary:"output meta.json file",helpValue:"<path>",required:!0})});let P=f;async function I(i){try{return await m.promises.readFile(i,"utf8")}catch(e){if(e.code==="ENOENT")return;throw e}}const g=class g extends r.Command{async run(){const{flags:e}=await this.parse(g),a=d.resolve(e.modulePath);let{model:t,platforma:s}=require(a);if(t||(t=s),!t)throw new Error('"model" export not found');const{config:l}=t;if(!l)throw new Error('Malformed "model" object, check it is created with "BlockModel" and ".done()" is executed as the call in the chain.');if(!("canRun"in l||"inputsValid"in l)||!("outputs"in l)||!("sections"in l))throw new Error('"config" has unexpected structure');const u=await I(e.sourceBundle);u!==void 0&&(l.code={type:"plain",content:u}),await m.promises.writeFile(d.resolve(e.destination),JSON.stringify(l))}};o(g,"description","Extracts and outputs block model JSON from pre-built block model module"),o(g,"flags",{modulePath:r.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),sourceBundle:r.Flags.string({char:"b",summary:"bundled model code to embed into the model for callback-based rendering to work",helpValue:"<path>",default:"./dist/bundle.js"}),destination:r.Flags.string({char:"o",summary:"output model file",helpValue:"<path>",default:"./dist/model.json"})});let R=g;const p=class p extends r.Command{async run(){const{flags:e}=await this.parse(p);let a=await n.loadPackDescriptionRaw(d.resolve(e.modulePath));e["version-override"]&&(a=F.overrideDescriptionVersion(a,e["version-override"]));const t=n.storageByUrl(e.registry),s=new n.BlockRegistryV2(t,new b.OclifLoggerAdapter(this));e.unmark?await s.removePackageFromChannel(a.id,e.channel):await s.addPackageToChannel(a.id,e.channel),e.refresh&&await s.updateIfNeeded()}};o(p,"description","Mark target block stable"),o(p,"flags",{modulePath:r.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),channel:r.Flags.string({char:"c",hidden:!0,summary:"custom channel",helpValue:"<channel name>",default:F.StableChannel}),"version-override":r.Flags.file({char:"v",summary:"override package version"}),registry:r.Flags.string({char:"r",summary:"full address of the registry",helpValue:"<address>",env:"PL_REGISTRY",required:!0}),refresh:r.Flags.boolean({summary:"refresh repository after adding the package",default:!0,allowNo:!0,env:"PL_REGISTRY_REFRESH"}),unmark:r.Flags.boolean({summary:'reverses meaning of this command, flag can be used to remove "stable" flag from the package',default:!1})});let E=p;const h=class h extends r.Command{async run(){const{flags:e}=await this.parse(h),a=await n.loadPackDescription(d.resolve(e.modulePath));await n.buildBlockPackDist(a,d.resolve(e.destinationPath))}};o(h,"description","Builds block pack and outputs a block pack manifest consolidating all references assets into a single folder"),o(h,"flags",{modulePath:r.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),destinationPath:r.Flags.string({char:"o",summary:"output folder",helpValue:"<path>",default:"./block-pack"})});let N=h;function C(i,e){const a={...i};for(const t in e)e[t]&&typeof e[t]=="object"&&!Array.isArray(e[t])&&a[t]&&typeof a[t]=="object"&&!Array.isArray(a[t])?a[t]=C(a[t],e[t]):a[t]=e[t];return a}const y=class y extends r.Command{async run(){const{flags:e}=await this.parse(y),a=d.resolve(e.manifest),t=JSON.parse(await m.promises.readFile(a,{encoding:"utf-8"}));let s=F.BlockPackManifest.parse(t);s=C(t,s);const l=d.dirname(a);this.log(`Manifest root = ${l}`),e["version-override"]&&(s=F.overrideManifestVersion(s,e["version-override"]));const u=n.storageByUrl(e.registry),c=new n.BlockRegistryV2(u,new b.OclifLoggerAdapter(this));await c.publishPackage(s,async k=>Buffer.from(await m.promises.readFile(d.resolve(l,k)))),e.refresh&&await c.updateIfNeeded()}};o(y,"description","Publishes the block package and refreshes the registry (for v2 block-pack schema)"),o(y,"flags",{registry:r.Flags.string({char:"r",summary:"full address of the registry",helpValue:"<address>",env:"PL_REGISTRY",required:!0}),manifest:r.Flags.file({char:"m",summary:"manifest file path",exists:!0,default:`./block-pack/${n.ManifestFileName}`}),"version-override":r.Flags.file({char:"v",summary:"override package version"}),refresh:r.Flags.boolean({summary:"refresh repository after adding the package",default:!0,allowNo:!0,env:"PL_REGISTRY_REFRESH"})});let q=y;const w=class w extends r.Command{async run(){const{flags:e}=await this.parse(w),a=n.storageByUrl(e.registry);await new n.BlockRegistryV2(a,new b.OclifLoggerAdapter(this)).updateIfNeeded(e.mode)}};o(w,"description","Refresh overview files based on published but not proecessed artefacts"),o(w,"flags",{registry:r.Flags.string({char:"r",summary:"full address of the registry",helpValue:"<address>",env:"PL_REGISTRY",required:!0}),mode:r.Flags.string({char:"m",summary:'refresh mode (allowed valiues: "force", "normal", "dry-run")',helpValue:"<mode>",options:["force","normal","dry-run"],env:"PL_REGISTRY_REFRESH_DRY_RUN",default:"normal"})});let A=w;function T(i){const e=i.match(/(?<destName>[^\/\\]+)=(?<src>.*)/);if(e){const{src:a,destName:t}=e.groups;return{src:a,destName:t}}else return{src:i,destName:d.basename(i)}}const j=r.Flags.custom({summary:"target files to upload",helpValue:"file_path | package_name=file_path",parse:async i=>T(i)}),G=["registry","organization","package","version"],v=class v extends r.Command{async run(){const{flags:e}=await this.parse(v),a=n.PlRegPackageConfigDataShard.parse({});for(const c of G)e[c]&&(a[c]=e[c]);e.meta&&(e.meta.endsWith(".json")?a.meta=JSON.parse(await m.promises.readFile(e.meta,{encoding:"utf-8"})):e.meta.endsWith(".yaml")&&(a.meta=V.parse(await m.promises.readFile(e.meta,{encoding:"utf-8"}))));for(const c of e.file)a.files[c.destName]=c.src;const t=await n.getConfig(a);this.log(V.stringify(t.conf));const s=t.createRegistry(new b.OclifLoggerAdapter(this)),l=t.fullPackageName,u=s.constructNewPackage(l);for(const[c,k]of Object.entries(t.conf.files)){this.log(`Uploading ${k} -> ${c} ...`);const O=await m.promises.readFile(k);await u.addFile(c,O)}this.log("Uploading meta information..."),await u.writeMeta(t.conf.meta),await u.finish(),e.refresh&&await s.updateIfNeeded()}};o(v,"description","Uploads V1 package and refreshes the registry"),o(v,"flags",{registry:r.Flags.string({char:"r",summary:"full address of the registry or alias from .pl.reg",helpValue:"<address|alias>",env:"PL_REGISTRY"}),organization:r.Flags.string({char:"o",summary:"target organisation",env:"PL_PACKAGE_ORGANIZATION"}),package:r.Flags.string({char:"p",summary:"target package",env:"PL_PACKAGE_NAME"}),version:r.Flags.string({char:"v",summary:"target version",env:"PL_PACKAGE_VERSION"}),meta:r.Flags.file({char:"m",summary:"json file containing meta information to associate with tha package",exists:!0}),file:j({char:"f",summary:"package files",multiple:!0,default:[]}),refresh:r.Flags.boolean({summary:"refresh repository after adding the package",default:!0,allowNo:!0,env:"PL_REGISTRY_REFRESH"})});let S=v;const M={"build-meta":P,"build-model":R,"mark-stable":E,pack:N,publish:q,"refresh-registry":A,"upload-package-v1":S};exports.COMMANDS=M;
1
+ "use strict";var O=Object.defineProperty;var I=(i,e,a)=>e in i?O(i,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[e]=a;var o=(i,e,a)=>I(i,typeof e!="symbol"?e+"":e,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@oclif/core"),d=require("node:path"),m=require("node:fs");require("zod");require("mime-types");require("tar");require("@milaboratories/resolve-helper");const n=require("./config-t7F2nAAr.js"),f=require("@milaboratories/pl-model-middle-layer");require("@milaboratories/pl-model-common");require("@milaboratories/ts-helpers");require("canonicalize");require("lru-cache");require("undici");require("@milaboratories/pl-http");const F=require("@milaboratories/ts-helpers-oclif"),C=require("yaml"),g=class g extends s.Command{async run(){const{flags:e}=await this.parse(g),a=d.resolve(e.modulePath),t=await n.loadPackDescriptionRaw(a),r=await n.BlockPackMetaEmbedAbsoluteBase64.parseAsync(n.BlockPackMetaDescription(a).parse(t.meta));await m.promises.writeFile(d.resolve(e.destination),JSON.stringify(r))}};o(g,"description","Extracts meta information from blocks package.json and outputs meta.json with embedded binary and textual information linked from the meta section."),o(g,"flags",{modulePath:s.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),destination:s.Flags.string({char:"o",summary:"output meta.json file",helpValue:"<path>",required:!0})});let P=g;async function x(i){try{return await m.promises.readFile(i,"utf8")}catch(e){if(e.code==="ENOENT")return;throw e}}const h=class h extends s.Command{async run(){const{flags:e}=await this.parse(h),a=d.resolve(e.modulePath);let{model:t,platforma:r}=require(a);if(t||(t=r),!t)throw new Error('"model" export not found');const{config:c}=t;if(!c)throw new Error('Malformed "model" object, check it is created with "BlockModel" and ".done()" is executed as the call in the chain.');if(!("canRun"in c||"inputsValid"in c)||!("outputs"in c)||!("sections"in c))throw new Error('"config" has unexpected structure');const u=await x(e.sourceBundle);u!==void 0&&(c.code={type:"plain",content:u}),await m.promises.writeFile(d.resolve(e.destination),JSON.stringify(c))}};o(h,"description","Extracts and outputs block model JSON from pre-built block model module"),o(h,"flags",{modulePath:s.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),sourceBundle:s.Flags.string({char:"b",summary:"bundled model code to embed into the model for callback-based rendering to work",helpValue:"<path>",default:"./dist/bundle.js"}),destination:s.Flags.string({char:"o",summary:"output model file",helpValue:"<path>",default:"./dist/model.json"})});let R=h;const p=class p extends s.Command{async run(){const{flags:e}=await this.parse(p);let a=await n.loadPackDescriptionRaw(d.resolve(e.modulePath));e["version-override"]&&(a=f.overrideDescriptionVersion(a,e["version-override"]));const t=n.storageByUrl(e.registry),r=new n.BlockRegistryV2(t,new F.OclifLoggerAdapter(this));e.unmark?await r.removePackageFromChannel(a.id,e.channel):await r.addPackageToChannel(a.id,e.channel),e.refresh&&await r.updateIfNeeded()}};o(p,"description","Mark target block stable"),o(p,"flags",{modulePath:s.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),channel:s.Flags.string({char:"c",hidden:!0,summary:"custom channel",helpValue:"<channel name>",default:f.StableChannel}),"version-override":s.Flags.file({char:"v",summary:"override package version"}),registry:s.Flags.string({char:"r",summary:"full address of the registry",helpValue:"<address>",env:"PL_REGISTRY",required:!0}),refresh:s.Flags.boolean({summary:"refresh repository after adding the package",default:!0,allowNo:!0,env:"PL_REGISTRY_REFRESH"}),unmark:s.Flags.boolean({summary:'reverses meaning of this command, flag can be used to remove "stable" flag from the package',default:!1})});let E=p;const y=class y extends s.Command{async run(){const{flags:e}=await this.parse(y),a=await n.loadPackDescription(d.resolve(e.modulePath));await n.buildBlockPackDist(a,d.resolve(e.destinationPath))}};o(y,"description","Builds block pack and outputs a block pack manifest consolidating all references assets into a single folder"),o(y,"flags",{modulePath:s.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),destinationPath:s.Flags.string({char:"o",summary:"output folder",helpValue:"<path>",default:"./block-pack"})});let N=y;function L(i,e){const a={...i};for(const t in e)e[t]&&typeof e[t]=="object"&&!Array.isArray(e[t])&&a[t]&&typeof a[t]=="object"&&!Array.isArray(a[t])?a[t]=L(a[t],e[t]):a[t]=e[t];return a}const w=class w extends s.Command{async run(){const{flags:e}=await this.parse(w),a=d.resolve(e.manifest),t=JSON.parse(await m.promises.readFile(a,{encoding:"utf-8"}));let r=f.BlockPackManifest.parse(t);r=L(t,r);const c=d.dirname(a);this.log(`Manifest root = ${c}`),e["version-override"]&&(r=f.overrideManifestVersion(r,e["version-override"]));const u=n.storageByUrl(e.registry),l=new n.BlockRegistryV2(u,new F.OclifLoggerAdapter(this));await l.publishPackage(r,async b=>Buffer.from(await m.promises.readFile(d.resolve(c,b)))),e.unstable||(this.log(`Adding package to ${f.StableChannel} channel...`),await l.addPackageToChannel(r.description.id,f.StableChannel)),e.refresh&&await l.updateIfNeeded()}};o(w,"description","Publishes the block package and refreshes the registry (for v2 block-pack schema)"),o(w,"flags",{registry:s.Flags.string({char:"r",summary:"full address of the registry",helpValue:"<address>",env:"PL_REGISTRY",required:!0}),manifest:s.Flags.file({char:"m",summary:"manifest file path",exists:!0,default:`./block-pack/${n.ManifestFileName}`}),"version-override":s.Flags.file({char:"v",summary:"override package version"}),refresh:s.Flags.boolean({summary:"refresh repository after adding the package",default:!0,allowNo:!0,env:"PL_REGISTRY_REFRESH"}),unstable:s.Flags.boolean({summary:"do not add the published package to stable channel",default:!1,env:"PL_PUBLISH_UNSTABLE"})});let S=w;const v=class v extends s.Command{async run(){const{flags:e}=await this.parse(v),a=n.storageByUrl(e.registry);await new n.BlockRegistryV2(a,new F.OclifLoggerAdapter(this)).updateIfNeeded(e.mode)}};o(v,"description","Refresh overview files based on published but not proecessed artefacts"),o(v,"flags",{registry:s.Flags.string({char:"r",summary:"full address of the registry",helpValue:"<address>",env:"PL_REGISTRY",required:!0}),mode:s.Flags.string({char:"m",summary:'refresh mode (allowed valiues: "force", "normal", "dry-run")',helpValue:"<mode>",options:["force","normal","dry-run"],env:"PL_REGISTRY_REFRESH_DRY_RUN",default:"normal"})});let A=v;function T(i){const e=i.match(/(?<destName>[^\/\\]+)=(?<src>.*)/);if(e){const{src:a,destName:t}=e.groups;return{src:a,destName:t}}else return{src:i,destName:d.basename(i)}}const j=s.Flags.custom({summary:"target files to upload",helpValue:"file_path | package_name=file_path",parse:async i=>T(i)}),G=["registry","organization","package","version"],k=class k extends s.Command{async run(){const{flags:e}=await this.parse(k),a=n.PlRegPackageConfigDataShard.parse({});for(const l of G)e[l]&&(a[l]=e[l]);e.meta&&(e.meta.endsWith(".json")?a.meta=JSON.parse(await m.promises.readFile(e.meta,{encoding:"utf-8"})):e.meta.endsWith(".yaml")&&(a.meta=C.parse(await m.promises.readFile(e.meta,{encoding:"utf-8"}))));for(const l of e.file)a.files[l.destName]=l.src;const t=await n.getConfig(a);this.log(C.stringify(t.conf));const r=t.createRegistry(new F.OclifLoggerAdapter(this)),c=t.fullPackageName,u=r.constructNewPackage(c);for(const[l,b]of Object.entries(t.conf.files)){this.log(`Uploading ${b} -> ${l} ...`);const V=await m.promises.readFile(b);await u.addFile(l,V)}this.log("Uploading meta information..."),await u.writeMeta(t.conf.meta),await u.finish(),e.refresh&&await r.updateIfNeeded()}};o(k,"description","Uploads V1 package and refreshes the registry"),o(k,"flags",{registry:s.Flags.string({char:"r",summary:"full address of the registry or alias from .pl.reg",helpValue:"<address|alias>",env:"PL_REGISTRY"}),organization:s.Flags.string({char:"o",summary:"target organisation",env:"PL_PACKAGE_ORGANIZATION"}),package:s.Flags.string({char:"p",summary:"target package",env:"PL_PACKAGE_NAME"}),version:s.Flags.string({char:"v",summary:"target version",env:"PL_PACKAGE_VERSION"}),meta:s.Flags.file({char:"m",summary:"json file containing meta information to associate with tha package",exists:!0}),file:j({char:"f",summary:"package files",multiple:!0,default:[]}),refresh:s.Flags.boolean({summary:"refresh repository after adding the package",default:!0,allowNo:!0,env:"PL_REGISTRY_REFRESH"})});let q=k;const M={"build-meta":P,"build-model":R,"mark-stable":E,pack:N,publish:S,"refresh-registry":A,"upload-package-v1":q};exports.COMMANDS=M;
2
2
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sources":["../src/cmd/build-meta.ts","../src/cmd/build-model.ts","../src/cmd/mark-stable.ts","../src/cmd/pack.ts","../src/cmd/publish.ts","../src/cmd/refresh-registry.ts","../src/registry_v1/flags.ts","../src/cmd/upload-package-v1.ts","../src/cmd/index.ts"],"sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport path from 'path';\nimport fs from 'fs';\nimport { loadPackDescriptionRaw } from '../v2';\nimport { BlockPackMetaDescription, BlockPackMetaEmbedAbsoluteBase64 } from '../v2/model/block_meta';\n\nexport default class BuildMeta extends Command {\n static override description =\n 'Extracts meta information from blocks package.json and outputs meta.json with embedded binary ' +\n 'and textual information linked from the meta section.';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output meta.json file',\n helpValue: '<path>',\n required: true\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildMeta);\n const modulePath = path.resolve(flags.modulePath);\n const descriptionRaw = await loadPackDescriptionRaw(modulePath);\n const metaEmbedded = await BlockPackMetaEmbedAbsoluteBase64.parseAsync(\n BlockPackMetaDescription(modulePath).parse(descriptionRaw.meta)\n );\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(metaEmbedded));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'fs';\nimport path from 'path';\n\nasync function getFileContent(path: string) {\n try {\n return await fs.promises.readFile(path, 'utf8');\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return undefined;\n }\n throw error;\n }\n}\n\nexport default class BuildModel extends Command {\n static override description =\n 'Extracts and outputs block model JSON from pre-built block model module';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n sourceBundle: Flags.string({\n char: 'b',\n summary: 'bundled model code to embed into the model for callback-based rendering to work',\n helpValue: '<path>',\n default: './dist/bundle.js'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output model file',\n helpValue: '<path>',\n default: './dist/model.json'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildModel);\n const modulePath = path.resolve(flags.modulePath); // i.e. folder with package.json file\n let { model, platforma } = require(modulePath);\n\n if (!model) model = platforma;\n if (!model) throw new Error('\"model\" export not found');\n\n const { config } = model;\n\n if (!config)\n throw new Error(\n 'Malformed \"model\" object, check it is created with \"BlockModel\" ' +\n 'and \".done()\" is executed as the call in the chain.'\n );\n\n if (\n !('canRun' in config || 'inputsValid' in config) ||\n !('outputs' in config) ||\n !('sections' in config)\n )\n throw new Error('\"config\" has unexpected structure');\n\n const code = await getFileContent(flags.sourceBundle);\n if (code !== undefined) {\n config.code = {\n type: 'plain',\n content: code\n };\n }\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(config));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { BlockRegistryV2, loadPackDescriptionRaw } from '../v2';\nimport path from 'path';\nimport {\n overrideDescriptionVersion,\n overrideManifestVersion,\n StableChannel\n} from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\nexport default class MarkStable extends Command {\n static description = 'Mark target block stable';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n channel: Flags.string({\n char: 'c',\n hidden: true,\n summary: 'custom channel',\n helpValue: '<channel name>',\n default: StableChannel\n }),\n\n 'version-override': Flags.file({\n char: 'v',\n summary: 'override package version'\n }),\n\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n }),\n\n unmark: Flags.boolean({\n summary:\n 'reverses meaning of this command, flag can be used to remove \"stable\" flag from the package',\n default: false\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(MarkStable);\n let description = await loadPackDescriptionRaw(path.resolve(flags.modulePath));\n if (flags['version-override'])\n description = overrideDescriptionVersion(description, flags['version-override']);\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n\n if (flags.unmark) await registry.removePackageFromChannel(description.id, flags.channel);\n else await registry.addPackageToChannel(description.id, flags.channel);\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { loadPackDescription } from '../v2/source_package';\nimport path from 'path';\nimport { buildBlockPackDist } from '../v2/build_dist';\n\nexport default class PackBlock extends Command {\n static description =\n 'Builds block pack and outputs a block pack manifest consolidating all ' +\n 'references assets into a single folder';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destinationPath: Flags.string({\n char: 'o',\n summary: 'output folder',\n helpValue: '<path>',\n default: './block-pack'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(PackBlock);\n const description = await loadPackDescription(path.resolve(flags.modulePath));\n await buildBlockPackDist(description, path.resolve(flags.destinationPath));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'node:fs';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\nimport { ManifestFileName } from '../v2/registry/schema_public';\nimport { BlockPackManifest, overrideManifestVersion } from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io/storage';\nimport { BlockRegistryV2 } from '../v2/registry/registry';\nimport path from 'node:path';\n\nfunction simpleDeepMerge<T extends Record<string, unknown>>(\n target: Record<string, unknown>,\n source: T\n): T {\n const result = { ...target };\n\n for (const key in source) {\n if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {\n if (result[key] && typeof result[key] === 'object' && !Array.isArray(result[key])) {\n result[key] = simpleDeepMerge(result[key] as Record<string, unknown>, source[key] as Record<string, unknown>);\n } else {\n result[key] = source[key];\n }\n } else {\n result[key] = source[key];\n }\n }\n\n return result as T;\n}\n\nexport default class Publish extends Command {\n static description =\n 'Publishes the block package and refreshes the registry (for v2 block-pack schema)';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n manifest: Flags.file({\n char: 'm',\n summary: 'manifest file path',\n exists: true,\n default: `./block-pack/${ManifestFileName}`\n }),\n\n 'version-override': Flags.file({\n char: 'v',\n summary: 'override package version'\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Publish);\n\n const manifestPath = path.resolve(flags.manifest);\n const rawManifest = JSON.parse(await fs.promises.readFile(manifestPath, { encoding: 'utf-8' }));\n let manifest = BlockPackManifest.parse(rawManifest);\n // To keep extra fields from the manifest and keep coerced fields\n manifest = simpleDeepMerge(rawManifest, manifest);\n const manifestRoot = path.dirname(manifestPath);\n\n this.log(`Manifest root = ${manifestRoot}`);\n\n if (flags['version-override'])\n manifest = overrideManifestVersion(manifest, flags['version-override']);\n\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n\n await registry.publishPackage(manifest, async (file) =>\n Buffer.from(await fs.promises.readFile(path.resolve(manifestRoot, file)))\n );\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { BlockRegistryV2, loadPackDescriptionRaw } from '../v2';\nimport path from 'path';\nimport {\n overrideDescriptionVersion,\n overrideManifestVersion,\n StableChannel\n} from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\nexport default class RefreshRegistry extends Command {\n static description = 'Refresh overview files based on published but not proecessed artefacts';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n mode: Flags.string({\n char: 'm',\n summary: 'refresh mode (allowed valiues: \"force\", \"normal\", \"dry-run\")',\n helpValue: '<mode>',\n options: ['force', 'normal', 'dry-run'],\n env: 'PL_REGISTRY_REFRESH_DRY_RUN',\n default: 'normal'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(RefreshRegistry);\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n await registry.updateIfNeeded(flags.mode as 'force' | 'normal' | 'dry-run');\n }\n}\n","import { Flags } from '@oclif/core';\nimport path from 'node:path';\n\nexport interface TargetFile {\n src: string;\n destName: string;\n}\n\nfunction parseTargetFile(arg: string): TargetFile {\n const match = arg.match(/(?<destName>[^\\/\\\\]+)=(?<src>.*)/);\n if (match) {\n const { src, destName } = match.groups!;\n return { src, destName };\n } else {\n return { src: arg, destName: path.basename(arg) };\n }\n}\n\nexport const targetFile = Flags.custom<TargetFile>({\n summary: 'target files to upload',\n helpValue: 'file_path | package_name=file_path',\n parse: async (arg) => parseTargetFile(arg)\n});\n","import { Command, Flags } from '@oclif/core';\nimport { getConfig } from '../registry_v1/config';\nimport { targetFile } from '../registry_v1/flags';\nimport fs from 'node:fs';\nimport YAML from 'yaml';\nimport { PlRegPackageConfigDataShard } from '../registry_v1/config_schema';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\ntype BasicConfigField = keyof PlRegPackageConfigDataShard &\n ('registry' | 'organization' | 'package' | 'version');\nconst BasicConfigFields: BasicConfigField[] = ['registry', 'organization', 'package', 'version'];\n\nexport default class UploadPackageV1 extends Command {\n static description = 'Uploads V1 package and refreshes the registry';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry or alias from .pl.reg',\n helpValue: '<address|alias>',\n env: 'PL_REGISTRY'\n }),\n\n organization: Flags.string({\n char: 'o',\n summary: 'target organisation',\n env: 'PL_PACKAGE_ORGANIZATION'\n }),\n\n package: Flags.string({\n char: 'p',\n summary: 'target package',\n env: 'PL_PACKAGE_NAME'\n }),\n\n version: Flags.string({\n char: 'v',\n summary: 'target version',\n env: 'PL_PACKAGE_VERSION'\n }),\n\n meta: Flags.file({\n char: 'm',\n summary: 'json file containing meta information to associate with tha package',\n exists: true\n }),\n\n file: targetFile({\n char: 'f',\n summary: 'package files',\n multiple: true,\n default: []\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(UploadPackageV1);\n const configFromFlags: PlRegPackageConfigDataShard = PlRegPackageConfigDataShard.parse({});\n\n for (const field of BasicConfigFields) if (flags[field]) configFromFlags[field] = flags[field];\n\n if (flags.meta) {\n if (flags.meta.endsWith('.json'))\n configFromFlags.meta = JSON.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n else if (flags.meta.endsWith('.yaml'))\n configFromFlags.meta = YAML.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n }\n\n for (const targetFile of flags.file) {\n configFromFlags.files[targetFile.destName] = targetFile.src;\n }\n\n const conf = await getConfig(configFromFlags);\n\n this.log(YAML.stringify(conf.conf));\n\n const registry = conf.createRegistry(new OclifLoggerAdapter(this));\n const name = conf.fullPackageName;\n\n const builder = registry.constructNewPackage(name);\n\n for (const [dst, src] of Object.entries(conf.conf.files)) {\n this.log(`Uploading ${src} -> ${dst} ...`);\n const content = await fs.promises.readFile(src);\n await builder.addFile(dst, content);\n }\n\n this.log(`Uploading meta information...`);\n await builder.writeMeta(conf.conf.meta);\n await builder.finish();\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","// DO NOT EDIT. This file was generated by oclif-index utility.\n\nimport Cmd0 from './build-meta';\nimport Cmd1 from './build-model';\nimport Cmd3 from './mark-stable';\nimport Cmd4 from './pack';\nimport Cmd5 from './publish';\nimport Cmd6 from './refresh-registry';\nimport Cmd7 from './upload-package-v1';\n\n// prettier-ignore\nexport const COMMANDS = {\n 'build-meta': Cmd0,\n 'build-model': Cmd1,\n 'mark-stable': Cmd3,\n 'pack': Cmd4,\n 'publish': Cmd5,\n 'refresh-registry': Cmd6,\n 'upload-package-v1': Cmd7\n};\n"],"names":["_BuildMeta","Command","flags","modulePath","path","descriptionRaw","loadPackDescriptionRaw","metaEmbedded","BlockPackMetaEmbedAbsoluteBase64","BlockPackMetaDescription","fs","__publicField","Flags","BuildMeta","getFileContent","error","_BuildModel","model","platforma","config","code","BuildModel","_MarkStable","description","overrideDescriptionVersion","storage","storageByUrl","registry","BlockRegistryV2","OclifLoggerAdapter","StableChannel","MarkStable","_PackBlock","loadPackDescription","buildBlockPackDist","PackBlock","simpleDeepMerge","target","source","result","key","_Publish","manifestPath","rawManifest","manifest","BlockPackManifest","manifestRoot","overrideManifestVersion","file","ManifestFileName","Publish","_RefreshRegistry","RefreshRegistry","parseTargetFile","arg","match","src","destName","targetFile","BasicConfigFields","_UploadPackageV1","configFromFlags","PlRegPackageConfigDataShard","field","YAML","conf","getConfig","name","builder","dst","content","UploadPackageV1","COMMANDS","Cmd0","Cmd1","Cmd3","Cmd4","Cmd5","Cmd6","Cmd7"],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sources":["../src/cmd/build-meta.ts","../src/cmd/build-model.ts","../src/cmd/mark-stable.ts","../src/cmd/pack.ts","../src/cmd/publish.ts","../src/cmd/refresh-registry.ts","../src/registry_v1/flags.ts","../src/cmd/upload-package-v1.ts","../src/cmd/index.ts"],"sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport path from 'path';\nimport fs from 'fs';\nimport { loadPackDescriptionRaw } from '../v2';\nimport { BlockPackMetaDescription, BlockPackMetaEmbedAbsoluteBase64 } from '../v2/model/block_meta';\n\nexport default class BuildMeta extends Command {\n static override description =\n 'Extracts meta information from blocks package.json and outputs meta.json with embedded binary ' +\n 'and textual information linked from the meta section.';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output meta.json file',\n helpValue: '<path>',\n required: true\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildMeta);\n const modulePath = path.resolve(flags.modulePath);\n const descriptionRaw = await loadPackDescriptionRaw(modulePath);\n const metaEmbedded = await BlockPackMetaEmbedAbsoluteBase64.parseAsync(\n BlockPackMetaDescription(modulePath).parse(descriptionRaw.meta)\n );\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(metaEmbedded));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'fs';\nimport path from 'path';\n\nasync function getFileContent(path: string) {\n try {\n return await fs.promises.readFile(path, 'utf8');\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return undefined;\n }\n throw error;\n }\n}\n\nexport default class BuildModel extends Command {\n static override description =\n 'Extracts and outputs block model JSON from pre-built block model module';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n sourceBundle: Flags.string({\n char: 'b',\n summary: 'bundled model code to embed into the model for callback-based rendering to work',\n helpValue: '<path>',\n default: './dist/bundle.js'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output model file',\n helpValue: '<path>',\n default: './dist/model.json'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildModel);\n const modulePath = path.resolve(flags.modulePath); // i.e. folder with package.json file\n let { model, platforma } = require(modulePath);\n\n if (!model) model = platforma;\n if (!model) throw new Error('\"model\" export not found');\n\n const { config } = model;\n\n if (!config)\n throw new Error(\n 'Malformed \"model\" object, check it is created with \"BlockModel\" ' +\n 'and \".done()\" is executed as the call in the chain.'\n );\n\n if (\n !('canRun' in config || 'inputsValid' in config) ||\n !('outputs' in config) ||\n !('sections' in config)\n )\n throw new Error('\"config\" has unexpected structure');\n\n const code = await getFileContent(flags.sourceBundle);\n if (code !== undefined) {\n config.code = {\n type: 'plain',\n content: code\n };\n }\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(config));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { BlockRegistryV2, loadPackDescriptionRaw } from '../v2';\nimport path from 'path';\nimport {\n overrideDescriptionVersion,\n overrideManifestVersion,\n StableChannel\n} from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\nexport default class MarkStable extends Command {\n static description = 'Mark target block stable';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n channel: Flags.string({\n char: 'c',\n hidden: true,\n summary: 'custom channel',\n helpValue: '<channel name>',\n default: StableChannel\n }),\n\n 'version-override': Flags.file({\n char: 'v',\n summary: 'override package version'\n }),\n\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n }),\n\n unmark: Flags.boolean({\n summary:\n 'reverses meaning of this command, flag can be used to remove \"stable\" flag from the package',\n default: false\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(MarkStable);\n let description = await loadPackDescriptionRaw(path.resolve(flags.modulePath));\n if (flags['version-override'])\n description = overrideDescriptionVersion(description, flags['version-override']);\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n\n if (flags.unmark) await registry.removePackageFromChannel(description.id, flags.channel);\n else await registry.addPackageToChannel(description.id, flags.channel);\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { loadPackDescription } from '../v2/source_package';\nimport path from 'path';\nimport { buildBlockPackDist } from '../v2/build_dist';\n\nexport default class PackBlock extends Command {\n static description =\n 'Builds block pack and outputs a block pack manifest consolidating all ' +\n 'references assets into a single folder';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destinationPath: Flags.string({\n char: 'o',\n summary: 'output folder',\n helpValue: '<path>',\n default: './block-pack'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(PackBlock);\n const description = await loadPackDescription(path.resolve(flags.modulePath));\n await buildBlockPackDist(description, path.resolve(flags.destinationPath));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'node:fs';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\nimport { ManifestFileName } from '../v2/registry/schema_public';\nimport { BlockPackManifest, overrideManifestVersion, StableChannel } from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io/storage';\nimport { BlockRegistryV2 } from '../v2/registry/registry';\nimport path from 'node:path';\n\nfunction simpleDeepMerge<T extends Record<string, unknown>>(\n target: Record<string, unknown>,\n source: T\n): T {\n const result = { ...target };\n\n for (const key in source) {\n if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {\n if (result[key] && typeof result[key] === 'object' && !Array.isArray(result[key])) {\n result[key] = simpleDeepMerge(result[key] as Record<string, unknown>, source[key] as Record<string, unknown>);\n } else {\n result[key] = source[key];\n }\n } else {\n result[key] = source[key];\n }\n }\n\n return result as T;\n}\n\nexport default class Publish extends Command {\n static description =\n 'Publishes the block package and refreshes the registry (for v2 block-pack schema)';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n manifest: Flags.file({\n char: 'm',\n summary: 'manifest file path',\n exists: true,\n default: `./block-pack/${ManifestFileName}`\n }),\n\n 'version-override': Flags.file({\n char: 'v',\n summary: 'override package version'\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n }),\n\n unstable: Flags.boolean({\n summary: 'do not add the published package to stable channel',\n default: false,\n env: 'PL_PUBLISH_UNSTABLE'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Publish);\n\n const manifestPath = path.resolve(flags.manifest);\n const rawManifest = JSON.parse(await fs.promises.readFile(manifestPath, { encoding: 'utf-8' }));\n let manifest = BlockPackManifest.parse(rawManifest);\n // To keep extra fields from the manifest and keep coerced fields\n manifest = simpleDeepMerge(rawManifest, manifest);\n const manifestRoot = path.dirname(manifestPath);\n\n this.log(`Manifest root = ${manifestRoot}`);\n\n if (flags['version-override'])\n manifest = overrideManifestVersion(manifest, flags['version-override']);\n\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n\n await registry.publishPackage(manifest, async (file) =>\n Buffer.from(await fs.promises.readFile(path.resolve(manifestRoot, file)))\n );\n\n if (!flags.unstable) {\n this.log(`Adding package to ${StableChannel} channel...`);\n await registry.addPackageToChannel(manifest.description.id, StableChannel);\n }\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { BlockRegistryV2, loadPackDescriptionRaw } from '../v2';\nimport path from 'path';\nimport {\n overrideDescriptionVersion,\n overrideManifestVersion,\n StableChannel\n} from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\nexport default class RefreshRegistry extends Command {\n static description = 'Refresh overview files based on published but not proecessed artefacts';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n mode: Flags.string({\n char: 'm',\n summary: 'refresh mode (allowed valiues: \"force\", \"normal\", \"dry-run\")',\n helpValue: '<mode>',\n options: ['force', 'normal', 'dry-run'],\n env: 'PL_REGISTRY_REFRESH_DRY_RUN',\n default: 'normal'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(RefreshRegistry);\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n await registry.updateIfNeeded(flags.mode as 'force' | 'normal' | 'dry-run');\n }\n}\n","import { Flags } from '@oclif/core';\nimport path from 'node:path';\n\nexport interface TargetFile {\n src: string;\n destName: string;\n}\n\nfunction parseTargetFile(arg: string): TargetFile {\n const match = arg.match(/(?<destName>[^\\/\\\\]+)=(?<src>.*)/);\n if (match) {\n const { src, destName } = match.groups!;\n return { src, destName };\n } else {\n return { src: arg, destName: path.basename(arg) };\n }\n}\n\nexport const targetFile = Flags.custom<TargetFile>({\n summary: 'target files to upload',\n helpValue: 'file_path | package_name=file_path',\n parse: async (arg) => parseTargetFile(arg)\n});\n","import { Command, Flags } from '@oclif/core';\nimport { getConfig } from '../registry_v1/config';\nimport { targetFile } from '../registry_v1/flags';\nimport fs from 'node:fs';\nimport YAML from 'yaml';\nimport { PlRegPackageConfigDataShard } from '../registry_v1/config_schema';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\ntype BasicConfigField = keyof PlRegPackageConfigDataShard &\n ('registry' | 'organization' | 'package' | 'version');\nconst BasicConfigFields: BasicConfigField[] = ['registry', 'organization', 'package', 'version'];\n\nexport default class UploadPackageV1 extends Command {\n static description = 'Uploads V1 package and refreshes the registry';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry or alias from .pl.reg',\n helpValue: '<address|alias>',\n env: 'PL_REGISTRY'\n }),\n\n organization: Flags.string({\n char: 'o',\n summary: 'target organisation',\n env: 'PL_PACKAGE_ORGANIZATION'\n }),\n\n package: Flags.string({\n char: 'p',\n summary: 'target package',\n env: 'PL_PACKAGE_NAME'\n }),\n\n version: Flags.string({\n char: 'v',\n summary: 'target version',\n env: 'PL_PACKAGE_VERSION'\n }),\n\n meta: Flags.file({\n char: 'm',\n summary: 'json file containing meta information to associate with tha package',\n exists: true\n }),\n\n file: targetFile({\n char: 'f',\n summary: 'package files',\n multiple: true,\n default: []\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(UploadPackageV1);\n const configFromFlags: PlRegPackageConfigDataShard = PlRegPackageConfigDataShard.parse({});\n\n for (const field of BasicConfigFields) if (flags[field]) configFromFlags[field] = flags[field];\n\n if (flags.meta) {\n if (flags.meta.endsWith('.json'))\n configFromFlags.meta = JSON.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n else if (flags.meta.endsWith('.yaml'))\n configFromFlags.meta = YAML.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n }\n\n for (const targetFile of flags.file) {\n configFromFlags.files[targetFile.destName] = targetFile.src;\n }\n\n const conf = await getConfig(configFromFlags);\n\n this.log(YAML.stringify(conf.conf));\n\n const registry = conf.createRegistry(new OclifLoggerAdapter(this));\n const name = conf.fullPackageName;\n\n const builder = registry.constructNewPackage(name);\n\n for (const [dst, src] of Object.entries(conf.conf.files)) {\n this.log(`Uploading ${src} -> ${dst} ...`);\n const content = await fs.promises.readFile(src);\n await builder.addFile(dst, content);\n }\n\n this.log(`Uploading meta information...`);\n await builder.writeMeta(conf.conf.meta);\n await builder.finish();\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","// DO NOT EDIT. This file was generated by oclif-index utility.\n\nimport Cmd0 from './build-meta';\nimport Cmd1 from './build-model';\nimport Cmd3 from './mark-stable';\nimport Cmd4 from './pack';\nimport Cmd5 from './publish';\nimport Cmd6 from './refresh-registry';\nimport Cmd7 from './upload-package-v1';\n\n// prettier-ignore\nexport const COMMANDS = {\n 'build-meta': Cmd0,\n 'build-model': Cmd1,\n 'mark-stable': Cmd3,\n 'pack': Cmd4,\n 'publish': Cmd5,\n 'refresh-registry': Cmd6,\n 'upload-package-v1': Cmd7\n};\n"],"names":["_BuildMeta","Command","flags","modulePath","path","descriptionRaw","loadPackDescriptionRaw","metaEmbedded","BlockPackMetaEmbedAbsoluteBase64","BlockPackMetaDescription","fs","__publicField","Flags","BuildMeta","getFileContent","error","_BuildModel","model","platforma","config","code","BuildModel","_MarkStable","description","overrideDescriptionVersion","storage","storageByUrl","registry","BlockRegistryV2","OclifLoggerAdapter","StableChannel","MarkStable","_PackBlock","loadPackDescription","buildBlockPackDist","PackBlock","simpleDeepMerge","target","source","result","key","_Publish","manifestPath","rawManifest","manifest","BlockPackManifest","manifestRoot","overrideManifestVersion","file","ManifestFileName","Publish","_RefreshRegistry","RefreshRegistry","parseTargetFile","arg","match","src","destName","targetFile","BasicConfigFields","_UploadPackageV1","configFromFlags","PlRegPackageConfigDataShard","field","YAML","conf","getConfig","name","builder","dst","content","UploadPackageV1","COMMANDS","Cmd0","Cmd1","Cmd3","Cmd4","Cmd5","Cmd6","Cmd7"],"mappings":"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"}
package/dist/cli.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  var O = Object.defineProperty;
2
- var T = (i, e, a) => e in i ? O(i, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : i[e] = a;
3
- var o = (i, e, a) => T(i, typeof e != "symbol" ? e + "" : e, a);
2
+ var j = (i, e, a) => e in i ? O(i, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : i[e] = a;
3
+ var o = (i, e, a) => j(i, typeof e != "symbol" ? e + "" : e, a);
4
4
  import { Command as f, Flags as r } from "@oclif/core";
5
5
  import c from "node:path";
6
6
  import m from "node:fs";
@@ -8,8 +8,8 @@ import "zod";
8
8
  import "mime-types";
9
9
  import "tar";
10
10
  import "@milaboratories/resolve-helper";
11
- import { l as L, B as j, a as Y, s as V, b as x, c as D, d as M, M as q, P as B, g as J } from "./config-DwOM2V6u.mjs";
12
- import { StableChannel as H, overrideDescriptionVersion as _, BlockPackManifest as $, overrideManifestVersion as K } from "@milaboratories/pl-model-middle-layer";
11
+ import { l as T, B as Y, a as D, s as x, b as I, c as M, d as B, M as _, P as q, g as H } from "./config-VnABe7ki.mjs";
12
+ import { StableChannel as P, overrideDescriptionVersion as J, BlockPackManifest as $, overrideManifestVersion as U } from "@milaboratories/pl-model-middle-layer";
13
13
  import "@milaboratories/pl-model-common";
14
14
  import "@milaboratories/ts-helpers";
15
15
  import "canonicalize";
@@ -17,11 +17,11 @@ import "lru-cache";
17
17
  import "undici";
18
18
  import "@milaboratories/pl-http";
19
19
  import { OclifLoggerAdapter as b } from "@milaboratories/ts-helpers-oclif";
20
- import I from "yaml";
20
+ import L from "yaml";
21
21
  const u = class u extends f {
22
22
  async run() {
23
- const { flags: e } = await this.parse(u), a = c.resolve(e.modulePath), t = await L(a), s = await j.parseAsync(
24
- Y(a).parse(t.meta)
23
+ const { flags: e } = await this.parse(u), a = c.resolve(e.modulePath), t = await T(a), s = await Y.parseAsync(
24
+ D(a).parse(t.meta)
25
25
  );
26
26
  await m.promises.writeFile(c.resolve(e.destination), JSON.stringify(s));
27
27
  }
@@ -40,8 +40,8 @@ o(u, "description", "Extracts meta information from blocks package.json and outp
40
40
  required: !0
41
41
  })
42
42
  });
43
- let P = u;
44
- async function z(i) {
43
+ let E = u;
44
+ async function K(i) {
45
45
  try {
46
46
  return await m.promises.readFile(i, "utf8");
47
47
  } catch (e) {
@@ -55,18 +55,18 @@ const p = class p extends f {
55
55
  const { flags: e } = await this.parse(p), a = c.resolve(e.modulePath);
56
56
  let { model: t, platforma: s } = require(a);
57
57
  if (t || (t = s), !t) throw new Error('"model" export not found');
58
- const { config: n } = t;
59
- if (!n)
58
+ const { config: l } = t;
59
+ if (!l)
60
60
  throw new Error(
61
61
  'Malformed "model" object, check it is created with "BlockModel" and ".done()" is executed as the call in the chain.'
62
62
  );
63
- if (!("canRun" in n || "inputsValid" in n) || !("outputs" in n) || !("sections" in n))
63
+ if (!("canRun" in l || "inputsValid" in l) || !("outputs" in l) || !("sections" in l))
64
64
  throw new Error('"config" has unexpected structure');
65
- const d = await z(e.sourceBundle);
66
- d !== void 0 && (n.code = {
65
+ const d = await K(e.sourceBundle);
66
+ d !== void 0 && (l.code = {
67
67
  type: "plain",
68
68
  content: d
69
- }), await m.promises.writeFile(c.resolve(e.destination), JSON.stringify(n));
69
+ }), await m.promises.writeFile(c.resolve(e.destination), JSON.stringify(l));
70
70
  }
71
71
  };
72
72
  o(p, "description", "Extracts and outputs block model JSON from pre-built block model module"), o(p, "flags", {
@@ -89,13 +89,13 @@ o(p, "description", "Extracts and outputs block model JSON from pre-built block
89
89
  default: "./dist/model.json"
90
90
  })
91
91
  });
92
- let E = p;
92
+ let R = p;
93
93
  const h = class h extends f {
94
94
  async run() {
95
95
  const { flags: e } = await this.parse(h);
96
- let a = await L(c.resolve(e.modulePath));
97
- e["version-override"] && (a = _(a, e["version-override"]));
98
- const t = V(e.registry), s = new x(t, new b(this));
96
+ let a = await T(c.resolve(e.modulePath));
97
+ e["version-override"] && (a = J(a, e["version-override"]));
98
+ const t = x(e.registry), s = new I(t, new b(this));
99
99
  e.unmark ? await s.removePackageFromChannel(a.id, e.channel) : await s.addPackageToChannel(a.id, e.channel), e.refresh && await s.updateIfNeeded();
100
100
  }
101
101
  };
@@ -111,7 +111,7 @@ o(h, "description", "Mark target block stable"), o(h, "flags", {
111
111
  hidden: !0,
112
112
  summary: "custom channel",
113
113
  helpValue: "<channel name>",
114
- default: H
114
+ default: P
115
115
  }),
116
116
  "version-override": r.file({
117
117
  char: "v",
@@ -135,11 +135,11 @@ o(h, "description", "Mark target block stable"), o(h, "flags", {
135
135
  default: !1
136
136
  })
137
137
  });
138
- let R = h;
138
+ let N = h;
139
139
  const g = class g extends f {
140
140
  async run() {
141
- const { flags: e } = await this.parse(g), a = await D(c.resolve(e.modulePath));
142
- await M(a, c.resolve(e.destinationPath));
141
+ const { flags: e } = await this.parse(g), a = await M(c.resolve(e.modulePath));
142
+ await B(a, c.resolve(e.destinationPath));
143
143
  }
144
144
  };
145
145
  o(g, "description", "Builds block pack and outputs a block pack manifest consolidating all references assets into a single folder"), o(g, "flags", {
@@ -156,7 +156,7 @@ o(g, "description", "Builds block pack and outputs a block pack manifest consoli
156
156
  default: "./block-pack"
157
157
  })
158
158
  });
159
- let N = g;
159
+ let F = g;
160
160
  function C(i, e) {
161
161
  const a = { ...i };
162
162
  for (const t in e)
@@ -168,13 +168,13 @@ const y = class y extends f {
168
168
  const { flags: e } = await this.parse(y), a = c.resolve(e.manifest), t = JSON.parse(await m.promises.readFile(a, { encoding: "utf-8" }));
169
169
  let s = $.parse(t);
170
170
  s = C(t, s);
171
- const n = c.dirname(a);
172
- this.log(`Manifest root = ${n}`), e["version-override"] && (s = K(s, e["version-override"]));
173
- const d = V(e.registry), l = new x(d, new b(this));
174
- await l.publishPackage(
171
+ const l = c.dirname(a);
172
+ this.log(`Manifest root = ${l}`), e["version-override"] && (s = U(s, e["version-override"]));
173
+ const d = x(e.registry), n = new I(d, new b(this));
174
+ await n.publishPackage(
175
175
  s,
176
- async (k) => Buffer.from(await m.promises.readFile(c.resolve(n, k)))
177
- ), e.refresh && await l.updateIfNeeded();
176
+ async (k) => Buffer.from(await m.promises.readFile(c.resolve(l, k)))
177
+ ), e.unstable || (this.log(`Adding package to ${P} channel...`), await n.addPackageToChannel(s.description.id, P)), e.refresh && await n.updateIfNeeded();
178
178
  }
179
179
  };
180
180
  o(y, "description", "Publishes the block package and refreshes the registry (for v2 block-pack schema)"), o(y, "flags", {
@@ -189,7 +189,7 @@ o(y, "description", "Publishes the block package and refreshes the registry (for
189
189
  char: "m",
190
190
  summary: "manifest file path",
191
191
  exists: !0,
192
- default: `./block-pack/${q}`
192
+ default: `./block-pack/${_}`
193
193
  }),
194
194
  "version-override": r.file({
195
195
  char: "v",
@@ -200,13 +200,18 @@ o(y, "description", "Publishes the block package and refreshes the registry (for
200
200
  default: !0,
201
201
  allowNo: !0,
202
202
  env: "PL_REGISTRY_REFRESH"
203
+ }),
204
+ unstable: r.boolean({
205
+ summary: "do not add the published package to stable channel",
206
+ default: !1,
207
+ env: "PL_PUBLISH_UNSTABLE"
203
208
  })
204
209
  });
205
- let F = y;
210
+ let A = y;
206
211
  const w = class w extends f {
207
212
  async run() {
208
- const { flags: e } = await this.parse(w), a = V(e.registry);
209
- await new x(a, new b(this)).updateIfNeeded(e.mode);
213
+ const { flags: e } = await this.parse(w), a = x(e.registry);
214
+ await new I(a, new b(this)).updateIfNeeded(e.mode);
210
215
  }
211
216
  };
212
217
  o(w, "description", "Refresh overview files based on published but not proecessed artefacts"), o(w, "flags", {
@@ -226,8 +231,8 @@ o(w, "description", "Refresh overview files based on published but not proecesse
226
231
  default: "normal"
227
232
  })
228
233
  });
229
- let A = w;
230
- function U(i) {
234
+ let S = w;
235
+ function z(i) {
231
236
  const e = i.match(/(?<destName>[^\/\\]+)=(?<src>.*)/);
232
237
  if (e) {
233
238
  const { src: a, destName: t } = e.groups;
@@ -238,25 +243,25 @@ function U(i) {
238
243
  const W = r.custom({
239
244
  summary: "target files to upload",
240
245
  helpValue: "file_path | package_name=file_path",
241
- parse: async (i) => U(i)
246
+ parse: async (i) => z(i)
242
247
  }), Z = ["registry", "organization", "package", "version"], v = class v extends f {
243
248
  async run() {
244
- const { flags: e } = await this.parse(v), a = B.parse({});
245
- for (const l of Z) e[l] && (a[l] = e[l]);
249
+ const { flags: e } = await this.parse(v), a = q.parse({});
250
+ for (const n of Z) e[n] && (a[n] = e[n]);
246
251
  e.meta && (e.meta.endsWith(".json") ? a.meta = JSON.parse(
247
252
  await m.promises.readFile(e.meta, { encoding: "utf-8" })
248
- ) : e.meta.endsWith(".yaml") && (a.meta = I.parse(
253
+ ) : e.meta.endsWith(".yaml") && (a.meta = L.parse(
249
254
  await m.promises.readFile(e.meta, { encoding: "utf-8" })
250
255
  )));
251
- for (const l of e.file)
252
- a.files[l.destName] = l.src;
253
- const t = await J(a);
254
- this.log(I.stringify(t.conf));
255
- const s = t.createRegistry(new b(this)), n = t.fullPackageName, d = s.constructNewPackage(n);
256
- for (const [l, k] of Object.entries(t.conf.files)) {
257
- this.log(`Uploading ${k} -> ${l} ...`);
256
+ for (const n of e.file)
257
+ a.files[n.destName] = n.src;
258
+ const t = await H(a);
259
+ this.log(L.stringify(t.conf));
260
+ const s = t.createRegistry(new b(this)), l = t.fullPackageName, d = s.constructNewPackage(l);
261
+ for (const [n, k] of Object.entries(t.conf.files)) {
262
+ this.log(`Uploading ${k} -> ${n} ...`);
258
263
  const G = await m.promises.readFile(k);
259
- await d.addFile(l, G);
264
+ await d.addFile(n, G);
260
265
  }
261
266
  this.log("Uploading meta information..."), await d.writeMeta(t.conf.meta), await d.finish(), e.refresh && await s.updateIfNeeded();
262
267
  }
@@ -301,15 +306,15 @@ o(v, "description", "Uploads V1 package and refreshes the registry"), o(v, "flag
301
306
  env: "PL_REGISTRY_REFRESH"
302
307
  })
303
308
  });
304
- let S = v;
309
+ let V = v;
305
310
  const ge = {
306
- "build-meta": P,
307
- "build-model": E,
308
- "mark-stable": R,
309
- pack: N,
310
- publish: F,
311
- "refresh-registry": A,
312
- "upload-package-v1": S
311
+ "build-meta": E,
312
+ "build-model": R,
313
+ "mark-stable": N,
314
+ pack: F,
315
+ publish: A,
316
+ "refresh-registry": S,
317
+ "upload-package-v1": V
313
318
  };
314
319
  export {
315
320
  ge as COMMANDS
package/dist/cli.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.mjs","sources":["../src/cmd/build-meta.ts","../src/cmd/build-model.ts","../src/cmd/mark-stable.ts","../src/cmd/pack.ts","../src/cmd/publish.ts","../src/cmd/refresh-registry.ts","../src/registry_v1/flags.ts","../src/cmd/upload-package-v1.ts","../src/cmd/index.ts"],"sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport path from 'path';\nimport fs from 'fs';\nimport { loadPackDescriptionRaw } from '../v2';\nimport { BlockPackMetaDescription, BlockPackMetaEmbedAbsoluteBase64 } from '../v2/model/block_meta';\n\nexport default class BuildMeta extends Command {\n static override description =\n 'Extracts meta information from blocks package.json and outputs meta.json with embedded binary ' +\n 'and textual information linked from the meta section.';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output meta.json file',\n helpValue: '<path>',\n required: true\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildMeta);\n const modulePath = path.resolve(flags.modulePath);\n const descriptionRaw = await loadPackDescriptionRaw(modulePath);\n const metaEmbedded = await BlockPackMetaEmbedAbsoluteBase64.parseAsync(\n BlockPackMetaDescription(modulePath).parse(descriptionRaw.meta)\n );\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(metaEmbedded));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'fs';\nimport path from 'path';\n\nasync function getFileContent(path: string) {\n try {\n return await fs.promises.readFile(path, 'utf8');\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return undefined;\n }\n throw error;\n }\n}\n\nexport default class BuildModel extends Command {\n static override description =\n 'Extracts and outputs block model JSON from pre-built block model module';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n sourceBundle: Flags.string({\n char: 'b',\n summary: 'bundled model code to embed into the model for callback-based rendering to work',\n helpValue: '<path>',\n default: './dist/bundle.js'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output model file',\n helpValue: '<path>',\n default: './dist/model.json'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildModel);\n const modulePath = path.resolve(flags.modulePath); // i.e. folder with package.json file\n let { model, platforma } = require(modulePath);\n\n if (!model) model = platforma;\n if (!model) throw new Error('\"model\" export not found');\n\n const { config } = model;\n\n if (!config)\n throw new Error(\n 'Malformed \"model\" object, check it is created with \"BlockModel\" ' +\n 'and \".done()\" is executed as the call in the chain.'\n );\n\n if (\n !('canRun' in config || 'inputsValid' in config) ||\n !('outputs' in config) ||\n !('sections' in config)\n )\n throw new Error('\"config\" has unexpected structure');\n\n const code = await getFileContent(flags.sourceBundle);\n if (code !== undefined) {\n config.code = {\n type: 'plain',\n content: code\n };\n }\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(config));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { BlockRegistryV2, loadPackDescriptionRaw } from '../v2';\nimport path from 'path';\nimport {\n overrideDescriptionVersion,\n overrideManifestVersion,\n StableChannel\n} from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\nexport default class MarkStable extends Command {\n static description = 'Mark target block stable';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n channel: Flags.string({\n char: 'c',\n hidden: true,\n summary: 'custom channel',\n helpValue: '<channel name>',\n default: StableChannel\n }),\n\n 'version-override': Flags.file({\n char: 'v',\n summary: 'override package version'\n }),\n\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n }),\n\n unmark: Flags.boolean({\n summary:\n 'reverses meaning of this command, flag can be used to remove \"stable\" flag from the package',\n default: false\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(MarkStable);\n let description = await loadPackDescriptionRaw(path.resolve(flags.modulePath));\n if (flags['version-override'])\n description = overrideDescriptionVersion(description, flags['version-override']);\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n\n if (flags.unmark) await registry.removePackageFromChannel(description.id, flags.channel);\n else await registry.addPackageToChannel(description.id, flags.channel);\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { loadPackDescription } from '../v2/source_package';\nimport path from 'path';\nimport { buildBlockPackDist } from '../v2/build_dist';\n\nexport default class PackBlock extends Command {\n static description =\n 'Builds block pack and outputs a block pack manifest consolidating all ' +\n 'references assets into a single folder';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destinationPath: Flags.string({\n char: 'o',\n summary: 'output folder',\n helpValue: '<path>',\n default: './block-pack'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(PackBlock);\n const description = await loadPackDescription(path.resolve(flags.modulePath));\n await buildBlockPackDist(description, path.resolve(flags.destinationPath));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'node:fs';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\nimport { ManifestFileName } from '../v2/registry/schema_public';\nimport { BlockPackManifest, overrideManifestVersion } from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io/storage';\nimport { BlockRegistryV2 } from '../v2/registry/registry';\nimport path from 'node:path';\n\nfunction simpleDeepMerge<T extends Record<string, unknown>>(\n target: Record<string, unknown>,\n source: T\n): T {\n const result = { ...target };\n\n for (const key in source) {\n if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {\n if (result[key] && typeof result[key] === 'object' && !Array.isArray(result[key])) {\n result[key] = simpleDeepMerge(result[key] as Record<string, unknown>, source[key] as Record<string, unknown>);\n } else {\n result[key] = source[key];\n }\n } else {\n result[key] = source[key];\n }\n }\n\n return result as T;\n}\n\nexport default class Publish extends Command {\n static description =\n 'Publishes the block package and refreshes the registry (for v2 block-pack schema)';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n manifest: Flags.file({\n char: 'm',\n summary: 'manifest file path',\n exists: true,\n default: `./block-pack/${ManifestFileName}`\n }),\n\n 'version-override': Flags.file({\n char: 'v',\n summary: 'override package version'\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Publish);\n\n const manifestPath = path.resolve(flags.manifest);\n const rawManifest = JSON.parse(await fs.promises.readFile(manifestPath, { encoding: 'utf-8' }));\n let manifest = BlockPackManifest.parse(rawManifest);\n // To keep extra fields from the manifest and keep coerced fields\n manifest = simpleDeepMerge(rawManifest, manifest);\n const manifestRoot = path.dirname(manifestPath);\n\n this.log(`Manifest root = ${manifestRoot}`);\n\n if (flags['version-override'])\n manifest = overrideManifestVersion(manifest, flags['version-override']);\n\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n\n await registry.publishPackage(manifest, async (file) =>\n Buffer.from(await fs.promises.readFile(path.resolve(manifestRoot, file)))\n );\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { BlockRegistryV2, loadPackDescriptionRaw } from '../v2';\nimport path from 'path';\nimport {\n overrideDescriptionVersion,\n overrideManifestVersion,\n StableChannel\n} from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\nexport default class RefreshRegistry extends Command {\n static description = 'Refresh overview files based on published but not proecessed artefacts';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n mode: Flags.string({\n char: 'm',\n summary: 'refresh mode (allowed valiues: \"force\", \"normal\", \"dry-run\")',\n helpValue: '<mode>',\n options: ['force', 'normal', 'dry-run'],\n env: 'PL_REGISTRY_REFRESH_DRY_RUN',\n default: 'normal'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(RefreshRegistry);\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n await registry.updateIfNeeded(flags.mode as 'force' | 'normal' | 'dry-run');\n }\n}\n","import { Flags } from '@oclif/core';\nimport path from 'node:path';\n\nexport interface TargetFile {\n src: string;\n destName: string;\n}\n\nfunction parseTargetFile(arg: string): TargetFile {\n const match = arg.match(/(?<destName>[^\\/\\\\]+)=(?<src>.*)/);\n if (match) {\n const { src, destName } = match.groups!;\n return { src, destName };\n } else {\n return { src: arg, destName: path.basename(arg) };\n }\n}\n\nexport const targetFile = Flags.custom<TargetFile>({\n summary: 'target files to upload',\n helpValue: 'file_path | package_name=file_path',\n parse: async (arg) => parseTargetFile(arg)\n});\n","import { Command, Flags } from '@oclif/core';\nimport { getConfig } from '../registry_v1/config';\nimport { targetFile } from '../registry_v1/flags';\nimport fs from 'node:fs';\nimport YAML from 'yaml';\nimport { PlRegPackageConfigDataShard } from '../registry_v1/config_schema';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\ntype BasicConfigField = keyof PlRegPackageConfigDataShard &\n ('registry' | 'organization' | 'package' | 'version');\nconst BasicConfigFields: BasicConfigField[] = ['registry', 'organization', 'package', 'version'];\n\nexport default class UploadPackageV1 extends Command {\n static description = 'Uploads V1 package and refreshes the registry';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry or alias from .pl.reg',\n helpValue: '<address|alias>',\n env: 'PL_REGISTRY'\n }),\n\n organization: Flags.string({\n char: 'o',\n summary: 'target organisation',\n env: 'PL_PACKAGE_ORGANIZATION'\n }),\n\n package: Flags.string({\n char: 'p',\n summary: 'target package',\n env: 'PL_PACKAGE_NAME'\n }),\n\n version: Flags.string({\n char: 'v',\n summary: 'target version',\n env: 'PL_PACKAGE_VERSION'\n }),\n\n meta: Flags.file({\n char: 'm',\n summary: 'json file containing meta information to associate with tha package',\n exists: true\n }),\n\n file: targetFile({\n char: 'f',\n summary: 'package files',\n multiple: true,\n default: []\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(UploadPackageV1);\n const configFromFlags: PlRegPackageConfigDataShard = PlRegPackageConfigDataShard.parse({});\n\n for (const field of BasicConfigFields) if (flags[field]) configFromFlags[field] = flags[field];\n\n if (flags.meta) {\n if (flags.meta.endsWith('.json'))\n configFromFlags.meta = JSON.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n else if (flags.meta.endsWith('.yaml'))\n configFromFlags.meta = YAML.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n }\n\n for (const targetFile of flags.file) {\n configFromFlags.files[targetFile.destName] = targetFile.src;\n }\n\n const conf = await getConfig(configFromFlags);\n\n this.log(YAML.stringify(conf.conf));\n\n const registry = conf.createRegistry(new OclifLoggerAdapter(this));\n const name = conf.fullPackageName;\n\n const builder = registry.constructNewPackage(name);\n\n for (const [dst, src] of Object.entries(conf.conf.files)) {\n this.log(`Uploading ${src} -> ${dst} ...`);\n const content = await fs.promises.readFile(src);\n await builder.addFile(dst, content);\n }\n\n this.log(`Uploading meta information...`);\n await builder.writeMeta(conf.conf.meta);\n await builder.finish();\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","// DO NOT EDIT. This file was generated by oclif-index utility.\n\nimport Cmd0 from './build-meta';\nimport Cmd1 from './build-model';\nimport Cmd3 from './mark-stable';\nimport Cmd4 from './pack';\nimport Cmd5 from './publish';\nimport Cmd6 from './refresh-registry';\nimport Cmd7 from './upload-package-v1';\n\n// prettier-ignore\nexport const COMMANDS = {\n 'build-meta': Cmd0,\n 'build-model': Cmd1,\n 'mark-stable': Cmd3,\n 'pack': Cmd4,\n 'publish': Cmd5,\n 'refresh-registry': Cmd6,\n 'upload-package-v1': Cmd7\n};\n"],"names":["_BuildMeta","Command","flags","modulePath","path","descriptionRaw","loadPackDescriptionRaw","metaEmbedded","BlockPackMetaEmbedAbsoluteBase64","BlockPackMetaDescription","fs","__publicField","Flags","BuildMeta","getFileContent","error","_BuildModel","model","platforma","config","code","BuildModel","_MarkStable","description","overrideDescriptionVersion","storage","storageByUrl","registry","BlockRegistryV2","OclifLoggerAdapter","StableChannel","MarkStable","_PackBlock","loadPackDescription","buildBlockPackDist","PackBlock","simpleDeepMerge","target","source","result","key","_Publish","manifestPath","rawManifest","manifest","BlockPackManifest","manifestRoot","overrideManifestVersion","file","ManifestFileName","Publish","_RefreshRegistry","RefreshRegistry","parseTargetFile","arg","match","src","destName","targetFile","BasicConfigFields","_UploadPackageV1","configFromFlags","PlRegPackageConfigDataShard","field","YAML","conf","getConfig","name","builder","dst","content","UploadPackageV1","COMMANDS","Cmd0","Cmd1","Cmd3","Cmd4","Cmd5","Cmd6","Cmd7"],"mappings":"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"}
1
+ {"version":3,"file":"cli.mjs","sources":["../src/cmd/build-meta.ts","../src/cmd/build-model.ts","../src/cmd/mark-stable.ts","../src/cmd/pack.ts","../src/cmd/publish.ts","../src/cmd/refresh-registry.ts","../src/registry_v1/flags.ts","../src/cmd/upload-package-v1.ts","../src/cmd/index.ts"],"sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport path from 'path';\nimport fs from 'fs';\nimport { loadPackDescriptionRaw } from '../v2';\nimport { BlockPackMetaDescription, BlockPackMetaEmbedAbsoluteBase64 } from '../v2/model/block_meta';\n\nexport default class BuildMeta extends Command {\n static override description =\n 'Extracts meta information from blocks package.json and outputs meta.json with embedded binary ' +\n 'and textual information linked from the meta section.';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output meta.json file',\n helpValue: '<path>',\n required: true\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildMeta);\n const modulePath = path.resolve(flags.modulePath);\n const descriptionRaw = await loadPackDescriptionRaw(modulePath);\n const metaEmbedded = await BlockPackMetaEmbedAbsoluteBase64.parseAsync(\n BlockPackMetaDescription(modulePath).parse(descriptionRaw.meta)\n );\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(metaEmbedded));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'fs';\nimport path from 'path';\n\nasync function getFileContent(path: string) {\n try {\n return await fs.promises.readFile(path, 'utf8');\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return undefined;\n }\n throw error;\n }\n}\n\nexport default class BuildModel extends Command {\n static override description =\n 'Extracts and outputs block model JSON from pre-built block model module';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n sourceBundle: Flags.string({\n char: 'b',\n summary: 'bundled model code to embed into the model for callback-based rendering to work',\n helpValue: '<path>',\n default: './dist/bundle.js'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output model file',\n helpValue: '<path>',\n default: './dist/model.json'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildModel);\n const modulePath = path.resolve(flags.modulePath); // i.e. folder with package.json file\n let { model, platforma } = require(modulePath);\n\n if (!model) model = platforma;\n if (!model) throw new Error('\"model\" export not found');\n\n const { config } = model;\n\n if (!config)\n throw new Error(\n 'Malformed \"model\" object, check it is created with \"BlockModel\" ' +\n 'and \".done()\" is executed as the call in the chain.'\n );\n\n if (\n !('canRun' in config || 'inputsValid' in config) ||\n !('outputs' in config) ||\n !('sections' in config)\n )\n throw new Error('\"config\" has unexpected structure');\n\n const code = await getFileContent(flags.sourceBundle);\n if (code !== undefined) {\n config.code = {\n type: 'plain',\n content: code\n };\n }\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(config));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { BlockRegistryV2, loadPackDescriptionRaw } from '../v2';\nimport path from 'path';\nimport {\n overrideDescriptionVersion,\n overrideManifestVersion,\n StableChannel\n} from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\nexport default class MarkStable extends Command {\n static description = 'Mark target block stable';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n channel: Flags.string({\n char: 'c',\n hidden: true,\n summary: 'custom channel',\n helpValue: '<channel name>',\n default: StableChannel\n }),\n\n 'version-override': Flags.file({\n char: 'v',\n summary: 'override package version'\n }),\n\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n }),\n\n unmark: Flags.boolean({\n summary:\n 'reverses meaning of this command, flag can be used to remove \"stable\" flag from the package',\n default: false\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(MarkStable);\n let description = await loadPackDescriptionRaw(path.resolve(flags.modulePath));\n if (flags['version-override'])\n description = overrideDescriptionVersion(description, flags['version-override']);\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n\n if (flags.unmark) await registry.removePackageFromChannel(description.id, flags.channel);\n else await registry.addPackageToChannel(description.id, flags.channel);\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { loadPackDescription } from '../v2/source_package';\nimport path from 'path';\nimport { buildBlockPackDist } from '../v2/build_dist';\n\nexport default class PackBlock extends Command {\n static description =\n 'Builds block pack and outputs a block pack manifest consolidating all ' +\n 'references assets into a single folder';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destinationPath: Flags.string({\n char: 'o',\n summary: 'output folder',\n helpValue: '<path>',\n default: './block-pack'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(PackBlock);\n const description = await loadPackDescription(path.resolve(flags.modulePath));\n await buildBlockPackDist(description, path.resolve(flags.destinationPath));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'node:fs';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\nimport { ManifestFileName } from '../v2/registry/schema_public';\nimport { BlockPackManifest, overrideManifestVersion, StableChannel } from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io/storage';\nimport { BlockRegistryV2 } from '../v2/registry/registry';\nimport path from 'node:path';\n\nfunction simpleDeepMerge<T extends Record<string, unknown>>(\n target: Record<string, unknown>,\n source: T\n): T {\n const result = { ...target };\n\n for (const key in source) {\n if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {\n if (result[key] && typeof result[key] === 'object' && !Array.isArray(result[key])) {\n result[key] = simpleDeepMerge(result[key] as Record<string, unknown>, source[key] as Record<string, unknown>);\n } else {\n result[key] = source[key];\n }\n } else {\n result[key] = source[key];\n }\n }\n\n return result as T;\n}\n\nexport default class Publish extends Command {\n static description =\n 'Publishes the block package and refreshes the registry (for v2 block-pack schema)';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n manifest: Flags.file({\n char: 'm',\n summary: 'manifest file path',\n exists: true,\n default: `./block-pack/${ManifestFileName}`\n }),\n\n 'version-override': Flags.file({\n char: 'v',\n summary: 'override package version'\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n }),\n\n unstable: Flags.boolean({\n summary: 'do not add the published package to stable channel',\n default: false,\n env: 'PL_PUBLISH_UNSTABLE'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Publish);\n\n const manifestPath = path.resolve(flags.manifest);\n const rawManifest = JSON.parse(await fs.promises.readFile(manifestPath, { encoding: 'utf-8' }));\n let manifest = BlockPackManifest.parse(rawManifest);\n // To keep extra fields from the manifest and keep coerced fields\n manifest = simpleDeepMerge(rawManifest, manifest);\n const manifestRoot = path.dirname(manifestPath);\n\n this.log(`Manifest root = ${manifestRoot}`);\n\n if (flags['version-override'])\n manifest = overrideManifestVersion(manifest, flags['version-override']);\n\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n\n await registry.publishPackage(manifest, async (file) =>\n Buffer.from(await fs.promises.readFile(path.resolve(manifestRoot, file)))\n );\n\n if (!flags.unstable) {\n this.log(`Adding package to ${StableChannel} channel...`);\n await registry.addPackageToChannel(manifest.description.id, StableChannel);\n }\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { BlockRegistryV2, loadPackDescriptionRaw } from '../v2';\nimport path from 'path';\nimport {\n overrideDescriptionVersion,\n overrideManifestVersion,\n StableChannel\n} from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\nexport default class RefreshRegistry extends Command {\n static description = 'Refresh overview files based on published but not proecessed artefacts';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n mode: Flags.string({\n char: 'm',\n summary: 'refresh mode (allowed valiues: \"force\", \"normal\", \"dry-run\")',\n helpValue: '<mode>',\n options: ['force', 'normal', 'dry-run'],\n env: 'PL_REGISTRY_REFRESH_DRY_RUN',\n default: 'normal'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(RefreshRegistry);\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n await registry.updateIfNeeded(flags.mode as 'force' | 'normal' | 'dry-run');\n }\n}\n","import { Flags } from '@oclif/core';\nimport path from 'node:path';\n\nexport interface TargetFile {\n src: string;\n destName: string;\n}\n\nfunction parseTargetFile(arg: string): TargetFile {\n const match = arg.match(/(?<destName>[^\\/\\\\]+)=(?<src>.*)/);\n if (match) {\n const { src, destName } = match.groups!;\n return { src, destName };\n } else {\n return { src: arg, destName: path.basename(arg) };\n }\n}\n\nexport const targetFile = Flags.custom<TargetFile>({\n summary: 'target files to upload',\n helpValue: 'file_path | package_name=file_path',\n parse: async (arg) => parseTargetFile(arg)\n});\n","import { Command, Flags } from '@oclif/core';\nimport { getConfig } from '../registry_v1/config';\nimport { targetFile } from '../registry_v1/flags';\nimport fs from 'node:fs';\nimport YAML from 'yaml';\nimport { PlRegPackageConfigDataShard } from '../registry_v1/config_schema';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\ntype BasicConfigField = keyof PlRegPackageConfigDataShard &\n ('registry' | 'organization' | 'package' | 'version');\nconst BasicConfigFields: BasicConfigField[] = ['registry', 'organization', 'package', 'version'];\n\nexport default class UploadPackageV1 extends Command {\n static description = 'Uploads V1 package and refreshes the registry';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry or alias from .pl.reg',\n helpValue: '<address|alias>',\n env: 'PL_REGISTRY'\n }),\n\n organization: Flags.string({\n char: 'o',\n summary: 'target organisation',\n env: 'PL_PACKAGE_ORGANIZATION'\n }),\n\n package: Flags.string({\n char: 'p',\n summary: 'target package',\n env: 'PL_PACKAGE_NAME'\n }),\n\n version: Flags.string({\n char: 'v',\n summary: 'target version',\n env: 'PL_PACKAGE_VERSION'\n }),\n\n meta: Flags.file({\n char: 'm',\n summary: 'json file containing meta information to associate with tha package',\n exists: true\n }),\n\n file: targetFile({\n char: 'f',\n summary: 'package files',\n multiple: true,\n default: []\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(UploadPackageV1);\n const configFromFlags: PlRegPackageConfigDataShard = PlRegPackageConfigDataShard.parse({});\n\n for (const field of BasicConfigFields) if (flags[field]) configFromFlags[field] = flags[field];\n\n if (flags.meta) {\n if (flags.meta.endsWith('.json'))\n configFromFlags.meta = JSON.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n else if (flags.meta.endsWith('.yaml'))\n configFromFlags.meta = YAML.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n }\n\n for (const targetFile of flags.file) {\n configFromFlags.files[targetFile.destName] = targetFile.src;\n }\n\n const conf = await getConfig(configFromFlags);\n\n this.log(YAML.stringify(conf.conf));\n\n const registry = conf.createRegistry(new OclifLoggerAdapter(this));\n const name = conf.fullPackageName;\n\n const builder = registry.constructNewPackage(name);\n\n for (const [dst, src] of Object.entries(conf.conf.files)) {\n this.log(`Uploading ${src} -> ${dst} ...`);\n const content = await fs.promises.readFile(src);\n await builder.addFile(dst, content);\n }\n\n this.log(`Uploading meta information...`);\n await builder.writeMeta(conf.conf.meta);\n await builder.finish();\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","// DO NOT EDIT. This file was generated by oclif-index utility.\n\nimport Cmd0 from './build-meta';\nimport Cmd1 from './build-model';\nimport Cmd3 from './mark-stable';\nimport Cmd4 from './pack';\nimport Cmd5 from './publish';\nimport Cmd6 from './refresh-registry';\nimport Cmd7 from './upload-package-v1';\n\n// prettier-ignore\nexport const COMMANDS = {\n 'build-meta': Cmd0,\n 'build-model': Cmd1,\n 'mark-stable': Cmd3,\n 'pack': Cmd4,\n 'publish': Cmd5,\n 'refresh-registry': Cmd6,\n 'upload-package-v1': Cmd7\n};\n"],"names":["_BuildMeta","Command","flags","modulePath","path","descriptionRaw","loadPackDescriptionRaw","metaEmbedded","BlockPackMetaEmbedAbsoluteBase64","BlockPackMetaDescription","fs","__publicField","Flags","BuildMeta","getFileContent","error","_BuildModel","model","platforma","config","code","BuildModel","_MarkStable","description","overrideDescriptionVersion","storage","storageByUrl","registry","BlockRegistryV2","OclifLoggerAdapter","StableChannel","MarkStable","_PackBlock","loadPackDescription","buildBlockPackDist","PackBlock","simpleDeepMerge","target","source","result","key","_Publish","manifestPath","rawManifest","manifest","BlockPackManifest","manifestRoot","overrideManifestVersion","file","ManifestFileName","Publish","_RefreshRegistry","RefreshRegistry","parseTargetFile","arg","match","src","destName","targetFile","BasicConfigFields","_UploadPackageV1","configFromFlags","PlRegPackageConfigDataShard","field","YAML","conf","getConfig","name","builder","dst","content","UploadPackageV1","COMMANDS","Cmd0","Cmd1","Cmd3","Cmd4","Cmd5","Cmd6","Cmd7"],"mappings":"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"}
@@ -7,4 +7,3 @@ export default class BuildMeta extends Command {
7
7
  };
8
8
  run(): Promise<void>;
9
9
  }
10
- //# sourceMappingURL=build-meta.d.ts.map
@@ -8,4 +8,3 @@ export default class BuildModel extends Command {
8
8
  };
9
9
  run(): Promise<void>;
10
10
  }
11
- //# sourceMappingURL=build-model.d.ts.map
@@ -14,4 +14,3 @@ export declare const COMMANDS: {
14
14
  'refresh-registry': typeof Cmd6;
15
15
  'upload-package-v1': typeof Cmd7;
16
16
  };
17
- //# sourceMappingURL=index.d.ts.map
@@ -11,4 +11,3 @@ export default class MarkStable extends Command {
11
11
  };
12
12
  run(): Promise<void>;
13
13
  }
14
- //# sourceMappingURL=mark-stable.d.ts.map
@@ -7,4 +7,3 @@ export default class PackBlock extends Command {
7
7
  };
8
8
  run(): Promise<void>;
9
9
  }
10
- //# sourceMappingURL=pack.d.ts.map
@@ -6,7 +6,7 @@ export default class Publish extends Command {
6
6
  manifest: import('@oclif/core/interfaces').OptionFlag<string, import('@oclif/core/interfaces').CustomOptions>;
7
7
  'version-override': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
8
8
  refresh: import('@oclif/core/interfaces').BooleanFlag<boolean>;
9
+ unstable: import('@oclif/core/interfaces').BooleanFlag<boolean>;
9
10
  };
10
11
  run(): Promise<void>;
11
12
  }
12
- //# sourceMappingURL=publish.d.ts.map
@@ -7,4 +7,3 @@ export default class RefreshRegistry extends Command {
7
7
  };
8
8
  run(): Promise<void>;
9
9
  }
10
- //# sourceMappingURL=refresh-registry.d.ts.map
@@ -12,4 +12,3 @@ export default class UploadPackageV1 extends Command {
12
12
  };
13
13
  run(): Promise<void>;
14
14
  }
15
- //# sourceMappingURL=upload-package-v1.d.ts.map