pbiplint 0.1.2 → 0.2.0

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 (102) hide show
  1. package/NOTICE +27 -0
  2. package/README.md +29 -7
  3. package/dist/pbiplint.mjs +12628 -2798
  4. package/package.json +5 -3
  5. package/sample/Messy Sales Demo.Report/.platform +11 -0
  6. package/sample/Messy Sales Demo.Report/definition/bookmarks/bookmarks.json +8 -0
  7. package/sample/Messy Sales Demo.Report/definition/bookmarks/f56cd9f5f68d30c0e4e3.bookmark.json +41 -0
  8. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/page.json +8 -0
  9. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3130cf9463309528054d/visual.json +185 -0
  10. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3e7724efa859ff7b9701/visual.json +130 -0
  11. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3fe8e6907656325b8e86/visual.json +187 -0
  12. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/51bb4f6f5f7f71ed0a3c/visual.json +69 -0
  13. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/d2995ea3e9b9d9244bf6/visual.json +31 -0
  14. package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/d307b6575ca81d163aac/visual.json +186 -0
  15. package/sample/Messy Sales Demo.Report/definition/pages/27f668864829019f9251/page.json +8 -0
  16. package/sample/Messy Sales Demo.Report/definition/pages/27f668864829019f9251/visuals/1e7f28bf49e435b68c50/visual.json +156 -0
  17. package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/page.json +8 -0
  18. package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/6c96585893b6f603b9ac/visual.json +185 -0
  19. package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/6e99982d842b0d962e16/visual.json +189 -0
  20. package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/8081f5bb7075e7b008bc/visual.json +185 -0
  21. package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/c5147d97ff0b18a24336/visual.json +185 -0
  22. package/sample/Messy Sales Demo.Report/definition/pages/3b33a1ae720bb93d48b9/page.json +48 -0
  23. package/sample/Messy Sales Demo.Report/definition/pages/3b33a1ae720bb93d48b9/visuals/e32acaa3eb3e6dd81dca/visual.json +195 -0
  24. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/page.json +8 -0
  25. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/23f7a6962538ec0c0ff4/visual.json +155 -0
  26. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/2b5386e9de3e1fbb1afa/visual.json +147 -0
  27. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/307e834045a168e7a394/visual.json +305 -0
  28. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/4457e97e02f61c8f609b/visual.json +176 -0
  29. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/49158e1e7dce5e8d37fd/visual.json +68 -0
  30. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/6500e9c3f9d74f2958c7/visual.json +312 -0
  31. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/6edcdc464f4016c0264c/visual.json +185 -0
  32. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/88530bc0f64114317e2e/visual.json +155 -0
  33. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/a75a96eee1fd0cf4cef7/visual.json +185 -0
  34. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/bda61916a7b1efdee3fe/visual.json +145 -0
  35. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/d93ac3d110ff0a347497/visual.json +185 -0
  36. package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/db47426e580241dac6b8/visual.json +104 -0
  37. package/sample/Messy Sales Demo.Report/definition/pages/52db6f0b218c638f8761/page.json +8 -0
  38. package/sample/Messy Sales Demo.Report/definition/pages/52db6f0b218c638f8761/visuals/8edac00805f721edc1c1/visual.json +196 -0
  39. package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/page.json +8 -0
  40. package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/598cfda00746e83f4896/visual.json +162 -0
  41. package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/6c71af13bcdb4c28cce8/visual.json +133 -0
  42. package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/8aa02d4e168b39268df4/visual.json +185 -0
  43. package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/ab6166569dd355894dc2/visual.json +192 -0
  44. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/page.json +8 -0
  45. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/05d453611bc204914797/visual.json +291 -0
  46. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/0dcfd84094ee2cfe485b/visual.json +185 -0
  47. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/11146719bd576271e11a/visual.json +238 -0
  48. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/338338c16a0d509bdaf5/visual.json +238 -0
  49. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/3ee96306fb282e5dfe38/visual.json +185 -0
  50. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/404c49f853ea8dde3b6c/visual.json +238 -0
  51. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/55ddee811456e2b049cf/visual.json +291 -0
  52. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/5bf9a67d54ba75bb7be1/visual.json +185 -0
  53. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/63f71d3b642fb6c8a9ba/visual.json +291 -0
  54. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/80873270a475b81ef0fb/visual.json +185 -0
  55. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/838ab6226a66fdfb13dc/visual.json +238 -0
  56. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/9b12811305cdd50a97c4/visual.json +185 -0
  57. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/a1a8f953ebef2d733956/visual.json +291 -0
  58. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/b7e7f7c15ff9284e72d3/visual.json +291 -0
  59. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/b9229ce2b277de70e402/visual.json +185 -0
  60. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/cf88d237300a7d6a6709/visual.json +185 -0
  61. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/d66ccf48cfa017d01124/visual.json +185 -0
  62. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/d8ab941db2b7bd34c19e/visual.json +238 -0
  63. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/daadba18a786c3e25d97/visual.json +185 -0
  64. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/e1552553ac4f0856010e/visual.json +185 -0
  65. package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/f108285d5ebc6bcdba77/visual.json +185 -0
  66. package/sample/Messy Sales Demo.Report/definition/pages/b52832c4d9f487868953/page.json +9 -0
  67. package/sample/Messy Sales Demo.Report/definition/pages/b52832c4d9f487868953/visuals/2a7e16428070011e60ec/visual.json +55 -0
  68. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/page.json +8 -0
  69. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/3fa0fc35d2dd20b9b1f2/visual.json +186 -0
  70. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/55b04f4555a4615ecd32/visual.json +185 -0
  71. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/94c00b0b84a51b0e0b39/visual.json +140 -0
  72. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/acc24e8136085a985f3f/visual.json +32 -0
  73. package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/de6a17691cc952e6d7dd/visual.json +120 -0
  74. package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/page.json +8 -0
  75. package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/visuals/27e669b1ee2de2c3ac9d/visual.json +96 -0
  76. package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/visuals/b230f06615cf87ee455f/visual.json +185 -0
  77. package/sample/Messy Sales Demo.Report/definition/pages/pages.json +17 -0
  78. package/sample/Messy Sales Demo.Report/definition/report.json +66 -0
  79. package/sample/Messy Sales Demo.Report/definition/reportExtensions.json +46 -0
  80. package/sample/Messy Sales Demo.Report/definition/version.json +4 -0
  81. package/sample/Messy Sales Demo.Report/definition.pbir +9 -0
  82. package/sample/{.platform → Messy Sales Demo.SemanticModel/.platform } +1 -1
  83. package/sample/Messy Sales Demo.SemanticModel/definition/cultures/en-US.tmdl +32 -0
  84. package/sample/Messy Sales Demo.SemanticModel/definition/database.tmdl +3 -0
  85. package/sample/{definition/model.tmdl → Messy Sales Demo.SemanticModel/definition/model.tmdl } +3 -0
  86. package/sample/{definition/relationships.tmdl → Messy Sales Demo.SemanticModel/definition/relationships.tmdl } +6 -0
  87. package/sample/{definition/tables/Customer.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Customer.tmdl } +5 -0
  88. package/sample/Messy Sales Demo.SemanticModel/definition/tables/DateTableTemplate_96ead6f8-eef3-4336-a020-6641aa278e92.tmdl +118 -0
  89. package/sample/Messy Sales Demo.SemanticModel/definition/tables/Employee Grouping.tmdl +49 -0
  90. package/sample/Messy Sales Demo.SemanticModel/definition/tables/LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d.tmdl +116 -0
  91. package/sample/{definition/tables/Sales.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Sales.tmdl } +42 -42
  92. package/sample/{definition/tables/Store.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Store.tmdl } +15 -0
  93. package/sample/Messy Sales Demo.pbip +14 -0
  94. package/sample/pbiplint.config.json +7 -0
  95. package/sample/.pbi/editorSettings.json +0 -8
  96. package/sample/definition/cultures/en-US.tmdl +0 -2
  97. package/sample/definition/database.tmdl +0 -3
  98. /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Date.tmdl +0 -0
  99. /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Employee.tmdl +0 -0
  100. /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Product.tmdl +0 -0
  101. /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Promotion.tmdl +0 -0
  102. /package/sample/{definition.pbism → Messy Sales Demo.SemanticModel/definition.pbism} +0 -0
@@ -1,6 +1,48 @@
1
1
  table Sales
2
2
  lineageTag: e5dd0f16-ac53-567e-9fd5-189bf2d92f14
3
3
 
4
+ measure 'Total Sales' = SUM ( 'Sales'[Total Amount] )
5
+ lineageTag: ca8c39c8-04a5-56b1-898d-0a73736c3cca
6
+
7
+ measure 'Total Quantity' = SUM ( [Quantity] )
8
+ lineageTag: 3ac4e158-858b-5e1b-8289-78d12ceb80e2
9
+
10
+ measure 'Average Unit Price' = AVERAGE ( 'Sales'[Unit Price] )
11
+ lineageTag: 2b5680cc-3046-5e41-bc7f-f5ff360370b2
12
+
13
+ measure 'Total Cost' = SUM ( 'Sales'[Unit Cost] )
14
+ lineageTag: aef7aa67-b06e-5e59-ac93-136e4a872346
15
+
16
+ measure 'Total Discount' = SUM ( 'Sales'[Discount Amount] )
17
+ lineageTag: 6f6edc54-d408-5aea-a787-b48f4126590a
18
+
19
+ measure 'Net Sales' = [Total Sales] - [Total Discount]
20
+ lineageTag: e4e79507-12c0-5c58-8e25-12963846b787
21
+
22
+ measure 'Total Margin' = [Total Sales] - [Total Cost]
23
+ lineageTag: b9913bc2-aa66-55c0-8965-911b688f87dd
24
+
25
+ measure 'Margin %' = [Total Margin] / [Total Sales]
26
+ lineageTag: f9ffc38c-cd44-5852-b85a-0f7cbc8753f4
27
+
28
+ measure 'Order Count' = DISTINCTCOUNT ( 'Sales'[Sale ID] )
29
+ lineageTag: e8120ffb-3d8e-5701-a3b7-6c5e283a59a3
30
+
31
+ measure 'Average Order Value' = [Total Sales] / [Order Count]
32
+ lineageTag: df423b46-4a20-5b0c-8e7d-a87a163b2f7a
33
+
34
+ measure 'Distinct Customers' = DISTINCTCOUNT ( [Customer ID] )
35
+ lineageTag: ad0bf4d6-42d5-53d9-a887-1483c9167c06
36
+
37
+ measure 'Sales YTD' = TOTALYTD ( [Total Sales], 'Date'[Date] )
38
+ lineageTag: e501d2df-a69b-570d-a31d-d1bbfc8694a8
39
+
40
+ measure 'Sales LY' = CALCULATE ( [Total Sales], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
41
+ lineageTag: 5d4245d8-0c72-584f-bcd5-efbd492fc3a7
42
+
43
+ measure 'Sales YoY %' = ( [Total Sales] - [Sales LY] ) / [Sales LY]
44
+ lineageTag: 0f9d5832-20e8-584c-a5b3-fd670931d428
45
+
4
46
  column 'Sale ID'
5
47
  dataType: int64
6
48
  isKey
@@ -109,48 +151,6 @@ table Sales
109
151
 
110
152
  annotation SummarizationSetBy = Automatic
111
153
 
112
- measure 'Total Sales' = SUM ( 'Sales'[Total Amount] )
113
- lineageTag: ca8c39c8-04a5-56b1-898d-0a73736c3cca
114
-
115
- measure 'Total Quantity' = SUM ( [Quantity] )
116
- lineageTag: 3ac4e158-858b-5e1b-8289-78d12ceb80e2
117
-
118
- measure 'Average Unit Price' = AVERAGE ( 'Sales'[Unit Price] )
119
- lineageTag: 2b5680cc-3046-5e41-bc7f-f5ff360370b2
120
-
121
- measure 'Total Cost' = SUM ( 'Sales'[Unit Cost] )
122
- lineageTag: aef7aa67-b06e-5e59-ac93-136e4a872346
123
-
124
- measure 'Total Discount' = SUM ( 'Sales'[Discount Amount] )
125
- lineageTag: 6f6edc54-d408-5aea-a787-b48f4126590a
126
-
127
- measure 'Net Sales' = [Total Sales] - [Total Discount]
128
- lineageTag: e4e79507-12c0-5c58-8e25-12963846b787
129
-
130
- measure 'Total Margin' = [Total Sales] - [Total Cost]
131
- lineageTag: b9913bc2-aa66-55c0-8965-911b688f87dd
132
-
133
- measure 'Margin %' = [Total Margin] / [Total Sales]
134
- lineageTag: f9ffc38c-cd44-5852-b85a-0f7cbc8753f4
135
-
136
- measure 'Order Count' = DISTINCTCOUNT ( 'Sales'[Sale ID] )
137
- lineageTag: e8120ffb-3d8e-5701-a3b7-6c5e283a59a3
138
-
139
- measure 'Average Order Value' = [Total Sales] / [Order Count]
140
- lineageTag: df423b46-4a20-5b0c-8e7d-a87a163b2f7a
141
-
142
- measure 'Distinct Customers' = DISTINCTCOUNT ( [Customer ID] )
143
- lineageTag: ad0bf4d6-42d5-53d9-a887-1483c9167c06
144
-
145
- measure 'Sales YTD' = TOTALYTD ( [Total Sales], 'Date'[Date] )
146
- lineageTag: e501d2df-a69b-570d-a31d-d1bbfc8694a8
147
-
148
- measure 'Sales LY' = CALCULATE ( [Total Sales], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
149
- lineageTag: 5d4245d8-0c72-584f-bcd5-efbd492fc3a7
150
-
151
- measure 'Sales YoY %' = ( [Total Sales] - [Sales LY] ) / [Sales LY]
152
- lineageTag: 0f9d5832-20e8-584c-a5b3-fd670931d428
153
-
154
154
  partition Sales = m
155
155
  mode: import
156
156
  source =
@@ -93,6 +93,21 @@ table Store
93
93
 
94
94
  annotation SummarizationSetBy = Automatic
95
95
 
96
+ hierarchy Geography
97
+ lineageTag: 9ab56f94-f99e-4596-a2fd-369f95ecc191
98
+
99
+ level Country
100
+ lineageTag: 5bf46aba-afcc-42cc-b0c4-bf07c23a706c
101
+ column: Country
102
+
103
+ level State
104
+ lineageTag: bb36069f-7132-4327-926e-ae06fe92ccae
105
+ column: State
106
+
107
+ level City
108
+ lineageTag: c112895e-4034-438f-bac3-5fcab2e46f2c
109
+ column: City
110
+
96
111
  partition Store = m
97
112
  mode: import
98
113
  source =
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/fabric/pbip/pbipProperties/1.0.0/schema.json",
3
+ "version": "1.0",
4
+ "artifacts": [
5
+ {
6
+ "report": {
7
+ "path": "Messy Sales Demo.Report"
8
+ }
9
+ }
10
+ ],
11
+ "settings": {
12
+ "enableAutoRecovery": true
13
+ }
14
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "https://pbiplint.com/schema/pbiplint.config.schema.json",
3
+ "rules": {
4
+ "FILTERS_PANE_STATE": { "expect": "closed" },
5
+ "TAB_ORDER_FOLLOWS_LAYOUT": { "expect": "layout" }
6
+ }
7
+ }
@@ -1,8 +0,0 @@
1
- {
2
- "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/semanticModel/editorSettings/1.0.0/schema.json",
3
- "autodetectRelationships": false,
4
- "parallelQueryLoading": true,
5
- "typeDetectionEnabled": true,
6
- "relationshipImportEnabled": false,
7
- "shouldNotifyUserOfNameConflictResolution": true
8
- }
@@ -1,2 +0,0 @@
1
- cultureInfo en-US
2
-
@@ -1,3 +0,0 @@
1
- database
2
- compatibilityLevel: 1600
3
-